03

GIMIAS
Framework Architecture
GIMIAS Framework Introduction




Motivation

• 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
GIMIAS Framework Introduction




GIMIAS (Graphical Interface for Medical Image Analysis and Simulation)

• GIMIAS framework provides a set of generic
functionalities that can be extended through plugins to
create problem specific biomedical applications
GIMIAS Framework Introduction




Three layered system
                                Extensibility                                                         Interoperability


                                DICOM




                                                  Plugin layer
                                Generic
                                Segmentation
                                                                 Data
                                Image Tools




                                                                                    Framework layer
                                                                 Processing
                                Manual
                                Segmentation                     Input and Output
                                                                                                       Boost




                                                                                                                    Third Party layer
                                Mesh Editor                      Plugin
                                                                                                       CGNS
                                MITK                             Execution
                                                                                                       HDF5
                                Scene View                       Visualization
                                                                                                       DMCTK
                                Signal Viewer                    User Interface
                                                                                                       ITK
                                Clinical Report                  Workflow
                                                                                                       VTK
                                CMGUI                            Working Area
                                                                                                       MITK
                                Remote Data                      Automatic
                                                                 Updates                               Slicer CLI
                                SSH                                                                    AXIS2C
                                                                 Data Tree
                                Taverna                                                                VMTK
                                VMTK                                                                   CMGUI
                                Web Services
                                                                                                       Poco
                                XNAT
                                                                                                       Curl
                                                                                                       wxWidgets
GIMIAS Framework Introduction




Three layered system
                                Extensibility   Interoperability



• Main features
       • Interoperability with third party libraries, platforms and
         applications
       • Create custom biomedical applications
       • Reusability of plugins between applications
GIMIAS Framework Introduction




Software engineering

• 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
       •    …
GIMIAS Framework Introduction




GIMIAS Framework components

• Components
       • Extensible
       • Base
Extensible components




Extensible Data Component

• Extend: supported data type representations
• Features:
        • Automatic conversion between types when required
• Class: DataEntity
Extensible components




Extensible Processing Component

• Extend: new processing filters
• Features:
        • Multithreading
        • Subject-observer pattern for inputs and outputs
• Class: Processor
Extensible components




Extensible Input and Output Component

• Extend: I/O formats               • Examples:
• Features:                           • Local
        • Show preload window            •   ITK and VTK
                                         •   DICOM
        • Manage 3D+T data               •   CGNS
        • Manage metadata like           •   HDF5
          rendering properties or        •   CMGUI
          patient information         • Remote
        • Manage scene                   •   FTP, SFTP, HTTP, HTTPS
• Classes:                               •   XNAT
        • DataEntityReader               •   SendSpace
                                         •   PACS
        • DataEntityWriter
Extensible components




Extensible Plugin Manager Component

• Extend: new plugin               • Examples:
                                      •   GIMIAS Plugin
mechanisms                            •   3D Slicer Command Line Plugin
• Features:                           •   Taverna workflows
        • Local and remote            •   SSH Command Line Plugin
                                      •   UNICORE Command Line Plugin
        • Load/Unload plugins at      •   Web Services (in progress)
          run-time
• Class: PluginProvider
Extensible components




Extensible Execution Component

• Extend: execution modes of processing                 •   Examples:
filters                                                      •   GIMIAS Plugin
• Features:                                                  •   Clinical workflow
        •    Automatic conversion of data formats and        •   Command Line Plugins: Local 3D
             types                                               Slicer, SSH, UNICORE
        •    Based on 3D Slicer XML CLI description          •   Taverna workflows
             format                                          •   Web Services
        •    Automatic CUI generation                        •   Custom Applications
        •    Local and remote                                •   Direct DLL
Extensible components




Extensible Visualization Component

• 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 components




Extensible User Interface Component

• Extend: user interface widgets
• Features:
        • Automatic creation of widgets
          when required
        • Custom user interface
Extensible components




Extensible Working Area

• Extend: custom working areas
• Features:
        • Working area manager
        • Design your custom working area at run-time or by code
Common components




Data Tree

• Features:
      • Global in memory data repository
      • Shared data between all plugins
      • Data is stored as a tree
• Class: DataEntityList
Common components




Clinical workflow

• Guides the user through the workflow steps
• Compose a clinical workflow
      • Processing steps
      • Customizable User interface
• Examples: @neurist
Common components




Common Widgets

• Set of common widgets:
      •    Time navigation
      •    Toolbox
      •    Preferences
      •    Input control
      •    Main window
      •    Thumbnail widget
      •    Processing toolbox
      •    Render window container
      •    …
Common components




Automatic updates

• Features:
      • Update the user with new versions of plugins and components

Gimias Architecture

  • 1.
  • 2.
    GIMIAS Framework Introduction Motivation •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
  • 3.
    GIMIAS Framework Introduction GIMIAS(Graphical Interface for Medical Image Analysis and Simulation) • GIMIAS framework provides a set of generic functionalities that can be extended through plugins to create problem specific biomedical applications
  • 4.
    GIMIAS Framework Introduction Threelayered system Extensibility Interoperability DICOM Plugin layer Generic Segmentation Data Image Tools Framework layer Processing Manual Segmentation Input and Output Boost Third Party layer Mesh Editor Plugin CGNS MITK Execution HDF5 Scene View Visualization DMCTK Signal Viewer User Interface ITK Clinical Report Workflow VTK CMGUI Working Area MITK Remote Data Automatic Updates Slicer CLI SSH AXIS2C Data Tree Taverna VMTK VMTK CMGUI Web Services Poco XNAT Curl wxWidgets
  • 5.
    GIMIAS Framework Introduction Threelayered system Extensibility Interoperability • Main features • Interoperability with third party libraries, platforms and applications • Create custom biomedical applications • Reusability of plugins between applications
  • 6.
    GIMIAS Framework Introduction Softwareengineering • 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 • …
  • 7.
    GIMIAS Framework Introduction GIMIASFramework components • Components • Extensible • Base
  • 8.
    Extensible components Extensible DataComponent • Extend: supported data type representations • Features: • Automatic conversion between types when required • Class: DataEntity
  • 9.
    Extensible components Extensible ProcessingComponent • Extend: new processing filters • Features: • Multithreading • Subject-observer pattern for inputs and outputs • Class: Processor
  • 10.
    Extensible components Extensible Inputand Output Component • Extend: I/O formats • Examples: • Features: • Local • Show preload window • ITK and VTK • DICOM • Manage 3D+T data • CGNS • Manage metadata like • HDF5 rendering properties or • CMGUI patient information • Remote • Manage scene • FTP, SFTP, HTTP, HTTPS • Classes: • XNAT • DataEntityReader • SendSpace • PACS • DataEntityWriter
  • 11.
    Extensible components Extensible PluginManager Component • Extend: new plugin • Examples: • GIMIAS Plugin mechanisms • 3D Slicer Command Line Plugin • Features: • Taverna workflows • Local and remote • SSH Command Line Plugin • UNICORE Command Line Plugin • Load/Unload plugins at • Web Services (in progress) run-time • Class: PluginProvider
  • 12.
    Extensible components Extensible ExecutionComponent • Extend: execution modes of processing • Examples: filters • GIMIAS Plugin • Features: • Clinical workflow • Automatic conversion of data formats and • Command Line Plugins: Local 3D types Slicer, SSH, UNICORE • Based on 3D Slicer XML CLI description • Taverna workflows format • Web Services • Automatic CUI generation • Custom Applications • Local and remote • Direct DLL
  • 13.
    Extensible components Extensible VisualizationComponent • 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
  • 14.
    Extensible components Extensible UserInterface Component • Extend: user interface widgets • Features: • Automatic creation of widgets when required • Custom user interface
  • 15.
    Extensible components Extensible WorkingArea • Extend: custom working areas • Features: • Working area manager • Design your custom working area at run-time or by code
  • 16.
    Common components Data Tree •Features: • Global in memory data repository • Shared data between all plugins • Data is stored as a tree • Class: DataEntityList
  • 17.
    Common components Clinical workflow •Guides the user through the workflow steps • Compose a clinical workflow • Processing steps • Customizable User interface • Examples: @neurist
  • 18.
    Common components Common Widgets •Set of common widgets: • Time navigation • Toolbox • Preferences • Input control • Main window • Thumbnail widget • Processing toolbox • Render window container • …
  • 19.
    Common components Automatic updates •Features: • Update the user with new versions of plugins and components