Sharing radiation dose information onto PACS
The idea of this project is to help radiation oncology departments develop a framework for sharing a patient's radiation dose distribution map onto the hospital PACS. This enables central access for the radiation dose map so that all providers may view and reference it. Radiologists can also more readily incorporate the volumetric radiation data into their differential diagnoses.
Our paper was published in RSNA's journal Radiology: Imaging Cancer.
Savjani RR, Salamon N, Deng J, Ma TM, Tenn S, Agazaryan N, Hegde J, Kaprealian T. (2021). A Framework for Sharing Radiation Dose Distribution Maps in the Electronic Medical Record for Improving Multidisciplinary Patient Management. Radiology: Imaging Cancer
This repository shows how to use existing open source tools to:
Interact with data using Slicer
- Use 3D Slicer via a Jupyter notebook to interrogate data and plot interactively
- Load RTDose RTSS Dicom files and underlying anatomical files
- Create Isodose Lines
- Convert DICOM-RT RTDose files into standard DICOM files (plastimatch)
Export CT and RTDose to standard DICOM volumes
outputFolder = "dicom-output/"
# Create patient and study and put the volume under the study
shNode = slicer.vtkMRMLSubjectHierarchyNode.GetSubjectHierarchyNode(slicer.mrmlScene)
ctShItemID = shNode.GetItemByDataNode(ct)
import DICOMScalarVolumePlugin
exporter = DICOMScalarVolumePlugin.DICOMScalarVolumePluginClass()
# export ct to dicom
exportables = exporter.examineForExport(ctShItemID)
for exp in exportables:
exp.directory = outputFolder
exporter.export(exportables)
# resample rtdose to be in same space as ct
parameters = {'inputVolume':rtdose, 'referenceVolume':ct, 'outputVolume':rtdose,
'interpolationMode':'Linear'}
cliNode = slicer.cli.run(slicer.modules.brainsresample, None, parameters)
# export rtdose to dicom
rtdoseShItemID = shNode.GetItemByDataNode(rtdose)
exportables = exporter.examineForExport(rtdoseShItemID)
for exp in exportables:
exp.directory = outputFolder
exporter.export(exportables)
Push DICOM images onto PACS
5. Push DICOM images onto a DICOM Server (e.g., PACS) with DCMTK commands
This approach can be tailored by radiation oncology departments to share radiation dose maps onto PACS.
For departments using MIM, please see our MIM README to configure MIM to push dose maps to PACS directly.
In order to push data onto PACS, you will need to work with you hospital IT team to grant permissions for your DICOM server to push data onto PACS. This typically requires knowing the following information from both your server and the PACS server:
- Static IP Address
- AE Title
- Port #
Mandatory:
DCMTK
DICOM Toolkit for query/retrieve and sending data to DICOM servers (e.g., PACS)
https://dicom.offis.de/dcmtk.php.en
3D Slicer
Ppen source package for visualizing and analyzing volumetric medical imaging data
https://www.slicer.org/
SlicerRT
3D Slicer extension for handling DICOM-RT data
http://slicerrt.github.io/
SlicerJupyter
3D Slicer extension for using Jupyter notebooks
https://github.com/Slicer/SlicerJupyter
Optional (but useful):
Plastimatch
Open source package useful for converting DICOM-RT to other formats
https://plastimatch.org/plastimatch.html
CERR
MATLAB computational environment for Radiological Research
https://github.com/cerr/CERR
DicomRTTool
Simple Python Module for Conversions Between DICOM Images and Radiation Therapy Structures, Masks, and Prediction Arrays [paper]
https://github.com/brianmanderson/Dicom_RT_and_Images_to_Mask
Ricky Savjani, MD/PhD
Department of Radiation Oncology
UCLA