Slicer 3 0 Architecure Algorithms ITK VTK Slicer

  • Slides: 7
Download presentation
Slicer 3. 0 Architecure Algorithms ITK VTK Slicer Modules Slicer 3. 0 Scripts of

Slicer 3. 0 Architecure Algorithms ITK VTK Slicer Modules Slicer 3. 0 Scripts of Slicer Mods VTK Apps Using ITK Batch Programs Non-NAMIC Cmd tools LONI Pipeline Birn Grid Data/Compute National Alliance for Medical Image Computing http: //na-mic. org User Desktop

Slicer 3 Architecture Diagram (2006 -01 -26) Execution Model Manager Logic Links to: Base

Slicer 3 Architecture Diagram (2006 -01 -26) Execution Model Manager Logic Links to: Base Logic Auto-Generated GUIs from JSON Descriptions Mediators Base (Managed by Base and communicats like other Modules) GUI Links to: KWWidgets Observe Modified Events Formulates Command Line and possibly stages data Logic Links to: ITK MRML VTK (except Rendering) Edit Mrml Scene/Nodes Mediators GUI Links to: VTK Rendering KWWidgets Provides • Frames for Widgets, • Routing of User Events Observe Modified Events on Application State • Registers GUI Event Observers MRML Describe Input options External Processes (Grid/Pipeline) • Speak MRML (link to libmrml or have data staged by slicer) • Uses the JSON interface Observe Modified Events MRML Aware Processes Can Edit Mrml Scene/Nodes and Observe Modified Events Edit Mrml Scene/Nodes Interactive Module Logic Links to: Base Logic ITK MRML VTK (except Rendering) Mediators GUI Links to: VTK Rendering KWWidgets Notes: • All classes in the Logic directory should be able to run ‘headless’ without Open. GL 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 3 D 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

Main program; Bootstrap application logic, Create application gui data layer data mediator logic layer

Main program; Bootstrap application logic, Create application gui data layer data mediator logic layer gui mediator (VTK, ITK, no KWWidgets, no VTKRendering) vtk. KWWidget vtk. Object Logic code adds modified event observers to MRML scene and MRML nodes. MRML data model Logic methods apply changes to the MRML scene. VTK pipeline vtk. Slicer. Logic - Undo manager, - tracing gui layer GUI code adds observers to modified events generated by/to logic vtk. Slicer. GUI - look & feel? - set command helpers? vtk. Slicer. Application. GUI - connect to window system - vtk. KWApplication vtk. Slicer. Application. Logic - MRML slice # - “transient state” - open views, slices, modules (and active) - cursor location - version - focus, event routing vtk. Slicer. View. Logic vtk. Slicer. Linked. Slice. Logic vtk. Slice. Logic - vtk. Image. Reslice - vtk. Image. Composite vtk. Slicer. Slice. Layer. Logic - MRML node - Opacity - Compositing - Window/level vtk. Slicer. View. Logic vtk. Slicer. Module. Logic - Undo/tracing helpers - vtk. KWWindow Apply methods from GUI classes call set method in logic to change state vtk. Slicer. View. GUI - Render windows - mappers, actors vtk. Slicer. Slice. GUI - vtk. Image. Mapper - vtk. KWRender. Window vtk. Slicer. Slice. Logic. GUI VTK pipeline vtk. Slicer. Module. GUI vtk. Slicer. Editor. Logic vtk. Slicer. MRMLLogic vtk. Slicer. Custom. Module. GUI

Slicer Daemon • Slicerd listens on local socket • slicerget <id> – gets volume

Slicer Daemon • Slicerd listens on local socket • slicerget <id> – gets volume and writes to stdout in nrrd • slicerput [name] – reads nrrd on stdin and puts in slicer % slicerget 0 | unu 1 op exp - | slicerput National Alliance for Medical Image Computing http: //na-mic. org

ITK IO and Slicer Daemon Anti. Alias. Binary. Image. Filter. exe bunny. z. nrrd

ITK IO and Slicer Daemon Anti. Alias. Binary. Image. Filter. exe bunny. z. nrrd "| sh slicerput. tcl" National Alliance for Medical Image Computing http: //na-mic. org

Undo Architecture for Slicer 3 • Versioning “Commit Aside” Strategy Encapsulated within MRML •

Undo Architecture for Slicer 3 • 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 http: //na-mic. org

Undo Example Undo Stack Application Logic Initial Scene Delta 1 Scene Delta 2 Scene

Undo Example Undo Stack Application Logic Initial Scene Delta 1 Scene Delta 2 Scene Saved Scene N 1 R R N 1 N 2 N 4 R N 4 N 3 R N 5 National Alliance for Medical Image Computing http: //na-mic. org