diff OrthancServer/Sources/ServerContext.cpp @ 5669:f690568f0325

Fix C-Find queries not returning computed tags in very specific use-cases
author Alain Mazy <am@orthanc.team>
date Fri, 05 Jul 2024 19:18:23 +0200
parents f7adfb22e20e
children 56859a7ffa99 0c218d90096e
line wrap: on
line diff
--- a/OrthancServer/Sources/ServerContext.cpp	Wed Jul 03 17:50:59 2024 +0200
+++ b/OrthancServer/Sources/ServerContext.cpp	Fri Jul 05 19:18:23 2024 +0200
@@ -2578,7 +2578,13 @@
       Toolbox::GetMissingsFromSet(missingTags, requestedTags, retrievedTags);
 
       // if all possible tags have been read, no need to get them from DB anymore
-      if (missingTags.size() == 0 || DicomMap::HasOnlyComputedTags(missingTags))
+      if (missingTags.size() > 0 && DicomMap::HasOnlyComputedTags(missingTags))
+      {
+        resource.missingRequestedTags_ = missingTags;
+        ComputeTags(resource, *this, publicId, level, requestedTags);
+        return true;
+      }
+      else if (missingTags.size() == 0)
       {
         expandFlags = static_cast<ExpandResourceFlags>(expandFlags & ~ExpandResourceFlags_IncludeMainDicomTags);
       }