35
IGSTK The Image- Guided Surgery Toolkit Kitware, Inc

IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Embed Size (px)

Citation preview

Page 1: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

IGSTKThe Image-Guided

Surgery Toolkit

Kitware, Inc

Page 2: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Overview

History Infrastructure Components Quality Control Software Process Applications

Page 3: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

The Toolkit in a Nutshell

Open Source Toolkit BSD-like License Written in C++ Cross Platform Based on ITK and VTK GUI based on FLTK Designed for a Critical Application

Page 4: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

History STTR Funded by NIBIB/NIH (Georgetown-

Kitware) Phase I from May to Sept 2003. Used in

example applications. Phase II started on October 2004 CADDLab UNC Joined the project and

contributed Spatial Objects & RF ablation Application.

Atamai joined on 2005 and contributed Tracker code.

Releases done about every 6 months

Page 5: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Layer Architecture

ITK VTK

OpenGLVNL GDCM Threads, XML,…

IGSTK

GUI: FLTK / Qt / MFC

IGS - APPLICATION

Page 6: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Main Categories of Components

Infrastructure

Trackers Viewers

Geometry &Representation

Images & Readers

Page 7: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Infrastructure

State Machine Time Stamp Pulse Generator Events Transforms Logger

Page 8: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Trackers

Tracker (base class)– PolarisTracker– AuroraTracker– Flock Of Birds

Support– SerialCommunication

SerialCommunicationForWindows SerialCommunicationForPosix

– NDICommandInterpreter

Page 9: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Object Representation SpatialObject– Ellipsoid– Cylinder– Images– Mesh– Tube– TubeGroup– Group– Box– Cone

SpatialObjectRepresentation– Ellipsoid– Cylinder– Images– Mesh– Tube– Box– Cone– VascularNetwork– AirwaysNetwork– Surgical Tools

Page 10: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Viewers

View– View2D– View3D

VTK Based GUI / VTK hybrid class

Page 11: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Images and Readers Image– CTImage– MRImage– FluoroscopicImage

Readers (DICOM)– CTImageReader– MRImageReader– Fluoroscopy (video input)

Page 12: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Dynamics Architecture

Page 13: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

GUI

General Interactions

View1

View2

View3

View4

ObjectRepresentation Spatial

Object

Tracker

TrackerTool 1

TrackerTool 2

TrackerTool 3

ObjectRepresentation

ObjectRepresentation

Page 14: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Tracking Interactions

ObjectRepresentation

SpatialObject

Tracker

TrackerTool 3

ObjectRepresentation

Tick

TransformEvent

T

T =

T

T

T

Page 15: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Event Class

ITK Event

TransformEvent

TimeStampEvent

StringEvent

IGSTK Event

Page 16: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Event Class

Page 17: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Transform

Transform Class

Vector

Versor

TimeStamp

Error

Page 18: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Transform Class

Page 19: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Transform Event Class

Page 20: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Pulse Generator

Action

Action

How not to miss pulses ?

Page 21: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

GUI

Timing Control

View1

View2

View3

View4

ObjectRepresentation Spatial

Object

Tracker

TrackerTool 1

TrackerTool 2

TrackerTool 3

ObjectRepresentation

ObjectRepresentation

Tick

Tick

Page 22: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Quality Control

Page 23: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Testing Platforms Windows– Visual Studio 6.0 / 7.1 / 8.0

Linux– gcc 3.2 / 3.3 / 3.4 / 4.0– icc 7.1 / 8.0

Cygwin – Windows– gcc 3.4– gcc 3.3

Page 24: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Testing

Goal – 100 % Code Coverage– 100 % State Machine Transitions Testing

Current Code Coverage– IGSTK 93.6 % ( untested 321 / 4714 lines )– Sandbox 92.4 % ( untested 4 / 49 lines )

Page 25: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Dynamic Testing Platforms

Valgrind on Linux– gcc 3.3– gcc 3.4

Valgrind on Cygwin Purify (too expensive)

Page 26: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Software Process

Page 27: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Software Process

Sandbox Extreme programming Release early, release often Code reviews Requirements Bug tracking

Page 28: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Typical Agenda for a release Create feature list Write requirements Develop code Tag Sandbox, create code review list Code Review Move code and tag Fix Documentation Fix remaining bugs Increase code coverage Create and release package

Page 29: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Applications

Page 30: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Applications

Ultrasound-guided percutaneous liver lesion RFA

Needle Biopsy Guidewire Tracking

Page 31: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Ultrasound-Guided Liver RFA

Page 32: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

GuideWire Tracking

Page 33: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Needle Biopsy

Page 34: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Download IGSTK and Try it!

http://www.igstk.org Last stable release “Iteration 7” Demo: Sunday Feb 12 from 8:30 to 10:30 pm

Page 35: IGSTK The Image-Guided Surgery Toolkit Kitware, Inc

Enjoy IGSTK!