Mercurial > hg > orthanc-wsi
comparison Resources/Orthanc/Plugins/Samples/Common/FullOrthancDataset.cpp @ 61:147bd6dc28db
refactoring using new items in the plugin toolbox of Orthanc
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 25 Nov 2016 17:15:55 +0100 |
parents | a59fdb848a7b |
children | 319b8c45c231 |
comparison
equal
deleted
inserted
replaced
60:a59fdb848a7b | 61:147bd6dc28db |
---|---|
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 |