Gebz:V1.0 FHIR IG: verschil tussen versies

Uit informatiestandaarden
Naar navigatie springen Naar zoeken springen
Regel 69: Regel 69:
  
 
=== Examples ===
 
=== Examples ===
Example FHIR resources can be found here: [https://github.com/Nictiz/Geboortezorg-STU3/tree/master/examples Birthcare FHIR examples]
+
Example FHIR resources can be found here: [https://simplifier.net/geboortezorg-stu3/~resources?category=Example&sortBy=RankScore_desc]
  
 
=== Search ===
 
=== Search ===
Regel 345: Regel 345:
 
|[https://simplifier.net/geboortezorg-stu3/bc-Child bc-Child] (of nl-core-patient)
 
|[https://simplifier.net/geboortezorg-stu3/bc-Child bc-Child] (of nl-core-patient)
 
|[https://simplifier.net/geboortezorg-stu3/patient-example-duplicate-4 Patient.birthdate]
 
|[https://simplifier.net/geboortezorg-stu3/patient-example-duplicate-4 Patient.birthdate]
 +
|<pre>GET [base]/Patient/[kindid]</pre>
 +
|-
 +
|Apgarscore na 5 min.
 +
|peri23-dataelement-40071
 +
|[https://simplifier.net/NictizSTU3-Zib2017-Develop/ZibApgarScore zib-ApgarScore]
 +
|[https://simplifier.net/geboortezorg-stu3/observation-example-duplicate-27 Observation]
 +
|<pre>GET [base]/Observation?code=9274-2{&subject=[kindid]&dossier=[dossierid]}</pre>
 +
|-
 +
|Geboortegewicht
 +
|peri23-dataelement-40060
 +
|[https://simplifier.net/geboortezorg-stu3/bc-BirthWeight bc-BirthWeight]
 +
|[https://simplifier.net/geboortezorg-stu3/observation-example-duplicate-29 Observation]
 +
|<pre>GET [base]/Observation?code=29463-7{&subject=[kindid]&dossier=[dossierid]}</pre>
 +
|}
 +
 +
==Terminology, NamingSystems, Mappings==
 +
 +
===Terminology===
 +
Relevant value sets can be found [https://simplifier.net/Geboortezorg-STU3/~resources?category=ValueSet here]. All resources can be downloaded in a .zip in XML or JSON format. In the .zip, the value sets are stored in the directory 'value sets'.
 +
 +
=Use case: Register Parturition Record=
 +
 +
==Introduction==
 +
The Register Parturition Record transaction is used by the sending XIS to send the relevant data to the registry.
 +
 +
==Actors==
 +
{| class="wikitable" "cellpadding="10"
 +
! style="text-align:left;"| '''Transaction group'''
 +
! style="text-align:left;"| '''Transaction'''
 +
! style="text-align:left;"| '''Actor'''
 +
! style="text-align:left;"| '''Role'''
 +
|-
 +
|style="background-color: white;vertical-align:top;"|Register Parturition Record(PUSH)
 +
|style="background-color: white;vertical-align:top;"|Register Parturition Record
 +
|style="background-color: white;vertical-align:top;"|Healthcare professional (using a XIS)
 +
|style="background-color: white;vertical-align:top;"|Sends Parturition Record data to registry
 +
|-
 +
|style="background-color: white;vertical-align:top;"|Retrieve Parturition Record(PULL)
 +
|style="background-color: white;vertical-align:top;"|Querying XIS
 +
|style="background-color: white;vertical-align:top;"|Healthcare professional (using a XIS)
 +
|style="background-color: white;vertical-align:top;"|Retrieves Parturition Record data from registry
 +
|}
 +
 +
==Invocations==
 +
 +
===Sending XIS: request message===
 +
 +
====Trigger Events====
 +
 +
====Message Semantics====
 +
The source executes the following HTTP requests:
 +
 +
1. A HTTP POST request of a Bundle with Bundle.type = transaction to the target's base endpoint. The first Bundle.entry contains a Composition resource, and each subsequent entry contains a resource that is referenced from the Composition resource. Each Bundle.entry should contain an entry.request with request.method = POST. An example of a transaction Bundle can be found here: [https://simplifier.net/geboortezorg-stu3/bundle-example Example of Transaction Bundle]
 +
 +
<pre>
 +
POST [base]{&_format=[mime-type]}
 +
</pre>
 +
 +
2.  A HTTP GET request to the target's Composition endpoint, handling the createDocumentOperation with persist=true. The target's response is a FHIR Document Bundle, which is generated from the Composition resource and stored to the target's Bundle endpoint.
 +
 +
<pre>
 +
GET [base]/Composition/[id]/$document?persist=true{&_format=[mime-type]}
 +
</pre>
 +
 +
===Retrieving XIS: request message===
 +
FHIR Document Bundles can be retrieved by a HTTP GET request to the target's Bundle endpoint. Note that FHIR Document Bundles are immutable and its entries refer to a time-related version of a resource which is not necessarily its latest version.
 +
 +
<pre>
 +
GET [base]/Bundle/[id]{&_format=[mime-type]}
 +
</pre>
 +
 +
Individual resources can be retrieved by HTTP GET requests to specific resource endpoints, see the Search section and list of StructureDefinitions below.
 +
 +
=== Examples ===
 +
Example FHIR resources can be found here: [https://simplifier.net/geboortezorg-stu3/~resources?category=Example&sortBy=RankScore_desc]
 +
 +
=== Search ===
 +
Example search URLs can be found in the list of StructureDefinitions below.
 +
 +
==FHIR Resources and StructureDefinitions [NOT YET COMPLETE]==
 +
 +
===Graphical overview===
 +
 +
===Types of resources and relations between them===
 +
For pregnancy-, delivery- and child related observations detailed information is given, follow links below.
 +
{| class="wikitable"
 +
|-
 +
!style="background-color: #4AB8A7; color: white; font-weight: bold; text-align:left;  background-color: #E3E3E3 width:50px" | Name
 +
!style="background-color: #4AB8A7; color: white; font-weight: bold; text-align:left;  background-color: #E3E3E3 width:50px" | FHIR resource
 +
!style="background-color: #4AB8A7; color: white; font-weight: bold; text-align:left;  background-color: #E3E3E3 width:50px" | Description
 +
|-
 +
|Woman (Vrouw)
 +
|Patient
 +
|The core of each pregnancy is the pregnant woman, a FHIR Patient.
 +
|-
 +
|Generic resources
 +
|Practitioner, PractitionerRole, Organization
 +
|Those are not used differently than in other Dutch projects.
 +
|-
 +
|Pregnancy, Pregnancy file (Zwangerschap, zwangerschapsdossier)
 +
|Condition, EpisodeOfCare
 +
|Each pregnancy is a Condition. It is also represented as an EpisodeOfCare for each involved Organization. The pregnancy includes references to an Organization and responsible Practitioner. (Practitioners responsible for the actual data may be included there, i.e. in Procedures, Observations.)
 +
* Condition points to the EpisodeOfCare through a EpisodeOfCare.context.reference element. (Note: different providers may each have their own Condition resource.)
 +
* EpisodeOfCare points to the Condition through a EpisodeOfCare.diagnosis.condition element.
 +
* Condition points to the Patient with Condition.subject.reference
 +
* Condition.status must be 'active' for ongoing pregnancies and 'inactive' for past ones.
 +
|-
 +
|Patient-related Observations
 +
|Observation
 +
|Observations such as blood type pertain to the Patient.
 +
* Observations can refer to an EpisodeOfCare with Observation.context.reference
 +
|-
 +
|[[Gebz:V2.3_FHIR_Recipes#bc-PregnancyObservation|Pregnancy-related Observations]]
 +
|Observation
 +
|Observations such as gravidity and parity do not (only) pertain to the Patient but to a particular pregnancy.
 +
* Pregnancy-related Observations use focus extension to point to Condition they're about. Without this, all gravidities would only be Observations about a Patient.
 +
* Pregnancy-related Observations refer to the EpisodeOfCare with Observation.context.reference
 +
|-
 +
|Delivery (Bevalling)
 +
|Procedure
 +
|Delivery is modeled with Procedure (even for uncomplicated natural births for consistency).
 +
* Delivery refers to the EpisodeOfCare with Observation.context.reference
 +
|-
 +
|Obstetric Procedures
 +
|Procedure
 +
|Obstetric Procedures, such as vacuum delivery, are Procedures conducted as part of the Delivery Procedure.
 +
* Obstetric Procedures use Procedure.partOf element to point to the delivery Procedure they're part of.
 +
* Obstetric Procedures refer to the EpisodeOfCare with Observation.context.reference
 +
|-
 +
|[[Gebz:V2.3_FHIR_Recipes#bc-DeliveryObservation|Delivery-related Observations]]
 +
|Observation
 +
|Observations such as onset of labor or blood loss pertain to a delivery Procedure.
 +
* Delivery-related Observations use focus extension to point to the delivery Procedure they're about.
 +
* Delivery-related Observations refer to the EpisodeOfCare with Observation.context.reference
 +
|-
 +
|Birth
 +
|Observation
 +
|A birth pertains to a delivery Procedure as well as a child, especially in multiple birth where multiple Birth instances point to the same delivery Procedure. A birth also provides the relation between a child and its mother, which is still the subject of the record.
 +
* Birth uses focus extension to point to the delivery Procedure.
 +
* Birth uses focus extension to point to the child Patient.
 +
* Birth refers to the EpisodeOfCare with Observation.context.reference
 +
|-
 +
|[[Gebz:V2.3_FHIR_Recipes#bc-BirthObservation|Birth-related Observations]]
 +
|Observation
 +
|Observations such as parturition type pertain to a birth. They are also about the mother, which still is the subject.
 +
* Birth-related Observations use focus extension to point to a birth.
 +
* Birth-related Observations refer to the EpisodeOfCare with Observation.context.reference
 +
|-
 +
|Child
 +
|Patient
 +
|Child is a separate Patient.
 +
* Procedure-related Observations use focus extension to point to the child Patient they're about.
 +
|-
 +
|[[Gebz:V2.3_FHIR_Recipes#bc-ChildObservation|Child-related Observations]]
 +
|Observation
 +
|Observations such as Apgar score and birthweight pertain to the child Patient, which is the subject of these Observations.
 +
* Child observations refer to the EpisodeOfCare with Observation.context.reference
 +
|-
 +
|}
 +
 +
The use of ''focus'' extensions is a pre-adopt of FHIR R4, where it is part of Observation: "What the observation is about, when it is not about the subject of record." Focus is required for all Observations which do not pertain to the Patient. In R4, use of focus permits "reverse include" queries (give me all Observations with focus element X). In STU3, this could be a custom search.
 +
 +
The use of ''context'' is encouraged for all resources which have a context element. It is a reference to an EpisodeOfCare or an Encounter. Context should point to an Encounter when appropriate (scheduled maternity checks etc.) and to the EpisodeOfCare in all other cases. Possibly it will be absent in Observations where the source is not birth care, so readers should not rely on it's presence.
 +
 +
Observations should include a performer if known.
 +
 +
===List of StructureDefinitions [NOT YET COMPLETE]===
 +
Please note that many birth care specific profiles are derived from nl-core profiles (e.g. bc-PregnancyObservation is derived from nl-core-observation) to support (re)use of profiles in multiple use cases. The meta.profile element of FHIR instances conforming these profiles should at least include the generic nl-core profile and preferably the specific birth care profile.
 +
 +
{| class="wikitable"
 +
|-
 +
!style="background-color: #4AB8A7; color: white; font-weight: bold; text-align:left;  background-color: #E3E3E3 width:50px" | Name
 +
!style="background-color: #4AB8A7; color: white; font-weight: bold; text-align:left;  background-color: #E3E3E3 width:50px" | PWD 2.3 id
 +
!style="background-color: #4AB8A7; color: white; font-weight: bold; text-align:left;  background-color: #E3E3E3 width:50px" | FHIR Profile
 +
!style="background-color: #4AB8A7; color: white; font-weight: bold; text-align:left;  background-color: #E3E3E3 width:50px" | FHIR Example
 +
!style="background-color: #4AB8A7; color: white; font-weight: bold; text-align:left;  background-color: #E3E3E3 width:50px" | Example SEARCH URL
 +
|-
 +
|rowspan="2" |Vrouw
 +
|rowspan="2" |
 +
|rowspan="2" |[https://simplifier.net/geboortezorg-stu3/bc-Woman bc-Woman] (nl-core-patient)
 +
|rowspan="2" |[https://simplifier.net/geboortezorg-stu3/patient-example-duplicate-3 Patient]
 +
|<pre>GET [base]/Patient/[vrouwid]</pre>
 +
|-
 +
|<pre>GET [base]/Patient?identifier=[bsn]</pre>
 +
|-
 +
|Partner
 +
|peri23-dataelement-80633
 +
|[https://simplifier.net/nictizstu3-zib2017/nl-core-relatedperson nl-core-relatedperson)
 +
|[RelatedPerson]
 +
|<pre>GET [base]/RelatedPerson?patient=[vrouwid]</pre>
 +
|-
 +
|rowspan="2" |Zorgverlener
 +
|rowspan="2" |
 +
|rowspan="2" |[https://simplifier.net/nictizstu3-zib2017/nl-core-practitioner nl-core-practitioner]
 +
|rowspan="2" |[https://simplifier.net/geboortezorg-stu3/practitioner-example-duplicate-2 Practitioner]
 +
|<pre>GET [base]/Practitioner/[zorgverlenerid]</pre>
 +
|-
 +
|<pre>GET [base]/Practitioner?identifier=[lvrid]</pre>
 +
|-
 +
|rowspan="2" |Zorginstelling
 +
|rowspan="2" |
 +
|rowspan="2" |[https://simplifier.net/nictizstu3-zib2017/nl-core-organization nl-core-organization]
 +
|rowspan="2" |[https://simplifier.net/geboortezorg-stu3/organization-example-duplicate-2 Organization]
 +
|<pre>GET [base]/Organization/[zorginstellingid]</pre>
 +
|-
 +
|<pre>GET [base]/Organization?identifier=[lvrid]</pre>
 +
|-
 +
|rowspan="2" |Zorgverlenerrol
 +
|rowspan="2" |
 +
|rowspan="2" |[https://simplifier.net/nictizstu3-zib2017/nl-core-practitionerrole nl-core-practitionerrole]
 +
|rowspan="2" |[https://simplifier.net/geboortezorg-stu3/practitionerrole-example PractitionerRole]
 +
|<pre>GET [base]/PractitionerRole/[zorgverlenerrolid]</pre>
 +
|-
 +
|<pre>GET [base]/PractitionerRole?practitioner:Practitioner.identifier=[lvrid]</pre>
 +
|-
 +
|rowspan="2" |Verwijsdetails
 +
|rowspan="2" |peri23-dataelement-82012
 +
|rowspan="2" |[https://simplifier.net/geboortezorg-stu3/bc-referralrequest bc-ReferralRequest]
 +
|rowspan="2" |[https://simplifier.net/geboortezorg-stu3/referralrequest-example ReferralRequest]
 +
|<pre>GET [base]/ReferralRequest?subject=[vrouwid]</pre>
 +
|-
 +
|<pre>GET [base]/ReferralRequest?context=[dossierid]</pre>
 +
|-
 +
|rowspan="3" |Zwangerschapsdossier
 +
|rowspan="3" |
 +
|rowspan="3" |[https://simplifier.net/geboortezorg-stu3/bc-maternalrecord bc-MaternalRecord] (nl-core-episodeofcare)
 +
|rowspan="3" |[https://simplifier.net/geboortezorg-stu3/episodeofcare-example-duplicate-2 EpisodeOfCare]
 +
|<pre>GET [base]/EpisodeOfCare/[dossierid]</pre>
 +
|-
 +
|<pre>GET [base]/Observation,Condition,Procedure?context=[dossierid]</pre>
 +
|-
 +
|<pre>GET [base]/Observation,Condition,Procedure?context:EpisodeOfCare.condition:Condition.clinical-status=active</pre>
 +
|-
 +
|rowspan="4" |Zwangerschap
 +
|rowspan="4" |peri23-dataelement-3
 +
|rowspan="4" |[https://simplifier.net/nictizstu3-zib2017-develop/zibpregnancy zib-Pregnancy]
 +
|rowspan="4" |[https://simplifier.net/geboortezorg-stu3/condition-example-duplicate-3 Condition]
 +
|<pre>GET [base]/Condition/[zwangerschapid]</pre>
 +
|-
 +
|<pre>GET [base]/Condition?clinicalstatus=active</pre>
 +
|-
 +
|<pre>GET [base]/Condition?clinicalstatus=inactive&_sort=_-id&_count=1</pre>
 +
|-
 +
|<pre>GET [base]/Condition?subject=[patientid]&_revinclude=Observation:focus</pre>
 +
|-
 +
|Bloedgroep vrouw
 +
|peri23-dataelement-10810
 +
|[https://simplifier.net/nictizstu3-zib2017/zib-laboratorytestresult-observation zib-LaboratoryTestResult-Observation]
 +
|[https://simplifier.net/geboortezorg-stu3/observation-example-duplicate-31 Observation]
 +
|<pre>GET [base]/Observation?code=883-9{&subject=[vrouwid]&context=[dossierid]}</pre>
 +
|-
 +
|Rhesus D Factor vrouw
 +
|peri23-dataelement-10811
 +
|[https://simplifier.net/nictizstu3-zib2017/zib-laboratorytestresult-observation zib-LaboratoryTestResult-Observation]
 +
|[https://simplifier.net/geboortezorg-stu3/observation-example-duplicate-33 Observation]
 +
|<pre>GET [base]/Observation?code=1305-2{&subject=[vrouwid]&context=[dossierid]}</pre>
 +
|-
 +
|Voornemens
 +
|peri23-dataelement-80671
 +
|[bc-CarePlan]
 +
|[CarePlan]
 +
|<pre>GET [base]/CarePlan?subject=[vrouwid]{&context=[dossierid]}</pre>
 +
|-
 +
|Voorgenomen voeding
 +
|peri23-dataelement-82009
 +
|[bc-NutritionOrder]
 +
|[NutritionOrder]
 +
|<pre>GET [base]/NutritionOrder?patient=[kindid]</pre>
 +
|-
 +
|A terme datum
 +
|peri23-dataelement-20030
 +
|[https://simplifier.net/nictizstu3-zib2017-develop/zibpregnancytermdate zib-Pregnancy-DueDate]
 +
|[https://simplifier.net/geboortezorg-stu3/observation-example-duplicate-35 Observation]
 +
|<pre>GET [base]/Observation?code=11778-8{&subject=[vrouwid]&context=[dossierid]&focus=[zwangerschapid]}</pre>
 +
|-
 +
|Bevalling
 +
|peri23-dataelement-6
 +
|[https://simplifier.net/geboortezorg-stu3/bc-deliveryprocedure bc-DeliveryProcedure]
 +
|[https://simplifier.net/geboortezorg-stu3/procedure-example-duplicate-3 Procedure]
 +
|<pre>GET [base]/Procedure?code=236973005{&subject=[vrouwid]&context=[dossierid]&reasonReference=[zwangerschapid]}</pre>
 +
|-
 +
|Placenta
 +
|peri23-dataelement-80612
 +
|[https://simplifier.net/geboortezorg-stu3/bc-placenta bc-Placenta]
 +
|[https://simplifier.net/geboortezorg-stu3/bodysite-example BodySite]
 +
|<pre>GET [base]/BodySite?subject=[vrouwid]</pre>
 +
|-
 +
|Tijdstip begin actieve ontsluiting
 +
|peri23-dataelement-20590
 +
|[https://simplifier.net/geboortezorg-stu3/bc-deliveryobservation bc-DeliveryObservation] (nl-core-observation)
 +
|[https://simplifier.net/geboortezorg-stu3/observation-example-duplicate-13 Observation]
 +
|<pre>GET [base]/Observation?code=249120008{&subject=[vrouwid]&context=[dossierid]&focus=[bevallingid]}</pre>
 +
|-
 +
|Hoeveelheid bloedverlies
 +
|peri23-dataelement-20640
 +
|[https://simplifier.net/geboortezorg-stu3/bc-deliveryobservation bc-DeliveryObservation] (nl-core-observation)
 +
|[https://simplifier.net/geboortezorg-stu3/observation-example-duplicate-6 Observation]
 +
|<pre>GET [base]/Observation?code=64332008{&subject=[vrouwid]&dossier=[dossierid]&focus=[bevallingid]}</pre>
 +
|-
 +
|Conditie perineum postpartum
 +
|peri23-dataelement-80673
 +
|[https://simplifier.net/geboortezorg-stu3/bc-deliveryobservation bc-DeliveryObservation] (nl-core-observation)
 +
|[https://simplifier.net/geboortezorg-stu3/observation-example-duplicate-20 Observation]
 +
|<pre>GET [base]/Observation?code=364297003{&subject=[vrouwid]&dossier=[dossierid]&focus=[bevallingid]}</pre>
 +
|-
 +
|Geboorte
 +
|
 +
|[https://simplifier.net/geboortezorg-stu3/bc-birth bc-Birth] (nl-core-observation)
 +
|[https://simplifier.net/geboortezorg-stu3/observation-example-duplicate-61 Observation]
 +
|<pre>GET [base]/Observation?code=3950001{&subject=[vrouwid]&dossier=[dossierid]&focus=[geboorteid]&focus=[kindid]}</pre>
 +
|-
 +
|Tijdstip actief meepersen
 +
|peri23-dataelement-30030
 +
|[https://simplifier.net/geboortezorg-stu3/bc-deliveryobservation bc-DeliveryObservation] (nl-core-observation)
 +
|[https://simplifier.net/geboortezorg-stu3/observation-example-duplicate-15 Observation]
 +
|<pre>GET [base]/Observation?code=249163006{&subject=[vrouwid]&dossier=[dossierid]&focus=[geboorteid]}</pre>
 +
|-
 +
|Type partus
 +
|peri23-dataelement-80626
 +
|[https://simplifier.net/geboortezorg-stu3/bc-deliveryobservation bc-DeliveryObservation] (nl-core-observation)
 +
|[https://simplifier.net/geboortezorg-stu3/observation-example-duplicate-17 Observation]
 +
|<pre>GET [base]/Observation?code=364336006{&subject=[vrouwid]&dossier=[dossierid]&focus=[geboorteid]}</pre>
 +
|-
 +
|Kind
 +
|
 +
|[https://simplifier.net/geboortezorg-stu3/bc-Child bc-Child] (of nl-core-patient)
 +
|[https://simplifier.net/geboortezorg-stu3/patient-example-duplicate-4 Patient]
 
|<pre>GET [base]/Patient/[kindid]</pre>
 
|<pre>GET [base]/Patient/[kindid]</pre>
 
|-
 
|-

Versie van 1 apr 2020 12:54

{{#customtitle:FHIR Implementation Guide Geboortezorg v2.3 | FHIR Implementation Guide Geboortezorg v2.3}}

AfsprakenstelselFunctioneelTechnischAfspraken-Functioneel-Technisch

Introduction

This page details the HL7 FHIR requirements for exchanging the Geboortezorg v2.3 data described in Functioneel.

A high level overview:

Fhir-model-overview.png

Use case: Register Prio1 data

Introduction

The Register Prio1 transaction is used by the sending XIS to send the relevant data to the registry.

Actors

Transaction group Transaction Actor Role
Register Prio1(PUSH) Register Prio1 Healthcare professional (using a XIS) Sends Prio1 data to registry
Retrieve Prio1(PULL) Querying XIS Healthcare professional (using a XIS) Retrieves Prio1 data from registry

Invocations

Sending XIS: request message

Trigger Events

Message Semantics

The source executes the following HTTP requests:

1. A HTTP POST request of a Bundle with Bundle.type = transaction to the target's base endpoint. The first Bundle.entry contains a Composition resource, and each subsequent entry contains a resource that is referenced from the Composition resource. Each Bundle.entry should contain an entry.request with request.method = POST. An example of a transaction Bundle can be found here: Example of Transaction Bundle

POST [base]{&_format=[mime-type]}

2. A HTTP GET request to the target's Composition endpoint, handling the createDocumentOperation with persist=true. The target's response is a FHIR Document Bundle, which is generated from the Composition resource and stored to the target's Bundle endpoint.

GET [base]/Composition/[id]/$document?persist=true{&_format=[mime-type]}

Retrieving XIS: request message

FHIR Document Bundles can be retrieved by a HTTP GET request to the target's Bundle endpoint. Note that FHIR Document Bundles are immutable and its entries refer to a time-related version of a resource which is not necessarily its latest version.

GET [base]/Bundle/[id]{&_format=[mime-type]}

Individual resources can be retrieved by HTTP GET requests to specific resource endpoints, see the Search section and list of StructureDefinitions below.

Examples

Example FHIR resources can be found here: [1]

Search

Example search URLs can be found in the list of StructureDefinitions below. Some searches require the implementation of custom search parameters. These parameters can be found here: https://simplifier.net/geboortezorg-stu3/~resources?category=SearchParameter

FHIR Resources and StructureDefinitions

Graphical overview

The following link Media:FHIR Geboortezorg Profielen Prio1 23-03-2020.png provides a graphical overview of the structure definitions and their relations.

Types of resources and relations between them

For pregnancy-, delivery- and child related observations detailed information is given, follow links below.

Name FHIR resource Description
Woman (Vrouw) Patient The core of each pregnancy is the pregnant woman, a FHIR Patient.
Generic resources Practitioner, PractitionerRole, Organization Those are not used differently than in other Dutch projects.
Pregnancy, Pregnancy file (Zwangerschap, zwangerschapsdossier) Condition, EpisodeOfCare Each pregnancy is a Condition. It is also represented as an EpisodeOfCare for each involved Organization. The pregnancy includes references to an Organization and responsible Practitioner. (Practitioners responsible for the actual data may be included there, i.e. in Procedures, Observations.)
  • Condition points to the EpisodeOfCare through a EpisodeOfCare.context.reference element. (Note: different providers may each have their own Condition resource.)
  • EpisodeOfCare points to the Condition through a EpisodeOfCare.diagnosis.condition element.
  • Condition points to the Patient with Condition.subject.reference
  • Condition.status must be 'active' for ongoing pregnancies and 'inactive' for past ones.
Patient-related Observations Observation Observations such as blood type pertain to the Patient.
  • Observations can refer to an EpisodeOfCare with Observation.context.reference
Pregnancy-related Observations Observation Observations such as gravidity and parity do not (only) pertain to the Patient but to a particular pregnancy.
  • Pregnancy-related Observations use focus extension to point to Condition they're about. Without this, all gravidities would only be Observations about a Patient.
  • Pregnancy-related Observations refer to the EpisodeOfCare with Observation.context.reference
Delivery (Bevalling) Procedure Delivery is modeled with Procedure (even for uncomplicated natural births for consistency).
  • Delivery refers to the EpisodeOfCare with Observation.context.reference
Obstetric Procedures Procedure Obstetric Procedures, such as vacuum delivery, are Procedures conducted as part of the Delivery Procedure.
  • Obstetric Procedures use Procedure.partOf element to point to the delivery Procedure they're part of.
  • Obstetric Procedures refer to the EpisodeOfCare with Observation.context.reference
Delivery-related Observations Observation Observations such as onset of labor or blood loss pertain to a delivery Procedure.
  • Delivery-related Observations use focus extension to point to the delivery Procedure they're about.
  • Delivery-related Observations refer to the EpisodeOfCare with Observation.context.reference
Birth Observation A birth pertains to a delivery Procedure as well as a child, especially in multiple birth where multiple Birth instances point to the same delivery Procedure. A birth also provides the relation between a child and its mother, which is still the subject of the record.
  • Birth uses focus extension to point to the delivery Procedure.
  • Birth uses focus extension to point to the child Patient.
  • Birth refers to the EpisodeOfCare with Observation.context.reference
Birth-related Observations Observation Observations such as parturition type pertain to a birth. They are also about the mother, which still is the subject.
  • Birth-related Observations use focus extension to point to a birth.
  • Birth-related Observations refer to the EpisodeOfCare with Observation.context.reference
Child Patient Child is a separate Patient.
  • Procedure-related Observations use focus extension to point to the child Patient they're about.
Child-related Observations Observation Observations such as Apgar score and birthweight pertain to the child Patient, which is the subject of these Observations.
  • Child observations refer to the EpisodeOfCare with Observation.context.reference

The use of focus extensions is a pre-adopt of FHIR R4, where it is part of Observation: "What the observation is about, when it is not about the subject of record." Focus is required for all Observations which do not pertain to the Patient. In R4, use of focus permits "reverse include" queries (give me all Observations with focus element X). In STU3, this could be a custom search.

The use of context is encouraged for all resources which have a context element. It is a reference to an EpisodeOfCare or an Encounter. Context should point to an Encounter when appropriate (scheduled maternity checks etc.) and to the EpisodeOfCare in all other cases. Possibly it will be absent in Observations where the source is not birth care, so readers should not rely on it's presence.

Observations should include a performer if known.

List of StructureDefinitions

Please note that many birth care specific profiles are derived from nl-core profiles (e.g. bc-PregnancyObservation is derived from nl-core-observation) to support (re)use of profiles in multiple use cases. The meta.profile element of FHIR instances conforming these profiles should at least include the generic nl-core profile and preferably the specific birth care profile.

Name PWD 2.3 id FHIR Profile FHIR Example Example SEARCH URL
Vrouw bc-Woman (nl-core-patient) Patient
GET [base]/Patient/[vrouwid]
GET [base]/Patient?identifier=[bsn]
Zorgverlener nl-core-practitioner Practitioner
GET [base]/Practitioner/[zorgverlenerid]
GET [base]/Practitioner?identifier=[lvrid]
Zorginstelling nl-core-organization Organization
GET [base]/Organization/[zorginstellingid]
GET [base]/Organization?identifier=[lvrid]
Zorgverlenerrol nl-core-practitionerrole PractitionerRole
GET [base]/PractitionerRole/[zorgverlenerrolid]
GET [base]/PractitionerRole?practitioner:Practitioner.identifier=[lvrid]
Zwangerschapsdossier bc-MaternalRecord (nl-core-episodeofcare) EpisodeOfCare
GET [base]/EpisodeOfCare/[dossierid]
GET [base]/Observation,Condition,Procedure?context=[dossierid]
GET [base]/Observation,Condition,Procedure?context:EpisodeOfCare.condition:Condition.clinical-status=active
Zwangerschap peri23-dataelement-3 zib-Pregnancy Condition
GET [base]/Condition/[zwangerschapid]
GET [base]/Condition?clinicalstatus=active
GET [base]/Condition?clinicalstatus=inactive&_sort=_-id&_count=1
GET [base]/Condition?subject=[patientid]&_revinclude=Observation:focus
Bloedgroep vrouw peri23-dataelement-10810 zib-LaboratoryTestResult-Observation Observation
GET [base]/Observation?code=883-9{&subject=[vrouwid]&context=[dossierid]}
Rhesus D Factor vrouw peri23-dataelement-10811 zib-LaboratoryTestResult-Observation Observation
GET [base]/Observation?code=1305-2{&subject=[vrouwid]&context=[dossierid]}
Rhesus c Factor peri23-dataelement-10816 zib-LaboratoryTestResult-Observation Observation
GET [base]/Observation?code=1159-3{&subject=[vrouwid]&context=[dossierid]}
Hb waarde peri23-dataelement-10814 zib-LaboratoryTestResult-Observation Observation
GET [base]/Observation?code=718-7{&subject=[vrouwid]&context=[dossierid]}
A terme datum peri23-dataelement-20030 zib-Pregnancy-DueDate Observation
GET [base]/Observation?code=11778-8{&subject=[vrouwid]&context=[dossierid]&focus=[zwangerschapid]}
Graviditeit peri23-dataelement-20010 zib-Pregnancy-Gravidity Observation
GET [base]/Observation?code=11996-6{&subject=[vrouwid]&context=[dossierid]&focus=[zwangerschapid]}
Pariteit peri23-dataelement-20150 zib-Pregnancy-Parity Observation
GET [base]/Observation?code=11977-6{&subject=[vrouwid]&context=[dossierid]&focus=[zwangerschapid]}
Wijze einde zwangerschap peri23-dataelement-80625 bc-PregnancyObservation (nl-core-observation) Observation
GET [base]/Observation?code=EindeZw{&subject=[vrouwid]&context=[dossierid]&focus=[zwangerschapid]}
Datum einde zwangerschap peri23-dataelement-20540 bc-PregnancyObservation (nl-core-observation) Observation
GET [base]/Observation?code=xxx{&subject=[vrouwid]&context=[dossierid]&focus=[zwangerschapid]}
Zwangerschapsduur peri23-dataelement-20062 zib-Pregnancy-Duration
GET [base]/Observation?code=57036006{&subject=[vrouwid]&context=[dossierid]&focus=[zwangerschapid]}
Bevalling peri23-dataelement-6 bc-DeliveryProcedure Procedure
GET [base]/Procedure?code=236973005{&subject=[vrouwid]&context=[dossierid]&reasonReference=[zwangerschapid]}
Vaginale kunstverlossing peri23-dataelement-40190 bc-ObstetricProcedure Procedure
GET [base]/Procedure?code=3311000146109{&subject=[vrouwid]&context=[dossierid]&partof=[bevallingid,uitdrijvingsfaseid]}
Tijdstip begin actieve ontsluiting peri23-dataelement-20590 bc-DeliveryObservation (nl-core-observation) Observation
GET [base]/Observation?code=249120008{&subject=[vrouwid]&context=[dossierid]&focus=[bevallingid]}
Hoeveelheid bloedverlies peri23-dataelement-20640 bc-DeliveryObservation (nl-core-observation) Observation
GET [base]/Observation?code=64332008{&subject=[vrouwid]&dossier=[dossierid]&focus=[bevallingid]}
Conditie perineum postpartum peri23-dataelement-80673 bc-DeliveryObservation (nl-core-observation) Observation
GET [base]/Observation?code=364297003{&subject=[vrouwid]&dossier=[dossierid]&focus=[bevallingid]}
Geboorte bc-Birth (nl-core-observation) Observation
GET [base]/Observation?code=3950001{&subject=[vrouwid]&dossier=[dossierid]&focus=[geboorteid]&focus=[kindid]}
Tijdstip actief meepersen peri23-dataelement-30030 bc-DeliveryObservation (nl-core-observation) Observation
GET [base]/Observation?code=249163006{&subject=[vrouwid]&dossier=[dossierid]&focus=[geboorteid]}
Type partus peri23-dataelement-80626 bc-DeliveryObservation (nl-core-observation) Observation
GET [base]/Observation?code=364336006{&subject=[vrouwid]&dossier=[dossierid]&focus=[geboorteid]}
Kind bc-Child (of nl-core-patient) Patient
GET [base]/Patient/[kindid]
Geboortedatum peri23-dataelement-40050 bc-Child (of nl-core-patient) Patient.birthdate
GET [base]/Patient/[kindid]
Apgarscore na 5 min. peri23-dataelement-40071 zib-ApgarScore Observation
GET [base]/Observation?code=9274-2{&subject=[kindid]&dossier=[dossierid]}
Geboortegewicht peri23-dataelement-40060 bc-BirthWeight Observation
GET [base]/Observation?code=29463-7{&subject=[kindid]&dossier=[dossierid]}

Terminology, NamingSystems, Mappings

Terminology

Relevant value sets can be found here. All resources can be downloaded in a .zip in XML or JSON format. In the .zip, the value sets are stored in the directory 'value sets'.

Use case: Register Parturition Record

Introduction

The Register Parturition Record transaction is used by the sending XIS to send the relevant data to the registry.

Actors

Transaction group Transaction Actor Role
Register Parturition Record(PUSH) Register Parturition Record Healthcare professional (using a XIS) Sends Parturition Record data to registry
Retrieve Parturition Record(PULL) Querying XIS Healthcare professional (using a XIS) Retrieves Parturition Record data from registry

Invocations

Sending XIS: request message

Trigger Events

Message Semantics

The source executes the following HTTP requests:

1. A HTTP POST request of a Bundle with Bundle.type = transaction to the target's base endpoint. The first Bundle.entry contains a Composition resource, and each subsequent entry contains a resource that is referenced from the Composition resource. Each Bundle.entry should contain an entry.request with request.method = POST. An example of a transaction Bundle can be found here: Example of Transaction Bundle

POST [base]{&_format=[mime-type]}

2. A HTTP GET request to the target's Composition endpoint, handling the createDocumentOperation with persist=true. The target's response is a FHIR Document Bundle, which is generated from the Composition resource and stored to the target's Bundle endpoint.

GET [base]/Composition/[id]/$document?persist=true{&_format=[mime-type]}

Retrieving XIS: request message

FHIR Document Bundles can be retrieved by a HTTP GET request to the target's Bundle endpoint. Note that FHIR Document Bundles are immutable and its entries refer to a time-related version of a resource which is not necessarily its latest version.

GET [base]/Bundle/[id]{&_format=[mime-type]}

Individual resources can be retrieved by HTTP GET requests to specific resource endpoints, see the Search section and list of StructureDefinitions below.

Examples

Example FHIR resources can be found here: [2]

Search

Example search URLs can be found in the list of StructureDefinitions below.

FHIR Resources and StructureDefinitions [NOT YET COMPLETE]

Graphical overview

Types of resources and relations between them

For pregnancy-, delivery- and child related observations detailed information is given, follow links below.

Name FHIR resource Description
Woman (Vrouw) Patient The core of each pregnancy is the pregnant woman, a FHIR Patient.
Generic resources Practitioner, PractitionerRole, Organization Those are not used differently than in other Dutch projects.
Pregnancy, Pregnancy file (Zwangerschap, zwangerschapsdossier) Condition, EpisodeOfCare Each pregnancy is a Condition. It is also represented as an EpisodeOfCare for each involved Organization. The pregnancy includes references to an Organization and responsible Practitioner. (Practitioners responsible for the actual data may be included there, i.e. in Procedures, Observations.)
  • Condition points to the EpisodeOfCare through a EpisodeOfCare.context.reference element. (Note: different providers may each have their own Condition resource.)
  • EpisodeOfCare points to the Condition through a EpisodeOfCare.diagnosis.condition element.
  • Condition points to the Patient with Condition.subject.reference
  • Condition.status must be 'active' for ongoing pregnancies and 'inactive' for past ones.
Patient-related Observations Observation Observations such as blood type pertain to the Patient.
  • Observations can refer to an EpisodeOfCare with Observation.context.reference
Pregnancy-related Observations Observation Observations such as gravidity and parity do not (only) pertain to the Patient but to a particular pregnancy.
  • Pregnancy-related Observations use focus extension to point to Condition they're about. Without this, all gravidities would only be Observations about a Patient.
  • Pregnancy-related Observations refer to the EpisodeOfCare with Observation.context.reference
Delivery (Bevalling) Procedure Delivery is modeled with Procedure (even for uncomplicated natural births for consistency).
  • Delivery refers to the EpisodeOfCare with Observation.context.reference
Obstetric Procedures Procedure Obstetric Procedures, such as vacuum delivery, are Procedures conducted as part of the Delivery Procedure.
  • Obstetric Procedures use Procedure.partOf element to point to the delivery Procedure they're part of.
  • Obstetric Procedures refer to the EpisodeOfCare with Observation.context.reference
Delivery-related Observations Observation Observations such as onset of labor or blood loss pertain to a delivery Procedure.
  • Delivery-related Observations use focus extension to point to the delivery Procedure they're about.
  • Delivery-related Observations refer to the EpisodeOfCare with Observation.context.reference
Birth Observation A birth pertains to a delivery Procedure as well as a child, especially in multiple birth where multiple Birth instances point to the same delivery Procedure. A birth also provides the relation between a child and its mother, which is still the subject of the record.
  • Birth uses focus extension to point to the delivery Procedure.
  • Birth uses focus extension to point to the child Patient.
  • Birth refers to the EpisodeOfCare with Observation.context.reference
Birth-related Observations Observation Observations such as parturition type pertain to a birth. They are also about the mother, which still is the subject.
  • Birth-related Observations use focus extension to point to a birth.
  • Birth-related Observations refer to the EpisodeOfCare with Observation.context.reference
Child Patient Child is a separate Patient.
  • Procedure-related Observations use focus extension to point to the child Patient they're about.
Child-related Observations Observation Observations such as Apgar score and birthweight pertain to the child Patient, which is the subject of these Observations.
  • Child observations refer to the EpisodeOfCare with Observation.context.reference

The use of focus extensions is a pre-adopt of FHIR R4, where it is part of Observation: "What the observation is about, when it is not about the subject of record." Focus is required for all Observations which do not pertain to the Patient. In R4, use of focus permits "reverse include" queries (give me all Observations with focus element X). In STU3, this could be a custom search.

The use of context is encouraged for all resources which have a context element. It is a reference to an EpisodeOfCare or an Encounter. Context should point to an Encounter when appropriate (scheduled maternity checks etc.) and to the EpisodeOfCare in all other cases. Possibly it will be absent in Observations where the source is not birth care, so readers should not rely on it's presence.

Observations should include a performer if known.

List of StructureDefinitions [NOT YET COMPLETE]

Please note that many birth care specific profiles are derived from nl-core profiles (e.g. bc-PregnancyObservation is derived from nl-core-observation) to support (re)use of profiles in multiple use cases. The meta.profile element of FHIR instances conforming these profiles should at least include the generic nl-core profile and preferably the specific birth care profile.

Name PWD 2.3 id FHIR Profile FHIR Example Example SEARCH URL
Vrouw bc-Woman (nl-core-patient) Patient
GET [base]/Patient/[vrouwid]
GET [base]/Patient?identifier=[bsn]
Partner peri23-dataelement-80633 [https://simplifier.net/nictizstu3-zib2017/nl-core-relatedperson nl-core-relatedperson) [RelatedPerson]
GET [base]/RelatedPerson?patient=[vrouwid]
Zorgverlener nl-core-practitioner Practitioner
GET [base]/Practitioner/[zorgverlenerid]
GET [base]/Practitioner?identifier=[lvrid]
Zorginstelling nl-core-organization Organization
GET [base]/Organization/[zorginstellingid]
GET [base]/Organization?identifier=[lvrid]
Zorgverlenerrol nl-core-practitionerrole PractitionerRole
GET [base]/PractitionerRole/[zorgverlenerrolid]
GET [base]/PractitionerRole?practitioner:Practitioner.identifier=[lvrid]
Verwijsdetails peri23-dataelement-82012 bc-ReferralRequest ReferralRequest
GET [base]/ReferralRequest?subject=[vrouwid]
GET [base]/ReferralRequest?context=[dossierid]
Zwangerschapsdossier bc-MaternalRecord (nl-core-episodeofcare) EpisodeOfCare
GET [base]/EpisodeOfCare/[dossierid]
GET [base]/Observation,Condition,Procedure?context=[dossierid]
GET [base]/Observation,Condition,Procedure?context:EpisodeOfCare.condition:Condition.clinical-status=active
Zwangerschap peri23-dataelement-3 zib-Pregnancy Condition
GET [base]/Condition/[zwangerschapid]
GET [base]/Condition?clinicalstatus=active
GET [base]/Condition?clinicalstatus=inactive&_sort=_-id&_count=1
GET [base]/Condition?subject=[patientid]&_revinclude=Observation:focus
Bloedgroep vrouw peri23-dataelement-10810 zib-LaboratoryTestResult-Observation Observation
GET [base]/Observation?code=883-9{&subject=[vrouwid]&context=[dossierid]}
Rhesus D Factor vrouw peri23-dataelement-10811 zib-LaboratoryTestResult-Observation Observation
GET [base]/Observation?code=1305-2{&subject=[vrouwid]&context=[dossierid]}
Voornemens peri23-dataelement-80671 [bc-CarePlan] [CarePlan]
GET [base]/CarePlan?subject=[vrouwid]{&context=[dossierid]}
Voorgenomen voeding peri23-dataelement-82009 [bc-NutritionOrder] [NutritionOrder]
GET [base]/NutritionOrder?patient=[kindid]
A terme datum peri23-dataelement-20030 zib-Pregnancy-DueDate Observation
GET [base]/Observation?code=11778-8{&subject=[vrouwid]&context=[dossierid]&focus=[zwangerschapid]}
Bevalling peri23-dataelement-6 bc-DeliveryProcedure Procedure
GET [base]/Procedure?code=236973005{&subject=[vrouwid]&context=[dossierid]&reasonReference=[zwangerschapid]}
Placenta peri23-dataelement-80612 bc-Placenta BodySite
GET [base]/BodySite?subject=[vrouwid]
Tijdstip begin actieve ontsluiting peri23-dataelement-20590 bc-DeliveryObservation (nl-core-observation) Observation
GET [base]/Observation?code=249120008{&subject=[vrouwid]&context=[dossierid]&focus=[bevallingid]}
Hoeveelheid bloedverlies peri23-dataelement-20640 bc-DeliveryObservation (nl-core-observation) Observation
GET [base]/Observation?code=64332008{&subject=[vrouwid]&dossier=[dossierid]&focus=[bevallingid]}
Conditie perineum postpartum peri23-dataelement-80673 bc-DeliveryObservation (nl-core-observation) Observation
GET [base]/Observation?code=364297003{&subject=[vrouwid]&dossier=[dossierid]&focus=[bevallingid]}
Geboorte bc-Birth (nl-core-observation) Observation
GET [base]/Observation?code=3950001{&subject=[vrouwid]&dossier=[dossierid]&focus=[geboorteid]&focus=[kindid]}
Tijdstip actief meepersen peri23-dataelement-30030 bc-DeliveryObservation (nl-core-observation) Observation
GET [base]/Observation?code=249163006{&subject=[vrouwid]&dossier=[dossierid]&focus=[geboorteid]}
Type partus peri23-dataelement-80626 bc-DeliveryObservation (nl-core-observation) Observation
GET [base]/Observation?code=364336006{&subject=[vrouwid]&dossier=[dossierid]&focus=[geboorteid]}
Kind bc-Child (of nl-core-patient) Patient
GET [base]/Patient/[kindid]
Apgarscore na 5 min. peri23-dataelement-40071 zib-ApgarScore Observation
GET [base]/Observation?code=9274-2{&subject=[kindid]&dossier=[dossierid]}
Geboortegewicht peri23-dataelement-40060 bc-BirthWeight Observation
GET [base]/Observation?code=29463-7{&subject=[kindid]&dossier=[dossierid]}

Terminology, NamingSystems, Mappings

Terminology

Relevant value sets can be found here. All resources can be downloaded in a .zip in XML or JSON format. In the .zip, the value sets are stored in the directory 'value sets'.