Mercurial > hg > orthanc
diff OrthancServer/Sources/Database/FindResponse.cpp @ 5671:b4c97c51f9db find-refactoring
added FindResponse::Resource::ChildrenInformation
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 06 Jul 2024 13:57:14 +0200 |
parents | 93dff1fccf36 |
children | e300f22a46f0 |
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/FindResponse.cpp Sat Jul 06 01:04:25 2024 +0200 +++ b/OrthancServer/Sources/Database/FindResponse.cpp Sat Jul 06 13:57:14 2024 +0200 @@ -142,14 +142,27 @@ } - std::set<std::string>& FindResponse::Resource::GetChildrenIdentifiers(ResourceType level) + void FindResponse::ChildrenInformation::AddIdentifier(const std::string& identifier) + { + if (identifiers_.find(identifier) == identifiers_.end()) + { + identifiers_.insert(identifier); + } + else + { + throw OrthancException(ErrorCode_BadSequenceOfCalls); + } + } + + + FindResponse::ChildrenInformation& FindResponse::Resource::GetChildrenInformation(ResourceType level) { switch (level) { case ResourceType_Study: if (level_ == ResourceType_Patient) { - return childrenStudiesIdentifiers_; + return childrenStudiesInformation_; } else { @@ -160,7 +173,7 @@ if (level_ == ResourceType_Patient || level_ == ResourceType_Study) { - return childrenSeriesIdentifiers_; + return childrenSeriesInformation_; } else { @@ -172,7 +185,7 @@ level_ == ResourceType_Study || level_ == ResourceType_Series) { - return childrenInstancesIdentifiers_; + return childrenInstancesInformation_; } else { @@ -185,22 +198,6 @@ } - void FindResponse::Resource::AddChildIdentifier(ResourceType level, - const std::string& identifier) - { - std::set<std::string>& target = GetChildrenIdentifiers(level); - - if (target.find(identifier) == target.end()) - { - target.insert(identifier); - } - else - { - throw OrthancException(ErrorCode_BadSequenceOfCalls); - } - } - - FindResponse::MainDicomTagsAtLevel& FindResponse::Resource::GetMainDicomTagsAtLevel(ResourceType level) { if (!IsResourceLevelAboveOrEqual(level, level_)) @@ -423,7 +420,7 @@ const std::string& FindResponse::Resource::GetOneInstanceIdentifier() const { - const std::set<std::string>& instances = GetChildrenIdentifiers(ResourceType_Instance); + const std::set<std::string>& instances = GetChildrenInformation(ResourceType_Instance).GetIdentifiers(); if (instances.size() == 0) { @@ -531,7 +528,7 @@ { if (request.GetChildrenRetrieveSpecification(levels[i]).IsRetrieveIdentifiers()) { - const std::set<std::string>& ids = GetChildrenIdentifiers(levels[i]); + const std::set<std::string>& ids = GetChildrenInformation(levels[i]).GetIdentifiers(); Json::Value v = Json::arrayValue; for (std::set<std::string>::const_iterator it = ids.begin(); it != ids.end(); ++it)