diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 3025:039a9d262d64 db-changes

preparing to speed up find in databases
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 17 Dec 2018 17:05:28 +0100
parents 2cbafb5d5a62
children fd587cf51a89
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Mon Dec 17 10:26:01 2018 +0100
+++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Mon Dec 17 17:05:28 2018 +0100
@@ -40,6 +40,7 @@
 #include "../../Core/HttpServer/HttpContentNegociation.h"
 #include "../../Core/Logging.h"
 #include "../OrthancConfiguration.h"
+#include "../Search/DatabaseLookup.h"
 #include "../Search/LookupResource.h"
 #include "../ServerContext.h"
 #include "../ServerToolbox.h"
@@ -1403,6 +1404,7 @@
       std::string level = request[KEY_LEVEL].asString();
 
       LookupResource query(StringToResourceType(level.c_str()));
+      DatabaseLookup query2;
 
       Json::Value::Members members = request[KEY_QUERY].getMemberNames();
       for (size_t i = 0; i < members.size(); i++)
@@ -1416,10 +1418,13 @@
         query.AddDicomConstraint(FromDcmtkBridge::ParseTag(members[i]), 
                                  request[KEY_QUERY][members[i]].asString(),
                                  caseSensitive);
+        query2.AddDicomConstraint(FromDcmtkBridge::ParseTag(members[i]), 
+                                  request[KEY_QUERY][members[i]].asString(),
+                                  caseSensitive, true);
       }
 
       FindVisitor visitor;
-      context.Apply(visitor, query, since, limit);
+      context.Apply(visitor, query, query2, since, limit);
       visitor.Answer(call.GetOutput(), context.GetIndex(), query.GetLevel(), expand);
     }
   }