35
IGSTK The Image- Guided Surgery Toolkit Kitware, Inc

ITK Tutorial Presentation Slides-949

Embed Size (px)

DESCRIPTION

http://hdl.handle.net/1926/161

Citation preview

Page 1: ITK Tutorial Presentation Slides-949

IGSTKThe Image-Guided Surgery Toolkit

Kitware, Inc

Page 2: ITK Tutorial Presentation Slides-949

Overview

History Infrastructure Components Quality Control Software Process Applications

Page 3: ITK Tutorial Presentation Slides-949

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: ITK Tutorial Presentation Slides-949

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: ITK Tutorial Presentation Slides-949

Layer Architecture

ITK VTK

OpenGLVNL GDCM Threads, XML,…

IGSTK

GUI: FLTK / Qt / MFC

IGS - APPLICATION

Page 6: ITK Tutorial Presentation Slides-949

Main Categories of Components

Infrastructure

Trackers Viewers

Geometry &Representation

Images & Readers

Page 7: ITK Tutorial Presentation Slides-949

Infrastructure

State Machine Time Stamp Pulse Generator Events Transforms Logger

Page 8: ITK Tutorial Presentation Slides-949

Trackers

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

Support– SerialCommunication

SerialCommunicationForWindows SerialCommunicationForPosix

– NDICommandInterpreter

Page 9: ITK Tutorial Presentation Slides-949

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: ITK Tutorial Presentation Slides-949

Viewers

View– View2D– View3D

VTK Based GUI / VTK hybrid class

Page 11: ITK Tutorial Presentation Slides-949

Images and Readers Image

– CTImage– MRImage– FluoroscopicImage

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

Page 12: ITK Tutorial Presentation Slides-949

Dynamics Architecture

Page 13: ITK Tutorial Presentation Slides-949

GUI

General Interactions

View1

View2

View3

View4

ObjectRepresentation Spatial

Object

Tracker

TrackerTool 1

TrackerTool 2

TrackerTool 3

ObjectRepresentation

ObjectRepresentation

Page 14: ITK Tutorial Presentation Slides-949

Tracking Interactions

ObjectRepresentation

SpatialObject

Tracker

TrackerTool 3

ObjectRepresentation

Tick

TransformEvent

T

T =

T

T

T

Page 15: ITK Tutorial Presentation Slides-949

Event Class

ITK Event

TransformEvent

TimeStampEvent

StringEvent

IGSTK Event

Page 16: ITK Tutorial Presentation Slides-949

Event Class

Page 17: ITK Tutorial Presentation Slides-949

Transform

Transform Class

Vector

Versor

TimeStamp

Error

Page 18: ITK Tutorial Presentation Slides-949

Transform Class

Page 19: ITK Tutorial Presentation Slides-949

Transform Event Class

Page 20: ITK Tutorial Presentation Slides-949

Pulse Generator

Action

Action

How not to miss pulses ?

Page 21: ITK Tutorial Presentation Slides-949

GUI

Timing Control

View1

View2

View3

View4

ObjectRepresentation Spatial

Object

Tracker

TrackerTool 1

TrackerTool 2

TrackerTool 3

ObjectRepresentation

ObjectRepresentation

Tick

Tick

Page 22: ITK Tutorial Presentation Slides-949

Quality Control

Page 23: ITK Tutorial Presentation Slides-949

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: ITK Tutorial Presentation Slides-949

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: ITK Tutorial Presentation Slides-949

Dynamic Testing Platforms

Valgrind on Linux– gcc 3.3– gcc 3.4

Valgrind on Cygwin Purify (too expensive)

Page 26: ITK Tutorial Presentation Slides-949

Software Process

Page 27: ITK Tutorial Presentation Slides-949

Software Process

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

Page 28: ITK Tutorial Presentation Slides-949

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: ITK Tutorial Presentation Slides-949

Applications

Page 30: ITK Tutorial Presentation Slides-949

Applications

Ultrasound-guided percutaneous liver lesion RFA

Needle Biopsy Guidewire Tracking

Page 31: ITK Tutorial Presentation Slides-949

Ultrasound-Guided Liver RFA

Page 32: ITK Tutorial Presentation Slides-949

GuideWire Tracking

Page 33: ITK Tutorial Presentation Slides-949

Needle Biopsy

Page 34: ITK Tutorial Presentation Slides-949

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: ITK Tutorial Presentation Slides-949

Enjoy IGSTK!