# HG changeset patch # User Sebastien Jodogne # Date 1466796027 -7200 # Node ID a56a59896dcbe3b3e6f1008e1742e93fc4811876 # Parent 37252e4959b2548b408ea4c6e66a2145fd3e2d46 fix diff -r 37252e4959b2 -r a56a59896dcb Plugin/DicomWebClient.cpp --- 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& instances /* out */, +static void ParseStowRequest(std::list& instances /* out */, std::map& 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 instances; - ParseRestRequest(instances, httpHeaders, request); + ParseStowRequest(instances, httpHeaders, request); - { - OrthancPlugins::Configuration::LogInfo("Sending " + boost::lexical_cast(instances.size()) + - " instances using STOW-RS to DICOMweb server: " + server.GetUrl()); - } + OrthancPlugins::Configuration::LogInfo("Sending " + boost::lexical_cast(instances.size()) + + " instances using STOW-RS to DICOMweb server: " + server.GetUrl()); Orthanc::ChunkedBuffer chunks; size_t countInstances = 0;