NA-MIC National Alliance for Medical Image Computing 3D Slicer Version 4 Architecture and Status Steve Pieper, Ph.D.

Slides:



Advertisements
Similar presentations
National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK.
Advertisements

National Alliance for Medical Image Computing Slicer3 Architecture.
NA-MIC National Alliance for Medical Image Computing National Alliance for Medical Image Computing: NAMIC Ron Kikinis, M.D.
NA-MIC National Alliance for Medical Image Computing 3D Slicer Qt Port & qCTKWidgets Steve Pieper, Ph.D.
National Alliance for Medical Image Computing Anatomy of a plugin Common architecture for interactive and batch processing.
Simple Git Steve Pieper. Topics Git considerations and Slicer Git as if it were svn Git the way it is meant to be.
NA-MIC National Alliance for Medical Image Computing Slicer3 and Slicer4 Steve Pieper, PhD Chief Architect for 3D Slicer Engineering.
Free Mini Course: Applying UML 2.0 with MagicDraw.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
NA-MIC National Alliance for Medical Image Computing 3D Slicer Interactive Modules Steve Pieper, PhD.
Function / ROI Viewing in Slicer2 and Slicer3 for fBIRN Data.
NA-MIC National Alliance for Medical Image Computing Slicer4 Guided Tour Steve Pieper, Ph.D.
NA-MIC National Alliance for Medical Image Computing Slicer Custom Modules Steve Pieper, PhD.
Presented by…. Group 2 1. Programming language 2Introduction.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering End-user Platform Steve Pieper Isomics, Inc.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering End-user Platform Steve Pieper Isomics, Inc.
NA-MIC National Alliance for Medical Image Computing IGT Software Design and Process Bill Lorensen GE Research.
3D Slicer Architecture and Implementation
Core 1b – Engineering Dynamic Coding a.k.a. Python in Slicer
NA-MIC National Alliance for Medical Image Computing NAMIC-Kit Update Will Schroeder Jim Miller Bill Lorensen.
NA-MIC National Alliance for Medical Image Computing The NA-MIC Kit National Alliance for Medical Image Computing.
NA-MIC National Alliance for Medical Image Computing NA-MIC Software Engineering Bill Lorensen GE Research NA-MIC Engineering Core PI.
NA-MIC National Alliance for Medical Image Computing Why NITRC Matters to NA-MIC Steve Pieper, PhD.
NA-MIC National Alliance for Medical Image Computing Slicer3 and the NA-MIC kit Sonia Pujol, Ph.D. Instructor of Radiology Surgical Planning.
NA-MIC National Alliance for Medical Image Computing Slicer4 CLI Slicer Execution Model.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Highlights, Aims and Architecture Will Schroeder Kitware.
National Alliance for Medical Image Computing Slicer3 Status Update.
NA-MIC National Alliance for Medical Image Computing NA-MIC Core 2 Update: Kitware Will Schroeder Kitware NA-MIC Core 2 PI NA-MIC Core.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
NA-MIC National Alliance for Medical Image Computing Slicer Building and Deployment Steve Pieper, PhD.
William Schroeder, Ph.D. §, Andy Cedilnik §, Sebastien Barré, Ph.D. §, William Lorensen ‡, James Miller, Ph.D. ‡, Daniel Blezek, Ph.D. ‡ § Kitware Inc.,
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
NA-MIC National Alliance for Medical Image Computing The NA-MIC Kit: ITK, VTK, Pipelines, Grids and 3D Slicer as An Open Platform for.
NA-MIC National Alliance for Medical Image Computing ParaView Server Manager Berk Geveci Andy Cedilnik.
The Evolution of a VR-based IGT Environment Terry Peters, Robarts Research Institute David Gobbi, CEO, Atamai Inc.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Components Jim Miller GE Research.
NA-MIC National Alliance for Medical Image Computing Using Annotations in Slicer 4.0 Yong Zhang, Kilian Pohl June 2010.
Modularity Status Update Extension Module Webinar 25 th of February 2010.
Chapter 8 Workflows of the Process Taken from Walker Royce’s textbook – Software Project Management plus a number of Personal Comments.
NA-MIC National Alliance for Medical Image Computing 3D Slicer and the NA-MIC Kit for IGT Research Steve Pieper, PhD NAC, SPL, NA-MIC,
NA-MIC National Alliance for Medical Image Computing Isomics, Inc. Steve Pieper.
NA-MIC National Alliance for Medical Image Computing Slicer 2010: Past, Present, and Future Steve Pieper, Ph.D.
Neuroimage Analysis Center An NCRR National Resource Center NAC Engineering Core Steve Pieper, Core PI SPL; Isomics, Inc.
Slicer 3 Ron Kikinis, Steve Pieper. CTK Workshop Heidelberg, June 29/30, 2009 Slicer Goals  Stable, Usable, Cross Platform, End-User Software for Medical.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Computational Platform Jim Miller GE Research.
NA-MIC National Alliance for Medical Image Computing 3D Slicer Modules and Extensions Steve Pieper, Ph.D.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Data Management Stephen R. Aylward Kitware, Inc.
Pipeline Processing Environment Michael J Pan. Motivation The algorithms have been implemented The algorithms have been implemented Possibly located on.
NA-MIC National Alliance for Medical Image Computing Non-Interactive Tools Stephen Aylward, Kitware
NA-MIC National Alliance for Medical Image Computing Slicer 2010: Past, Present, and Future Steve Pieper, Ph.D.
CERN IT Department CH-1211 Genève 23 Switzerland t Migration from ELFMs to Agile Infrastructure CERN, IT Department.
NA-MIC National Alliance for Medical Image Computing Slicer3 Update
National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK.
NA-MIC National Alliance for Medical Image Computing Slicer Progress in 2009 Steve Pieper, Ph.D.
Rapid Prototyping: An Alternative Instructional Design Strategy S. D. Tripp and B. Bichelmeyer (1990)
National Alliance for Medical Image Computing Integrating with Slicer3.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Data Management Daniel Marcus Washington University.
Slicer for Image Guided Therapy Haying Liu Lead Engineer Nobuhiko Hata Simon DiMaio (Prostate robot proj) Raimundo Sierra (Neuroend0scope navi proj)
An Open Source Platform for Registration, Segmentation, Quantitative Analysis, and Visualization of Biomedical Image Data 3D Slicer About 3D Slicer Segmentation.
By: Jamie Morgan  A wiki is a web page or collection of web pages which you and your students can access to contribute or modify content without having.
Image Processing with Slicer
3D Slicer Architecture and Implementation
Core 1b – Engineering Data and Clinical Interface
Modern web applications
3D Slicer Architecture and Implementation
Modern web applications
Ron Kikinis, MD Professor of Radiology, Harvard Medical School
Transition of Slicer2.x Modules to Slicer3: Fiducials
NA-MIC Kit
CSCI 360: Software Architecture & Design
Presentation transcript:

NA-MIC National Alliance for Medical Image Computing 3D Slicer Version 4 Architecture and Status Steve Pieper, Ph.D.

National Alliance for Medical Image Computing Slicer4: Goals Slim Down, Modernize, and Optimize Improve Collaboration and Code Sharing with Research Community Introduce New Technologies Increase Testing and Code Consistency

National Alliance for Medical Image Computing Slicer4: Collaborations Nokia - Qt Software Ecosystem CTK (Common Toolkit) –Widgets, DICOM, Messaging… BRAINS, BioImageSuite… ITKv4 Scipy (Scientific Python), Nipy (Neuroimaging Python) And, of course, NAC, NCIGT, NA-MIC DBPs, Collaboration Grants, Like-Minded Developers, Longtime Friends and Family…

National Alliance for Medical Image Computing Slicer4 Compatibility Pledge Import.xml and.mrml from Slicer2.x and Slicer3.x Command Line Modules will not Need to Change –Except perhaps the build tree –Can be modified for new features if desired Core Modules will be Ported Help will be Provided for Porting Loadable Modules –MRML and Logic Basically Unchanged, Only GUI Needs to be Rewritten –ModuleWizard to Create Code Framework Consistent Slicer Terminology and Concepts –Ease User Transition, Leverage Training

National Alliance for Medical Image Computing Slicer4: Git Git Advantages: –Arguably better than svn –Many (all?) of our colleagues are migrating Git Disadvantages: –Best practices still evolving –Many (most?) of our colleagues are frustrated ;) We had planned to use git from the start for slicer4, but have backed off. Now we suggest using git-svn for your own work and collaborative topic branches

National Alliance for Medical Image Computing Slicer4: Qt Large Developer Community Many Highly Refined Tools Major Effort Underway thanks to ARRA Supplement Learn More This Week Results are Very Encouraging, but there is a lot To Do…

National Alliance for Medical Image Computing Slicer4: Qt Impact No More X11 on Mac OSX New C++ Paradigms Designer for GUI Construction Native WebKit –Native HTML (CSS, HTML5, webgl) –JavaScript Engine

National Alliance for Medical Image Computing Slicer4: CTK See commontk.org for info CTK is Home Many for “Generic” Parts of Slicer4 –CTKWidgets, including Transfer Function Editor –ctkDICOM, based on DCMTK –Other Code may Migrate (Execution Model? MRML? …) Active International Development Team

National Alliance for Medical Image Computing Slicer4: PythonQt Developed by Mevislab (Germany) LGPL, Stable Scripted Access to Classes, Signals, Slots, Properties May (or may not) be Replaced with PySide in the Future

National Alliance for Medical Image Computing Slicer4: Tcl and Python VTK and VTK-based Slicer4 Code are Wrapped with Python A Compatibility Layer Allows Tcl to Call VTK/Slicer Code via Python –This is the inverse of Slicer3, where Python calls are routed through Tcl –Used for Editor and Slice Interaction –This layer is for porting only and should not be used when writing new code Any Tk or KWWidgets GUI code will need to be rewritten in Qt

National Alliance for Medical Image Computing Slicer4: SuperBuild Evolution of getbuildtest.tcl Concept into Pure CMake –More General Implementation to Serve as Template for Other Projects –getbuildtest is Still the Supported Tool for Slicer3.6 Hierarchical –CTK also Uses SuperBuild Extension Support –Coming Try It –Slicer4 Build Instructions on Wiki

National Alliance for Medical Image Computing Slicer4: Development Emphasis on the NA-MIC Software Engineering Methdology –Testing, Coverage, Documentation & Coding Style New Modules Start as Extensions –Only Widely Applicable Functionality Bundled with Application –Only When Coding Standards Are Met Increase Communication via the Developer Mailing List –Keep Everyone in the Loop on Architecture and Coding Conventions –Verbose Commit Messages

National Alliance for Medical Image Computing Slicer4: What Works (mostly) Main GUI, Toolbars, Menus Scene/Data Load/Save Slice and 3D Visualization (pan/zoom, overlays, models…) Command Line Modules Python Wrapping, Python Scripted Modules Loadable Modules Editor Annotations (Evolution of Fiducials and Measurements) Many things…

National Alliance for Medical Image Computing Slicer4: What’s Missing Many Core Modules Volume Rendering Hierarchies IGT Modules Extensions Progress / Status feedback Your Module! Please help identify what is needed to support your work.

National Alliance for Medical Image Computing Developer Decision Tree Working on the Slicer Core? –Focus on Qt Transition Working on a Module? –Build it as an Extension Command Line Module? –Develop and Test with Slicer3.6 or Slicer4 GUI Project with Deadlines in early 2011? –Develop with KWWidgets for 3.6.X –Keep your Logic and MRML Distinct from the GUI –Ongoing Support will be Provided Longer-Term Project that Needs a Custom GUI? –Start working with developer builds of Slicer4 –Talk with dev team about any key missing features –Consider doing some or all coding in Python

National Alliance for Medical Image Computing Architecture