Usability Session at SPL with PNL
- Ability to have several modules “open” at the same time, or the ability to switch back and forth between modules with minimal clicking and importantly to have the state in each of those modules be persistent.
- Registry: Ability to personalize and save settings: default load/save file format (NRRD or DICOM), viewing configuration, Interpolation off/on, outline_labelmap off/on, size of viewing window (Charlie)
- Feature or Registry: Much editing work is done in the Slice view mode, with interpolation off and in the 4-up view configuration with the 3D view being used as an additional slice viewer. Might be good to set these preferences and have them be remembered at future sessions.
- Feature or Registry: Would be useful to have a quick way to change the annotation mode in the slice planes from RAS to IJK or XY (or to set a preference that Slicer remembers).
- Possibility to select multiple volumes in the load file browser (for example select the 10 volumes at the same time, then click "apply") (Laura)
- Ability to apply a file filter (rimage*.hdr) in the file browser to specify multiple files to load at once.
- Ability to use rectangle-mouse multiple volumes in the load file browser.
- Can registry keep track of the size of the load file browser? In directories that contain a lot of data, it’s convenient to have this widget be very large.
- Have Slicer3 remember often-visited directories to minimize typing in the file browser (currently many users work with very long directory paths and filenames, and employ incredible tricks to avoid typing these in repeatedly.)
- Ability to change working directory faster (history of working directories?) (Usman)
- Slider in each slice controller: directions for slider are confusing: which way is L, which is R? It would be good if they were labeled on the widget (for example in sagittal: L and R) (Doug)
- Slice controller that goes in each panel in the 4x512 view: change from one that shows up when you mouseover (as in slicer26) to one that you click to activate/dismiss or even to a floating toolbar. Request: more information from users for motivation for this request: do you sometimes mouse over by mistake and find the mouse-over controller pop-up to be annoying?
- The pop-up Menu for adjusting Window, Level, Threshold is useful – it would be nice to have a toggle for interpolation on here as well, and the histogram + palette menu.
- Present an easy-access toggle (icon+hot-key or hot-key alone) for the the annotations (“A”, “P”, etc.) in the 3D view (Charlie)
- 3D view thingy: change directions without losing zoom. (Charlie)
- Crosshair functionality: highlight the active voxel in the 3 views (Doug)
- In addition to the quick camera positions offerend in the 3D view configuration panel (look from A, P, S, I, R, L) would be good to be able to set, name and select view bookmarks (Usman)
- Scene saving: when saving a scene, some datafiles are are described by absolute pathnames, and some by relative pathnames in the full-prefix field in the MRML file. Support one convention so users can make a consistent strategy for moving data files.
- Save as "dicom" might be useful. (Charlie) (comment: this has to be discussed … )
- Shift + click: the feature where you hold the shift key and click in one view at a pixel and the other two views adapt their position is really nice. Unfortunately at the moment slicer2.6 has a bug (but it appears to be fixed in slicer2.7): As soon as one starts drawing on the view that has been adapted it snaps back to the original view. (Charlie and Moto)
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.
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, Sagittal, 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.