comparison 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
comparison
equal deleted inserted replaced
3869:c23ef85c7d9c 3870:09798f2b985f
47 void DicomModalityStoreJob::OpenConnection() 47 void DicomModalityStoreJob::OpenConnection()
48 { 48 {
49 if (connection_.get() == NULL) 49 if (connection_.get() == NULL)
50 { 50 {
51 connection_.reset(new DicomStoreUserConnection(localAet_, remote_)); 51 connection_.reset(new DicomStoreUserConnection(localAet_, remote_));
52
53 if (timeout_ > -1)
54 {
55 connection_->SetTimeout(timeout_);
56 }
52 } 57 }
53 } 58 }
54 59
55 60
56 bool DicomModalityStoreJob::HandleInstance(const std::string& instance) 61 bool DicomModalityStoreJob::HandleInstance(const std::string& instance)
274 static const char* LOCAL_AET = "LocalAet"; 279 static const char* LOCAL_AET = "LocalAet";
275 static const char* REMOTE = "Remote"; 280 static const char* REMOTE = "Remote";
276 static const char* MOVE_ORIGINATOR_AET = "MoveOriginatorAet"; 281 static const char* MOVE_ORIGINATOR_AET = "MoveOriginatorAet";
277 static const char* MOVE_ORIGINATOR_ID = "MoveOriginatorId"; 282 static const char* MOVE_ORIGINATOR_ID = "MoveOriginatorId";
278 static const char* STORAGE_COMMITMENT = "StorageCommitment"; 283 static const char* STORAGE_COMMITMENT = "StorageCommitment";
284 static const char* TIMEOUT = "Timeout";
279 285
280 286
281 DicomModalityStoreJob::DicomModalityStoreJob(ServerContext& context, 287 DicomModalityStoreJob::DicomModalityStoreJob(ServerContext& context,
282 const Json::Value& serialized) : 288 const Json::Value& serialized) :
283 SetOfInstancesJob(serialized), 289 SetOfInstancesJob(serialized),
287 remote_ = RemoteModalityParameters(serialized[REMOTE]); 293 remote_ = RemoteModalityParameters(serialized[REMOTE]);
288 moveOriginatorAet_ = SerializationToolbox::ReadString(serialized, MOVE_ORIGINATOR_AET); 294 moveOriginatorAet_ = SerializationToolbox::ReadString(serialized, MOVE_ORIGINATOR_AET);
289 moveOriginatorId_ = static_cast<uint16_t> 295 moveOriginatorId_ = static_cast<uint16_t>
290 (SerializationToolbox::ReadUnsignedInteger(serialized, MOVE_ORIGINATOR_ID)); 296 (SerializationToolbox::ReadUnsignedInteger(serialized, MOVE_ORIGINATOR_ID));
291 EnableStorageCommitment(SerializationToolbox::ReadBoolean(serialized, STORAGE_COMMITMENT)); 297 EnableStorageCommitment(SerializationToolbox::ReadBoolean(serialized, STORAGE_COMMITMENT));
298
299 // New in Orthanc in 1.7.0
300 timeout_ = SerializationToolbox::ReadInteger(serialized, TIMEOUT, -1);
292 } 301 }
293 302
294 303
295 bool DicomModalityStoreJob::Serialize(Json::Value& target) 304 bool DicomModalityStoreJob::Serialize(Json::Value& target)
296 { 305 {
303 target[LOCAL_AET] = localAet_; 312 target[LOCAL_AET] = localAet_;
304 remote_.Serialize(target[REMOTE], true /* force advanced format */); 313 remote_.Serialize(target[REMOTE], true /* force advanced format */);
305 target[MOVE_ORIGINATOR_AET] = moveOriginatorAet_; 314 target[MOVE_ORIGINATOR_AET] = moveOriginatorAet_;
306 target[MOVE_ORIGINATOR_ID] = moveOriginatorId_; 315 target[MOVE_ORIGINATOR_ID] = moveOriginatorId_;
307 target[STORAGE_COMMITMENT] = storageCommitment_; 316 target[STORAGE_COMMITMENT] = storageCommitment_;
317 target[TIMEOUT] = timeout_;
308 return true; 318 return true;
309 } 319 }
310 } 320 }
311 } 321 }