Difference between revisions of "Documentation/Nightly/Announcements"

From Slicer Wiki
Jump to: navigation, search
Line 269: Line 269:
  
 
= For Developers =
 
= For Developers =
 +
 +
== Modules and Extensions ==
 +
 +
* ExtensionWizard
 +
** Added "Enable developer mode" option to ExtensionWizard
 +
 +
* SelfTests
 +
** Allow self tests to set a custom delay for message display
 +
 +
* MRMLNodeComboBox
 +
** Allow qMRMLNodeComboBox base name setting for each node type
 +
** Added removeAttribute function to MRML node comboboxes and proxy model
 +
** Multiple node types can be created in qMRMLNodeComboBox
 +
** Support custom behavior for default actions.
 +
 +
* MRML Scene introspection
 +
** Added node printself output to node inspector
 +
 +
* Message logging
 +
** Added vtkInfoMacro
 +
 +
* DICOM
 +
** Package additional DCMTK applications: echoscu, dsr2html, xml2dcm and xml2dsr
 +
 +
* Markups
 +
** Signal end fiducial interaction in 3D
 +
** Add reusable simple markups widget
 +
 +
* Module API
 +
** 3a2091c ENH: Extend module API with "widgetRepresentationCreationEnabled" property
 +
 +
* Slicerlets
 +
** Allow slicelets and Slicer tests to handle log messages.
 +
 +
* Units
 +
** Added extra units support: frequency, velocity and intensity.
 +
** Extended Units logic API adding GetDisplayCoefficient() and GetSIPrefixCoefficient()
 +
** Updated MRMLUnitNode to ensure value to string conversion account for precision.
 +
 +
* SubjectHierarchy
 +
** Introduced adaptor classes facilitating implementation of python scripted subject hierarchy plugins.
 +
** Introduced autoDeleteSubjectHierarchyChildren property
 +
 +
* Editor
 +
** Facilitate re-use of Editor python components in extension (LabelStructureListWidget in 043f398)
 +
** Updated EditUtil API adding function SetUseLabelOutline() to explicitly set label outline state on all Slice nodes
  
 
== Under the hood ==
 
== Under the hood ==
  
To be done
+
* IDE integration
 +
** Improve build targets organization in IDE that support folders.
 +
** VisualStudio: Do not build documentation when F7 is pressed.
 +
** Facilitate integration with python IDE allowing minimal 'slicer' module to be imported.
  
 
* Build-system
 
* Build-system
** Improved support for Visual Studio 2013
+
** Add support for Visual Studio 2013.
 +
** Update build system anticipating transition to modern CMake.
 +
** Update MacOSX packaging infrastructure anticipating the signing of package in future release.
 +
** Update code base anticipitating compliance with C++11.
 +
** Remove <code>Slicer_ITKV3_COMPATIBILITY</code> build option.
 +
** Add option <code>Slicer_USE_ITKPython</code> to turn on ITK Python wrapping.
 +
** Removed duplicated code using ITK version of MGHIO.
 +
 
 +
* Python
 +
** Added support writing scripted modules and widgets as new-style Python classes.
 +
** Simplify scripted module introducing SlicerPythonCppAPI.
 +
** Introduced qSlicerScriptedUtils::executeFile()
 +
** Updated CTK to include new PythonQt C++/Python ownership tracking feature.
 +
** Import scripted module as python module to avoid module top-level variables to clobber each other.  [http://www.na-mic.org/Bug/view.php?id=3549 #3549]
 +
 
 +
* Platform support
 +
** Fix support for 32-bit build allowing use of Slicer on Surface tablet.
 +
 
 +
* Packaging & Testing infrastructure
 +
** Capturing VTK errors/warnings during testing.
 +
** Update extension build system to report packaging error on CDash.
 +
 
 +
* Rendering / Visualization
 +
** Add Slicer_VTK_RENDERING_BACKEND configure option
 +
 
 +
* MRML
 +
** Add support in vtkMRMLNode for multiple references to the same node.
 +
** Introducing InvokeCustomModifiedEvent.
 +
 
 +
* ApplicationLogic
 +
** Added function PropagateLabelVolumeSelection(), PropagateForegroundVolumeSelection() and PropagateBackgroundVolumeSelection()
 +
 
 +
* VolumeRenderingLogic
 +
** Extend volume rendering logic API adding GetPresetByName function.
 +
 
 +
* View management
 +
** Add qMRMLLayoutViewFactory
 +
** Add utility method to display node in only 1 view
  
  

Revision as of 14:30, 2 November 2015

Home < Documentation < Nightly < Announcements


For the latest Slicer documentation, visit the read-the-docs.




Nightly


Summary What is 3D Slicer Slicer Nightly Highlights Slicer Training Slicer Extensions Other Improvements, Additions & Documentation

Summary

The community of Slicer developers is proud to announce the release of Slicer Nightly.

  • Slicer Nightly introduces
    • An improved App Store, known as the Extension Manager, for adding plug-ins to Slicer. More than 80 plug-ins and packages of plug-ins are currently available.
    • Close to 150 feature improvements and bug fixes have resulted in improved performance and stability.
    • Improvements to many modules.
  • Click here to download Slicer Nightly for different platforms and find pointers to the source code, mailing lists and the bug tracker.
  • Please note that Slicer continues to be a research package and is not intended for clinical use. Testing of functionality is an ongoing activity with high priority, however, some features of Slicer are not fully tested.
  • The Slicer Training page provides a series of tutorials and data sets for training in the use of Slicer.

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

What is 3D Slicer

3D Slicer is:

  • A software platform for the analysis (including registration and interactive segmentation) and visualization (including volume rendering) of medical images and for research in image guided therapy.
  • A free, open source software available on multiple operating systems: Linux, MacOSX and Windows
  • Extensible, with powerful plug-in capabilities for adding algorithms and applications.

Features include:

  • Multi organ: from head to toe.
  • Support for multi-modality imaging including, MRI, CT, US, nuclear medicine, and microscopy.
  • Bidirectional interface for devices.

There is no restriction on use, but Slicer is not approved for clinical use and intended for research. Permissions and compliance with applicable rules are the responsibility of the user. For details on the license see here

Slicer Nightly Highlights

Slicer Training

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


Slicer Extensions

Improved Extensions in Slicer 4.5

Extensions removed from Slicer 4.5

  • houghTransformCLI: Removed by the original author because it was not needed anymore.

Extensions renamed

Other Improvements, Additions & Documentation

Optimization

  • Added support for loading of large images on windows.
  • Reduced the memory footprint by fixing memory leaks
  • Sped up by 2x slice rendering when the volume is linearly transformed.
  • Improved reslicing speed of quasi-axis-aligned slices.
  • Sped up annotation ROI display about 10x faster (100ms to 10ms).
  • Improved tractography display performance.
  • Prevent viewers flickering when only few nodes are removed.
  • Improved performance of transform widget.

Transforms

  • Added support for copy/paste of linear transforms.
  • Support saving of any transform to a grid transform.
  • Addressed translation slider instability in rotate first mode.
  • Improved composite transform support.
  • Added support for thin plate spline transforms.
  • Changed default ITK bspline transform writing file format to ITKv4.
  • Addressed display issue for slice intersection display of non-linearly transformed model.
  • Made transforms module translate-rotate first icon nicer.

DICOM

  • Improved DICOM browser allowing exporting to disk patients/studies/series using right click
  • Improved support for loading of DICOM referenced datasets.
  • Added support for DICOM private dictionary
  • Read and apply window/level found in DICOM volumes.
  • Added support for Philips DWI datasets
  • Fixed loading of DICOM image from files containing special characters.

Data processing

  • Added support for saving and loading of complex processing chain of CLI modules #3240 #3468

CLI

  • Added support for transfer of fiducial file to/from CLI modules.
  • Added support for transfer of Hierarchy sub-scene to/from CLI modules.
  • Fixed loading multivolumes produced by CLI modules.

Usability

  • Built-in module categories and extensions categories are listed separately in module selector.
  • Allow multi-selection in subject hierarchy.
  • Generate high-resolution magnified screenshots for 3D view.

SubjectHierarchy

  • Highlight nodes in subject hierarchy referenced by DICOM
  • Added Transforms subject hierarchy plugin
  • Added new DICOM export feature and scalar volume plugin. #3163
  • Added generic folder plugin to subject hierarchy
  • Subject hierarchy nodes automatically created for supported types
  • Added auto-delete subject hierarchy children to Application Settings
  • Added auto-create subject hierarchy option to Application Settings
  • Subject hierarchy tree headers show icons instead of text
  • Fixed subject hierarchy nodes creation when importing old scene #3902
  • Fixed volume visibility controls. #3893

Python scripting

  • Upgraded from Numpy 1.4.1 to NumPy 1.9.2
  • Upgraded from Python 2.7.3 to Python 2.7.10
  • Bundled nose python module into the Slicer package.
  • Added logging functions for Python.
  • Fixed VTKObservationMixin and added documentation.
  • Updated IOManager and DICOMWidgets to emit newFileLoaded().
  • Added logging of Python console user input.
  • Added accessor for vertex points of models as numpy array.
  • Allow displayable manager to be introspected using python.

Editor

  • Warn user when GrowCut effect is attempted with unsupported image type.
  • Added ability to delete only the selected structure.
  • Ensure label map is updated each time a master volume is selected.
  • Improved threshold paint effect to have inclusive ranges #4066
  • Remember pain radius when effect are changed #1853
  • Reset editor interface when scene is closed.
  • Ensure a related merge volume is selected after a structure deleted.

Markups

  • Added ability to refocus 3d cameras on a fiducial. #3683

LabelMapVolumeNode

  • TBD
  • Added labelmap node support to subject hierarchy
  • Improved CLI image widget type handling.

Slice viewers

  • Added control to adjust thickness for label map outlines #2267

DataProbe

  • Added magnified slice view into DataProbe panel.

SliceViewAnnotations

  • Added orientation marker to slice view annotations.
  • Improved integration of SliceViewAnnotations. #3943

OpenIGTLink

  • Improved support for POINT and POLYDATA messages. #3875 #3907

DoubleArrays

  • Improved loading and saving of measurement files (.mcsv)

CastScalarVolume

  • Improved CastScalarVolume module to support input of type unsigned char, int or long.

SceneView

  • Improved management of data loaded between creation of SceneViews

Landmark

  • Added support for landmark refinement
  • Improved LandmarkRegistration plugin loader displaying message if plugin failed to be loaded.

MultiVolumeImporter

  • Fixed loading of MGH variable FA multivolume.

FiberBundleLabelSelect

  • Fixed ADD operation for ‘Label to include’. #4025
  • Added support for both VTK and VTP input files.

DTI support

  • Resolved multithread issue that caused errors with multiple b values. #3977
  • Fixed parallel/perpendicular diffusivity on glyphs, interactive seeding line display. #3857
  • Fixed displaying of Tensor properties and their ranges in Tractography display module for lines/tubes/glyphs #3857
  • Added logic for propagating color and opacity to fiber hierarchies. #3925
  • Added support for Fiber Hierarchies in the Models Module. #3678

VolumeRendering

  • Fixed volume rendering not visible when non-volume-rendered volume is frequently changing in the scene.
  • Ensure volume rendering is updated when volume geometry is modified. #4023

FiberTractMeasurements

  • TBD
  • Added CLI module FiberTractMeasurements allowing to XXXX supporting cluster aggregation.

For Developers

Modules and Extensions

  • ExtensionWizard
    • Added "Enable developer mode" option to ExtensionWizard
  • SelfTests
    • Allow self tests to set a custom delay for message display
  • MRMLNodeComboBox
    • Allow qMRMLNodeComboBox base name setting for each node type
    • Added removeAttribute function to MRML node comboboxes and proxy model
    • Multiple node types can be created in qMRMLNodeComboBox
    • Support custom behavior for default actions.
  • MRML Scene introspection
    • Added node printself output to node inspector
  • Message logging
    • Added vtkInfoMacro
  • DICOM
    • Package additional DCMTK applications: echoscu, dsr2html, xml2dcm and xml2dsr
  • Markups
    • Signal end fiducial interaction in 3D
    • Add reusable simple markups widget
  • Module API
    • 3a2091c ENH: Extend module API with "widgetRepresentationCreationEnabled" property
  • Slicerlets
    • Allow slicelets and Slicer tests to handle log messages.
  • Units
    • Added extra units support: frequency, velocity and intensity.
    • Extended Units logic API adding GetDisplayCoefficient() and GetSIPrefixCoefficient()
    • Updated MRMLUnitNode to ensure value to string conversion account for precision.
  • SubjectHierarchy
    • Introduced adaptor classes facilitating implementation of python scripted subject hierarchy plugins.
    • Introduced autoDeleteSubjectHierarchyChildren property
  • Editor
    • Facilitate re-use of Editor python components in extension (LabelStructureListWidget in 043f398)
    • Updated EditUtil API adding function SetUseLabelOutline() to explicitly set label outline state on all Slice nodes

Under the hood

  • IDE integration
    • Improve build targets organization in IDE that support folders.
    • VisualStudio: Do not build documentation when F7 is pressed.
    • Facilitate integration with python IDE allowing minimal 'slicer' module to be imported.
  • Build-system
    • Add support for Visual Studio 2013.
    • Update build system anticipating transition to modern CMake.
    • Update MacOSX packaging infrastructure anticipating the signing of package in future release.
    • Update code base anticipitating compliance with C++11.
    • Remove Slicer_ITKV3_COMPATIBILITY build option.
    • Add option Slicer_USE_ITKPython to turn on ITK Python wrapping.
    • Removed duplicated code using ITK version of MGHIO.
  • Python
    • Added support writing scripted modules and widgets as new-style Python classes.
    • Simplify scripted module introducing SlicerPythonCppAPI.
    • Introduced qSlicerScriptedUtils::executeFile()
    • Updated CTK to include new PythonQt C++/Python ownership tracking feature.
    • Import scripted module as python module to avoid module top-level variables to clobber each other. #3549
  • Platform support
    • Fix support for 32-bit build allowing use of Slicer on Surface tablet.
  • Packaging & Testing infrastructure
    • Capturing VTK errors/warnings during testing.
    • Update extension build system to report packaging error on CDash.
  • Rendering / Visualization
    • Add Slicer_VTK_RENDERING_BACKEND configure option
  • MRML
    • Add support in vtkMRMLNode for multiple references to the same node.
    • Introducing InvokeCustomModifiedEvent.
  • ApplicationLogic
    • Added function PropagateLabelVolumeSelection(), PropagateForegroundVolumeSelection() and PropagateBackgroundVolumeSelection()
  • VolumeRenderingLogic
    • Extend volume rendering logic API adding GetPresetByName function.
  • View management
    • Add qMRMLLayoutViewFactory
    • Add utility method to display node in only 1 view


Looking at the Code Changes

From a git checkout you can easily see the all the commits since the time of the 4.4.0 release:

git log v4.4.0..HEAD

To see a summary of your own commits, you could use something like:

git log v4.4.0..HEAD  --oneline --author=me

see the git log man page for more options.

Commit stats and full changelog

Related Projects