diff OrthancFramework/Sources/DicomNetworking/RemoteModalityParameters.cpp @ 4888:8523078f3f4b

added new configuration to authorize C-Find for worklist independently from other C-Find
author Alain Mazy <am@osimis.io>
date Fri, 18 Feb 2022 15:45:28 +0100
parents 43e613a7756b
children 0ea402b4d901
line wrap: on
line diff
--- a/OrthancFramework/Sources/DicomNetworking/RemoteModalityParameters.cpp	Wed Feb 16 09:27:25 2022 +0100
+++ b/OrthancFramework/Sources/DicomNetworking/RemoteModalityParameters.cpp	Fri Feb 18 15:45:28 2022 +0100
@@ -35,6 +35,7 @@
 static const char* KEY_AET = "AET";
 static const char* KEY_ALLOW_ECHO = "AllowEcho";
 static const char* KEY_ALLOW_FIND = "AllowFind";
+static const char* KEY_ALLOW_FIND_WORKLIST = "AllowFindWorklist";
 static const char* KEY_ALLOW_GET = "AllowGet";
 static const char* KEY_ALLOW_MOVE = "AllowMove";
 static const char* KEY_ALLOW_N_ACTION = "AllowNAction";
@@ -61,6 +62,7 @@
     allowEcho_ = true;
     allowStore_ = true;
     allowFind_ = true;
+    allowFindWorklist_ = true;
     allowMove_ = true;
     allowGet_ = true;
     allowNAction_ = true;  // For storage commitment
@@ -250,6 +252,11 @@
       allowFind_ = SerializationToolbox::ReadBoolean(serialized, KEY_ALLOW_FIND);
     }
 
+    if (serialized.isMember(KEY_ALLOW_FIND_WORKLIST))
+    {
+      allowFindWorklist_ = SerializationToolbox::ReadBoolean(serialized, KEY_ALLOW_FIND_WORKLIST);
+    }
+
     if (serialized.isMember(KEY_ALLOW_STORE))
     {
       allowStore_ = SerializationToolbox::ReadBoolean(serialized, KEY_ALLOW_STORE);
@@ -314,6 +321,9 @@
       case DicomRequestType_Find:
         return allowFind_;
 
+      case DicomRequestType_FindWorklist:
+        return allowFindWorklist_;
+
       case DicomRequestType_Get:
         return allowGet_;
 
@@ -348,6 +358,10 @@
         allowFind_ = allowed;
         break;
 
+      case DicomRequestType_FindWorklist:
+        allowFindWorklist_ = allowed;
+        break;
+
       case DicomRequestType_Get:
         allowGet_ = allowed;
         break;
@@ -379,6 +393,7 @@
     return (!allowEcho_ ||
             !allowStore_ ||
             !allowFind_ ||
+            !allowFindWorklist_ ||
             !allowGet_ ||
             !allowMove_ ||
             !allowNAction_ ||
@@ -403,6 +418,7 @@
       target[KEY_ALLOW_ECHO] = allowEcho_;
       target[KEY_ALLOW_STORE] = allowStore_;
       target[KEY_ALLOW_FIND] = allowFind_;
+      target[KEY_ALLOW_FIND_WORKLIST] = allowFindWorklist_;
       target[KEY_ALLOW_GET] = allowGet_;
       target[KEY_ALLOW_MOVE] = allowMove_;
       target[KEY_ALLOW_N_ACTION] = allowNAction_;