Transcript

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

top related