Vdraft Handleiding Kardinaliteiten en conformance: verschil tussen versies
(→Kardinaliteit) |
k (→Conformance: definities traceerbaar) |
||
| Regel 53: | Regel 53: | ||
| Element moet aanwezig zijn in bericht.<br /><br /> | | Element moet aanwezig zijn in bericht.<br /><br /> | ||
Moet ingevoerde waarde bevatten; zonder waarde is bericht ongeldig. | Moet ingevoerde waarde bevatten; zonder waarde is bericht ongeldig. | ||
| − | | Element moet verwerkt worden. | + | | Element moet verwerkt<sup>1</sup> worden. |
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| R | | R | ||
| '''Required''' /<br />verplicht | | '''Required''' /<br />verplicht | ||
| − | | Systeem moet in staat zijn element en waarde te ondersteunen.<br /><br /> | + | | Systeem moet in staat zijn element en waarde te ondersteunen<sup>2</sup>.<br /><br /> |
Bericht: Indien waarde aanwezig in systeem, moet bericht het element en waarde bevatten. Indien toegestaan in de definitie van het element, kan hierbij een NullFlavor in het bericht staan. | Bericht: Indien waarde aanwezig in systeem, moet bericht het element en waarde bevatten. Indien toegestaan in de definitie van het element, kan hierbij een NullFlavor in het bericht staan. | ||
| − | | Als element aanwezig, moet deze verwerkt worden. | + | | Als element aanwezig, moet deze verwerkt<sup>1</sup> worden. |
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| O | | O | ||
| '''Optional''' /<br />optioneel | | '''Optional''' /<br />optioneel | ||
| − | | Systeem mag element en waarde ondersteunen.<br /><br /> | + | | Systeem mag element en waarde ondersteunen<sup>2</sup>.<br /><br /> |
Element mag aanwezig zijn in het bericht. | Element mag aanwezig zijn in het bericht. | ||
| − | | Het element mag verwerkt worden. | + | | Het element mag verwerkt<sup>1</sup> worden. |
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| Regel 84: | Regel 84: | ||
|} | |} | ||
| − | '''Verwerken:''' Betreft het zonder problemen overweg kunnen gaan van het systeem met de aanwezigheid van een element. De exacte vorm van verwerken is niet eenduidig gedefinieerd, maar denk bijvoorbeeld aan tonen, opslaan, hergebruiken, etc. Het kan voorkomen dat informatiestandaarden aanvullende eisen over verwerken bevatten. | + | '''<sup>1</sup>Verwerken:''' Betreft het zonder problemen overweg kunnen gaan van het systeem met de aanwezigheid van een element. De exacte vorm van verwerken is niet eenduidig gedefinieerd, maar denk bijvoorbeeld aan tonen, opslaan, hergebruiken, etc. Het kan voorkomen dat informatiestandaarden aanvullende eisen over verwerken bevatten. |
| − | '''Ondersteunen:''' Betreft het in staat zijn van het systeem om een element te voorzien van een waarde in een bericht. | + | '''<sup>2</sup>Ondersteunen:''' Betreft het in staat zijn van het systeem om een element te voorzien van een waarde in een bericht. |
In FHIR wordt geen gebruik gemaakt van conformance. De rol van conformance wordt in FHIR afgedekt met obligations, mustSupport flags en constraints. Deze zijn buiten scope van deze handleiding. | In FHIR wordt geen gebruik gemaakt van conformance. De rol van conformance wordt in FHIR afgedekt met obligations, mustSupport flags en constraints. Deze zijn buiten scope van deze handleiding. | ||
Versie van 2 okt 2026 om 17:02
Inhoud
Introductie
Bij informatiestandaarden spelen de begrippen kardinaliteit, conformance en NullFlavor een belangrijke rol voor de eisen die gesteld worden in een functioneel ontwerp (in art-decor) en technisch ontwerp (zoals FHIR implementation guide of CDA-templates). Afhankelijk van de context en de mogelijke combinaties gelden andere eisen en afspraken voor de gegevensuitwisseling en systeemrollen. In deze handleiding kun je lezen hoe kardinaliteit, conformance en nullFlavor moeten worden geïnterpreteerd voor de informatiestandaarden van Nictiz. Dit vanuit een generiek en praktisch perspectief. Het kan voorkomen dat informatiestandaarden aanvullende eisen stellen aan de gegevensuitwisseling.
Scope en reikwijdte handleiding:
- Deze handleiding is alleen van toepassing op versies van informatiestandaarden die gemaakt zijn zonder de zibs 2.0 methodiek en niet opgebouwd zijn met generieke bouwblokken (GBB). Hoe conformance, kardinaliteiten en meer zal gaan werken voor informatiestandaarden die opgebouwd zijn met de GBB valt buiten scope van deze handleiding.
- Het is belangrijk om onderscheid te maken tussen eisen bij het uitwisselen en registreren van gegevens. Voor beide situaties kunnen andere afspraken gelden omtrent de kardinaliteit en conformance. Deze handleiding is primair gericht op uitwisseling van gegevens van een usecase. Wanneer binnen een informatiestandaard aanvullende afspraken zijn gemaakt over registratie, zoals een registratiescenario, zijn deze terug te vinden bij de usecases in het desbetreffende functionele ontwerp.
Eerst wordt uitgelegd waarom kardinaliteit, conformance en nullFlavor nodig zijn. Vervolgens worden deze begrippen afzonderlijk behandeld.
Daarna wordt aan de hand van praktijkvoorbeelden toegelicht hoe deze begrippen worden toegepast en hoe ze zich tot elkaar verhouden.
Gegevens uitwisselen: wat moet, wat mag en wat als een waarde ontbreekt?
Wanneer applicaties berichten met elkaar uitwisselen, gelden er afspraken over welke gegevens wel en niet in een bericht moeten of mogen staan. Dit wordt door de kardinaliteit en conformance van de elementen bepaald. De kardinaliteit geeft aan hoe vaak een element voor moet of mag komen. De conformance geeft aan of een element moet of mag worden meegestuurd en of er een waarde meegestuurd moet worden.
Aanvullend kan voor een element bepaald zijn of een reden voor ontbrekende gegevens is toegestaan. Dat kan met o.a. een NullFlavor, deze geeft de reden aan waarom er geen waarde wordt doorgegeven. NullFlavor komt voor in de HL7v3. In FHIR komt dit ook voor, maar vaker gebruiken ze hier DataAbsentReason in de plaats. In deze handleiding bespreken we alleen het gebruik van nullFlavor in relatie tot ontbrekende gegevens.
Kardinaliteit
Een algemene definitie van kardinaliteit is: "een maat voor het aantal toegestane instanties van een element in een verzameling". Dit specificeert het minimale en maximale aantal keer dat een element in een bericht mag voorkomen.
| Kardinaliteit | Betekenis |
|---|---|
| 0..* | Het gegevenselement mag 0, 1 of meerdere malen voorkomen |
| 1..* | Het gegevenselement moet minimaal 1 keer en mag meerdere malen voorkomen |
| 0..1 | Het gegevenselement mag 0 of 1 keer voorkomen |
| 1..1 | Het gegevenselement moet precies 1 keer voorkomen |
Conformance
Conformance geeft aan welke verplichtingen er gelden voor de aanwezigheid van een element in een bericht. In de onderstaande tabel worden de verschillende types conformance beschreven.
| Conformance | Opstellen bericht (sturen/beschikbaarstellen) |
Verwerken bericht (ontvangen/raadplegen) | |
|---|---|---|---|
| M | Mandatory / vereist |
Element moet aanwezig zijn in bericht. Moet ingevoerde waarde bevatten; zonder waarde is bericht ongeldig. |
Element moet verwerkt1 worden. |
| R | Required / verplicht |
Systeem moet in staat zijn element en waarde te ondersteunen2. Bericht: Indien waarde aanwezig in systeem, moet bericht het element en waarde bevatten. Indien toegestaan in de definitie van het element, kan hierbij een NullFlavor in het bericht staan. |
Als element aanwezig, moet deze verwerkt1 worden. |
| O | Optional / optioneel |
Systeem mag element en waarde ondersteunen2. Element mag aanwezig zijn in het bericht. |
Het element mag verwerkt1 worden. |
| NP | Not Permitted / niet toegestaan |
Niet toegestaan, het element mag niet in het bericht voorkomen | NVT |
| C | Conditional / voorwaardelijk |
Conformance op het element is afhankelijk van (tekstuele) voorwaarden. De voorwaarden bepalen welke van bovenstaande conformances van toepassing is voor het bericht. | |
1Verwerken: Betreft het zonder problemen overweg kunnen gaan van het systeem met de aanwezigheid van een element. De exacte vorm van verwerken is niet eenduidig gedefinieerd, maar denk bijvoorbeeld aan tonen, opslaan, hergebruiken, etc. Het kan voorkomen dat informatiestandaarden aanvullende eisen over verwerken bevatten.
2Ondersteunen: Betreft het in staat zijn van het systeem om een element te voorzien van een waarde in een bericht.
In FHIR wordt geen gebruik gemaakt van conformance. De rol van conformance wordt in FHIR afgedekt met obligations, mustSupport flags en constraints. Deze zijn buiten scope van deze handleiding.
NullFlavor
NullFlavors worden gebruikt om aan te geven waarom een element zonder waarde verstuurd wordt. Of het gebruik van een NullFlavor is toegestaan is afhankelijk van de conformance en eventueel de coding strength. Een bericht kan per element een apart attribuut bevatten om een NullFlavor-waarde te versturen.
Een NullFlavor kan gebruikt worden om aan te geven
- dat er geen waarde beschikbaar is in het bronsysteem (waarde NoInformation/NI)
- dat er een waarde aanwezig is in het bronsysteem die niet doorgegeven kan of mag worden (bijv. de waarde Masked/MSK of Invalid/INV)
- als er een NullFlavor-waarde is vastgelegd in het bronsysteem (bijv. de waarde Other/OTH).
In dit overzicht zijn alle beschikbare NullFlavor-waarden te vinden. Als uitzondering voor de NullFlavor-waarden Other/OTH en Un-encoded/UNC geldt dat in een aanvullend tekstveld de nadere specificatie van deze waarde meegestuurd kan worden (de waarden Other en Un-encoded impliceren dat er wel een waarde bekend is, maar dat deze waarde niet voorkomt in de gedefinieerde waardelijst van het element).
NullFlavor in relatie tot coding strength
HL7 V3 wordt ‘coding strength’ gebruikt om bij een element met een waardelijst aan te geven of alleen de waarden uit de waardelijst gebruikt mogen worden, of ook andere waarden. Alleen bij coding strength “CNE” (Coded with No Exceptions: alléén waarden uit de betreffende waardelijst zijn toegestaan) is het gebruik van een NullFlavor toegestaan. In latere versies van HL7 is coding strength vervangen door ‘binding strength’. In FHIR zijn de NullFlavors vervangen door DataAbsentReason.
Gebruik in de praktijk
Samenhang tussen kardinaliteit en conformance
De eisen en verwachtingen die van toepassing zijn voor een bericht worden per element beschreven met een combinatie van kardinaliteit en conformance. Onderstaande tabel geeft aan wat de meest voorkomende combinaties zijn, wat de functionele betekenis daarvan is en of een nullFlavor is toegestaan.
| Kardinaliteit + conformance | Functionele betekenis | Voorbeeld |
|---|---|---|
|
0..1 / 0..* Optional |
In het bericht mag het element aanwezig zijn of afwezig zijn. Bij 0..1 mag het maximaal één keer voorkomen. Bij 0..* mag het meerdere keren voorkomen. Verzender en ontvanger zijn niet verplicht element en waarde te ondersteunen. Als het element wordt meegestuurd, mag ontvanger kunnen verwerken. |
Toelichting bij een verrichting: de toelichting mag worden meegestuurd, maar systemen hoeven deze niet te ondersteunen. |
|
0..1 Required 0..* Required |
In het bericht mag het element aanwezig of afwezig zijn. Bij 0..1 mag het maximaal één keer voorkomen en bij 0..* mag het meerdere keren voorkomen. Indien de waarde aanwezig is in het systeem moet het meegestuurd worden in het bericht. Verzender en ontvanger moeten element en waarde kunnen ondersteunen. Als het element wordt meegestuurd, moet ontvanger verwerken. |
E-mailadres patiënt: indien bekend bij systeem moet het e-mailadres meegestuurd worden. |
|
1..1 Required 1..* Required |
In het bericht moet het element aanwezig zijn. Bij 1..1 mag het maximaal één keer voorkomen en bij 1..* mag het meerdere keren voorkomen. Indien geen waarde aanwezig in systeem, moet een nullFlavor meegestuurd worden in het bericht. Verzender en ontvanger moeten element en waarde kunnen ondersteunen. Als het element wordt meegestuurd, moet ontvanger verwerken. or. |
Geboortedatum: De geboortedatum wordt altijd verwacht. Indien onbekend voor het systeem, dan moet een NullFlavor-waarde meegestuurd worden. |
|
1..1 Mandatory 1..* Mandatory |
In het bericht moet het element aanwezig zijn. Bij 1..1 mag het maximaal één keer voorkomen en bij 1..* mag het meerdere keren voorkomen. Indien geen waarde aanwezig in systeem, is het verboden een NullFlavor mee te sturen. Zonder deze waarde mag het bericht niet verzonden worden. Verzender moet element en waarde ondersteunen. Ontvanger moet het element kunnen verwerken. |
BSN: Mandatory alleen voor usecases waarin is gegarandeerd dat iedere betrokken patiënt een BSN heeft en deze essentieel is. Er wordt precies één geldig BSN meegestuurd. Zonder BSN kan het bericht niet verstuurd worden. |
|
0..0 Not permitted |
In het bericht moet het element afwezig zijn. Deze conformance wordt voornamelijk gebruikt bij conditionele conformance. |
Zie onderstaand voorbeeld |
|
0..1 Conditional |
Op dit element gelden (tekstuele) voorwaarden voor welke kardinaliteit en conformance gelden op welk moment. De voorwaarden staan altijd beschreven in de informatiestandaard bij het element. . |
Zie onderstaand voorbeeld |
Conditional conformance
Voorbeeld MedicatieafspraakStopType:
In de informatiestandaard Medicatieproces bevat de medicatieafspraak een conditional conformance voor het element MedicatieafspraakStopType (0..1C).
Voorwaarde: Het stoptype wordt uitsluitend in het bericht ingevuld wanneer een medicatieafspraak wordt gestopt of geannuleerd. In deze gevallen geldt kardinaliteit van 1..1 en conformance R.
|
In het geval een |
➜ |
1..1 R |
Indien een medicatieafspraak niet wordt gestopt of geannuleerd is het niet toegestaan om het stoptype in te vullen. Hier geldt kardinaliteit van 0..0 en conformance NP.
|
In alle andere |
➜ |
0..0 |
Toepassingsvoorbeeld: Gebruik in combinatie met hiërarchieën van elementen (zoals containers of groepen)
Om elementen hiërarchisch te kunnen rangschikken wordt een container (ook wel groep genoemd) gebruikt. Een container kan een of meerdere elementen, containers en/of verwijzingen bevatten.
Containers kunnen voor verschillende doeleinden worden toegepast.
Cluster van elementen definiëren
Een container kan een aantal elementen bevatten die elkaar betekenis verlenen; los van elkaar hebben deze elementen veelal onvoldoende betekenis.
Een typisch voorbeeld is container Adresgegevens. Meerdere elementen moeten ingevuld zijn om een volledig adres vast te leggen; los van elkaar hebben de elementen onvoldoende betekenis. Alleen als deze gegevens in relatie tot elkaar worden weergegeven, kan een adres betekenisvol geïnterpreteerd worden.
Context toevoegen
Alleen als de container Adresgegevens binnen een andere container wordt geplaatst, wordt duidelijk op wie het adres betrekking heeft. Zo verleent de container Patiënt in het onderstaande voorbeeld context aan de container Adresgegevens. Bij het weergeven van de adresgegevens moet deze context ook getoond worden om ze betekenisvol te laten zijn.Toepassen van specifieke kardinaliteiten en/of conformance
Door aan een container een bepaalde kardinaliteit en conformance toe te kennen, hebben deze effect op alle elementen binnen de container.
In het onderstaande voorbeeld zorgt de kardinaliteit van de container Adresgegevens ervoor dat je meerdere adressen voor een patiënt vast kunt leggen.
Voorbeeld element: Patiënt
Een Patiënt heeft maar één set Naamgegevens, maar kan meerdere adressen hebben. Ook kan een Patiënt meerdere telefoonnummers en emailadressen hebben. Door deze structuur van containers met kardinaliteiten, kun je voor een Patiënt een keer de Naamgegevens invullen en meerdere clusters van Adresgegevens, Telefoonnummers en EmailAdressen.
Zou de kardinaliteit van Naamgegevens niet 1..1 maar 0..1 zijn, dan hoeft Naamgegevens niet ingevuld te worden. Als je Naamgegevens wel invult, dan moet tenminste de container Geslachtsnaam een waarde bevatten.NullFlavor
Tijdstip: Voor het sturen van een bericht is het verplicht gesteld dat het voorschrijftijdstip aanwezig is met conformance en kardinaliteit 1..1R. Helaas weet de verzender tijdens het opstellen van het bericht niet meer wanneer de medicatie is voorgeschreven en kan daardoor het voorschrijftijdstip niet invullen. Vanwege 1..1R zal dit element geen waarde bevatten en moet de NullFlavor “unknown” worden meegestuurd in het bericht.
Opleidingsniveau: Het element opleidingsniveau met kardinaliteit en conformance 1..1R bevat een waardelijst. Van een persoon is bekend dat deze de huishoudschool heeft gevolgd, maar deze waarde komt niet voor in deze lijst. In dit geval kan gebruik worden gemaakt van de NullFlavor “OTH”. In combinatie met <originalText> kan de opleiding als vrije tekst ingevuld worden en kan de informatie alsnog met het bericht mee worden gestuurd.
BSN: Een patiënt heeft zorg nodig maar het is niet mogelijk de BSN te achterhalen. Doordat de identificatie mandatory (1..1 M) is en daarom een waarde moet hebben, is het NIET toegestaan om een NullFlavor in te vullen. Er kan daarom geen bericht uitgestuurd worden totdat het BSN bekend is.
Versie geschiedenis/ Release notes