Title: A PROforma tutorial
1A PROforma tutorial
- The Tallis guideline authoring environment
2The Tallis toolset
- Tools for creating and publishing PROforma
applications on the web - Integrates with conventional documents (text,
HTML other media)
Thomas Tallis (1505-1585)
3Adding value publets
- A publet is a chunk of formalised expertise for
problem solving, decision making and process
management which is intended for public use. - Tallis is designed to support creation of publets
based on the PROforma knowledge model, integrated
with conventional knowledge. - Seeks to combine traditional publishing and
software engineering disciplines
4Task drawing area
Task summary window
Task properties
5(No Transcript)
6(No Transcript)
7(No Transcript)
8(No Transcript)
9(No Transcript)
10(No Transcript)
11(No Transcript)
12(No Transcript)
13(No Transcript)
14(No Transcript)
15Task enactment (Tallis)
In progress
Completed
Discarded
Dormant
16http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_1_JF_Task_set_1.pf
17http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_1_JF_Task_sequence_1.pf
18Tallis 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
19Exercise 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
20PROforma object model Properties of all tasks
21Data definitions (Centralised)
- Data editor ?
- Data definitions distinct from context of use
- Multiple data instances
- Functions on data (first, last, average, number
etc.)
22Logical conditions
- All tasks
- Preconditions
- Cycle until
- Decisions
- Arguments
- Commitments
- Plans
- Termination conditions
- Abort conditions
23Verification tools
- Parser and type-checker built into composer,
publisher and engine loader
24Exercise 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
25Exercise 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
26Pause questions, issues
27Idioms (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. -
28Common patterns
- Branching Into alternative processes
- Parallelism Simultaneous streams
- Synchronisation Merging streams
- Triggering Asynchronous selection of
tasks - Terminate abort Interrupting plans
29Branch 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
30Branch 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
31Parallel streams
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_1_JF_Task_parallelism_2.pf
32Synchronisation 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
33Any task can have a synchronisation role
34Exercise (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
35Exercise (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
36Triggering processes
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_5_JF_Triggers_1.pf
37Parallel 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
38Terminate 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
39Exercise (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
40An 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)
- Autonomous behaviour
41Pause questions, issues
42Design methods
Agents
Campus
Prefabs
Services
Stepping stones
Processes
Patterns
Doors and windows
Tasks
Pathways
Rules/Data
Foundations
43Foundations (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
44Foundations (rules)
- Differential diagnosis
- of dyspepsia
- Example based on work by
- De Dombal (1970s)
45 Tasks pathway
46Patterns doors and windows
47Processes stepping stones
48Prefabricated services prefabs
49Campus societies of agents
- Service agents
- Care pathway agents
- Specialised clinical views
- Clinical trial agent
- Patient services
- Autonomous agents
- Clinical audit and black box
- Hazard monitor
50Quick UIs Text and HTML
SIGN
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,HTML_for_UIs_JF_V1.0.pf
51Quick 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
52Exercise 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
53Exercise 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
54Future of Tallis
- A stronger logic, object and agent model
- Simpler UI configuration, multi-modal
- Integration with a multimedia authoring
environment which recognises and links a range of
knowledge types and media - Support for editorial functions
- Support for other knowledge formats (Dharma?)
55Final discussion
- The OpenClinical collaboratory
56Editorial 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
57Some questions
- 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?
58What are we offering?
- Tallis software tools
- Publishing server
- Personal filespace on server
- Reviewing within the collaboratory
- Sharing experience
- Public web site via OpenClinical
- Publishing results
59What are we hoping for?
- Participants build applications
- Try out ideas and techniques
- Publish applications you like on OpenClinical
- Discuss comments and suggestions with members
- Share experience!
- Review and comment on others submissions
- Reflect on and write up your observations
- Contribute to papers and reports (c.f. Peleg
comparison study!)