Mercurial > hg > orthanc
diff OrthancServer/ServerJobs/DicomModalityStoreJob.h @ 2603:988936118354 jobs
reorganization
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 18 May 2018 17:02:25 +0200 |
parents | c25f1a52acbc |
children | a21b244efb37 |
line wrap: on
line diff
--- a/OrthancServer/ServerJobs/DicomModalityStoreJob.h Fri May 18 15:34:11 2018 +0200 +++ b/OrthancServer/ServerJobs/DicomModalityStoreJob.h Fri May 18 17:02:25 2018 +0200 @@ -36,6 +36,7 @@ #include "../../Core/JobsEngine/SetOfInstancesJob.h" #include "../../Core/DicomNetworking/DicomUserConnection.h" +#include "../ServerContext.h" namespace Orthanc { @@ -49,154 +50,47 @@ uint16_t moveOriginatorId_; std::auto_ptr<DicomUserConnection> connection_; - void OpenConnection() - { - if (connection_.get() == NULL) - { - connection_.reset(new DicomUserConnection); - connection_->SetLocalApplicationEntityTitle(localAet_); - connection_->SetRemoteModality(remote_); - } - } + void OpenConnection(); protected: - virtual bool HandleInstance(const std::string& instance) - { - OpenConnection(); - - LOG(INFO) << "Sending instance " << instance << " to modality \"" - << remote_.GetApplicationEntityTitle() << "\""; - - std::string dicom; - context_.ReadDicom(dicom, instance); - - if (HasMoveOriginator()) - { - connection_->Store(dicom, moveOriginatorAet_, moveOriginatorId_); - } - else - { - connection_->Store(dicom); - } - - //boost::this_thread::sleep(boost::posix_time::milliseconds(500)); - - return true; - } + virtual bool HandleInstance(const std::string& instance); public: - DicomModalityStoreJob(ServerContext& context) : - context_(context), - localAet_("ORTHANC"), - moveOriginatorId_(0) // By default, not a C-MOVE - { - } + DicomModalityStoreJob(ServerContext& context); const std::string& GetLocalAet() const { return localAet_; } - void SetLocalAet(const std::string& aet) - { - if (IsStarted()) - { - throw OrthancException(ErrorCode_BadSequenceOfCalls); - } - else - { - localAet_ = aet; - } - } + void SetLocalAet(const std::string& aet); const RemoteModalityParameters& GetRemoteModality() const { return remote_; } - void SetRemoteModality(const RemoteModalityParameters& remote) - { - if (IsStarted()) - { - throw OrthancException(ErrorCode_BadSequenceOfCalls); - } - else - { - remote_ = remote; - } - } + void SetRemoteModality(const RemoteModalityParameters& remote); bool HasMoveOriginator() const { return moveOriginatorId_ != 0; } - const std::string& GetMoveOriginatorAet() const - { - if (HasMoveOriginator()) - { - return moveOriginatorAet_; - } - else - { - throw OrthancException(ErrorCode_BadSequenceOfCalls); - } - } + const std::string& GetMoveOriginatorAet() const; - uint16_t GetMoveOriginatorId() const - { - if (HasMoveOriginator()) - { - return moveOriginatorId_; - } - else - { - throw OrthancException(ErrorCode_BadSequenceOfCalls); - } - } + uint16_t GetMoveOriginatorId() const; void SetMoveOriginator(const std::string& aet, - int id) - { - if (IsStarted()) - { - throw OrthancException(ErrorCode_BadSequenceOfCalls); - } - else if (id < 0 || - id >= 65536) - { - throw OrthancException(ErrorCode_ParameterOutOfRange); - } - else - { - moveOriginatorId_ = static_cast<uint16_t>(id); - moveOriginatorAet_ = aet; - } - } + int id); - virtual void ReleaseResources() // For pausing jobs - { - connection_.reset(NULL); - } + virtual void ReleaseResources(); virtual void GetJobType(std::string& target) { target = "DicomModalityStore"; } - virtual void GetPublicContent(Json::Value& value) - { - value["LocalAet"] = localAet_; - value["RemoteAet"] = remote_.GetApplicationEntityTitle(); - - if (HasMoveOriginator()) - { - value["MoveOriginatorAET"] = GetMoveOriginatorAet(); - value["MoveOriginatorID"] = GetMoveOriginatorId(); - } - - value["InstancesCount"] = static_cast<uint32_t>(GetInstances().size()); - value["FailedInstancesCount"] = static_cast<uint32_t>(GetFailedInstances().size()); - } + virtual void GetPublicContent(Json::Value& value); }; }