Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 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

2 Open Source BSD License www.igstk.org Reinforced Software Development Process

3 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:

4 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

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

6 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

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

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

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

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

11 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

12 Examples of IGSTK State Machine Diagrams

13 Tracker Base Class

14 Pulse Generator

15 Spatial Object

16 Using the State Machine

17 Interaction of Multiple Components Images Geometrical Objects Graphical Representation Visualization Tracking

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

19 Event Class ITK Event TransformEvent TimeStampEvent RefreshSceneEvent IGSTK Event

20 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

21 IGSTK


Download ppt "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."

Similar presentations


Ads by Google