diff OrthancServer/ServerJobs/DicomModalityStoreJob.cpp @ 3870:09798f2b985f transcoding

added a Timeout argument to every DICOM command + 'TargetAet' not mandatory anymore in /retrieve
author Alain Mazy <alain@mazy.be>
date Wed, 29 Apr 2020 12:26:51 +0200
parents 594263db316a
children ae5bdde751fd
line wrap: on
line diff
--- a/OrthancServer/ServerJobs/DicomModalityStoreJob.cpp	Tue Apr 28 16:46:04 2020 +0200
+++ b/OrthancServer/ServerJobs/DicomModalityStoreJob.cpp	Wed Apr 29 12:26:51 2020 +0200
@@ -49,6 +49,11 @@
     if (connection_.get() == NULL)
     {
       connection_.reset(new DicomStoreUserConnection(localAet_, remote_));
+
+      if (timeout_ > -1)
+      {
+        connection_->SetTimeout(timeout_);
+      }
     }
   }
 
@@ -276,6 +281,7 @@
   static const char* MOVE_ORIGINATOR_AET = "MoveOriginatorAet";
   static const char* MOVE_ORIGINATOR_ID = "MoveOriginatorId";
   static const char* STORAGE_COMMITMENT = "StorageCommitment";
+  static const char* TIMEOUT = "Timeout";
   
 
   DicomModalityStoreJob::DicomModalityStoreJob(ServerContext& context,
@@ -289,6 +295,9 @@
     moveOriginatorId_ = static_cast<uint16_t>
       (SerializationToolbox::ReadUnsignedInteger(serialized, MOVE_ORIGINATOR_ID));
     EnableStorageCommitment(SerializationToolbox::ReadBoolean(serialized, STORAGE_COMMITMENT));
+
+    // New in Orthanc in 1.7.0
+    timeout_ = SerializationToolbox::ReadInteger(serialized, TIMEOUT, -1);
   }
 
 
@@ -305,6 +314,7 @@
       target[MOVE_ORIGINATOR_AET] = moveOriginatorAet_;
       target[MOVE_ORIGINATOR_ID] = moveOriginatorId_;
       target[STORAGE_COMMITMENT] = storageCommitment_;
+      target[TIMEOUT] = timeout_;
       return true;
     }
   }