Difference between revisions of "Slicer3:BrainlabModule"
Line 27: | Line 27: | ||
=Progress= | =Progress= | ||
+ | * Week of 04/12/2010 | ||
+ | ** Work '''DONE''': | ||
+ | *** Since Brainlab changed its letter from BrainLab to Brainlab. Our module has been changed from BrainLabModule to BrainlabModule. This involved changes in titles, file names, class names and function names. The new module compiles without any errors. | ||
+ | *** The Load Step has been implemented. | ||
+ | *** The Navigate Step has been implemented. | ||
+ | *** The workflow of BrainlabModule may be re-ordered as the following order of steps: Load, Connect and Navigate. | ||
+ | ** To do list: | ||
+ | *** Access to OpenIGTLink module needs to be programmatically through C++ code. | ||
+ | *** Dragging a fiducial list node into the child of a transform node needs to be implemented in C++. | ||
+ | |||
* Week of 04/05/2010 | * Week of 04/05/2010 | ||
** Work '''DONE''': | ** Work '''DONE''': |
Revision as of 04:01, 27 April 2010
Home < Slicer3:BrainlabModuleContents
Aim
Brainlab (http://www.brainlab.com) has recently introduced a customized client/server architecture called VectorVision Link (VV Link) to communicate with external IGT environment. This software API, open but not free, allows other programs to acquire tracking information and images from the Brainlab system. We propose to create a comprehensive workflow to interface 3D Slicer to Brainlab system and to use it for research. Specifically, we create simplified steps for neurosurgeons to use Slicer to perform some research in DTI visualization in OR while Brainlab is used as the primary navigation tool. Here is the scenario:
Brainlab system will still run as usual; we won't install any software and hardware on the Brainlab computer and won't affect its FDA status either. Slicer runs on a different computer. These two computers will be connected to each other using a network or router. During surgical procedures, the Brainlab sends real-time tracking data and/or images to Slicer. The tracking information may be used to seed dynamic DTI visualization in Slicer.
Research Plan
Our workflow will include the following steps:
- Set up connection between Brainlab and Slicer
- Load a scene (default or user specific) into Slicer
- Navigate with DTI visualization in Slicer as the surgeon performs tracking with Brainlab
This will hopefully help the surgeon efficiently integrate Slicer with Brainlab. We will implement the workflow by developing a Slicer module called BrainlabModule. This interactive module uses OpenIGTLink (http://www.na-mic.org/Wiki/index.php/OpenIGTLink) for data communication between Brainlab and Slicer, and uses Fiducial, DTMRI and FiducialSeeding modules for DTI visualization. Also, it uses existing Slicer functions to load MRML scenes.
The development of BrainlabModule will be completed in two phases. In the first phase, a Brainlab simulator will be created. That is, a sequence of synthetic tracking points (not from Brainlab system) will be streamed to Slicer where fiducial-driven DTI visualization will be performed. In the second phase, a real Brainlab system will be needed to test the entire workflow. Upon completion, both modes (Simulator and Brainlab) will co-exist in the module; the user may choose which mode to execute.
Both modes are accompanied by training materials and documentation to ensure usability.
Design of Module
Key Personnel
Haiying Liu
Noby Hata
Ron Kikinis
Progress
- Week of 04/12/2010
- Work DONE:
- Since Brainlab changed its letter from BrainLab to Brainlab. Our module has been changed from BrainLabModule to BrainlabModule. This involved changes in titles, file names, class names and function names. The new module compiles without any errors.
- The Load Step has been implemented.
- The Navigate Step has been implemented.
- The workflow of BrainlabModule may be re-ordered as the following order of steps: Load, Connect and Navigate.
- To do list:
- Access to OpenIGTLink module needs to be programmatically through C++ code.
- Dragging a fiducial list node into the child of a transform node needs to be implemented in C++.
- Work DONE:
- Week of 04/05/2010
- Work DONE:
- The user interface (GUI) has been enhanced and implemented for the Connect Step where the network communication between BrainlabModule and a tracking source is going to be set up. Now we have a working version of Connect Step for tracking simulation. After few configurations, simulated tracking data will be streamed to OpenIGTLink module in Slicer once the Connect button is clicked. The data streaming process may be stopped by clicking the Close button.
- Since the connection between BrainlabModule and the tracking source is always on, it's a good idea to have a separate thread to handle the network communication. This will improve the Slicer response to the user interaction. The thread will be stopped by clicking the Close button in the interface.
- A stream of simulated tracking data points may be generated inside memory or read from a file. The file IO is chosen since in the future tracking data sets of real surgical cases, which are usually saved in a file, may be used for post-surgical re-examination or just demonstration only.
- To do list:
- OpenIGTLink module is now configured through its interface. This configuration will be required to be implemented programmatically in the C++ code of BrainlabModule.
- Implementation of Load Step and Navigate Step will be executed next week.
- Work DONE:
- Week of 03/29/2010
- Ron, Noby and Haiying met at Ron's office to discuss the specs of the module and time frame for implementation.
- Haiying completed the workflow.
Dependency
The following modules are required for Brainlab module to work properly:
Fiducial
OpenIGTLink
DTMRI
FiducialSeeding