Changelog
Core
Application
-
In Help → Report a Bug, added ability to quickly open to log file location.
Extension
-
Extension auto-update is now on by default
- Added “Automatic updates” section in Welcome module
- Show extensions with available updates at the top
- Enabled automatic extension update check by default
CLI
- Allow using segmentation nodes directly as CLI module input/output (PR-6558)
- Allow selecting volume sequence nodes as CLI module input (PR-6482)
IO
- Updated ITK to allow opening a wider range of NIFTI files (PR-6545)
Scripting
Python Console
- Developers can choose log level (error, warning, info, debug) that is displayed in the Python interactor (or can completely disable log message display) in Application Settings: Python / Python interactor / Log level.
- Improved python console logging output
- Use origin as prefix for log messages in Python console (92f24179e)
- Updated CTK to improve logging API, fix cursor position during auto-complete, improve Python console and give access to log handlers.
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
- Improved initialization of vtkMRMLVolumePropertyNode (0ff0e7bce)
- Fixed saving of MRB scene into root folder of windows drive (#6552)
- Allow referring to files hosted on https servers in the MRML scene (PR-6604)
UI customization
- Added support for changing crosshair color (PR-6496)
- Added support for changing Box Color in 3D view (PR-6467)
- Added option to hide the maximize view button (PR-6539)
- Added convenient ScriptedLoadableModule.resourcePath() function (PR-6678)
- Fixed generation of PythonSlicer and SlicerDesigner launcher settings for custom application (PR-6600)
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
- Added documentation for the following modules
- Script repository
- Added python snippets to change crosshair color and change box color.
- Added script example for bulk export from DICOM database
- Added batch processing examples
- Updated DICOM examples to adapt to CTK API changes (PR-6535)
- Get Help
- Developer Guide
- Added Module Overview documentation
- Improved description of python wrapped C++ classes (9f4f3ce209)
- Improved vtkMRMLSegmentationNode documentation (4f11f2c511)
- Clarified how to add more Python files to a scripted module (2083046565)
- Added usage example to slicer.util.launchConsoleProcess & logProcessOutput docstring
- Updated extension installation code snippet (680cd38345)
- Added information on build time and disk space need on Windows
- Added “How to decide between Debug and Release mode?” to Windows build instructions
- Added “Custom Slicer and CTK widgets do not show up in Qt designer” to common build errors section
- Markups
- Added Creating Template Landmarks, Plane settings and Export/Import Table sections
- Updated Display, Control points and Measurements sections
- Volume Rendering
Improved Modules
DICOM
- Allow choosing between add link/copy when importing DICOM files: The copy option is now offered in a drop-down menu of the “Import DICOM files” button. The DICOM browser stores the selected value persistently in the application settings.
- Regularize acquisition geometry by default for DICOM image loading. Since it has proven to work well over the past several years (it allows loading unusual image geometries correctly and does not seem to result in extra complications), it is now enabled by default.
- Simplify scene export to Slicer Data Bundle (SDB) DICOM file: Allows exporting an SDB DICOM file without a reference DICOM file. A simple template adapted from DCMTK is used as a basis for the export. (f4656392f)
- Make it easier to export multiple series under the same DICOM study by ensuring automatically created patient and study items have valid IDs. (899e36a25)
- Fixed DICOM tags saving in subject hierarchy: When no series-level tags were required for any of the exportables then modifications to patient and study level tags were not saved. (4df0251fb)
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
- Added support for reading ITK-Snap label description file
- Made it more convenient to load segmentations with custom color table in Python
- Exposed segment conversion paths in Python. See ConvertBetweenRepresentations test and added class vtkSegmentationConversionPath and vtkSegmentationConversionParameters (PR-6507)
- Updated scissors “Apply to visible segments” label: The label was misleading, since enabling it caused the scissors effect to only apply on all visible segments. Changed label from “Apply to all segments” to “Apply to visible segments”.
- Enabled GrowCut remote module in ITK (PR-5807)
- Fixed joint smoothing in Segment Editor (PR-6694)
- Fixed crash when exporting segment model node (PR-6614)
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
- Updated Surface Toolbox to add uniform remeshing (ACVD) option. This resampling typically provides higher quality meshes than decimation, with similar computation time.
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)
- Made Cross Origin Resource Sharing (CORS) optional (PR-6569)
- Added Web Server API to reload storable node (cca6ea5107)
- Improved DICOMweb support
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
- Added “release” and “patch-release” issue templates.
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
-
Updated Python wheels
Updated from to setuptools 60.9.3
65.5.0
pip 22.0.3
22.3
numpy 1.22.1
1.23.4
scipy 1.8.0
1.9.2
dicomweb-client 0.54.4
0.57.1
Pillow 9.0.1
9.2.0
pyparsing 3.0.7
3.0.9
requests 2.27.1
2.28.1
urllib3 1.26.8
1.26.12
charset-normalizer 2.0.12
2.1.1
idna 3.3
3.4
certifi 2021.10.8
2022.9.24
chardet 4.0.0
5.0.0
GitPython 3.1.27
3.1.29
PyJWT 2.3.0
2.5.0
wrapt 1.13.3
1.14.1
cffi 1.15.0
1.15.1
PyGithub 1.55
1.56
-
Updated dependencies
Updated from to CTK ec816cbb7 2c8953963 See list of commits. ITK 5.3rc03
46a71c7445.3rc04-218
be914a8b5See release notes for 5.3rc03 and 5.3rc04. VTK 9.1.20220125
Slicer/VTK@bccd2b8f79.1.20220125
Slicer/VTK@97a187572Included backports:
- Fix empty volume crash and joint smoothing (Slicer@4c0f4a531)
- OpenXR and OpenXRRemoting changes (PR-6567)
- OpenVR/OpenXR volume rendering fix (PR-6584)SimpleITK 2.2rc3
SimpleITK/SimpleITK@ffd48e2742.2.0
SimpleITK/SimpleITK@ca0c09386See release notes for 2.2rc3 and 2.2.0 Bzip2 1.0.6 (Sept 2010)
0e735f2301.0.8 (July 2019)
391dddabdSee release notes.
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
-
TotalSegmentator: Fully automatic whole-body CT segmentation in 2 minutes using TotalSegmentator.
-
HDBrainExtraction: AI-based skull stripping (blanking out regions outside the brain in MRI images). The model is trained on a large set of images and proven to be more robust than many other similar tools.
-
Automated 3D Dental Model Segmentation and Labeling: SlicerDentalModelSeg and SlicerAutomatedDentalTools
-
SlicerBigImage: Add support for large scale microscopic image viewing and computing.
-
SlicerColoc-Z-Stats: Computing proteins’ colocalization (spatial overlap between different channels) of Z-stack images.
-
SlicerLiver: Provide tools for analysis, quantification and therapy planning for hepatic interventions.
-
SkinMouldGenerator: 3D Slicer extension for generating 3D-printable HDR Brachytherapy applicator to be used in the treatment of skin cancer.
-
SlicerNeuroSegmentation: Provide access to tools for segmenting neurological structures.
-
SlicerMarkupConstraints: Enable Slicer extension developers to constrain and synchronize markups and control points of different nodes.
Show line of projection to an axis Show mixture of arbitrary markup nodes Chain of fixed distance constraints on multiple line nodes
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