Beam Data in Slicer RT not loading

Hello,

I am currently investigating the possibility of implementing Slicer RT as part of a Clinical protocol for the comparison of Proton and Cyberkinife treatment plans for liver cancer.

Part of the analysis process is to perform robost evaluation, whereby certiain aspect of the beams for the plan are adjusted and the dose is recalculated to simulate a number of worst case scenarios.

I believe such an analysis should be possible with slicer however when I load the DICOM files the beam data does not appear to be available for manipulation.

I have attached a screen shot of the warnings reported by Slicer when using the advance view of the DICOM load module. Im not exactly sure what the message means and if it could be related to the beam data being unavailable.

any assistance on this issue will be greatly appreciated,

thanks,
Samuel


The first screenshot contains all the loadables offered by all the DICOM plugins, most of which are not selected for loading. If you scroll up, then you’ll see the selected ones checked. Those are the ones that are loaded.

Can you please post a screenshot about the contents of the Subject hierarchy tree in the Data module after loading?
And if you could look at the log (About / Report a problem) after loading and find any errors, those would be interesting to see as well. Thanks.

Also please note that SlicerRT currently cannot handle MLCs or arcs, only simple square beams. The infrastructure for MLCs is there, but never worked properly so it would need some work.

Thanks for the promt reply

I have attached screen shots of the subject hierarchy and error log.


I can also send a text of the log file is it helps?

Thanks,

Thanks for the screenshots. It seems that no plan or beam data is imported whatsoever.

Regarding the log, unfortunately only the info and warning messages are shown and not the errors which would be the interesting part.
Yes please, go to About / Report an error in the menu after loading this dataset, and send us the log, or at least the parts that contain errors. Thanks

Heres the error log information:

[INFO][VTK] 10.02.2019 22:46:10 [vtkMRMLVolumeArchetypeStorageNode (000002680EA70890)] (D:\D\P\Slicer-0\Libs\MRML\Core\vtkMRMLVolumeArchetypeStorageNode.cxx:465) - Loaded volume from file: D:/SLICER/CKLiver_Proton_Study_Plans/DATA SET 1/Data_set_1new/1.2.840.114358.14038002616494.20181216111455.1971345711270_rtdose.dcm. Dimensions: 512x512x197. Number of components: 1. Pixel type: unsigned short.
[ERROR][VTK] 10.02.2019 22:46:10 [vtkSlicerDicomRtImportExportModuleLogic (000002680B12A770)] (D:\D\P\S-0-E-b\SlicerRT\DicomRtImportExport\Logic\vtkSlicerDicomRtImportExportModuleLogic.cxx:553) - LoadRtDose: RTDoseReferencedRTPlanSOPInstanceUID not found for dose volume 0: RTDOSE: Anonymized [0]
[ERROR][VTK] 10.02.2019 22:46:10 [vtkTransformPolyDataFilter (000002680BCB7330)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:10 [vtkTransformPolyDataFilter (0000026816BE1D40)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:11 [vtkTransformPolyDataFilter (0000026816BF2A00)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:11 [vtkTransformPolyDataFilter (0000026816BF2A00)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:11 [vtkTransformPolyDataFilter (0000026816BE3460)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:11 [vtkTransformPolyDataFilter (0000026816BE3460)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data

[INFO][VTK] 10.02.2019 22:46:13 [vtkMRMLVolumeArchetypeStorageNode (000002680EA71B50)] (D:\D\P\Slicer-0\Libs\MRML\Core\vtkMRMLVolumeArchetypeStorageNode.cxx:465) - Loaded volume from file: D:/SLICER/CKLiver_Proton_Study_Plans/DATA SET 1/Data_set_1new/1.2.840.114358.14038002616494.20181216111501.1971495994140_RAW_DOSE_rtdose.dcm. Dimensions: 512x512x197. Number of components: 1. Pixel type: unsigned short.
[ERROR][VTK] 10.02.2019 22:46:13 [vtkSlicerDicomRtImportExportModuleLogic (000002680B12A770)] (D:\D\P\S-0-E-b\SlicerRT\DicomRtImportExport\Logic\vtkSlicerDicomRtImportExportModuleLogic.cxx:553) - LoadRtDose: RTDoseReferencedRTPlanSOPInstanceUID not found for dose volume 0: RTDOSE: Anonymized [0]_1
[INFO][Stream] 10.02.2019 22:46:13 [] (unknown:0) - Loading series ‘63: RTDOSE: RT Dose: GTV50 plan’ from file ‘D:/SLICER/CKLiver_Proton_Study_Plans/DATA SET 1/GTV50 plan-anon/rtdose.dcm’
[CRITICAL][Stream] 10.02.2019 22:46:13 [] (unknown:0) - W: OperatorsName (0008,1070) absent in RTSeriesModule (type 2)
[INFO][VTK] 10.02.2019 22:46:14 [vtkMRMLVolumeArchetypeStorageNode (000002680EA706B0)] (D:\D\P\Slicer-0\Libs\MRML\Core\vtkMRMLVolumeArchetypeStorageNode.cxx:465) - Loaded volume from file: D:/SLICER/CKLiver_Proton_Study_Plans/DATA SET 1/GTV50 plan-anon/rtdose.dcm. Dimensions: 256x256x197. Number of components: 1. Pixel type: unsigned int.
[ERROR][VTK] 10.02.2019 22:46:14 [vtkTransformPolyDataFilter (0000026816BF2A00)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:14 [vtkTransformPolyDataFilter (0000026816BF2A00)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:14 [vtkTransformPolyDataFilter (0000026816BE3460)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:14 [vtkTransformPolyDataFilter (0000026816BE3460)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[INFO][Python] 10.02.2019 22:46:14 [Python] (C:/Program Files/Slicer 4.11.0-2019-02-01/bin/…/lib/Slicer-4.11/qt-scripted-modules/DICOMScalarVolumePlugin.py:303) - Loading with imageIOName: GDCM
[ERROR][Python] 10.02.2019 22:46:14 [Python] (C:/Program Files/Slicer 4.11.0-2019-02-01/bin/…/lib/Slicer-4.11/qt-scripted-modules/DICOMScalarVolumePlugin.py:309) - Could not read scalar volume using GDCM approach. Error is: FileFormatError
[INFO][Python] 10.02.2019 22:46:14 [Python] (C:/Program Files/Slicer 4.11.0-2019-02-01/bin/…/lib/Slicer-4.11/qt-scripted-modules/DICOMScalarVolumePlugin.py:303) - Loading with imageIOName: DCMTK
[ERROR][Python] 10.02.2019 22:46:14 [Python] (C:/Program Files/Slicer 4.11.0-2019-02-01/bin/…/lib/Slicer-4.11/qt-scripted-modules/DICOMScalarVolumePlugin.py:309) - Could not read scalar volume using DCMTK approach. Error is: FileFormatError
[INFO][Stream] 10.02.2019 22:46:14 [] (unknown:0) - Loading with imageIOName: GDCM
[ERROR][VTK] 10.02.2019 22:46:14 [vtkITKArchetypeImageSeriesScalarReader (000002680E9506C0)] (D:\D\P\Slicer-0\Libs\vtkITK\vtkITKArchetypeImageSeriesReader.cxx:408) - vtkITKArchetypeImageSeriesReader::ExecuteInformation: Cannot open D:/SLICER/CKLiver_Proton_Study_Plans/DATA SET 1/GTV50 plan-anon/rtplan.dcm. ITK exception info: error in unknown: Could not create IO object for reading file D:/SLICER/CKLiver_Proton_Study_Plans/DATA SET 1/GTV50 plan-anon/rtplan.dcm
Tried to create one of the following:
BMPImageIO
BioRadImageIO
DCMTKImageIO
GDCMImageIO
GiplImageIO
JPEGImageIO
LSMImageIO
MGHImageIO
MINCImageIO
MRCImageIO
MetaImageIO
NiftiImageIO
NrrdImageIO
PNGImageIO
StimulateImageIO
TIFFImageIO
VTKImageIO
MRMLIDImageIO
Bruker2dseqImageIO
GE4ImageIO
GE5ImageIO
HDF5ImageIO
You probably failed to set a file suffix, or
set the suffix to an unsupported type.
[ERROR][VTK] 10.02.2019 22:46:14 [vtkCompositeDataPipeline (00000268186DCE60)] (D:\D\P\Slicer-0-build\VTK\Common\ExecutionModel\vtkExecutive.cxx:782) - Algorithm vtkITKArchetypeImageSeriesScalarReader(000002680E9506C0) returned failure for request: vtkInformation (0000026817780490)
Debug: Off
Modified Time: 4184765
Reference Count: 1
Registered Events: (none)
Request: REQUEST_INFORMATION
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1
[CRITICAL][Stream] 10.02.2019 22:46:14 [] (unknown:0) - Could not read scalar volume using GDCM approach. Error is: FileFormatError
[INFO][Stream] 10.02.2019 22:46:14 [] (unknown:0) - Loading with imageIOName: DCMTK
[ERROR][VTK] 10.02.2019 22:46:14 [vtkITKArchetypeImageSeriesScalarReader (000002680A8D25D0)] (D:\D\P\Slicer-0\Libs\vtkITK\vtkITKArchetypeImageSeriesReader.cxx:408) - vtkITKArchetypeImageSeriesReader::ExecuteInformation: Cannot open D:/SLICER/CKLiver_Proton_Study_Plans/DATA SET 1/GTV50 plan-anon/rtplan.dcm. ITK exception info: error in unknown: Could not create IO object for reading file D:/SLICER/CKLiver_Proton_Study_Plans/DATA SET 1/GTV50 plan-anon/rtplan.dcm
Tried to create one of the following:
BMPImageIO
BioRadImageIO
DCMTKImageIO
GDCMImageIO
GiplImageIO
JPEGImageIO
LSMImageIO
MGHImageIO
MINCImageIO
MRCImageIO
MetaImageIO
NiftiImageIO
NrrdImageIO
PNGImageIO
StimulateImageIO
TIFFImageIO
VTKImageIO
MRMLIDImageIO
Bruker2dseqImageIO
GE4ImageIO
GE5ImageIO
HDF5ImageIO
You probably failed to set a file suffix, or
set the suffix to an unsupported type.
[ERROR][VTK] 10.02.2019 22:46:14 [vtkCompositeDataPipeline (00000268186DCC80)] (D:\D\P\Slicer-0-build\VTK\Common\ExecutionModel\vtkExecutive.cxx:782) - Algorithm vtkITKArchetypeImageSeriesScalarReader(000002680A8D25D0) returned failure for request: vtkInformation (0000026817782150)
Debug: Off
Modified Time: 4184848
Reference Count: 1
Registered Events: (none)
Request: REQUEST_INFORMATION
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1
[CRITICAL][Stream] 10.02.2019 22:46:14 [] (unknown:0) - Could not read scalar volume using DCMTK approach. Error is: FileFormatError
[INFO][Stream] 10.02.2019 22:46:14 [] (unknown:0) - Loading series ‘26: RTDOSE: RT Dose’ from file ‘D:/SLICER/CKLiver_Proton_Study_Plans/DATA SET 1/ITV Plan-anon/rtdose.dcm’
[INFO][VTK] 10.02.2019 22:46:15 [vtkMRMLVolumeArchetypeStorageNode (000002680EA71970)] (D:\D\P\Slicer-0\Libs\MRML\Core\vtkMRMLVolumeArchetypeStorageNode.cxx:465) - Loaded volume from file: D:/SLICER/CKLiver_Proton_Study_Plans/DATA SET 1/ITV Plan-anon/rtdose.dcm. Dimensions: 256x256x197. Number of components: 1. Pixel type: unsigned int.
[INFO][Python] 10.02.2019 22:46:15 [Python] (C:/Program Files/Slicer 4.11.0-2019-02-01/bin/…/lib/Slicer-4.11/qt-scripted-modules/DICOMScalarVolumePlugin.py:303) - Loading with imageIOName: GDCM
[INFO][Python] 10.02.2019 22:46:17 [Python] (C:/Program Files/Slicer 4.11.0-2019-02-01/bin/…/lib/Slicer-4.11/qt-scripted-modules/DICOMScalarVolumePlugin.py:375) - Window/level found in DICOM tags (center=40.0, width=400.0) has been applied to volume 2: Anonymized
[WARNING][Python] 10.02.2019 22:46:18 [Python] (C:/Program Files/Slicer 4.11.0-2019-02-01/bin/…/lib/Slicer-4.11/qt-scripted-modules/DICOMScalarVolumePlugin.py:701) - Irregular volume geometry detected, but maximum error non-zero but is within tolerance (maximum error of 1.78223e-05 mm, tolerance threshold is 0.001 mm).
[WARNING][Python] 10.02.2019 22:46:18 [Python] (C:\Program Files\Slicer 4.11.0-2019-02-01\bin\Python\slicer\util.py:1110) -
Could not load: 1: Unnamed Series as a Scalar Volume
[INFO][Stream] 10.02.2019 22:46:15 [] (unknown:0) - Loading with imageIOName: GDCM
[ERROR][VTK] 10.02.2019 22:46:17 [vtkCompositeDataPipeline (0000026813062C40)] (D:\D\P\Slicer-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:709) - Input port 0 of algorithm vtkCleanPolyData(0000026839675450) has 0 connections but is not optional.
[ERROR][VTK] 10.02.2019 22:46:17 [vtkCompositeDataPipeline (00000268151E4B90)] (D:\D\P\Slicer-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:709) - Input port 0 of algorithm vtkCleanPolyData(00000268130ED500) has 0 connections but is not optional.
[ERROR][VTK] 10.02.2019 22:46:17 [vtkTransformPolyDataFilter (0000026816BF2A00)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:17 [vtkCompositeDataPipeline (00000268151E4B90)] (D:\D\P\Slicer-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:709) - Input port 0 of algorithm vtkCleanPolyData(00000268130ED500) has 0 connections but is not optional.
[ERROR][VTK] 10.02.2019 22:46:17 [vtkTransformPolyDataFilter (0000026816BF2A00)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:17 [vtkCompositeDataPipeline (00000268151E4B90)] (D:\D\P\Slicer-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:709) - Input port 0 of algorithm vtkCleanPolyData(00000268130ED500) has 0 connections but is not optional.
[ERROR][VTK] 10.02.2019 22:46:17 [vtkTransformPolyDataFilter (0000026816BE3460)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:17 [vtkTransformPolyDataFilter (0000026816BE3460)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[INFO][Stream] 10.02.2019 22:46:17 [] (unknown:0) - Window/level found in DICOM tags (center=40.0, width=400.0) has been applied to volume 2: Anonymized
[CRITICAL][Stream] 10.02.2019 22:46:18 [] (unknown:0) - Irregular volume geometry detected, but maximum error non-zero but is within tolerance (maximum error of 1.78223e-05 mm, tolerance threshold is 0.001 mm).
[CRITICAL][Stream] 10.02.2019 22:46:18 [] (unknown:0) -
[CRITICAL][Stream] 10.02.2019 22:46:18 [] (unknown:0) - Could not load: 1: Unnamed Series as a Scalar Volume
[DEBUG][Qt] 10.02.2019 22:46:41 [] (unknown:0) - Switch to module: “Data”
[ERROR][VTK] 10.02.2019 22:46:58 [vtkTransformPolyDataFilter (0000026816BE3460)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:58 [vtkTransformPolyDataFilter (0000026816BE3460)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:59 [vtkTransformPolyDataFilter (0000026816BF2A00)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:59 [vtkTransformPolyDataFilter (0000026816BF2A00)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:59 [vtkTransformPolyDataFilter (0000026816BE3460)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 22:46:59 [vtkTransformPolyDataFilter (0000026816BE3460)] (D:\D\P\Slicer-0-build\VTK\Filters\General\vtkTransformPolyDataFilter.cxx:85) - No input data
[ERROR][VTK] 10.02.2019 23:00:09 [vtkCompositeDataPipeline (0000026813062C40)] (D:\D\P\Slicer-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:709) - Input port 0 of algorithm vtkCleanPolyData(0000026839675450) has 0 connections but is not optional.
[ERROR][VTK] 10.02.2019 23:00:09 [vtkCompositeDataPipeline (00000268151E4B90)] (D:\D\P\Slicer-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:709) - Input port 0 of algorithm vtkCleanPolyData(00000268130ED500) has 0 connections but is not optional.
[ERROR][VTK] 10.02.2019 23:00:09 [vtkCompositeDataPipeline (0000026813062C40)] (D:\D\P\Slicer-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:709) - Input port 0 of algorithm vtkCleanPolyData(0000026839675450) has 0 connections but is not optional.
[ERROR][VTK] 10.02.2019 23:00:09 [vtkCompositeDataPipeline (00000268151E4B90)] (D:\D\P\Slicer-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:709) - Input port 0 of algorithm vtkCleanPolyData(00000268130ED500) has 0 connections but is not optional.

Thanks for the log! It does not say anything about failed beam data loading. Is it possible for you to share an anonymized dataset which you have this problem with? Then I’ll try to reproduce the issue.

I am happy to share the anonymized dataset,
However could you please inform me as to the best means to share the data.

Cheers,
Sam

Whatever you normally prefer. Many times we use Dropbox/OneDrive/GDrive, but for some people a server hosted by their institution is easier. The data is for testing and bugfixing purposes only, so temporary storage is completely fine. Thanks!

here is the link to the Gdrive folder
https://drive.google.com/drive/folders/1jnvyMppJfDm3IyCoI689rTTdx_H5pDiF?usp=sharing

I got it, thank you. I just need some time ot get there. Please standby

I did some digging and it turns out that my hunch was right: the type of plan simply isn’t supported yet, see


(the plan in your dataset has the SOP class UID of ion plans).

If you have some time, adding it shouldn’t be too hard I think. Just follow the existing example (RTPlanStorage) and the corresponding section of the DICOM standard. @gcsharp what do you think?
If you decide to go for it, I’m happy to help!

RT Ion Plan shares some overlap with RT Plan, yes, I think it should not be too difficult.

1 Like

Thanks for diagnosing the problem,

I would love to have a go at adding it, but i think will need a lot of help. My programing experience has been mainly limited to Matlab, but currently recieving training on Python programing . So any assistance will be much appreciated.

2 Likes

Excellent! I think you can help a lot in the DICOM side of things.

I’ll create a branch on GitHub for this and add placeholders where the proton/ion part needs to go so that you just need to fill in some gaps in the code. I’ll also point to examples you can copy-paste-modify to get the ion part working.

Please follow this GitHub issue. I’ll describe the steps there. Thanks a lot in advance!

2 posts were split to a new topic: HDR brachytherapy plan loading