Mercurial > hg > orthanc
diff OrthancServer/ServerJobs/DicomModalityStoreJob.cpp @ 3862:594263db316a transcoding
DicomModalityStoreJob now uses DicomStoreUserConnection
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 27 Apr 2020 17:28:55 +0200 |
parents | 138d0dde41b5 |
children | 09798f2b985f |
line wrap: on
line diff
--- a/OrthancServer/ServerJobs/DicomModalityStoreJob.cpp Mon Apr 27 15:56:20 2020 +0200 +++ b/OrthancServer/ServerJobs/DicomModalityStoreJob.cpp Mon Apr 27 17:28:55 2020 +0200 @@ -35,6 +35,7 @@ #include "DicomModalityStoreJob.h" #include "../../Core/Compatibility.h" +#include "../../Core/DicomNetworking/DicomAssociation.h" #include "../../Core/Logging.h" #include "../../Core/SerializationToolbox.h" #include "../ServerContext.h" @@ -47,7 +48,7 @@ { if (connection_.get() == NULL) { - connection_.reset(new DicomUserConnection(localAet_, remote_)); + connection_.reset(new DicomStoreUserConnection(localAet_, remote_)); } } @@ -74,13 +75,16 @@ std::string sopClassUid, sopInstanceUid; + const void* data = dicom.empty() ? NULL : dicom.c_str(); + if (HasMoveOriginator()) { - connection_->Store(sopClassUid, sopInstanceUid, dicom, moveOriginatorAet_, moveOriginatorId_); + connection_->Store(sopClassUid, sopInstanceUid, data, dicom.size(), + moveOriginatorAet_, moveOriginatorId_); } else { - connection_->Store(sopClassUid, sopInstanceUid, dicom); + connection_->Store(sopClassUid, sopInstanceUid, data, dicom.size()); } if (storageCommitment_) @@ -96,6 +100,9 @@ if (sopClassUids_.size() == GetInstancesCount()) { + assert(IsStarted()); + connection_.reset(NULL); + const std::string& remoteAet = remote_.GetApplicationEntityTitle(); LOG(INFO) << "Sending storage commitment request to modality: " << remoteAet; @@ -105,12 +112,11 @@ context_.GetStorageCommitmentReports().Store( transactionUid_, new StorageCommitmentReports::Report(remoteAet)); - assert(IsStarted()); - OpenConnection(); - std::vector<std::string> a(sopClassUids_.begin(), sopClassUids_.end()); std::vector<std::string> b(sopInstanceUids_.begin(), sopInstanceUids_.end()); - connection_->RequestStorageCommitment(transactionUid_, a, b); + + DicomAssociationParameters parameters(localAet_, remote_); + DicomAssociation::RequestStorageCommitment(parameters, transactionUid_, a, b); } }