diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 2699:52217dc47a4e

new image/pam MIME TYPE supported in /instances/../frames/../image-uint8... routes
author am@osimis.io
date Thu, 05 Jul 2018 12:25:00 +0200
parents 3603a2e14592
children b71c59312bae
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Thu Jun 28 12:24:45 2018 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Thu Jul 05 12:25:00 2018 +0200
@@ -364,6 +364,12 @@
         DicomImageDecoder::ExtractPngImage(answer_, image_, mode_, invert_);
       }
 
+      void EncodeUsingPam()
+      {
+        format_ = "image/pam";
+        DicomImageDecoder::ExtractPamImage(answer_, image_, mode_, invert_);
+      }
+
       void EncodeUsingJpeg(uint8_t quality)
       {
         format_ = "image/jpeg";
@@ -390,6 +396,25 @@
       }
     };
 
+    class EncodePam : public HttpContentNegociation::IHandler
+    {
+    private:
+      ImageToEncode&  image_;
+
+    public:
+      EncodePam(ImageToEncode& image) : image_(image)
+      {
+      }
+
+      virtual void Handle(const std::string& type,
+                          const std::string& subtype)
+      {
+        assert(type == "image");
+        assert(subtype == "pam");
+        image_.EncodeUsingPam();
+      }
+    };
+
     class EncodeJpeg : public HttpContentNegociation::IHandler
     {
     private:
@@ -526,6 +551,7 @@
     HttpContentNegociation negociation;
     EncodePng png(image);          negociation.Register("image/png", png);
     EncodeJpeg jpeg(image, call);  negociation.Register("image/jpeg", jpeg);
+    EncodePam pam(image);          negociation.Register("image/pam", pam);
 
     if (negociation.Apply(call.GetHttpHeaders()))
     {