Date post: | 15-Jan-2016 |
Category: |
Documents |
Upload: | cuthbert-oneal |
View: | 222 times |
Download: | 0 times |
IGSTKThe Image-Guided
Surgery Toolkit
Kitware, Inc
Overview
History Infrastructure Components Quality Control Software Process Applications
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
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
Layer Architecture
ITK VTK
OpenGLVNL GDCM Threads, XML,…
IGSTK
GUI: FLTK / Qt / MFC
IGS - APPLICATION
Main Categories of Components
Infrastructure
Trackers Viewers
Geometry &Representation
Images & Readers
Infrastructure
State Machine Time Stamp Pulse Generator Events Transforms Logger
Trackers
Tracker (base class)– PolarisTracker– AuroraTracker– Flock Of Birds
Support– SerialCommunication
SerialCommunicationForWindows SerialCommunicationForPosix
– NDICommandInterpreter
Object Representation SpatialObject– Ellipsoid– Cylinder– Images– Mesh– Tube– TubeGroup– Group– Box– Cone
SpatialObjectRepresentation– Ellipsoid– Cylinder– Images– Mesh– Tube– Box– Cone– VascularNetwork– AirwaysNetwork– Surgical Tools
Viewers
View– View2D– View3D
VTK Based GUI / VTK hybrid class
Images and Readers Image– CTImage– MRImage– FluoroscopicImage
Readers (DICOM)– CTImageReader– MRImageReader– Fluoroscopy (video input)
Dynamics Architecture
GUI
General Interactions
View1
View2
View3
View4
ObjectRepresentation Spatial
Object
Tracker
TrackerTool 1
TrackerTool 2
TrackerTool 3
ObjectRepresentation
ObjectRepresentation
Tracking Interactions
ObjectRepresentation
SpatialObject
Tracker
TrackerTool 3
ObjectRepresentation
Tick
TransformEvent
T
T =
T
T
T
Event Class
ITK Event
TransformEvent
TimeStampEvent
StringEvent
IGSTK Event
Event Class
Transform
Transform Class
Vector
Versor
TimeStamp
Error
Transform Class
Transform Event Class
Pulse Generator
Action
Action
How not to miss pulses ?
GUI
Timing Control
View1
View2
View3
View4
ObjectRepresentation Spatial
Object
Tracker
TrackerTool 1
TrackerTool 2
TrackerTool 3
ObjectRepresentation
ObjectRepresentation
Tick
Tick
Quality Control
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
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 )
Dynamic Testing Platforms
Valgrind on Linux– gcc 3.3– gcc 3.4
Valgrind on Cygwin Purify (too expensive)
Software Process
Software Process
Sandbox Extreme programming Release early, release often Code reviews Requirements Bug tracking
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
Applications
Applications
Ultrasound-guided percutaneous liver lesion RFA
Needle Biopsy Guidewire Tracking
Ultrasound-Guided Liver RFA
GuideWire Tracking
Needle Biopsy
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
Enjoy IGSTK!