FHIR Implementation Guide: Patient Corrections 1.0.2
1 Introduction
This page describes the process of filing correction requests on medical records. A correction request is initiated by a patient on an existing medical record and received by a healthcare provider.
This information standard is inspired by the international HL7 Patient Corrections IG. However, the first version of this information standard is more restricted than Patient Corrections; specifically, the possibility of doing follow-up on a correction request is omitted. Also, contrary to most other use cases for MedMij, no specific HCIM model has been identified for exchanging communication between patient (PHR) and practitioner (XIS).
This IG is a technical representation of the functional design and follows the principles of the general MedMij FHIR IG.
2 Actors involved
The table shows the relevant actors, systems and FHIR CapabilityStatements. The CapabilityStatements demonstrate the minimum conformance requirements for the described use cases.
Actors | Systems | FHIR CapabilityStatements | |||
---|---|---|---|---|---|
Name | Description | Name | Description | Name | Description |
Patient | The user of a personal healthcare environment | PHR | Personal health record
|
CapabilityStatement: Send Receive | FHIR client/server requirements |
Healthcare provider | The user of a XIS | XIS | Healthcare information system
|
3 Boundaries and relationships
This FHIR implementation guide assumes that the PHR system is able to make a connection with the XIS and create resources. It does not provide information on finding the right XIS nor does it provide information about security. These infrastructure and interface specifications are described in the 'MedMij Afsprakenstelsel'.
The MedMij use case for Patient Corrections overlaps partially with the uses cases described in the HL7 Patient Corrections IG. Therefore, this IG tries to align as closely as possible to the HL7 Patient Corrections IG. However, there are key differences that prevent the verbatim use:
- The current use case is more restricted.
- The profiles for the MedMij use case reference HCIM based profiles for common resources like Patient, Practitioner, PractitionerRole and Organization.
- This IG uses the OperationOutcome resource as a confirmation of receipt.
- The use case specific FHIR profiles (like Communication) are not derived but copied in order for them to align with other FHIR materials in the Dutch realm.
mustSupport
flags are not used in this IG.Bundle.type
=transaction and transaction-response are used instead ofBundle.type
=collection.
4 Use case: send correction request on medical record
This use case covers the process of sending a correction request on an existing medical record. Other use cases might be added in the future.
4.1 Client sends PatientCorrectionsCommunication - PHR
Because sending a correction request can consist of (one or more) Communication resource(s) along with supporting resources, a transaction
interaction is used. This allows for creating a set of resources in a single interaction and makes it possible to include referenced secondary resources if needed. Querying resources on the server before submitting the transaction Bundle (for instance: to be able to reference a Patient resource on the server) is not part of this FHIR IG, nor is it required that a client is able to reuse previously requested resources from use cases outside this IG.
A transaction
interaction is performed by an HTTP POST command as shown:
POST [base]
The body of the POST submission is a Bundle with Bundle.type
=transaction. Each entry carries request details (Bundle.entry.request
) that provides the HTTP details of the action in order to inform the system processing the transaction of what to do for the entry. (Note: Bundle.request
is optional in FHIR, but SHALL be present, even for the resources which aren't Communications. See the overarching principles for more information.)
In order for the server to return each created resource in its entire form, the client SHOULD include the following HTTP Prefer header: Prefer: return=representation
.
The resources included in the bundle SHALL conform to the profiles listed in the table below.
Examples:
Bundle containing one Communication resource |
---|
<Bundle xmlns="http://hl7.org/fhir">
<type value="transaction"/>
<entry>
<fullUrl value="urn:uuid:0bd97f28-a942-4cd4-a929-dd8391cbc83f"/>
<resource>
<Communication xmlns="http://hl7.org/fhir">
<meta>
<profile value="http://nictiz.nl/fhir/StructureDefinition/dwv-PatientCorrectionsCommunication"/>
</meta>
<identifier>
<system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.130.1.40"/>
<value value="4c6a73b0-bf86-43f4-bd98-2eed52d7161e"/>
</identifier>
<status value="completed"/>
<category>
<coding>
<system value="https://hl7.org/fhir/uv/fhir-patient-correction/CodeSystem/PatientCorrectionCommunicationTypes"/>
<code value="medRecCxReq"/>
<display value="Correction request by the Patient or RelatedPerson"/>
</coding>
</category>
<subject>
<reference value="Patient/..."/>
...
</subject>
<topic>
<text value="Wijzigingsverzoek: telefoonnummer"/>
</topic>
<sent value="2022-03-29T09:41:00Z"/>
<recipient>
<reference value="Organization/..."/>
...
</recipient>
<sender>
<reference value="Patient/..."/>
...
</sender>
<payload>
<contentString value="Het telefoonnummer van mijn eerste contactpersoon klopt niet. Jaap Stiekema heeft het nummer 06-12345678."/>
</payload>
</Communication>
</resource>
<request>
<method value="POST"/>
<url value="Communication"/>
</request>
</entry>
</Bundle>
|
Bundle containing multiple Communication resources and secondary resources |
---|
<Bundle xmlns="http://hl7.org/fhir">
<type value="transaction"/>
<entry>
<fullUrl value="urn:uuid:f8384e4e-6549-492a-b82a-b8f6101876b3"/>
<resource>
<Communication xmlns="http://hl7.org/fhir">
<meta>
<profile value="http://nictiz.nl/fhir/StructureDefinition/dwv-PatientCorrectionsCommunication"/>
</meta>
<identifier>
<system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.130.1.40"/>
<value value="0287d8e7-d47b-4465-9cff-fab15bb3dfd2"/>
</identifier>
<status value="completed"/>
<category>
<coding>
<system value="https://hl7.org/fhir/uv/fhir-patient-correction/CodeSystem/PatientCorrectionCommunicationTypes"/>
<code value="medRecCxReq"/>
<display value="Correction request by the Patient or RelatedPerson"/>
</coding>
</category>
<subject>
<reference value="urn:uuid:c4e8dce5-0f69-42b2-b10b-f480cc377cd2"/>
<type value="Patient"/>
<display value="Willemijn Wijziger"/>
</subject>
<topic>
<text value="Allergie niet juist"/>
</topic>
<sent value="2022-03-29T09:41:00Z"/>
<recipient>
<reference value="urn:uuid:a846de6b-a709-42e8-9a49-eaa359e666a5"/>
<type value="Organization"/>
<display value="Erasmus Medisch Centrum"/>
</recipient>
<sender>
<reference value="urn:uuid:c4e8dce5-0f69-42b2-b10b-f480cc377cd2"/>
<type value="Patient"/>
<display value="Willemijn Wijziger"/>
</sender>
<payload>
<contentString value="In mijn dossier staat dat ik allergisch ben voor bijengif, dit is niet juist. Kunt u dit verwijderen?"/>
</payload>
</Communication>
</resource>
<request>
<method value="POST"/>
<url value="Communication"/>
</request>
</entry>
<entry>
<fullUrl value="urn:uuid:6c2f1861-76bb-48fb-8a76-a80adfd2243f"/>
<resource>
<Communication xmlns="http://hl7.org/fhir">
<meta>
<profile value="http://nictiz.nl/fhir/StructureDefinition/dwv-PatientCorrectionsCommunication"/>
</meta>
<identifier>
<system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.130.1.40"/>
<value value="7c9e1076-4e13-4010-a166-7ca3fe6618fc"/>
</identifier>
<status value="completed"/>
<category>
<coding>
<system value="https://hl7.org/fhir/uv/fhir-patient-correction/CodeSystem/PatientCorrectionCommunicationTypes"/>
<code value="medRecCxReq"/>
<display value="Correction request by the Patient or RelatedPerson"/>
</coding>
</category>
<subject>
<reference value="urn:uuid:c4e8dce5-0f69-42b2-b10b-f480cc377cd2"/>
<type value="Patient"/>
<display value="Willemijn Wijziger"/>
</subject>
<topic>
<text value="Mijn gewicht is fout"/>
</topic>
<sent value="2021-03-29T09:41:00Z"/>
<recipient>
<reference value="urn:uuid:a846de6b-a709-42e8-9a49-eaa359e666a5"/>
<type value="Organization"/>
<display value="Erasmus Medisch Centrum"/>
</recipient>
<sender>
<reference value="urn:uuid:c4e8dce5-0f69-42b2-b10b-f480cc377cd2"/>
<type value="Patient"/>
<display value="Willemijn Wijziger"/>
</sender>
<payload>
<contentString value="Op 14 februari 2022 woog ik 72 kg en er staat dat ik 74 kg weeg, dit is fout."/>
</payload>
</Communication>
</resource>
<request>
<method value="POST"/>
<url value="Communication"/>
</request>
</entry>
<entry>
<fullUrl value="urn:uuid:287837d4-ae09-49b8-a4dd-07efac1e81fa"/>
<resource>
<Communication xmlns="http://hl7.org/fhir">
<meta>
<profile value="http://nictiz.nl/fhir/StructureDefinition/dwv-PatientCorrectionsCommunication"/>
</meta>
<identifier>
<system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.130.1.40"/>
<value value="3bb12830-8b93-4484-a595-97653a68f17c"/>
</identifier>
<status value="completed"/>
<category>
<coding>
<system value="https://hl7.org/fhir/uv/fhir-patient-correction/CodeSystem/PatientCorrectionCommunicationTypes"/>
<code value="medRecCxReq"/>
<display value="Correction request by the Patient or RelatedPerson"/>
</coding>
</category>
<subject>
<reference value="urn:uuid:c4e8dce5-0f69-42b2-b10b-f480cc377cd2"/>
<type value="Patient"/>
<display value="Willemijn Wijziger"/>
</subject>
<topic>
<text value="Tijdelijk adres aanpassen"/>
</topic>
<sent value="2021-03-29T09:41:00Z"/>
<recipient>
<reference value="urn:uuid:a846de6b-a709-42e8-9a49-eaa359e666a5"/>
<type value="Organization"/>
<display value="Erasmus Medisch Centrum"/>
</recipient>
<sender>
<reference value="urn:uuid:c4e8dce5-0f69-42b2-b10b-f480cc377cd2"/>
<type value="Patient"/>
<display value="Willemijn Wijziger"/>
</sender>
<payload>
<contentString value="Wij gaan tijdelijk op een ander adres wonen in verband met een verbouwing, kunt u mijn adres aanpassen naar: Knolweg 1000, 9999 XA Stitswerd."/>
</payload>
</Communication>
</resource>
<request>
<method value="POST"/>
<url value="Communication"/>
</request>
</entry>
<entry>
<fullUrl value="urn:uuid:c4e8dce5-0f69-42b2-b10b-f480cc377cd2"/>
<resource>
<Patient xmlns="http://hl7.org/fhir">
<meta>
<profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient"/>
</meta>
<identifier>
<system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.130.1.135"/>
<value value="123456789"/>
</identifier>
<name>
<use value="official" />
<text value="Willemijn Wijziger" />
<family value="Wijziger">
<extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-name">
<valueString value="Wijziger" />
</extension>
</family>
<given value="Willemijn">
<extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier">
<valueCode value="BR" />
</extension>
</given>
</name>
</Patient>
</resource>
<request>
<method value="POST"/>
<url value="Patient"/>
</request>
</entry>
<entry>
<fullUrl value="urn:uuid:a846de6b-a709-42e8-9a49-eaa359e666a5"/>
<resource>
<Organization xmlns="http://hl7.org/fhir">
<meta>
<profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthcareProvider-Organization"/>
</meta>
<identifier>
<system value="http://fhir.nl/fhir/NamingSystem/agb-z"/>
<value value="06020806"/>
</identifier>
<name value="Erasmus Medisch Centrum"/>
</Organization>
</resource>
<request>
<method value="POST"/>
<url value="Organization"/>
</request>
</entry>
</Bundle>
|
4.1.1 Guidance on resource contents
On top of the guidance in the functional design and the descriptions in the relevant FHIR profiles, the list below provides direction on how to use the elements in the resources used in this information standard.
Examples of the resources below can be found on Simplifier.
4.1.1.1 PatientCorrectionsCommunication
Every instance of PatientCorrectionsCommunication (Communication) SHALL contain at least the following elements upon initial creation:
identifier
: unique identifier for the purpose of data deduplicationstatus
: with fixed value completedcategory
: with fixed value medRecCxReqsubject
: the patient that the correction request applies totopic
: subject line, like the subject of an emailsent
: the date and time the correction request was sentrecipient
: the recipient of the correction request, healthcare provider and optionally (if known) the health professionalsender
: a reference to the sender of the correction requestpayload
: the actual correction request message as a string
4.1.1.2 Patient
The Patient instance SHOULD contain at least the following elements:
name
: the patient's birth name
It is encouraged to include an internal hospital patient number using the identifier
element, if known.
4.1.1.3 HealthcareProvider
The HealthcareProvider (Organization) instance SHOULD contain at least the following elements:
name
: the name of the healthcare provider, in MedMij context this name can be derived from the entry in the ZAL (healthcare providers list, Dutch: Zorgaanbiederslijst)
It is encouraged to include the organization's unique identifier like AGB or URA using the identifier
element, if known.
4.1.1.4 HealthProfessional
The HealthProfessional (Practitioner/PractitionerRole) instance SHOULD contain at least the following elements:
name
: the name of the practitioner
It is encouraged to include a practitioner's unique identifier like AGB or BIG using the identifier
element, if known.
4.2 Server response - XIS
The server returns an HTTP Status code appropriate to the processing outcome and returns a Bundle, with Bundle.type
=transaction-response, that contains one entry for each entry in the request, in the same order, with the outcome of processing the entry. Because the client request contains the HTTP Prefer header Prefer: return=representation
, the server SHOULD return a full version of all created resources.
It is conceivable that future versions of this information standard will provide more detailed information on further processing and workflow using the Task resource, thus follow the international HL7 Patient Corrections IG. At this point in time, it is not expected that a XIS spawns a Task and creates a reference to this Task in |
Example:
<Bundle xmlns="http://hl7.org/fhir">
<type value="transaction-response"/>
<entry>
<resource>
<Communication xmlns="http://hl7.org/fhir">
<id value="a9f7a826-fd3f-444a-9457-0d444ee7a966"/><!-- ID assigned by the XIS after receiving this resource-->
<meta>
<profile value="http://nictiz.nl/fhir/StructureDefinition/dwv-PatientCorrectionsCommunication"/>
</meta>
<identifier>
<system value="urn:oid:2.16.840.1.113883.2.4.3.11.999.130.1.40"/>
<value value="4c6a73b0-bf86-43f4-bd98-2eed52d7161e"/><!-- Identifier assigned by the PHR upon initial POST -->
</identifier>
...
</Communication>
</resource>
...
</Bundle>
A server SHOULD provide additional information (an acknowledgment of receipt) on the received correction request(s) by adding an OperationOutcome to the response with OperationOutcome.severity
=information, OperationOutcome.code
=informational and the actual message on the OperationOutcome.details.text
element.
This IG does not cover the actual contents of the text in the OperationOutcome, as this text can be subject to agreements made in programmes like MedMij, VIPP 5 or between healthcare providers. This also applies to support for multiple languages (localization). |
Example:
<OperationOutcome xmlns="http://hl7.org/fhir">
<language value="nl-NL"/>
<issue>
<severity value="information"/>
<code value="informational"/>
<details>
<text value="Uw wijzigingsverzoek is ontvangen, neem voor meer informatie contact op met uw zorgaanbieder. Bij levensbedreigende situaties belt u 112."/>
</details>
</issue>
</OperationOutcome>
4.3 RESTful interactions
┌───┐ ┌───┐ │PHR│ │XIS│ └─┬─┘ └─┬─┘ ╔═══════════════════════════════╗│ │ ║Send a new correction request ░║│ │ ╚═══════════════════════════════╝│ │ │ Create (POST) Bundle containing Communication(s) │ │────────────────────────────────────────────────────────────────>│ │ │ │Return Bundle with created Communication(s) and OperationOutcome │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ ┌─┴─┐ ┌─┴─┐ │PHR│ │XIS│ └───┘ └───┘
5 FHIR profiles
MedMij 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. |
Profile name | FHIR Resource | HCIM EN | Canonical URL |
---|---|---|---|
dwv-PatientCorrectionsCommunication | Communication | n/a | http://nictiz.nl/fhir/StructureDefinition/dwv-PatientCorrectionsCommunication |
nl core Patient | Patient | Patient | http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient |
nl core HealthcareProvider | Organization | HealthcareProvider | http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthcareProvider-Organization |
nl core HealthProfessional Practitioner | Practitioner | HealthProfessional | http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-Practitioner |
nl core HealthProfessional PractitionerRole | PractitionerRole | http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthProfessional-PractitionerRole |
6 Release notes
Release notes can be found on the functional design page.
7 Support
For questions and change requests regarding this IG, please create a ticket in BITS.