diff OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp @ 5596:81a29ad7fb4b find-refactoring

added possibility to retrieve main DICOM tags and metadata at any level
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 07 May 2024 18:44:53 +0200
parents a87f2a56257d
children 3f24eb4013d8
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp	Tue May 07 12:53:12 2024 +0200
+++ b/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp	Tue May 07 18:44:53 2024 +0200
@@ -3928,15 +3928,15 @@
       throw OrthancException(ErrorCode_InternalError);
     }
 
-    if (request.IsRetrieveMainDicomTags())
+    if (request.IsRetrieveMainDicomTags(request.GetLevel()))
     {
-      resource.GetMainDicomTags(tags_);
+      resource.GetMainDicomTags(tags_, request.GetLevel());
     }
 
     if (request.IsRetrieveChildrenIdentifiers())
     {
-      const std::set<std::string>& s = resource.GetChildrenIdentifiers(GetChildResourceType(request.GetLevel()));
-      for (std::set<std::string>::const_iterator it = s.begin(); it != s.end(); ++it)
+      const std::set<std::string>& children = resource.GetChildrenIdentifiers();
+      for (std::set<std::string>::const_iterator it = children.begin(); it != children.end(); ++it)
       {
         childrenIds_.push_back(*it);
       }
@@ -3947,36 +3947,36 @@
       parentId_ = resource.GetParentIdentifier();
     }
 
-    if (request.IsRetrieveMetadata())
+    if (request.IsRetrieveMetadata(request.GetLevel()))
     {
-      metadata_ = resource.GetMetadata();
+      metadata_ = resource.GetMetadata(request.GetLevel());
       std::string value;
-      if (resource.LookupMetadata(value, MetadataType_MainDicomTagsSignature))
+      if (resource.LookupMetadata(value, request.GetLevel(), MetadataType_MainDicomTagsSignature))
       {
         mainDicomTagsSignature_ = value;
       }
-      if (resource.LookupMetadata(value, MetadataType_AnonymizedFrom))
+      if (resource.LookupMetadata(value, request.GetLevel(), MetadataType_AnonymizedFrom))
       {
         anonymizedFrom_ = value;
       }
-      if (resource.LookupMetadata(value, MetadataType_ModifiedFrom))
+      if (resource.LookupMetadata(value, request.GetLevel(), MetadataType_ModifiedFrom))
       {
         modifiedFrom_ = value;
       }
-      if (resource.LookupMetadata(value, MetadataType_LastUpdate))
+      if (resource.LookupMetadata(value, request.GetLevel(), MetadataType_LastUpdate))
       {
         lastUpdate_ = value;
       }
       if (request.GetLevel() == ResourceType_Series)
       {
-        if (resource.LookupMetadata(value, MetadataType_Series_ExpectedNumberOfInstances))
+        if (resource.LookupMetadata(value, request.GetLevel(), MetadataType_Series_ExpectedNumberOfInstances))
         {
           expectedNumberOfInstances_ = boost::lexical_cast<int>(value);
         }
       }
       if (request.GetLevel() == ResourceType_Instance)
       {
-        if (resource.LookupMetadata(value, MetadataType_Instance_IndexInSeries))
+        if (resource.LookupMetadata(value, request.GetLevel(), MetadataType_Instance_IndexInSeries))
         {
           indexInSeries_ = boost::lexical_cast<int>(value);
         }