diff OrthancServer/OrthancRestApi.cpp @ 215:c07170f3f4f7

refactoring of access to images in REST
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 29 Nov 2012 11:25:29 +0100
parents 03817919169b
children e5d5d4a9a326
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi.cpp	Thu Nov 29 11:11:53 2012 +0100
+++ b/OrthancServer/OrthancRestApi.cpp	Thu Nov 29 11:25:29 2012 +0100
@@ -372,83 +372,6 @@
       }
     }
 
-
-    // Get the DICOM or the JSON file of one instance ---------------------------
- 
-    else if (uri[0] == "instances" &&
-             ((uri.size() == 3 &&
-               (uri[2] == "preview" || 
-                uri[2] == "image-uint8" || 
-                uri[2] == "image-uint16")) ||
-              (uri.size() == 5 &&
-               uri[2] == "frames" &&
-               (uri[4] == "preview" || 
-                uri[4] == "image-uint8" || 
-                uri[4] == "image-uint16"))))
-    {
-      std::string uuid;
-      CompressionType compressionType;
-      existingResource = index_.GetFile(uuid, compressionType, uri[1], AttachedFileType_Dicom);
-
-      std::string action = uri[2];
-
-      unsigned int frame = 0;
-      if (existingResource &&
-          uri.size() == 5)
-      {
-        // Access to multi-frame image
-        action = uri[4];
-        try
-        {
-          frame = boost::lexical_cast<unsigned int>(uri[3]);
-        }
-        catch (boost::bad_lexical_cast)
-        {
-          existingResource = false;
-        }
-      }
-
-      if (existingResource)
-      {
-        std::string dicomContent, png;
-        storage_.ReadFile(dicomContent, uuid);
-        try
-        {
-          if (action == "preview")
-          {
-            FromDcmtkBridge::ExtractPngImage(png, dicomContent, frame, ImageExtractionMode_Preview);
-          }
-          else if (action == "image-uint8")
-          {
-            FromDcmtkBridge::ExtractPngImage(png, dicomContent, frame, ImageExtractionMode_UInt8);
-          }
-          else if (action == "image-uint16")
-          {
-            FromDcmtkBridge::ExtractPngImage(png, dicomContent, frame, ImageExtractionMode_UInt16);
-          }
-          else
-          {
-            throw OrthancException(ErrorCode_InternalError);
-          }
-
-          output.AnswerBufferWithContentType(png, "image/png");
-          return;
-        }
-        catch (OrthancException&)
-        {
-          std::string root = "";
-          for (size_t i = 1; i < uri.size(); i++)
-          {
-            root += "../";
-          }
-
-          output.Redirect(root + "app/images/unsupported.png");
-          return;
-        }
-      }
-    }
-
-
     // DICOM bridge -------------------------------------------------------------
 
     if ((uri.size() == 2 ||