diff Framework/Inputs/DicomPyramidInstance.cpp @ 64:63d0a5c74460

DicomPyramidInstance::Serialize
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 25 Nov 2016 18:34:17 +0100
parents f45cec2c32e2
children c619c8bd72ed
line wrap: on
line diff
--- a/Framework/Inputs/DicomPyramidInstance.cpp	Fri Nov 25 18:23:09 2016 +0100
+++ b/Framework/Inputs/DicomPyramidInstance.cpp	Fri Nov 25 18:34:17 2016 +0100
@@ -29,6 +29,7 @@
 #include "../DicomToolbox.h"
 
 #include <cassert>
+#include <json/writer.h>
 
 namespace OrthancWSI
 {
@@ -205,4 +206,29 @@
     assert(frame < frames_.size());
     return frames_[frame].second;
   }
+
+  
+  void DicomPyramidInstance::Serialize(std::string& result) const
+  {
+    Json::Value frames = Json::arrayValue;
+    for (size_t i = 0; i < frames_.size(); i++)
+    {
+      Json::Value frame = Json::arrayValue;
+      frame.append(frames_[i].first);
+      frame.append(frames_[i].second);
+
+      frames.append(frame);
+    }
+
+    Json::Value value;
+    value["PixelFormat"] = Orthanc::EnumerationToString(format_);
+    value["TileHeight"] = tileHeight_;
+    value["TileWidth"] = tileWidth_;
+    value["TotalHeight"] = totalHeight_;
+    value["TotalWidth"] = totalWidth_;    
+    value["Frames"] = frames;
+
+    Json::FastWriter writer;
+    result = writer.write(value);
+  }
 }