MITK Diffusion (under the hood) Klaus H. Maier-Hein (Ph.D.) Computational Disease Analysis Group Medical and Biological Informatics
Jan 15, 2016
MITK Diffusion(under the hood)
Klaus H. Maier-Hein (Ph.D.)Computational Disease Analysis GroupMedical and Biological InformaticsK.H. Maier-Hein
K.H. Maier-HeinReproducibilityanything less than the release of source programs is intolerable for results that depend on computation
K.H. Maier-HeinDifferent levels of interoperabilityDifferent user-groups use and extend our software
DepartmentResearch Center (Physics, Radiology)Sonderforschungsbereich (special research area)Collaborators / the world
MITK supports data- and code interoperabilityCode: component-based approachesData: Nifty/Nrrd, DICOM (Q/R), XNAT, (NITRC)
K.H. Maier-HeinData interoperabilityDifferent Interfaces REST, Webinterface, -applets, DICOM q/r
Very flexibleUpload, view, search, meta-data, manage access
Support by Slicer, NiftyView, CTK (soon available)Data infrastructure of choice for SFB Heidelberg
Centralized data management resource to support multiple investigators and research studiesK.H. Maier-HeinCode interoperabilityScientists dont waste time on software architecture
Requirements are still demandingRe-usabilityInteroperabilityCollaborationClinical application
MITK uses component technology to minimize the effort
K.H. Maier-Hein
K.H. Maier-HeinThe BlueBerry Application Framework
K.H. Maier-Hein
K.H. Maier-Hein
The MITK WorkbenchViewsEditorsK.H. Maier-HeinWhat is BlueBerry?The BlueBerry application framework
Similar to the Eclipse RCP (but in C++)
Builds plugin-based applications (OSGi-driven)Lazy loading of plug-ins (scalability)Strong encapsulation & loose couplingReuse/recombine already existing plug-ins
Flexible application layout views and perspectives
Written for and included in MITK (but independent)
K.H. Maier-HeinCTK Plugin FrameworkK.H. Maier-HeinCTKCTK is an international initiative to provide a shared code base for re-usable components and interoperability technology.
Plugin FrameworkCommand Line ModulesWidgetsDICOM supportApplication Hosting (DICOM WG23)
K.H. Maier-HeinCTK Plugin Framework
K.H. Maier-HeinCTK Plugin FrameworkDynamic OSGi-based Framework
Enables service oriented architectures
Enables distributed/large-scale applications
K.H. Maier-HeinCTK Service RegistriyC++ implementation of the OSGi Service Layer:
Service descriptionService requesterService providerService registryBindFindPublishAPI is very close to the OSGi Service Layer specsK.H. Maier-HeinPlug-in structureMeta informationThird-partydependenciesUnique name
K.H. Maier-HeinPlugin FrameworkSimple and non-intrusiveThe API is surprisingly simple, services require no special interface
Reduced complexityFocus on interface/service, internals hidden
VersioningPlug-ins and their dependencies are versioned
K.H. Maier-HeinCommand Line InterfaceK.H. Maier-Hein
K.H. Maier-HeinCommand Line InterfaceIntegrating command line programs
Executables use XML to describe their input and output
Communication via standard input/output channels
ExamplesITK based registration programsCompiled Matlab codeSlicer CLI modules
Commandarguments
K.H. Maier-HeinSummaryMITK modular application development at different levels:
Toolkit: Use MITK shared libs + Services
Application Framework: Create dynamic and extensible applications using BlueBerry and CTK
MITK Workbench: An extensible end-user application for rapid prototypingK.H. Maier-HeinConclusionMITK (Diffusion) is a lot more than just a bunch of algorithms
CLI Modules supported by Slicer, GIMIAS, MITK, (MedInria) Very easy to adapt to the standardImmediate visibility through widely applied platforms
CTK and BlueBerry allow rich plugin-based applicationsEverybody profits from developmentsNobody wants to repeat implementations of e.g. DICOM (Diffusion) or XNAT interfaces
Enables and eases distribution and reproducibility of research results
K.H. Maier-Hein
Medical and Biological InformaticsGerman Cancer Research Center
K.H. Maier-Hein
MITK & CTK Plattform group
K.H. Maier-Hein
Computational Disease Analysis Group
MichaelJonas
K.H. Maier-HeinThank you!www.mitk.org
K.H. Maier-HeinPlugin FrameworkImplemented OSGi specifications in CTK
Log Service SpecificationProvides a general purpose message logger.Metatype Service SpecificationProvides a unified way to describe metadata about services.Configuration Admin Service SpecificationAllows to set the configuration information of deployed plugins.Event Admin Service SpecificationInter-plugin communication mechanism based on a event publish and subscribe model.
K.H. Maier-HeinOSGi Specifications
OSGi Core Specifications are smallOSGi Service Compendium defines many optional services:
K.H. Maier-HeinPlug-in structureMeta informationThird-partydependenciesUnique name
K.H. Maier-HeinOSGi meta informationmanifest_headers.cmake
set(Plugin-Name "A human readable plug-in name")set(Plugin-Version "x.x.x")set(Plugin-Vendor "A human readable vendor name")set(Plugin-ContactAddress Web page, email, etc.")set(Require-Plugin )K.H. Maier-HeinConclusionCosts
Increased complexity due to the dynamic nature of the systemServices can come and go as they want
Components are tied to the BlueBerry application framework
K.H. Maier-Hein
K.H. Maier-Hein33