diff OrthancServer/Sources/ResourceFinder.cpp @ 5697:f375e9983943 find-refactoring

fix
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 12 Jul 2024 11:55:27 +0200
parents 0f8b6214308a
children e8e028aed89f
line wrap: on
line diff
--- a/OrthancServer/Sources/ResourceFinder.cpp	Fri Jul 12 10:56:33 2024 +0200
+++ b/OrthancServer/Sources/ResourceFinder.cpp	Fri Jul 12 11:55:27 2024 +0200
@@ -624,8 +624,8 @@
     {
       if (request_.GetLevel() == ResourceType_Patient)
       {
-        request_.GetParentSpecification(ResourceType_Patient).SetRetrieveMainDicomTags(true);
-        request_.GetParentSpecification(ResourceType_Patient).SetRetrieveMetadata(true);
+        request_.SetRetrieveMainDicomTags(true);
+        request_.SetRetrieveMetadata(true);
         requestedPatientTags_.insert(tag);
       }
       else
@@ -634,8 +634,19 @@
          * This comes from the fact that patient-level tags are copied
          * at the study level, as implemented by "ResourcesContent::AddResource()".
          **/
-        request_.GetParentSpecification(ResourceType_Study).SetRetrieveMainDicomTags(true);
-        request_.GetParentSpecification(ResourceType_Study).SetRetrieveMetadata(true);
+        requestedStudyTags_.insert(tag);
+
+        if (request_.GetLevel() == ResourceType_Study)
+        {
+          request_.SetRetrieveMainDicomTags(true);
+          request_.SetRetrieveMetadata(true);
+        }
+        else
+        {
+          request_.GetParentSpecification(ResourceType_Study).SetRetrieveMainDicomTags(true);
+          request_.GetParentSpecification(ResourceType_Study).SetRetrieveMetadata(true);
+        }
+
         requestedStudyTags_.insert(tag);
       }
 
@@ -652,8 +663,17 @@
       }
       else
       {
-        request_.GetParentSpecification(ResourceType_Study).SetRetrieveMainDicomTags(true);
-        request_.GetParentSpecification(ResourceType_Study).SetRetrieveMetadata(true);
+        if (request_.GetLevel() == ResourceType_Study)
+        {
+          request_.SetRetrieveMainDicomTags(true);
+          request_.SetRetrieveMetadata(true);
+        }
+        else
+        {
+          request_.GetParentSpecification(ResourceType_Study).SetRetrieveMainDicomTags(true);
+          request_.GetParentSpecification(ResourceType_Study).SetRetrieveMetadata(true);
+        }
+
         requestedStudyTags_.insert(tag);
       }
 
@@ -671,8 +691,17 @@
       }
       else
       {
-        request_.GetParentSpecification(ResourceType_Series).SetRetrieveMainDicomTags(true);
-        request_.GetParentSpecification(ResourceType_Series).SetRetrieveMetadata(true);
+        if (request_.GetLevel() == ResourceType_Series)
+        {
+          request_.SetRetrieveMainDicomTags(true);
+          request_.SetRetrieveMetadata(true);
+        }
+        else
+        {
+          request_.GetParentSpecification(ResourceType_Series).SetRetrieveMainDicomTags(true);
+          request_.GetParentSpecification(ResourceType_Series).SetRetrieveMetadata(true);
+        }
+
         requestedSeriesTags_.insert(tag);
       }