Mercurial > hg > orthanc
diff OrthancFramework/Sources/DicomParsing/ParsedDicomFile.cpp @ 5318:68e15471b408
added ParsedDicomFile::InjectEmptyPixelData()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 23 Jun 2023 18:01:55 +0200 |
parents | 0ea402b4d901 |
children | f2e1ad71e49c |
line wrap: on
line diff
--- a/OrthancFramework/Sources/DicomParsing/ParsedDicomFile.cpp Thu Jun 22 21:30:45 2023 +0200 +++ b/OrthancFramework/Sources/DicomParsing/ParsedDicomFile.cpp Fri Jun 23 18:01:55 2023 +0200 @@ -2121,6 +2121,41 @@ } } + + void ParsedDicomFile::InjectEmptyPixelData(ValueRepresentation vr) + { + DcmTag k(DICOM_TAG_PIXEL_DATA.GetGroup(), + DICOM_TAG_PIXEL_DATA.GetElement()); + + DcmItem& dataset = *GetDcmtkObjectConst().getDataset(); + + DcmElement *element = NULL; + if (!dataset.findAndGetElement(k, element).good() || + element == NULL) + { + // The pixel data is indeed nonexistent, insert it now + switch (vr) + { + case ValueRepresentation_OtherByte: + if (!dataset.putAndInsertUint8Array(k, NULL, 0).good()) + { + throw OrthancException(ErrorCode_InternalError); + } + break; + + case ValueRepresentation_OtherWord: + if (!dataset.putAndInsertUint16Array(k, NULL, 0).good()) + { + throw OrthancException(ErrorCode_InternalError); + } + break; + + default: + throw OrthancException(ErrorCode_ParameterOutOfRange); + } + } + } + #if ORTHANC_BUILDING_FRAMEWORK_LIBRARY == 1 // Alias for binary compatibility with Orthanc Framework 1.7.2 => don't use it anymore