diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 1361:94ffb597d297

refactoring of C-Find SCP
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 15 May 2015 17:19:33 +0200
parents 0649c5aef34a
children b22ba8c5edbe a1745d9be6e9
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Fri May 15 15:34:32 2015 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Fri May 15 17:19:33 2015 +0200
@@ -36,6 +36,7 @@
 #include "../ServerToolbox.h"
 #include "../FromDcmtkBridge.h"
 #include "../ResourceFinder.h"
+#include "../DicomFindQuery.h"
 
 #include <glog/logging.h>
 
@@ -868,13 +869,8 @@
 
       std::string level = request["Level"].asString();
 
-      /*ResourceFinder finder(context);
-      finder.SetLevel(StringToResourceType(level.c_str()));
-
-      if (request.isMember("CaseSensitive"))
-      {
-        finder.SetCaseSensitive(request["CaseSensitive"].asBool());
-      }
+      DicomFindQuery query;
+      query.SetLevel(StringToResourceType(level.c_str()));
 
       Json::Value::Members members = request["Query"].getMemberNames();
       for (size_t i = 0; i < members.size(); i++)
@@ -884,12 +880,14 @@
           throw OrthancException(ErrorCode_BadRequest);
         }
 
-        finder.AddTag(members[i], request["Query"][members[i]].asString());
-        }
-
+        query.SetConstraint(FromDcmtkBridge::ParseTag(members[i]), 
+                            request["Query"][members[i]].asString());
+      }
+      
       std::list<std::string> resources;
-      finder.Apply(resources);
-      AnswerListOfResources(call.GetOutput(), context.GetIndex(), resources, finder.GetLevel(), expand);*/
+      ResourceFinder finder(context);
+      finder.Apply(resources, query);
+      AnswerListOfResources(call.GetOutput(), context.GetIndex(), resources, query.GetLevel(), expand);
     }
     else
     {