Core 1b – Engineering End-user Platform
-
Upload
cassandra-lott -
Category
Documents
-
view
25 -
download
0
description
Transcript of Core 1b – Engineering End-user Platform
NA-MICNational Alliance for Medical Image Computing http://na-mic.org
Core 1b – Engineering
End-user Platform
Steve Pieper
Isomics, Inc.
National Alliance for Medical Image Computing http://na-mic.org
Topics
• Slicer’s Role in the NA-MIC Renewal
• 2010 Year in Review
• Plans for This Week and Beyond
National Alliance for Medical Image Computing http://na-mic.org
1 4
2
5
3
Core 1b – Engineering5 Aims / 5 Platforms
Architecture – tools, operating paradigms, reporting mechanisms, integration points
End-user platform – interactive methods and information visualization for longitudinal analysis, exploratory data analysis, and translational research
Computational platform – stream processing, cloud computing, statistical analysis, informatics, machine learning
Data management – non-imaging and derived data, DICOM and cloud services
Software engineering and software quality – navigable timeline for revision control, build, test, documentation and release
National Alliance for Medical Image Computing http://na-mic.org
End-user platform
• 3D Slicer: a cross platform system for translating innovative algorithms into clinical research applications
Developer NeedsClinical Grade IO and UI
Rich Utility Libraries
Extensible and Reconfigurable
Stable Base
Easily Deployable
Developer NeedsClinical Grade IO and UI
Rich Utility Libraries
Extensible and Reconfigurable
Stable Base
Easily Deployable
User NeedsEasy Install and Upgrade“Standard” Clinical BehaviorConsistent InterfaceAdvanced Functionality
User NeedsEasy Install and Upgrade“Standard” Clinical BehaviorConsistent InterfaceAdvanced Functionality
National Alliance for Medical Image Computing http://na-mic.org
• Clinical Grade IO and UI• Slicer developers work closely with DBPs on real data and are
exposed to clinical state of the art
• Rich Utility Libraries• NA-MIC Kit
• Extensible and Reconfigurable• Loadable Extensions• Scriptable GUI
• Stable Base• Nightly Extensions Built Against Latest Slicer Release• Slicer Release Relies on Upstream Release (ITK, VTK, etc)
• Easily Deployable• Binary Installers for all platforms
Developer Needs
National Alliance for Medical Image Computing http://na-mic.org
• Easy Install and Upgrade• Binary installers and Extension Wizard
• “Standard” Clinical Behavior• Adhere to Conventions where Possible
• Varies by Domain (IGT Navigation vs. Neuroscience Research vs. RT Planning)
• New Functionality has no “Standard” by Definition
• Consistent Interface• Learning one Slicer Module should help you know how to use
other ones
• Advanced Functionality• Main Motivation: you use slicer because nothing else does
what you need – we try to make that as painless as possible
User Needs
National Alliance for Medical Image Computing http://na-mic.org
Our Solution: 3D Slicer
• Focus for NA-MIC Collaborations• Platform and Reusable Parts for Wider Community
National Alliance for Medical Image Computing http://na-mic.org
Impact – 2008-2010
National Alliance for Medical Image Computing http://na-mic.org
Slicer 3.6 Highlights
National Alliance for Medical Image Computing http://na-mic.org
Progress in 2010 (Slicer3 only)
• Numbers 2007– Subversion Commits: 3,407– Lines of Code*: 371,428– Active Developers†: 33
*: find . -iname \*.h -o -iname \*.cxx -o -iname \*.tcl -o -iname \*.java -o -name \*.py | grep -v svn | xargs wc(does not include libraries or modules in external repositories)†: svn log | grep "^r" | cut -d " " -f 3 | sort | uniq | wc
• Numbers 2009– Subversion Commits: 3,224 (11,541
total)– Lines of Code*: 914,466– Active Developers†: 68
• 3D Slicer Version 3.4/3.4.1
– Released May/October, 2009
• Numbers 2008• Subversion Commits:
2,971 (8,317)• Lines of Code*:
735,536• Active Developers†: 53
• Numbers 2010
– Subversion Commits: 4188 (15,729 total)
– Lines of Code*: 925,398
– Bugs & Features:
• 521 Closed
• 1046 Total
– Active Developers†: 81
• 3D Slicer Versions 3.6 / 3.6.1 / 3.6.2
– Released June / August / November, 2010
National Alliance for Medical Image Computing http://na-mic.org
What’s Next?
• 3D Slicer Version 4.0– Under Active Development– Developer Beta Binaries Now!– ARRA Supplement for Qt Port
• Module Porting is Major Goal for 2011• Slicer2 -> Slicer3 was ~80% rewrite• Slicer3 -> Slicer4 is ~30% rewrite
National Alliance for Medical Image Computing http://na-mic.org
Slicer4 Keys to Success
• Multi-purpose Modules– CLI with Hot Update– Scripted Modules as CLI or Stand-Alone
Interfaces “Slicelets”– “.slicer” Extension for scripts that define custom
GUI to Slicer functionality
• Leverage Community Developments (ITKv4, VTK, CTK, NiPy…)
• Focus on Extensions to Facilitate Collaboration
National Alliance for Medical Image Computing http://na-mic.org
Extensions
• Promising Start in Slicer3– 29 Extensions in Nightly Build
• To be a key part of Slicer4 with CDash@Home– Keep the Core Maintainable– Allow Module Developers to Work with Stable
Slicer Release– Nightly Build/Test/Deploy– Independent Repostitory, Wiki, Issues
Tracking…
National Alliance for Medical Image Computing http://na-mic.org
Translational Focus
• Improved DICOM Support– Local Database– Query / Retrieve / Store– Application Hosting
• OpenIGT Link and Real-Time Performance• Clinical Interfaces
– Uncluttered Display– Compare View, Lightbox– Large Format, Multi-Monitor
National Alliance for Medical Image Computing http://na-mic.org
Frameworks for Solution Types
Example: GrowCut Slicer Editor Effect
• Multiple paint tool interactions
• Simultaneous viewing of user inputs and segmentation
• Edit segmentation with additional gestures
Framework for other interactive methods
User painted gestures
Segmentation overlaid with gestures
Additional User painted gestures
Final Segmentation overlaid with gestures
• Key Technologies:– GPU Volume Rendering
– Registration
– Filtering / Segmentation
– Diffusion Analysis
– Time Series
– …
National Alliance for Medical Image Computing http://na-mic.org
1 4
2
5
3
Core 1b – Engineering5 Aims / 5 Platforms
Architecture – tools, operating paradigms, reporting mechanisms, integration points
End-user platform – interactive methods and information visualization for longitudinal analysis, exploratory data analysis, and translational research
Computational platform – stream processing, cloud computing, statistical analysis, informatics, machine learning
Data management – non-imaging and derived data, DICOM and cloud services
Software engineering and software quality – navigable timeline for revision control, build, test, documentation and release