Difference between revisions of "Documentation/4.1/Modules/MultiVolumeExplorer"

From Slicer Wiki
Jump to: navigation, search
m (Text replacement - "http://wiki.slicer.org/slicerWiki/images/" to "http://www.slicer.org/w/img_auth.php/")
 
(35 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{documentation/underconstruction}}
+
<noinclude>{{documentation/versioncheck}}</noinclude>
 
+
{{ambox
[[Image:Screen_Shot_2012-02-23_at_7.53.51_AM.png|400px|thumb|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.]]
+
| type  = protection
 
+
| image = [[File:InProgress.png|40px|alt=Work in progress]]
'''This is a placeholder for MultiVolumeExplorer module documentation.'''
+
| text  = WARNING: This module is Work in Progress, which means:
 
 
Development of this module was initiated at the 2012 NA-MIC Project week at SLC (see http://wiki.na-mic.org/Wiki/index.php/2012_Project_Week:4DImageSlicer4)
 
 
 
The module is located in '''Modules -> Work in progress -> MultiVolume Support'''
 
 
 
'''Disclaimer''': this module is '''Work in progress'''. This means that
 
 
* the functionality provided by this module may change drastically in the future releases of 3D Slicer
 
* the functionality provided by this module may change drastically in the future releases of 3D Slicer
 
* the scenes containing data types specific to this module may not be readable by the future versions of Slicer
 
* the scenes containing data types specific to this module may not be readable by the future versions of Slicer
Line 15: Line 9:
 
* some functionality may not work as intended
 
* some functionality may not work as intended
 
* testing and documentation is limited
 
* testing and documentation is limited
 
+
}}
If you would like to try this module:
 
# download the sample dataset [http://wiki.slicer.org/slicerWiki/images/5/56/Case1_DCE.tgz anonymized prostate DCE MRI DICOM series]
 
# check out [http://www.youtube.com/watch?v=7zFWRzC31o4 this screencast] if you would like to learn how to use this module. (The module is located in '''Modules -> Work in progress -> MultiVolume Support''', not in Modules -> MultiVolume Support, as shown in the video)
 
 
 
Unresolved issues:
 
** bug: repeated loading of a scene that contains a MV node causes crash in onInputChanged()
 
** look into memory management from python
 
** add testing
 
** look into flickering issue of vtkChart
 
** assign correctly title and points for the X axis
 
** review the comments from JC/J2 on github and fix the code
 
** improve documentation
 
 
 
Resolved issues:
 
** widget should be reorganized and improved for explorer module -- DONE
 
** BUG: need to be in quantitative layout on startup, otherwise charting does not work -- FIXED
 
** BUG: frames were not sorted on load, sometimes causing incorrect initialization of the multivolume -- FIXED
 
** assign more intuitive names to the extracted frames -- DONE
 
** look why DWI appears on the list of scalar volumes -- FIXED
 
** look into why the chart view node is not recognized if the quantitative layout is not used initially -- FIXED
 
** 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)
 
 
 
Features under consideration:
 
*  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?
 
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
Line 51: Line 19:
 
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}
 
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}
 
{{documentation/{{documentation/version}}/module-introduction-row}}
 
{{documentation/{{documentation/version}}/module-introduction-row}}
This work is supported by NA-MIC, NAC, NCIGT, and the Slicer Community. This work is partially supported by TODO.<br>
+
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.<br>
 
Author: Andrey Fedorov, Jean-Cristophe Fillion Robin, Julien Finet, Steve Pieper, Ron Kikinis<br>
 
Author: Andrey Fedorov, Jean-Cristophe Fillion Robin, Julien Finet, Steve Pieper, Ron Kikinis<br>
 
Contact: Andrey Fedorov <email>fedorov@bwh.harvard.edu</email> <br>
 
Contact: Andrey Fedorov <email>fedorov@bwh.harvard.edu</email> <br>
Line 73: Line 41:
 
{{documentation/{{documentation/version}}/module-section|Use Cases}}
 
{{documentation/{{documentation/version}}/module-section|Use Cases}}
 
Most frequently used for these scenarios:
 
Most frequently used for these scenarios:
* visualization of DCE MRI
+
* 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 [[Documentation/4.1/SlicerApplication/SupportedDataFormat|image format supported by 3D Slicer]]
 +
* exploration of the multivolume data (cine mode visualization, plotting, volume rendering)
 +
 
 +
[[Image:Screen_Shot_2012-02-23_at_7.53.51_AM.png|400px|thumb|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.]]
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Tutorials}}
 
{{documentation/{{documentation/version}}/module-section|Tutorials}}
 +
* [http://www.youtube.com/watch?v=7zFWRzC31o4 Screencast tutorial] (note that the module is located in '''Modules -> Work in progress -> MultiVolume Support''', not in Modules -> MultiVolume Support, as shown in the video)
 +
* Sample datasets are available:
 +
** [http://www.slicer.org/w/img_auth.php/5/56/Case1_DCE.tgz anonymized prostate DCE MRI DICOM series]
 +
** [[File:Cardiac_ECGg_CT.tgz]] (ECG-gated contrast-enhanced cardiac CT) (use "User-defined non-DICOM" parameter option to load it into MultiVolumeImporter). Short [[media:BeatingHeart.mov|movie]]
  
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Panels and their use}}
 
{{documentation/{{documentation/version}}/module-section|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 [[Documentation/4.1/Modules/MultiVolumeImporter|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.
 +
 +
{|style="width: 100%"
 +
|
 +
* '''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 [[Documentation/4.1/SlicerApplication/MainApplicationGUI#Chart_Viewers | Charts]] infrastructure of Slicer, which is exposed in any of the ''Quantitive layouts''. To use this mode, follow these steps:
 +
**# Extract a representative frame from your multivolume dataset, as discussed above.
 +
**# Use the [[Documentation/4.1/Modules/Editor|Editor]] module to create labels for the regions of interest.
 +
**# 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.
 +
|
 +
| align="right" |
 +
|
 +
[[Image:Slicer4-MultiVolumeExplorer_panel1.png|thumb|400px|Settings panel and interactive plotting chart]]
 +
|}
 +
 +
{|
 +
|
 +
|align="center"|
 +
[[Image:Slicer4-MultiVolumeExplorer_static_plotting.png|thumb|800px|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).]]
 +
|
 +
|}
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
{{documentation/{{documentation/version}}/module-section|Similar Modules}}
+
{{documentation/{{documentation/version}}/module-section|Related Modules}}
N/A
+
Before multivolume data can be viewed/explored, it has to be loaded using [[Documentation/4.1/Modules/MultiVolumeImporter|MultVolumeImporter]] module.
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|References}}
 
{{documentation/{{documentation/version}}/module-section|References}}
 +
* Development of this module was initiated at the 2012 NA-MIC Project week at SLC (see http://wiki.na-mic.org/Wiki/index.php/2012_Project_Week:4DImageSlicer4)
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Information for Developers}}
 
{{documentation/{{documentation/version}}/module-section|Information for Developers}}
{{documentation/{{documentation/version}}/module-developerinfo}}
+
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==
 +
* [http://www.na-mic.org/Bug/view.php?id=1841 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
 +
 
  
  

Latest revision as of 12:31, 27 November 2019

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