Projects/Slicer3/2007 Project Week ROIs in Slicer3
Key Investigators
- Wendy, Jim, Nicole, Steve, Ron
Objective
Plan for ROIs in Slicer3
He'd like ROI-drawing functionality to be available (like Fiducials are) across the application -- not only in the ROI module or the Editor module, etc. He'd like to avoid making a user "wormhole" from one module into another (ROI/Editor) module to define a region, and then navigate back to continue what they were doing.
So somehow, at the application GUI level, Ron would like to expose this functionality. I think that sounds like a good idea.
There are multiple ways we can define ROIs:
1. directly: painting/outlining a label map (Editor module)
2. implicitly: specifying a location-and-radius (Fei's module), or
3. vector-form: points + curves (may be a DICOM compatible representation)
...(others?)...
To expose this at the Application GUI level, we could use a new ROI-mouse-mode (maybe a drop down choice from a single icon)? or a pop-up-and-dismiss ROI toolbox?
so before we add an icon to the toolbar for Fei's ROI module, we should see if there's a good way to consolidate this functionality and provide one-click access to it.
Questions:
- Relationship between ROIs and fiducials?
- Will we have paint and draw tools? How about erase (will undo work)?
- Cross-over with editor?
- What kind of implicit regions are useful and to what applications?
Approach, Plan
Sketch above is a starting point -- includes all the ways of defining an ROI I can think of: painted, drawn, vector form, implicit -- no erase is shown (undo?). Shows toolbar menubutton with drop-down menu and a corresponding mouse-mode for "defining ROI".
Also see: UIDesign working problems .
Progress
...
Notes & Suggestions
Contribute input here:
- Stephen says: It should be possible to use any object as a ROI for future processing. For example, if the liver has been segmented using an automated method, it should then be possible to use the liver object as the ROI for any subsequent processing such as vessel extraction. Perhaps an "IsInside" function should be added to MRML nodes that represent objects in space.
- Jeremy says: We do a lot of manual tracing at my site, we find that both the BRAINS2 package and MRICro have features that would collectively be nice to see in ROI generation for Slicer3.