# HG changeset patch # User Sebastien Jodogne # Date 1494948669 -7200 # Node ID 394e63010e02988f7df58977b01d215b8cb98b45 # Parent a4497c6449dfc3e60032e6c2946a26f241532206 ParseJson diff -r a4497c6449df -r 394e63010e02 Resources/Orthanc/Plugins/Samples/Common/FullOrthancDataset.cpp --- a/Resources/Orthanc/Plugins/Samples/Common/FullOrthancDataset.cpp Wed May 10 17:57:24 2017 +0200 +++ b/Resources/Orthanc/Plugins/Samples/Common/FullOrthancDataset.cpp Tue May 16 17:31:09 2017 +0200 @@ -166,6 +166,14 @@ } + FullOrthancDataset::FullOrthancDataset(const void* content, + size_t size) + { + IOrthancConnection::ParseJson(root_, content); + CheckRoot(); + } + + bool FullOrthancDataset::GetStringValue(std::string& result, const DicomPath& path) const { diff -r a4497c6449df -r 394e63010e02 Resources/Orthanc/Plugins/Samples/Common/FullOrthancDataset.h --- a/Resources/Orthanc/Plugins/Samples/Common/FullOrthancDataset.h Wed May 10 17:57:24 2017 +0200 +++ b/Resources/Orthanc/Plugins/Samples/Common/FullOrthancDataset.h Tue May 16 17:31:09 2017 +0200 @@ -55,6 +55,9 @@ FullOrthancDataset(const std::string& content); + FullOrthancDataset(const void* content, + size_t size); + virtual bool GetStringValue(std::string& result, const DicomPath& path) const; diff -r a4497c6449df -r 394e63010e02 Resources/Orthanc/Plugins/Samples/Common/IOrthancConnection.cpp --- a/Resources/Orthanc/Plugins/Samples/Common/IOrthancConnection.cpp Wed May 10 17:57:24 2017 +0200 +++ b/Resources/Orthanc/Plugins/Samples/Common/IOrthancConnection.cpp Tue May 16 17:31:09 2017 +0200 @@ -51,6 +51,20 @@ } + void IOrthancConnection::ParseJson(Json::Value& result, + const void* content, + size_t size) + { + Json::Reader reader; + + if (!reader.parse(reinterpret_cast(content), + reinterpret_cast(content) + size, result)) + { + ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); + } + } + + void IOrthancConnection::RestApiGet(Json::Value& result, IOrthancConnection& orthanc, const std::string& uri) diff -r a4497c6449df -r 394e63010e02 Resources/Orthanc/Plugins/Samples/Common/IOrthancConnection.h --- a/Resources/Orthanc/Plugins/Samples/Common/IOrthancConnection.h Wed May 10 17:57:24 2017 +0200 +++ b/Resources/Orthanc/Plugins/Samples/Common/IOrthancConnection.h Tue May 16 17:31:09 2017 +0200 @@ -64,6 +64,10 @@ static void ParseJson(Json::Value& result, const std::string& content); + static void ParseJson(Json::Value& result, + const void* content, + size_t size); + static void RestApiGet(Json::Value& result, IOrthancConnection& orthanc, const std::string& uri);