3DSlicer3Architecture架构介绍
Slicer3 Architecture NA-MIC Architecture 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 Slicer3 Slice Coordinates Slice Management Slice Management Slice Management Slice Management Slice Management Slice Management Slice Management Slice Management 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 Undo Implementation National Alliance for Medical Image Computing NA-MIC National Alliance for Medical Image Computing * Scientist Desktop Algorithms ITK 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 Logic MRML Nodes GUI Widgets Renderers Edit Observe Observe Observe Edit 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. 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: V