Difference between revisions of "Common resampling and conversion utility functions in Slicer"

From NAMIC Wiki
Jump to: navigation, search
(Created page with '__NOTOC__ <gallery> Image:PW-SLC2013.png|Projects List <!--Image:genuFAp.jpg|Scatter plot of the original FA data through the genu of the co…')
 
m
 
(9 intermediate revisions by 3 users not shown)
Line 16: Line 16:
  
 
<h3>Objective</h3>
 
<h3>Objective</h3>
The goal is to migrate the DICOM RT export function in Plastimatch to be able to export the RT objects of SlicerRT, leveraging the Patient Hierarchy tree and the Slicer DICOM Database.
+
The goal is to develop common utility functions to perform resampling of vtkMRMLVolumeNode using a reference volume node and conversion of vtkMRMLVolumeNode to itkImage.
  
 
</div>
 
</div>
Line 23: Line 23:
  
 
<h3>Approach, Plan</h3>
 
<h3>Approach, Plan</h3>
* Investigat the existing DICOM export mechanism.
+
* discuss during the project week using google hangout.
* Implement simple interface functions in Plastimatch
+
* explain what has been done in SlicerRT to deal with these two functions.
* Implement a loadable module to utilize the interface functions in Plastimatch for saving DicomRT objects.
+
* Csaba has found a bug in vtkImageReslice so we need to follow up with this and report it back to David Gobbi.
* Implement a plugin mechanism just like the Dicom import plugin framework to determine which plugin is better to export the mrmlnode. Decide which objects to export in the first round and identify the obstacles for the other objects
+
** Try [https://github.com/pieper/Regimatic/blob/master/Regimatic.py#L330-371 this] implementation to see if Csaba's use case works with it
* Have the export function use the Patient Hierarchy to fill the proper DICOM tags
 
  
 
</div>
 
</div>
Line 34: Line 33:
  
 
<h3>Progress</h3>
 
<h3>Progress</h3>
* .
+
* Use cases
 
+
** Convert images from VTK+MRML to ITK to supply input to Plastimatch algorithms (RT)
 
+
** Resample a labelmap to match the lattice of another one for voxel-by voxel comparison (RT, validating/comparing segmentations)
'''To do''':
+
** Resample mask to match the input DWI image for DWI to DTI conversion (Hans Johnson, UIowa)
* create a loadable module and corresponding module logic
+
* Plan is to implement the functions in volumes logic first, and then sink it to lower layers if necessary
* organize google hangout with Greg to follow up with how to implement dicom export using the plastimatch lib.
+
** Converters
* Implement a save function, and utility functions to construct corresponding plastimatch data structure for saving structure set.
+
*** ITK -> VTK+MRML
* follow up with Steve and Csaba on how to implement the plugin mechanism
+
*** VTK+MRML -> ITK
* follow up on patient hierarchy model.
+
** Oriented resamplers (apply transform to a volume and resample it in a reference grid)
 +
*** ITK (re-use code from Plastimatch)
 +
*** VTK+MRML (vtkImageReslice)
 +
* Started implementation of two classes in volumes logic: vtkVolumesConvertUtility and vtkVolumesOrientedResampleUtility. Names and the details of the implementation can be of course changed.
  
 
</div>
 
</div>
Line 49: Line 51:
 
==Delivery Mechanism==
 
==Delivery Mechanism==
  
This work will be delivered to the NA-MIC Kit as a Slicer module, as part of the SlicerRT extension
+
This work will be delivered to the NA-MIC Kit as a Slicer module
 
 
  
 
==References==
 
==References==
* [http://plastimatch.org Plastimatch]
 
 
* [https://www.assembla.com/spaces/slicerrt/wiki SlicerRT]
 
* [https://www.assembla.com/spaces/slicerrt/wiki SlicerRT]
* [https://www.assembla.com/spaces/slicerrt/tickets/55#/activity/ticket: Corresponding SlicerRT ticket]
+
* [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2013/012510.html: discussion on resampling issue]
 +
* [https://www.assembla.com/spaces/slicerrt/tickets/303#/activity/ticket: ticket in SlicerRT regarding conversion]
 +
* [https://github.com/pieper/Regimatic/blob/master/Regimatic.py#L330-371 python code that performs the desired resampling]

Latest revision as of 17:42, 20 June 2013

Home < Common resampling and conversion utility functions in Slicer

Key Investigators

  • Isomics: Steve Pieper
  • UIowa: Hans
  • PMH Toronto: Kevin Wang
  • Queen's: Csaba Pinter

Objective

The goal is to develop common utility functions to perform resampling of vtkMRMLVolumeNode using a reference volume node and conversion of vtkMRMLVolumeNode to itkImage.

Approach, Plan

  • discuss during the project week using google hangout.
  • explain what has been done in SlicerRT to deal with these two functions.
  • Csaba has found a bug in vtkImageReslice so we need to follow up with this and report it back to David Gobbi.
    • Try this implementation to see if Csaba's use case works with it

Progress

  • Use cases
    • Convert images from VTK+MRML to ITK to supply input to Plastimatch algorithms (RT)
    • Resample a labelmap to match the lattice of another one for voxel-by voxel comparison (RT, validating/comparing segmentations)
    • Resample mask to match the input DWI image for DWI to DTI conversion (Hans Johnson, UIowa)
  • Plan is to implement the functions in volumes logic first, and then sink it to lower layers if necessary
    • Converters
      • ITK -> VTK+MRML
      • VTK+MRML -> ITK
    • Oriented resamplers (apply transform to a volume and resample it in a reference grid)
      • ITK (re-use code from Plastimatch)
      • VTK+MRML (vtkImageReslice)
  • Started implementation of two classes in volumes logic: vtkVolumesConvertUtility and vtkVolumesOrientedResampleUtility. Names and the details of the implementation can be of course changed.

Delivery Mechanism

This work will be delivered to the NA-MIC Kit as a Slicer module

References