MedMij:V2017.01 FHIR BGZ: verschil tussen versies
k (Tekst vervangen - "{{Simplifier\|([^\|]+)(\|[^}]+)?\|scope=([^\|}@]+)@([^\|}]+)}}" door "{{Simplifier|$1|$3|pkgVersion=$4$2}}") |
|||
(36 tussenliggende versies door 5 gebruikers niet weergegeven) | |||
Regel 1: | Regel 1: | ||
− | {{ | + | {{DISPLAYTITLE:MedMij FHIR use case BgZ , version 2017.01}} |
+ | {{IssueBox|A newer version is available, see https://informatiestandaarden.nictiz.nl/wiki/MedMij:Vcurrent_FHIR_IG}} | ||
[[Bestand:MedMij2.png |link=https://www.medmij.nl/|rechts|Naar medmij.nl]] | [[Bestand:MedMij2.png |link=https://www.medmij.nl/|rechts|Naar medmij.nl]] | ||
− | [[Bestand:BGZ_icoon.png |link=MedMij:V2017.01_FHIR_BGZ|links|140px|Use case | + | [[Bestand:BGZ_icoon.png |link=MedMij:V2017.01_FHIR_BGZ|links|140px|Use case BgZ|Patient Summary (BgZ)]] |
<imagemap>Bestand:Leeswijzer-technisch-banner 03 white.png|center|600px|alt=Afspraken-Functioneel-Technisch | <imagemap>Bestand:Leeswijzer-technisch-banner 03 white.png|center|600px|alt=Afspraken-Functioneel-Technisch | ||
circle 241 216 211 [https://www.medmij.nl/afsprakenstelsel Afsprakenstelsel] | circle 241 216 211 [https://www.medmij.nl/afsprakenstelsel Afsprakenstelsel] | ||
Regel 18: | Regel 19: | ||
[[Bestand:Functioneel-02.png|link=MedMij:V2017.01_Ontwerpen |128px|rechts|Functional design|Go to functional design]] | [[Bestand:Functioneel-02.png|link=MedMij:V2017.01_Ontwerpen |128px|rechts|Functional design|Go to functional design]] | ||
− | The Basisgegevensset Zorg ( | + | The Basisgegevensset Zorg (BgZ) can be seen as representation of a patient summary. The patient journey of [https://www.nictiz.nl/ehealth/MedMij Thomas van Beek], provides a patient's context for exchanging a patient summary from a healthcare provider's system (XIS) to a personal health record (PHR). MedMij created a [https://informatiestandaarden.nictiz.nl/wiki/MedMij:V2017.01_Ontwerpen functional design] of the BgZ use case. This use case consists of enabling a patient to view his own BgZ in a PHR. This page will elaborate further on the HL7 FHIR details needed to exchange the BgZ information using FHIR. |
− | The | + | The BgZ is represents a selection of the minimal required information to provide continuity of healthcare. A total of 26 Health and Care Information models (Dutch: Zorginformatiebouwsteen or ZIB) constitute the [https://www.registratieaandebron.nl/pdf/Basisgegevensset_Zorg_v1_0.pdf BgZ version 1.0]. The BgZ makes a subselection of the information concepts within these 26 ZIBs or restricts the ZIBs to a certain category. For example, only include the general practitioner of the patient or only the last known value of 'X'. |
− | MedMij created FHIR profiles that represent these 26 ZIBs completely, if no existing and usable profiles were available. The profiles represent their entire respective ZIB, to make them applicable in a broader context than a patient summary or a MedMij context. An overview of the profiles can be found at the [[MedMij:V2017.01_FHIR_BGZ#List_of_StructureDefinitions|list of StructureDefinitions]]. This page shows how to use these profiles in the | + | MedMij created FHIR profiles that represent these 26 ZIBs completely, if no existing and usable profiles were available. The profiles represent their entire respective ZIB, to make them applicable in a broader context than a patient summary or a MedMij context. An overview of the profiles can be found at the [[MedMij:V2017.01_FHIR_BGZ#List_of_StructureDefinitions|list of StructureDefinitions]]. This page shows how to use these profiles in the BgZ use case. |
==Actors involved== | ==Actors involved== | ||
Regel 41: | Regel 42: | ||
| PHR | | PHR | ||
| Personal health record | | Personal health record | ||
− | |[[Bestand: Verwijzing.png| 20px]] | + | |[[Bestand: Verwijzing.png| 20px]] {{Simplifier|http://nictiz.nl/fhir/CapabilityStatement/bgz-clientcapabilities|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0|title=CapabilityStatement: Client}} |
− | | | + | | BgZ FHIR Client requirements |
|- | |- | ||
| Healthcare professional | | Healthcare professional | ||
Regel 48: | Regel 49: | ||
| XIS | | XIS | ||
| Healthcare information system | | Healthcare information system | ||
− | |[[Bestand: Verwijzing.png| 20px]] | + | |[[Bestand: Verwijzing.png| 20px]] {{Simplifier|http://nictiz.nl/fhir/CapabilityStatement/bgz-servercapabilities|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0|title=CapabilityStatement: Server}} |
− | | | + | | BgZ FHIR Server requirements |
|} | |} | ||
==Boundaries and Relationships== | ==Boundaries and Relationships== | ||
− | The | + | The BgZ use case has similarities and differences with other use cases such as Medication Process, Vital Signs and Lab Results. These use cases use the same ZIB based FHIR profiles for exchanging information. The BgZ use case covers practically all profiles included in the other use cases. However, the BgZ differs in scope of the actual health information content that should be exchanged. For example, the BgZ conveys only the last known lab result of each type while the Lab Results use case may cover all known information. |
==List of invocations== | ==List of invocations== | ||
− | [[Bestand:Afsprakenstelsel-01.png|link=https:// | + | [[Bestand:Afsprakenstelsel-01.png|link=https://www.medmij.nl/afsprakenstelsel/|rechts |128px|Go to Afsprakenstelsel]] |
− | This FHIR implementation guide assumes that the PHR system is able to make a connection to the XIS that contains the patient's | + | This FHIR implementation guide assumes that the PHR system is able to make a connection to the XIS that contains the patient's BgZ information. 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 section 7 (Architectuur en technische specificaties) |
+ | of [https://www.medmij.nl/afsprakenstelsel/ 'Afsprakenstelsel release 1.0 version 0.3']. | ||
===Client - PHR=== | ===Client - PHR=== | ||
− | The PHR system can request the | + | The PHR system can request the BgZ using individual search interactions. The search interaction searches the current resources based on some filter criteria. The interaction can be performed by an HTTP GET or command as shown: |
<code>GET [base]/[type]/{?[parameters]{&_format=[mime-type]}}</code> | <code>GET [base]/[type]/{?[parameters]{&_format=[mime-type]}}</code> | ||
− | The | + | The BgZ consists of multiple FHIR resources with certain constraints. To obtain the patient's BgZ, the client can use multiple individual search operations based on specified search queries. The client may also bundle the search operations in a batch. The individual requests are discussed first, followed by the batch procedure. |
====Individual resource requests==== | ====Individual resource requests==== | ||
− | The table below shows in the first four columns the | + | The table below shows in the first four columns the BgZ sections, the ZIBs that constitute those sections and the specific content of the BgZ. The last column shows the FHIR search queries to obtain the needed information for the BgZ. These queries are based on StructureDefinitions listed in [[MedMij:V2017.01_FHIR_BGZ#List_of_StructureDefinitions| this section]]. |
− | Each query contains the patient's identifier indicated with the following parameter: <code>[patient-id]</code>. In a MedMij PHR context, this cannot be the Patient's BSN (citizen service number). The BSN is by law not allowed to be used by other systems than those of healthcare providers. Based on infrastructure and interface specifications as described in the [https:// | + | Each query contains the patient's identifier indicated with the following parameter: <code>[patient-id]</code>. In a MedMij PHR context, this cannot be the Patient's BSN (citizen service number). The BSN is by law not allowed to be used by other systems than those of healthcare providers. Based on infrastructure and interface specifications as described in the [https://www.medmij.nl/afsprakenstelsel/ 'Afsprakenstelsel'] a token will be used to identify the patient across the MedMij network. |
{| class="wikitable collapsible" width="100%" style="horizontal-align: right" | {| class="wikitable collapsible" width="100%" style="horizontal-align: right" | ||
!style="background-color: #1F497D; color: white; font-weight: bold; text-align:left; background-color: #E3E3E3 width:10px" | # | !style="background-color: #1F497D; color: white; font-weight: bold; text-align:left; background-color: #E3E3E3 width:10px" | # | ||
− | !style="background-color: #1F497D; color: white; font-weight: bold; text-align:left; background-color: #E3E3E3 width:10px" | | + | !style="background-color: #1F497D; color: white; font-weight: bold; text-align:left; background-color: #E3E3E3 width:10px" | BgZ Section |
!style="background-color: #1F497D; color: white; font-weight: bold; text-align:left; background-color: #E3E3E3 width:10px" | ZIB EN | !style="background-color: #1F497D; color: white; font-weight: bold; text-align:left; background-color: #E3E3E3 width:10px" | ZIB EN | ||
!style="background-color: #1F497D; color: white; font-weight: bold; text-align:left; background-color: #E3E3E3 width:10px" | Content | !style="background-color: #1F497D; color: white; font-weight: bold; text-align:left; background-color: #E3E3E3 width:10px" | Content | ||
− | !style="background-color: #1F497D; color: white; font-weight: bold; text-align:left; background-color: #E3E3E3 width:10px" | Search URL | + | !style="background-color: #1F497D; color: white; font-weight: bold; text-align:left; background-color: #E3E3E3 width:10px" | Example Search URL |
|- | |- | ||
| 1 | | 1 | ||
| Patient information | | Patient information | ||
| Patient | | Patient | ||
− | | BSN, birthdate, gender, deceasedindicator, contact details, and general practitioner (practitioner or organization) | + | | BSN, birthdate, gender, deceasedindicator, contact details, contact persons, and general practitioner (practitioner or organization) |
| <pre>GET [base]/Patient?identifier=[patient-id]&_include=Patient:general-practitioner</pre> | | <pre>GET [base]/Patient?identifier=[patient-id]&_include=Patient:general-practitioner</pre> | ||
|- | |- | ||
Regel 89: | Regel 91: | ||
| Payer | | Payer | ||
| Insurance information | | Insurance information | ||
− | | <pre>GET [base]/Coverage?subscriber:Patient.identifier=[patient-id]&_include=Coverage:payor:Patient | + | | <pre>GET [base]/Coverage?subscriber:Patient.identifier=[patient-id]&_include=Coverage:payor:Patient&_include=Coverage:payor:Organization</pre> |
|- | |- | ||
| rowspan="2" | 3 | | rowspan="2" | 3 | ||
− | | rowspan="2" | Treatment | + | | rowspan="2" | Treatment directives |
− | | | + | | TreatmentDirective |
− | | Known treatment | + | | Known treatment directives |
| <pre>GET [base]/Consent?patient.identifier=[patient-id]&category=http://snomed.info/sct|11291000146105</pre> | | <pre>GET [base]/Consent?patient.identifier=[patient-id]&category=http://snomed.info/sct|11291000146105</pre> | ||
|- | |- | ||
Regel 104: | Regel 106: | ||
| Contactperson | | Contactperson | ||
| Contact | | Contact | ||
− | | | + | | Primary relation/contact |
− | | <pre | + | | <pre style="font-style: italic;">see Patient</pre> |
|- | |- | ||
| 5 | | 5 | ||
Regel 111: | Regel 113: | ||
| FunctionalOrMentalStatus | | FunctionalOrMentalStatus | ||
| Last known functional / mental status | | Last known functional / mental status | ||
− | | <pre>GET [base]/Observation$lastn?patient.identifier=[patient-id]&category=http://snomed.info/sct|118228005,http://snomed.info/sct|364644000</pre> | + | | <pre>GET [base]/Observation/$lastn?patient.identifier=[patient-id]&category=http://snomed.info/sct|118228005,http://snomed.info/sct|364644000</pre> |
|- | |- | ||
| 6 | | 6 | ||
Regel 127: | Regel 129: | ||
| LivingSituation | | LivingSituation | ||
| Current living situation | | Current living situation | ||
− | | <pre>GET [base]/Observation$lastn?patient.identifier=[patient-id]&code=http://snomed.info/sct|365508006</pre> | + | | <pre>GET [base]/Observation/$lastn?patient.identifier=[patient-id]&code=http://snomed.info/sct|365508006</pre> |
|- | |- | ||
| DrugUse | | DrugUse | ||
Regel 183: | Regel 185: | ||
| BloodPressure | | BloodPressure | ||
| Last known bloodpressure | | Last known bloodpressure | ||
− | | <pre>GET [base]/Observation$lastn?patient.identifier=[patient-id]&code=http://loinc.org|85354-9</pre> | + | | <pre>GET [base]/Observation/$lastn?patient.identifier=[patient-id]&code=http://loinc.org|85354-9</pre> |
|- | |- | ||
| BodyWeight | | BodyWeight | ||
| Last known body weight | | Last known body weight | ||
− | | <pre>GET [base]/Observation$lastn?patient.identifier=[patient-id]&code=http://loinc.org|29463-7</pre> | + | | <pre>GET [base]/Observation/$lastn?patient.identifier=[patient-id]&code=http://loinc.org|29463-7</pre> |
|- | |- | ||
| BodyHeight | | BodyHeight | ||
| Last known body height | | Last known body height | ||
− | | <pre>GET [base]/Observation$lastn?patient.identifier=[patient-id]&code=http://loinc.org|8302-2,http://loinc.org|8306-3,http://loinc.org|8308-9</pre> | + | | <pre>GET [base]/Observation/$lastn?patient.identifier=[patient-id]&code=http://loinc.org|8302-2,http://loinc.org|8306-3,http://loinc.org|8308-9</pre> |
|- | |- | ||
| 14 | | 14 | ||
Regel 197: | Regel 199: | ||
| LaboratoryTestResult | | LaboratoryTestResult | ||
| Last known laboratory results per type | | Last known laboratory results per type | ||
− | | <pre>GET [base]/Observation$lastn?patient.identifier=[patient-id]&category=http://snomed.info/sct|275711006&_include=Observation:related- | + | | <pre>GET [base]/Observation/$lastn?patient.identifier=[patient-id]&category=http://snomed.info/sct|275711006&_include=Observation:related-target&_include=Observation:specimen</pre> |
|- | |- | ||
| 15 | | 15 | ||
Regel 234: | Regel 236: | ||
====Batch request==== | ====Batch request==== | ||
− | A FHIR [http://hl7.org/fhir/bundle.html Bundle resource] can be used to group the individual resources requests of the | + | A FHIR [http://hl7.org/fhir/bundle.html Bundle resource] can be used to group the individual resources requests of the BgZ. If a bundle is used to query the BgZ, the bundle SHALL be of type = "batch". |
A batch (type = "batch") consists of a series of entries. Each entry element SHALL contain a request element. Each entry has the details of an HTTP operation that informs the system processing the batch what to do with the entry. The bundle with type = batch is a transaction that is intended to be processed by a server as a group of actions in contrary to a bundle with type = 'transaction' where the entire set of HTTP operations is intended to be processed by a server as an atomic commit. | A batch (type = "batch") consists of a series of entries. Each entry element SHALL contain a request element. Each entry has the details of an HTTP operation that informs the system processing the batch what to do with the entry. The bundle with type = batch is a transaction that is intended to be processed by a server as a group of actions in contrary to a bundle with type = 'transaction' where the entire set of HTTP operations is intended to be processed by a server as an atomic commit. | ||
Regel 276: | Regel 278: | ||
====Example batch request==== | ====Example batch request==== | ||
− | A predefined | + | A predefined BgZ bundle batch can be found here: https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2015/1.0.0/files/133104/~xml. |
===Server - XIS=== | ===Server - XIS=== | ||
Regel 297: | Regel 299: | ||
====Response for a batch request==== | ====Response for a batch request==== | ||
− | For a batch the response the server SHALL return a Bundle with type set to batch-response that contains one entry for each entry in the request, in the same order, with the outcome of processing the entry. For the | + | For a batch the response the server SHALL return a Bundle with type set to batch-response that contains one entry for each entry in the request, in the same order, with the outcome of processing the entry. For the BgZ bundle batch, the response is a bundle of type = batch-response with multiple entries containing bundles of type = searchset that correspond to the individual search queries. |
A client may use the returned Bundle to track the outcomes of processing the entry, and the identities assigned to the resources by the server. Each entry element SHALL contain a response element which details the outcome of processing the entry - the HTTP status code, and the location and ETag header values, which are used for identifying and versioning the resources. In addition, a resource may be included in the entry, as specified by the Prefer header. | A client may use the returned Bundle to track the outcomes of processing the entry, and the identities assigned to the resources by the server. Each entry element SHALL contain a response element which details the outcome of processing the entry - the HTTP status code, and the location and ETag header values, which are used for identifying and versioning the resources. In addition, a resource may be included in the entry, as specified by the Prefer header. | ||
Regel 335: | Regel 337: | ||
===Interactions=== | ===Interactions=== | ||
− | The following logical interactions are needed for the | + | The following logical interactions are needed for the BgZ use case: |
− | |||
* [http://hl7.org/fhir/STU3/http.html#search Search] | * [http://hl7.org/fhir/STU3/http.html#search Search] | ||
* [http://hl7.org/fhir/STU3/http.html#transaction Batch/Transaction] | * [http://hl7.org/fhir/STU3/http.html#transaction Batch/Transaction] | ||
Regel 371: | Regel 372: | ||
| #ZIB Patient|Patient | | #ZIB Patient|Patient | ||
| Patient | | Patient | ||
− | | | + | | {{Simplifier|http://fhir.nl/fhir/StructureDefinition/nl-core-patient|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Patient | Patient]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Patient | Patient]] | ||
|- | |- | ||
Regel 378: | Regel 379: | ||
| rowspan="3" | Payer | | rowspan="3" | Payer | ||
| Coverage | | Coverage | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-Payer|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]][[MedMij:V1.0_FHIR_Payer | Payer]] | | [[Bestand: Verwijzing.png| 20px]][[MedMij:V1.0_FHIR_Payer | Payer]] | ||
|- | |- | ||
| Organization | | Organization | ||
− | | | + | | {{Simplifier|http://fhir.nl/fhir/StructureDefinition/nl-core-organization|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]][[MedMij:V1.0_FHIR_HealthcareProvider | HealthcareProvider]] | | [[Bestand: Verwijzing.png| 20px]][[MedMij:V1.0_FHIR_HealthcareProvider | HealthcareProvider]] | ||
|- | |- | ||
| Patient | | Patient | ||
− | | | + | | {{Simplifier|http://fhir.nl/fhir/StructureDefinition/nl-core-patient|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Patient| Patient]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Patient| Patient]] | ||
|- | |- | ||
| rowspan="2" |03 | | rowspan="2" |03 | ||
| BehandelAanwijzing | | BehandelAanwijzing | ||
− | | | + | | TreatmentDirective |
| Consent | | Consent | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-TreatmentDirective|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
− | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1. | + | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_TreatmentDirective | TreatmentDirective ]] |
|- | |- | ||
| Wilsverklaring | | Wilsverklaring | ||
| AdvanceDirective | | AdvanceDirective | ||
| Consent | | Consent | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-AdvanceDirective|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_AdvanceDirective | AdvanceDirective]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_AdvanceDirective | AdvanceDirective]] | ||
|- | |- | ||
Regel 406: | Regel 407: | ||
| Contact | | Contact | ||
| RelatedPerson | | RelatedPerson | ||
− | | | + | | {{Simplifier|http://fhir.nl/fhir/StructureDefinition/nl-core-relatedperson|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_RelatedPerson | RelatedPerson]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_RelatedPerson | RelatedPerson]] | ||
|- | |- | ||
Regel 413: | Regel 414: | ||
| FunctionalOrMentalStatus | | FunctionalOrMentalStatus | ||
| Observation | | Observation | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-FunctionalOrMentalStatus|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_FunctionalOrMentalStatus | FunctionalOrMentalStatus]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_FunctionalOrMentalStatus | FunctionalOrMentalStatus]] | ||
|- | |- | ||
Regel 420: | Regel 421: | ||
| Concern | | Concern | ||
| Condition | | Condition | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-Concern|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Concern| Concern]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Concern| Concern]] | ||
|- | |- | ||
Regel 427: | Regel 428: | ||
| MaritalStatus | | MaritalStatus | ||
| Patient | | Patient | ||
− | | | + | | {{Simplifier|http://fhir.nl/fhir/StructureDefinition/nl-core-patient|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Patient| Patient]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Patient| Patient]] | ||
|- | |- | ||
Regel 433: | Regel 434: | ||
| LivingSituation | | LivingSituation | ||
| Observation | | Observation | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-LivingSituation|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_LivingSituation| LivingSituation]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_LivingSituation| LivingSituation]] | ||
|- | |- | ||
Regel 439: | Regel 440: | ||
| DrugUse | | DrugUse | ||
| Observation | | Observation | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-DrugUse|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_DrugUse| DrugUse]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_DrugUse| DrugUse]] | ||
|- | |- | ||
Regel 445: | Regel 446: | ||
| AlcoholUse | | AlcoholUse | ||
| Observation | | Observation | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-AlcoholUse|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_AlcoholUse | AlcoholUse]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_AlcoholUse | AlcoholUse]] | ||
|- | |- | ||
Regel 451: | Regel 452: | ||
| TobaccoUse | | TobaccoUse | ||
| Observation | | Observation | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-TobaccoUse|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_TobaccoUse |TobaccoUse ]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_TobaccoUse |TobaccoUse ]] | ||
|- | |- | ||
Regel 457: | Regel 458: | ||
| NutritionAdvice | | NutritionAdvice | ||
| NutritionOrder | | NutritionOrder | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-NutritionAdvice|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_NutritionAdvice | NutritionAdvice]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_NutritionAdvice | NutritionAdvice]] | ||
|- | |- | ||
Regel 463: | Regel 464: | ||
| Nationality | | Nationality | ||
| Patient | | Patient | ||
− | | | + | | {{Simplifier|http://fhir.nl/fhir/StructureDefinition/nl-core-patient|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Patient| Patient]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Patient| Patient]] | ||
|- | |- | ||
Regel 470: | Regel 471: | ||
| Alert | | Alert | ||
| Flag | | Flag | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-Alert|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Alert | Alert ]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Alert | Alert ]] | ||
|- | |- | ||
Regel 476: | Regel 477: | ||
| AllergyIntolerance | | AllergyIntolerance | ||
| AllergyIntolerance | | AllergyIntolerance | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-AllergyIntolerance|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_AllergyIntolerance| AllergyIntolerance]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_AllergyIntolerance| AllergyIntolerance]] | ||
|- | |- | ||
Regel 483: | Regel 484: | ||
| MedicationUse | | MedicationUse | ||
| MedicationStatement | | MedicationStatement | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-MedicationUse|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_MedicationUse | MedicationUse]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_MedicationUse | MedicationUse]] | ||
|- | |- | ||
| MedicationAgremeent | | MedicationAgremeent | ||
| MedicationRequest | | MedicationRequest | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-MedicationAgreement|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_MedicationAgreement | MedicationAgreement]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_MedicationAgreement | MedicationAgreement]] | ||
|- | |- | ||
Regel 495: | Regel 496: | ||
| rowspan="2" | MedicalAid | | rowspan="2" | MedicalAid | ||
| Device | | Device | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-MedicalAidProduct|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| rowspan="2" | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_MedicalAid|MedicalAid]] | | rowspan="2" | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_MedicalAid|MedicalAid]] | ||
|- | |- | ||
| DeviceUseStatement | | DeviceUseStatement | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-MedicalAid|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
|- | |- | ||
| rowspan="2" | 12 | | rowspan="2" | 12 | ||
Regel 505: | Regel 506: | ||
| rowspan="2" | Vaccination | | rowspan="2" | Vaccination | ||
| Immunization | | Immunization | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-Vaccination|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| rowspan="2" | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Vaccination| Vaccination ]] | | rowspan="2" | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Vaccination| Vaccination ]] | ||
|- | |- | ||
| ImmunizationRecommendation | | ImmunizationRecommendation | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-VaccinationRecommendation|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
|- | |- | ||
| rowspan="3" | 13 | | rowspan="3" | 13 | ||
Regel 515: | Regel 516: | ||
| BloodPressure | | BloodPressure | ||
| Observation | | Observation | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-BloodPressure|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_BloodPressure | BloodPressure]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_BloodPressure | BloodPressure]] | ||
|- | |- | ||
Regel 521: | Regel 522: | ||
| BodyWeight | | BodyWeight | ||
| Observation | | Observation | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-BodyWeight|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_BodyWeight | BodyWeight]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_BodyWeight | BodyWeight]] | ||
|- | |- | ||
Regel 527: | Regel 528: | ||
| BodyHeight | | BodyHeight | ||
| Observation | | Observation | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-BodyHeight|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_BodyHeight | BodyHeight]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_BodyHeight | BodyHeight]] | ||
|- | |- | ||
Regel 534: | Regel 535: | ||
| rowspan="3" | LaboratoryTestResult | | rowspan="3" | LaboratoryTestResult | ||
| Observation | | Observation | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-LaboratoryTestResult-Observation|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| rowspan="3" | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_LaboratoryTestResult| LaboratoryTestResult]] | | rowspan="3" | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_LaboratoryTestResult| LaboratoryTestResult]] | ||
|- | |- | ||
| DiagnosticReport | | DiagnosticReport | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-LaboratoryTestResult-DiagnosticReport|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
|- | |- | ||
| Specimen | | Specimen | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-LaboratoryTestResult-Specimen|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
|- | |- | ||
| 15 | | 15 | ||
Regel 547: | Regel 548: | ||
| Procedure | | Procedure | ||
| Procedure | | Procedure | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-Procedure|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Procedure | Procedure ]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Procedure | Procedure ]] | ||
|- | |- | ||
Regel 554: | Regel 555: | ||
| Contact | | Contact | ||
| Encounter | | Encounter | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-Contact|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Contact | Contact ]] | | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_Contact | Contact ]] | ||
|- | |- | ||
Regel 561: | Regel 562: | ||
| rowspan="5" | PlannedCareActivity | | rowspan="5" | PlannedCareActivity | ||
| ProcedureRequest | | ProcedureRequest | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-ProcedureRequest|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| rowspan="5" | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_PlannedCareActivity | PlannedCareActivity]] | | rowspan="5" | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_PlannedCareActivity | PlannedCareActivity]] | ||
|- | |- | ||
| MedicationRequest | | MedicationRequest | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-MedicationAgreement|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
|- | |- | ||
| ImmunizationRecommendation | | ImmunizationRecommendation | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-VaccinationRecommendation|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
|- | |- | ||
| DeviceRequest | | DeviceRequest | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-MedicalAidRequest|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
|- | |- | ||
| Appointment | | Appointment | ||
− | | | + | | {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/zib-Appointment|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
|- | |- | ||
| rowspan="4" | 18 | | rowspan="4" | 18 | ||
Regel 580: | Regel 581: | ||
| rowspan="2" | HealthProfessional | | rowspan="2" | HealthProfessional | ||
| Practitioner | | Practitioner | ||
− | | | + | | {{Simplifier|http://fhir.nl/fhir/StructureDefinition/nl-core-practitioner|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| rowspan="2" | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_HealthProfessional | HealthProfessional]] | | rowspan="2" | [[Bestand: Verwijzing.png| 20px]] [[MedMij:V1.0_FHIR_HealthProfessional | HealthProfessional]] | ||
|- | |- | ||
| PractitionerRole | | PractitionerRole | ||
− | | | + | | {{Simplifier|http://fhir.nl/fhir/StructureDefinition/nl-core-practitionerrole|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
|- | |- | ||
| Zorgaanbieder | | Zorgaanbieder | ||
| HealthcareProvider | | HealthcareProvider | ||
| Organization | | Organization | ||
− | | | + | | {{Simplifier|http://fhir.nl/fhir/StructureDefinition/nl-core-organization|nictiz.fhir.nl.stu3.zib2015|pkgVersion=1.0.0}} |
| [[Bestand: Verwijzing.png| 20px]][[MedMij:V1.0_FHIR_HealthcareProvider | HealthcareProvider]] | | [[Bestand: Verwijzing.png| 20px]][[MedMij:V1.0_FHIR_HealthcareProvider | HealthcareProvider]] | ||
|} | |} | ||
Regel 596: | Regel 597: | ||
===Terminology=== | ===Terminology=== | ||
− | Relevant value sets can be found [https://simplifier.net/ | + | Relevant value sets can be found [https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2015/1.0.0 in the package]. |
===NamingSystems=== | ===NamingSystems=== | ||
− | Relevant NamingSystems can be found [https://simplifier.net/ | + | Relevant NamingSystems can be found [https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2015/1.0.0 in the package]. |
===Mappings=== | ===Mappings=== | ||
− | Relevant ZIB to FHIR value set mappings can be found [https://simplifier.net/ | + | Relevant ZIB to FHIR value set mappings can be found [https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2015/1.0.0 in the package]. |
All profiles include ZIB mappings. ZIB concepts are mapped in the corresponding FHIR elements using the ZIB' concept id. The top of the StructureDefinition contains meta information regarding the ZIB mapping, such as the name and uri of the ZIB. In the StructureDefinition elements the corresponding ZIB ID is given including the mapping meta information id. This is illustrated in the following example. | All profiles include ZIB mappings. ZIB concepts are mapped in the corresponding FHIR elements using the ZIB' concept id. The top of the StructureDefinition contains meta information regarding the ZIB mapping, such as the name and uri of the ZIB. In the StructureDefinition elements the corresponding ZIB ID is given including the mapping meta information id. This is illustrated in the following example. | ||
Regel 631: | Regel 632: | ||
</StructureDefinition> | </StructureDefinition> | ||
</pre> | </pre> | ||
− | |||
− |
Huidige versie van 30 jul 2020 om 12:44
A newer version is available, see https://informatiestandaarden.nictiz.nl/wiki/MedMij:Vcurrent_FHIR_IG |
Introduction
The Basisgegevensset Zorg (BgZ) can be seen as representation of a patient summary. The patient journey of Thomas van Beek, provides a patient's context for exchanging a patient summary from a healthcare provider's system (XIS) to a personal health record (PHR). MedMij created a functional design of the BgZ use case. This use case consists of enabling a patient to view his own BgZ in a PHR. This page will elaborate further on the HL7 FHIR details needed to exchange the BgZ information using FHIR.
The BgZ is represents a selection of the minimal required information to provide continuity of healthcare. A total of 26 Health and Care Information models (Dutch: Zorginformatiebouwsteen or ZIB) constitute the BgZ version 1.0. The BgZ makes a subselection of the information concepts within these 26 ZIBs or restricts the ZIBs to a certain category. For example, only include the general practitioner of the patient or only the last known value of 'X'.
MedMij created FHIR profiles that represent these 26 ZIBs completely, if no existing and usable profiles were available. The profiles represent their entire respective ZIB, to make them applicable in a broader context than a patient summary or a MedMij context. An overview of the profiles can be found at the list of StructureDefinitions. This page shows how to use these profiles in the BgZ use case.
Actors involved
Persons | Systems | FHIR Capability Statements | |||
---|---|---|---|---|---|
Name | Description | Name | Description | Name | Description |
Patient | The user of a personal healthcare enviorment. | PHR | Personal health record | CapabilityStatement: Client | BgZ FHIR Client requirements |
Healthcare professional | The user of a XIS | XIS | Healthcare information system | CapabilityStatement: Server | BgZ FHIR Server requirements |
Boundaries and Relationships
The BgZ use case has similarities and differences with other use cases such as Medication Process, Vital Signs and Lab Results. These use cases use the same ZIB based FHIR profiles for exchanging information. The BgZ use case covers practically all profiles included in the other use cases. However, the BgZ differs in scope of the actual health information content that should be exchanged. For example, the BgZ conveys only the last known lab result of each type while the Lab Results use case may cover all known information.
List of invocations
This FHIR implementation guide assumes that the PHR system is able to make a connection to the XIS that contains the patient's BgZ information. 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 section 7 (Architectuur en technische specificaties) of 'Afsprakenstelsel release 1.0 version 0.3'.
Client - PHR
The PHR system can request the BgZ using individual search interactions. The search interaction searches the current resources based on some filter criteria. The interaction can be performed by an HTTP GET or command as shown:
GET [base]/[type]/{?[parameters]{&_format=[mime-type]}}
The BgZ consists of multiple FHIR resources with certain constraints. To obtain the patient's BgZ, the client can use multiple individual search operations based on specified search queries. The client may also bundle the search operations in a batch. The individual requests are discussed first, followed by the batch procedure.
Individual resource requests
The table below shows in the first four columns the BgZ sections, the ZIBs that constitute those sections and the specific content of the BgZ. The last column shows the FHIR search queries to obtain the needed information for the BgZ. These queries are based on StructureDefinitions listed in this section.
Each query contains the patient's identifier indicated with the following parameter: [patient-id]
. In a MedMij PHR context, this cannot be the Patient's BSN (citizen service number). The BSN is by law not allowed to be used by other systems than those of healthcare providers. Based on infrastructure and interface specifications as described in the 'Afsprakenstelsel' a token will be used to identify the patient across the MedMij network.
# | BgZ Section | ZIB EN | Content | Example Search URL |
---|---|---|---|---|
1 | Patient information | Patient | BSN, birthdate, gender, deceasedindicator, contact details, contact persons, and general practitioner (practitioner or organization) | GET [base]/Patient?identifier=[patient-id]&_include=Patient:general-practitioner |
2 | Payment details | Payer | Insurance information | GET [base]/Coverage?subscriber:Patient.identifier=[patient-id]&_include=Coverage:payor:Patient&_include=Coverage:payor:Organization |
3 | Treatment directives | TreatmentDirective | Known treatment directives | GET [base]/Consent?patient.identifier=[patient-id]&category=http://snomed.info/sct|11291000146105 |
Advance directive | Known advance directives | GET [base]/Consent?patient.identifier=[patient-id]&category=http://snomed.info/sct|11341000146107 | ||
4 | Contactperson | Contact | Primary relation/contact | see Patient |
5 | Functional status | FunctionalOrMentalStatus | Last known functional / mental status | GET [base]/Observation/$lastn?patient.identifier=[patient-id]&category=http://snomed.info/sct|118228005,http://snomed.info/sct|364644000 |
6 | Problems | Concern | All known problems for the following categories: problem, condition, diagnosis, symptom, finding, complaint, functional limitation, complication. | GET [base]/Condition?patient.identifier=[patient-id]&category:in=http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.5.1.1--20150401000000 |
8 | Social history | MaritalStatus | Current marital status | see Patient |
LivingSituation | Current living situation | GET [base]/Observation/$lastn?patient.identifier=[patient-id]&code=http://snomed.info/sct|365508006 | ||
DrugUse | All known drug use | GET [base]/Observation?patient.identifier=[patient-id]&code=http://snomed.info/sct|228366006 | ||
AlcoholUse | All known alchol use | GET [base]/Observation?patient.identifier=[patient-id]&code=http://snomed.info/sct|228273003 | ||
TobaccoUse | All known tobacco use | GET [base]/Observation?patient.identifier=[patient-id]&code=http://snomed.info/sct|365980008 | ||
NutritionAdvice | All known current dietary recommendations | GET [base]/NutritionOrder?patient.identifier=[patient-id]&status=active | ||
9 | Alerts | Alert | All known alerts | GET [base]/Flag?patient.identifier=[patient-id] |
AllergyIntolerance | All known information regarding allergies | GET [base]/AllergyIntolerance?patient.identifier=[patient-id] | ||
10 | Medication | MedicationUse | Current medication use | GET [base]/MedicationStatement?patient.identifier=[patient-id]&status=active &category=urn:oid:2.16.840.1.113883.2.4.3.11.60.20.77.5.3|6&_include:MedicationStatement:medication |
MedicationAgreement | Current prescriptions | GET [base]/MedicationRequest?patient.identifier=[patient-id]&status=active &category=http://snomed.info/sct|16076005&_include:MedicationRequest:medication | ||
11 | Medial aids | MedicalAid | All known medicalaids | GET [base]/DeviceUseStatement?patient.identifier=[patient-id]&_include=DeviceUseStatement:device |
12 | Vaccinations | Vaccination | All known vaccinations | GET [base]/Immunization?patient.identifier=[patient-id]&status=completed |
13 | Vital signs | BloodPressure | Last known bloodpressure | GET [base]/Observation/$lastn?patient.identifier=[patient-id]&code=http://loinc.org|85354-9 |
BodyWeight | Last known body weight | GET [base]/Observation/$lastn?patient.identifier=[patient-id]&code=http://loinc.org|29463-7 | ||
BodyHeight | Last known body height | GET [base]/Observation/$lastn?patient.identifier=[patient-id]&code=http://loinc.org|8302-2,http://loinc.org|8306-3,http://loinc.org|8308-9 | ||
14 | Results | LaboratoryTestResult | Last known laboratory results per type | GET [base]/Observation/$lastn?patient.identifier=[patient-id]&category=http://snomed.info/sct|275711006&_include=Observation:related-target&_include=Observation:specimen |
15 | Procedures | Procedure | All surgical procedures | GET [base]/Procedure?patient.identifier=[patient-id]&category=http://snomed.info/sct|365508006 |
16 | Encounters | Contact | All hospital admissions (no outpatient contacts) | GET [base]/Encounter?patient.identifier=[patient-id] &class=http://hl7.org/fhir/v3/ActCode|IMP,http://hl7.org/fhir/v3/ActCode|ACUTE,http://hl7.org/fhir/v3/ActCode|NONAC |
17 | Planned care | PlannedCareActivity | All known planned care activities | GET [base]/ProcedureRequest?patient.identifier=[patient-id]&status=active |
GET [base]/ImmunizationRecommendation?patient.identifier=[patient-id] | ||||
GET [base]/MedicationDispense?patient.identifier=[patient-id]&category=http://snomed.info/sct|422037009&status=in-progress,preparation | ||||
GET [base]/DeviceRequest?patient.identifier=[patient-id]&status=active | ||||
GET [base]/Appointment?patient.identifier=[patient-id]&status=booked,pending,proposed | ||||
18 | General practitioner | HealthProfessional | General Practitioner of the patient | see Patient |
Batch request
A FHIR Bundle resource can be used to group the individual resources requests of the BgZ. If a bundle is used to query the BgZ, the bundle SHALL be of type = "batch".
A batch (type = "batch") consists of a series of entries. Each entry element SHALL contain a request element. Each entry has the details of an HTTP operation that informs the system processing the batch what to do with the entry. The bundle with type = batch is a transaction that is intended to be processed by a server as a group of actions in contrary to a bundle with type = 'transaction' where the entire set of HTTP operations is intended to be processed by a server as an atomic commit.
A batch interaction is performed by an HTTP POST command as shown:
POST [base] {?_format=[mime-type]}
The content of the post submission is a Bundle with Bundle.type = batch. Each entry carries request details (Bundle.entry.request) that provides the HTTP details of the action in order to inform the system processing the batch or what to do for the entry (note: the request is optional, but SHOULD be present). Every bundle.entry retrieves a resource using a GET method and a specified url. The XML below demonstrates a batch of requests that can be send to a server. This example can also be found here.
<Bundle xmlns="http://hl7.org/fhir"> <id value="bundle-request-simplesummary"/> <type value="batch"/> <!-- Each entry is used to represent a RESTful API request This request retrieves a single Patient resource --> <entry> <request> <method value="GET"/> <url value="/Patient/example"/> </request> </entry> <!-- This request will retrieve the conditions for the patient --> <entry> <request> <method value="GET"/> <url value="/Condition?patient=example"/> </request> </entry> <!-- This request will retrieve the MedicationStatements for the patient requested above --> <entry> <request> <method value="GET"/> <url value="/MedicationStatement?patient=example"/> </request> </entry> </Bundle>
Example batch request
A predefined BgZ bundle batch can be found here: https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2015/1.0.0/files/133104/~xml.
Server - XIS
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).
Response on individual resource requests
If the search succeeds, the server SHALL return a 200 OK HTTP status code and the return 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 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.
In the case of a RESTful search, these parameters are encoded in the self link in the bundle that is returned:
<link> <relation value="self"/> <url value="http://example.org/Patient?identifier=[Patient-ID]/> </link>
Link to the relevant FHIR specification: http://hl7.org/fhir/STU3/http.html#search
Response for a batch request
For a batch the response the server SHALL return a Bundle with type set to batch-response that contains one entry for each entry in the request, in the same order, with the outcome of processing the entry. For the BgZ bundle batch, the response is a bundle of type = batch-response with multiple entries containing bundles of type = searchset that correspond to the individual search queries.
A client may use the returned Bundle to track the outcomes of processing the entry, and the identities assigned to the resources by the server. Each entry element SHALL contain a response element which details the outcome of processing the entry - the HTTP status code, and the location and ETag header values, which are used for identifying and versioning the resources. In addition, a resource may be included in the entry, as specified by the Prefer header.
Link to relevant FHIR specification: http://hl7.org/fhir/STU3/http.html#transaction-response
Handling errors
If the search fails (cannot be executed, not that there is no matches), the return value is a status code 4xx or 5xx with an OperationOutcome. A 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. When the search fails, a server SHOULD return an OperationOutcome detailing the cause of the failure. Note: An empty search result is not a failure.
In some cases, parameters may cause an error. For instance:
- A parameter may refer to a non-existent resource e.g.
GET [base]/Observation?subject=101
, where "101" does not exist - A parameter may refer to an unknown code e.g.
GET [base]/Observation?code=loinc|1234-1
, where the LOINC 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 data 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.
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
Link to relevant FHIR specification: http://hl7.org/fhir/STU3/search.html#errors
Example batch response
An example of a batch response can be found here: https://simplifier.net/NictizSTU3/batch-response/~xml.
The batch-response is a bundle that contains bundles of the type = searchset in the entries. These bundles of type = searchset represent the individual queries in the bundle that is posted to the server. Please note that this example does not contain actual search results. There is no patient with the identifier '123456789' on the server. Therefore all the returned bundles are empty.
Interactions, operations, search parameters
Interactions
The following logical interactions are needed for the BgZ use case:
Operations
The following operation is needed to support 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 vitals signs. The link will provide more detailed information and examples regarding this operation.
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:
List of StructureDefinitions
Terminology, NamingSystems, Mappings
Terminology
Relevant value sets can be found in the package.
NamingSystems
Relevant NamingSystems can be found in the package.
Mappings
Relevant ZIB to FHIR value set mappings can be found in the package. All profiles include ZIB mappings. ZIB concepts are mapped in the corresponding FHIR elements using the ZIB' concept id. The top of the StructureDefinition contains meta information regarding the ZIB mapping, such as the name and uri of the ZIB. In the StructureDefinition elements the corresponding ZIB ID is given including the mapping meta information id. This is illustrated in the following example.
<StructureDefinition> <id value="nl-core-patient" /> ..... <mapping> <identity value="zib-patient" /> <uri value="https://zibs.nl/wiki/Patient(NL)" /> <name value="Zorginformatiebouwsteen Patient" /> </mapping> ..... <element id="Patient.name"> <path value="Patient.name" /> <short value="NameInformation" /> <alias value="Naamgegevens" /> <type> <code value="HumanName" /> <profile value="http://fhir.nl/fhir/StructureDefinition/nl-core-humanname" /> </type> <mapping> <identity value="zib-patient" /> <map value="NL-CM:0.1.6" /> </mapping> </element> ..... </StructureDefinition>