diff Core/DicomParsing/FromDcmtkBridge.cpp @ 3883:795c9ca5eb91 transcoding

DANGEROUS changeset: replaced "getOriginalXfer()" by "getCurrentXfer()" throughout Orthanc
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 05 May 2020 14:11:47 +0200
parents 904575738462
children e23026566536
line wrap: on
line diff
--- a/Core/DicomParsing/FromDcmtkBridge.cpp	Tue May 05 12:29:33 2020 +0200
+++ b/Core/DicomParsing/FromDcmtkBridge.cpp	Tue May 05 14:11:47 2020 +0200
@@ -1290,7 +1290,7 @@
      * dataset into memory. We now keep the original transfer syntax
      * (if available).
      **/
-    E_TransferSyntax xfer = dataSet.getOriginalXfer();
+    E_TransferSyntax xfer = dataSet.getCurrentXfer();
     if (xfer == EXS_Unknown)
     {
       // No information about the original transfer syntax: This is
@@ -1310,7 +1310,7 @@
   bool FromDcmtkBridge::SaveToMemoryBuffer(std::string& buffer,
                                            DcmFileFormat& dicom)
   {
-    E_TransferSyntax xfer = dicom.getDataset()->getOriginalXfer();
+    E_TransferSyntax xfer = dicom.getDataset()->getCurrentXfer();
     if (xfer == EXS_Unknown)
     {
       throw OrthancException(ErrorCode_InternalError,
@@ -1338,7 +1338,7 @@
       throw OrthancException(ErrorCode_InternalError);
     }
     else
-    {
+    {     
       if (!dicom.getDataset()->chooseRepresentation(xfer, representation).good() ||
           !dicom.getDataset()->canWriteXfer(xfer) ||
           !dicom.validateMetaInfo(xfer, EWM_updateMeta).good())
@@ -1348,6 +1348,20 @@
       else
       {
         dicom.removeInvalidGroups();
+
+        DicomTransferSyntax sourceSyntax;
+        if (LookupOrthancTransferSyntax(sourceSyntax, dicom))
+        {
+          LOG(INFO) << "Transcoded an image from transfer syntax "
+                    << GetTransferSyntaxUid(sourceSyntax) << " to "
+                    << GetTransferSyntaxUid(syntax);
+        }
+        else
+        {
+          LOG(INFO) << "Transcoded an image from unknown transfer syntax to "
+                    << GetTransferSyntaxUid(syntax);
+        }
+        
         return true;
       }
     }
@@ -1808,7 +1822,7 @@
     DcmPixelData& pixelData = dynamic_cast<DcmPixelData&>(*element);
     DcmPixelSequence* pixelSequence = NULL;
     if (!pixelData.getEncapsulatedRepresentation
-        (dataset.getOriginalXfer(), NULL, pixelSequence).good())
+        (dataset.getCurrentXfer(), NULL, pixelSequence).good())
     {
       return NULL;
     }
@@ -2670,7 +2684,7 @@
         
     DcmDataset& dataset = *dicom.getDataset();
 
-    E_TransferSyntax xfer = dataset.getOriginalXfer();
+    E_TransferSyntax xfer = dataset.getCurrentXfer();
     if (xfer == EXS_Unknown)
     {
       dataset.updateOriginalXfer();