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;