Presentation is loading. Please wait.

Presentation is loading. Please wait.

National Alliance for Medical Image Computing Slicer3 Architecture.

Similar presentations


Presentation on theme: "National Alliance for Medical Image Computing Slicer3 Architecture."— Presentation transcript:

1 National Alliance for Medical Image Computing http://na-mic.org Slicer3 Architecture

2 National Alliance for Medical Image Computing http://na-mic.org Scientist Desktop NA-MIC Architecture AlgorithmsITK VTK Slicer Modules Experiment Control Workstation / Cluster / Grid Slicer 3.0 Python/Tcl MATLAB… Execution Model Databases Local / BIRN Data Acquisition Experiment Results Query Plot Visualize

3 National Alliance for Medical Image Computing http://na-mic.org Slicer3 Observer MVC Pattern MRML (Model) –For Scene Description and Application State –MRML Nodes are Persistent and Undoable –Scene and Nodes are Observable Logic Encapsulate VTK and ITK Pipelines (Controller) –Observe MRML to Configure Pipelines –Help Create/Manage Nodes –No UI Components (no Widgets, Actors, Mappers, Renderers or RenderWindows) GUI (View) –Observe and Edit MRML –Interact with User and Display Hardware Logic MRML Nodes GUI WidgetsRenderers Edit Observe Edit Observe means generic event mechanisms are used to pass information. Edit means code can directly call methods. Example: GUI can call methods in Logic classes, but Logic cannot call GUI methods. MRML cannot call Logic or GUI methods. There can be many observers for any event.

4 MRML Base Logic Links to: ITK MRML VTK (except Rendering) GUI Links to: VTK Rendering KWWidgets Logic MRML 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 Logic MRML 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 CommandLineModule Logic Links to: Base Logic, MRML GUI Links to: KWWidgets Mediators Execution Model Modules build as executables or shared libraries support –xml query (Managed by Base and communicates like other Modules) Describe Input options (uses --xml option) Formulates Command Line and passes data Back-door to MRML with MRMLIDImageIO ITK IO Factory Library (Otherwise through files, command line options) Slicer 3 Architecture Diagram (updated 2007-01-09) Auto-Generated GUIs from XML 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 and GUI contain transient application state (cursor location, focus, mrml scene connection…) Persistent and Undoable state in MRML Nodes 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 and provide helper routines to create/manage nodes GUI classes are implemented as KWWidget subclasses Each Logic class defines Get/Set methods for internal state and Modified Events that GUI classes can Observe Code in Base implements first order Node types (Volumes, Models, Transforms, Fiducials, Colors, etc). Code in Modules provides application-specific extensions External Connections Use socket connection directly (e.g. MATLAB) Use slicerget/slicerget utilities (e.g. unu) Slicer Daemon communication via server port

5 National Alliance for Medical Image Computing http://na-mic.org Slicer3 Slice Coordinates XY Image Space Coordinates In RenderWindow Slice Coordinates RAS to RAS Coordinates IJK Volume Coordinates XYToSlice Matrix SliceToRAS Matrix RASToRAS Transforms RASToIJK Matrix IJK = RASToIJK * RASToRAS * SliceToRAS * XYToSlice * XY SliceNode XYToIJK Matrix Calculated by SliceLayerLogic Coordinates are Cell Centered (no VTK flip) From GUI IJK = XYToIJK * XY TransformNodeVolumeNode

6 National Alliance for Medical Image Computing http://na-mic.org Slice Management Foreground Slice Layer Logic Slice Node Slice Composite Node Background Slice Layer Logic Slice Logic Volume Display Node Volume Node Volume Display Node Volume Node Slice GUI MRML Nodes: Persistent, Undoable State Logic: Encapsulate VTK Pipelines, Observe MRML Nodes GUI: Manage Widgets and Rendering; Manipulated Nodes and Logic; Observe Nodes and Logic

7 National Alliance for Medical Image Computing http://na-mic.org Slice Management Foreground Slice Layer Logic Slice Node Slice Composite Node Background Slice Layer Logic Slice Logic Volume Display Node Volume Node Volume Display Node Volume Node Slice GUI MRML Nodes: Persistent, Undoable State Logic: Encapsulate VTK Pipelines, Observe MRML Nodes GUI: Manage Widgets and Rendering; Manipulated Nodes and Logic; Observe Nodes and Logic Stores: Window/Level Lookup Table (Color Node) Transparency Threshold

8 National Alliance for Medical Image Computing http://na-mic.org Slice Management Foreground Slice Layer Logic Slice Node Slice Composite Node Background Slice Layer Logic Slice Logic Volume Display Node Volume Node Volume Display Node Volume Node Slice GUI MRML Nodes: Persistent, Undoable State Logic: Encapsulate VTK Pipelines, Observe MRML Nodes GUI: Manage Widgets and Rendering; Manipulated Nodes and Logic; Observe Nodes and Logic Stores: RAS Location of Slice (Origin and Orientation) Field of View Pixel Dimensions

9 National Alliance for Medical Image Computing http://na-mic.org Slice Management Foreground Slice Layer Logic Slice Node Slice Composite Node Background Slice Layer Logic Slice Logic Volume Display Node Volume Node Volume Display Node Volume Node Slice GUI MRML Nodes: Persistent, Undoable State Logic: Encapsulate VTK Pipelines, Observe MRML Nodes GUI: Manage Widgets and Rendering; Manipulated Nodes and Logic; Observe Nodes and Logic Stores: Volume IDs per Layer Opacity of Overlay

10 National Alliance for Medical Image Computing http://na-mic.org Slice Management Foreground Slice Layer Logic Slice Node Slice Composite Node Background Slice Layer Logic Slice Logic Volume Display Node Volume Node Volume Display Node Volume Node Slice GUI MRML Nodes: Persistent, Undoable State Logic: Encapsulate VTK Pipelines, Observe MRML Nodes GUI: Manage Widgets and Rendering; Manipulated Nodes and Logic; Observe Nodes and Logic Stores: Image Data IJKToRAS Matrix Name…

11 National Alliance for Medical Image Computing http://na-mic.org Slice Management Foreground Slice Layer Logic Slice Node Slice Composite Node Background Slice Layer Logic Slice Logic Volume Display Node Volume Node Volume Display Node Volume Node Slice GUI MRML Nodes: Persistent, Undoable State Logic: Encapsulate VTK Pipelines, Observe MRML Nodes GUI: Manage Widgets and Rendering; Manipulated Nodes and Logic; Observe Nodes and Logic Pipeline with: vtkImageReslice vtkImageMapToWindowLevelColors vtkImageMapToRGBA

12 National Alliance for Medical Image Computing http://na-mic.org Slice Management Foreground Slice Layer Logic Slice Node Slice Composite Node Background Slice Layer Logic Slice Logic Volume Display Node Volume Node Volume Display Node Volume Node Slice GUI MRML Nodes: Persistent, Undoable State Logic: Encapsulate VTK Pipelines, Observe MRML Nodes GUI: Manage Widgets and Rendering; Manipulated Nodes and Logic; Observe Nodes and Logic Pipeline with: vtkImageBlend

13 National Alliance for Medical Image Computing http://na-mic.org Slice Management Foreground Slice Layer Logic Slice Node Slice Composite Node Background Slice Layer Logic Slice Logic Volume Display Node Volume Node Volume Display Node Volume Node Slice GUI MRML Nodes: Persistent, Undoable State Logic: Encapsulate VTK Pipelines, Observe MRML Nodes GUI: Manage Widgets and Rendering; Manipulated Nodes and Logic; Observe Nodes and Logic GUI: SliceControllerWidget (Menus, Scale, Buttons…) SliceViewer (RenderWidget, ImageMapper, ImageActor…)

14 National Alliance for Medical Image Computing http://na-mic.org 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

15 National Alliance for Medical Image Computing http://na-mic.org Undo Implementation Initial Scene MRML Scene N1 N2 N3 Delta1 Scene N4 Delta2 Scene N5 Saved Scene N1 N4 N5 Undo Stack


Download ppt "National Alliance for Medical Image Computing Slicer3 Architecture."

Similar presentations


Ads by Google