Partial Data-set saving

Use case: parts of a complete template are captured in multiple performable Tasks; at some Task, the data-st is technically complete (all sections completed) and can be signed and saved. The need is to identify when (at what Task) the data-set is considered complete, and also to allow saving of partially complete forms.

Model changes proposed

Decision Else processing

Currently there is no guarantee of a condition being matched in a CONDITION_GROUP or DECISION_GROUP, so it is not clear what the TP engine should do in this case.

At a minimum, it should be easy to create an ‘else’ path, with no condition attached (logically, condition = True, or in Decision case, it is like an ‘all other values’ branch).

Proposed model/spec changes

Add the following to CONDITION_GROUP or DECISION_GROUP:

MP: other possibility might have been to just use an EVENT_ACTION.

We may need a new kind of Task representing the system generating an EVENT_ACTION.

Exceptions

Use case: the patient state changes such that it is judged that the current routine care will stop and a plan specific to the adverse event / emergency be pursued. E.g., during childbirth, fetal distress is detected; maternal haemorrhage detected.

Various approaches to this appear possible.

Exception Task Plans

The first is the use of exception Task Plan(s) within the same Work Plan. Each such TP would have a wait state on its top-level Task Group, with an event trigger for the particular kind of event, e.g. $fetal_distress.

The following illustrates.

In this approach, we need to work out some details:

Exception TP sets

The general case is that there is not just one TP for a given exception condition, but one for each role needed to work in the exceptional case. Therefore the above model should be factored somewhat differently.

Exception Work Plans

In many cases, it may make more sense to provide a separate WP for each major exception plan - for one thing, the team structure may be different. However, in this case, we need a way of indicating the connection between the routine normal-path WP and related exception handlers. Conceptually, something like this:

Currently, we don’t have a way to specify the lower condition/action rules.

General issues

Nested exceptions

Proposed Model/Spec Changes

Variations are possible to achieve what we want.

Add documentation on Exception processing.

The above is shown in the bottom half of the following diagram.

Repeat/Until

Materialise one instance; test condition when execution arrives there

Proposed Model/Spec Changes

Add some documentation on this. No formal changes needed.

Custom Runtime Tasks

A 'custom runtime' adjustment to a Task Plan is understood as any adjustment made to the Plan after it has been instantiated and activated.

Requirement is to be able to record extra Tasks done as if they had been part of the original Plan, at least:

Scenarios:

Firstly we need to clarify what artefact we are modifying:

We also need to distinguish this need from exception processing, which will occur via conditional alternative Task Plans.

For long-running plans, inserting Task(s) is probably the same as doing the normal TP authoring process with the usual tool, and modifying part of the plan not yet materialised.

MK:

Fabio:

Model changes proposed

Notification generation

Add facility to generate events or calls on current Task lifecycle transitions.

Redo / retry

Use case: Wrong data entered on Task 1, Task 2, 3, … done, then a decision point entered based on the wrong data follows the incorrect path; clinician then realises, and wants to correct the data.

What if wrong data was sent to another system due to a SYSTEM_CALL from an EVENT_ACTION? => need an ‘update’ or ‘correction’ concept.

E.g. patient was recorded as being diabetic, and a decision branch was entered on that basis; in this branch, an HbA1C was ordered and various unnecessary appointments were made.

Possible approaches:

Matija P: try to materialise de novo the intermediate piece, keep the dead branch; but rewire from regenerated segment to previously materialised section not yet performed.

Problems of repeat sections - don't want to undo / cancel actions that might still be done on a subsequent repeat.

Orders/appts done in intermediate section - don’t cancel, since the redo will pass through these Tasks again.

Need to be able to at least construct a list of actions performed that user might want to rescind.

User will have best idea of how to compensate for real world actions already performed.

Model changes proposed

Expression Language

The main conceptual challenge is not actually the EL syntax or semantics as such, but where decision conditional expressions are represented (in the TP, outside?) and what constitutes a ‘variable’? E,g, a TP author might invent logical conditions that don’t exist as EHR data items as such., or might not have a clear formal expression relationship to underlying variables.

Secondly, we (probably) want any such conditions to be modifiable independently of the plan.

Mapped Variables

Context Data

Rules and Decision Structures

Pure ECA Rules

Use case: in pregnancy care,

How to represent a simple Yes/no decision point?

TP System Actions resulting from decision

Use case:

Or Branch - all that apply (aka hit policy)

Data Handling

Describe the data capture / retrieve loop in TP

Data Object and Data Store

Need ability to keep persist SYSTEM_CALL results.

Also Q of what types supported by calls.

Data Object = Business Object

Data Store = commit cache to hide partial data.

Writing to the EHR or other System

Cost Tracking

Use case: Prospective cost estimation likely to be attractive; will rely on:

Use case: post hoc accurate resource use report:

Resource service interface

Potentially store service id to enable SYSTEM_CALL to be made that will obtain resource-related costing info for both prospective analysis and post hoc analysis.

Fully instrumented system

Use statistical analysis of execution history to show common pathways, case-loads for clinics etc.

Proposed Model/spec changes

Add to TASK_COSTING:

Consider adding fine-grained meta-data as per this model:

Reminders and Notifications

TP-VML

Terminate here

Need a visual exit ‘here’ to avoid visually going through all the block close objects.

Ad hoc group

How to represent data sets and forms

Symbolic refs for hand-offs and sub-plans

ADL

Default values

Importing/Exporting from other Formalisms

Visio tabular format for Moscow.