2012 Winter Project Week:RTTools
From NAMIC Wiki
Home < 2012 Winter Project Week:RTTools
Background
We propose to extend 3D Slicer to support RT research under the Software Platform and Adaptive Radiotherapy Kit (SparKit) project. OCAIRO investigators we have identified some of the key features required from a 3D Slicer based RT research platform. This project week we are going to finish integrating our first new feature to Slicer4 - the import of DICOM RT datasets.
Key Investigators
- Queen's University: Csaba Pinter, Andras Lasso
- Toronto UHN: Kevin Wang
- MGH: Greg Sharp
Objective
- Add DICOM-RT import functionality to Slicer4
- Outline the data format in which the structure set is stored
- Test it on the most real-life datasets possible
Approach, Plan
- Utilize new DCMTK (that contains DCMRT) in CTK
- Convert internal DCMRT structures to MRML nodes (models, labelmaps, etc.)
- Apply necessary GUI changes that are needed for RT import in CTK
Progress
- Slicer4 build OK
- Sample data collected
- DCMRT build in Slicer OK
- Discussion about common needs, priorities and design regarding DICOM RT and SR support in Slicer4
- Retrieval of RT tags into DICOM module database (see screenshot)
- New hidden DicomRtImport loadable module that is called when importing any DICOM object. It tryes to load it first as RT then passes to the Volumes module's loader
- Improvement needed: DICOMIOFactory - a DICOM importer module has to register into this, and when loading a DICOM file, it decides which one to call
- Create ribbon models from the found RT Structure Sets and add them in the Slicer Scene as new MRML nodes. The name and color is also set (see screenshot)
- Next step:
- TCon preparing for meetings with DCMTK and CTK personnel
Week of Jan 16-20, who is interested in participating, please sign up here
- TCon preparing for meetings with DCMTK and CTK personnel
Detailed plan
- Create an extension module: DicomRtImport (Csaba)
- Call a method of the DicomRtImport module when the user requests DICOM object loading. Method's input: UID. If the method finds a structure set then it adds it to the scene. (Csaba)
- Create a VTK filter that can read structure set from a DICOM-RT structure set and has a vtkPolyData output (Kevin)
- Integrate the VTK filter into the DicomRtImport module (Kevin)
- Add the vtkPolyData to the scene as a MRML model node (Kevin/Csaba)
- Discuss DicomPlugin interface with Steve:
- The module should not be visible for the user in the usual module list (it should show up somehow in the DICOM module)
- Data discovery:
- Module input: UID, reference to the DICOM database
- Module output: list of data it can read from the object
- Data import:
- Module input: UID, reference to the DICOM database, name of data to be loaded
- Module output: MRML nodes imported into the scene
- Validation:
- Assemble data sets from different vendors
Delivery Mechanism
This work will be delivered to the NA-MIC Kit as a Slicer loadable module. The source code is available in the following locations:
- Slicer core changes (SVN): http://svn.slicer.org/Slicer4/branches/SlicerRT
- CTK changes (GIT): https://github.com/SlicerRt/CTK
- RT import module (SVN): https://subversion.assembla.com/svn/sparkit/