diff OrthancServer/Sources/Database/FindRequest.cpp @ 5619:1864b16bc7b1 find-refactoring

added FindRequest::ParentRetrieveSpecification
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 11 May 2024 12:13:31 +0200
parents 4640b7ae9a11
children 732ec9feeea8
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/FindRequest.cpp	Sat May 11 11:23:25 2024 +0200
+++ b/OrthancServer/Sources/Database/FindRequest.cpp	Sat May 11 12:13:31 2024 +0200
@@ -31,19 +31,37 @@
 
 namespace Orthanc
 {
+  FindRequest::ParentRetrieveSpecification& FindRequest::GetParentRetrieveSpecification(ResourceType level)
+  {
+    if (!IsResourceLevelAboveOrEqual(level, level_))
+    {
+      throw OrthancException(ErrorCode_ParameterOutOfRange);
+    }
+
+    switch (level)
+    {
+      case ResourceType_Patient:
+        return retrieveParentPatient_;
+
+      case ResourceType_Study:
+        return retrieveParentStudy_;
+
+      case ResourceType_Series:
+        return retrieveParentSeries_;
+
+      default:
+        throw OrthancException(ErrorCode_ParameterOutOfRange);
+    }
+  }
+
+
   FindRequest::FindRequest(ResourceType level) :
     level_(level),
     hasLimits_(false),
     limitsSince_(0),
     limitsCount_(0),
-    retrieveMainDicomTagsPatients_(false),
-    retrieveMainDicomTagsStudies_(false),
-    retrieveMainDicomTagsSeries_(false),
-    retrieveMainDicomTagsInstances_(false),
-    retrieveMetadataPatients_(false),
-    retrieveMetadataStudies_(false),
-    retrieveMetadataSeries_(false),
-    retrieveMetadataInstances_(false),
+    retrieveMainDicomTags_(false),
+    retrieveMetadata_(false),
     retrieveLabels_(false),
     retrieveAttachments_(false),
     retrieveParentIdentifier_(false),
@@ -238,124 +256,6 @@
   }
 
 
-  void FindRequest::SetRetrieveMainDicomTags(ResourceType level,
-                                             bool retrieve)
-  {
-    if (!IsResourceLevelAboveOrEqual(level, level_))
-    {
-      throw OrthancException(ErrorCode_ParameterOutOfRange);
-    }
-
-    switch (level)
-    {
-      case ResourceType_Patient:
-        retrieveMainDicomTagsPatients_ = retrieve;
-        break;
-
-      case ResourceType_Study:
-        retrieveMainDicomTagsStudies_ = retrieve;
-        break;
-
-      case ResourceType_Series:
-        retrieveMainDicomTagsSeries_ = retrieve;
-        break;
-
-      case ResourceType_Instance:
-        retrieveMainDicomTagsInstances_ = retrieve;
-        break;
-
-      default:
-        throw OrthancException(ErrorCode_InternalError);
-    }
-  }
-
-
-  bool FindRequest::IsRetrieveMainDicomTags(ResourceType level) const
-  {
-    if (!IsResourceLevelAboveOrEqual(level, level_))
-    {
-      throw OrthancException(ErrorCode_ParameterOutOfRange);
-    }
-
-    switch (level)
-    {
-      case ResourceType_Patient:
-        return retrieveMainDicomTagsPatients_;
-
-      case ResourceType_Study:
-        return retrieveMainDicomTagsStudies_;
-
-      case ResourceType_Series:
-        return retrieveMainDicomTagsSeries_;
-
-      case ResourceType_Instance:
-        return retrieveMainDicomTagsInstances_;
-
-      default:
-        throw OrthancException(ErrorCode_InternalError);
-    }
-  }
-
-
-  void FindRequest::SetRetrieveMetadata(ResourceType level,
-                                        bool retrieve)
-  {
-    if (!IsResourceLevelAboveOrEqual(level, level_))
-    {
-      throw OrthancException(ErrorCode_ParameterOutOfRange);
-    }
-
-    switch (level)
-    {
-      case ResourceType_Patient:
-        retrieveMetadataPatients_ = retrieve;
-        break;
-
-      case ResourceType_Study:
-        retrieveMetadataStudies_ = retrieve;
-        break;
-
-      case ResourceType_Series:
-        retrieveMetadataSeries_ = retrieve;
-        break;
-
-      case ResourceType_Instance:
-        retrieveMetadataInstances_ = retrieve;
-        break;
-
-      default:
-        throw OrthancException(ErrorCode_InternalError);
-    }
-  }
-
-
-  bool FindRequest::IsRetrieveMetadata(ResourceType level) const
-  {
-    if (!IsResourceLevelAboveOrEqual(level, level_))
-    {
-      throw OrthancException(ErrorCode_ParameterOutOfRange);
-    }
-
-    switch (level)
-    {
-      case ResourceType_Patient:
-        return retrieveMetadataPatients_;
-
-      case ResourceType_Study:
-        return retrieveMetadataStudies_;
-
-      case ResourceType_Series:
-        return retrieveMetadataSeries_;
-
-      case ResourceType_Instance:
-        return retrieveMetadataInstances_;
-
-      default:
-        throw OrthancException(ErrorCode_InternalError);
-    }
-  }
-
-
   void FindRequest::SetRetrieveParentIdentifier(bool retrieve)
   {
     if (level_ == ResourceType_Patient)