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

Slides:



Advertisements
Similar presentations
National Alliance for Medical Image Computing Integrating with Slicer3.
Advertisements

Slicer3 for developers – Sonia Pujol, Ph.D. -1- National Alliance for Medical Image Computing Programming into Slicer3 Sonia Pujol, Ph.D. Surgical Planning.
Grid Wizard Enterprise GSlicer3 Tutorial. Introduction This tutorial assumes you already completed the basic and advanced tutorial. GSlicer3 is a Slicer3.
National Alliance for Medical Image Computing Slicer3 plugins Common architecture for interactive and batch processing.
National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK.
National Alliance for Medical Image Computing Slicer3 Architecture.
National Alliance for Medical Image Computing Slicer3 plugins Common architecture for interactive and batch processing.
National Alliance for Medical Image Computing Slicer MRML MRML Library provides API for managing medical image data types (Volumes, Models,
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 Anatomy of a plugin Common architecture for interactive and batch processing.
MAF Paolo Quadrani giugno 2005 Marco Petrone
NA-MIC National Alliance for Medical Image Computing 3D Slicer Interactive Modules Steve Pieper, PhD.
National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK.
Corpus Callosum Segmentation Tool Project Martin Styner Department of Computer Science & Psychiatry Neuro Image Analysis Laboratory.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
1 ParaView Current Architecture and History Current Architecture and History Issues with the Current Design Issues with the Current Design.
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.
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
AMI GUI Design V1.1 by Kilian Pohl - Reflects changes in AMI MRML Structure - Includes feedback from AMI Workshop in Dec 09.
NA-MIC National Alliance for Medical Image Computing Slicer 3 Update for Core 1 NA-MIC Algorithms Meeting UNC May 23, 2006.
NA-MIC National Alliance for Medical Image Computing NAMIC-Kit Update Will Schroeder Jim Miller Bill Lorensen.
National Alliance for Medical Image Computing Grid Computing with BatchMake Julien Jomier Kitware Inc.
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 shapeAnalysisMANCOVA_Wizar d Lucile Bompard, Clement Vacher, Beatriz Paniagua, Martin.
An Introduction to Visual Basic
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 Slicer 3.4 Update Summer NA-MIC Project Week 2009 Steve Pieper, Ph.D.
NA-MIC National Alliance for Medical Image Computing Slicer4 CLI Slicer Execution Model.
Workflow based Slicer IGT Module : Tutorial Andinet Enquobahrie, PhD Kitware Inc December, 2008.
Software Breakdown. Monday, October 26, 2009 CS410 Green Team Fall High Level Architecture.
NA-MIC National Alliance for Medical Image Computing Slicer Building and Deployment Steve Pieper, PhD.
SimITK and SimVTK: ITK and VTK in Simulink DG Gobbi, P Mousavi, KM Li, J Xiang, A Campigotto, A LaPointe, G Fichtinger, P Abolmaesumi Medical Image Analysis.
DICOM to NRRD Conversion Tutorial Martin Styner 1 University of North Carolina Neuro Image Research and Analysis Lab.
Graphics and Event-Driven Programming in Java John C. Ramirez Department of Computer Science University of Pittsburgh.
Sonia Pujol, PhD National Alliance for Medical Image Computing © 2010, ARR.
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.
NA-MIC National Alliance for Medical Image Computing Registering Image Volumes in Slicer Steve Pieper.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Components Jim Miller GE Research.
Requirements Document Slicer3 Workflow Based Interface for NAV-RFA.
Title Carolina First Steering Committee October 9, 2010 Online Voting System Design Yinpeng Li and Tian Cao May 3, 2011.
Slicer3 for developers – S.Pujol -1- National Alliance for Medical Image Computing Slicer3 Course for developers Sonia Pujol, Ph.D. Surgical Planning Laboratory.
NA-MIC National Alliance for Medical Image Computing Slicer / ITK / VTK Development Tools Steve Pieper, PhD.
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 Slicer / ITK / VTK Development Tools Steve Pieper, PhD.
Top Secret CIBC Sneak Preview of Next Generation SCIRun Features and Directions.
NA-MIC National Alliance for Medical Image Computing 3D Slicer Modules and Extensions Steve Pieper, Ph.D.
Aerial Image Exploitation Change Detection Event Detection Object Tracking Region Classification Medical Image Analysis Automated Cancer Detection Automatic.
NA-MIC National Alliance for Medical Image Computing Slicer 2.x Architecture Steve Pieper, PhD.
NA-MIC National Alliance for Medical Image Computing NA-MIC Core 2 Update Isomics Steve Pieper Isomics, Inc. NA-MIC Engineering Isomics.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 14 Event-Driven Programming with Graphical User Interfaces.
NA-MIC National Alliance for Medical Image Computing Slicer3 Update
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
National Alliance for Medical Image Computing Integrating with Slicer3.
12-Jun-16 Event loops. 2 Programming in prehistoric times Earliest programs were all “batch” processing There was no interaction with the user Input Output.
3D Slicer module programming
Chapter 2: Operating-System Structures
3D Slicer Architecture and Implementation
Slicer IGT Module : Wizard UI Design
Core 1b – Engineering Data and Clinical Interface
Slicer3 Architecture.
3D Slicer Architecture and Implementation
Event loops 17-Jan-19.
Ron Kikinis, MD Professor of Radiology, Harvard Medical School
Event loops.
Slicer Timeline GUI Thread Processing Thread
Presentation transcript:

National Alliance for Medical Image Computing User Desktop Slicer 3.0 Architecure AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK Scripts of Slicer Mods Batch Programs Non-NAMIC Cmd tools LONI Pipeline Birn Grid Data/Compute Slicer 3.0

MRML Base Logic Links to: ITK MRML VTK (except Rendering) GUI Links to: VTK Rendering KWWidgets Observe Modified Events Edit Mrml Scene/Nodes Mediators Interactive Module Logic Links to: Base Logic ITK MRML VTK (except Rendering) GUI Links to: VTK Rendering KWWidgets Mediators Observe Modified Events on Application State Edit Mrml Scene/Nodes Registers GUI Event Observers Observe Modified Events Provides Frames for Widgets, Routing of User Events Execution Model Manager Logic Links to: Base Logic GUI Links to: KWWidgets Mediators External Processes (Grid/Pipeline) Speak MRML (link to libmrml or have data staged by slicer) Uses the JSON interface (Managed by Base and communicats like other Modules) Describe Input options Formulates Command Line and possibly stages data MRML Aware Processes Can Edit Mrml Scene/Nodes and Observe Modified Events Slicer 3 Architecture Diagram ( ) Auto-Generated GUIs from JSON Descriptions Notes: All classes in the Logic directory should be able to run ‘headless’ without OpenGL or window system for scripting and testing Base/Logic contains transient application state (cursor location, focus, mrml scene connection…) Interactive Modules are ones which interact with the VTK scene and/or User events Interactive Modules interact with 3D scene by creating objects in MRML scene (not by direct manipulation of the Renderer) Logic classes encapsulate and manage internal vtk/itk pipelines GUI classes are implemented as KWWidget subclasses Each Logic class defines a set of Get/Set methods for internal state and Modified Events that GUI classes can Observe

data layerdata mediatorlogic layergui mediatorgui layer Main program; Bootstrap application logic, Create application gui MRML data model VTK pipeline Logic code adds modified event observers to MRML scene and MRML nodes. Logic methods apply changes to the MRML scene. (VTK, ITK, no KWWidgets, no VTKRendering) vtkObject vtkSlicerLogic - Undo manager, - tracing vtkSlicerApplicationLogic - MRML slice # - “transient state” - open views, slices, modules (and active) - cursor location - version - focus, event routing vtkSlicerViewLogic vtkSlicerLinkedSliceLogic vtkSliceLogic - vtkImageReslice - vtkImageComposite vtkSlicerSliceLayerLogic - MRML node - Opacity - Compositing - Window/level vtkSlicerViewLogic vtkSlicerModuleLogic - Undo/tracing helpers vtkSlicerEditorLogic vtkSlicerMRMLLogic vtkSlicerCustomModuleLogic GUI code adds observers to modified events generated by/to logic Apply methods from GUI classes call set method in logic to change state vtkKWWidget vtkSlicerGUI - look & feel? - set command helpers? vtkSlicerApplicationGUI - connect to window system - vtkKWApplication - vtkKWWindow vtkSlicerViewGUI - Render windows - mappers, actors vtkSlicerSliceGUI - vtkImageMapper - vtkKWRenderWindow vtkSlicerSliceLogicGUI vtkSlicerModuleGUI vtkSlicerCustomModuleGUI

National Alliance for Medical Image Computing Slicer Daemon Slicerd listens on local socket slicerget –gets volume and writes to stdout in nrrd slicerput [name] –reads nrrd on stdin and puts in slicer % slicerget 0 | unu 1op exp - | slicerput

National Alliance for Medical Image Computing ITK IO and Slicer Daemon AntiAliasBinaryImageFilter.exe bunny.z.nrrd "| sh slicerput.tcl"

National Alliance for Medical Image Computing Undo Architecture for Slicer3 Versioning “Commit Aside” Strategy Encapsulated within MRML Store “Initial Scene” (from file) and “Delta Scenes” (scenes containing undoable changes) Delta Scenes ‘are’ MRML Scenes Some Nodes are Reference Nodes Setting the MRML scene in the Application Logic causes the cascade of observer callbacks => All Undoable operations must store their data as MRML nodes

National Alliance for Medical Image Computing Undo Example Initial Scene Application Logic N1 N2 N3 Delta1 Scene R N4 R Delta2 Scene R R N5 Saved Scene N1 N4 N5 Undo Stack