Mercurial > hg > orthanc
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);