# HG changeset patch # User Sebastien Jodogne # Date 1446028318 -3600 # Node ID 3a4f7dc00f491258bbc0d942253bc87b0e014e46 # Parent faf2ecab34726bb2879c20494190cee96ba8c359 fix diff -r faf2ecab3472 -r 3a4f7dc00f49 OrthancServer/Search/ListConstraint.cpp --- a/OrthancServer/Search/ListConstraint.cpp Tue Oct 27 20:31:34 2015 +0100 +++ b/OrthancServer/Search/ListConstraint.cpp Wed Oct 28 11:31:58 2015 +0100 @@ -40,14 +40,14 @@ { if (isCaseSensitive_) { + allowedValues_.insert(value); + } + else + { std::string s = value; Toolbox::ToUpperCase(s); allowedValues_.insert(s); } - else - { - allowedValues_.insert(value); - } } @@ -67,7 +67,7 @@ { std::string v = value; - if (isCaseSensitive_) + if (!isCaseSensitive_) { Toolbox::ToUpperCase(v); } diff -r faf2ecab3472 -r 3a4f7dc00f49 OrthancServer/Search/LookupResource.cpp --- a/OrthancServer/Search/LookupResource.cpp Tue Oct 27 20:31:34 2015 +0100 +++ b/OrthancServer/Search/LookupResource.cpp Wed Oct 28 11:31:58 2015 +0100 @@ -315,7 +315,17 @@ void LookupResource::FindCandidates(std::list& result, IDatabaseWrapper& database) const { - SetOfResources candidates(database, level_); + ResourceType startingLevel; + if (level_ == ResourceType_Patient) + { + startingLevel = ResourceType_Patient; + } + else + { + startingLevel = ResourceType_Study; + } + + SetOfResources candidates(database, startingLevel); switch (level_) { diff -r faf2ecab3472 -r 3a4f7dc00f49 OrthancServer/Search/RangeConstraint.cpp --- a/OrthancServer/Search/RangeConstraint.cpp Tue Oct 27 20:31:34 2015 +0100 +++ b/OrthancServer/Search/RangeConstraint.cpp Wed Oct 28 11:31:58 2015 +0100 @@ -46,7 +46,7 @@ upper_(upper), isCaseSensitive_(isCaseSensitive) { - if (isCaseSensitive_) + if (!isCaseSensitive_) { Toolbox::ToUpperCase(lower_); Toolbox::ToUpperCase(upper_); @@ -65,7 +65,7 @@ { std::string v = value; - if (isCaseSensitive_) + if (!isCaseSensitive_) { Toolbox::ToUpperCase(v); } diff -r faf2ecab3472 -r 3a4f7dc00f49 OrthancServer/Search/ValueConstraint.cpp --- a/OrthancServer/Search/ValueConstraint.cpp Tue Oct 27 20:31:34 2015 +0100 +++ b/OrthancServer/Search/ValueConstraint.cpp Wed Oct 28 11:31:58 2015 +0100 @@ -35,6 +35,8 @@ #include "../../Core/Toolbox.h" +#include + namespace Orthanc { ValueConstraint::ValueConstraint(const DicomTag& tag, @@ -44,7 +46,7 @@ value_(value), isCaseSensitive_(isCaseSensitive) { - if (isCaseSensitive) + if (!isCaseSensitive) { Toolbox::ToUpperCase(value_); } @@ -65,7 +67,7 @@ else { std::string v; - Toolbox::ToLowerCase(v, value); + Toolbox::ToUpperCase(v, value); return value_ == v; } } diff -r faf2ecab3472 -r 3a4f7dc00f49 OrthancServer/ServerIndex.cpp --- a/OrthancServer/ServerIndex.cpp Tue Oct 27 20:31:34 2015 +0100 +++ b/OrthancServer/ServerIndex.cpp Wed Oct 28 11:31:58 2015 +0100 @@ -2131,6 +2131,8 @@ for (std::list::const_iterator it = tmp.begin(); it != tmp.end(); ++it, pos++) { + assert(db_.GetResourceType(*it) == lookup.GetLevel()); + int64_t instance; if (!Toolbox::FindOneChildInstance(instance, db_, *it, lookup.GetLevel())) {