changeset 66:25eac9cbe5c6

compatibility with forthcoming sdk 0.9.5
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 18 Sep 2015 18:03:02 +0200
parents da70170d367e
children 739c0adcf94c
files NEWS Plugin/Configuration.h Plugin/Plugin.cpp Plugin/QidoRs.cpp Plugin/QidoRs.h Plugin/StowRs.cpp Plugin/StowRs.h Plugin/Wado.cpp Plugin/Wado.h Plugin/WadoRs.cpp Plugin/WadoRs.h
diffstat 11 files changed, 176 insertions(+), 162 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Thu Aug 13 12:52:51 2015 +0200
+++ b/NEWS	Fri Sep 18 18:03:02 2015 +0200
@@ -5,6 +5,8 @@
 Version 0.1 (2015/08/03)
 ========================
 
+=> Minimum SDK version: 0.9.1 <=
+
 * Support of WADO-RS - RetrieveMetadata
 * Support of WADO, in addition to DICOMweb
 * All the APIs are now under the same root
--- a/Plugin/Configuration.h	Thu Aug 13 12:52:51 2015 +0200
+++ b/Plugin/Configuration.h	Fri Sep 18 18:03:02 2015 +0200
@@ -23,6 +23,17 @@
 #include <orthanc/OrthancCPlugin.h>
 #include <json/value.h>
 
+#if (ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER >= 9 && ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER >= 5)
+#  define REST_RETURN_TYPE     OrthancPluginErrorCode
+#  define REST_RETURN_SUCCESS  OrthancPluginErrorCode_Success
+#  define REST_RETURN_FAILURE  OrthancPluginErrorCode_Plugin
+#else
+#  define REST_RETURN_TYPE     int32_t
+#  define REST_RETURN_SUCCESS  0
+#  define REST_RETURN_FAILURE  -1
+#endif
+
+
 namespace OrthancPlugins
 {
   struct MultipartItem
--- a/Plugin/Plugin.cpp	Thu Aug 13 12:52:51 2015 +0200
+++ b/Plugin/Plugin.cpp	Fri Sep 18 18:03:02 2015 +0200
@@ -39,9 +39,9 @@
 const gdcm::Dict* dictionary_ = NULL;
 
 
-static int32_t SwitchStudies(OrthancPluginRestOutput* output,
-                             const char* url,
-                             const OrthancPluginHttpRequest* request)
+static REST_RETURN_TYPE SwitchStudies(OrthancPluginRestOutput* output,
+                                      const char* url,
+                                      const OrthancPluginHttpRequest* request)
 {
   switch (request->method)
   {
@@ -55,14 +55,14 @@
 
     default:
       OrthancPluginSendMethodNotAllowed(context_, output, "GET,POST");
-      return 0;
+      return REST_RETURN_SUCCESS;
   }
 }
 
 
-static int32_t SwitchStudy(OrthancPluginRestOutput* output,
-                           const char* url,
-                           const OrthancPluginHttpRequest* request)
+static REST_RETURN_TYPE SwitchStudy(OrthancPluginRestOutput* output,
+                                    const char* url,
+                                    const OrthancPluginHttpRequest* request)
 {
   switch (request->method)
   {
@@ -76,7 +76,7 @@
 
     default:
       OrthancPluginSendMethodNotAllowed(context_, output, "GET,POST");
-      return 0;
+      return REST_RETURN_SUCCESS;
   }
 }
 
--- a/Plugin/QidoRs.cpp	Thu Aug 13 12:52:51 2015 +0200
+++ b/Plugin/QidoRs.cpp	Fri Sep 18 18:03:02 2015 +0200
@@ -769,16 +769,16 @@
 
 
 
-int32_t SearchForStudies(OrthancPluginRestOutput* output,
-                         const char* url,
-                         const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE SearchForStudies(OrthancPluginRestOutput* output,
+                                  const char* url,
+                                  const OrthancPluginHttpRequest* request)
 {
   try
   {
     if (request->method != OrthancPluginHttpMethod_Get)
     {
       OrthancPluginSendMethodNotAllowed(context_, output, "GET");
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
     ModuleMatcher matcher(request);
@@ -788,36 +788,36 @@
 
     ApplyMatcher(output, request, matcher, candidates, QueryLevel_Study);
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (boost::bad_lexical_cast& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
 
 
-int32_t SearchForSeries(OrthancPluginRestOutput* output,
-                        const char* url,
-                        const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE SearchForSeries(OrthancPluginRestOutput* output,
+                                 const char* url,
+                                 const OrthancPluginHttpRequest* request)
 {
   try
   {
     if (request->method != OrthancPluginHttpMethod_Get)
     {
       OrthancPluginSendMethodNotAllowed(context_, output, "GET");
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
     ModuleMatcher matcher(request);
@@ -835,36 +835,36 @@
 
     ApplyMatcher(output, request, matcher, candidates, QueryLevel_Series);
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (boost::bad_lexical_cast& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
 
 
-int32_t SearchForInstances(OrthancPluginRestOutput* output,
-                           const char* url,
-                           const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE SearchForInstances(OrthancPluginRestOutput* output,
+                                    const char* url,
+                                    const OrthancPluginHttpRequest* request)
 {
   try
   {
     if (request->method != OrthancPluginHttpMethod_Get)
     {
       OrthancPluginSendMethodNotAllowed(context_, output, "GET");
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
     ModuleMatcher matcher(request);
@@ -890,21 +890,21 @@
 
     ApplyMatcher(output, request, matcher, candidates, QueryLevel_Instance);
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (boost::bad_lexical_cast& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
--- a/Plugin/QidoRs.h	Thu Aug 13 12:52:51 2015 +0200
+++ b/Plugin/QidoRs.h	Fri Sep 18 18:03:02 2015 +0200
@@ -20,16 +20,17 @@
 
 #pragma once
 
-#include <orthanc/OrthancCPlugin.h>
+#include "Configuration.h"
+
 
-int32_t SearchForStudies(OrthancPluginRestOutput* output,
-                         const char* url,
-                         const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE SearchForStudies(OrthancPluginRestOutput* output,
+                                  const char* url,
+                                  const OrthancPluginHttpRequest* request);
 
-int32_t SearchForSeries(OrthancPluginRestOutput* output,
-                        const char* url,
-                        const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE SearchForSeries(OrthancPluginRestOutput* output,
+                                 const char* url,
+                                 const OrthancPluginHttpRequest* request);
 
-int32_t SearchForInstances(OrthancPluginRestOutput* output,
-                           const char* url,
-                           const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE SearchForInstances(OrthancPluginRestOutput* output,
+                                    const char* url,
+                                    const OrthancPluginHttpRequest* request);
--- a/Plugin/StowRs.cpp	Thu Aug 13 12:52:51 2015 +0200
+++ b/Plugin/StowRs.cpp	Fri Sep 18 18:03:02 2015 +0200
@@ -84,9 +84,9 @@
 
 
 
-int32_t StowCallback(OrthancPluginRestOutput* output,
-                     const char* url,
-                     const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE StowCallback(OrthancPluginRestOutput* output,
+                              const char* url,
+                              const OrthancPluginHttpRequest* request)
 {
   try
   {
@@ -96,7 +96,7 @@
     if (request->method != OrthancPluginHttpMethod_Post)
     {
       OrthancPluginSendMethodNotAllowed(context_, output, "POST");
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
     std::string expectedStudy;
@@ -122,7 +122,7 @@
     {
       OrthancPluginLogError(context_, "No content type in the HTTP header of a STOW-RS request");
       OrthancPluginSendHttpStatusCode(context_, output, 400 /* Bad request */);
-      return 0;    
+      return REST_RETURN_SUCCESS;    
     }
 
     std::string application;
@@ -136,7 +136,7 @@
       std::string s = "Unable to parse the content type of a STOW-RS request (" + application + ")";
       OrthancPluginLogError(context_, s.c_str());
       OrthancPluginSendHttpStatusCode(context_, output, 400 /* Bad request */);
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
 
@@ -146,7 +146,7 @@
     {
       OrthancPluginLogError(context_, "The STOW-RS plugin currently only supports application/dicom");
       OrthancPluginSendHttpStatusCode(context_, output, 415 /* Unsupported media type */);
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
 
@@ -166,7 +166,7 @@
         std::string s = "The STOW-RS request contains a part that is not application/dicom (it is: \"" + items[i].contentType_ + "\")";
           OrthancPluginLogError(context_, s.c_str());
         OrthancPluginSendHttpStatusCode(context_, output, 415 /* Unsupported media type */);
-        return 0;
+        return REST_RETURN_SUCCESS;
       }
 
       OrthancPlugins::ParsedDicomFile dicom(items[i]);
@@ -229,16 +229,16 @@
 
     OrthancPlugins::AnswerDicom(context_, output, wadoBase, *dictionary_, result, isXml, false);
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
--- a/Plugin/StowRs.h	Thu Aug 13 12:52:51 2015 +0200
+++ b/Plugin/StowRs.h	Fri Sep 18 18:03:02 2015 +0200
@@ -20,10 +20,10 @@
 
 #pragma once
 
-#include <orthanc/OrthancCPlugin.h>
+#include "Configuration.h"
 
 bool IsXmlExpected(const OrthancPluginHttpRequest* request);
 
-int32_t StowCallback(OrthancPluginRestOutput* output,
-                     const char* url,
-                     const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE StowCallback(OrthancPluginRestOutput* output,
+                              const char* url,
+                              const OrthancPluginHttpRequest* request);
--- a/Plugin/Wado.cpp	Thu Aug 13 12:52:51 2015 +0200
+++ b/Plugin/Wado.cpp	Fri Sep 18 18:03:02 2015 +0200
@@ -153,8 +153,8 @@
 }
 
 
-static int32_t AnswerDicom(OrthancPluginRestOutput* output,
-                           const std::string& instance)
+static REST_RETURN_TYPE AnswerDicom(OrthancPluginRestOutput* output,
+                                    const std::string& instance)
 {
   std::string uri = "/instances/" + instance + "/file";
 
@@ -162,13 +162,13 @@
   if (OrthancPlugins::RestApiGetString(dicom, context_, uri))
   {
     OrthancPluginAnswerBuffer(context_, output, dicom.c_str(), dicom.size(), "application/dicom");
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   else
   {
     std::string msg = "WADO: Unable to retrieve DICOM file from " + uri;
     OrthancPluginLogError(context_, msg.c_str());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
 
@@ -191,28 +191,28 @@
 }
 
 
-static int32_t AnswerPngPreview(OrthancPluginRestOutput* output,
-                                const std::string& instance)
+static REST_RETURN_TYPE AnswerPngPreview(OrthancPluginRestOutput* output,
+                                         const std::string& instance)
 {
   std::string png;
   if (!RetrievePngPreview(png, instance))
   {
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 
   OrthancPluginAnswerBuffer(context_, output, png.c_str(), png.size(), "image/png");
-  return 0;
+  return REST_RETURN_SUCCESS;
 }
 
 
-static int32_t AnswerJpegPreview(OrthancPluginRestOutput* output,
-                                 const std::string& instance)
+static REST_RETURN_TYPE AnswerJpegPreview(OrthancPluginRestOutput* output,
+                                          const std::string& instance)
 {
   // Retrieve the preview in the PNG format
   std::string png;
   if (!RetrievePngPreview(png, instance))
   {
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 
   // Decode the PNG file
@@ -225,27 +225,27 @@
   writer.WriteToMemory(jpeg, reader);
 
   OrthancPluginAnswerBuffer(context_, output, jpeg.c_str(), jpeg.size(), "image/jpeg");
-  return 0;
+  return REST_RETURN_SUCCESS;
 }
 
 
-int32_t WadoCallback(OrthancPluginRestOutput* output,
-                     const char* url,
-                     const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE WadoCallback(OrthancPluginRestOutput* output,
+                              const char* url,
+                              const OrthancPluginHttpRequest* request)
 {
   try
   {
     if (request->method != OrthancPluginHttpMethod_Get)
     {
       OrthancPluginSendMethodNotAllowed(context_, output, "GET");
-      return -1;
+      return REST_RETURN_FAILURE;
     }
 
     std::string instance;
     std::string contentType = "image/jpg";  // By default, JPEG image will be returned
     if (!LocateInstance(instance, contentType, request))
     {
-      return -1;
+      return REST_RETURN_FAILURE;
     }
 
     if (contentType == "application/dicom")
@@ -265,19 +265,19 @@
     {
       std::string msg = "WADO: Unsupported content type: \"" + contentType + "\"";
       OrthancPluginLogError(context_, msg.c_str());
-      return -1;
+      return REST_RETURN_FAILURE;
     }
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
--- a/Plugin/Wado.h	Thu Aug 13 12:52:51 2015 +0200
+++ b/Plugin/Wado.h	Fri Sep 18 18:03:02 2015 +0200
@@ -20,8 +20,8 @@
 
 #pragma once
 
-#include <orthanc/OrthancCPlugin.h>
+#include "Configuration.h"
 
-int32_t WadoCallback(OrthancPluginRestOutput* output,
-                     const char* url,
-                     const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE WadoCallback(OrthancPluginRestOutput* output,
+                              const char* url,
+                              const OrthancPluginHttpRequest* request);
--- a/Plugin/WadoRs.cpp	Thu Aug 13 12:52:51 2015 +0200
+++ b/Plugin/WadoRs.cpp	Fri Sep 18 18:03:02 2015 +0200
@@ -172,20 +172,20 @@
 }
 
 
-static int32_t AnswerListOfDicomInstances(OrthancPluginRestOutput* output,
-                                          const std::string& resource)
+static REST_RETURN_TYPE AnswerListOfDicomInstances(OrthancPluginRestOutput* output,
+                                                   const std::string& resource)
 {
   Json::Value instances;
   if (!OrthancPlugins::RestApiGetJson(instances, context_, resource + "/instances"))
   {
     // Internal error
     OrthancPluginSendHttpStatusCode(context_, output, 400);
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
 
   if (OrthancPluginStartMultipartAnswer(context_, output, "related", "application/dicom"))
   {
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   
   for (Json::Value::ArrayIndex i = 0; i < instances.size(); i++)
@@ -195,11 +195,11 @@
     if (OrthancPlugins::RestApiGetString(dicom, context_, uri) &&
         OrthancPluginSendMultipartItem(context_, output, dicom.c_str(), dicom.size()) != 0)
     {
-      return -1;
+      return REST_RETURN_FAILURE;
     }
   }
 
-  return 0;
+  return REST_RETURN_SUCCESS;
 }
 
 
@@ -378,16 +378,16 @@
 }
 
 
-int32_t RetrieveDicomStudy(OrthancPluginRestOutput* output,
-                           const char* url,
-                           const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE RetrieveDicomStudy(OrthancPluginRestOutput* output,
+                                    const char* url,
+                                    const OrthancPluginHttpRequest* request)
 {
   try
   {
     if (!AcceptMultipartDicom(request))
     {
       OrthancPluginSendHttpStatusCode(context_, output, 400 /* Bad request */);
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
     std::string uri;
@@ -396,31 +396,31 @@
       AnswerListOfDicomInstances(output, uri);
     }
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
 
 
-int32_t RetrieveDicomSeries(OrthancPluginRestOutput* output,
-                            const char* url,
-                            const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE RetrieveDicomSeries(OrthancPluginRestOutput* output,
+                                     const char* url,
+                                     const OrthancPluginHttpRequest* request)
 {
   try
   {
     if (!AcceptMultipartDicom(request))
     {
       OrthancPluginSendHttpStatusCode(context_, output, 400 /* Bad request */);
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
     std::string uri;
@@ -429,32 +429,32 @@
       AnswerListOfDicomInstances(output, uri);
     }
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
 
 
 
-int32_t RetrieveDicomInstance(OrthancPluginRestOutput* output,
-                              const char* url,
-                              const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE RetrieveDicomInstance(OrthancPluginRestOutput* output,
+                                       const char* url,
+                                       const OrthancPluginHttpRequest* request)
 {
   try
   {
     if (!AcceptMultipartDicom(request))
     {
       OrthancPluginSendHttpStatusCode(context_, output, 400 /* Bad request */);
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
     std::string uri;
@@ -462,36 +462,36 @@
     {
       if (OrthancPluginStartMultipartAnswer(context_, output, "related", "application/dicom"))
       {
-        return -1;
+        return REST_RETURN_FAILURE;
       }
   
       std::string dicom;
       if (OrthancPlugins::RestApiGetString(dicom, context_, uri + "/file") &&
           OrthancPluginSendMultipartItem(context_, output, dicom.c_str(), dicom.size()) != 0)
       {
-        return -1;
+        return REST_RETURN_FAILURE;
       }
     }
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
 
 
 
-int32_t RetrieveStudyMetadata(OrthancPluginRestOutput* output,
-                              const char* url,
-                              const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE RetrieveStudyMetadata(OrthancPluginRestOutput* output,
+                                       const char* url,
+                                       const OrthancPluginHttpRequest* request)
 {
   try
   {
@@ -499,7 +499,7 @@
     if (!AcceptMetadata(request, isXml))
     {
       OrthancPluginSendHttpStatusCode(context_, output, 400 /* Bad request */);
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
     std::string uri;
@@ -508,24 +508,24 @@
       AnswerMetadata(output, request, uri, false, isXml);
     }
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
 
 
-int32_t RetrieveSeriesMetadata(OrthancPluginRestOutput* output,
-                               const char* url,
-                               const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE RetrieveSeriesMetadata(OrthancPluginRestOutput* output,
+                                        const char* url,
+                                        const OrthancPluginHttpRequest* request)
 {
   try
   {
@@ -533,7 +533,7 @@
     if (!AcceptMetadata(request, isXml))
     {
       OrthancPluginSendHttpStatusCode(context_, output, 400 /* Bad request */);
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
     std::string uri;
@@ -542,24 +542,24 @@
       AnswerMetadata(output, request, uri, false, isXml);
     }
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
 
 
-int32_t RetrieveInstanceMetadata(OrthancPluginRestOutput* output,
-                                 const char* url,
-                                 const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE RetrieveInstanceMetadata(OrthancPluginRestOutput* output,
+                                          const char* url,
+                                          const OrthancPluginHttpRequest* request)
 {
   try
   {
@@ -567,7 +567,7 @@
     if (!AcceptMetadata(request, isXml))
     {
       OrthancPluginSendHttpStatusCode(context_, output, 400 /* Bad request */);
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
     std::string uri;
@@ -576,17 +576,17 @@
       AnswerMetadata(output, request, uri, true, isXml);
     }
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
 
@@ -662,16 +662,16 @@
   return false;
 }
 
-int32_t RetrieveBulkData(OrthancPluginRestOutput* output,
-                         const char* url,
-                         const OrthancPluginHttpRequest* request)
+REST_RETURN_TYPE RetrieveBulkData(OrthancPluginRestOutput* output,
+                                  const char* url,
+                                  const OrthancPluginHttpRequest* request)
 {
   try
   {
     if (!AcceptBulkData(request))
     {
       OrthancPluginSendHttpStatusCode(context_, output, 400 /* Bad request */);
-      return 0;
+      return REST_RETURN_SUCCESS;
     }
 
     std::string uri, content;
@@ -690,7 +690,7 @@
         if (OrthancPluginStartMultipartAnswer(context_, output, "related", "application/octet-stream") != 0 ||
             OrthancPluginSendMultipartItem(context_, output, result.c_str(), result.size()) != 0)
         {
-          return -1;
+          return REST_RETURN_FAILURE;
         }
       }
       else
@@ -699,16 +699,16 @@
       }      
     }
 
-    return 0;
+    return REST_RETURN_SUCCESS;
   }
   catch (Orthanc::OrthancException& e)
   {
     OrthancPluginLogError(context_, e.What());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
   catch (std::runtime_error& e)
   {
     OrthancPluginLogError(context_, e.what());
-    return -1;
+    return REST_RETURN_FAILURE;
   }
 }
--- a/Plugin/WadoRs.h	Thu Aug 13 12:52:51 2015 +0200
+++ b/Plugin/WadoRs.h	Fri Sep 18 18:03:02 2015 +0200
@@ -20,33 +20,33 @@
 
 #pragma once
 
-#include <orthanc/OrthancCPlugin.h>
+#include "Configuration.h"
 
 
-int32_t RetrieveDicomStudy(OrthancPluginRestOutput* output,
-                           const char* url,
-                           const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE RetrieveDicomStudy(OrthancPluginRestOutput* output,
+                                    const char* url,
+                                    const OrthancPluginHttpRequest* request);
 
-int32_t RetrieveDicomSeries(OrthancPluginRestOutput* output,
-                            const char* url,
-                            const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE RetrieveDicomSeries(OrthancPluginRestOutput* output,
+                                     const char* url,
+                                     const OrthancPluginHttpRequest* request);
 
-int32_t RetrieveDicomInstance(OrthancPluginRestOutput* output,
-                              const char* url,
-                              const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE RetrieveDicomInstance(OrthancPluginRestOutput* output,
+                                       const char* url,
+                                       const OrthancPluginHttpRequest* request);
 
-int32_t RetrieveStudyMetadata(OrthancPluginRestOutput* output,
-                              const char* url,
-                              const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE RetrieveStudyMetadata(OrthancPluginRestOutput* output,
+                                       const char* url,
+                                       const OrthancPluginHttpRequest* request);
 
-int32_t RetrieveSeriesMetadata(OrthancPluginRestOutput* output,
-                               const char* url,
-                               const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE RetrieveSeriesMetadata(OrthancPluginRestOutput* output,
+                                        const char* url,
+                                        const OrthancPluginHttpRequest* request);
 
-int32_t RetrieveInstanceMetadata(OrthancPluginRestOutput* output,
-                                 const char* url,
-                                 const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE RetrieveInstanceMetadata(OrthancPluginRestOutput* output,
+                                          const char* url,
+                                          const OrthancPluginHttpRequest* request);
 
-int32_t RetrieveBulkData(OrthancPluginRestOutput* output,
-                         const char* url,
-                         const OrthancPluginHttpRequest* request);
+REST_RETURN_TYPE RetrieveBulkData(OrthancPluginRestOutput* output,
+                                  const char* url,
+                                  const OrthancPluginHttpRequest* request);