Mercurial > hg > orthanc
diff OrthancServer/Search/LookupIdentifierQuery.cpp @ 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.cpp Mon Oct 26 17:33:55 2015 +0100 +++ b/OrthancServer/Search/LookupIdentifierQuery.cpp Tue Oct 27 10:54:51 2015 +0100 @@ -70,9 +70,10 @@ DICOM_TAG_SOP_INSTANCE_UID }; - static void LoadIdentifiers(const DicomTag*& tags, - size_t& size, - ResourceType level) + + void LookupIdentifierQuery::LoadIdentifiers(const DicomTag*& tags, + size_t& size, + ResourceType level) { switch (level) { @@ -102,18 +103,20 @@ } - LookupIdentifierQuery::Union::~Union() + LookupIdentifierQuery::Disjunction::~Disjunction() { - for (size_t i = 0; i < union_.size(); i++) + for (size_t i = 0; i < disjunction_.size(); i++) { - delete union_[i]; + delete disjunction_[i]; } } - void LookupIdentifierQuery::Union::Add(const Constraint& constraint) + void LookupIdentifierQuery::Disjunction::Add(const DicomTag& tag, + IdentifierConstraintType type, + const std::string& value) { - union_.push_back(new Constraint(constraint)); + disjunction_.push_back(new Constraint(tag, type, value)); } @@ -153,23 +156,14 @@ const std::string& value) { assert(IsIdentifier(tag)); - - Constraint constraint(tag, type, NormalizeIdentifier(value)); - constraints_.push_back(new Union); - constraints_.back()->Add(constraint); + constraints_.back()->Add(tag, type, value); } - void LookupIdentifierQuery::AddDisjunction(const std::list<Constraint>& constraints) + LookupIdentifierQuery::Disjunction& LookupIdentifierQuery::AddDisjunction() { - constraints_.push_back(new Union); - - for (std::list<Constraint>::const_iterator - it = constraints.begin(); it != constraints.end(); ++it) - { - assert(IsIdentifier(it->GetTag())); - constraints_.back()->Add(*it); - } + constraints_.push_back(new Disjunction); + return *constraints_.back(); }