MedMij FHIR Implementation Guide: BgLZ

Uit informatiestandaarden
Versie door Pieter Edelman (overleg | bijdragen) op 29 jul 2020 om 19:36 (Tekst vervangen - "{{Simplifier\|([^\|}]+)\|([^(scope=)][^\|}]+)" door "{{Simplifier|$1|title=$2")
Naar navigatie springen Naar zoeken springen



Naar medmij.nl
Patient Summary (BgZ)
AfsprakenstelselFunctioneelTechnischAfspraken-Functioneel-Technisch

1 Introduction

Go to functional design

This page provides the technical specification of the exchange of long-term healthcare information (Dutch: Basisgegevens Langdurige Zorg or BgLZ) based on a selection of Dutch Health Care Information Models. The specification is based on this functional design.

2 Actors involved

Actors Systems FHIR Capability Statements
Name Description Name Description Name Description
Patient The user of a personal healthcare enviorment. PHR Personal health record Verwijzing.png CapabilityStatement: Client FHIR Client requirements
Healthcare professional The user of a XIS XIS Healthcare information system Verwijzing.png CapabilityStatement: Server FHIR Server requirements

3 Boundaries and Relationships

The BgLZ has similarities with the Basisgegevensset Zorg (BgZ) and Basisgegevens GGZ (GGZ) but is definitely different. These information standards use much of the same HCIM based FHIR profiles for exchanging information. Wherever possible every attempt is made to re-use profiles. The BgLZ use case also has unique profiles compared to the aforementioned use cases, such as OutcomeOfCare. In addition, it uses a CareTeam profile without an underlying HCIM. A second thing to note is that also the selection of requested information per HCIM may differentiate. For example, only a subset of LaboratoryResults or AllergyIntolerance is expected to be returned by a XIS. This page, which belongs to the BgLZ functional design, and related transactions provide details on the information that is expected to be exchanged.

Medication information is part of a good overview of patients in long-term healthcare. Retrieving medication information by a PHR is however out of scope for this information standard. A separate information standard, MedicationProcess, is intended to serve this purpose.

4 Use case: Retrieve BgLZ information

This FHIR implementation guide assumes that the PHR system is able to make a connection to the right XIS that contains the patient's information. It does not provide information on finding the right XIS nor does it provide information about security. Moreover, each transaction is performed in the context of a specific authenticated patient, for whose context (token) has been established using the authentication mechanisms described in the 'Afsprakenstelsel'. Each XIS Gateway is required to perform filtering based on the patient associated with the context for the request, so only the records associated with the authenticated patient are returned. For this reason, search parameters should not be included for patient identification.

Go to Afsprakenstelsel

4.1 Introduction

The retrieve BgLZ transaction is used by the PHR to retrieve long-term healthcare information from a XIS.

4.2 Actors

Transaction group Transaction Actor Role
Retrieve BgLZ (PULL) Retrieve BgLZ request Patient (using a PHR) Request long-term healthcare information from a XIS
Retrieve BgLZ response Healthcare professional (using a XIS) Serves long-term healthcare information to a PHR

4.3 Invocations

4.3.1 PHR: request message

The PHR system requests the BgLZ using individual search interactions. The BgLZ consists of multiple FHIR resources with certain constraints. To obtain the patient's BgLZ, the client can use multiple individual search operations based on specified search queries. The interactions are performed by an HTTP GET as shown:

GET [base]/[type]/{?[parameters]{&_format=[mime-type]}}

The table below shows in the first four columns the BgLZ sections, the HCIMs that constitute those sections and the specific content of the BgLZ. The last column shows the FHIR search queries to obtain the BgLZ information. These queries and expected responses are based on StructureDefinitions listed in this section.

# BgLZ Section HCIM EN Content Search URL
1 Patient information Patient Identification, birthdate, gender, deceasedindicator, contact details, marital status, and general practitioner (practitioner or organization)
GET [base]/Patient?_include=Patient:general-practitioner
2 Treatment Directives TreatmentDirective Known treatment directives
GET [base]/Consent?category=http://snomed.info/sct|11291000146105
AdvanceDirective Known advance directives
GET [base]/Consent?category=http://snomed.info/sct|11341000146107
3 Contactperson ContactPerson First relation/contact
see Patient in Patient.contact
4 Problems Problem All known problems including diagnoses; no verification status
GET [base]/Condition
5 Allergies AllergyIntolerance A selection of information from all known allergies and intolerances. The ART-DECOR transaction specification describes the selection.
GET [base]/AllergyIntolerance
6 Results LaboratoryTestResult A selection of infromation from the last known clinical laboratory results per type. The ART-DECOR transaction specification describes the selection.
GET [base]/Observation/$lastn?category=http://snomed.info/sct|275711006&_include=Observation:related-target&_include=Observation:specimen
7 Procedures Procedure All procedures
GET [base]/Procedure
8 Goals and interventions

* see the NoteBox above

NursingIntervention NursingInterventions beloning to active problems
GET [base]/CarePlan?_include=CarePlan:activity-goal:Goal
&_include=CarePlan:activity-outcomereference:Observation
&_include=CarePlan:activity-medicaldevice:DeviceUseStatement
&_include:recurse=DeviceUseStatement:device:Device
TreatmentObjective All treatment objectives beloning to NursingInterventions
MedicalDevice All MedicalDevices belonging to NursingInterventions; only product type and anatomical location
OutcomeOfCare Known treatment outcomes
9 Caresetting / CareTeam HealthProfessional
  • General practitioner of the patient (see Patient.generalPractitioner)
  • Primary practitioner - information of the primary care giver, no ID, adress/contact information
  • Other practitioners - information of all practitioners given care to the patient, no ID, adress/contact information
  • Healthcare provider - organization where care is given
GET [base]/CareTeam?_include=CareTeam:participant
HealthcareProvider

4.3.2 XIS: response message

Important sections of the FHIR specification for a server in this use case are the RESTful API section the search section and operation section (for the nlast operation).

4.3.2.1 Response to resource requests

If the search succeeds, the server SHALL return a 200 OK HTTP status code and the returned content SHALL be a Bundle with type = searchset containing the results of the search as a collection of zero or more resources in a defined order. The returned resources SHALL conform to the StructureDefinition applicable for the specific HCIM request. The list of StructureDefinitions relevant for this use case is shown in the following paragraph: List of StructureDefinitions. All resources SHALL include their related StructureDefinition canonical URL in the meta.profile element in order to show compliance.

The result collection can be long, so servers may use paging. If they do, they SHALL use the method described below (adapted from RFC 5005 (Feed Paging and Archiving ) for breaking the collection into pages if appropriate. The server MAY also return an OperationOutcome resource within the searchset Bundle entries that contains additional information about the search; if one is sent it SHALL NOT include any issues with a fatal or error severity, and it SHALL be marked with a Bundle.entry.search.mode of outcome.

In order to allow the client to be confident about what search parameters were used as criteria by the server, the server SHALL return the parameters that were actually used to process the search. Applications processing search results SHALL check these returned values where necessary. For example, if the server did not support some of the filters specified in the search, a client might manually apply those filters to the retrieved result set, display a warning message to the user or take some other action. Link to the relevant FHIR specification: http://hl7.org/fhir/STU3/http.html#search

4.3.2.2 Handling errors

If the search fails (cannot be executed, not that there are no matches), the return value is a status code 4xx or 5xx with an OperationOutcome. An HTTP status code of 403 signifies that the server refused to perform the search, while other 4xx and 5xx codes signify that some sort of error has occurred. The HTTP status code 404 is returned if a XIS did not implement an endpoint used in a request by a PHR. When the search fails, a server SHOULD return an OperationOutcome detailing the cause of the failure. For example, in case of a not implemented FHIR endpoint, the OperationOutcome would state that the resource type is not supported. Note: an empty search result is not a failure.

Common HTTP Status codes returned on FHIR-related errors (in addition to normal HTTP errors related to security, header and content type negotiation issues):

  • 400 Bad Request - search could not be processed or failed basic FHIR validation rules
  • 401 Not Authorized - authorization is required for the interaction that was attempted
  • 404 Not Found - resource type not supported, or not a FHIR end-point

In some cases, parameters may cause an error. For instance:

  • A parameter may refer to an unknown code e.g. GET [base]/Observation?code=1234-1, where the code "1234-1" is not known to the server
  • A parameter may refer to a time that is out of scope e.g. GET [base]/Condition?onset=le1995, where the system only has data going back to 2001
  • A parameter may use an illegal or unacceptable modifier e.g. GET [base]/Condition?onset:text=1995, where the modifier cannot be processed by the server
  • A date/time parameter may have incorrect format e.g. GET [base]/Condition?onset=23%20May%202009
  • A parameter may be unknown or unsupported

Where the content of the parameter is syntactically incorrect, servers SHOULD return an error. However, where the issue is a logical condition (e.g. unknown subject or code), the server SHOULD process the search, including processing the parameter - with the result of returning an empty search set, since the parameter cannot be satisfied. In such cases, the search process MAY include an OperationOutcome in the search set that contains additional hints and warnings about the search process. This is included in the search results as an entry with search mode = outcome. Clients can use this information to improve future searches.

Link to relevant FHIR specification: http://hl7.org/fhir/STU3/search.html#errors

4.4 Interactions, operations, search parameters

4.4.1 Interactions

The following logical interactions are needed for the BgLZ use case:

4.4.2 Operations

The following operation is needed for this use case.

The lastn query meets the common need for searching for the most recent or last n=number of observations for a subject. For example, retrieving the last 5 temperatures for a patient to view trends or fetching the most recent laboratory results or vital signs. The link will provide more detailed information and examples regarding this operation.

4.4.3 Search parameters

The following search parameter types and search result parameters need to be supported for this use case.

Search parameter types:

Search result parameters:

The following custom search parameters are defined for this use case:

4.5 List of StructureDefinitions

The profiles represent their entire respective HCIM, to make them applicable in a broader context than the exchange of BgLZ or a MedMij context.

Zib NL HCIM EN FHIR Resource FHIR Profile
Patiënt Patient Patient http://fhir.nl/fhir/StructureDefinition/nl-core-patient
BehandelAanwijzing TreatmentDirective Consent http://nictiz.nl/fhir/StructureDefinition/zib-TreatmentDirective
Wilsverklaring AdvanceDirective Consent http://nictiz.nl/fhir/StructureDefinition/zib-AdvanceDirective
Probleem Problem Condition http://nictiz.nl/fhir/StructureDefinition/zib-Problem
AllergieIntolerantie AllergyIntolerance AllergyIntolerance http://nictiz.nl/fhir/StructureDefinition/zib-AllergyIntolerance
LaboratoriumUitslag LaboratoryTestResult Observation http://nictiz.nl/fhir/StructureDefinition/zib-LaboratoryTestResult-Observation
Verrichting Procedure Procedure http://nictiz.nl/fhir/StructureDefinition/zib-Procedure
VerpleegkundigeInterventie * NursingIntervention * CarePlan http://fhir.nl/fhir/StructureDefinition/nl-core-careplan
Behandeldoel TreatmentObjective
MedischHulpmiddel MedicalDevice
UitkomstVanZorg OutcomeOfCare
Zorgverlener HealthProfessional Practitioner http://fhir.nl/fhir/StructureDefinition/nl-core-practitioner
PractitionerRole http://fhir.nl/fhir/StructureDefinition/nl-core-practitionerrole
Zorgaanbieder HealthcareProvider Organization http://fhir.nl/fhir/StructureDefinition/nl-core-organization
- - CareTeam http://fhir.nl/fhir/StructureDefinition/nl-core-careteam

* The 2018 release of the HCIM NursingIntervention is used because the 2017 release is not suitable. The functional design page provides more information. In addition, the CarePlan resource is used to transfer the HCIM NursingIntervention. The BgLZ does not use the Procedure resource for HCIM NursingIntervention.

Example instances of FHIR resources can be found on Simplifier. Please note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of any information standard.

4.6 Terminology, NamingSystems, Mappings

4.6.1 Terminology

Relevant value sets can be found using the ValueSet category.

4.6.2 NamingSystems

Relevant NamingSystems can be found using the NamingSystem category.

4.6.3 Mappings

A FHIR ConceptMap resource is provided when a FHIR value set is used instead of a HCIM value set. A ConceptMap maps the values between the two value sets. These ConceptMaps can be found here.

An explanation about mappings can be found at Mapping of coded concepts.

5 Release notes

Release notes can be found on the functional design page.