diff OrthancServer/FromDcmtkBridge.cpp @ 1924:6c73df12ca51

New URI: "/instances/.../frames/.../raw" to access the raw frames (bypass image decoding)
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 07 Mar 2016 17:43:20 +0100
parents b1291df2f780
children b60f27664b8f
line wrap: on
line diff
--- a/OrthancServer/FromDcmtkBridge.cpp	Mon Mar 07 08:29:22 2016 +0100
+++ b/OrthancServer/FromDcmtkBridge.cpp	Mon Mar 07 17:43:20 2016 +0100
@@ -1566,4 +1566,26 @@
 
     throw OrthancException(ErrorCode_ParameterOutOfRange);
   }
+
+
+  DcmPixelSequence* FromDcmtkBridge::GetPixelSequence(DcmDataset& dataset)
+  {
+    DcmElement *element = NULL;
+    if (!dataset.findAndGetElement(ToDcmtkBridge::Convert(DICOM_TAG_PIXEL_DATA), element).good())
+    {
+      throw OrthancException(ErrorCode_BadFileFormat);
+    }
+
+    DcmPixelData& pixelData = dynamic_cast<DcmPixelData&>(*element);
+    DcmPixelSequence* pixelSequence = NULL;
+    if (!pixelData.getEncapsulatedRepresentation
+        (dataset.getOriginalXfer(), NULL, pixelSequence).good())
+    {
+      return NULL;
+    }
+    else
+    {
+      return pixelSequence;
+    }
+  }
 }