diff OrthancServer/ServerIndex.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 d207f6ac1f86
children fd587cf51a89
line wrap: on
line diff
--- a/OrthancServer/ServerIndex.cpp	Mon Dec 17 10:26:01 2018 +0100
+++ b/OrthancServer/ServerIndex.cpp	Mon Dec 17 17:05:28 2018 +0100
@@ -2452,4 +2452,29 @@
       LOG(ERROR) << "EXCEPTION [" << e.What() << "]";
     }
   }
+
+
+  void ServerIndex::ApplyLookupPatients(std::vector<std::string>& patientsId,
+                                        std::vector<std::string>& instancesId,
+                                        const DatabaseLookup& lookup,
+                                        size_t limit)
+  {
+    boost::mutex::scoped_lock lock(mutex_);
+    
+    db_.ApplyLookupPatients(patientsId, lookup, limit);
+    db_.FindOneChildInstance(instancesId, patientsId, ResourceType_Patient);
+  }
+
+  
+  void ServerIndex::ApplyLookupResources(std::vector<std::string>& resourcesId,
+                                         std::vector<std::string>& instancesId,
+                                         const DatabaseLookup& lookup,
+                                         ResourceType queryLevel,
+                                         size_t limit)
+  {
+    boost::mutex::scoped_lock lock(mutex_);
+
+    db_.ApplyLookupResources(resourcesId, lookup, queryLevel, limit);
+    db_.FindOneChildInstance(instancesId, resourcesId, queryLevel);
+  }
 }