# HG changeset patch # User Sebastien Jodogne # Date 1560928122 -7200 # Node ID dcaf234698a3ee6dcd4c08f812e09491b5fc4818 # Parent 8594f9bcd556a31144bb27a42a03d7a523e4c8a3 Basic implementation of WADO-RS "Retrieve rendered instance" diff -r 8594f9bcd556 -r dcaf234698a3 NEWS --- a/NEWS Wed Jun 19 07:21:27 2019 +0200 +++ b/NEWS Wed Jun 19 09:08:42 2019 +0200 @@ -6,6 +6,7 @@ * Handling of the HTTP header "Forwarded" for WADO-RS * New URI: /dicom-web/servers/.../qido * New URI: /dicom-web/servers/.../delete +* Basic implementation of WADO-RS "Retrieve rendered instance" Version 0.6 (2019-02-27) diff -r 8594f9bcd556 -r dcaf234698a3 Plugin/Plugin.cpp --- a/Plugin/Plugin.cpp Wed Jun 19 07:21:27 2019 +0200 +++ b/Plugin/Plugin.cpp Wed Jun 19 09:08:42 2019 +0200 @@ -411,6 +411,41 @@ } + +void RetrieveInstanceRendered(OrthancPluginRestOutput* output, + const char* url, + const OrthancPluginHttpRequest* request) +{ + OrthancPluginContext* context = OrthancPlugins::GetGlobalContext(); + + if (request->method != OrthancPluginHttpMethod_Get) + { + OrthancPluginSendMethodNotAllowed(context, output, "GET"); + } + else + { + Orthanc::MimeType mime = Orthanc::MimeType_Jpeg; + + std::string publicId; + if (LocateInstance(output, publicId, request)) + { + std::map headers; + headers["Accept"] = Orthanc::EnumerationToString(mime); + + OrthancPlugins::MemoryBuffer buffer; + if (buffer.RestApiGet("/instances/" + publicId + "/preview", headers, false)) + { + OrthancPluginAnswerBuffer(context, output, buffer.GetData(), + buffer.GetSize(), Orthanc::EnumerationToString(mime)); + } + } + } +} + + + + + static bool DisplayPerformanceWarning(OrthancPluginContext* context) { (void) DisplayPerformanceWarning; // Disable warning about unused function @@ -707,6 +742,8 @@ OrthancPlugins::RegisterRestCallback(root + "app/client/(.*)", true); OrthancPlugins::RegisterRestCallback(root + "app/info", true); + OrthancPlugins::RegisterRestCallback(root + "studies/([^/]*)/series/([^/]*)/instances/([^/]*)/rendered", true); + std::string uri = root + "app/client/index.html"; OrthancPluginSetRootUri(context, uri.c_str()); }