Mercurial > hg > orthanc
diff OrthancServer/ServerJobs/DicomMoveScuJob.cpp @ 3877:4b4f387c6bb8 transcoding
making DicomMoveScuJob more consistent with DicomModalityStoreJob
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 04 May 2020 16:00:38 +0200 |
parents | ea1d32861cfc |
children |
line wrap: on
line diff
--- a/OrthancServer/ServerJobs/DicomMoveScuJob.cpp Mon May 04 15:37:45 2020 +0200 +++ b/OrthancServer/ServerJobs/DicomMoveScuJob.cpp Mon May 04 16:00:38 2020 +0200 @@ -97,14 +97,7 @@ { if (connection_.get() == NULL) { - DicomAssociationParameters params(localAet_, remote_); - - if (timeout_ >= 0) - { - params.SetTimeout(static_cast<uint32_t>(timeout_)); - } - - connection_.reset(new DicomControlUserConnection(params)); + connection_.reset(new DicomControlUserConnection(parameters_)); } connection_->Move(targetAet_, findAnswer); @@ -160,7 +153,7 @@ } else { - localAet_ = aet; + parameters_.SetLocalApplicationEntityTitle(aet); } } @@ -186,7 +179,20 @@ } else { - remote_ = remote; + parameters_.SetRemoteModality(remote); + } + } + + + void DicomMoveScuJob::SetTimeout(uint32_t seconds) + { + if (IsStarted()) + { + throw OrthancException(ErrorCode_BadSequenceOfCalls); + } + else + { + parameters_.SetTimeout(seconds); } } @@ -200,9 +206,9 @@ void DicomMoveScuJob::GetPublicContent(Json::Value& value) { SetOfCommandsJob::GetPublicContent(value); - - value["LocalAet"] = localAet_; - value["RemoteAet"] = remote_.GetApplicationEntityTitle(); + + value["LocalAet"] = parameters_.GetLocalApplicationEntityTitle(); + value["RemoteAet"] = parameters_.GetRemoteModality().GetApplicationEntityTitle(); value["Query"] = query_; } @@ -213,18 +219,14 @@ context_(context), query_(Json::arrayValue) { - localAet_ = SerializationToolbox::ReadString(serialized, LOCAL_AET); + parameters_ = DicomAssociationParameters::UnserializeJob(serialized); targetAet_ = SerializationToolbox::ReadString(serialized, TARGET_AET); - remote_ = RemoteModalityParameters(serialized[REMOTE]); if (serialized.isMember(QUERY) && serialized[QUERY].type() == Json::arrayValue) { query_ = serialized[QUERY]; } - - // New in Orthanc in 1.7.0 - timeout_ = SerializationToolbox::ReadInteger(serialized, TIMEOUT, -1); } @@ -236,11 +238,9 @@ } else { - target[LOCAL_AET] = localAet_; + parameters_.SerializeJob(target); target[TARGET_AET] = targetAet_; target[QUERY] = query_; - target[TIMEOUT] = timeout_; - remote_.Serialize(target[REMOTE], true /* force advanced format */); return true; } }