Projects:ARRA:SlicerUI
Aim
The effective visualization, data processing, analysis and interaction of medical images and ancillary data is a complex process requiring sophisticated and efficient software tools. Further, the development of new tools requires a productive and widely supported software environment. In such an environment, the human-computer interface plays a critical role in the overall effectiveness of the software tools. To this end, the Slicer graphical user interface (GUI) is to be significantly enhanced by the adoption of the standard and widely used Qt GUI toolkit. Qt has recently changed its licensing terms, meaning that it is now compatible with Slicer's commitment to open systems. Further, Qt is now recognized as the defacto standard, cross-platform GUI toolkit, offering superior performance, capability and productivity.
Research Plan
Slicer currently has an extensive GUI that consists of three major, logical parts: 1) the core, 2) command-line modules, and 3) modules. The research plan recognizes this organization, and will address the GUI development accordingly.
- The first step is to replace the core GUI with Qt. This will demand some initial design and planning, including integration of various Qt tools such as Qt Designer.
- Second, the command-line modules automatically generate their GUI from an XML description of the module. This will require modification so that Qt GUIs are generated (instead of the current KWWidgets).
- Finally, select, critical modules such as EM Segmenter will be reworked to use Qt widgets.
- Most of this work will occur in the first year, with completion of the critical modules expected early in the first quarter of the second year.
- After this, the research plan switches to training and dissemination of Qt-related technology so that the broader Slicer community can participate in the transition of modules to the Qt GUI.
- The key to this plan is to switch the core and command-line modules as fast as possible since we want to minimize disruption to the Slicer community, and to support continued Slicer development.
Key Personnel
- William Schroeder, Ph.D., 8%, 9/17/2009 - 9/16/2011
- Stephen Aylward, Ph.D., 5%
- Jean-Christophe FILLION-ROBIN, 50%
- Julien Finet, 50%
- Sebastien Barre, Ph.D., 5%
Meetings
- Regular meeting TCons every Tuesday at 2:00pm
Progress
(most recent on top)
- Nov 18, 2009
- New widgets: Tree Combo Box, Node Tree Selector
- Command Line modules integration: WIP.
- Nov 13, 2009
- rework on the Transforms Module
- started to work on the Command Line modules integration.
- Nov 6, 2009
- Loadable Modules are now supported.
- Added Cameras Module
- Oct 30, 2009
- The entire Qt-Slicer code architecture has been reviewed, factorized and simplified. Coding rules have been chosen (not documented yet).
- Documentation: Added a tutorial to write custom widgets
- Oct 23, 2009
- New widgets: Collapsible widget, Color Picker button
- Oct 16, 2009
- Synchronization between Qt widgets and KWWidget. Move the qt panels when the application is moved on the desktop.
- New widgets: Coordinates widget, Collapsible groupbox
- Oct 9, 2009
- TCon with Julien Finet (J2), Jean-Christophe (JC), Steve, Will, Seb, Stephen, Wendy, Nicole to discuss progress
- Demonstrated new software architecture that simplifies building new modules
- Addressed issues of background color, etc previously raised by Dr. Kikinis QtTransformModule-v2.png
- New widgets: Matrix Widget, Transform Sliders
- Oct 2, 2009
- TCon with JC, Steve, Will, Seb, Stephen, Wendy, Nicole
- Demonstrated initial software architecture
- Uploaded screenshot of first module and received feedback from Dr. Kikinis QtTransformModule.png
- Designed basic widgets: Linear Transform Slider, Node Selector
- Sept 25, 2009
- Sept 22, 20009
- TCon with JC, Will, Sebastien, Steve
- Added Qt dual-slider into Slicer
- September 16-17, 2009