diff OrthancServer/DicomProtocol/DicomFindAnswers.h @ 1787:1b1d5470233f worklists

refactoring of DicomFindAnswers
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 18 Nov 2015 15:50:32 +0100
parents 164d78911382
children bdcc1dba4a53
line wrap: on
line diff
--- a/OrthancServer/DicomProtocol/DicomFindAnswers.h	Wed Nov 18 12:00:14 2015 +0100
+++ b/OrthancServer/DicomProtocol/DicomFindAnswers.h	Wed Nov 18 15:50:32 2015 +0100
@@ -32,17 +32,14 @@
 
 #pragma once
 
-#include "../../Core/DicomFormat/DicomMap.h"
-
-#include <vector>
-#include <json/json.h>
+#include "../ParsedDicomFile.h"
 
 namespace Orthanc
 {
   class DicomFindAnswers : public boost::noncopyable
   {
   private:
-    std::vector<DicomMap*> items_;
+    std::vector<ParsedDicomFile*> items_;
 
   public:
     ~DicomFindAnswers()
@@ -54,22 +51,25 @@
 
     void Reserve(size_t index);
 
-    void Add(const DicomMap& map)
-    {
-      items_.push_back(map.Clone());
-    }
+    void Add(const DicomMap& map);
+
+    void Add(ParsedDicomFile& dicom);
+
+    void Add(const char* dicom,
+             size_t size);
 
     size_t GetSize() const
     {
       return items_.size();
     }
 
-    const DicomMap& GetAnswer(size_t index) const
-    {
-      return *items_.at(index);
-    }
+    ParsedDicomFile& GetAnswer(size_t index) const;
 
     void ToJson(Json::Value& target,
                 bool simplify) const;
+
+    void ToJson(Json::Value& target,
+                size_t index,
+                bool simplify) const;
   };
 }