Documentation/4.1/Modules/MultiVolumeExplorer

From Slicer Wiki
Jump to: navigation, search
Home < Documentation < 4.1 < Modules < MultiVolumeExplorer


For the latest Slicer documentation, visit the read-the-docs.



Introduction and Acknowledgements

This work is supported by NA-MIC, NAC, NCIGT, and the Slicer Community. This work is partially supported by the following grants: P41EB015898, P41RR019703, R01CA111288 and U01CA151261.
Author: Andrey Fedorov, Jean-Cristophe Fillion Robin, Julien Finet, Steve Pieper, Ron Kikinis
Contact: Andrey Fedorov <email>fedorov@bwh.harvard.edu</email>

National Center for Image Guided Therapy (NCIGT)  
National Alliance for Medical Image Computing (NA-MIC)  
Surgical Planning Laboratory (SPL)  
Kitware, Inc.  
Neuroimage Analysis Center (NAC)  


Module Description

This module provides support for exploring multivolume (multiframe) data.

Use Cases

Most frequently used for these scenarios:

  • visualization of a DICOM dataset that contains multiple frames that can be separated based on some tag (e.g., DCE MRI data, where individual temporally resolved frames are identified by Trigger Time tag (0018,1060)
  • visualization of multiple frames defined in the same coordinate frame, saved as individual volumes in NRRD, NIfTI, or any other image format supported by 3D Slicer
  • exploration of the multivolume data (cine mode visualization, plotting, volume rendering)
Screenshot of charts derived from the sample data set. The curves represent average signal intensity in the ROI's with corresponding colors, which were drawn in the editor. Please note the arterial input function in red.

Tutorials


Panels and their use

MultiVolume data is represented in this module using two components:

  • MultiVolume node: this is the node you select when you import the dataset using MultiVolumeImporter module
  • DisplayNode: this is the node responsible for visualization and storage of the actual image data. The name of that latter node is assigned based on the type of data you are importing. For example, if you import "4D DCE" dataset, it will be called "DCEDisplayNode". This is the node you need to choose in slice viewers to see the multivolume dataset.
  • Input: select the MultiVolume node you would like to explore
  • Frame control
    • Current frame number: you can use the slider or spin-box to select the currently shown frame. Play button can be used to activate 'cine' view mode, with the frames being shown in a continuous mode.
    • Current frame copy: you can create and select a conventional scalar volume node in this selector. If Enable current frame copying button is pressed, each time the currently shown frame is updated, it will be copied to the volume selected. This is useful in situations when you want to do processing of an individual frame (e.g., segmentation), or if you want to show volume rendering of the currently active frame.
  • Plotting: there are two modes of plotting that are supported by the module:
    • Interactive plotting: this mode of plotting is enabled by default and is facilitated by the chart area located in the Plotting panel. When enabled, the chart will display the intensity values at the spatial location defined by the current position of the mouse pointer. This mode can be disable from the Plotting GUI panel.
    • Static plotting: This mode of plotting is enabled by the Charts infrastructure of Slicer, which is exposed in any of the Quantitive layouts. To use this mode, follow these steps:
      1. Extract a representative frame from your multivolume dataset, as discussed above.
      2. Use the Editor module to create labels for the regions of interest.
      3. Select the prepared label volume in the Probed label volume selector in the Plotting panel. The Charts viewer in the Slicer Quantitative layout will be updated with the average intensity values for each of the contoured ROIs. The colors of the plots will be the same as the colors of ROI labels.
Settings panel and interactive plotting chart
Illustration of the static plotting from the explorer module. Note the label overlay in slice viewer with the ROIs corresponding to the femoral artery and an area in the prostate peripheral zone (blue arrow). The label corresponds to the segmentation done for the extracted volume of the 17th frame of the multivolume (green arrow). The same label is selected in the Plotting panel of the module. The corresponding colors are assigned to the plots in the Chart viewer in the layout (yellow arrow).

Related Modules

Before multivolume data can be viewed/explored, it has to be loaded using MultVolumeImporter module.

References

Information for Developers

This module is an external Slicer module. The source code is available on Github here: https://github.com/fedorov/MultiVolumeExplorer

Known issues that won't be resolved

  • bug 1841: multivolumes that contain less than 7 frames will not be saved correctly and the scene containing such objects will not be loaded correctly by Slicer (limitation of the NRRD IO for DWI)

Unresolved issues

  • assign correctly title and points for the X axis
  • review the comments from JC/J2 on github and fix the code
  • bug: repeated loading of a scene that contains a MV node causes crash in onInputChanged()
  • improve error reporting!
  • look into flickering issue of vtkChart
  • improve documentation -- DONE

Features to be implemented

  • integrate MV importer as a DICOM module plugin
  • allow the user to speed-up or slow-down the playback, and also turn off "loop"
  • report to the user the actual, measured, frame rate
  • add an option to report curves in relative SI change in addition to absolute

Features under consideration

  • can we use chart viewer for interactive plotting? -- Discussed with Jim, speedup is possible, but not a priority right now
  • should use color names for the legend in the chart viewer -- Will be available as general feature of Charts (Jim)
  • interactive update of the active frame based on the point selected in the chart viewer
  • should DWI node be a child under the MV hierarchy?
  • add GUI elements to update the current frame at the exact time intervals specified in multivolume. If the intervals are non-uniform, I am not sure I can use the timer anymore, so this would require some extra thought.
  • import multivolumes from ITK 4d images