IGSTK 18mo Review - PowerPoint PPT Presentation

Loading...

PPT – IGSTK 18mo Review PowerPoint presentation | free to download - id: 1d0344-N2I5Y



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

IGSTK 18mo Review

Description:

Discuss issues that may come up. Review plan to finish current contract by August 2006 ... Accepts registration transforms (fiducial registration) ... – PowerPoint PPT presentation

Number of Views:204
Avg rating:3.0/5.0
Slides: 82
Provided by: Patr662
Learn more at: http://public.kitware.com
Category:
Tags: 18mo | igstk | fiducial | review

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: IGSTK 18mo Review


1
IGSTK 18mo Review
  • Kevin Cleary
  • Georgetown University

2
Introduction
  • Purpose
  • Review status of the project
  • Discuss issues that may come up
  • Review plan to finish current contract by August
    2006
  • Discuss plans for future
  • Historical review
  • Phase I STTR to Kitware awarded several years
    back
  • First version of the toolkit was developed
  • Phase II STTR period of performance Sept 2004 to
    August 2006
  • Started from scratch
  • Adopted state machine model
  • Initial public release at SPIE Medical Imaging
    2006

3
Schedule Current Status
  • Project management David
  • Development process Luis
  • Requirements David
  • Iteration 8, Iteration 9, and Book Patrick
  • Architecture Luis
  • Components
  • State Machine, Events, and Logging Luis
  • Tracker David
  • Spatial Objects Julien
  • View, Image IO, and Registration Andinet
  • Calibration James
  • Bug tracking Andinet
  • User list Patrick

4
Schedule Future
  • Collaborators / Clinical Sites
  • Trondheim Norway IR project with Aurora
  • ISIS Center em tracking for lung biopsy
  • Atamai and Yves Starrveld
  • Funding
  • One proposal submitted
  • Review of validation activities Kevin Gary
  • Review of application builder Stephen Aylward
  • Need to look for other opportunities
  • Outreach
  • SPIE ½ day course (ITK in morning, IGSTK in
    afternoon)
  • Open source workshop at MICCAI what to submit
  • Schedule
  • Contract ends in August
  • Finish book and iteration 9
  • Scale back activities monthly tcons?
  • Continue to pursue funding and support user
    community

5
IGSTK 18mo Review
  • IGSTK Project Management
  • David Gobbi, Atamai Inc.

6
Management After August
  • What are the long-term goals?
  • Evangelization, maintenance, and expansion of
    IGSTK
  • Heres what we need to do
  • Be Responsive
  • We should rotate responsibility of responding to
    all user queries
  • Maintain Our Inertia
  • Quarterly or semi-annual maintenance releases
    announcements
  • Look To The Future
  • Regular (monthly?) meetings to discuss where we
    are, what we want to add to IGSTK in the future,
    and how were going to get the funding

7
Current Management
  • Very successful so far
  • Regular t-cons are great for keeping things
    moving
  • Rotation of management keeps things fresh (whos
    next?)
  • Some improvements
  • Some technical topics require more study
    consideration than is possible in a t-con,
    therefore it is hard to reach consensus during
    t-con
  • More technical discussion on mailing list (just
    my opinion?)
  • Management topics
  • Development process
  • Requirement process
  • Iteration 9
  • Book

8
IGSTK 18mo Review
  • Software Development Process
  • Luiz Ibanez Kitware Inc.

9
From Design to Implementation
Surgical Procedure
Wiki Page Requirements
Code Reviews
Workflow Analysis
Wiki Page Design
CVS Commit
Factorizing Components
Sandbox Version
Maintenance
10
Software Life Cycle
Developers Discussions Tcon, IM, Mailing List,
Wiki
Wiki Proposals
Code Reviews
CVS Main
CVS Sandbox
Bug Reports
11
IGSTK 18mo Review
  • Requirements Process
  • David Gobbi, Atamai Inc.

12
Overview
  • What is our current requirements process?
  • Do we need to change it?
  • What should the process be during maintenance
    mode?

13
Current Process

14
Changes Needed?
  • UML diagram only needs one change (change
    position of check-in to main repository so that
    it is after implementation)
  • WIKI already gives a good description of how we
    should do things
  • http//public.kitware.com/IGSTKWIKI/index.php/Draf
    t_Process
  • No process changes needed, but it would help if
  • Design discussions section of wiki should refer
    to the REQs that are being addressed by each
    design
  • Hard to see the whole picture the
    auto-generated REQ document needs better
    formatting to improve readability
  • Design guidelines should be better documented
  • Iteration-independent REQs should be listed
    somewhere

15
Maintenance Mode
  • How will REQs be handled after August?
  • Keep track of proposals (add wish list to wiki
    that anyone can edit)
  • Extend sandbox access to anyone who is interested
  • Group can review proposed REQs on a quarterly (or
    monthly?) basis
  • Good REQs can be earmarked for future acceptance
    development
  • Really good REQs with good sandbox code to back
    them up can be code-reviewed and moved to main
    repository
  • All of this fits our current REQ process, no
    changes are required.

16
IGSTK 18mo Review
  • Iteration 8
  • Patrick Cheng Georgetown, ISIS Center

17
Image Guided Needle Biopsy
18
Ultrasound-Guided Liver RFA
19
Iteration 8 - summary
  • Started the IGSTK The Book
  • Introduced and demonstrated IGSTK on SPIE06
  • US Guided RFA Application Julien
  • Cross Build System
  • A convenient way for feature extension, but also
    makes the merge a challenging task
  • Expansions from previous iteration
  • Oblique View Andinet
  • Flock of Birds tracker Julien
  • Ultra Sound Calibration Julien
  • Others

20
IGSTK 18mo Review
  • Iteration 9
  • Patrick Cheng Georgetown, ISIS Center

21
Iteration 9 Deck of Card Robot (Introduction)
  • Place robot needle holder close to the operation
    region. (Needle holder is built with embedded
    spiral pattern fiducials)
  • Take a CT scan
  • Load CT images into application and automatically
    register CT image with robot space
  • Plan path in CT image viewer
  • Send command to robot to align the needle with
    the planned path

22
Build 9 Deck of Card Robot (GUI)
23
Build 9 Deck of Card Robot (Summary)
  • Current Status
  • Finish prove of concept application
  • Demo the system on SMIT (May 2006)
  • Future Development
  • Validation study to evaluate the accuracy of the
    whole system
  • Issues
  • Coding style
  • Code completeness and robustness
  • Adding volume rendering support to IGSTK?
  • 3DTextureMapping is not supported by all graphic
    card
  • Other Extensions (feature and component level)?

24
IGSTK 18mo Review
  • IGSTK The Book
  • Patrick Cheng Georgetown ISIS Center

25
IGSTK - The Book
  • Current Status
  • http//isiswiki.georgetown.edu/DataServer/Data/Pub
    lic/IGSTKTheBook.pdf
  • 145 pages in total
  • Most components chapter in place, need focus on
    user guide part
  • Make it a concise and useful guide
  • Questions about the current book build process
    and latex?
  • Add index and reference while editing
  • How to move forward
  • Establish regular review process for book
    chapters?
  • Goal
  • Finish the first version before July 1st, so we
    can have editor review

26
IGSTK 18mo Review
  • Architecture
  • Luis Ibanez Kitware Inc.

27
General Interactions
Tracker
GUI
Tick
Tick
View1
TrackerTool 1
TrackerTool 2
View2
TrackerTool 3
Object Representation
View3
Spatial Object
View4
Object Representation
28
Event Passing
Reader
Representation
AddObserver( transducer )
RequestGetImage()
GetImageProcessing()
InvokeEvent( image ) / Execute()
GetImage()from event
ReportError()
InvokeEvent( error ) / Execute()
29
Timing Pulse Generation
CheckTimeOuts()
PulseGenerator
CallbackTimer()
Callback
InvokeEvent( pulse )
  • TimeOut- time- callback
  • - arguments
  • TimeOut- time- callback
  • - arguments
  • TimeOut- time- callback
  • - arguments
  • TimeOut- time- callback
  • - arguments

30
IGSTK 18mo Review
  • Component State Machine
  • Luis Ibanez Kitware Inc.

31
State Machine
State Machine
State 1 State 2 State 3 . State N
Action 1 Action 2 Action 3 . Action K
State K
(State 1,Input 1)-gt(State 7, Action 4) (State
1,Input 2)-gt(State 3, Action 2) (State 1,Input
3)-gt(State 5, Action 6) (State 2,Input 1)-gt(State
4, Action 9) (State 3,Input 4)-gt(State 9, Action
2)
Input 1 Input 2 Input 3 . Input M
32
Usage in a Component

IGSTK Component
State Machineltgt
public
RequestActionFoo()
private
ActionFooProcessing()
DeclareInputMacro()
AddInputMacro()
DeclareStateMacro()
AddStateMacro()
AddTransitionMacro()
33
Execution Sequence
RequestActionFoo()
ProcessInput()
PushInput(Input3)
Input Queue
State Machineltgt
Input 3
State A
State B
ActionFooProcessing()
34
IGSTK 18mo Review
  • Component Events
  • Luis Ibanez Kitware Inc.

35
Observer Pattern
ItkObject
36
Class Hierarchy
Execute()
37
Events Hierarchy and Macros
IGSTKEvent
PointEvent
PulseEvent
TransformModifiedEvent
RefreshEvent
StringEvent
CompletedEvent
UnsignedIntEvent
InputOutputErrorEvent
VTKImageModifiedEvent
  • igstkEventMacro()
  • igstkLoadedEventMacro()
  • igstkLoadedObjectEventMacro()
  • igstkLoadedTemplatedObjectEventMacro()
  • igstkLoadedTemplatedConstObjectEventMacro()

38
IGSTK 18mo Review
  • Component Logging
  • Luis Ibanez Kitware Inc.

39
Logger Class Hierarchy
itkLogOutput
  • DisplayText()
  • DisplayErrorText()
  • DisplayWarningText()
  • DisplayDebugText()

1

itkLoggerBase
itkMultipleLogOutput
AddLogOutput()
itkLogger
itkStdStreamLogOutput
igstkFLTKTextBufferLogOutput
igstkVTKLoggerOutput
40
Usage in a Component

IGSTK Component
igstkLoggerMacro() LoggerType GetLogger() SetLo
gger()
igstkLogMacro( logger, message )
igstkLogMacroStatic( object, logger, message )
41
Usage in a Component
Has one
igstkObject
itkLogger
igstkComponent
SetLogger()
Has one
igstkStateMachine
42
IGSTK 18mo Review
  • The IGSTK Tracker
  • David Gobbi, Atamai Inc.

43
igstkTracker Overview
  • Purpose
  • Talks to tracking devices
  • Accepts calibration transforms (tool calibration)
  • Accepts registration transforms (fiducial
    registration)
  • Reports calibrated tool positions in image
    coordinate system
  • Sends position/orientation of tools to
    SpatialObjects
  • Devices
  • Aurora
  • Polaris (including Vicra)
  • Flock of Birds

44
Tracker Classes
  • Tracker
  • Provides generic application interface for
    tracking devices
  • Sets transforms and other info for tracker tools
  • TrackerTool
  • Maintains state of tool (including current
    transform)
  • Sends TransformModifiedEvents to SpatialObjects
  • NDICommandInterpreter, FlockOfBirdsCommandInterpre
    ter
  • These provide low-level device-specific C
    interfaces to devices
  • Each C method equates to a command sent to the
    device
  • Define all constants used in communication with
    the device
  • SerialCommunication
  • Acts as communication proxy between IGSTK and the
    tracking device

45
Tracker Multithreading
Tracking Thread InternalThreadedUpdateStatus()
Continually polls tracking device for new tool
positions, stores them in a mutex-locked
Transform buffer
Application Thread UpdateStatus()
Get the most recent tool positions from the
mutex-locked Transform buffer, push them to the
spatial objects
  • Advantages of using a tracking thread
  • tracker thread polls device for new transforms
    and waits for replies
  • therefore the application thread never has to
    wait, if it needs a transform it
  • just pulls the most recent transform from the
    buffer
  • applications compute, render, I/O processing
    does not block tracking thread
  • tracking thread can run with high priority and
    do instrument safety checks

46
Status of igstkTracker
  • It is working well, but it is not yet complete!
  • Pending Style and Design requirements
  • Change interface method style from Set/Get to
    Request
  • Improve error handling
  • Finish state machine for TrackerTool
  • Communication should use binary strings, not C
    char arrays
  • Pending functional requirements
  • Generate events for foot pedals and
    buttons/switches on tools
  • Generate events when tools becomes
    available/unavailable for tracking

47
IGSTK 18mo Review
  • Spatial Objects
  • Julien Jomier Kitware Inc.

48
Outline
  • Current Design
  • SpatialObject Representations
  • SpatialObject Readers
  • Renaming SpatialObjects
  • Whats next?

49
Current Design
  • SpatialObject

Axes
Box
Cone
Cylinder
Ellipsoid
Group
Image
Mesh
Tube
UltrasoundProbe
TubeGroup
VascularNetwork
MRImage
USImage
CTImage
50
Object Representations
  • Current Classes
  • - Axes - Ellipsoid
  • - Box - Mesh
  • - Cone - MRImage
  • - CTImage - Tube
  • - Cylinder - UltrasoundProbe
  • New Classes
  • - USImage - ObliqueImage
  • - VascularNetwork - ObliqueContourMesh
  • - ContourMesh
  • - ContourVascularNetwork

51
SpatialObject Readers
  • ImageReader (only DICOM)
  • - CTImageReader
  • - MRImageReader
  • - USImageReader (new)
  • SpatialObjectReader
  • - TubeReader
  • - MeshReader
  • - VascularNetworkReader (new)
  • Readers return now the object via events.

52
Renaming SO
  • Why?
  • - Names are a mix of SpatialObject and Object
  • - igstkSpatialObject can be confused with
    itkSpatialObject (only the namespace makes the
    difference)
  • New Names
  • - igstkObject -gt igstkGeometricModel
  • - igstkObjectRepresentation -gt igstkAppearance

53
Whats Next?
  • Introducing igstkPlane
  • Use igstkPlane for camera manipulation
  • Modify ObliqueRepresentations to use
    igstkPlane.The oblique plane is moving in 3D and
    the camera position is moving along.

54
IGSTK 18mo Review
  • View
  • Andinet Enquobahrie Kitware Inc.

55
Overview
  • Objective present renderings of surgical scenes
    to the clinician.
  • Main design requirements
  • 2D and 3D capability
  • Limited interaction capability
  • Governed by a state machine
  • Check the validity of scene information at
    regular intervals

56
Implementation
  • VTK classes encapsulated in a restrictive API
  • Use Pulse generator for synchronization
  • Use real time clock to check the validity of the
    scene at regular intervals
  • Integration with FLTK for GUI purposes

57
IGSTK 18mo Review
  • ImageIO
  • Andinet Enquobahrie Kitware Inc.

58
Overview
  • Objective Read in medical images and capture
    screen shots of rendered scene
  • Major design requirements
  • Only handle DICOM images
  • Class functionalities should be governed by state
    machines
  • Capture, log and handle I/O errors
  • Have a capability to capture screenshots

59
Implementation
  • GDCM library is used to read DICOM images (using
    ITK I/O filters)
  • I/O errors are handled using payload events
  • VTK filter is used to capture screen shots
  • CT data with gantry tilt is detected and flagged
  • DICOM images with patient coordinate system not
    parallel to the image modality coordinate system
    is also handled

60
IGSTK 18mo Review
  • Landmark Registration
  • Andinet Enquobahrie Kitware Inc.

61
Landmark Registration
  • Objective compute the transformation matrix
    between the patient coordinate system and the
    image coordinate system
  • Implementation
  • Rigid body point based landmark registration
    technique
  • Internally uses ITK Landmark Registration class
    (closed form solution)

62
Landmark Registration Error Prediction
  • Objective predict the accuracy of target
    registration
  • Implementation
  • Closed form error prediction ( West et al )
  • Error prediction depends on landmark
    configuration, landmark registration error and
    the location of the target point

63
IGSTK 18mo Review
  • Calibration
  • James Zhang - Georgetown, ISIS Center

64
Overview
  • Objective provide calibration functions for
    tracker-related tools, and reader for calibration
    files
  • Component status
  • igstkToolCalibration, igstkPivotCalibration,
    igstkPrincipalAxisCalibration
  • igstkToolCalibrationReader, igstkPivotCalibrationR
    eader

65
Tool Calibration
  • Objective
  • igstkPivotCalibration compute translation
    transform from pivoting the cylinder-like tools
  • igstkPrincipalAxisCalibration compute rotation
    transform from setting initial/desired
    orientations
  • Implementation
  • All from base class igstkToolCalibration
  • Internally uses VNL functions from ITK, and
    closed-form solution for pivot computation
  • Internally uses ITK Versor/Rotation Matrix
    transform for principal axis computation

66
Tool Calibration Reader
  • Objective
  • Provide convenient I/O functions to read
    pre-computed calibration file, which is defined
    in XML format
  • Implementation
  • All from base class igstkToolCalibrationReader
  • Calibration file format defined in XML
  • CRC error checking
  • Internally uses ITK XML parser to read the
    information

67
IGSTK 18mo Review
  • Bug Tracking
  • Andinet Enquobahrie Kitware Inc.

68
Overview
  • IGSTK uses a web-based bug tracker
    (phpBugTracker)
  • Requirements, new feature requests and identified
    bugs are entered into this bug tracker
  • This bug tracker has several useful features such
    as flexible bug search capability and report
    generation.

69
Statistics (as of 05-30-2006)
70
Recommendations
  • Flush out the bug database
  • There are too many open entries
  • Conduct a bug triage
  • In the future CVS commit should be linked with
    the bug tracker

71
IGSTK 18mo Review
  • User List
  • Patrick Cheng Georgetown, ISIS Center

72
User List
  • User List Archive
  • http//public.kitware.com/pipermail/igstk-users/
  • Build user community is a critical task for
    continuous development of this toolkit
  • Be responsive
  • Monitoring the user list and respond promptly
  • Good support gives user the confidence to use the
    toolkit
  • Discussion
  • How do we respond to users bug report and
    feature request

73
IGSTK 18mo Review
  • State Machine Validation
  • Kevin Gary Arizona State University, Department
    of Computer Science

74
State Machine Validation
  • Objective Ensure state machines are governing
    component behaviors in the manner in which
    developers expect.
  • Current facilities (posted on the Wiki)
  • Export an IGSTK SM to W3C SCXML format
  • Ability to replay an IGSTK SM execution from an
    application logfile.
  • Ability to auto-gen a visual animation of a SM
    execution in LTSA
  • Expected functionality at conclusion of this
    phase
  • The above, plus a scripting tool to generate
    simulation test cases for the purpose of coverage
    (state, transition, path?) coverage.
  • Simple rule-checking to verify developer
    expectations in unit test
  • Integration with DART dashboard
  • Current Issues
  • Logfiles identify classes, not component
    instances
  • Most of validation process in Java/Ant, not
    C/CMake

75
Validation Process
Current End of Phase Future Work
From IGSTK, generate an SCXML export of the state
machine and a logfile from an application run
Developer
C parser translates to our XML events format
Test generator
C/CMake
XSL tranforms to .lts and scenebeans XML for LTSA
Java/Ant
Apache Commons SCXML engine does simul replay
Add constraint checks, mock objects for testing
Export to dashboard
Replace with native visualizer
76
State Machine Validation
  • IGSTK State Machines have been hand-developed and
    reviewed by a small group of expert developers on
    a small number of components
  • As IGSTK moves forward, some things will change
  • More developers will (hopefully) get involved
  • More developers will add more components
  • More developers will add more applications (that
    use state machines?)
  • Somebody may build an application requiring
    IRB/FDA approval
  • Additional complexity will be added
  • Applications may be built using the state machine
    facilities
  • Adding concurrency support will change state
    machine execution semantics in ways that will
    make hand-coding and reviewing complex
  • Communication between application and framework
    components will create integration patterns no
    necessarily envisioned by the current team.
  • Conclusion While state machine validation tools
    may not be required for the current team and
    current IGSTK, it could be a useful transitional
    toolset.

77
IGSTK 18mo Review
  • Application-builder tool
  • Stephen Aylward Kitware Inc.

78
Application-builder tool
  • Goals
  • Expand the user base of IGSTK
  • Increase the usability of its applications
  • Help new application developers uphold IGSTKs
    dedication to patient safety

79
Application-builder tool
  • will achieve its goals by
  • reducing the programming expertise needed to
    develop an IGSTK application
  • allowing the application developer to focus on
    the workflow of the target medical procedure

80
Workflow
  • A few workflow templates describe most
    image-guided surgeries Paggetti 2001
  • Modules specialize a template for a particular
    procedure

81
Application-builder tool
  • Uses Activity Diagram and XMI standards
  • Read XMI files and identify the workflow template
    components that are unspecified
  • Present a list of appropriate, available modules
  • Parse the code associated with workflow template
    and perform substitutions to instantiate the
    user-specified modules
  • User can then compile, test, and deliver their
    desired IGSTK application.
About PowerShow.com