diff OrthancServer/Search/LookupIdentifierQuery.h @ 1749:99f4a05f39fa db-changes

various types of constraints
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 27 Oct 2015 10:54:51 +0100
parents 92203f713205
children 55d52567bebb
line wrap: on
line diff
--- a/OrthancServer/Search/LookupIdentifierQuery.h	Mon Oct 26 17:33:55 2015 +0100
+++ b/OrthancServer/Search/LookupIdentifierQuery.h	Tue Oct 27 10:54:51 2015 +0100
@@ -76,7 +76,7 @@
                  const std::string& value) : 
         tag_(tag),
         type_(type),
-        value_(value)
+        value_(NormalizeIdentifier(value))
       {
       }
 
@@ -97,30 +97,32 @@
     };
 
 
-  private:
-    class Union
+    class Disjunction : public boost::noncopyable
     {
     private:
-      std::vector<Constraint*>  union_;
+      std::vector<Constraint*>  disjunction_;
 
     public:
-      ~Union();
+      ~Disjunction();
 
-      void Add(const Constraint& constraint);
+      void Add(const DicomTag& tag,
+               IdentifierConstraintType type,
+               const std::string& value);
 
       size_t GetSize() const
       {
-        return union_.size();
+        return disjunction_.size();
       }
 
       const Constraint&  GetConstraint(size_t i) const
       {
-        return *union_[i];
+        return *disjunction_[i];
       }
     };
 
 
-    typedef std::vector<Union*>  Constraints;
+  private:
+    typedef std::vector<Disjunction*>  Constraints;
 
     ResourceType  level_;
     Constraints   constraints_;
@@ -143,7 +145,7 @@
                        IdentifierConstraintType type,
                        const std::string& value);
 
-    void AddDisjunction(const std::list<Constraint>& constraints);
+    Disjunction& AddDisjunction();
 
     ResourceType GetLevel() const
     {
@@ -159,6 +161,10 @@
     void Apply(std::list<std::string>& result,
                IDatabaseWrapper& database);
 
+    static void LoadIdentifiers(const DicomTag*& tags,
+                                size_t& size,
+                                ResourceType level);
+
     static bool IsIdentifier(const DicomTag& tag,
                              ResourceType level);