comparison 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
comparison
equal deleted inserted replaced
2179:de32f3b4ff09 2180:71b8bec8ca91
32 32
33 #include "FullOrthancDataset.h" 33 #include "FullOrthancDataset.h"
34 34
35 #include "OrthancPluginCppWrapper.h" 35 #include "OrthancPluginCppWrapper.h"
36 36
37 #include <json/reader.h>
38
39 namespace OrthancPlugins 37 namespace OrthancPlugins
40 { 38 {
41 void FullOrthancDataset::Parse(const std::string& source)
42 {
43 Json::Reader reader;
44
45 if (!reader.parse(source, root_) ||
46 root_.type() != Json::objectValue)
47 {
48 ORTHANC_PLUGINS_THROW_EXCEPTION(OrthancPluginErrorCode_BadFileFormat);
49 }
50 }
51
52
53 static const Json::Value* AccessTag(const Json::Value& dataset, 39 static const Json::Value* AccessTag(const Json::Value& dataset,
54 const DicomTag& tag) 40 const DicomTag& tag)
55 { 41 {
56 if (dataset.type() != Json::objectValue) 42 if (dataset.type() != Json::objectValue)
57 { 43 {
150 136
151 return AccessTag(*content, path.GetFinalTag()); 137 return AccessTag(*content, path.GetFinalTag());
152 } 138 }
153 139
154 140
141 void FullOrthancDataset::CheckRoot() const
142 {
143 if (root_.type() != Json::objectValue)
144 {
145 ORTHANC_PLUGINS_THROW_EXCEPTION(OrthancPluginErrorCode_BadFileFormat);
146 }
147 }
148
149
155 FullOrthancDataset::FullOrthancDataset(IOrthancConnection& orthanc, 150 FullOrthancDataset::FullOrthancDataset(IOrthancConnection& orthanc,
156 const std::string& uri) 151 const std::string& uri)
157 { 152 {
158 std::string content; 153 IOrthancConnection::RestApiGet(root_, orthanc, uri);
159 orthanc.RestApiGet(content, uri); 154 CheckRoot();
160 Parse(content); 155 }
156
157
158 FullOrthancDataset::FullOrthancDataset(const std::string& content)
159 {
160 IOrthancConnection::ParseJson(root_, content);
161 CheckRoot();
161 } 162 }
162 163
163 164
164 bool FullOrthancDataset::GetStringValue(std::string& result, 165 bool FullOrthancDataset::GetStringValue(std::string& result,
165 const DicomPath& path) const 166 const DicomPath& path) const