Luis Ibáñez, Julien Jomier, David Gobbi, Rick Avila, Brian Blake, Hee-Su Kim, Kevin Gary, Stephen Aylward, Kevin Cleary Kitware, Inc.; ISIS-Center, Georgetown.

Slides:



Advertisements
Similar presentations
Image-Guided Software Toolkit (IGSTK) Phase III Planning Meeting Kevin Cleary, PhD Imaging Science and Information Systems (ISIS) Center Computer Assisted.
Advertisements

The Insight Journal Kitware Inc.. Credits Julien Jomier – UNC Caddlab Stephen Aylward – UNC Caddlab Zack Galbreath – Kitware Andy Cedilnik – Kitware Bill.
© Copyright 2010 Hewlett-Packard Development Company, L.P. 1 David Lehavi HP Labs Israel A NEW PARSING LANGUAGE FOR GUI AND VISUALLY STRUCTURED DOCUMENTS.
Components of GIS.
Kevin Cleary PhD Director of ISIS Center, Georgetown University.
IGSTK The Image-Guided Surgery Toolkit
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Graphics-1 Gentle Introduction to Computer Graphics Based on: –David Brogan’s “Introduction to Computer Graphics” Course Slides, University of Virginia.
Design Modeling for Web Applications
© 2005 Prentice Hall12-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
ESCE 4960: Open Source Software Practice Lecture 1: Course Overview August 27, 2007 Prof. Roysam, RPI Prof. Moorthy Dr. Will Schroeder, Kitware Prof. Roysam,
CAD/CAM Design Process and the role of CAD. Design Process Engineering and manufacturing together form largest single economic activity of western civilization.
Introduction to Software Engineering Dr. Basem Alkazemi
Computer-Aided Diagnosis and Display Lab Department of Radiology, Chapel Hill UNC Julien Jomier, Erwann Rault, and Stephen R. Aylward Computer.
IGT Meeting – CADDLab – November, 2005 Image-Guided Surgery Applications Julien Jomier The University of North Carolina at Chapel Hill.
Software Process for Distributed Teams KITWARE, Inc.
EGI-Engage Recent Experiences in Operational Security: Incident prevention and incident handling in the EGI and WLCG infrastructure.
MAGNETS: Magnetic Needle Tracking System Vladimir Sibinović¹, Bojana Petković², Goran Đor đ ević¹ ¹ University of Niš, Faculty of Electronic Engineering.
Stephen R. Aylward, Director of Medical Imaging, Kitware.
National Alliance for Medical Image Computing Grid Computing with BatchMake Julien Jomier Kitware Inc.
Open Source Workshop MICCAI 2005 Insight Software Consortium (ISC) National Alliance for Medical Image Computing (NA-MIC)
SPIE'01CIRL-JHU1 Dynamic Composition of Tracking Primitives for Interactive Vision-Guided Navigation D. Burschka and G. Hager Computational Interaction.
IGT System Design Kevin Cleary, PhD Imaging Science and Information Systems (ISIS Center) Department of Radiology Georgetown University Medical Center.
Software Engineering General architecture. Architectural components:  Program organisation overview Major building blocks in a system Definition of each.
Software Toolkits Building Communities Luis Ibáñez KITWARE, Inc.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
NA-MIC National Alliance for Medical Image Computing NA-MIC Core 2 Update: Kitware Will Schroeder Kitware NA-MIC Core 2 PI NA-MIC Core.
Implementation support z programming tools y levels of services for programmers z windowing systems y core support for separate and simultaneous user-system.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
計算機視覺 (Computer Vision) 課程簡介 Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh.
Visualization Workshop David Bock Visualization Research Programmer National Center for Supercomputing Applications - NCSA University of Illinois at Urbana-Champaign.
William Schroeder, Ph.D. §, Andy Cedilnik §, Sebastien Barré, Ph.D. §, William Lorensen ‡, James Miller, Ph.D. ‡, Daniel Blezek, Ph.D. ‡ § Kitware Inc.,
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
Open Source Software in Image Guided Surgery and New Age of Publishing Luis Ibáñez KITWARE, Inc.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many others 1.
1 System Analysis and Design Using UML INSTRUCTOR: Jesmin Akhter Lecturer, IIT, JU.
The Evolution of a VR-based IGT Environment Terry Peters, Robarts Research Institute David Gobbi, CEO, Atamai Inc.
Foto MD view. share. experience COMP Software Engineering Lab. Tuesday, March FotoMD Project Presentation Samuel Brice. Zach Mullen. Meg.
NA-MIC National Alliance for Medical Image Computing Process-, Work-Flow in Medical Image Processing Guido Gerig
An Open-Source Solution for Interactive Acquisition, Processing and Transfer of Interventional Ultrasound Images Jonathan.
Systems Analysis and Design in a Changing World, Thursday, Feb 15.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
MVC WITH CODEIGNITER Presented By Bhanu Priya.
Interface to Robots Breakout Group October 20, 2006 Peter Kazanzides Kevin Cleary John Kroon Grace Peng Hector Lopez Chris Hasser Dwight Yen Noby Hata.
NA-MIC National Alliance for Medical Image Computing Kitware, Inc. Core 2 Engineering William J. Schroeder.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Data Management Stephen R. Aylward Kitware, Inc.
Workflow Stephen Aylward Luis Ibanez. Goals Identify 3 main challenges in this area Identify 3 specific problems that can be solved by a collaborative.
SEESCOASEESCOA SEESCOA Meeting Activities of LUC 9 May 2003.
Advisor : Ku-Yaw Chang Speaker : Ren-Li Shen /6/12.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
Slicer IGT : Workflow based design Andinet Enquobahrie, PhD Kitware Inc.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Introduction Will Schroeder Kitware, Inc.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 6/6/2016 1/25 IT076IU Software Engineering Project Review 2.
25/02/2016 SW Development Process - SW Architecture/Stefan L. Meier/Electronic Product Development SW Architecture EPD Software Development Process 1.
2007 Project Half Week ITK Registration Parallelization: Develop implementations of ITK registration methods to take advantage of multi-core and multi-processor.
Team Plan/Expected Challenges
Slicer IGT Module : Wizard UI Design
Core 1b – Engineering Data and Clinical Interface
The Insight Software Consortium InsightSoftwareConsortium
Building Graphical User Interface with Swing a short introduction
Implementation support
An Open-Source Solution for Interactive Acquisition, Processing and Transfer of Interventional Ultrasound Images Jonathan Boisvert, David Gobbi, Siddharth.
IGSTK Architecture Overview
ITK Performance Visualization
Core 1b – A glimpse at the renewal
Implementation support
What Does it Mean to Get Gold in CII Badging?
Presentation transcript:

Luis Ibáñez, Julien Jomier, David Gobbi, Rick Avila, Brian Blake, Hee-Su Kim, Kevin Gary, Stephen Aylward, Kevin Cleary Kitware, Inc.; ISIS-Center, Georgetown University; CADDLab UNC; Atamai Inc; Arizona State University IGSTK: Image Guided Surgery Toolkit A State Machine Architecture

Open Source BSD License Reinforced Software Development Process

Why the State Machine ? Deterministic Behaviour Preclude wrong use Robustness to misuse Traceability Documentation Image Guided Surgery is a critical task Software must protect patient from harm by enforcing:

State Machine State 1 State 2 State 3 …. State N Input 1 Input 2 Input 3 …. Input M Action 1 Action 2 Action 3 …. Action K (State 1,Input 1)->(State 7, Action 4) (State 1,Input 2)->(State 3, Action 2) (State 1,Input 3)->(State 5, Action 6) (State 2,Input 1)->(State 4, Action 9) (State 3,Input 4)->(State 9, Action 2) State K

State Machine Set of States Set of Inputs Set of Actions Set of Transitions

State Machine Diagram State 0 State 1 State 2 State 3 Input 2 Action 5 Input 4 Action 3 Input 7 Action 9 Action 7 Input 4 Input 3 Action 1 Input 2 Action 2 Input 3 Action 1

State Machine Integration State Machine<> IGSTK Component RequestAction1() PerformAction1() public: private: RequestAction2() PerformAction2()

State Machine Integration State Machine<> RequestAction3() PerformAction3() ProcessInput() State AState B Input 3 PushInput(“Input3”) Input Queue

State Machine Integration IGSTK Component RequestAction1()PerformAction1() public:private: RequestAction2()PerformAction2() RequestAction3() RequestAction4() PerformAction3() PerformAction4()

Request Action Methods Request Action( argument list ) ArgumentValidation() ProcessInput() PerformAction4() Input 4( Input categories ) A B D C State Machine

Request Action Methods RequestSelectSlice( int N ) ArgumentValidation()ProcessInput() RejectSliceNumber() ( slice < 0 ) : Input0 : (out of range) B State Machine ( slice > N-1) : Input2 : (out of range) Otherwise : Input1 : (valid value) B RequestSetSlice(int) AcceptSliceNumber() B

Examples of IGSTK State Machine Diagrams

Tracker Base Class

Pulse Generator

Spatial Object

Using the State Machine

Interaction of Multiple Components Images Geometrical Objects Graphical Representation Visualization Tracking

GUI General Interactions View1 View2 View3 View4 Object Representation Spatial Object Tracker TrackerTool 1 TrackerTool 2 TrackerTool 3 Object Representation

Event Class ITK Event TransformEvent TimeStampEvent RefreshSceneEvent IGSTK Event

GUI Timing Controls Scene (view1,repr7) (view3,repr9) View1 View2 View3 View4 Object Representation Spatial Object Tracker TrackerTool 1 TrackerTool 2 TrackerTool 3 Object Representation Tick

IGSTK