Mercurial > hg > orthanc
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 } |