diff OrthancServer/Search/DatabaseLookup.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 fd587cf51a89
children ce272138f15e
line wrap: on
line diff
--- a/OrthancServer/Search/DatabaseLookup.cpp	Wed Dec 19 13:10:48 2018 +0100
+++ b/OrthancServer/Search/DatabaseLookup.cpp	Wed Dec 19 13:58:28 2018 +0100
@@ -76,7 +76,7 @@
   }
 
 
-  bool DatabaseLookup::IsMatch(const DicomMap& value)
+  bool DatabaseLookup::IsMatch(const DicomMap& value) const
   {
     for (size_t i = 0; i < constraints_.size(); i++)
     {
@@ -227,4 +227,24 @@
     AddDicomConstraintInternal(tag, FromDcmtkBridge::LookupValueRepresentation(tag),
                                dicomQuery, caseSensitive, mandatoryTag);
   }
+
+
+  bool DatabaseLookup::HasOnlyMainDicomTags() const
+  {
+    std::set<DicomTag> mainTags;
+    DicomMap::GetMainDicomTags(mainTags);
+
+    for (size_t i = 0; i < constraints_.size(); i++)
+    {
+      assert(constraints_[i] != NULL);
+      
+      if (mainTags.find(constraints_[i]->GetTag()) == mainTags.end())
+      {
+        // This is not a main DICOM tag
+        return false;
+      }
+    }
+
+    return true;
+  }
 }