Difference between revisions of "2012 Project Week:4DImageSlicer4"

From NAMIC Wiki
Jump to: navigation, search
Line 38: Line 38:
 
<h3>Progress</h3>
 
<h3>Progress</h3>
  
Initial experiments showed the feasibility of the proposed approach:
+
The design of the module has been discussed, implementation is underway.
* DicomToNrrdConverer works for DCE data
+
 
* B-values field can be used to store timestamps
+
We introduced a new MRML node named "VectorImageContainer" to encapsulate DWI node and provide generic functionality for operating 3D+1 images. This module can be used not only for time series visualization (3D+t), but in other applications (e.g., T1 and T2 estimation: 3D+RepetitionTime, 3D+FlipAngle). The node will also contain metadata to identify the type of the information stored in the vectors, and the labels for each element.
 +
 
 +
Support for VectorImageContainer will be provided by several modules:
 +
# '''VectorImageImporter''': wizard-based Python module to provide different mechanisms to create VectorImageContainer from options like single DICOM series, a set of 3D volumes on disk, an existing DWI volume, or collection of existing ScalarVolumeNodes. (implementation not started)
 +
# '''VectorImageExplorer''': C++/Python module to support user interaction with VectorImageContainer: scroll in the fourth dimension, probe data at a selected location, plotting of the curves (implementation in progress available on github:  [https://github.com/fedorov/VectorImageExplorer VectorImageExplorer]. As of now, this module allows to scroll in fourth dimension, probe data and display vector as a string in the module GUI. Next step is to add plotting.
 +
 
  
 
Questions:
 
Questions:
 
* are VTK plotting capabilities as in RT module available from python
 
* are VTK plotting capabilities as in RT module available from python
 +
** ctkVTKChartView is not accessible fully from python, need to wrap, or use Jim's solution
 
** a ChartViewer (like a SliceView or 3D View that can be packed in a layout) is under development - Jim
 
** a ChartViewer (like a SliceView or 3D View that can be packed in a layout) is under development - Jim
 
* python vs c++ for the DCE GUI module
 
* python vs c++ for the DCE GUI module
* DWI volume has B-values vector, but only the last B-value is saved in the NRRD volume by Slicer -- is this expected?
+
** C++ with delegation of GUI management to Python was chosen for implementation
* what should be included in the DCE GUI module? plan: simplified version of the Volumes DWI panel, adjusted for DCE needs
 
  
 
</div>
 
</div>
Line 56: Line 61:
 
==Delivery Mechanism==
 
==Delivery Mechanism==
  
This work will be delivered to the NA-MIC Kit as a combination of core functionality and customized modules of 3D Slicer v.4
+
This work will be delivered to the NA-MIC Kit as a Slicer4 extension.
  
 
==Meeting notes==
 
==Meeting notes==

Revision as of 15:58, 13 January 2012

Home < 2012 Project Week:4DImageSlicer4

Key Investigators

  • BWH: Andrey Fedorov
  • Isomics: Steve Pieper
  • BWH: Junichi Tokuda
  • MGH: Jayashree Kalpathy-Cramer
  • GE: Emma Zhu
  • GE: Jim Miller

Objective

To discuss the architecture and work on implementing support for 4d images in Slicer4.

Our primary use case is to provide support for IO and visualization of DCE MRI, with the application specifically to prostate imaging.

Approach, Plan

Discuss the architecture and implementation approach, specifically should address:

  • import
  • visualization
  • export/serialization
  • user experience
  • interoperability with the ITK-based analysis tools

Progress

The design of the module has been discussed, implementation is underway.

We introduced a new MRML node named "VectorImageContainer" to encapsulate DWI node and provide generic functionality for operating 3D+1 images. This module can be used not only for time series visualization (3D+t), but in other applications (e.g., T1 and T2 estimation: 3D+RepetitionTime, 3D+FlipAngle). The node will also contain metadata to identify the type of the information stored in the vectors, and the labels for each element.

Support for VectorImageContainer will be provided by several modules:

  1. VectorImageImporter: wizard-based Python module to provide different mechanisms to create VectorImageContainer from options like single DICOM series, a set of 3D volumes on disk, an existing DWI volume, or collection of existing ScalarVolumeNodes. (implementation not started)
  2. VectorImageExplorer: C++/Python module to support user interaction with VectorImageContainer: scroll in the fourth dimension, probe data at a selected location, plotting of the curves (implementation in progress available on github: VectorImageExplorer. As of now, this module allows to scroll in fourth dimension, probe data and display vector as a string in the module GUI. Next step is to add plotting.


Questions:

  • are VTK plotting capabilities as in RT module available from python
    • ctkVTKChartView is not accessible fully from python, need to wrap, or use Jim's solution
    • a ChartViewer (like a SliceView or 3D View that can be packed in a layout) is under development - Jim
  • python vs c++ for the DCE GUI module
    • C++ with delegation of GUI management to Python was chosen for implementation

Delivery Mechanism

This work will be delivered to the NA-MIC Kit as a Slicer4 extension.

Meeting notes

Monday discussion: Andrey, Junichi, Jayashree, Steve

Implementation plan we agreed upon will include several separate components:

  • Importing DCE into Slicer:
    • Develop a custom DCE import wizard. The user will specify the directory that contains the DICOM series. The module will internally use DicomToNrrdConverter to create a NRRD volume from a DICOM DCE series, and also will parse the DICOM files to get the timestamps, FA and TR acquisition parameters. It will create a custom time series MRML node (TS-node) that will reference a DWI node storing the data (that one will be invisible to the user from Slicer GUI). TS-node will also keep a pointer to a value pair collection that will keep timestamps, TR and FA.
  • Data interaction
    • Develop custom DCE exploration module. This will provide functionality similar to Volumes module but scroll over timestamps. Will also potentially allow to create plots and probe time series data.
  • Serialization
    • Several mechanisms will be used:
      • DWI NRRD + DWI storage node to save/restore the data content; dictionary will be saved in the MRML scene as value pairs; DWI NRRD raw part will also be referenced by a DCE-specific NRRD header, which would be readable by conventional ITK readers to support interoperability with other tools.

Action items:

  • Andrey: mock design of TS-node, individual modules. MRML nodes -- C, GUI/interaction -- python (?).
  • Jayashree: test whether DicomToNrrdConverter can correctly handle Siemens DCE/DSC MRI.


Pre-meeting notes

Our initial plan was to follow on the steps of the DWI support already present in Slicer4, as discussed below.

Considering input from Steve, the ambitions were down-scaled.

Approaches to consider:

  • use DicomToNrrdConverter to make a fake DWI from a DCE series
  • use custom module to inject timestamps into the DWI volume node, as if these were B-values. This way we can store timestamps together with the data.
  • provide custom GUI perhaps using a specialized module that would reuse DWI display node for vosualization, but will add
    • time scroller instead of the B-value scroller
    • plotting area for visualizing time curves
    • support for interactive selection of spatial location using mouse/keyboard or fiducial
  • Port the 4D Image and Analysis modules from Slicer3


We should consider the following aspects of the architecture and implementation:

  • IO
    • develop a customized NRRD format that would store time stamps for the individual frames. There is no currently such format. There is similar precedent in DicomToNrrdConverter and DWI support.
    • introduce new module, similar to DicomToNrrdConverter (or an option of operation for the DicomToNrrdConverter?) to convert a DICOM study into the customized format
    • introduce new storage nodes into Slicer4 that would enable IO of the customized NRRD format
    • discuss how the 4D MRI node would be related to the existing hierarchy of the volumes in Slicer -- should DWI and 4D MRI be siblings?
  • Visualization
    • anecdotally, very efficient visualization of 4D MRI studies is already possible by reading them as a DWI volume following DicomToNrrd module conversion.
    • an idea is to provide a custom GUI panel in the Volumes module. This would be similar to DWI visualization panel, but would include a field for displaying time stamps instead of b-values.
  • management
    • organize the time points in an hierarchy?
    • tool to add, remove time points
    • tool to provide a time range (start, end) instead of the entire range

References