Documentation/Labs/Slicer5-roadmap

From Slicer Wiki
Jump to: navigation, search
Home < Documentation < Labs < Slicer5-roadmap

The major version number upgrade to 5 provides an opportunity to make changes that affect the application, the API, or the code in a way that was not possible in the past seven or so years.

This page collects the major changes that the community suggests for Slicer 5.0.

Remove deprecated modules and/or Migrate to extension

Editor

The module already directs users to Segment Editor, which provides all the functionality of Editor and more, and is the successor module that will be improved and maintained. Removing it would decrease confusion of both old and new Slicer users

    • Potentially the hack about modules with names ending with the string "Lib" can also be removed after the Editor module will not require it. It is around here.
    • Make Editor hidden in 4.10, advertise its removal (some extensions still use it), then remove it in 5.0. Remove it from toolbar, move Editor to legacy category in 4.10

Unused module code

  • MultiVolumeRendering: A module that was effectively not developed since 2012, and is not currently compiled with Slicer. - Removed in r27087
  • Measurements: Same argument as MultiVolumeRendering - Removed in r27087
  • AtlasCreator Loadable module logic - Removed in r27088

CLI modules

  • Model to Label Map: Has too many limitations and bugs (cannot handle concave structures, can cause Slicer to hang or crash, etc.), and is not maintained any more. It might be better to remove it than to fix it, especially that there is an algorithm for the same thing in Slicer that works much better
    • The model node to labelmap node conversion feature could be added as a subject hierarchy plugin, if the route via segmentation node is not convenient enough
  • Review CLI modules
    • BlobDetection
    • ConnectedComponent
    • ROITest
    • Resample Scalar Volume: Resample Scalar/Vector/DWI Volume module (which Crop Volume uses as well) can do everything it does already, except for four extra interpolation options. Probably can be removed
    • others?

Migrate to extension

Existing DMRIInstall scripted module will be re-factored and moved into a Modules/Scripted/InstallSuggestions directory.

Then, after transitioning them to extension, the following module will be added to the "InstallSuggestions" so that the user knows how to install them:

  • BRAINSTools
  • SimpleITK: Only used in the editor
  • EMSegment

Indentation of curly braces

In Slicer the curly braces have a two-space indentation everywhere within functions. As this was inherited from VTK, but VTK changed its convention to align the braces with the statements (if etc.), it could make sense to make the change in Slicer too. This is considered a major change because it affects almost all cxx files.

SceneViews

The scene views feature does not work well for a long time now, and there is no consensus about what should be the scope it supports

  • Suggestion: Support only display and hierarchy nodes. Make SceneViews as stable as possible for these cases and remove support for data notes etc.

Undo/Redo

Similarly to SceneViews, it is a great feature but in time it started breaking. Need to decide if we want to keep it, and if yes fix it.

Tcl codes

Most of the TCL code seems to be a heritage from Slicer3. Can they be removed?

Remove self-test modules from the All modules list

Users already find the all modules list very long, and as the self tests are for developers only (and can be found in the modules list under the Testing category), they could be removed from the list.