Difference between revisions of "2012 Winter Project Week:RTTools"

From NAMIC Wiki
Jump to: navigation, search
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 
<gallery>
 
<gallery>
Image:PW-SLC2011.png|[[2011_Winter_Project_Week#Projects|Projects List]]
+
Image:PW-SLC2012.png|[[2012_Winter_Project_Week#Projects|Projects List]]
Image:DVH_in_Slicer.png|[[DVH chart in Slicer4]]
+
Image:DVH_in_Slicer.png|DVH chart in Slicer4<br>(Summer 2011 result)
 +
Image:Screenshot_Before_After_DICOMModule_KGH_Prostate.png|DICOM Database improvements for RT
 +
Image:Screenshot_DicomRtImport_3D_KGH_Prostate_wSlice.png|3D view of loaded RT Structure Sets in Slicer4
 
</gallery>
 
</gallery>
 +
 +
==Background==
 +
We propose to extend 3D Slicer to support RT research under the Software Platform and Adaptive Radiotherapy Kit ([http://www.assembla.com/spaces/sparkit SparKit]) project.
 +
OCAIRO investigators we have [https://www.assembla.com/spaces/sparkit/wiki/20111130_Meeting_with_OCAIRO_PIs 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==
 
==Key Investigators==
Line 14: Line 21:
  
 
<h3>Objective</h3>
 
<h3>Objective</h3>
We are developing radio therapy (RT) tools for Slicer4.
+
* 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
  
 
</div>
 
</div>
Line 22: Line 30:
  
 
<h3>Approach, Plan</h3>
 
<h3>Approach, Plan</h3>
 
+
* 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
  
 
</div>
 
</div>
Line 29: Line 39:
  
 
<h3>Progress</h3>
 
<h3>Progress</h3>
 
+
* Slicer4 build OK
 
+
* Sample data collected
 +
* DCMRT build in Slicer OK
 +
* [[2012_Winter_Project_Week_DICOM_RT_Breakout|Discussion]] about common needs, priorities and design regarding DICOM RT and SR support in Slicer4
 +
* Retrieval of RT tags into DICOM module database (see [http://www.na-mic.org/Wiki/index.php/File:Screenshot_Before_After_DICOMModule_KGH_Prostate.png 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 [http://www.na-mic.org/Wiki/index.php/File:Screenshot_DicomRtImport_3D_KGH_Prostate_wSlice.png screenshot])
 +
*<b>Next step:</b>
 +
** TCon preparing for meetings with DCMTK and CTK personnel<br>Week of Jan 16-20, who is interested in participating, please sign up <b>[[2012_Winter_Project_Week_DICOM_RT_Breakout#Follow-up_meeting|here]]</b>
  
 
</div>
 
</div>
Line 36: Line 54:
  
 
<div style="width: 97%; float: left;">
 
<div style="width: 97%; float: left;">
 +
 +
==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==
 
==Delivery Mechanism==
  
This work will be delivered to the NA-MIC Kit as a (please select the appropriate options by noting YES against them below)
+
This work will be delivered to the NA-MIC Kit as a <b>Slicer loadable module</b>.
 
+
The source code is available in the following locations:
#ITK Module
+
*Slicer core changes (SVN): http://svn.slicer.org/Slicer4/branches/SlicerRT
#Slicer Module
+
*CTK changes (GIT): https://github.com/SlicerRt/CTK
##Built-in
+
*RT import module (SVN): https://subversion.assembla.com/svn/sparkit/
##Extension -- commandline
 
##Extension -- loadable
 
#Other (Please specify)
 
  
 
==References==
 
==References==
  
 +
* [https://www.assembla.com/spaces/sparkit/wiki SparKit project wiki]
 +
* [http://www.dcmtk.org/ DCMTK]
 +
* [http://support.dcmtk.org/wiki/dcmrt/start DCMRT], [http://blog.jriesmeier.com/2011/04/when-dcmrt-released/ when it will be released]
 +
* [http://plastimatch.org/ Plastimatch]
 +
* [ftp://medical.nema.org/medical/dicom/2011/ DICOM standard]
  
 
</div>
 
</div>

Latest revision as of 00:57, 13 January 2012

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