Mercurial > hg > orthanc
diff OrthancServer/Search/LookupIdentifierQuery.cpp @ 3001:7695a9c81099
refactoring /tools/find using LookupResource::IVisitor
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 11 Dec 2018 18:36:38 +0100 |
parents | e583478e0c6c |
children | 4e43e67f8ecf |
line wrap: on
line diff
--- a/OrthancServer/Search/LookupIdentifierQuery.cpp Tue Dec 11 13:21:34 2018 +0100 +++ b/OrthancServer/Search/LookupIdentifierQuery.cpp Tue Dec 11 18:36:38 2018 +0100 @@ -34,9 +34,10 @@ #include "../PrecompiledHeadersServer.h" #include "LookupIdentifierQuery.h" +#include "../../Core/DicomParsing/FromDcmtkBridge.h" #include "../../Core/OrthancException.h" +#include "../ServerToolbox.h" #include "SetOfResources.h" -#include "../../Core/DicomParsing/FromDcmtkBridge.h" #include <cassert> @@ -44,6 +45,28 @@ namespace Orthanc { + LookupIdentifierQuery::SingleConstraint:: + SingleConstraint(const DicomTag& tag, + IdentifierConstraintType type, + const std::string& value) : + tag_(tag), + type_(type), + value_(ServerToolbox::NormalizeIdentifier(value)) + { + } + + + LookupIdentifierQuery::RangeConstraint:: + RangeConstraint(const DicomTag& tag, + const std::string& start, + const std::string& end) : + tag_(tag), + start_(ServerToolbox::NormalizeIdentifier(start)), + end_(ServerToolbox::NormalizeIdentifier(end)) + { + } + + LookupIdentifierQuery::Disjunction::~Disjunction() { for (size_t i = 0; i < singleConstraints_.size(); i++) @@ -84,6 +107,12 @@ } + bool LookupIdentifierQuery::IsIdentifier(const DicomTag& tag) + { + return ServerToolbox::IsIdentifier(tag, level_); + } + + void LookupIdentifierQuery::AddConstraint(DicomTag tag, IdentifierConstraintType type, const std::string& value)