diff OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp @ 5586:fc3914c07dd3 find-refactoring

refactoring FindResponse
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 03 May 2024 17:02:02 +0200
parents 74cc31c8db2b
children b51ee994cd6f
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp	Sat Apr 27 22:15:37 2024 +0200
+++ b/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp	Fri May 03 17:02:02 2024 +0200
@@ -3865,7 +3865,7 @@
   // But, finally, we might just get rid of ExpandedResource and replace it by FindResponse
   ExpandedResource::ExpandedResource(const FindRequest& request,
                                      const FindResponse::Item& item) :
-    id_(item.GetIdentifiers().GetLevel(request.GetLevel())),
+    id_(item.GetIdentifier()),
     level_(request.GetLevel()),
     isStable_(false),
     expectedNumberOfInstances_(0),
@@ -3874,17 +3874,21 @@
   {
     if (request.HasResponseContent(FindRequest::ResponseContent_MainDicomTags))
     {
-      tags_.Assign(item.GetDicomMap());
+      item.GetDicomTagsAtLevel(tags_, request.GetLevel());
     }
 
     if (request.HasResponseContent(FindRequest::ResponseContent_Children))
     {
-      childrenIds_ = item.GetChildren();
+      const std::set<std::string>& s = item.GetChildrenIdentifiers(GetChildResourceType(request.GetLevel()));
+      for (std::set<std::string>::const_iterator it = s.begin(); it != s.end(); ++it)
+      {
+        childrenIds_.push_back(*it);
+      }
     }
 
     if (request.HasResponseContent(FindRequest::ResponseContent_Parent))
     {
-      parentId_ = item.GetIdentifiers().GetLevel(GetParentResourceType(request.GetLevel()));
+      parentId_ = item.GetParentIdentifier();
     }
 
     if (request.HasResponseContent(FindRequest::ResponseContent_Metadata))