eOverdracht FHIR Implementation Guide
1 Introduction
This is the implementation guide for the information standard eOverdracht, version . This standard is described in this functional specification (TODO) and implemented here using FHIR(STU3) HL7 FHIR, STU3. This implementation guide assumes that the reader is familiar with this FHIR version.
Apart from this document, the guidelines as specified in general FHIR Implementation Guide apply. In particular, the reader should take note of the Use case overarching principles and the use of FHIR packages.
2 Actors involved
Actors | Systems | FHIR Capability Statements | |||
---|---|---|---|---|---|
Name | Description | Name | Description | Name | Description |
Sending organization | The organization or health care professional(?) at the organization that wants to transfer the care of a patient | Sending XIS | Healthcare information system of the sending organization | CapabilityStatement: Sending XIS | FHIR requirements for sending XIS |
Receiving organization | The organization or health care professional(?) at the organization that the sending organization wants to transfer the care of a patient to | Receiving XIS | Healthcare information system of the receiving organization | CapabilityStatement: Receiving XIS | FHIR requirements for receiving XIS |
3 Workflow and message structure
3.1 Overview
The use cases within eOverdracht are not isolated, but form a workflow that may include the negotiation of the transfer of the patient, and ends with the transfer of the medical record. In FHIR, this is handled by using a Task resource. This resource tracks the worflow (see #Workflow) and acts as the entry point for all data exchanges (see #Use of the Composition resource) for the transfer of care for a patient.
3.2 Task
3.2.1 Task requirements
The requirements for the Task resource in the eOverdracht context are specified using the http://nictiz.nl/fhir/StructureDefinition/eOverdracht-Task profile. This profile SHALL be used for the eOverdracht workflow.
The Task instance SHALL be hosted on the server of the sending XIS. Both the sending and the receiving XIS need to be able to update the Task. The sending XIS MAY use business rules to reject an update, for example if invalid status change is used.
Both the sending and the receiving XIS SHALL monitor the Task resource for changes. It is expected that the sending XIS will use a notification mechanism to inform the receiving XIS of creation or updates of the Task (see #Notifications), but the receiving XIS could use a polling mechanism as well.
For each combination of sending and receiving XIS, a dedicated instance of the Task resource SHALL be used for each transfer situation. This is true even when the sending XIS wants to send the same request to multiple parties. The reason for this is that the Task status is used to negotiate the transfer of care, so it cannot be used simultaneously for multiple recipients.
3.2.2 Task invocations
Notifications to the receiving XIS are not expected to contain a logical id to the Task. Hence, the receiving XIS should use a combination of a search interaction and the _lastUpdated
search parameter to retrieve the eOverdracht Tasks that have been added are changed since the last invoation:
GET base/Task?code=http://snomed.info/sct|308292007&_lastUpdated=[time of last request]
Note 1: More than one result can be returned, for example when an additional Task can have been modified before the notification has been sent, when the receiving XIS choose to batch search interactions, etc.
Note 2: It is up to the receiving XIS to detect if a result is a new Task instance or a change to an existing instance, and if so, what has been changed since the last invocation.
The receiving XIS can update a Task hosted by the sending XIS using a PUT operation:
PUT base/Task/[id]
The body should be the original Task with the needed modifications. The sending XIS SHOULD check the update for errors and inconsistencies. If the update is rejected, the sending XIS SHALL response with a HTTP 422 status code and an OperationOutcome detailing the problem.
3.2.3 Notifications
It is expected that the sending XIS will notify the receiving XIS when a new Task is created or when an existing Task is updated. Although the notification mechanism is out of scope for the eOverdracht information standard, it is assumed that the notification does not contain a Task resource id. Rather, it signals that the receiving server should perform a search at the sending server to look for additions or changes in the eOverdracht Task resources.
A straightforward implementation for this notification mechanism is for the notifying party to make an empty POST request on a pre-determined endpoint at the party that should be notified. This could be arranged using the FHIR subscriptions mechanism, but the endpoints could also be arranged by other means.
3.3 Use of the Composition resource
The advance notice (Aanmeldbericht) and the (three variants of) the nursing handoff (Overdrachtsbericht) are mainly built up of individual FHIR resources, selected by the sending organization to form a coherent set of information relevant to the receiving organization. The bulk of these resources are not referenced directly from the Task. Instead, the Task references a Composition resource which in turn assembles the references to all individual FHIR resources. For this purpose, the Composition profiles described in #FHIR profiles SHALL be used.
3.3.1 Composition invocations
The receiving XIS MAY use either of the following mechanism for retrieving the individual FHIR resources referenced in the Compostion resource.
- As a Document
- The receiving XIS uses the
$document
operation to retrieve both the Composition and all referenced resources as a single document Bundle.GET [base]/Composition/[id]/$document
- Individual requests
- The receiving XIS first retrieves the Composition resource
GET [base]/Compositon/[id]
Then the necessary other resources referenced can be fetched using aGET
interaction.
The sending XIS SHALL support both mechanisms.
3.4 Using Task to manage the workflow
The Task is the main entry point for the eOverdracht transactions. The eOverdracht workflow starts with the retrieval of a new Task instance by the receiving XIS, and all subsequent steps in the worflow are mediated by updates to this Task instance.
The eOverdracht transactions are mapped to FHIR in the following way:
eOverdracht transaction | Task | |
---|---|---|
Send advance notice |
| |
Send response to advance notice | ||
Accept transfer |
| |
Reject transfer |
| |
Propose alternate date |
| |
Respond to alternate proposed date | ||
Accept alternate proposed date: |
| |
Reject alternate proposed date: |
| |
Send nursing handoff |
| |
Send confirmation of nursing handoff |
|
The following sequence diagrams illustrate the relevant exchanges and state transitions:
Normal flow | Negotiate alternative date |
---|---|
3.4.1 Partial workflow
When the transfer has to be carried out without the negotiation phase, the sending XIS will create the Task instance with Task.status
already set to accepted and Task.input:nursingHandoff
populated.
3.4.2 Brokers
The use of a broker to find an available healthcare provider for the patient transfer fall outside the scope of the eOverdracht information standard. However, it is possible to start the workflow without knowing the receiving organization, which allows for the use of a broker. In this situation, for the sending XIS the broker acts as a receiving XIS, and for the receiving XIS the broker acts as a sending XIS.
When Task.input:nursingHandoff
is populated with the nursing handoff Composition, Task.owner
MUST be populated with the receiving organization.
4 FHIR profiles
eOverdracht uses the FHIR Packaging mechanism. This conveniently bundles all profiles, terminology, example material and other conformance resources you need into a single archive, which can be downloaded or installed using the appropriate FHIR tooling. This version of the information standard uses the following packages: Note: packages use Semantic Versioning. Other versions can be used at will as long as they have the same major.minor number or a minor number higher than the stated version. |
4.1 Infrastructure
The following table lists the FHIR profiles that should be used for the infrastructural parts of the eOverdracht information standard. The mapping to the functional data elements is given using the mapping within these profiles.
HCIM Name | FHIR profile |
---|---|
eOverdracht Task | http://nictiz.nl/fhir/StructureDefinition/eOverdracht-Task |
Composition for advance notice (Aanmeldbericht) | http://nictiz.nl/fhir/StructureDefinition/eOverdracht-AdvanceNotice |
Composition for nursing handoff adults (Overdrachtsbericht volwassenen) | http://nictiz.nl/fhir/StructureDefinition/eOverdracht-NursingHandoff-Adults |
Composition for nursing handoff childcare 0-1 yo (Overdrachtsbericht kinderen 0-1 jaar) | http://nictiz.nl/fhir/StructureDefinition/eOverdracht-NursingHandoff-Childcare-0-1yo |
Composition for nursing handoff childcare 1-18 yo (Overdrachtsbericht kinderen 1-18 jaar) | http://nictiz.nl/fhir/StructureDefinition/eOverdracht-NursingHandoff-Childcare-0-1yo |
4.2 HCIMs
The following table lists the FHIR profiles that implement the HCIMs used within eOverdracht.