03 GIMIAS Framework Architecture
03
GIMIAS Framework Architecture
•Biomedical research community is demanding:• Research platform where the different multidisciplinary
biomedical imaging and simulation tools are available from a single access point
• Single framework where new generation workflows will be created focusing on multiscale patient specific treatment
Motivation
GIMIAS Framework Introduction
•GIMIAS framework provides a set of generic functionalities that can be extended through plugins to create problem specific biomedical applications
GIMIAS (Graphical Interface for Medical Image Analysis and Simulation)
GIMIAS Framework Introduction
Three layered system
GIMIAS Framework Introduction
Third
Par
ty la
yer
Fram
ewor
k la
yer
Plug
in la
yerDICOM
Generic SegmentationImage ToolsManual SegmentationMesh EditorMITKScene ViewSignal ViewerClinical ReportCMGUIRemote DataSSHTavernaVMTKWeb ServicesXNAT
DataProcessingInput and OutputPluginExecutionVisualizationUser InterfaceWorkflowWorking AreaAutomatic UpdatesData Tree
BoostCGNSHDF5DMCTKITKVTKMITKSlicer CLIAXIS2CVMTKCMGUIPocoCurlwxWidgets
InteroperabilityExtensibility
Three layered system
GIMIAS Framework Introduction
InteroperabilityExtensibility
•Main features• Interoperability with third party libraries, platforms and
applications• Create custom biomedical applications• Reusability of plugins between applications
•Principles:• Component-based software engineering• Use of design patterns• Model View Controller architectural pattern
•Design patterns:• Factory method• Facade• Bridge• Strategy• Subject-observer• Thread pool• …
Software engineering
GIMIAS Framework Introduction
•Components• Extensible• Base
GIMIAS Framework components
GIMIAS Framework Introduction
•Extend: supported data type representations•Features:• Automatic conversion between types when required
•Class: DataEntity
Extensible Data Component
Extensible components
•Extend: new processing filters•Features:
• Multithreading• Subject-observer pattern for inputs and outputs
•Class: Processor
Extensible Processing Component
Extensible components
•Extend: I/O formats•Features:
• Show preload window• Manage 3D+T data• Manage metadata like
rendering properties or patient information
• Manage scene
•Classes: • DataEntityReader• DataEntityWriter
Extensible Input and Output Component
Extensible components
•Examples:• Local
• ITK and VTK• DICOM• CGNS• HDF5• CMGUI
• Remote• FTP, SFTP, HTTP, HTTPS• XNAT• SendSpace• PACS
•Extend: new plugin mechanisms•Features:• Local and remote• Load/Unload plugins at
run-time
•Class: PluginProvider
Extensible Plugin Manager Component
Extensible components
•Examples:• GIMIAS Plugin• 3D Slicer Command Line Plugin• Taverna workflows• SSH Command Line Plugin• UNICORE Command Line Plugin• Web Services (in progress)
•Extend: execution modes of processing filters•Features:
• Automatic conversion of data formats and types
• Based on 3D Slicer XML CLI description format
• Automatic CUI generation• Local and remote
Extensible Execution Component
Extensible components
•Examples:• GIMIAS Plugin• Clinical workflow• Command Line Plugins: Local 3D Slicer, SSH,
UNICORE • Taverna workflows• Web Services• Custom Applications• Direct DLL
•Extend: new rendering libraries•Features:
• Automatic creation of rendering data type
• Visualization of the same data in different renders simultaneously
• View configuration• Custom rendering display properties
•Examples:• CMGUI and MITK
•Classes: • RenderingTree and RenderWindow
Extensible Visualization Component
Extensible components
•Extend: user interface widgets•Features:• Automatic creation of widgets
when required• Custom user interface
Extensible User Interface Component
Extensible components
•Extend: custom working areas•Features:• Working area manager• Design your custom working area at run-time or by code
Extensible Working Area
Extensible components
•Features:• Global in memory data repository• Shared data between all plugins• Data is stored as a tree
•Class: DataEntityList
Data Tree
Common components
•Guides the user through the workflow steps•Compose a clinical workflow • Processing steps• Customizable User interface
•Examples: @neurist
Clinical workflow
Common components
•Set of common widgets:• Time navigation• Toolbox• Preferences• Input control• Main window• Thumbnail widget• Processing toolbox• Render window container• …
Common Widgets
Common components
•Features:• Update the user with new versions of plugins and components
Automatic updates
Common components