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 in 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 pasienets 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”

 

 

 

 

 

 

 

 

 

 

 

  • Man kan her angi et system som beskriver hvilket kodesystem som er benyttet for verdien til identifier, eller man kan angi verdien direkte der kodesystemet er kjent, eller der man f.eks. velger å benytte en GUID for å gjøre identifier unik innefor et 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 “ekstra” identifiere.)