Dicom tag not recognized
leochan2009 opened this issue · comments
@leochan2009 you should update Slicer. I don't know the root of this issue, but a related problem in Slicer DICOM module was fixed recently.
Related issues:
@fedorov ,
thanks, Andriy, i will take a look.
@fedorov I just checked that issue and noticed that one of the slices is corrupted:
dciodvfy output
(0x0051,0x100b) SH Acquisition Matrix Text - Warning - Explicit value representation doesn't match data dictionary; Explicit <LO> Dictionary <SH>
Error - Seek failed - while reading unencapsulated Pixel Data
Error - Dicom dataset read failed
Warning - Unrecognized defined term <CCG_CSTemp> for value 1 of attribute <Coding Scheme Designator>
Error - Missing attribute Type 2C Conditional Element=<Laterality> Module=<GeneralSeries>
Warning - Unrecognized defined term <CCG_CSTemp> for value 1 of attribute <Coding Scheme Designator>
Error - Missing attribute Type 1C Conditional Element=<PixelData> Module=<ImagePixelMacro>
Warning - Unrecognized defined term <M> for value 3 of attribute <Image Type>
Warning - Unrecognized defined term <SAT1> for value 1 of attribute <Scan Options>
Warning - Attribute is not present in standard DICOM IOD - (0x0010,0x21c0) US Pregnancy Status
Warning - Attribute is not present in standard DICOM IOD - (0x0032,0x1032) PN Requesting Physician
Warning - Attribute is not present in standard DICOM IOD - (0x0032,0x1033) LO Requesting Service
Warning - Attribute is not present in standard DICOM IOD - (0x0032,0x1060) LO Requested Procedure Description
Warning - Attribute is not present in standard DICOM IOD - (0x0008,0x0100) SH Code Value
Warning - Attribute is not present in standard DICOM IOD - (0x0008,0x0102) SH Coding Scheme Designator
Warning - Attribute is not present in standard DICOM IOD - (0x0008,0x0104) LO Code Meaning
Warning - Attribute is not present in standard DICOM IOD - (0x0032,0x1064) SQ Requested Procedure Code Sequence
Warning - Dicom dataset contains attributes not present in standard DICOM IOD - this is a Standard Extended SOP Class
How should we handle such situations?
def createLoadableFileListForSeries(self, series):
seriesNumber = RegistrationResult.getSeriesNumberFromString(series)
loadableList = []
for dcm in self.getFileList(self.intraopDICOMDirectory):
currentFile = os.path.join(self.intraopDICOMDirectory, dcm)
# at the following line it crashes
currentSeriesNumber = int(self.getDICOMValue(currentFile, DICOMTAGS.SERIES_NUMBER))
if currentSeriesNumber and currentSeriesNumber == seriesNumber:
loadableList.append(currentFile)
return loadableList
Error - Missing attribute Type 1C Conditional Element=<PixelData>
This seems to be a fatal situation, and the action is very straightforward - if the input series does not have PixelData
, there is really nothing we can do with it.
The real question is how could this kind of data could be produced by the scanner if the standard acquisition protocol was followed. Something must be different about that case.
It’s one corrupt file in case 592 intraop images. File names and extension also differs from the usual intraop protocol...
It must have a different Series/StudyInstanceUID from any other instances, right?
If that is the case, it means we also need to add another check to ignore any of the instances that have inconsistent StudyInstanceUID.