diff OrthancServer/OrthancFindRequestHandler.cpp @ 2827:d4fd4614f275

IncomingWorklistRequestFilter() to filter incoming C-FIND worklist queries
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 19 Sep 2018 21:10:49 +0200
parents 912a767911b0
children ae8e72009e64
line wrap: on
line diff
--- a/OrthancServer/OrthancFindRequestHandler.cpp	Wed Sep 19 16:06:41 2018 +0200
+++ b/OrthancServer/OrthancFindRequestHandler.cpp	Wed Sep 19 21:10:49 2018 +0200
@@ -482,7 +482,8 @@
                                                  const DicomMap& source,
                                                  const std::string& remoteIp,
                                                  const std::string& remoteAet,
-                                                 const std::string& calledAet)
+                                                 const std::string& calledAet,
+                                                 ModalityManufacturer manufacturer)
   {
     static const char* LUA_CALLBACK = "IncomingFindRequestFilter";
     
@@ -494,10 +495,8 @@
     }
     else
     {
-      Json::Value origin = Json::objectValue;
-      origin["RemoteIp"] = remoteIp;
-      origin["RemoteAet"] = remoteAet;
-      origin["CalledAet"] = calledAet;
+      Json::Value origin;
+      FormatOrigin(origin, remoteIp, remoteAet, calledAet, manufacturer);
 
       LuaFunctionCall call(lock.GetLua(), LUA_CALLBACK);
       call.PushDicom(source);
@@ -532,7 +531,7 @@
     DicomMap lua;
     const DicomMap* filteredInput = &input;
 
-    if (ApplyLuaFilter(lua, input, remoteIp, remoteAet, calledAet))
+    if (ApplyLuaFilter(lua, input, remoteIp, remoteAet, calledAet, manufacturer))
     {
       filteredInput = &lua;
     }
@@ -675,4 +674,18 @@
 
     answers.SetComplete(complete);
   }
+
+
+  void OrthancFindRequestHandler::FormatOrigin(Json::Value& origin,
+                                               const std::string& remoteIp,
+                                               const std::string& remoteAet,
+                                               const std::string& calledAet,
+                                               ModalityManufacturer manufacturer)
+  {
+    origin = Json::objectValue;
+    origin["RemoteIp"] = remoteIp;
+    origin["RemoteAet"] = remoteAet;
+    origin["CalledAet"] = calledAet;
+    origin["Manufacturer"] = EnumerationToString(manufacturer);
+  }
 }