2016 Summer Project Week/Slicelet For Ultrasound Acquisition

From NAMIC Wiki
Jump to: navigation, search
Home < 2016 Summer Project Week < Slicelet For Ultrasound Acquisition

Key Investigators

  • Sarah Frisken
  • Prashin Unadkat
  • Steve Pieper


Brainlab’s surgical navigation system provides a research interface called "IGTLink" which allows 3D Slicer to acquire images and tracking data via the network. The steps required to do this are documented in http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.3/Modules/OpenIGTLinkRemote/BrainlabTutorial. However, the steps are overly complex for non-programmers. Our goal is to define the functionality requirements, design an intuitive user interface, and prototype a Slicelet that simplifies the process, thereby enabling routine ultrasound data collection in the OR by a resident or medical intern without the need of dedicated technical support.

Project Description


  • Prototype a Slicelet that simplifies and streamlines the steps required to acquire ultrasound data into 3D Slicer via BrainLab’s IGTLink

Approach, Plan

  • Before Project Week:
    • Setup 3D Slicer development
    • Study existing Slicelets as examples (e.g., )
  • During Project Week:
    • Define functionality requirements, discuss Module vs. Slicelet
    • Design user interface, discuss use of CLI (Python GUI?) vs. loadable (QT?)
    • Consider using an existing Slicelet as a framework or build from scratch
    • Prototype functionality and user interface into the framework


  • Set up Slicer development -- many thanks to Adam Rankin!
  • Defined functionality requirements
    • Set up US connection via OpenIGTLink
    • Calibrate ultrasound registration
    • Collect 2D ultrasound sequences
    • Reconstruct 3D ultrasound
    • Preview 3D ultrasound
    • Save 2D and 3D data
  • Requirements for User Interface
    • Easy to use by non-technical user
    • Sequential instructions
    • Uncluttered UI
    • Single view for real-time and preview modes
    • Simple, complete instructions on failure (e.g., connection fails)
  • Created a simple prototype
    • Used SlicerIGT Example Guidelet -- many thanks to Tamas Ungi!
    • Still much to do, but basic framework is in place