SlicerProstate / SliceTracker

SliceTracker is a 3D Slicer extension to support the workflow of MR-guided prostate biopsies.

Home Page:https://slicerprostate.gitbooks.io/slicetracker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

image

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.