diff OrthancServer/ServerContext.cpp @ 3003:5ae3ff2398e9

refactoring OrthancFindRequestHandler using LookupResource::IVisitor
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 11 Dec 2018 19:02:51 +0100
parents 7695a9c81099
children 8265a6b56100
line wrap: on
line diff
--- a/OrthancServer/ServerContext.cpp	Tue Dec 11 18:36:52 2018 +0100
+++ b/OrthancServer/ServerContext.cpp	Tue Dec 11 19:02:51 2018 +0100
@@ -781,10 +781,13 @@
     std::vector<std::string> resources, instances;
     GetIndex().FindCandidates(resources, instances, lookup);
 
+    LOG(INFO) << "Number of candidate resources after fast DB filtering: " << resources.size();
+
     assert(resources.size() == instances.size());
 
     size_t countResults = 0;
     size_t skipped = 0;
+    bool complete = true;
 
     for (size_t i = 0; i < instances.size(); i++)
     {
@@ -802,17 +805,24 @@
         else if (limit != 0 &&
                  countResults >= limit)
         {
-          return;  // too many results, don't mark as complete
+          // Too many results, don't mark as complete
+          complete = false;
+          break;
         }
         else
         {
-          visitor.Visit(resources[i], dicom);
+          visitor.Visit(resources[i], instances[i], dicom);
           countResults ++;
         }
       }
     }
 
-    visitor.MarkAsComplete();
+    if (complete)
+    {
+      visitor.MarkAsComplete();
+    }
+
+    LOG(INFO) << "Number of matching resources: " << countResults;
   }