IGSTK The Image-Guided Surgery Toolkit Kitware, Inc.

35
IGSTK The Image- Guided Surgery Toolkit Kitware, Inc

Transcript of IGSTK The Image-Guided Surgery Toolkit Kitware, Inc.

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!