diff Plugins/Samples/Common/FullOrthancDataset.cpp @ 2180:71b8bec8ca91

improvements
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 25 Nov 2016 17:00:39 +0100
parents de32f3b4ff09
children 403d92d8df83
line wrap: on
line diff
--- a/Plugins/Samples/Common/FullOrthancDataset.cpp	Fri Nov 25 16:11:44 2016 +0100
+++ b/Plugins/Samples/Common/FullOrthancDataset.cpp	Fri Nov 25 17:00:39 2016 +0100
@@ -34,22 +34,8 @@
 
 #include "OrthancPluginCppWrapper.h"
 
-#include <json/reader.h>
-
 namespace OrthancPlugins
 {
-  void FullOrthancDataset::Parse(const std::string& source)
-  {
-    Json::Reader reader;
-
-    if (!reader.parse(source, root_) ||
-        root_.type() != Json::objectValue)
-    {
-      ORTHANC_PLUGINS_THROW_EXCEPTION(OrthancPluginErrorCode_BadFileFormat);
-    }
-  }
-
-
   static const Json::Value* AccessTag(const Json::Value& dataset,
                                       const DicomTag& tag) 
   {
@@ -152,12 +138,27 @@
   }
 
 
+  void FullOrthancDataset::CheckRoot() const
+  {
+    if (root_.type() != Json::objectValue)
+    {
+      ORTHANC_PLUGINS_THROW_EXCEPTION(OrthancPluginErrorCode_BadFileFormat);
+    }
+  }
+
+
   FullOrthancDataset::FullOrthancDataset(IOrthancConnection& orthanc,
                                          const std::string& uri)
   {
-    std::string content;
-    orthanc.RestApiGet(content, uri);
-    Parse(content);
+    IOrthancConnection::RestApiGet(root_, orthanc, uri);
+    CheckRoot();
+  }
+
+
+  FullOrthancDataset::FullOrthancDataset(const std::string& content)
+  {
+    IOrthancConnection::ParseJson(root_, content);
+    CheckRoot();
   }