Difference between revisions of "2011 Project Week Breakout Session: Slicer4"

From NAMIC Wiki
Jump to: navigation, search
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
(27 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[2011_Summer_Project_Week|Back to agenda]]
 
[[2011_Summer_Project_Week|Back to agenda]]
  
== Summer Project Week Breakout Session: Slicer4 Module Usability ==
+
Summer Project Week Breakout Session: Slicer4 Module Usability
  
  
Line 7: Line 7:
  
  
====Attendees: ====
+
=Attendees: =
  
All Slicer4 developers.
+
All Slicer4 developers and Ron.
  
==== Reference Material: ====
+
= Reference Material: =
  
* [http://www.slicer.org/slicerWiki/index.php/Slicer4 Slicer4]
+
* [https://www.slicer.org/wiki/Slicer4 Slicer4]
  
=== Preliminary Agenda: ===
+
= Preliminary Agenda: =
  
* Step by step review of existing slicer4 functionality and user interface with an eye towards creating a consistent and pleasant user experience with a logical grouping of functions to accomplish standard tasks.
+
Purpose: Review of existing slicer4 functionality and user interface with an eye towards creating a consistent and pleasant user experience with a logical grouping of functions to accomplish standard tasks.
  
* Review of features and next steps with the idea that developers and users can vote on priorities for development effort
+
==UI==
** [http://www.slicer.org/slicerWiki/index.php/Slicer4:Remote_Data_Handling Remote IO options] (save/restore of slicer data and scenes via DICOM, Midas, wiki...)
+
Review of features and next steps with the idea that developers and users can vote on priorities for development effort
** Performance enhancements/bottlenecks
+
* Main application GUI: compare [http://wiki.slicer.org/slicerWiki/index.php/Modules:MainApplicationGUI-Documentation-3.6 Slicer 3] and Slicer 4
** Documentation
+
** Stabilizing the Main application GUI has high priority.
** Enhancements to module functionality
+
**Performance enhancement for the features in the main application GUI are also critical.
*** command line modules (slicer execution model)
+
**Reorganizing panels above both the slice viewers and 3d viewers for consistent look and feel.
*** extensions
+
* Review keybindings and mouse behavior on different platforms
*** python scripting
+
**Compare [http://wiki.slicer.org/slicerWiki/index.php/Modules:EventBindings-3.6 Slicer 3] and Slicer 4
** Embedding slicer4 packages in standard python interpreter
+
**Identify inconsistencies
** Support for new datatypes?
+
**How to handle Mac trackpad, multitouch I/O, single button mouse
** web/mobile deployment options?
+
*Slicer-side I/O
** other ideas or requests?
+
**Load/Save: Default is the scene only, which includes sceneviews. Everything else is exposed by opening an advanced panel. This will require Slicer to make some assumptions at save time, such as what format to use for data to be saved. How do we maintain dicom header information so that it survives a round trip?
 +
**Import/Export: to and from Dicom, other data formats (see below under infrastructure)
 +
*Module template: Help, Acknowledgements, location of I/O panel, behavior of "frames" such as auto-stretch.
 +
*Current List of Core modules: should they stay or should they move into other categories? Add new ones? Order?
 +
**   Annotation Module (xx)
 +
**    Color Module (xx)
 +
**   Data Module (xx)
 +
**   Interactive Editor (Steve Pieper)
 +
**   Sceneviews (xx)
 +
**   Slice Controls Module: Should present controls for: [http://wiki.slicer.org/slicerWiki/index.php/Modules:MainApplicationGUI-Documentation-3.6#Slice_Viewers_.28and_their_Controllers.29 Slice viewers], compare viewers, 3D viewers: rename to Layout controler?
 +
**   Slicer Welcome Module: update?
 +
**   Volume Rendering Module: I/O should have same user experience as I/O in Slice viewers
 +
**    Volumes Module (xx)
 +
**   Transforms Module (xx)
  
=== General Slicer4 TODO items for discussion among developers ===
+
==Infrastructure discussions==
 +
* instrumenting dimensions for sliders, seeds etc.: Slicer users have data range from cells to organisms to galaxies. E.g. Mouse DTI versus Human DTI: need different defaults. This is currently not working well.
 +
* [https://www.slicer.org/wiki/Slicer4:Remote_Data_Handling Remote IO options] (save/restore of slicer data and scenes via DICOM, Midas, wiki...): Use a zip ball with a Dicom header and some thumbnails?
 +
* Performance enhancements/bottlenecks
 +
** relevant mantis report: http://www.na-mic.org/Bug/view.php?id=1139
 +
** prostate MRI review use case [[File:ProstateMRI_review_Slicer_use_case.tgz]]
 +
* Documentation
 +
* Enhancements to module functionality
 +
** command line modules (slicer execution model)
 +
** extensions
 +
** python scripting
 +
* Embedding slicer4 packages in standard python interpreter
 +
* Support for new datatypes?
 +
** Icon associated with each datatype
 +
** I/O registration in qSlicer[Core]IOManager
 +
** Official module for each node type "Edit properties..." ([http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=16922 current hack])
 +
DTI needs different defaults than human DTI, for instance.
 +
* web/mobile deployment options?
 +
** motivating use-case scenarios?
 +
** Is this just a "cool thing", a me too, or a critical path capability?
 +
* other ideas or requests?
 +
 
 +
= General Slicer4 TODO items for discussion among developers =
  
 
* Porting remaining SWidgets (Crosshairs, Model/Slice Intersections, Reformat Widget...)
 
* Porting remaining SWidgets (Crosshairs, Model/Slice Intersections, Reformat Widget...)
*
+
* Removing slicer3 legacy code from slicer4 repository (that is, code which is not being used in backwards compatibility mode)
 +
* What modules from the core should become extensions?
 +
** Move all command line modules outside the core as extension? this would greatly reduce the package size and compile time, unclutter menus. What is the impact on ease of installation for end users?
 +
* Node management in slice logic [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Libs/MRMLLogic/vtkMRMLSliceLogic.cxx?view=log]
 +
* Progress bars (and how to make interruptible loops)
 +
 
 +
=Meeting Notes:=
  
===Meeting Notes:===
+
* Overall Goals
 +
** Stable core for extension developers
 +
** Performance Improvements under heavy loads
 +
** Search for common themes between 3D and Slice views - how to unify the interface concepts?
 +
* How to hide controls so that the interface isn't as cluttered by default
 +
* Multi-layer slice viewers

Latest revision as of 18:07, 10 July 2017

Home < 2011 Project Week Breakout Session: Slicer4

Back to agenda

Summer Project Week Breakout Session: Slicer4 Module Usability


9am-11am, Tuesday June 21, 2011, Star room.


Attendees:

All Slicer4 developers and Ron.

Reference Material:

Preliminary Agenda:

Purpose: Review of existing slicer4 functionality and user interface with an eye towards creating a consistent and pleasant user experience with a logical grouping of functions to accomplish standard tasks.

UI

Review of features and next steps with the idea that developers and users can vote on priorities for development effort

  • Main application GUI: compare Slicer 3 and Slicer 4
    • Stabilizing the Main application GUI has high priority.
    • Performance enhancement for the features in the main application GUI are also critical.
    • Reorganizing panels above both the slice viewers and 3d viewers for consistent look and feel.
  • Review keybindings and mouse behavior on different platforms
    • Compare Slicer 3 and Slicer 4
    • Identify inconsistencies
    • How to handle Mac trackpad, multitouch I/O, single button mouse
  • Slicer-side I/O
    • Load/Save: Default is the scene only, which includes sceneviews. Everything else is exposed by opening an advanced panel. This will require Slicer to make some assumptions at save time, such as what format to use for data to be saved. How do we maintain dicom header information so that it survives a round trip?
    • Import/Export: to and from Dicom, other data formats (see below under infrastructure)
  • Module template: Help, Acknowledgements, location of I/O panel, behavior of "frames" such as auto-stretch.
  • Current List of Core modules: should they stay or should they move into other categories? Add new ones? Order?
    • Annotation Module (xx)
    • Color Module (xx)
    • Data Module (xx)
    • Interactive Editor (Steve Pieper)
    • Sceneviews (xx)
    • Slice Controls Module: Should present controls for: Slice viewers, compare viewers, 3D viewers: rename to Layout controler?
    • Slicer Welcome Module: update?
    • Volume Rendering Module: I/O should have same user experience as I/O in Slice viewers
    • Volumes Module (xx)
    • Transforms Module (xx)

Infrastructure discussions

  • instrumenting dimensions for sliders, seeds etc.: Slicer users have data range from cells to organisms to galaxies. E.g. Mouse DTI versus Human DTI: need different defaults. This is currently not working well.
  • Remote IO options (save/restore of slicer data and scenes via DICOM, Midas, wiki...): Use a zip ball with a Dicom header and some thumbnails?
  • Performance enhancements/bottlenecks
  • Documentation
  • Enhancements to module functionality
    • command line modules (slicer execution model)
    • extensions
    • python scripting
  • Embedding slicer4 packages in standard python interpreter
  • Support for new datatypes?
    • Icon associated with each datatype
    • I/O registration in qSlicer[Core]IOManager
    • Official module for each node type "Edit properties..." (current hack)

DTI needs different defaults than human DTI, for instance.

  • web/mobile deployment options?
    • motivating use-case scenarios?
    • Is this just a "cool thing", a me too, or a critical path capability?
  • other ideas or requests?

General Slicer4 TODO items for discussion among developers

  • Porting remaining SWidgets (Crosshairs, Model/Slice Intersections, Reformat Widget...)
  • Removing slicer3 legacy code from slicer4 repository (that is, code which is not being used in backwards compatibility mode)
  • What modules from the core should become extensions?
    • Move all command line modules outside the core as extension? this would greatly reduce the package size and compile time, unclutter menus. What is the impact on ease of installation for end users?
  • Node management in slice logic [1]
  • Progress bars (and how to make interruptible loops)

Meeting Notes:

  • Overall Goals
    • Stable core for extension developers
    • Performance Improvements under heavy loads
    • Search for common themes between 3D and Slice views - how to unify the interface concepts?
  • How to hide controls so that the interface isn't as cluttered by default
  • Multi-layer slice viewers