Mercurial > hg > orthanc
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();