Major update to openEHR Task Planning (workflow) draft specification

I have published a major update to the Task Planning draft specification. It now includes sequential and parallel groups, conditional pathways, and a new model of execution time structures. It’s still very rough in places, but in the interests of ‘publish early publish often’…

The main thing to be obtained from this version is that the general model structure I think is about right, i.e. the separation of Task List definition, runtime structures and execution history.

All comments welcome, either

Clinical people may like to look at the requirements, and are of course welcome to common on anything else as well.

  • thomas

Good worked out, good thought through, a welcome addition to the RM.
Thanks for writing and the sponsors, thanks for funding.

Bert

Looks good Tom, certainly comprehensive.
Like the fractal nature aspect :o)

Not sure how to judge it without challenging with a clinical scenario at a reference implementation.
Is there a related OS implementation in the works?

thanks
Tony

Dr. Tony Shannon
Director, Ripple Foundation ripple.foundation
Director, Frectal Ltd frectal.com

tony.shannon@frectal.com
+44.789.988.5068 (UK)

+353.89.457.6011 (Ireland)

We’ll need to do a bit more design work, but I think parts could be implemented soon, in an experimental version.

I should point out that this design is heavily influenced by a) experiences from various openEHR implementers, b) my involvement in the Intermountain Healthcare Activity project and c) a lot of literature research. At Intermountain we have a working system (it’s based on their own form of archetypes, and a different reference model, so not directly re-usable for us) and we have gained experiences already with clinical users on:

  • radiology reporting and workflow
  • stroke management, based on the IHC acute stroke guideline, which is comprehensive
  • various nursing procedures featuring sequence-of-steps

It would be great to get your help and that of other clinicians to test out the new spec with NICE guidelines e.g. I’d like to have a go at (parts of?) sepsis, and stroke is always a good one as well.

But even the simplest use cases need to be tested to make sure we have got the model right - things such as in-patient routine drug admin, R-CHOP chemotherapy protocol and so on.

I think the simplest way to initially test, given we don’t have software yet, is to build some archetypes. So for example, a typical R-CHOP Task List can be built as a set of archetypes.

So I think the steps from here are:

  • a bit more design work and validation

  • republish a ‘good enough’ draft to test and implement from

  • build some archetypes and templates for some well-known case to show how this is done

  • when we add the model to the existing RM BMM, any BMM-consuming tool will be able to build Task Planning archetypes, which at least includes ADL Workbench, LinkEHR and I think the new Marand ADL-designer.

If you or any other clinical person wants to propose clinical scenarios we should concentrate on, please do so. I’m working on the idea that we will start with:

  • multi-day / multi-drug chemo plan
  • in-patient scheduled drug admin plan
  • elements of a stroke guideline (IHC or NICE)

Then we will need to iterate like that for a while; when the archetyped Task Plans look solid enough, I think software building can begin in earnest.

  • thomas

thanks Tom

The plans you have in mind sound sensible.I’d certainly suggest the simple task management stuff needs to be done early too..

If it helps the (open source) Ripple stack on openEHR we’re developing is well placed as a reference implementation to help with this kind of R&D stuff. http://ripple.foundation/

See screenshot of basic “MultiPatientView” designed for managing cohorts of patients… on waiting list, clinic list, ward list, operating list etc .
https://ibb.co/iSywoF

(Apols can’t embed image on this list so please see that link)

Take a look at 2m to 2m30s of this video to get another view

https://youtu.be/0kupZZH_S5E?t=120

The basic challenge from an ED perspective might be something like this ;
ED Doc asks ED Nurse to;
Check Vital Signs
Submit Orders
Check Results
Administer Treatments (eg
Administer Medications

See related image here
https://ibb.co/dudwoF

The “task management” effort might be a binary ToDo/Done
For those folks without the tech, plain old whiteboards are still in use to do that task management job :o)
https://www.magnatag.com/img/products/HXEE/HXEEcover.png

Tony

Hi all, here is my first review:

Section 2

a. Try to link the concept of task / task list with worklist item / worklist commonly used in imaginology flows and DICOM terminology.

b. Rephrase “A list of planned tasks need not all relate to a single order”

c. Requirements are too generic on the first 3 paragraphs of 2.1., would be better to use the first section to show samples of concrete requirements, then abstract them to show the family of requirements that will be handled by this spec. I think it goes to a solution too quick without specifying the requirements nor the scope :slight_smile:

Ideas for use cases:

  1. physiotherapy rehab sessions (recurrent therapeutic procedure, with end)

  2. dialysis sessions (recurrent therapeutic procedure, might be chronic)

  3. diet + physical activity plan for overweight treatment (recurrent tasks, patient feedback, care team evaluation and plan adjustments = plan can change over time, will end when the patient reaches a healthy status)

  4. medication (consider both acute and chronic, associated with a symptom, condition or problem)

  5. surgery planning (one time event)

  6. patient care plan related to goals (goals can be established over vitals or lab results/analytes, tasks are defined for the patient to fulfill; tracking, evaluation and correction to the plan is a common flow; ends when the patient reaches healthy values)

Basic requirements: (based on my experience, this might not be complete in any case, and some items might be out of the spec scope but I wish these can be taken into account)

  1. task definition: what should be done, by whom, in which context, to whom, when, with what priority, where, etc.

  2. commit defined tasks: share the task in the EHR, will be on planned status

  3. communicate planned tasks: planned tasks are sent to the correspondent fulfillment systems, departments, units or specific people (actors)

  4. task execution status tracking: the execution of tasks should be tracked, and each status change be recorded and committed to the EHR so other parties can look at it (query)

  5. communicate task executions / status change: specific actors should receive information about status change on specific tasks (e.g. tasks they follow, tasks they defined/planned, tasks related to EHRs in which they participate)

  6. all associated information (care + administrative) generated from the task execution should be available in the EHR

d. “framwork”, "OBSRVATION" typos

Section 3.

a. “One difficulty with posting a full plan is that in some cases, the order is effectively open-ended, i.e. it has no intended completion”. I think this is used as argument to differentiate INSTRUCTION/ACTIVITY from TASK, but I don’t see the problem of creating a new INSTRUCTION/ACTIVITY. A complete plan for a chronic case would not be on one INSTRUCTION, would be a set of INSTRUCTIONs in the EHR of the patient.

b. One problem we have with the current INSTRUCTION/ACTIVITY and ACTION spec is that it is stated that the archetype for ACTIVITY.description should be equal to the ACTION.description, and that only applies to medication. This is on an email from last year (we talked about that on other thread).

Section 5, 6, 7. review of modela

a. Let me check if I got it right:

blue: definition

orange: execution tracking / status

b. I don’t see much difference between TASK_LIST and TASK_GROUP. Looking at the hierarchy & composite pattern, is like what we have on ITEM_TREE and CLUSTER, knowing that the tree is basically the same as the cluster.

c. Looking at the execution model on section 7 it seems no ACTIONs are needed to modify the execution status of a task. Is that correct? IMO this is easier to implement because we don’t need to model the ACTIONs to make the status change. On the other hand, it give us more responsibility in decide how and when those status changes happen. I’m not sure about this, but I would like to explore to have specific definitions for the records needed to execute a transition in the state machine of the tasks, like ACTION for ACTIVITY.

d. on fig 4. I’m not sure about some items on the model.

  1. COMPOSITION.category = task_list, not sure if the task list is more like a persistent (there is one task list per EHR) or event (multiple tasks lists for the same EHR)

  2. package task_planning includes task execution classes, maybe set the package name to “tasks” to avoid confusion between definition, planning and execution classes.

  3. TASK_LIST > CONTENT_ITEM, should there be a non-structural constraint that says “if COMPO.category=task_list, there should be at least one TASK_LIST in COMPO.content”.

  4. It “feels” something in the TASK_LIST_ITEM hierarchy should inherit from ENTRY, since that is an statement of what should be done.

  5. The idea of the DEFINED_TASK.prototype as defined in 6.2. seems the same as ACTIVITY.action_archetype_id, but since ENTRY is linked, an actual instance of the ACTION would be needed to be linked to the DEFINED_TASK, and that instance won’t have any data, just metadata. Not sure if that is correct, IMO this is not consistent with the current model.

  6. Also DEFINED_TASK.prototype to have of cardinality * confuses me on how it should be used.

  7. The only example used to describe the prototype attribute is medication. How should that be used to define tasks related to goals on vitals or lab results? or with the physiotherapy sessions? (see use cases above).

General comments:

There is an overlap with the current INSTRUCTION/ACTIVITY + ACTION model. Looking at the requirements and model hierarchy, DEFINED_TASK is almost the same as ACTIVITY. I would prefer to extend ACTIVITY than define a completely unrelated class that complies with the same requirements. Also, I would like to use the task execution model to represent actual execution status of ACTIVITIES, something that now is modeled in software outside the IM (Ian mentioned this a some time ago in the lists answering my questions about ACTIVITY status tracking).

Hi Pablo,

thanks for the comments.

I’ve added a which (briefly) describes the relationship to things like BPMN. Here it is noted that the Task Planning spec is designed to primarily address the question of patients as ‘cases’ rather than passive objects, such as tissue samples, images, or even the patient-as-imaging-subject, which is the patient in a passive role. We could potentially try to cover scenarios from imaging as well, but we probably need to work out which ones. Do you have specifics in mind? this is a good list; I’ve incorporated it into the top of the requirements section. Agree with these, but I think they are taken care of already so far. I may add in a section that makes it a bit clearer how the Task plan should connect to the EHR. fixed, thanks. actually, this is true regardless of whether there is an order or not. I’ve reworded somewhat. A complete plan for any non-trivial condition would almost certainly involve more than one Instruction. But Instructions only represent orders, not planned tasks. yes, I think we will need to look at that again, and possibly revise it. I’ve now fixed the colours in the instance diagrams to match those in the class diagrams. well, hierarchies appear pretty much ubiquitously in models of complex information, so they are bound to recur. this section of the model still being clarified. There can be multiple task lists per EHR. we might introduce some sub-packages - let’s see what implementers think. yes, this will need to be added, good catch. The ENTRY type corresponds to clinical statements, that is, a record of something said, thought, ordered, or done. Task Plan items are not clinical statements in that sense, they are something like fine-grained scheduling / planning notes. ENTRY instances are ‘about’ a subject of care; Task Plan items are ‘about’ work items. The idea of the prototype is to enable a partly populated ACTION (or OBSERVATION or ADMIN_ENTRY etc) to be attached as a prototype to a TASK, as a way of defining what the TASK is about. At execution time, this prototype can be used to create the ‘real’ ACTION or other ENTRY. I’ve added some explanation about this. At the moment, we have not looked at using Task Planning for lab result orders or goal management. ACTIVITY defines an order, or part of an order, and generally speaking, states the order in a terse clinical manner, e.g. ‘Amoxicillin 3td 7d’ (or equivalent structured form), or ‘left hip: Total hip replacement; stem type with acrylic cement fixation’ etc. The idea of TASKs is to define concrete steps, such as ‘administer 1 tab Amoxicillin at 16:00’, ‘apply bone cement within prepared socket’ etc. In theory, I suppose ACTIVITY could be used to do this, but this would not be the normal clinical way of stating an order, and the implementation experience from various openEHR customer sites indicates that the need is for fine-grained task definition, not order definition (which is already available). How this works out across the various use cases of course will need some experimentation, and I fully expect changes over the trial period of the specification. Right now however, there seems to be a pretty clear distinction between orders and tasks or steps. - thomas

A new version is now up, with substantial rework on the runtime classes, also other new sections elsewhere in the document.

  • thomas

Hi Thomas, is there any way to see a diff of the changes? Going through the full document again to detect changes is difficult. Thanks!

Shouldn’t “task planning” be “task planning and execution”? in reference to the model’s name

Hi Pablo,

well we needed a short name. The idea we had so far is that the primary theme of this specification is ‘planning’; execution etc comes as a logical consequence.

  • thomas

IMO planning is at the same level of execution, not sure why the short name is needed, trying to make it clear for the reader. But if the short name is a requirement, a more correct name would be “task management”, since it includes planning, execution, and maybe other processes / states associated with tasks.

yep, ‘task management’ would also be a good name for what it’s about. We can take a vote in the SEC on the final name, I’m happy with either.

  • thomas