changeset 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 d77292629430
children 56859a7ffa99 e47ac5e133b1
files NEWS OrthancServer/Sources/ServerContext.cpp
diffstat 2 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Wed Jul 03 17:50:59 2024 +0200
+++ b/NEWS	Fri Jul 05 19:18:23 2024 +0200
@@ -17,6 +17,9 @@
   DB plugins that are implementing the UpdateAndGetStatistics function (currently only
   PostgreSQL).  This avoids very long update times in case you don't call /statistics
   for a long period.
+* Fix C-Find queries not returning computed tags like ModalitiesInStudy, NumberOfStudyRelatedSeries, ...
+  in very specific use-cases.
+
 
 
 Version 1.12.4 (2024-06-05)
--- 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);
       }