Mercurial > hg > orthanc
diff OrthancServer/Internals/FindScp.cpp @ 2381:b8969010b534
uncoupling DCMTK primitives from Orthanc::Configuration
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 29 Aug 2017 19:59:01 +0200 |
parents | de1ba22fd28a |
children |
line wrap: on
line diff
--- a/OrthancServer/Internals/FindScp.cpp Tue Aug 29 16:49:44 2017 +0200 +++ b/OrthancServer/Internals/FindScp.cpp Tue Aug 29 19:59:01 2017 +0200 @@ -139,6 +139,7 @@ { struct FindScpData { + DicomServer::IRemoteModalities* modalities_; IFindRequestHandler* findHandler_; IWorklistRequestHandler* worklistHandler_; DicomFindAnswers answers_; @@ -197,7 +198,8 @@ * Ensure that the remote modality is known to Orthanc for C-FIND requests. **/ - if (!Configuration::LookupDicomModalityUsingAETitle(modality, *data.remoteAet_)) + assert(data.modalities_ != NULL); + if (!data.modalities_->LookupAETitle(modality, *data.remoteAet_)) { LOG(ERROR) << "Modality with AET \"" << *data.remoteAet_ << "\" is not defined in the \"DicomModalities\" configuration option"; @@ -252,7 +254,7 @@ } DicomMap input; - Configuration::ExtractDicomSummary(input, *requestIdentifiers); + FromDcmtkBridge::ExtractDicomSummary(input, *requestIdentifiers); data.findHandler_->Handle(data.answers_, input, sequencesToReturn, *data.remoteIp_, *data.remoteAet_, @@ -314,6 +316,7 @@ OFCondition Internals::findScp(T_ASC_Association * assoc, T_DIMSE_Message * msg, T_ASC_PresentationContextID presID, + DicomServer::IRemoteModalities& modalities, IFindRequestHandler* findHandler, IWorklistRequestHandler* worklistHandler, const std::string& remoteIp, @@ -321,9 +324,10 @@ const std::string& calledAet) { FindScpData data; - data.lastRequest_ = NULL; + data.modalities_ = &modalities; data.findHandler_ = findHandler; data.worklistHandler_ = worklistHandler; + data.lastRequest_ = NULL; data.remoteIp_ = &remoteIp; data.remoteAet_ = &remoteAet; data.calledAet_ = &calledAet;