Mercurial > hg > orthanc-dicomweb
changeset 139:a56a59896dcb dev
fix
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 24 Jun 2016 21:20:27 +0200 |
parents | 37252e4959b2 |
children | 29f7e2571143 |
files | Plugin/DicomWebClient.cpp |
diffstat | 1 files changed, 14 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/Plugin/DicomWebClient.cpp Fri Jun 24 17:56:50 2016 +0200 +++ b/Plugin/DicomWebClient.cpp Fri Jun 24 21:20:27 2016 +0200 @@ -93,7 +93,7 @@ -static void ParseRestRequest(std::list<std::string>& instances /* out */, +static void ParseStowRequest(std::list<std::string>& instances /* out */, std::map<std::string, std::string>& httpHeaders /* out */, const OrthancPluginHttpRequest* request /* in */) { @@ -133,27 +133,19 @@ throw OrthancPlugins::PluginException(OrthancPluginErrorCode_UnknownResource); } - // Assume that this is an instance + // Test whether this resource is an instance Json::Value tmp; - try + if (OrthancPlugins::RestApiGetJson(tmp, context, "/instances/" + resource, false)) { - if (OrthancPlugins::RestApiGetJson(tmp, context, "/instances/" + resource, false)) - { - AddInstance(instances, tmp); - continue; // Success, go to the next item - } + AddInstance(instances, tmp); } - catch (OrthancPlugins::PluginException&) - { - } - - // This was not an instance, try with series/studies/patients - if ((OrthancPlugins::RestApiGetJson(tmp, context, "/series/" + resource, false) && - OrthancPlugins::RestApiGetJson(tmp, context, "/series/" + resource + "/instances", false)) || - (OrthancPlugins::RestApiGetJson(tmp, context, "/studies/" + resource, false) && - OrthancPlugins::RestApiGetJson(tmp, context, "/studies/" + resource + "/instances", false)) || - (OrthancPlugins::RestApiGetJson(tmp, context, "/patients/" + resource, false) && - OrthancPlugins::RestApiGetJson(tmp, context, "/patients/" + resource + "/instances", false))) + // This was not an instance, successively try with series/studies/patients + else if ((OrthancPlugins::RestApiGetJson(tmp, context, "/series/" + resource, false) && + OrthancPlugins::RestApiGetJson(tmp, context, "/series/" + resource + "/instances", false)) || + (OrthancPlugins::RestApiGetJson(tmp, context, "/studies/" + resource, false) && + OrthancPlugins::RestApiGetJson(tmp, context, "/studies/" + resource + "/instances", false)) || + (OrthancPlugins::RestApiGetJson(tmp, context, "/patients/" + resource, false) && + OrthancPlugins::RestApiGetJson(tmp, context, "/patients/" + resource + "/instances", false))) { if (tmp.type() != Json::arrayValue) { @@ -286,12 +278,10 @@ httpHeaders["Content-Type"] = mime; std::list<std::string> instances; - ParseRestRequest(instances, httpHeaders, request); + ParseStowRequest(instances, httpHeaders, request); - { - OrthancPlugins::Configuration::LogInfo("Sending " + boost::lexical_cast<std::string>(instances.size()) + - " instances using STOW-RS to DICOMweb server: " + server.GetUrl()); - } + OrthancPlugins::Configuration::LogInfo("Sending " + boost::lexical_cast<std::string>(instances.size()) + + " instances using STOW-RS to DICOMweb server: " + server.GetUrl()); Orthanc::ChunkedBuffer chunks; size_t countInstances = 0;