Slicer3:ApplicationUsabilitySession

From NAMIC Wiki
Revision as of 05:46, 10 January 2007 by Wjp (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Home < Slicer3:ApplicationUsabilitySession

Special Usability Session at MIT Project Week Meeting 06/27/06

At this session, we requested feedback from attendees on the general design of Slicer3's user interface in its current form. The participants included 4 Slicer users but the majority of attendees were principally Slicer developers and developers of software tools and toolkits who are interested in compatibility with Slicer. The discussion was informal and the topics discussed (some in more detail than others) are listed below.

Tabbed versus collapsing frames for module GUI sections.

The issues: Slicer2's convention is to organize a module's GUI into different functional sections notebook-style, using horizontally arrayed tabbed panels. Each tab's UI panel has a vertical scrollbar if the panel is longer than the size of its containing frame. If more tabs are used than fit the horizontal extent, a "more" tab is displayed which, when clicked, switches the the display to show the new set of tabbed panels in place of the old. This tabbed organization has the advantage of being familiar to Slicer2 users; and symbolically represents the different tabbed sections as non-hierarchical in nature. Disadvantages are that developers feel constrained to create very short (non-descriptive) labels for the tabs so they'll fit within the panel's extent, and the "more" tab can be confusing.

The Slicer3 embodiment so far uses vertically stacked collapsing frames in place of tabs and a vertical scrollbar. Frames can be collapsed to save space, and navigated an intuitive manner. Switching back and forth between a module's GUI sections can require a lot of scrolling however, especially when each GUI section contains a long UI panel. A "scroll helping widget" (that goes to preset locations in the scrolled frame) was suggested and could be useful in this scenario. This organization may be useful in presenting a serialized workflow.

Moderate preferences for both styles were expressed; no very strong preferences were expressed. Ideas for accommodating three types of module GUIs was discussed (notebook style, where each tabbed panel can contain stacked collapsing panes, simple style with a set of stacked collapsing panes, and multi-step workflow wizard).

Right now to open and close a collapsing frame, one has to click the little arrow/x icon; it was suggested that double-clicking the icon or the frame label should trigger the same behavior. In a tabbed notebook implementation, if tab labels are short, mouseover them could display a more detailed balloon help after a very brief mouse-hover time.

Improved visual parsing of the Module GUI panel

Currently Slicer's theme is applied throughout the entire application, and to each module. To improve visual parsing of the module GUI and its components, we'll modify Slicer's theme to distinguish these elements. (This is mocked up in the figure above.)

Presenting module help

A point was made that it's sometimes useful to keep a module's help window open while using other parts of that module's GUI or while using another module. It was suggeted that in place of each module's Help tab that we use a help system or compiled-in searchable html help. This has the added advantage of simplifying each module's GUI panel and encouraging the contribution of more detailed help with each module.

Contributor logos and including an "About" popup

For each module include an "About" button which pops up standardized information about the module and the contributing author(s) and Laboratory (including a relevant url and potentially a link to a tutorial for using the module). This might be linked to a group's logo as well as a button. Displaying a contributor's logo prominently and not dominating it with the Slicer logo was noted as being very important.

How to classify and organize modules in Slicer's module selection widget

Votes for each of the following options were expressed: a single list of all modules listed alphabetically, a cascading pulldown menu of modules organized by general functionality, and a search interface that returns a list of modules that correspond to your search terms.

Customization

Requests for the ability to customize Slicer were expressed; many of these can probably be added to the application settings interface. Noted were: ability to specify the type of file formats to load, set the home module or a list of commonly used modules (creating numbered icons each with a module assignment?), particular view configuration to use, setting display parameters (like turning interpolation on by default).

List of feature requests

These will be added to the feature request list below as well:

  • Ability to "clone" a view;
  • A PAX-type file browser to use in a load module;
  • Ability to specify slice window controller display behavior (whether it disappears when not being used, or whether it is persistent);
  • 3D Drawing tool that allows ROI tracing directly on models;
  • Ability to regenerate models in one button click after updating label maps;
  • Good widgets for measuring: angle, distance between two points, and displaying results in mm or pixels;
  • Good widgets for defining ROIs with ellipses or polygons and providing metric information (area etc.);
  • Ability to select and display: Axial, Saggital, Coronal, and an arbitrary reslice in the Slice GUI; given the last option, use a 3D Widget to place the plane within a volume;
  • Ability to specify a curvilinear reformat and display in the Slice window;
  • Adding a hotkey for window/level in each Slice window;
  • Providing intelligent presets for Window/Level to choose from;
  • Compositing and displaying more than two volumes and label maps in the slice windows;
  • Ability to apply an ROI drawn in one slice to multiple slices.