Back to
Projects List
Integrating ImFusion Algorithms into 3D Slicer
Key Investigators
- Federico Gnesotto (ImFusion GmbH, Germany)
- Martin Matilla (ImFusion GmbH, Germany)
Presenter location: In-person
Project Description
The ImFusionSDK (a collection of libraries) contains various algorithms that are applied on medical data such as MR, CT and Ultrasound. The algorithms range from calibration to image-registration, segmentation etc.
Our proposal is to create an extension in 3D-Slicer that exposes ImFusion algorithms to the data loaded in the 3D Slicer software. As a starting point, we will employ the existing ImFusion extension for 3D-Slicer which performs CPU and GPU-accelerated registration between single and multi modal images.
Objective
The project plan can be broken down into the following concrete objectives:
-
Plugin Infrastructure: Creation of Module/Plugin infrastructure for 3D Slicer (qSlicerLoadableModule
)
-
Data Interface: Handling and conversion of DataSets (vtkImageData
<-> ImFusion::Data
)
-
Algorithm Interface: accessing ImFusion’s list of compatible algorithms
-
Algorithm Controller Integration: Integration of GUI and Logic for configuring algorithms (ImFusion::AlgorithmController
) into 3D Slicer (qSlicerAbstractModuleWidget
, vtkSlicerModuleLogic
)
Approach and Plan
Plugin Infrastructure
- Integrate the ImFusionSDK libraries with the Slicer-Extension via CMake.
Data Interface
- Convert from 3D Slicer to ImFusionSDK data representation
- Convert from ImFusionSDK to 3D Slicer representation
Algorithm Interface
- Access the list of algorithms in the ImFusionSDK
- Filter by algorithms that are compatible with the loaded/selected data
- Launch algorithms from 3D Slicer
Algorithm Controller Integration
- Create an example algorithm controller in 3D slicer
- Auto-generation in Slicer of ImFusion’s default algorithm-controllers
Progress and Next Steps
- After hitting various walls, we decided to implement a client (3D Slicer) - server (ImFusion) solution via OpenIGTLink
- Workflow should be:
- Start ImFusion erver from 3D-Slicer on startup
- Send data to ImFusion server -> get algorithms compatible with data
- Select algorithm via GUI
- (Configure algorithm via GUI)
- Run Algorithm -> Data/Nodes are updated in 3D Slicer
Illustrations
Background and References
ImFusion’s RegistrationModule for Slicer https://github.com/ImFusionGmbH/public-demos/tree/release/SlicerExtension