2008 IGT Project Week Tractography for Neurosurgery: Workflow feedback
Back to 2008_IGT_Project_Week#Projects
Team: Isaiah Norton, Jean-Jacques Lemaire, Steve Pieper, Haiying Liu
- To present the workflow used by the neurosurgical team to create real-time tractography, and get feedback from Slicer experts on whether the tasks can be achieved in a simpler way. DONE
- To present a list of bugs/feature requests that hinder the current neurosurgical use of this application (in order of priority) and find out when the fixes might be available, or if there are workarounds. DONE
Approach: Discussions and hands-on demonstrations of how the software is used by the neurosurgery team.
Results (to be completed and presented at the end of the week):
- Presented workflow and bugs list. A few things were resolved:
- Two "Go to Editor" bugs fixed
- DTI volume mask option set to default in Tensor estimation
- Plans made for further work with Slicer usability and GUI expert Wendy Plesniak to review workflow streamlining.
- EMSegmentSimple conversation in progress for use in our cases (command line option will allow use for every case, automatically).
- Steve is investigating several ideas for adding threshold control directly to the Slice view interface.
for the most-used Tensor estimation (within the Volumes module, not separate, because naming is done correctly in the Volumes module)
Workflow outline for scene preparation:
1. Load all data (usually: 1 or 2 structural, DTI, mean fMRI for coreg, and thresholded fMRI)
2. Convert raw DTI volume to tensor
3. Coregister the DTI -> structural, and mean fMRI -> structural (and then apply the transform to the fMRI blobs)
4. Create a simple segmentation of the skull and brain with at least a rough approximation of the cortical surface ** not done, or done outside Slicer at present for most cases, but would like quick/easy way to do routinely.
5. Segment the tumor, ventricles, maybe eyes - several structures to give spatial reference.
6. Create appropriate models from segmentations.
7. Threshold fMRI if necessary; set display parameters (coloring, etc); create model of fMRI activation area.
Then do the various exploratory things: seed tracts based on fMRI, explore the tumor periphery with interactive fiducial tract. seeding, create preview visualization for surgeon.
Coregistration of DTI data -- is it reasonable to use affine? what about
bsplines? or is there something else which will properly deform the tensors. The
motivation for this is frequent distortion of the DTI data (which is a different
problem, but often main dist. is in areas which are not of primary interest - so
it would be great to get a registration of the whole volume). Answered. Will try Claire Poynton's retrospective field map estimation for distortion correction.
2. How to apply mask (labelmap, etc) to volume other than in the python shell?
3. What is the best way to coregister mean fMRI?
4. What is the best way to take screen captures?
Can we get a demo showing how to use EMSegmentSimple to do a quick cortical surface segmentation?Working with Ron and Karthik on this.
6. Would it be possible to add windowing and threshold functionality to the slice-viewers, activated by dragging left mouse-click Left/Right and Up/Down? This seems to be a standard function in several radiology viewers - but there might be patent issues.
- Fix the fiducial visibility control. Mantis: http://na-mic.org/Mantis/view.php?id=330
- Improve crosshairs functionality when in "Jump Slice" mode: update needs to be faster to use for precise placement (ie of seedpoints)
- Improve file naming: the save dialog should not allow duplicate filenames (to prevent Model.vtk from being overwritten by Model.vtk).
"Go to Editor" option in Data module should bring up the *selected*
dataset in the Editor. Currently, "Go to Editor" brings to the
editor for the datatype (fiducial, transform, volume, etc)
but the Editor displays the last used volume, so an extra step is
required to get to the right data (this can be especially confusing for new
users, and is generally frustrating). "Go to Editor" should tell the
appropriate Editor which volume/list to display based on selection in the Data
- Add simple ruler and angle measurement functionality. Currently, distances can be taken between the first two fiducials in a list, but this is not a full solution. The ideal would be a ruler function in the pop-up editor, on the slice view, or as the default response for left-click-drag in r/y/g slice viewers
- Change default Analyze-format file load option to "Center" (currently must do manually, else the image will be centered on a corner of the cube).
Change the "Testing: (Tensor Estimation & Glyphs & Tractography
Settings)" to apply the ThresholdMask as default option.DONE, need to check in.
OR: make naming automatic in the "DWI - Estimation" module. Mantis: http://na-mic.org/Mantis/view.php?id=364
- Simple tool for labelmap duplication (to avoid destroying good labelmap with test modifications - can't reliably undo)
- Fix the threshold buttons in Volume display: threshold is not applied immediately, must cycle back to "Off" and then to "Manual" to apply change.
- Editor: fix or enable the eraser
Priority 2 and wishlist:
- Add function to reflect fiducial positions between hemispheres across a user-defined (AC-PC, etc) plane - allow plane definition like the reformat widget or the clipping control. But make sure the fiducials can then be de-linked for precision placement!
- improved interactive registration: 1) allow movement of one volume against another (in slice view) with mouse and arrow keys for quick alignment. Something like the reformat widget, for registrations. 2) add option to Transform module to quickly change the overlay mode to something which allows better visual distinction between the overlay volumes (give the two volumes visually distinctive colormaps?).
- Editor: magic wand, like photoshop. The levelset tool is too broad for some use cases. The magic wand would only select connected pixels at a certain intensity level (this would be very helpful for tumor segmentation in particular: often the tumor will have a similar intensity to skull, so the levelset tool grabs everything).
- Editor: modify the threshold tool to allow thresholding only within a certain region, maybe input labelmap? (would be very helpful for tumor segmentation).
- Editor: add option to select the labelmap to modify. At present, modifying an existing labelmap requires changing the labelmap selected in the slice viewer, or typing directly in the
- Editor: make "Undo" work for Editor (currently spotty).
- Enable "Undo" for Fiducial lists (currently no effect)