Stream: workflow
Topic: Task.basedOn vs Task.focus
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