2012 Progress Report Science Wiki Version Engineering
Contents
5.2. Engineering
Key Investigators
- Will Schroeder, Kitware
- Stephen R. Aylward, Kitware
- Steve Pieper, Isomics
- Jim Miller, GE Research
The Engineering component of the Computer Science Core (Core 1b) has been focusing on the infrastructure needed for the Algorithms component to implement their methods, and has been working closely with them so that the functionality we provide can serve to inspire new methods as well. Herein we provide more details regarding our accomplishments in those directions
5.2.1. End-user Platform: 3D Slicer
Steve Pieper
Release of 3D Slicer version 4.0 and 4.1
As shown in Figure 1, 3D Slicer version 4.0 (commonly called Slicer4) is having an immediate world-wide impact. Version 4.0, released at the Radiology Society of North America (RSNA) meeting in late November 2011, is the result of a major effort by the NA-MIC engineering cores, in collaboration with the wider Slicer community, to re-implement and streamline the software in response to feedback from NA-MIC DBPs and algorithm developers. A new 3D Slicer version 4.1 release, being finalized at the time of this writing, adds back many of the advanced features of Slicer3, notably the Extension system by which new functionality can be downloaded and installed independent of the main executable. As described more fully below, these sweeping changes required touching not only most of the code in Slicer, but also feeding important feature and bug fix changes back into the rest of the NA-MIC Kit and upstream libraries. As a result of these efforts, 3D Slicer in now an improved reference implementation of a modern medical image computing package and a strong foundation for research.
Figure 1: 3D Slicer version 4.0 end-user downloads during the first 3 months of 2012, a rate of 45,360 per year (over 100 downloads per day). Interactive geolocated download statistics are available at http://download.slicer.org/stats.
Major Developments and New Functionality in Slicer4
- Modern Cross-Platform Design Patterns: As a by-product of the port of the user interface from KWWidgets to Qt, a comprehensive suite of non-GUI OS abstractions and utility functions from Qt became available to support core application functions such as preference settings, multi-processing, application resource data. This was a direct benefit from the GUI port supported by an ARRA supplement to the Neuroimage Analysis Center, a NA-MIC collaborating P41 grant. Slicer4 supports native windows 64 bit environments and can be bundled into a standard Mac OS X application bundle.
- Efficiency and Robustness: Careful review of core data management and processing pipeline steps allowed us to remove much redundant processing. The result is that Slicer is easier for developers to understand and debug, and end users experience faster startup and more responsive behavior.
- DICOM Networking: Slicer4 includes a DICOM listener and DICOM Query/Retrieve capabilities for integration with standard clinical image management environments and workflows. For example, intraprocedural imaging obtained during image guided procedures can now be auto-routed to Slicer for analysis and navigation.
- Additional Features: Slicer4 includes: an improved flexible view layout system; a revised implementation of the Expectation Maximization (EM) Segmenter; faster hardware accelerated volume rendering; improved markups and annotations; improved atlas and model hierarchy support; a streamlined and revised diffusion MRI implementation.
Plans
With the introduction of the Slicer4 Extension system we plan to stabilize the core slicer distribution and move to less frequent releases with more of the algorithm innovation becoming available through as Extensions. This will allow further stabilization and streamlining of the core while speeding up the delivery of new technologies to end users for testing.
5.2.2. Computational Platform
Jim Miller
Efforts in the Computational Platform have focused on developing a general and flexible computing architecture and analysis platform to meet the needs of NA-MIC scientists and engineers.
Major Developments
- Interactive methods: The Editor module has supported interactive segmentation techniques that were deeply integrated with the Editor codebase. We have broadened the Slicer Extension mechanisms to support Editor Extensions, allowing interactive segmentation techniques to be developed separately from the Slice codebase. We have also refined the interaction patterns for interactive segmentation within the Editor and are starting to develop interactive registration techniques.
- Multivolume analysis: The infrastructure for Diffusion Weighted MRI (DWI) IO and visualization has been generalized to be used for other time varying acquisitions like Dynamic Contrast Enhanced MRI (DCE) and Gated Cardiac CT. Massively univariate processing of DCE to produce parametric maps is being developed as a Slicer Extension.
- Distributed computing: Slicer Execution Model modules (also known as Command Line Modules) are now available as Nipype tools, enabling local and distributed scripted execution of processing pipelines.
- Exploratory image analysis: Infrastructure for the interactive exploration of images and the relationships of features calculated over regions of images was developed, including: feature libraries for Gabor, Haralick, entropy, polynomial, and histograms; and charting capabilities to display line, bar, and scatter plots within Slicer.
- Compatibility with ITK version 4: Compatibility with ITK version 4 was developed and continuously maintained over the past year as ITKv4 matured. Slicer will officially switch to ITKv4 in the coming months.
Plans
At the time of this writing, 3D Slicer 4.1 is being finalized. After the release of Slicer 4.1, the Slicer development codebase will migrate to using ITK version 4. This migration will enable new image registration methods, introduce SimpleITK APIs, and introduce GPU support for image analysis algorithms. Other plans for the Computational Platform include further developments for interactive analysis methods, infrastructure for private cloud computing, and interfaces for statistical analysis.
5.2.3. Data Management Platform
Who?
Progress/Cool-stuff
Plans
5.2.4. Community Software Process
Stephen R. Aylward
Progress/Cool-stuff
- Python
- Extension Manager
- Documentation Process
Plans
- WebGL
- SimpleITK
5.3. NA-MIC Kit
5.3.1. Expansion
Stephen R. Aylward
Progress
- Package Manager
- Updates to ITK, VTK, Qt, CMake, DCMTK, ...
- CTK
- GUI Testing
Plans
5.3.2. Release
Stephen R. Aylward