Mercurial > hg > orthanc
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); } }