diff OrthancServer/Sources/Database/FindRequest.h @ 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 4690a0d2b01e
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/FindRequest.h	Tue May 07 12:53:12 2024 +0200
+++ b/OrthancServer/Sources/Database/FindRequest.h	Tue May 07 18:44:53 2024 +0200
@@ -166,13 +166,20 @@
     LabelsConstraint                     labelsContraint_;
     std::deque<Ordering*>                ordering_;             // The ordering criteria (note: the order is important !)
 
-    bool                                 retrieveMainDicomTags_;
-    bool                                 retrieveMetadata_;
+    bool                                 retrieveMainDicomTagsPatients_;
+    bool                                 retrieveMainDicomTagsStudies_;
+    bool                                 retrieveMainDicomTagsSeries_;
+    bool                                 retrieveMainDicomTagsInstances_;
+    bool                                 retrieveMetadataPatients_;
+    bool                                 retrieveMetadataStudies_;
+    bool                                 retrieveMetadataSeries_;
+    bool                                 retrieveMetadataInstances_;
     bool                                 retrieveLabels_;
     bool                                 retrieveAttachments_;
     bool                                 retrieveParentIdentifier_;
     bool                                 retrieveChildrenIdentifiers_;
     std::set<MetadataType>               retrieveChildrenMetadata_;
+    std::set<FileContentType>            retrieveAttachmentOfOneInstance_;
 
   public:
     explicit FindRequest(ResourceType level);
@@ -259,25 +266,15 @@
       return labelsContraint_;
     }
 
-    void SetRetrieveMetadata(bool retrieve)
-    {
-      retrieveMetadata_ = retrieve;
-    }
+    void SetRetrieveMainDicomTags(ResourceType level,
+                                  bool retrieve);
 
-    bool IsRetrieveMainDicomTags() const
-    {
-      return retrieveMainDicomTags_;
-    }
+    bool IsRetrieveMainDicomTags(ResourceType level) const;
 
-    void SetRetrieveMainDicomTags(bool retrieve)
-    {
-      retrieveMainDicomTags_ = retrieve;
-    }
+    void SetRetrieveMetadata(ResourceType level,
+                             bool retrieve);
 
-    bool IsRetrieveMetadata() const
-    {
-      return retrieveMetadata_;
-    }
+    bool IsRetrieveMetadata(ResourceType level) const;
 
     void SetRetrieveLabels(bool retrieve)
     {
@@ -324,5 +321,12 @@
     {
       return retrieveChildrenMetadata_;
     }
+
+    void AddRetrieveAttachmentOfOneInstance(FileContentType type);
+
+    const std::set<FileContentType>& GetRetrieveAttachmentOfOneInstance() const
+    {
+      return retrieveAttachmentOfOneInstance_;
+    }
   };
 }