Slicer 5.2: Summary, Highlights and Changelog

Table of content

Summary

The community of 3D Slicer developers is proud to announce that version 5.2 is now available for download. This version begins our new release cycle, where we will aim for 3-4 releases per year. This release includes support for using 3D Slicer via its web API and support for installing ITK python packages through pip. It also includes many improved core modules and more than 10 new-and-improved extensions.

3D Slicer 5.2 builds on the success of earlier versions that have had over 1.2 million downloads of the core program and 6.1 million downloads of extensions during the last decade.

The development of 3D Slicer—including its numerous modules, extensions, datasets, pull requests, patches, issues reports, suggestions—is made possible by users, developers, contributors and commercial partners around the world. 3D Slicer is based on a stack of open-source software and we are working constantly on updating the underlying packages. This development is funded by various grants and agencies. For more details, please see the 3D Slicer Acknowledgments page.

One of the main distinguishing features of 3D Slicer is its easy extensibility enabled by good quality documentation, a thriving community, cross-platform support & open source code. 3D Slicer supports a number of extension types which offer a different mix of simplicity and range of control of the software.

A rigorous quality assurance system leveraging automated testing and user feedback ensures the timely detection of issues caused by ongoing work in different components of the platform. See the contributing guidelines

slicer.org is the portal to the application, training materials, and the development community.

The Slicer Tutorials page provides a series of tutorials and data sets for training in the use of Slicer.

Please note that Slicer continues to be a research package and is not intended for clinical use (clinical users must obtain the necessary ethics or regulatory approvals).

Highlights

ITK Python Packages

Slicer Web API

  • Slicer’s REST API is improved and extended, which web applications and other external software to use 3D Slicer features.
  • The new slicerio.server features of slicerio Python package allows using Slicer as a data viewer in any Python environment. All files are loaded into a single Slicer instance, which eliminates the wait time for application startup and also allows analyzing, comparing multiple data sets in one workspace.

New extensions

7 Likes

Changelog

Core

Application

Extension

CLI

  • Allow using segmentation nodes directly as CLI module input/output (PR-6558)
  • Allow selecting volume sequence nodes as CLI module input (PR-6482)
    image

IO

  • Updated ITK to allow opening a wider range of NIFTI files (PR-6545)

Scripting

Python Console

Slice View

  • Changed the window/level reset operation to be control-left-doubleclick to avoid interfering with the default view operation of maximizing/restoring view size using left-double-click. (PR-6597)
  • When setting window/level mode also activate it (PR-6572)
  • Support setting slice view font file programmatically (PR-6642)

MRML

UI customization

Internationalization/Localization

  • Added helper script for updating language translation (.ts) files (PR-6674)
  • Marked translatable strings in Data, EventBroker and Volumes modules
  • Marked some placeholder UI texts as non-translatable (099721975)

Documentation

Improved Modules

DICOM

Markups

  • Fixed control point state not updated with hidden coordinates (PR-6657)
  • Fixed bug in closed curve resampling (PR-6566)
  • Added methods to markup line node for annotation ruler compatibility (PR-6557)
  • Replaced deprecated markups API usage (PR-6641)

Segmentations

SubjectHierarchy

  • Fixed warning GetChildByPositionUnderParent: Failed to find subject hierarchy item under parent... when setting item parent or moving an item to be the last item in a subject hierarchy folder (a9cb8f63ff)

Surface ToolBox

WebServer

  • Updated slicerio python package for using 3D Slicer via its web API.
  • Added GET /system/version method: Version query can be used to check if an appropriate Slicer version is running.
  • Added /mrml methods:
    • GET /mrml[/(ids|names|properties|file)] methods may be used to get node id or name lists, name properties, and the node content into a local file.
    • POST /mrml method may be used to load a file from a local path (or remote URL) into the scene.
    • DELETE /mrml method may be used to delete data in the scene.
  • Updated browse.html adding a slicer button to the OHIF toolbar to allow starting Slicer on a remote computer via a web browser (PR-6559)
    image
  • Made Cross Origin Resource Sharing (CORS) optional (PR-6569)
  • Added Web Server API to reload storable node (cca6ea5107)
  • Improved DICOMweb support
    • Improved DICOMweb server compatibility in importFromDICOMWeb (PR-6547)
    • Implemented instance retrieval in DICOMweb request handler (PR-6547)
    • Simplified URL for browsing the DICOM database content (5e3c81627)
    • Made DICOM request handler in WebServer more robust (PR-6633)

Volumes

  • Made slicer.util.updateVolumeFromArray accept a 2D array as input (1b024a3c0a)
  • Fixed warning message when entering Volumes module: ctkDoubleRangeSlider::setSingleStep( 0.0001 ) is outside of valid bounds. warning was logged once during initialization of the widget. (37711246e)

Sequence

  • Updated MultiVolumeImporter to add acquisition attributes to volume sequences node. (5c6a247ba)

Infrastructure

Continuous integration (CI)

  • Added “Check Commit Message” and “Check Line Length” GitHub actions workflows.
  • Fixed use of run_ctest_ variables in dashboard driver script (PR-6585)

Release process

Packaging

  • Updated NSIS manifest to support packaging of files with a long paths (PR-6198)

OpenXR support

  • Updated VTK & vtkAddon to backport OpenXR and OpenXRRemoting changes. (PR-6567)
  • Updated VTK to include OpenVR/OpenXR volume rendering fix (PR-6584)

Dependencies

Extensions

Listed below are extensions added, removed or updated since the 5.0 release.

The Slicer extensions manager enables Slicer users to install more than 150 extensions written and contributed by their peers from around the world.

New

Updated

All the existing extensions have been maintained and updated to account for API and build environment changes.

Removed

Between Slicer 5.0 and Slicer 5.2, no extensions were removed.

List of archived extensions is documented at Slicer/ExtensionsIndex/ARCHIVE/README.md

6 Likes