Examples and Demonstrations



Image-guided therapies (IGT) are medical procedures that use computer-based systems that provide navigation facilities and supplemental procedure information to help the physician precisely visualize and target the surgical site. The SlicerIGT extension provides a platform for rapid development of IGT applications. This extension provides a number of modules that can be used directly for performing IGT tasks. These modules can also be re-used (through code) for the development of a new IGT module. This page will take you through:
1. How to write configuration files (xml format) to connect to the PlusServer for broadcasting ultrasound images and tracking data to slicer.
2. Two demos that show how to use two of the existing SlicerIGT modules (i.e. Pivot and ultrasound probe calibrations). These modules require either real-time tracking data and/or ultrasound streaming, which are acquired through the PlusSever. A link to the source code on GitHub is also provided.
3. How to display a model of a tracked calibrated needle in slicer.

Note: This section will review a method for performing the pivot and ultrasound probe calibrations using two independent slicer modules. Other methods to perform these tasks include the Plus library, or an independent method used by yourself or your lab.

3D SlicerIGT extension installation
Note: The OpenIGTLinkIF module is available within the IGT extension. The SlicerOpenIGTLink is also available as a stand alone extension in Slicer 4.9 and later, and can be installed separately from the SlicerIGT extension.

Figure 1: Steps for installing the SlicerIGT extension.



For more information on the PlusServer, see IGT module development.
  • Download the correct PlusServer for your equipment here!
What is a configuration file?
  • In the context of the PlusServer a configuration file contains all of the specific details needed to connect to attached hardware and broadcast the data. These details are specified in XML format.
  • This file will provide the PlusServer with all the required information to connect tracking data and ultrasound streams with 3D Slicer.
  • The contents of this file will differ based on the application and equipment being used.
    • Note: PlusServer can connect to multiple tracking devices and a single image source such as an ultrasound scanner per OpenIGTLink connection.
Configuration file details
  • Note: each of these categories can have multiple entries. For more information click here!
  • Devices:
    1. Specify the devices being connected to (such as the image source or tracking device). This requires the names of data sources and the output channels to be specified.
    2. Optional: Specify the recording options, which allow you to save the data being streamed (streaming ultrasound or tracking data).
  • CoordinateDefinitions:
    1. Specify the known transformation matrices. For example: pre-calculated ultrasound probe calibration or stylus pivot calibration matrices.
    2. Include identity matrices for any transformation that will be replaced.
  • PlusOpenIGTLinkServer:
    1. Specify the client parameters and information, this includes the listening port for OpenIGTLinkIF (18944).
    2. Specify the names of transformations and the image that will be broadcasted over the network, i.e. received by 3D Slicer.
Configuration file for "US Calibration module" using an Ultrasonix ultrasound system and an NDI Aurora tracker
The following provides a description of the configuration file (i.e. in xml format) required for performing ultrasound probe calibration using the "US calibration module" in 3D Slicer.
  • To perform a probe calibration in 3D Slicer, the PlusServer is used to stream ultrasound and tracking data to 3D Slicer. This requires a specific xml file that follows the same format as above.
  • Be sure to pay attention to the following components:
  • Devices:
    1. The "SerialPort" that your tracking device is connected to.
    2. The "PortName" numbers must be the same as the ports that your tools are plugged into on the tracker system control unit.
    3. The "IP" address of the ultrasound system you are using.
    4. The "PortUsImageOrientation" which controls the ultrasound image orientation in 3D Slicer. All the possible orientations are listed here!
    5. The "DepthMm" must be set to the ultrasound image depth that you are calibrating for, which will depend on your application.
  • CoordinateDefinitions:
    1. Because the ultrasound probe calibration matrix is not known before performing the calibration this matrix must be sent to identity. This may look like: < Transform From="Image" To="Probe"
      Matrix="1 0 0 0
      0 1 0 0
      0 0 1 0
      0 0 0 1"
      Date="2018.07.08 13:54:00"/>
    2. If the tool being used doesn't require calibration (such as a tracked NDI needle), this transformation matrix will also be the identity matrix. If the tool being used requires calibration, this matrix must be replaced with the needle tip-to-sensor calibration matrix (such as the transformation matrix produced by a pivot calibration).
How to write your own configuration file
  • A skeleton xml is available here!


Demo 1: Pivot calibration for tracked tools (eg. stylus or needle) using SlicerIGT "Pivot Calibration" module

  • Find the transformation between the tool tip and the coordinates of the tracking sensor attached to it.
  • This provides the location of the tool tip within the tracker coordinate system and allows integration of the tool in a VR/AR environment. Note that this process is only required if the tracked tool is NOT pre-calibrated.
Required equipment
  • Surgical tool with a tracking sensor attached or built in.
    • Eg. Magnetically tracked needle, stylus outfitted with an optical tracker etc.
  • Tracking system (optical or magnetic).
    • Eg. NDI Aurora magnetic tracking system and Polaris optical tracking system.

Where to find the module
Find the source code for the module here!
Figure 2: Accessing the pivot calibration module within the IGT extension.

How to use the module


Demo 2: SlicerIGT "US calibration" module

  • Find the transformation between the ultrasound image and the coordinates of the tracking sensor attached to the ultrasound probe.
  • This enables placing the ultrasound image within the tracker coordinate system and integrating the image in a VR/AR environment.
Required equipment
  • A pre-calibrated surgical tool with a tracking sensor attached or built in
    • Eg. Magnetically tracked needle, stylus outfitted with a optical tracker etc.
  • Tracking system (optical or magnetic)
    • Eg. NDI Aurora magnetic tracking system and Polaris optical tracking system
  • Ultrasound system
    • Eg. SonixTouch by BK Medical
Required software and files
  • PlusServer launcher
  • Xml file
Where to find the module
Find the source code on GitHub here!

How to use the module