|
|
(66 intermediate revisions by 5 users not shown) |
Line 1: |
Line 1: |
− | {| class="toccolours" style="margin-right: 25px" align="right"
| + | <big>'''Note:''' We are migrating this content to the slicer.org domain - <font color="orange">The newer page is [https://www.slicer.org/wiki/Slicer3:Status_Summary here]</font></big> |
− | ! bgcolor="#ccccff" align="center" | Slicer3
| |
− | |-
| |
− | |
| |
− | [[Slicer3|Home]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:About|About]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:FAQ|FAQ]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Status|Status]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Downloads|Downloads]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Documentation|Documentation]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Community_Support|Community Support]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Developers|Developers]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Acknowledgements|Acknowledgements]]
| |
− | |-
| |
− | |
| |
− | [[Slicer3:Links|Links]]
| |
− | |}
| |
− | | |
− | New functionality is being added to the Slicer3 repository daily to flesh out and finish the features of the software. This page provides an overview of the major planned functionality together with a snapshot of the status in the current build. Use the 'history' tab for this page to see when the status changed for various parts of the project.
| |
− | | |
− | This list includes items that we expect to be functional as part of the 3.0 release.
| |
− | | |
− | <br />
| |
− | | |
− | = MRML (Slicer scene description file format) =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Core library and nodes -- done
| |
− | * Save/Restore of Module Parameter Nodes
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Undo/Redo -- done, debugging
| |
− | * Load/Save Scene -- done, debugging
| |
− | * Import scenes into currently loaded scene
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * Slicer2.x MRML import as new scene
| |
− | * SmartPointers
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | <br />
| |
− | | |
− | = Slices =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Pixel to Physical space matrices -- done
| |
− | * Slice display, FG/BG blend -- done
| |
− | * pan/zoom/slice scroll -- done
| |
− | * Slices visible in 3D
| |
− | * Corner annotations -- coordinates and pixel values displayed
| |
− | * Label map display, overlay
| |
− | * Repacking, resizing slice windows -- done
| |
− | * Volumes should be transparent outside of their boundaries done
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Oblique slice views -- No GUI yet, but supporte in nodes and logic
| |
− | * Lookup tables -- displayed on images, no mrml or GUI yet
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * Keyboard and event bindings -- not done [[Slicer3:EventBindings]]
| |
− | | |
− | <br />
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | * Display on Non-Linear Transforms
| |
− | * Integration of wwidgets -- slicer will use non-standard widgets for 3.0, but will migrate to WWidgets for later releases
| |
− | | |
− | = 3D View =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Display Models -- done
| |
− | * Display Slices -- done
| |
− | * MRML Nodes to store camera settings -- done
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Logo widget -- widget basically done, needs integration
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * Keyboard and mouse bindings -- not done
| |
− | * Lighting nodes and GUI -- not done
| |
− | * Orientation letters and FOV cube -- not done
| |
− | | |
− | <br /> | |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | * Volume Rendering (IGT will be driver)
| |
− | * Integration of wwidgets -- not done
| |
− | | |
− | = Data GUI =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Scene display -- done
| |
− | * Cut and paste to edit transform hierarchy -- almost finished
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Property Editors -- in process
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | <br />
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | * Model Hierarchy (control visibility / display properties of subgroups) -- may get deferred.
| |
− | | |
− | = Volumes =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Load Volume -- done
| |
− | * Export volumes in various formats -- done
| |
− | * Drawing of Threshold
| |
− | * optionally name a volume, set label flag, when loading -- done
| |
− | * Auto Window/Level, Auto Threshold -- done
| |
− | * GUI for Lookup tables -- done
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Display Control -- mostly done, debugging
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * Display of color/vector/tensor volumes -- not done
| |
− | | |
− | <br />
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | = Models =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Load model -- done
| |
− | * Display Control and Logic (material properties editor and nodes) -- done
| |
− | * Load models from directory -- done
| |
− | * Clipping Control and Logic -- done
| |
− | * Hierarchy editor (transforms) -- done
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | <br />
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * Scalar fields selection, with lookup tables -- not done
| |
− | * Apply (harden) transform to a model -- not done (command line module?)
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | * Clipping of transformed models
| |
− | | |
− | = Transforms =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Matrix editor -- done
| |
− | * Hierarchy of linear transforms can be applied to models and volumes
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Transform Node Manipulation -- done, but needs usability overhaul
| |
− | * Non-linear transform support -- part done: plan to stick with linear only for first release of slicer3
| |
− | * Interactive Transform editing -- in process
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * Automatic registration --- not done
| |
− | * Resample volumes through transforms -- not done (command line module, also models and fiducials?)
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | * Nonlinear transforms
| |
− | | |
− | = Application GUI =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Overall Look and Feel -- done
| |
− | * New logo finalized.
| |
− | * Module navigation and search -- done.
| |
− | * Toolbar view configuration done.
| |
− | * Module GUI appearance changes for visual clarity done.
| |
− | * Module notebook and collapsing frame styles done.
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * View and Navigation panel in progress
| |
− | * Slices control panel in progress
| |
− | * Toolbar icons for redo + undo (added to GUI, not imlemented)
| |
− | * mouse mode icons for pick, place fiducial, transform added, integration in progress.
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | <br />
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | * lightbox view not implemented
| |
− | | |
− | = Fiducials =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * MRML nodes for individual fiducials and fiducial lists -- done
| |
− | * Fiducials GUI -- done
| |
− | * Display of fiducials in 3D -- done
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * wwidget fiducial display/edit in slices -- in process
| |
− | * wwidget fiducial edit in 3d view -- in process
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | [[Slicer3:Transition_of_Slicer2.x_Modules:Fiducials|Slicer3:Transition_of_Slicer2.x_Modules:Fiducials]]
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | = Execution Model =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Command Line Modules base implementation
| |
− | * Executable and Shared library detection/loading
| |
− | * Auto generated GUI
| |
− | * File based and memory based volume i/o
| |
− | * Executing module in separate thread
| |
− | * Progress/abort events
| |
− | * Category navigation
| |
− | * Models
| |
− | * Logging to a slicer window
| |
− | * Runtime-selection of image types
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Module Functionality -- many useful filters in place, more to come
| |
− | * Fiducials -- orientation needs to added to XML spec
| |
− | * Vector and tensor images - waiting on Slicer IO
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * Other data types i/o (transforms, etc)
| |
− | * Serialize parameter nodes
| |
− | * Access to XML fields from C++
| |
− | * Module packaging for safe discovery mechanism
| |
− | * Reloading of modules
| |
− | * Lazy gui construction
| |
− | * Separate value and default in ModuleDescription
| |
− | * Don't emit file and directory command line options if values not set
| |
− | * Contributor logos per module
| |
− | * Shared memory volume i/o to unu
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | * Nonlinear transforms
| |
− | * Steering optimizers
| |
− | * Auto generated wwidgets
| |
− | * Workflow (modules with several steps)
| |
− | | |
− | = Colors =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Nodes and Logic for managing color tables -- done for volumes
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Color Module GUI in process
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * colors for models scalar fields -- not done
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | = Model Maker =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Implemented as command line module -- done
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * Tie in to Colors -- to be done when colors module is ready
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | <br />
| |
− | | |
− | = Editor =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Basic Paint functionality
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Basic Draw functionality ported from slicer2, converted to wwidgets -- not done
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * Math Morphology, threshold, and other tools -- not done (may be pushed to slicer3.1)
| |
− | * Auto Save Mode (save label map every minute)
| |
− | * Oversample Label map mode
| |
− | * Volume Math/Logic functions
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | * Painting on Models
| |
− | | |
− | = Slicer2 Modules =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * ModelMaker
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Fiducials
| |
− | * FreeSurfer readers - curv surfaces, scalar overlays, annotations can load
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * EMSegment
| |
− | * DTMRI
| |
− | * Compatibility layer to allow '''some''' slicer2 modules to run inside slicer3 -- not done (priority on modules currently used heavily by clinical collaborators and/or modules ported by the original module developers)
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | = Build/Package =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | <br />
| |
− | | |
− | * CPack based installers for all platforms -- in process
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * Nightly build installers uploaded to web site -- not done
| |
− | * Stable branches of vtk,itk,kwwidgets for slicer3 -- to be done during final test phase
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | <br />
| |
− | | |
− | = Testing =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Dart dashboard -- set up, but being debugged
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | <br />
| |
− | | |
− | * Nightly build and test on major platforms -- not done
| |
− | * Test suite for MRML API -- not done
| |
− | * Test suite for Logic API -- not done
| |
− | * Test suite for GUI API -- not done
| |
− | * Test suites for Modules -- not done
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | = Bug Tracking =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * Slicer3 bug tracker -- done
| |
− | | |
− | http://www.na-mic.org/Bug/index.php - go to Slicer3 project
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | <br /> | |
− | | |
− | = Pipeline Integration =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * LONI Pipeline can now be called on the command line with workflows with pre-bound parameters
| |
− | * Provides the output results according to bound parameters and the logs are useful to track progress
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Pending
| |
− | |}
| |
− | | |
− | * Ability to bind parameters on the command line
| |
− | * Ability to showcase status messages for the user to track progress
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | = Grid Interface =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Uniform job submission format for remote execution command line modules -- underway
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | <br /> | |
− | | |
− | = System =
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: lime" | Done
| |
− | |}
| |
− | | |
− | * [http://www.na-mic.org/Slicer/Documentation/Slicer3/html/ Doxygen for Slicer3] - now being generated nightly
| |
− | * Debug memory leaks -- no memory leaks currently, tested as part of nightly builds
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: yellow" | In Process
| |
− | |}
| |
− | | |
− | * Optimize event/observer flows -- ongoing
| |
− | * Optimize launcher, startup times -- ongoing
| |
− | * Code reviews for:
| |
− | ** Coding style -- ongoing
| |
− | ** In line documentation -- ongoing
| |
− | ** Consistent naming conventions and patterns -- ongoing
| |
− | * Implement / clean up command line arguments
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: pink" | Not Done
| |
− | |}
| |
− | | |
− | * Overall software documentation (the Slicer3 book? - maybe in 2007)
| |
− | * User tutorials and documentation
| |
− | * GUI Tracing
| |
− | * splash screen
| |
− | | |
− | {| class="wikitable" style="text-align: center"
| |
− | | style="background: gray50" | Deferred
| |
− | |}
| |
− | | |
− | = TODO/Notes =
| |
− | | |
− | * Unify the observer code for use in MRML, Logic, and GUI
| |
− | ** currently there is much duplication of the command callback structures
| |
− | ** perhaps this needs to be a separate library that can be used by all?
| |
− | ** we should be specifically observing DeleteEvent to avoid observing events invoked during destructors
| |
− | ** The SetAndObserve* calls should also have a signature where they accept an event to observe
| |
− | ** Perhaps this layer could also allow us to disable all the callbacks (not clear this is needed)
| |