diff OrthancServer/OrthancFindRequestHandler.cpp @ 2940:4767d36679ed

refactoring access to Orthanc configuration
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 29 Nov 2018 11:47:00 +0100
parents ce310baccda6
children bbfd95a0c429
line wrap: on
line diff
--- a/OrthancServer/OrthancFindRequestHandler.cpp	Wed Nov 28 14:48:14 2018 +0100
+++ b/OrthancServer/OrthancFindRequestHandler.cpp	Thu Nov 29 11:47:00 2018 +0100
@@ -38,7 +38,7 @@
 #include "../Core/Lua/LuaFunctionCall.h"
 #include "../Core/Logging.h"
 #include "../Core/DicomParsing/FromDcmtkBridge.h"
-#include "OrthancInitialization.h"
+#include "OrthancConfiguration.h"
 #include "Search/LookupResource.h"
 #include "ServerToolbox.h"
 
@@ -258,16 +258,21 @@
         // The metadata "SopClassUid" is available for each of these instances
         StoreSetOfStrings(result, DICOM_TAG_SOP_CLASSES_IN_STUDY, values);
       }
-      else if (Configuration::GetGlobalBoolParameter("AllowFindSopClassesInStudy", false))
-      {
-        ExtractTagFromInstancesOnDisk(values, context, DICOM_TAG_SOP_CLASS_UID, instances);
-        StoreSetOfStrings(result, DICOM_TAG_SOP_CLASSES_IN_STUDY, values);
-      }
       else
       {
-        result.SetValue(DICOM_TAG_SOP_CLASSES_IN_STUDY, "", false);
-        LOG(WARNING) << "The handling of \"SOP Classes in Study\" (0008,0062) "
-                     << "in C-FIND requests is disabled";
+        OrthancConfiguration::ReaderLock lock;
+
+        if (lock.GetConfiguration().GetBooleanParameter("AllowFindSopClassesInStudy", false))
+        {
+          ExtractTagFromInstancesOnDisk(values, context, DICOM_TAG_SOP_CLASS_UID, instances);
+          StoreSetOfStrings(result, DICOM_TAG_SOP_CLASSES_IN_STUDY, values);
+        }
+        else
+        {
+          result.SetValue(DICOM_TAG_SOP_CLASSES_IN_STUDY, "", false);
+          LOG(WARNING) << "The handling of \"SOP Classes in Study\" (0008,0062) "
+                       << "in C-FIND requests is disabled";
+        }
       }
     }
   }
@@ -590,7 +595,12 @@
 
     LookupResource lookup(level);
 
-    const bool caseSensitivePN = Configuration::GetGlobalBoolParameter("CaseSensitivePN", false);
+    bool caseSensitivePN;
+
+    {
+      OrthancConfiguration::ReaderLock lock;
+      caseSensitivePN = lock.GetConfiguration().GetBooleanParameter("CaseSensitivePN", false);
+    }
 
     for (size_t i = 0; i < query.GetSize(); i++)
     {