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;