diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 1556:b8dc2f855a83

Preview of PDF files encapsulated in DICOM from Orthanc Explorer
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 20 Aug 2015 17:05:05 +0200
parents d6a93e12b1c1
children de1413733c97 f5ddbd9239dd
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Thu Aug 20 15:18:13 2015 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Thu Aug 20 17:05:05 2015 +0200
@@ -1050,6 +1050,20 @@
   }
 
 
+  static void ExtractPdf(RestApiGetCall& call)
+  {
+    const std::string id = call.GetUriComponent("id", "");
+
+    std::string pdf;
+    ServerContext::DicomCacheLocker locker(OrthancRestApi::GetContext(call), id);
+
+    if (locker.GetDicom().ExtractPdf(pdf))
+    {
+      call.GetOutput().AnswerBuffer(pdf, "application/pdf");
+      return;
+    }
+  }
+
 
   void OrthancRestApi::RegisterResources()
   {
@@ -1093,6 +1107,7 @@
     Register("/instances/{id}/frames/{frame}/image-uint16", GetImage<ImageExtractionMode_UInt16>);
     Register("/instances/{id}/frames/{frame}/image-int16", GetImage<ImageExtractionMode_Int16>);
     Register("/instances/{id}/frames/{frame}/matlab", GetMatlabImage);
+    Register("/instances/{id}/pdf", ExtractPdf);
     Register("/instances/{id}/preview", GetImage<ImageExtractionMode_Preview>);
     Register("/instances/{id}/image-uint8", GetImage<ImageExtractionMode_UInt8>);
     Register("/instances/{id}/image-uint16", GetImage<ImageExtractionMode_UInt16>);