2012 Winter Project Week:RTTools

From NAMIC Wiki
Revision as of 00:57, 13 January 2012 by Gregsharp (talk | contribs) (→‎Detailed plan)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
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

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
  • Data Export:
    • Track UIDs as image metadata (??)
    • Write export plugin (Sharp)
  • 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:

References