FHIR Chat · Task.basedOn vs Task.focus · workflow

Stream: workflow

Topic: Task.basedOn vs Task.focus


view this post on Zulip Vassil Peytchev (Jan 16 2021 at 04:01):

Regarding FHIR#29636, I wanted to try to expand on what I see as the issue, and see what other may think before the call on Monday

The definitions for Task.basedOn and Task.focus are as follows:

basedOn Short Description:

Request fulfilled by this task

basedOn Long Description

BasedOn refers to a higher-level authorization that triggered the creation of the task. It references a "request" resource such as a ServiceRequest, MedicationRequest, ServiceRequest, CarePlan, etc. which is distinct from the "request" resource the task is seeking to fulfill. This latter resource is referenced by FocusOn. For example, based on a ServiceRequest (= BasedOn), a task is created to fulfill a procedureRequest ( = FocusOn ) to collect a specimen from a patient.

focus Short Description:

What task is acting on

focus Long Description:

The request being actioned or the resource being manipulated by this task.

These definitions are unclear and contradictory, and the workflow workgroup is trying to rectify that. One view on clarifying this is that the Request that the task is trying to fulfil is always referenced via focus. I disagree with that view, and the examples that are being discussed are also confusing.

In the basedOn long description example, there is supposed to be a Lab Order (ServiceRequest) referenced via basedOn and a Procedure (another ServiceRequest) representing Specimen collection referenced via focus, and the Task is supposed to fulfil the Procedure. While that may make some sense if we were talking about how to design an app to record the specimen collection, I don't think it makes sense from an interoperability workflow point of view.

Another example is that there is an existing prescription (MedicationRequest), and the patient is going to undergo a Surgical Procedure (ServiceRequest). As part of preparing for surgery, the existing prescription needs to be stopped. This is represented as a Task where basedOn is the ServiceRequest of the surgical procedure, and the focus is the MedicationRequest which needs to be stopped. This actually makes much more sense , but it doesn't support the view that Request that the task is trying to fulfil is always referenced via focus - the fulfillment of the Medication Request would be a completely different Task.

The argument, as far as I understand it, is that there are "higher-level" authorizations that are different from the requests that are being fulfilled, and the former should go in basedOn, while the latter belong in focus. I don't understand that distinction. The way I see it, we have common events in the healthcare process: lab orders, prescriptions, imaging procedures, referrals. All of these are Authorizations represented as Requests. The request for fulfilment of these requests is what is represented via Task, and they are always referenced via Task.basedOn.

In the above examples: for the lab order/specimen collection example, I am not aware of use cases where the specimen collection is a separate procedure, unless we are talking about invasive procedures like some biopsies. Even then, there will a Task for performing the biopsy with basedOn referencing the ServiceRequest for the procedure, and the Task to fulfill the diagnostic order will have basedOn referencing the ServiceRequest for the order, and the focus will be the specimen obtained during the biopsy.

For the second example, the Task to stop the medication will be as described, but the other Task to fulfil the MedicationRequest will point to that request via basedOn, not focus.

To make things even more confusing, there is also Task.reason (a future CodeableReference).


Last updated: Apr 12 2022 at 19:14 UTC