Slicer3D Wizard Workflow In KWWidgets for a year now,KWWidgets Includes State Machine Engine, Was used to port Slicer2s EMSegmentation Module (Golland,

Slides:



Advertisements
Similar presentations
Excess Heat Production During D2 Diffusion Through Palladium
Advertisements

MIX April VOIP Project at MIX Status Update Mauro Magrassi
PowerPoint Tutorial 1 Creating a Presentation
Word Tutorial 2 Editing and Formatting a Document
Excel Tutorial 3 Working with Formulas and Functions
Objectives Create an action query to create a table
2400 Boston St Suite 407 Baltimore MD, (410) AP Optimization Building a World-Class Accounts Payable Operation By Brian Rosenberg.
Cortona Some remarks on the girth functions of convex bodies Paolo Gronchi Dipartimento di Matematica e Applicazioni per lArchitettura Università
Safe Open-Nested Transactions Jim Sukha MIT CSAIL Supercomputing Technologies Group Kunal Agrawal, I-Ting Angelina Lee, Bradley C. Kuszmaul, Charles E.
January 23, Quincy Wu Interconnecting VoIP on Taiwan Academic Network (TANet)
IVOA Interop, Cambridge UK, IVOA Data Access Layer Table Access Protocol Analysis Doug Tody (NRAO/NVO ) I NTERNATIONAL V IRTUAL O BSERVATORY A LLIANCE.
GL9 Antwerpen - 11 December Open access to full text and ETDs in Europe: improving accessibility through the choice of language? Christiane Stock.
GL9, Antwerp, Dec , Some Types of Grey Literature: a Polish Context Dr Marek Nahotko Jagiellonian University, Cracow, Poland GL 9.
TeraGrid's GRAM Auditing & Accounting, & its Integration with the LEAD Science Gateway Stuart Martin Computation Institute, University of Chicago & Argonne.
Micha LisaninSofia, Bulgaria, July Republic of Serbia Ministry of Labour and Social Policy Costing Methodology of Social Welfare in Child Protection.
Scaling distributed search for diagnostics and prognostics applications Prof. Jim Austin Computer Science, University of York UK CEO Cybula Ltd.
Measurement of the Hard photodisintegration of a proton-pair in the 3 He nucleus. Running now in JLab, hall A E03-101:GamPP n p p Ishay Pomerantz, Tel-Aviv.
Grid Wizard Enterprise GSlicer3 Tutorial. Introduction This tutorial assumes you already completed the basic and advanced tutorial. GSlicer3 is a Slicer3.
National Alliance for Medical Image Computing Slicer3 Architecture.
Marine Spatial Planning in the 12-sm-zone of Mecklenburg-Vorpommern Susan Toben Constanta, May 2007.
ALICE Offline Tutorial Markus Oldenburg – CERN May 15, 2007 – University of Sao Paulo.
Automata Theory Part 1: Introduction & NFA November 2002.
Equilibria and Complexity: What now? Christos H. Papadimitriou UC Berkeley christos.
LAW February A 5/3 approximation algorithm for a hard case of stable marriage Rob Irving Computing Science Department University of Glasgow (joint.
Istituto Nazionale Di AstrofisicaIstituto di Fisica dello Spazio Interplanetario V. Iafolla, E. Fiorenza, C.Lefevre, D.M. Lucchesi, A. Morbidini, S. Nozzoli,
10IMSC August Tests for Evaluating Rank Histograms from Ensemble Forecasts Ian Jolliffe University of Exeter Cristina Primo.
3 october Brown easyBorrow (beta) Brown University Library October 2007.
Word Tutorial 1 Creating a Document
V3.0 12/04/ For Coral Systems With PRI Services Presented by Education Technology Services.
CS-Strumentazione Elettronica About Us Based in Milan(Italy), CS Strumentazione Elettronica was founded in 1971 to assist our customers with.
ADBIS A Method for Comparing Self- Organizing Maps: Case Studies of Banking and Linguistic Data Toomas Kirt, Ene Vainik, Leo Võhandu.
Elliott / October Understanding the Construct to be Assessed Stephen N. Elliott, PhD Learning Science Institute & Dept. of Special Education Vanderbilt.
Italian white certificates scheme
Objectives Explore a structured range of data Freeze rows and columns
March 8, Dynamic Fault Tree analysis using Input/Output Interactive Markov Chains Hichem Boudali, Pepijn Crouzen, and Mariëlle Stoelinga. Formal.
ACAT Presentation Osborne Park Hospital Rehabilitation and Aged Care Aged Care Assessment Team October 2007.
Sonar l TELE e-coaching application l de Overdracht bv © 2007 SONAR TELE e-coaching application.
Tertoolen/Bosch EECERA Many children, many voices Anja Tertoolen Wieke Bosch.
Madrid 7 -9 March FARO EU Kick-off Meeting Introduction to the project by Marta Pérez-Soba.
M. F. Chiang, Z. Ghassemlooy, Wai Pang Ng,
NOC M. F. Chiang M. F. Chiang, Z. Ghassemlooy, Wai Pang Ng, and H. Le Minh Optical Communication Research Group Northumbria University, United Kingdom.
2007 OMRN ConferenceOttawa, October 24-27, Coastal and Ocean Management: Balancing Local and Large-Scale Roland Cormier, DFO-MPO, Gulf Region, Moncton.
Land Development Process 10/6/2014Carma Calgary Land
Word Tutorial 5 Working with Templates and Outlines
USSGL Board Meeting 4/26/20071 U.S. Treasury Zero Coupon Bonds (ZCB)
Broadband Adoption: Patterns, Behaviors, and Implications Presented to the New Jersey Connected Broadband Summit John B. Horrigan Associate Director for.
Oregon Leadership Network Fall Leadership Institute Lloyd Center Doubletree Portland, Oregon November 28, 2007.
DU-GALL - Durham 3 April DU - GALL Durham University Generalised AO Laser Laboratory.
Helping Online Students Do Better Academically with Useful Learning & Study Strategies. Some recommended instructor activities to help students succeed.
SchedulingCS-502 Fall Scheduling (continued) The art and science of allocating the CPU and other resources to processes (Slides include materials.
An agile process for the creation of conceptual models from content descriptions Hans-Werner Sehring Centre for Sustainable Content Logistics TuTech Innovation.
One Method of Constructing a Formal System Khimuri Rukhaia and Lali Tibua Institute of Applied Mathematics, TSU August,20071Intas,Moscow.
Feza Baskaya – Anne Kakkonen - University of Tampere Second International Seminar on Subject Access to Information, Helsinki 30th November 2007.
NA-MIC National Alliance for Medical Image Computing 3D Slicer Interactive Modules Steve Pieper, PhD.
1 ParaView Current Architecture and History Current Architecture and History Issues with the Current Design Issues with the Current Design.
State Machine Diagram Chapter 10. State Machine Diagram Used to describe system behavior.
National Alliance for Medical Image Computing Grid Computing with BatchMake Julien Jomier Kitware Inc.
Writing various AJAX forms in Drupal 7 1. Overview of Form API 2. Ctools 2.1 Ctools features 3. Ajax 3.1 Ajax Forms in Drupal 4. Putting it all together.
Workflow based Slicer IGT Module : Tutorial Andinet Enquobahrie, PhD Kitware Inc December, 2008.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
William Schroeder, Ph.D. §, Andy Cedilnik §, Sebastien Barré, Ph.D. §, William Lorensen ‡, James Miller, Ph.D. ‡, Daniel Blezek, Ph.D. ‡ § Kitware Inc.,
Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 13 GUI Programming.
EMSegmentation in Slicer 3 B. Davis, S. Barre, Y. Yuan, W. Schroeder, P. Golland, K. Pohl.
NA-MIC National Alliance for Medical Image Computing Slicer Progress in 2009 Steve Pieper, Ph.D.
Slicer IGT : Workflow based design Andinet Enquobahrie, PhD Kitware Inc.
Topics Graphical User Interfaces Using the tkinter Module
CREATING DISTRIBUTION IDS IN details Online
Network Diagnostics Framework
Fast-Track UiPath Developer Module 3: Workflow Organization
Presentation transcript:

Slicer3D Wizard Workflow In KWWidgets for a year now,KWWidgets Includes State Machine Engine, Was used to port Slicer2s EMSegmentation Module (Golland, Pohl), Funded by NA-MIC.NA-MIC 12/13/20071Kitware Inc. (Sébastien Barré)

What it looks like 12/13/20072Kitware Inc. (Sébastien Barré)

State Machine Engine Borrows design from IGSTKs State Machine,IGSTK Uses KWWidgets/VTK framework, Provides the basis for the Wizard Workflow. 12/13/20073Kitware Inc. (Sébastien Barré)

State Machine Classes vtkKWStateMachineState: a state vtkKWStateMachineState vtkKWStateMachineInput: an input vtkKWStateMachineInput vtkKWStateMachineTransition: a transition vtkKWStateMachineTransition vtkKWStateMachine: a state machine vtkKWStateMachine Helper classes: vtkKWStateMachineCluster: a cluster of states vtkKWStateMachineCluster vtkKWStateMachineWriter: a writer superclass vtkKWStateMachineWriter vtkKWStateMachineDOTWriter: a DOT writer vtkKWStateMachineDOTWriter 12/13/20074Kitware Inc. (Sébastien Barré)

State Machine State vtkKWStateMachineState Id: unique state ID Name: string Description: string Enter/Leave: callbacks, events Both callbacks and events are supported, independent of the transition, can be used to bring UI, or free resources. 12/13/20075Kitware Inc. (Sébastien Barré)

State Machine Input vtkKWStateMachineInput Id: unique input ID Name: string 12/13/20076Kitware Inc. (Sébastien Barré)

State Machine Transition vtkKWStateMachineTransition Id: unique transition ID OriginState: vtkKWStateMachineState Input: vtkKWStateMachineInput DestinationState: vtkKWStateMachineState Start/End: callbacks, events Support callback and events at beginning and end of a transition. 12/13/20077Kitware Inc. (Sébastien Barré)

State Machine API vtkKWStateMachine AddState(state) AddInput(input) AddTransition(transition) CreateTransition(origin_state, input, destination_state) SetInitialState(state) GetCurrentState(state) PushInput(input) ProcessInputs() 12/13/20078Kitware Inc. (Sébastien Barré)

State Machine Algorithm vtkKWStateMachines ProcessInputs(): For each input in the queue: a transition T is searched accepting the current state C and the input, if found : T's Start() method is triggered, C's Leave() method is triggered, T is pushed to the history, C becomes T's DestinationState, CurrentStateChangedCommand and CurrentStateChangedEvent are invoked, C (i.e. T's DestinationState)'s Enter() method is triggered, T's End() method is triggered. 12/13/20079Kitware Inc. (Sébastien Barré)

State Machine Example From TestStateMachine.cxx : TestStateMachine.cxx vtkKWStateMachine *state_machine = vtkKWStateMachine::New();... vtkKWStateMachineState *state_1 = vtkKWStateMachineState::New(); state_1->SetName("Start"); state_machine->AddState(state_1);... vtkKWStateMachineInput *input_next = vtkKWStateMachineInput::New(); input_next->SetName("next"); state_machine->AddInput(input_next);... // Transition: state_1 / input_next => state_2 vtkKWStateMachineTransition *trans_a = vtkKWStateMachineTransition::New(); trans_a->SetOriginState(state_1); trans_a->SetInput(input_next); trans_a->SetDestinationState(state_2); state_machine->AddTransition(trans_a);... // Transition: state_1 / skip => state_3 state_machine->CreateTransition(state_1, input_skip, state_3);... // Run the state machine state_machine->SetInitialState(state_1); state_machine->PushInput(input_next); // state_1 to state_2 state_machine->PushInput(input_invalid); // state_2 to state_2 state_machine->ProcessInputs(); 12/13/200710Kitware Inc. (Sébastien Barré)

Wizard Workflow Uses the state machine engine and provides higher-level classes to meet the following requirements: a wizard is a linear succession of steps (most of the time), each step may need to display specific GUI elements, one may navigate from one step to the next one using a 'Next' button, one may navigate from one step to the previous one using a 'Back' button, one may navigate directly to the last step using a 'Finish' button, one needs to make sure a step is valid before navigating to the next one, one do *not* need to make sure a step is valid before navigating to the previous one. 12/13/200711Kitware Inc. (Sébastien Barré)

Wizard Workflow Classes vtkKWWizardStep: a wizard step, vtkKWWizardStep vtkKWWizardWorkflow: a wizard workflow, vtkKWWizardWorkflow vtkKWWizardWidget: a wizard widget, embedding buttons, client area, and a wizard workflow engine, vtkKWWizardWidget vtkKWWizardDialog: a wizard dialog, embedding a wizard widget in a toplevel dialog. vtkKWWizardDialog 12/13/200712Kitware Inc. (Sébastien Barré)

Wizard Step A wizard step is not a subclass of a state machine state but an aggregation of several states, transitions and inputs that are relevant to a step. InteractionState, ValidationState ValidationTransition, ValidationFailedTransition ValidationInput, ValidationSucceededInput, ValidationFailedInput GoToSelfInput, GoBackToSelfInput BUT what really needs to be re-implemented: ShowUserInterface(): brings UI Validate(): pushes inputs Optionally: HideUserInterface() CanGoToSelf() 12/13/200713Kitware Inc. (Sébastien Barré)

Wizard Workflow A wizard workflow is a subclass of a state machine engine. It provides additional methods that accept wizard steps as arguments and: setup their internal elements, initialize their states, connect their transitions, Distribute/reshuffle all internal elements to the state machine superclass. A wizard workflow can be used as a regular state machine if you wish. 12/13/200714Kitware Inc. (Sébastien Barré)

Wizard Workflow API AddStep(step) CreateNextTransition(origin_step, next_input, dest_step) CreateBackTransition(origin_step, dest_step) AddNextStep(step) … CreateGoToTransitionsToFinishStep() Supports navigation and transition history. 12/13/200715Kitware Inc. (Sébastien Barré)

Wizard Workflow Example KWWidgets CVS Cxx/Examples/WizardDialogCxx/Examples/WizardDialog Simple wizard walks you through a mathematical operation: Select a mathematical operator (addition, division, square root), Select the first operand, Select the second operand *if* the operator was addition or division, Display the result. Exercises simple features: Skipping a step (if the operator is square root, the second operand is not needed), Validation (if the operand is division, the second operand should be != 0, if the operand is square root, it should be >= 0). 12/13/200716Kitware Inc. (Sébastien Barré)

Wizard Workflow Example Demo 12/13/200717Kitware Inc. (Sébastien Barré)

Diagram without Go To Finish transitions. Wizard Workflow Example 12/13/200718Kitware Inc. (Sébastien Barré)

Diagram with Go To Finish transitions. Complexity delusion Wizard Workflow Example 12/13/200719Kitware Inc. (Sébastien Barré)

Resources ow (under construction) ow KWWidgets CVS: Cxx/Examples/WizardDialogCxx/Examples/WizardDialog Slicer SVN: Modules/EMSegment/Wizard 12/13/200720Kitware Inc. (Sébastien Barré)