Mercurial > hg > orthanc
diff OrthancServer/Sources/Database/FindResponse.cpp @ 5619:1864b16bc7b1 find-refactoring
added FindRequest::ParentRetrieveSpecification
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 11 May 2024 12:13:31 +0200 |
parents | d4b570834d3a |
children | 732ec9feeea8 |
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/FindResponse.cpp Sat May 11 11:23:25 2024 +0200 +++ b/OrthancServer/Sources/Database/FindResponse.cpp Sat May 11 12:13:31 2024 +0200 @@ -477,63 +477,38 @@ target["ParentID"] = GetParentIdentifier(); } - if (request.IsRetrieveMainDicomTags(ResourceType_Patient)) + if (request.IsRetrieveMainDicomTags()) { DicomMap m; - GetMainDicomTags(m, ResourceType_Patient); - DebugDicomMap(target["Patient"]["MainDicomTags"], m); - } - - if (request.IsRetrieveMetadata(ResourceType_Patient)) - { - DebugMetadata(target["Patient"]["Metadata"], GetMetadata(ResourceType_Patient)); + GetMainDicomTags(m, request.GetLevel()); + DebugDicomMap(target[EnumerationToString(GetLevel())]["MainDicomTags"], m); } - if (request.GetLevel() != ResourceType_Patient) + if (request.IsRetrieveMetadata()) { - if (request.IsRetrieveMainDicomTags(ResourceType_Study)) - { - DicomMap m; - GetMainDicomTags(m, ResourceType_Study); - DebugDicomMap(target["Study"]["MainDicomTags"], m); - } - - if (request.IsRetrieveMetadata(ResourceType_Study)) - { - DebugMetadata(target["Study"]["Metadata"], GetMetadata(ResourceType_Study)); - } + DebugMetadata(target[EnumerationToString(GetLevel())]["Metadata"], GetMetadata(request.GetLevel())); } - if (request.GetLevel() != ResourceType_Patient && - request.GetLevel() != ResourceType_Study) + static const ResourceType levels[4] = { ResourceType_Patient, ResourceType_Study, ResourceType_Series, ResourceType_Instance }; + + for (size_t i = 0; i < 4; i++) { - if (request.IsRetrieveMainDicomTags(ResourceType_Series)) - { - DicomMap m; - GetMainDicomTags(m, ResourceType_Series); - DebugDicomMap(target["Series"]["MainDicomTags"], m); - } - - if (request.IsRetrieveMetadata(ResourceType_Series)) + if (levels[i] != request.GetLevel() && + IsResourceLevelAboveOrEqual(levels[i], request.GetLevel())) { - DebugMetadata(target["Series"]["Metadata"], GetMetadata(ResourceType_Series)); - } - } + const char* level = EnumerationToString(levels[i]); - if (request.GetLevel() != ResourceType_Patient && - request.GetLevel() != ResourceType_Study && - request.GetLevel() != ResourceType_Series) - { - if (request.IsRetrieveMainDicomTags(ResourceType_Instance)) - { - DicomMap m; - GetMainDicomTags(m, ResourceType_Instance); - DebugDicomMap(target["Instance"]["MainDicomTags"], m); - } + if (request.GetParentRetrieveSpecification(levels[i]).IsRetrieveMainDicomTags()) + { + DicomMap m; + GetMainDicomTags(m, levels[i]); + DebugDicomMap(target[level]["MainDicomTags"], m); + } - if (request.IsRetrieveMetadata(ResourceType_Instance)) - { - DebugMetadata(target["Instance"]["Metadata"], GetMetadata(ResourceType_Instance)); + if (request.GetParentRetrieveSpecification(levels[i]).IsRetrieveMainDicomTags()) + { + DebugMetadata(target[level]["Metadata"], GetMetadata(levels[i])); + } } }