RIVO-Noord Zorgviewer Implementation Guide
1.25.0 - CI build Netherlands flag

RIVO-Noord Zorgviewer Implementation Guide - Local Development build (v1.25.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: Middelengebruik ( Abstract )

Official URL: http://fhir.hl7.nl/zorgviewer/StructureDefinition/Middelengebruik Version: 1.25.0
Active as of 2026-06-25 Computable Name: Middelengebruik

Middelengebruik samenstelling voor het documenteren van de combinatie van Tabakgebruik, Alcoholgebruik en Drugsgebruik

Dit Profiel is het resultaat van de vergelijking tussen de zib2017 FHIR Profiel en de implementaties in Epic, Chipsoft, Topicus en Nexus. De elementen die in ieder geval in alle output beschikbaar zullen zijn. Voornamelijk bedoeld voor houvast van een client en voor validatie van output.

Zorginformatiebouwstenen

De volgende zibs vallen min of meer onder het thema middelengebruik.

View Definition

ViewDefinition voor middelengebruik

UI Wireframe

Middelengebruik

>< Bron Datum Gebruiksperiode Soort gebruik Status Middel Hoeveelheid
+ Sanday 21-8-2025 vanaf 2025-08-21T13:13:29+00:00 hoe vaak drinken van alcohol (FiveShot1) 4 of meer keer per week (score 2)
+ Sanday 7-8-2025 vanaf 2025-08-07T12:18:14+00:00 roken nooit
+ Epic 26-5-2022 Alcohol Use History Current drinker of alcohol (finding) 0.57 alcoholic_units/day
+ Epic 26-10-2021 Smoking History Smokes tobacco daily
+ Epic 26-10-2021 Drug Use History Misuses drugs (finding) METHAMFETAMINE

Kolomdefinities

Kolom label FHIR Path Expression FHIR Type Zib element Toelichting of regels
Bron meta.extension('http://hl7.org/fhir/4.0/StructureDefinition/extension-Meta.source').valueUri string nvt Lookup adhv uri (AGB-Z of OID) <adressering-base>/Organization?identifier=<meta.tag.code> en gebruik dan Organization.name
Datum issued dateTime WaarnemingGebruik Datum van de vaststelling van het gebruik.
Gebruiksperiode iif(effectivePeriod.start.exists() and effectivePeriod.end.exists(), effectivePeriod.start.toString()+' tot '+effectivePeriod.end.toString(), iif(effectivePeriod.start.exists(), 'vanaf '+effectivePeriod.start.toString(), iif(effectivePeriod.end.exists(), 'tot '+effectivePeriod.end.toString(), 'vanaf '+effectiveDateTime.toString()))) string WaarnemingGebruik EffectivePeriod is voorgeschreven in de ZIB, maar in veel gevallen zal de data geen periode bevatten. In die gevallen is de datum van vaststelling bepalend voor interpretatie.
Soort gebruik code.text | code.coding[0].display string NVT Code van de ZIB voor middelengebruik
Status valueCodeableConcept.coding[0].display string Status Indicatie of in het heden of verleden sprake is (geweest) van middelengebruik.
Middel iif(component.where(code.coding.where(code='410675002').exists()).valueCodeableConcept.exists(), component.where(code.coding.where(code='410942007').exists() or code.coding.where(code='53661000146106').exists()).valueCodeableConcept.coding[0].display + ' ' + component.where(code.coding.where(code='410675002').exists()).valueCodeableConcept.coding[0].display, component.where(code.coding.where(code='410942007').exists() or code.coding.where(code='53661000146106').exists()).valueCodeableConcept.coding[0].display) string Middel Soort middel en toedieningsvorm
Hoeveelheid iif(component.where(code.coding.where(code='401201003').exists()).exists(), component.where(code.coding.where(code='266918002').exists() or code.coding.where(code='228390007').exists() or code.coding.where(code='160573003').exists()).valueQuantity.value.toString()+' '+component.where(code.coding.where(code='266918002').exists() or code.coding.where(code='228390007').exists() or code.coding.where(code='160573003').exists()).valueQuantity.unit+' ('+component.where(code.coding.where(code='401201003').exists()).valueQuantity.value.toString()+' '+component.where(code.coding.where(code='401201003').exists()).valueQuantity.unit+')', component.where(code.coding.where(code='266918002').exists() or code.coding.where(code='228390007').exists() or code.coding.where(code='160573003').exists()).valueQuantity.value.toString()+' '+component.where(code.coding.where(code='266918002').exists() or code.coding.where(code='228390007').exists() or code.coding.where(code='160573003').exists()).valueQuantity.unit) string Hoeveelheid Het aantal eenheden (glazen, sigaretten, pillen, shots etc.) per dag, week, maand of jaar of de freqentie van gebruik.
UITKLAPVELD
+Toelichting comment | note.text string Toelichting

Request

N.B. Epic gebruikt de categorie 'social-history' en Sanday gebruikt 'vital-signs' voor het middelengebruik.

  1. Opvragen (search) middelengebruik

    GET <ontsluiten-bronsysteem-base>/Observation?patient=<fhir_patient_id>&category=vital-signs,social-history

  2. Opvragen (search) alcoholgebruik (Epic)

    GET <ontsluiten-bronsysteem-base>/Observation?patient=<fhir_patient_id>&code=http://snomed.info/sct|228273003

  3. Opvragen (search) alcoholgebruik (Sanday). Sanday includeert ook de FiveShot vragenlijst antwoorden.

    GET <ontsluiten-bronsysteem-base>/Observation?patient=<fhir_patient_id>&code=https://referentiemodel.nhg.org/tabellen/nhg-tabel-45-diagnostische-bepalingen|1591,https://referentiemodel.nhg.org/tabellen/nhg-tabel-45-diagnostische-bepalingen|2418,https://referentiemodel.nhg.org/tabellen/nhg-tabel-45-diagnostische-bepalingen|2419,https://referentiemodel.nhg.org/tabellen/nhg-tabel-45-diagnostische-bepalingen|2420,https://referentiemodel.nhg.org/tabellen/nhg-tabel-45-diagnostische-bepalingen|2421,https://referentiemodel.nhg.org/tabellen/nhg-tabel-45-diagnostische-bepalingen|2422

  4. Opvragen (search) drugsgebruik (Epic)

    GET <ontsluiten-bronsysteem-base>/Observation?patient=<fhir_patient_id>&code=http://snomed.info/sct|228366006

  5. Opvragen (search) drugsgebruik (Sanday)

    GET <ontsluiten-bronsysteem-base>/Observation?patient=<fhir_patient_id>&code=https://referentiemodel.nhg.org/tabellen/nhg-tabel-45-diagnostische-bepalingen|3022

  6. Opvragen (search) tabakgebruik (Epic)

    GET <ontsluiten-bronsysteem-base>/Observation?patient=<fhir_patient_id>&code=http://snomed.info/sct|365980008

  7. Opvragen (search) tabakgebruik (Sanday)

    GET <ontsluiten-bronsysteem-base>/Observation?patient=<fhir_patient_id>&code=https://referentiemodel.nhg.org/tabellen/nhg-tabel-45-diagnostische-bepalingen|1739

Bronsysteem herkennen

De Zorgviewer-backend of Ontsluiten bronsysteem MOET na bevragen van het bronsysteem aan elk resultaat resource een meta-tag toevoegen met de AGB, OID of URA identifier van de zorgaanbieder (zie Organization voor voorbeelden). Dit wordt vervolgens gebruikt in de "Bron" kolom in de Zorgviewer-frontend. N.B. We gebruiken hier een pre-adopt van de FHIR R4 Meta.source.

Toevoegen aan elke response, dus per resource (bij een read) of per Bundle (bij een search):

"meta": {
    "extension": [ {
        "url": "http://hl7.org/fhir/4.0/StructureDefinition/extension-Meta.source",
        "valueUri": "urn:oid:2.16.840.1.113883.2.4.3.8"
    } ]
}

Alternatief: Elke entry van een search response Bundle bevat een referentie naar de bijbehorende Patient (<resource>.subject|patient). Elke patient heeft een Patient.managingOrganization en in de gerefereerde Organization.identifier staat vervolgens o.a. de OID van het bronsysyeem. Of je gebruikt de identifiers om een volledige Organization op te zoeken in het adresboek en zie inhoud hier.

Usages:

  • This Profile is not used by any profiles in this Specification

You can also check for usages in the FHIR IG Statistics

Changes since version 1.24.0:

  • New Content
  • Formal Views of Profile Content

    Description of Profiles, Differentials, Snapshots and how the different presentations work.

    NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
    .. Bundle C 0..* Bundle This is an abstract profile.
    Contains a collection of resources
    Constraints: bdl-7, bdl-9, bdl-3, bdl-4, bdl-1, bdl-2
    ... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
    ... type Σ 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
    Binding: BundleType (required): Indicates the purpose of a bundle - how it was intended to be used.

    doco Documentation for this format

    Terminology Bindings

    Path Status Usage ValueSet Version Source
    Bundle.type Base required BundleType 📍3.0.2 FHIR Std.

    Constraints

    Id Grade Path(s) Description Expression
    bdl-1 error Bundle total only when a search or history total.empty() or (type = 'searchset') or (type = 'history')
    bdl-2 error Bundle entry.search only when a search entry.search.empty() or (type = 'searchset')
    bdl-3 error Bundle entry.request only for some types of bundles entry.request.empty() or type = 'batch' or type = 'transaction' or type = 'history'
    bdl-4 error Bundle entry.response only for some types of bundles entry.response.empty() or type = 'batch-response' or type = 'transaction-response'
    bdl-7 error Bundle FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId entry.where(fullUrl).select(fullUrl&resource.meta.versionId).isDistinct()
    bdl-9 error Bundle A document must have an identifier with a system and a value type = 'document' implies (identifier.system.exists() and identifier.value.exists())

    This structure is derived from Bundle

    NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
    .. Bundle 0..* Bundle This is an abstract profile.
    Contains a collection of resources

    doco Documentation for this format
    NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
    .. Bundle C 0..* Bundle This is an abstract profile.
    Contains a collection of resources
    Constraints: bdl-7, bdl-9, bdl-3, bdl-4, bdl-1, bdl-2
    ... id Σ 0..1 id Logical id of this artifact
    ... meta Σ 0..1 Meta Metadata about the resource
    ... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
    ... identifier Σ 0..1 Identifier Persistent identifier for the bundle
    ... type Σ 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
    Binding: BundleType (required): Indicates the purpose of a bundle - how it was intended to be used.
    ... total ΣC 0..1 unsignedInt If search, the total number of matches
    ... link Σ 0..* BackboneElement Links related to this Bundle
    .... id 0..1 string xml:id (or equivalent in JSON)
    .... extension 0..* Extension Additional Content defined by implementations
    .... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
    .... relation Σ 1..1 string See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1
    .... url Σ 1..1 uri Reference details for the link
    ... entry ΣC 0..* BackboneElement Entry in the bundle - will have a resource, or information
    Constraints: bdl-8, bdl-5
    .... id 0..1 string xml:id (or equivalent in JSON)
    .... extension 0..* Extension Additional Content defined by implementations
    .... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
    .... link Σ 0..* See link (Bundle) Links related to this entry
    .... fullUrl Σ 0..1 uri Absolute URL for resource (server address, or UUID/OID)
    .... resource Σ 0..1 Resource A resource in the bundle
    .... search ΣC 0..1 BackboneElement Search related information
    ..... id 0..1 string xml:id (or equivalent in JSON)
    ..... extension 0..* Extension Additional Content defined by implementations
    ..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
    ..... mode Σ 0..1 code match | include | outcome - why this is in the result set
    Binding: SearchEntryMode (required): Why an entry is in the result set - whether it's included as a match or because of an _include requirement.
    ..... score Σ 0..1 decimal Search ranking (between 0 and 1)
    .... request ΣC 0..1 BackboneElement Transaction Related Information
    ..... id 0..1 string xml:id (or equivalent in JSON)
    ..... extension 0..* Extension Additional Content defined by implementations
    ..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
    ..... method Σ 1..1 code GET | POST | PUT | DELETE
    Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line).
    ..... url Σ 1..1 uri URL for HTTP equivalent of this entry
    ..... ifNoneMatch Σ 0..1 string For managing cache currency
    ..... ifModifiedSince Σ 0..1 instant For managing update contention
    ..... ifMatch Σ 0..1 string For managing update contention
    ..... ifNoneExist Σ 0..1 string For conditional creates
    .... response ΣC 0..1 BackboneElement Transaction Related Information
    ..... id 0..1 string xml:id (or equivalent in JSON)
    ..... extension 0..* Extension Additional Content defined by implementations
    ..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
    ..... status Σ 1..1 string Status response code (text optional)
    ..... location Σ 0..1 uri The location, if the operation returns a location
    ..... etag Σ 0..1 string The etag for the resource (if relevant)
    ..... lastModified Σ 0..1 instant Server's date time modified
    ..... outcome Σ 0..1 Resource OperationOutcome with hints and warnings (for batch/transaction)
    ... signature Σ 0..1 Signature Digital Signature

    doco Documentation for this format

    Terminology Bindings

    Path Status Usage ValueSet Version Source
    Bundle.language Base extensible Common Languages 📍3.0.2 FHIR Std.
    Bundle.type Base required BundleType 📍3.0.2 FHIR Std.
    Bundle.entry.search.​mode Base required SearchEntryMode 📍3.0.2 FHIR Std.
    Bundle.entry.request.​method Base required HTTPVerb 📍3.0.2 FHIR Std.

    Constraints

    Id Grade Path(s) Description Expression
    bdl-1 error Bundle total only when a search or history total.empty() or (type = 'searchset') or (type = 'history')
    bdl-2 error Bundle entry.search only when a search entry.search.empty() or (type = 'searchset')
    bdl-3 error Bundle entry.request only for some types of bundles entry.request.empty() or type = 'batch' or type = 'transaction' or type = 'history'
    bdl-4 error Bundle entry.response only for some types of bundles entry.response.empty() or type = 'batch-response' or type = 'transaction-response'
    bdl-5 error Bundle.entry must be a resource unless there's a request or response resource.exists() or request.exists() or response.exists()
    bdl-7 error Bundle FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId entry.where(fullUrl).select(fullUrl&resource.meta.versionId).isDistinct()
    bdl-8 error Bundle.entry fullUrl cannot be a version specific reference fullUrl.contains('/_history/').not()
    bdl-9 error Bundle A document must have an identifier with a system and a value type = 'document' implies (identifier.system.exists() and identifier.value.exists())
    ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() | (children().count() > id.count())

    This structure is derived from Bundle

    Summary

    Key Elements View

    NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
    .. Bundle C 0..* Bundle This is an abstract profile.
    Contains a collection of resources
    Constraints: bdl-7, bdl-9, bdl-3, bdl-4, bdl-1, bdl-2
    ... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
    ... type Σ 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
    Binding: BundleType (required): Indicates the purpose of a bundle - how it was intended to be used.

    doco Documentation for this format

    Terminology Bindings

    Path Status Usage ValueSet Version Source
    Bundle.type Base required BundleType 📍3.0.2 FHIR Std.

    Constraints

    Id Grade Path(s) Description Expression
    bdl-1 error Bundle total only when a search or history total.empty() or (type = 'searchset') or (type = 'history')
    bdl-2 error Bundle entry.search only when a search entry.search.empty() or (type = 'searchset')
    bdl-3 error Bundle entry.request only for some types of bundles entry.request.empty() or type = 'batch' or type = 'transaction' or type = 'history'
    bdl-4 error Bundle entry.response only for some types of bundles entry.response.empty() or type = 'batch-response' or type = 'transaction-response'
    bdl-7 error Bundle FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId entry.where(fullUrl).select(fullUrl&resource.meta.versionId).isDistinct()
    bdl-9 error Bundle A document must have an identifier with a system and a value type = 'document' implies (identifier.system.exists() and identifier.value.exists())

    Differential View

    This structure is derived from Bundle

    NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
    .. Bundle 0..* Bundle This is an abstract profile.
    Contains a collection of resources

    doco Documentation for this format

    Snapshot View

    NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
    .. Bundle C 0..* Bundle This is an abstract profile.
    Contains a collection of resources
    Constraints: bdl-7, bdl-9, bdl-3, bdl-4, bdl-1, bdl-2
    ... id Σ 0..1 id Logical id of this artifact
    ... meta Σ 0..1 Meta Metadata about the resource
    ... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
    ... identifier Σ 0..1 Identifier Persistent identifier for the bundle
    ... type Σ 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
    Binding: BundleType (required): Indicates the purpose of a bundle - how it was intended to be used.
    ... total ΣC 0..1 unsignedInt If search, the total number of matches
    ... link Σ 0..* BackboneElement Links related to this Bundle
    .... id 0..1 string xml:id (or equivalent in JSON)
    .... extension 0..* Extension Additional Content defined by implementations
    .... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
    .... relation Σ 1..1 string See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1
    .... url Σ 1..1 uri Reference details for the link
    ... entry ΣC 0..* BackboneElement Entry in the bundle - will have a resource, or information
    Constraints: bdl-8, bdl-5
    .... id 0..1 string xml:id (or equivalent in JSON)
    .... extension 0..* Extension Additional Content defined by implementations
    .... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
    .... link Σ 0..* See link (Bundle) Links related to this entry
    .... fullUrl Σ 0..1 uri Absolute URL for resource (server address, or UUID/OID)
    .... resource Σ 0..1 Resource A resource in the bundle
    .... search ΣC 0..1 BackboneElement Search related information
    ..... id 0..1 string xml:id (or equivalent in JSON)
    ..... extension 0..* Extension Additional Content defined by implementations
    ..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
    ..... mode Σ 0..1 code match | include | outcome - why this is in the result set
    Binding: SearchEntryMode (required): Why an entry is in the result set - whether it's included as a match or because of an _include requirement.
    ..... score Σ 0..1 decimal Search ranking (between 0 and 1)
    .... request ΣC 0..1 BackboneElement Transaction Related Information
    ..... id 0..1 string xml:id (or equivalent in JSON)
    ..... extension 0..* Extension Additional Content defined by implementations
    ..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
    ..... method Σ 1..1 code GET | POST | PUT | DELETE
    Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line).
    ..... url Σ 1..1 uri URL for HTTP equivalent of this entry
    ..... ifNoneMatch Σ 0..1 string For managing cache currency
    ..... ifModifiedSince Σ 0..1 instant For managing update contention
    ..... ifMatch Σ 0..1 string For managing update contention
    ..... ifNoneExist Σ 0..1 string For conditional creates
    .... response ΣC 0..1 BackboneElement Transaction Related Information
    ..... id 0..1 string xml:id (or equivalent in JSON)
    ..... extension 0..* Extension Additional Content defined by implementations
    ..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
    ..... status Σ 1..1 string Status response code (text optional)
    ..... location Σ 0..1 uri The location, if the operation returns a location
    ..... etag Σ 0..1 string The etag for the resource (if relevant)
    ..... lastModified Σ 0..1 instant Server's date time modified
    ..... outcome Σ 0..1 Resource OperationOutcome with hints and warnings (for batch/transaction)
    ... signature Σ 0..1 Signature Digital Signature

    doco Documentation for this format

    Terminology Bindings

    Path Status Usage ValueSet Version Source
    Bundle.language Base extensible Common Languages 📍3.0.2 FHIR Std.
    Bundle.type Base required BundleType 📍3.0.2 FHIR Std.
    Bundle.entry.search.​mode Base required SearchEntryMode 📍3.0.2 FHIR Std.
    Bundle.entry.request.​method Base required HTTPVerb 📍3.0.2 FHIR Std.

    Constraints

    Id Grade Path(s) Description Expression
    bdl-1 error Bundle total only when a search or history total.empty() or (type = 'searchset') or (type = 'history')
    bdl-2 error Bundle entry.search only when a search entry.search.empty() or (type = 'searchset')
    bdl-3 error Bundle entry.request only for some types of bundles entry.request.empty() or type = 'batch' or type = 'transaction' or type = 'history'
    bdl-4 error Bundle entry.response only for some types of bundles entry.response.empty() or type = 'batch-response' or type = 'transaction-response'
    bdl-5 error Bundle.entry must be a resource unless there's a request or response resource.exists() or request.exists() or response.exists()
    bdl-7 error Bundle FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId entry.where(fullUrl).select(fullUrl&resource.meta.versionId).isDistinct()
    bdl-8 error Bundle.entry fullUrl cannot be a version specific reference fullUrl.contains('/_history/').not()
    bdl-9 error Bundle A document must have an identifier with a system and a value type = 'document' implies (identifier.system.exists() and identifier.value.exists())
    ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() | (children().count() > id.count())

    This structure is derived from Bundle

    Summary

     

    Other representations of profile: CSV, Excel, Schematron