Mercurial > hg > orthanc
diff OrthancServer/ServerContext.cpp @ 3033:5da6d1063d8f db-changes
effectively replacing LookupResource by DatabaseLookup in searches
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 19 Dec 2018 13:58:28 +0100 |
parents | 18a2d196414b |
children | 54e422fe31ce |
line wrap: on
line diff
--- a/OrthancServer/ServerContext.cpp Wed Dec 19 13:10:48 2018 +0100 +++ b/OrthancServer/ServerContext.cpp Wed Dec 19 13:58:28 2018 +0100 @@ -774,8 +774,8 @@ void ServerContext::Apply(ILookupVisitor& visitor, - const ::Orthanc::LookupResource& lookup, - const DatabaseLookup& lookup2, + const DatabaseLookup& lookup, + ResourceType queryLevel, size_t since, size_t limit) { @@ -807,7 +807,7 @@ "should be \"Always\", \"Never\" or \"Answers\": " + value); } - if (lookup.GetLevel() == ResourceType_Instance) + if (queryLevel == ResourceType_Instance) { databaseLimit = lock.GetConfiguration().GetUnsignedIntegerParameter("LimitFindInstances", 0); } @@ -817,42 +817,14 @@ } } - std::vector<std::string> resources, instances; - GetIndex().FindCandidates(resources, instances, lookup); - - bool complete = true; - -#if 1 - { - std::vector<std::string> resources2, instances2; - - size_t lookupLimit = (databaseLimit == 0 ? 0 : databaseLimit + 1); - GetIndex().ApplyLookupResources(resources2, instances2, lookup2, lookup.GetLevel(), lookupLimit); - if (databaseLimit != 0 && - resources2.size() > databaseLimit) - { - complete = false; - } - - // Sanity checks - std::set<std::string> r; - for (size_t i = 0; i < resources2.size(); i++) - { - r.insert(resources2[i]); - } + const size_t lookupLimit = (databaseLimit == 0 ? 0 : databaseLimit + 1); + GetIndex().ApplyLookupResources(resources, instances, lookup, queryLevel, lookupLimit); - printf("%d %d\n", resources2.size(), resources.size()); - assert(resources2.size() >= resources.size()); - - for (size_t i = 0; i < resources.size(); i++) - { - assert(r.find(resources[i]) != r.end()); - } - } -#endif - + bool complete = (databaseLimit == 0 || + resources.size() > databaseLimit); + LOG(INFO) << "Number of candidate resources after fast DB filtering on main DICOM tags: " << resources.size(); assert(resources.size() == instances.size());