Extensions
Avansert konfigurasjon ved hjelp av extensions og FHIR-standarden, som vises eksplisitt
Extensions brukes for å legge til eller spesifisere informasjon i FHIR-ressurser som ikke er dekket av basis spesifikasjon i FHIR-standarden.
Eksempel: Hvis en standard FHIR-ressurs (som Patient eller Observation) ikke har et felt for spesifikk informasjon som NHN trenger (f eks adresse, fødselssted, eller personnummer), så kan man bruke en extension for å legge det til.
Teknisk definisjon: FHIR Extension Element
Dette er definisjonen av datastrukturen som brukes for å utvide FHIR-ressurser (som Questionnaire). En extension er i praksis et nøkkel-verdi-par med klart definerte datatyper.
Mer om FHIR-standarden her.
Datastruktur
Extension-elementet består av tre mulige felter, hvorav url er obligatorisk.
url(1..1, uri)Identifiserer betydningen av utvidelsen
Dette skal være en Canonical URL som peker til en
StructureDefinitionI kode fungerer dette som nøkkelen for å slå opp verdien
value[x](0..1, Open Type)Selve dataverdien
Feltet er polymorfisk. I JSON vil nøkkelen alltid ha datatypen som suffix (f.eks.
valueBoolean,valueString,valueCode,valueExpression)Hvilken datatype som er tillatt, defineres av extension-definisjonen (
url)
extension(0..*, Extension)Extensions kan nøstes. En extension kan inneholde en liste med sub-extensions istedenfor en enkel verdi
Valideringsregler (Invariants)
Det finnes én kritisk regel for gyldig extension-data (Regel ext-1):
"Must have either extensions or value[x], not both"
Dette betyr:
Hvis du har en
value[x], skal listen over nøstedeextensionvære tomHvis du har nøstede
extension, skalvalue[x]være tomEn extension kan ikke være tom (må ha enten verdi eller underelementer)
JSON-representasjon
Slik ser elementet ut i praksis (pseudokode):
{
"extension": [
{
"url": "[http://example.org/my-extension](http://example.org/my-extension)",
"valueString": "Dette er en enkel verdi"
},
{
"url": "[http://example.org/my-complex-extension](http://example.org/my-complex-extension)",
// Ingen value[x] her, fordi den har nøstede extensions (Complex Type)
"extension": [
{
"url": "part1",
"valueBoolean": true
},
{
"url": "part2",
"valueDate": "2024-01-01"
}
]
}
]
}
Eksempel på bruk av extensions for videresending er beskrevet her: https://helsenorge.atlassian.net/wiki/x/IoCZuQ