Difference between revisions of "Slicer3:BrainlabModule"

From Slicer Wiki
Jump to: navigation, search
Line 17: Line 17:
 
Both modes are accompanied by training materials and documentation to ensure usability.
 
Both modes are accompanied by training materials and documentation to ensure usability.
  
= Comprehensive tasks needed to accomplish the aim =
+
= Comprehensive Tasks Needed to Accomplish the Aim =
 
==TO BE FILLED G NOBY==
 
==TO BE FILLED G NOBY==
  

Revision as of 17:08, 3 May 2010

Home < Slicer3:BrainlabModule

Back to Slicer Projects Page

Aim

Brainlab (http://www.brainlab.com) offers a customized client/server architecture called VectorVision Link (VV Link) to enable the communication between the VectorVision Cranial (VVC) system and external IGT applications. The VV Link, open but not free, allows bi-directional real-time data transfer such as image data sets and tool positions. 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 run as a standalone application; 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:

  1. Load a scene into Slicer
  2. Set up connection between Brainlab and Slicer
  3. Navigate with DTI visualization in Slicer as the surgeon performs tracking 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 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.

Comprehensive Tasks Needed to Accomplish the Aim

TO BE FILLED G NOBY

Design of Module

Key Personnel

Haiying Liu
Noby Hata
Ron Kikinis

Progress

  • Week of 04/26/2010
    • Work DONE:
      • A new dataset for tracking simulation has been generated.
      • Access to OpenIGTLink module is now through C++ code rather on interface.
      • Re-design of Connect step. Major changes: 1. Moved Port and Server entries under Brainlab option; 2. Removed OpenIGTLinkIF button since it's no more needed.
      • Re-implementation of Navigate step. Major changes: 1. Added Slice Control so that 2D Slice(s) can update automatically following the seeding fiducial; 2. Added Data Module button so that the user can jump to MRML tree to drag the seeding fiducial under the transform node of the tracking simulation.
    • To do list:
      • Demo the module at the IGT group (Noby's group) meeting to get comments from the team.
      • Enhance the module following the team's comments.
  • 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 many changes in the module, including 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.
      • Bug fixing with the thread, which handles the network communication between BrainlabModule and the tracking source. Now the thread can be started and stopped anytime we wanted.
      • The steps inside the workflow of BrainlabModule may be re-ordered as follows: Load, Connect and Navigate.
      • The workflow is now working with simulator.
    • To do list:
      • Access to OpenIGTLink module needs to be programmatically through C++ code.
      • Dragging a fiducial list node into the child list of a transform node needs to be implemented in C++.
      • A better version of data for tracking simulation needs to be generated to get better visualization of DTI tractography.
  • 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.
  • 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

Tutorials

Feature Request