diff PalantirServer/PalantirRestApi.cpp @ 42:ea48f38afe5f

access to raw images
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 03 Sep 2012 11:34:00 +0200
parents c1097a676eca
children 9be852ad33d2
line wrap: on
line diff
--- a/PalantirServer/PalantirRestApi.cpp	Fri Aug 31 11:45:48 2012 +0200
+++ b/PalantirServer/PalantirRestApi.cpp	Mon Sep 03 11:34:00 2012 +0200
@@ -568,7 +568,9 @@
 
     else if (uri.size() == 3 &&
              uri[0] == "instances" &&
-             uri[2] == "preview")
+             (uri[2] == "preview" ||
+              uri[2] == "image-uint8" ||
+              uri[2] == "image-uint16"))
     {
       std::string uuid;
       existingResource = index_.GetDicomFile(uuid, uri[1]);
@@ -579,7 +581,23 @@
         storage_.ReadFile(dicomContent, uuid);
         try
         {
-          FromDcmtkBridge::ExtractPreviewImage(png, dicomContent);
+          if (uri[2] == "preview")
+          {
+            FromDcmtkBridge::ExtractPngImage(png, dicomContent, ImageExtractionMode_Preview);
+          }
+          else if (uri[2] == "image-uint8")
+          {
+            FromDcmtkBridge::ExtractPngImage(png, dicomContent, ImageExtractionMode_UInt8);
+          }
+          else if (uri[2] == "image-uint16")
+          {
+            FromDcmtkBridge::ExtractPngImage(png, dicomContent, ImageExtractionMode_UInt16);
+          }
+          else
+          {
+            throw PalantirException(ErrorCode_InternalError);
+          }
+
           output.AnswerBufferWithContentType(png, "image/png");
           return;
         }