Mercurial > hg > orthanc
diff OrthancServer/Internals/DicomFrameIndex.cpp @ 1956:fc16ee04e71b
refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 06 Apr 2016 14:22:48 +0200 |
parents | 01de36d949c3 |
children | b10a165e0e36 |
line wrap: on
line diff
--- a/OrthancServer/Internals/DicomFrameIndex.cpp Wed Apr 06 08:41:47 2016 +0200 +++ b/OrthancServer/Internals/DicomFrameIndex.cpp Wed Apr 06 14:22:48 2016 +0200 @@ -319,21 +319,21 @@ - bool DicomFrameIndex::IsVideo(const DcmDataset& dataset) + bool DicomFrameIndex::IsVideo(DcmFileFormat& dicom) { - if (dataset.getOriginalXfer() == EXS_MPEG2MainProfileAtMainLevel || - dataset.getOriginalXfer() == EXS_MPEG2MainProfileAtHighLevel) + if (dicom.getDataset()->getOriginalXfer() == EXS_MPEG2MainProfileAtMainLevel || + dicom.getDataset()->getOriginalXfer() == EXS_MPEG2MainProfileAtHighLevel) { return true; } #if DCMTK_VERSION_NUMBER > 360 // New transfer syntaxes introduced in the DICOM standard after DCMTK 3.6.0 - if (dataset.getOriginalXfer() == EXS_MPEG4HighProfileLevel4_1 || - dataset.getOriginalXfer() == EXS_MPEG4BDcompatibleHighProfileLevel4_1 || - dataset.getOriginalXfer() == EXS_MPEG4HighProfileLevel4_2_For2DVideo || - dataset.getOriginalXfer() == EXS_MPEG4HighProfileLevel4_2_For3DVideo || - dataset.getOriginalXfer() == EXS_MPEG4StereoHighProfileLevel4_2) + if (dicom.getDataset()->getOriginalXfer() == EXS_MPEG4HighProfileLevel4_1 || + dicom.getDataset()->getOriginalXfer() == EXS_MPEG4BDcompatibleHighProfileLevel4_1 || + dicom.getDataset()->getOriginalXfer() == EXS_MPEG4HighProfileLevel4_2_For2DVideo || + dicom.getDataset()->getOriginalXfer() == EXS_MPEG4HighProfileLevel4_2_For3DVideo || + dicom.getDataset()->getOriginalXfer() == EXS_MPEG4StereoHighProfileLevel4_2) { return true; } @@ -343,16 +343,16 @@ } - unsigned int DicomFrameIndex::GetFramesCount(DcmDataset& dataset) + unsigned int DicomFrameIndex::GetFramesCount(DcmFileFormat& dicom) { // Assume 1 frame for video transfer syntaxes - if (IsVideo(dataset)) + if (IsVideo(dicom)) { return 1; } const char* tmp = NULL; - if (!dataset.findAndGetString(DCM_NumberOfFrames, tmp).good() || + if (!dicom.getDataset()->findAndGetString(DCM_NumberOfFrames, tmp).good() || tmp == NULL) { return 1; @@ -378,15 +378,17 @@ } - DicomFrameIndex::DicomFrameIndex(DcmDataset& dataset) + DicomFrameIndex::DicomFrameIndex(DcmFileFormat& dicom) { - countFrames_ = GetFramesCount(dataset); + countFrames_ = GetFramesCount(dicom); if (countFrames_ == 0) { // The image has no frame. No index is to be built. return; } + DcmDataset& dataset = *dicom.getDataset(); + // Test whether this image is composed of a sequence of fragments DcmPixelSequence* pixelSequence = FromDcmtkBridge::GetPixelSequence(dataset); if (pixelSequence != NULL)