FHIR ressursens "id" vs "identifier"
Innledning
Det er vikrig å forstå forskjellen på en ressurs “id” og ressursens “identifier”. Dette for å forstå de forskjellige CRUD operasjonene i et FHIR API og hvordan en bestemt ressurs kan aksesserres i et FHIR API.
FHIR ressursens “id”
Alle FHIR ressurser har en id.
Dette er en logisk id som identifiserer ressursen og tildeles av den server som lagrer den.
Den er i utgangspunktet kun unik innefor den aktuelle ressurstype, innefor den (FHIR) server som har lagret den.
Når en ressurs kopieres fra en lokasjon (FHIR-server) til en annen, er det ingen garanti for at den beholder sin ID. (Vi kommer tilbake til dette der de forskjellige REST-operasjonene som støttes på Helsenorge beskrives.)
Når ressursen først er lagret, vil dens id aldri endres.
Lokasjonen for en ressurs er en absolutt URI som er konstruert av serveren der den er lagret sin base adresse, ressurstrype og ressursens id
https://[base]/Patient/123. Her er 123 den aktuelle pasienes id på FHIR-serveren.
Og, ressursen kan hentes ut med
GET [base]/Patient/123
En logisk id er case sensitiv, kan være opptil 64 tegn og kan bestå av:
Store og små ASCII bokstaver
Nummer tegn
Og tegnene “-” og “.”.
FHIR resursens “identifier”
De aller fleste ressurser har en eller flere “identifier”. Dette er “business identifier”
En ressurs sin “identifier” har følgende egenskaper:
Selv om ressursen har forskjellig id på forskjellige FHIR-servere som har kopi av den aktuelle ressurs har ressursen altid samme identifier
Dersom man ikke kjenner en ressurs id på en FHIR-server, kan man alltid hente ut ressursen fra en hvilken som helst FHIR-server (som har resursen lagret) med å søke etter en ressurs med en angitt identifier
Eks.
GET [base]/Patient?identifier=11075534567
identifier er av FHIR-ressurstypen “Identifier”
Det er en god regel at man angir et system som beskriver hvilket kodesystem som er benyttet for verdien til identifier. Dette kan være et globalt kodesystem, eller et lokalt kodeystem. På Helsenorge benyttes alltid en GUID som identifierens verdi for å gjøre identifier unik innefor vårt samhandlingsdomene.
Alle FHIR ressurser som benyttes på Helsenorge skal ha en identifier som er en GUID og som settes av den som først oppretter ressursen.
<identifier>
<!-- GUID satt av den som opprettet ressursen først. Benyttes for å referer ressursen unikt i forretningsprosessen.
Merk! Dette er ikke ressursidentifieren i FHIR-serveren. -->
<system value="urn:ietf:rfc:3986"/>
<value value="urn:uuid:aa54d29e-4009-49cb-9ec4-847a6469459d"/>
</identifier>
(FHIR ressursen kan ha flere “identifier”. Dette vil da være i andre kodesystemer, som også kan være lokale for den enkelte aktør/system der ressursen er lagret. Normalt forholder ikke Helsenorge seg til eventuelle ekstra identifiere.)