Title: A PROforma tutorial
1A PROforma tutorial
- Basic concepts of the PROforma language and the
Tallis guideline authoring environment
2Workshop programme
- 10.00 Introduction to PROforma
- 10.30 The Tallis toolset basics (practical 1)
- 11.15 Coffee
- 11.30 Idioms and patterns (practical 2)
- 13.00 Lunch
- 14.00 Technology talks (Ali, David)
- 14.30 Advanced design (practical 3)
- 16.00 Customising publets (Rory)
- 16.15 Discussions (John, Richard)
- 17.00 Close
3PROforma concepts and language
- The first notation designed for describing
clinical processes - Based on intuitive concepts
- Declarative and executable (enactable)
- We think (MIE 1996)
4Related approaches to guidelines
- ASBRU (U Vienna, U Negev)
- EON (Stanford)
- GLIF (Intermed consortium)
- GUIDE (Pavia)
- Prodigy (Sowerby Centre)
5A clinical process model
Accept/commit
Adopt/commit
6PROforma as a logic language
Das et al (JETAI, 1997)
7R2L syntax (1) Das et al, Agents 96 JETAI 1997
- decision cancer_treatment
- situation
- cancer
- goal
- treatment_decided
- candidates
- chemotherapy
- surgery
- arguments
- elderly gt support(chemotherapy, '')
- young gt support(surgery, '')
- commits
- netsupport(X, M) netsupport(Y, N)
greater(M, N) - gt schedule(X).
8R2L syntax (2) Das et al, Agents 96 JETAI 1997
- plan chemotherapy
- pre_conditions
- cancer
- subtasks
- baseline
- chemo
- followup
- scheduling_constraints
- first(baseline)
- after(baseline, chemo)
- after(chemo, day(6), followup)
- abort_conditions
- patient_deteriorates
- gt abort(chemotherapy) schedule(intensive_ca
re)
9 An object interpretation Proc. MIE 1996
Fox and Das, 2000
10PROforma task classes
Generic task
Enquiry
Decision
Plan
Action
11Arezzo guideline authoring tool (ICRF, InferMed)
12PROforma syntax (1)
- decision Referral_decision
- caption 'Referral decision'
- choice_mode single
- support_mode symbolic
- candidate Two_week_referral
- argument for, ( tissue_changes includes
'Discrete lump' and age gt 30 ) - argument for, ( skin_changes includes
Ulceration ) - argument for, ( skin_changes includes
Nodule ) - argument for, ( skin_changes includes
Distortion ) - argument for, ( nipple_changes includes
Eczema ) - argument for, ( nipple_changes includes
'Retraction_or_distortion' ) - recommendation Netsupport(
Referral_decision, Two_week_referral ) gt 1 - candidate No_referral
- recommendation Netsupport(
Referral_decision, Two_week_referral ) lt 1 - end decision .
13PROforma syntax (2)
- plan Breast
- caption 'Breast'
- component Clinical_information
- component Referral_decision
- schedule_constraint completed(Clinical_in
formation) - component No_two_week_referral
- schedule_constraint completed(Referral_de
cision) - component Two_week_referral
- schedule_constraint completed(Referral_de
cision) - abort alarm confirmed
- terminate consent refused
- end plan .
14Some applications of Arezzo
- Retrogram
- for Hoffman la Roche
- MACRO clinical trials manager
- Roche, Pfizer, Millennium, Novo Nordisk,
Fraunhofer Institute, Eur Soc. Cardiology - ERA cancer referrals
- NHS Information authority
- Clinical Evidence
- BMJ
15The agent interpretation
Ask
Tell
Das et al (JETAI, 1997) Fox (ECAI 2002)
16Supporting clinical practice and the NHS cancer
plan
- Improving prevention
- Cutting waiting times
- Better detection
- Improving treatment
- Better palliative care
- Empowering the patient
- Preparing for the genetics revolution
17IMPROVING PREVENTIONRisk Assessment in Genetics
Andrew Coulson, Jon Emery, David Glasspool BMJ
2000, BMJ 2001, Meth. Inf. Med. 2001.
18Risk assessment in genetics
Worried patient
Assess risk
Recommend (accept)
Risk levels
Genetics, epidemiology other knowledge
19CUTTING WAITING TIMESHelping GPs make
referralswww.infermed.com/wap/era Jon Bury,
Michael Humber, NHS pilot project (Leicester,
Southampton, InferMed)
20Making referral decisions
Possible cancer
Decide what to do
Refer or not?
NHS referral criteria
Recommend (adopt)
21IMPROVING TREATMENT (1) Drug prescribing
Robert Walton Claude Gierl BMJ 1997
22Drug prescribing
Treat condition
Diagnosis
Cost, contra-indications, side-effects,
interactions
Recommend (prescribe)
Drugs
23IMPROVING TREATMENT (2) Leukaemia in children
Jon Bury, Chris Hurt Vaskar Saha CRUK Oracle
Group
24IMPROVING TREATMENT (3) Management of HIV
patients
InferMed Virology Networks Hoffman la
Roche Retrogram AIDS 2002
25IMPROVING TREATMENT (4)70 of those who suffer
pain do so unnecessarily roughly 3 million
people in the UK aloneInferMed Ltd.
26BETTER DETECTIONAutomated image interpretation
Paul Taylor, Margarita SordoMedical Imaging,
2001
27EMPOWERING THE PATIENT
- Patients want support in making their own
choices about timing, to consider options for
treatment and they want the arrangements to be
personalised around their own circumstances and
particular clinical needs
28CREDO PUTTING IT ALL TOGETHER
29Break
30Workshop programme
- 10.00 Introduction to PROforma
- 10.30 The Tallis toolset basics (practical 1)
- 11.15 Coffee
- 11.30 Idioms and patterns (practical 2)
- 13.00 Lunch
- 14.00 Technology talks (Ali, David)
- 14.30 Advanced design (practical 3)
- 16.00 Customising publets (Rory)
- 16.15 Discussions (John, Richard)
- 17.00 Close
31Adding value publets
- Tallis is distinct from Arezzo because of
emphasis on web publishing and adding value to
conventional electronic media and content. - A publet is a chunk of formalised expertise
designed to support problem solving, decision
making and process management in specialised
domains. - Needs to combine traditional publishing and
software engineering disciplines
32The Tallis toolset
- Tools for creating and publishing PROforma
applications on the web - Integrates with conventional documents (text,
HTML other media)
Thomas Tallis (1505-1585)
33Task drawing area
Task summary window
Task properties
34(No Transcript)
35(No Transcript)
36(No Transcript)
37(No Transcript)
38(No Transcript)
39(No Transcript)
40(No Transcript)
41(No Transcript)
42(No Transcript)
43(No Transcript)
44Task enactment (Tallis)
In progress
Completed
Discarded
Dormant
45http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_1_JF_Task_set_1.pf
46http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_1_JF_Task_sequence_1.pf
47Exercise 1 make a publet
- Create an action Hello world
- Save and reload
- Publish and enact it
- Add another action Goodbye cruel world
- Publish and enact it
- Make the actions into a sequence and save
- Publish and enact it
48PROforma object model Properties of all tasks
49Data definitions (Centralised)
- Data editor ?
- Data definitions distinct from context of use
- Multiple data instances
- Functions on data (first, last, average, number
etc.)
50Logical conditions
- All tasks
- Preconditions
- Cycle until
- Decisions
- Arguments
- Commitments
- Plans
- Termination conditions
- Abort conditions
51Verification tools
- Parser and type-checker built into composer,
publisher and engine loader
52Exercise 2 using the verifier
- Add a set of tasks (leave them empty)
- Run the verifier and try to publish the
application - Fix the bugs
- Verify, return to 3 if still faulty
- Publish the application
53Exercise 3 a mixture of tasks
- Create an action (Good morning)
- Add an enquiry (Clinical information)
- Add data definitions to enquiry (Problem?
Severity?) - Verify the guideline
- Publish and enact it
- Add a decision with 2 candidates (treatment, no
treatment) - Add arguments
- Make this into a sequence
- Publish it
54Break
- Next
- common patterns and idioms
55Idioms (some common PROforma patterns)
- An idiom is a partially or wholly instantiated
task scheme which captures some generic
decision-making, workflow or other distinctive
process which can be reused across applications. -
56Common patterns
- Branching Into alternative processes
- Parallelism Simultaneous streams
- Synchronisation Merging streams
- Triggering Asynchronous selection of
tasks - Terminate abort Interrupting plans
57Branch by enquiry
/ PROforma (plain text) version 1.3.25 / plan
'untitled' caption "untitled"
component 'Enquiry_1'
number_of_cycles 1 component
'Action_1' schedule_constraint
completed('Enquiry_1')
number_of_cycles 1 component
'Action_2' schedule_constraint
completed('Enquiry_1')
number_of_cycles 1 end plan. enquiry
'Enquiry_1' caption "Enquiry_1"
description "Select whether you want to do
action 1 or 2 or both" source
'which_action' end enquiry.
action 'Action_1' caption
"Action_1" precondition which_action
one OR which_action both procedure
"Action 1 selected" end action. action
'Action_2' caption "Action_2"
precondition which_action two OR
which_action both procedure "Action 2
needed" end action. data 'which_action'
type text caption "Which action
should I do?" range "one","two","neither",
"both" end data.
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_1_JF_Task_branching_1.pf
58Branch by decision
plan 'untitled' end plan. decision
'Decision_1' caption "Decision_1"
source 'age' source 'gender'
choice_mode multiple candidate
'Action2' caption "Action 2 has
been chosen" argument for,age lt
20 OR age gt 50 argument
for,gender male recommendation
netsupport(Decision_1, Action2) gt 1
candidate 'Action1' caption
"Action 1 has been chosen" argument
for,age gt 50 and gender male
argument for,age gt 20 AND gender female
recommendation netsupport(Decision_1,
Action1) gt 1 end decision.
action 'Action_1' caption
"Action_1" precondition result_set(
Decision_1 ) includes Action1 procedure
"Action 1 selected" context '' end
action. action 'Action_2' caption
"Action_2" precondition result_set(
Decision_1 ) includes Action2 procedure
"Action 2 needed" end action.
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_1_JF_Task_branching_2.pf
59Parallel streams
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_1_JF_Task_parallelism_2.pf
60Synchronisation of processes
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_1_JF_Synchronisation_1.pf
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,tutorial06_synchronisation_2_Known_V1.0
.pf
61Any task can have a synchronisation role
62Exercise (4)
- Write an application to demonstrate the following
features - A data collection task followed by a two stream
process - One collects more data
- One takes a decision or an action
- Merge (resynchronise) the two streams in a
follow-up task
63Exercise (5)
- Either
-
- Reconstruct a version of the cancer guideline
in the primer - OR
- Build a SOAP guideline from scratch
- Subjective data, Objective data,
- Assessment decision, Plan management
64Triggering processes
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_5_JF_Triggers_1.pf
65Parallel triggers
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_5_JF_Triggers_2.pf
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_5_JF_Triggers_3.pf
66Terminate and abort processes
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,tutorial08_term_abort_1_Known_V1.0.pf
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,tutorial08_term_abort_2_Known_V1.0.pf
67Exercise (6)
- Create an application that contains two
services that can be independently invoked - Collect patient data and take one of a number of
actions - Collect patient data and take a decision
- Dont forget to include a holding task (e.g. an
action) for initiating the services
68An agent view of control
- Deliberative (Synchronous)
- Scheduled sequences of tasks
- Programming cycling
- Reactive (asynchronous)
- Triggers
- Preconditions
- Termination conditions
- Abort conditions
- Goals (Arezzo but not yet Tallis)
69Comparison
- PRODIGY
- EON
- GLIF
- ASBRU
- GUIDE
- PROforma
70Lunch
- Next Technology talks
- Then advanced design methods
71Technology
- System architecture (Ali Rahmanzadeh)
- Enactment engine (David Sutton)
72Tallis web configuration
Repository
OpenClinical publishing environment
Enactor
Publisher
Tomcat
Apache (80)
http80
http8080
Tallis composer
Tallis browser
Tomcat
Enactor
Publisher
Your local test environment
Repository
73Design methods
Agents
Campus
Prefabs
Services
Stepping stones
Processes
Patterns
Doors and windows
Tasks
Pathways
Rules/Data
Foundations
74Foundations (data)
Patient forename PATSFNAM Patient surname
PATSNAME Patient address PATADD1 - 4 Date of
birth DOB DD/MM/CCYY Hospital of referral
HOSP Referring GP GP Date of referral REF
DATE Unit number UNITNUM Menopausal status
MSTATUS 1Pre 2Peri 3Post 9Not
recorded Side SIDE 1Left 2Right 3Bilateral
4Not recorded Tumour T According to TNM
Clinical Stage Nodal N According to TNM
Clinical Stage Metastases M According to TNM
Clinical Stage Date of definitive diagnosis
DIAGDATE DD/MM/CCYY Type of tumour TUMOUR
1Invasive 2DCIS 3Other non-invasive 9Not
recorded Dist from excision margins DISTEX
1lt1mm 21-5mm 3gt5mm 9Not known Maximum
pathological diameter MAXPATH Tumour grade
TGRADE 1I 2II 3III 4Not assessable 9Not
recorded No.. of lymph nodes examined
EXNODES No. of lymph nodes involved I NVNODES
75Foundations (rules)
- Differential diagnosis
- of dyspepsia
- Example based on work by
- De Dombal (1970s)
76 Tasks pathway
77Patterns doors and windows
78Processes stepping stones
79Prefabricated services prefabs
80Campus societies of agents
- Autonomous tasks (invisible)
- Clinical trial agent
- Database manager
- Clinical audit and black box
- Hazard agent
- Patient consent
- System initiated services
81Quick UIs Text and HTML
SIGN
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,HTML_for_UIs_JF_V1.0.pf
82Quick UIs Text and HTML
- HTML in description fields
- Formatting
- Triggers and links
- Description fields in the Tallis composer
- Task descriptions
- Actions (future context model)
- Decisions
- Candidates
- Arguments
- Decision rules
- Enquiries
83Exercise 7
- Create a simple facade
- Create an action (to be the facade)
- Copy a chunk of text into the action
- Add formatting HTML, to taste
84Exercise 7 (continued)
- Create a set of keystones (to become services)
- Add a trigger to each one
- Edit the facade text to include the trigger
phrases - Use the trigger insert function to create links
- Test the application
- Convert the keystones into services by converting
them into tasks and populating them as you like. - Test the application
85Customising web pagesRory Steele
86BreakNext Collaboratory discussion
- Future developments and options (JF)
- Management of the collaboratory (Richard)
87Future developments
- Time and temporal reasoning
- First-order logic
- Ontologies and terminologies
- Database interface (e.g. EPRs)
- Suspend/resume functions
- Arithmetic and other functions
- Extensibility (functions, predicates, classes)
- Goals and plan repair
88Future developments
- Task sub-classing
- HTML and XML editors
- JSP implementation
- Better explanations
- Design wizards
- Prefab packaging (components)
- Campus (agent) communication/negotiation
89Time (Arezzo)
- The time model (events and timestamping)
- Temporal predicates in conditions
- Temporal information in cycles
- Using actions to pause
- Suspend/resume (state and individual tasks)
- Priorities ??
90Arithmetic functions
- Current functions
- Sets of data values
- Average value
- Value sum
- Future priorities ??
- (DS)
91Meta-language
- Control states (pending, in-progress, done,
discarded) - Agent modalities (believed, known, desired,
intended) - Decision modalities
- Epistemic (possible, probable, certain, excluded)
- Deontic (permitted, recommended, committed)
- Aleatory (preferred, safe)
- Negation (affixal, lexical)
92Final discussion
93Editorial processes
- Commissioned and unsolicited content
- Quality control
- Software verification
- Peer review
- Open commentary
- Review and maintenance
- Responsive mode
- Planned maintenance
- Data collection and data mining
94Collaboratory
- Your files and directories on the server
- Local testing
- Publishing and nominating reviewers
- Reviews
- Source
- Test cases
- Reviews
- Open commentary
- Source downloads for customisation
95What are we offering?
- Tallis software tools
- Publishing server
- Personal filespace
- Reviewing within the collaboratory
- Sharing experience
- Public web site via OpenClinical
- Publishing results
96What are we asking of you?
- Build applications
- Try out ideas and techniques
- Publish applications you like
- Submit to OpenClinical
- Notify RT
- Share your experience!
- Review and comment on others submissions
- Reflect and write up your reflections
- Comment on draft papers and reports
97Some issues
- What is a practical methodology for creating and
disseminating high quality applications? - What areas are most amenable to this methodology?
- How can we best empower authors, clinical users
and potentially patients? - Can we make the method open source?
- What are the limitations of this form of
knowledge dissemination?