Clinical Order Workflows
1.0.0-ballot - STU 1 Ballot

Clinical Order Workflows, published by HL7 International / Orders and Observations. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-cow-ig/ and changes regularly. See the Directory of published versions

## Workflow State Overview

Page standards status: Informative

This table outlines how a Request can be represented across its lifecycle, independent of the chosen FHIR exchange mechanism. Specification authors building on this IG may convey equivalent states using other methods (e.g., `MessageHeader.event`), but must ensure that required information is captured in both the Task and the Request. This guidance builds on the Task state machine

Not all states will apply to every workflow or use case, and implementations may not need to expose resources for every stage. Authors extending this guide may further refine these states using elements like `Task.businessStatus` to suit specific needs.

Note to balloters: Throughout this implementation guide there are references to a "performer of a Task". In FHIR R4, the Task resource only has an `owner` element, however FHIR R5 has also added a `performer` element. HL7 invites balloters to provide input on whether the `owner` element is sufficient to represent the performer concept, or if they may be different in some use cases.

### Common workflow states

Workflow State to Represent | Request resource representation | Task resource representation | Event resources representation | Descriptions
--- | --- | --- | --- | ---
Request Placed (no designated performer) | Request: - Status: active - Intent: order - 0..* SupportingInfo | Task: - Status: requested - Focus: [the Request] - Performer: [null] - Code: fulfill - Intent: order - 0..* Input | Not set | This state can be a starting point for cases where the patient chooses the performer, cases when someone can claim the task, etc.
Request placed and performer selected | Request: - Status: active - Intent: order | Task: - Status: requested - Performer: [specified] - Code: fulfill - Intent: order | Not set | This state can be a starting point for systems where the authorization of a request and the selection of a performer are done at the same time.
Request Placed and Multiple Potential Performers Notified | Request: - Status: active - Intent: order | 1..* Tasks: - Status: requested - Performer: [specified] - Code: request-fulfillment - Intent: order | Not set | This state can be a starting point for systems where there are multiple potential Fulfillers and they bid for the fulfillment.
Potential Fulfiller Awaiting for Information | Request: - Status: active - Intent: order | 1 Task: - Status: received - BusinessStatus: Awaiting Information - StatusReason/ReasonReference: [details on the information needed] - Performer: [specified] - Code: fulfill - Intent: order 0..* Tasks for other potential Fulfillers still seeking fulfillment | Not set |
Fulfiller Accepted | Request: - Status: active - Intent: order | 1..* Task: - Status: accepted - Performer: [specified] - Code: request-fulfillment - Intent: order | Not set | This state may be used where several potential Fulfillers may indicate they can provide service, and the Placer and Patient then choose.
Fulfiller Selected | Request: - Status: active - Intent: order | 1 Task: - Status: accepted - BusinessStatus: selected - Performer: [specified] - Code: fulfill - Intent: order 0..* Task: - Status: cancelled - StatusReason: not selected - Performer: [specified] - Code: fulfill - Intent: order | Not set | This state represents the selection of one out of possibly multiple Fulfillers who had bid on the Task.
In Progress | Request: - Status: active - Intent: order | Task: - Status: in-progress - Performer: [specified] - Code: fulfill - Intent: order | Not set |
Partial fulfillment | Request: - Status: active - Intent: order | Task: - Status: in-progress - BusinessStatus: [images available, end exam, awaiting interpretation, etc.] - Code: fulfill - Intent: order | Awaiting Interpretation |
Partial fulfillment | Request: - Status: active - Intent: order | Task: - Status: in-progress - BusinessStatus: [images available, end exam, awaiting interpretation, etc.] - Code: fulfill - Intent: order - 1..* Output | Draft |
Preliminary fulfillment | Request: - Status: active - Intent: order | Task: - Status: in-progress - BusinessStatus: Preliminary - Code: fulfill - Intent: order - 1..* Output | Preliminary |
Complete | Request: - Status: completed - Intent: order | Task: - Status: completed - Performer: [specified] - Code: fulfill - Intent: order - 0..* Output (DiagnosticReport, Observations, DocumentReference, CarePlan, etc.) | Complete (if service has an output) |