Mercurial > hg > orthanc
comparison OrthancServer/ServerContext.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 |
comparison
equal
deleted
inserted
replaced
3024:ef17a587e10d | 3025:039a9d262d64 |
---|---|
773 } | 773 } |
774 | 774 |
775 | 775 |
776 void ServerContext::Apply(ILookupVisitor& visitor, | 776 void ServerContext::Apply(ILookupVisitor& visitor, |
777 const ::Orthanc::LookupResource& lookup, | 777 const ::Orthanc::LookupResource& lookup, |
778 const DatabaseLookup& lookup2, | |
778 size_t since, | 779 size_t since, |
779 size_t limit) | 780 size_t limit) |
780 { | 781 { |
781 LookupMode mode; | 782 LookupMode mode; |
782 | 783 |
808 | 809 |
809 | 810 |
810 std::vector<std::string> resources, instances; | 811 std::vector<std::string> resources, instances; |
811 GetIndex().FindCandidates(resources, instances, lookup); | 812 GetIndex().FindCandidates(resources, instances, lookup); |
812 | 813 |
814 #if 1 | |
815 { | |
816 std::vector<std::string> resources2, instances2; | |
817 | |
818 if (lookup.GetLevel() == ResourceType_Patient) | |
819 { | |
820 GetIndex().ApplyLookupPatients(resources2, instances2, lookup2, limit /* TODO */); | |
821 } | |
822 else | |
823 { | |
824 GetIndex().ApplyLookupResources(resources2, instances2, lookup2, lookup.GetLevel(), limit /* TODO */); | |
825 } | |
826 | |
827 std::set<std::string> r; | |
828 for (size_t i = 0; i < resources2.size(); i++) | |
829 { | |
830 r.insert(resources[i]); | |
831 } | |
832 | |
833 assert(r.size() == resources.size()); | |
834 | |
835 for (size_t i = 0; i < resources.size(); i++) | |
836 { | |
837 assert(r.find(resources[i]) != r.end()); | |
838 } | |
839 } | |
840 #endif | |
841 | |
813 LOG(INFO) << "Number of candidate resources after fast DB filtering on main DICOM tags: " << resources.size(); | 842 LOG(INFO) << "Number of candidate resources after fast DB filtering on main DICOM tags: " << resources.size(); |
814 | 843 |
815 assert(resources.size() == instances.size()); | 844 assert(resources.size() == instances.size()); |
816 | 845 |
817 size_t countResults = 0; | 846 size_t countResults = 0; |