Skip to content

Commit

Permalink
Merge pull request #641 from lmckenzi/order-dispatch-changes
Browse files Browse the repository at this point in the history
Made order and task repeat, changed names.
  • Loading branch information
isaacvetter authored Jan 3, 2024
2 parents d2a3b96 + 80bf313 commit e2baa68
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions docs/hooks/order-dispatch.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
| Metadata | Value
| ---- | ----
| specificationVersion | 2.0
| hookVersion | 1.0
| hookVersion | 1.1
| hookMaturity | [0 - Draft](../../specification/current/#hook-maturity-model)

## Workflow

The `order-dispatch` hook fires when a practitioner is selecting a candidate performer for a pre-existing order that was not tied to a specific performer. For example, selecting an imaging center to satisfy a radiology order, selecting a cardiologist to satisfy a referral, etc. This hook only occurs in situations where the order is agnostic as to who the performer should be and a separate process (which might be performed by back-office staff, a central dispatch service, or even the ordering clincian themselves at a later time) is used to select and seek action by a specific performer. It is possible that the same order might be dispatched multiple times, either because initial selected targets refuse or are otherwise unable to satisfy the order, or because the performer is only asked to perform a 'portion' of what's authorized (the first monthly lab test of a year-long set, the first dispense of a 6 month order, etc.)
The `order-dispatch` hook fires when a practitioner is selecting a candidate performer for a pre-existing order or (set of orders) that was not assigned to a specific performer. For example, selecting an imaging center to satisfy a radiology order, selecting a cardiologist to satisfy a referral, etc. This hook only occurs in situations where the order is agnostic as to who the performer should be and a separate process (which might be performed by back-office staff, a central dispatch service, or even the ordering clincian themselves at a later time) is used to select and seek action by a specific performer. It is possible that the same order might be dispatched multiple times, either because initial selected targets refuse or are otherwise unable to satisfy the order, or because the performer is only asked to perform a 'portion' of what's authorized (the first monthly lab test of a year-long set, the first dispense of a 6 month order, etc.). Note that the order isn't updated to include the performer in this situation, as the authorization of who could theoretically perform the order isn't changed by seeking fulfillment by a specific provider.

This "request for fulfillment" process is typically represented in FHIR using [Task](http://hl7.org/fhir/task.html). This resource allows identifying the order to be acted upon, who is being asked to act on it, the time-period in which they're expected to act, and any limitations/qualifications to 'how much' of the order should be acted on.

Expand All @@ -19,19 +19,19 @@ Decision support that may be relevant for this hook might include information re
Field | Optionality | Prefetch Token | Type | Description
----- | -------- | ---- | ---- | ----
`patientId` | REQUIRED | Yes | *string* | The FHIR `Patient.id` of the current patient in context
`order` | REQUIRED | Yes | *string* | The FHIR local reference for the Request resource for which fulfillment is sought E.g. `ServiceRequest/123`
`dispatched-orders` | REQUIRED | Yes | *array* | Collection of the FHIR local references for the Request resource(s) for which fulfillment is sought E.g. `ServiceRequest/123`
`performer` | REQUIRED | Yes | *string* | The FHIR local reference for the Practitioner, PractitionerRole, Organization, CareTeam, etc. who is being asked to execute the order. E.g. `Practitioner/456`
`task` | OPTIONAL | No | *object* | DSTU2/STU3/R4 - Task instance that provides a full description of the fulfillment request - including the timing and any constraints on fulfillment
`fulfillment-tasks` | OPTIONAL | No | *array* | DSTU2/STU3/R4/R5 - Collection of the Task instances (as objects) that provides a full description of the fulfillment request - including the timing and any constraints on fulfillment. If Tasks are provided, each will be for a separate order and SHALL reference one of the dispatched-orders.

## Examples
### Example (R4)

```json
"context":{
"patientId" : "1288992",
"order" : "ServiceRequest/proc002",
"dispatched-orders" : ["ServiceRequest/proc002"],
"performer" : "Organization/some-performer",
"task" : {
"fulfillment-tasks" : [{
"resourceType" : "Task",
"status" : "draft",
"intent" : "order",
Expand All @@ -55,7 +55,7 @@ Field | Optionality | Prefetch Token | Type | Description
"owner" : {
"reference" : "Organziation/some-performer"
}
}
}]
}
```

Expand All @@ -64,3 +64,4 @@ Field | Optionality | Prefetch Token | Type | Description
Version | Description
---- | ----
1.0 | Initial Release
1.1 | Adjusted context names and cardinalities based on feedback

0 comments on commit e2baa68

Please sign in to comment.