Title: The Tallis modelling and publishing environment
1- The Tallis modelling and publishing environment
- Implementing clinical guidelines and decision
support services in PROforma
2PROforma
- A language and tools for creating intelligent
guidelines and other applications - Analogy of musical notation, invented by Guido
dArezzo - Tallis extends the Arezzo tools by supporting
publishing decision support and other services
on the web and - Integration with text, HTML and in due course
other media)
3PROforma publets
- A publet is a formal process for situation
assessment, decision making, process management
which can be published over the internet. - Tallis is designed to support the creation of
publets based on the PROforma knowledge model,
integrated with conventional web documents - The aim is to combine traditional publishing
methods with software engineering disciplines and
techniques
4The PROforma method
Clinical process requirements and design
5PROforma task classes
Generic task
Enquiry
Decision
Plan
Action
6Task drawing area
Task summary window
Task properties
7(No Transcript)
8(No Transcript)
9(No Transcript)
10(No Transcript)
11http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_1_JF_Task_set_1.pf
12Clinical processes as networks of tasks
13(No Transcript)
14Formal, machine interpretable specification
15Generate the spec. (1) decision
- decision 'Low_risk_decision'
- caption "Risk assessment "
- support_mode numeric
- candidate 'Low_risk'
- caption "Patient at low or population
risk" - argument 80.0,Number_of_cancers two AND
- ( R1_cancer_type Breast OR R1_cancer_type
Ovary) AND - R1_age_of_diagnosis gt 60 AND
R2_age_of_diagnosis gt 60
end attributes - argument 99.0,Number_of_cancers one AND
- R1_age_of_diagnosis gt 40
- end attributes
- recommendation netsupport(Low_risk_dec
ision, Low_risk) gt 1 - candidate 'Elevated_risk'
-
- recommendation netsupport(Low_risk_decision,
Elevated_risk) gt 1 - end decision.
16Generate the spec (2) plan
- plan 'Mammography_demo'
- caption "Mammography demo"
- trigger 'BreastImaging'
- terminate End_session yes
- abort Alert yes
- component 'MAMMOGRAPHY_data'
- schedule_constraint
completed('Tissue_density') - number_of_cycles 1
- component 'Risk_assessment'
- schedule_constraint
completed('MAMMOGRAPHY_data') - number_of_cycles 1
- component 'Tissue_density'
- number_of_cycles 1
- end plan.
17Checking the spec.
18(No Transcript)
19Publishing the application
20(No Transcript)
21(No Transcript)
22Exercise 0 task layout
- Lay out some tasks
- Save and load the file
- Delete a task
- Copy a task
- Display the PROforma specification
23Exercise 1 make a simple process
- Create an action Hello world
- Save and reload
- Publish and enact it
- Add another action Goodbye cruel world
- Make the actions into a sequence and save the
application - Publish and enact it
24Task enactment cycle (Tallis)
In progress
Completed
Discarded
Dormant
25Exercise 2 a process that collects data
- Make a new sequence which includes an enquiry
- Define data items in the enquiry, such as age,
sex etc - Publish and enact the sequence of tasks in the
application
26Exercise 3 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
27Data definitions
- Data definitions are distinct from context of use
- Can have multiple task instances
- Various functions on data are provided (average,
max, min, first, last etc.) - More will be added to Tallis as needed
28Logic editor
- All tasks
- Preconditions
- Cycle until
- Decisions
- Arguments
- Commitments
- Plans
- Termination conditions
- Abort conditions
29Making decisions
- A decision is a logical model for any kind of
choice (e.g. diagnosis, treatment, risk level,
referral ) - The simplest decisions are made by generating and
assessing simple arguments for and against the
options.
30(No Transcript)
31(No Transcript)
32(No Transcript)
33(No Transcript)
34Exercise 4 Making a decision
- Collect some data, maybe add some other tasks
- Use the data you have to take a decision
- Publish and enact the process
35Exercise 5 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
36Pause questions, issues
Next plans, pathways and events
37Plans (1)
- A plan can be thought of as a container for a
collection of tasks which together achieve some
goal - All tasks in the plan are in certain respects
treated as one task - Plans can contain other plans (sub-plans)
- NB In the CREDO browser you dont normally see a
plan because plans dont interact directly with
the outside world
38(No Transcript)
39Plans (2) tasks in a plan share
- Preconditions
- (must be true before tasks are valid)
- Termination conditions
- (the whole plan will be terminated immediately
if this condition becomes true) - Abort conditions
- (the plan will be aborted immediately)
40(No Transcript)
41Exercise 6 a simple protocol
- Create a protocol with 4 phases of management
- Clinical work-up
- Diagnosis and management decisions
- Treatment
- Follow-up
- Populate the individual plans with tasks
- Publish and test the application
42Parallel processes streaming
43Reactive processes events and wait conditions
44Some general features of PROforma
- PROforma is a compositional system (complex
processes can be composed out of a small number
of simple components) - It is recursive over plans (in fact you can put
whole applications inside plans) - Tasks and processes can operate synchronously,
in a planned way, or asynchronously in
response to unpredictable events and circumstances
45RepriseThe PROforma method
46(No Transcript)
47Pause questions, issues
Next patterns and idioms
48Patterns
- A pattern or idiom is a partially or wholly
specified task scheme which captures some generic
process (e.g. data collection, decision-making,
protocol) which can be reused across
applications. -
49Simple patterns
- Branching Into alternative processes
- Parallelism Simultaneous streams
- Synchronisation Merging streams
- Triggering Asynchronous selection of
tasks - Terminate Interrupting plans
- abort
50Branch by enquiry
51Branch by decision
52Synchronising processes
53Any task can have a synchronisation role
54Exercise (7)
- Write an application to demonstrate the
following - 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
55Exercise (7)
- 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
56Triggering processes
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,Tutorial_5_JF_Triggers_1.pf
57Parallel 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
58Terminate 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
59Exercise (8)
- 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
60An 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
61Pause questions, issues
62Design methods
Agents
Campus
Prefabs
Services
Stepping stones
Processes
Patterns
Doors and windows
Tasks
Pathways
Rules/Data
Foundations
63Foundations (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
64Foundations (rules)
- Differential diagnosis
- of dyspepsia
- Example based on work by
- De Dombal (1970s)
65 Tasks pathway
66Patterns doors and windows
67Processes stepping stones
68Prefabricated services prefabs
69Campus 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
70Quick UIs Text and HTML
SIGN
http//localhost8080/tallis/jumpstart.htm?correct
ed_publets,HTML_for_UIs_JF_V1.0.pf
71Quick 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
72Exercise 9
- Create a simple facade
- Create an action (to be the facade)
- Copy a chunk of text into the action
- Add formatting HTML, to taste
73Exercise 9 (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
74Future 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?)
75Final discussion
- The OpenClinical collaboratory
76Editorial 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
77Some 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?
78What 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
79What 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!)
80Tallis web configuration
Repository
Remote publishing Environment (e.g. OpenClinical)
Enactor
Publisher
Tomcat
Apache (80)
http80
http8080
Tomcat
Tallis composer
Browser
Enactor
Publisher
Your local test environment
Repository