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);
   };
 }