Alle FHIR API’er på Helsenorge støtter et subset av den fulle spesifikasjonen: http://hl7.org/fhir/http.html
Det skal benyttes HTTPS
Det støttes ikke versjonering av FHIR-ressurser
Når FHIR API’ene på Helsenorge kalles, skal/kan følgende HTTP header parametere benyttes:
Content-Type: Påkrevet ved POST, PUT eller PATCH. Skal ha en av verdiene: application/fhir+xml
, application/fhir+json
, application/json
, application/xml
eller application/x-www-form-urlencoded
Authorization: Påkrevd. Skal ha verdien Bearer <aksesstoken>
. (Se 01 - Sikkerhetsmodell og Helsenorge sikkerhetstjeneste )
Accept: Frivillig. Dersom satt skal ha en av verdiene: application/fhir+xml
, application/fhir+json
, application/json
eller application/xml
. (Dersom ikke satt vil responsen sin Content-Type
være satt til application/fhir+json
)
Klienter kan benytte “Create” for å kreere en ny ressurs på Helsenorge. Det er Helsenorge som bestemmer ressurs-ID’en.
Request/response:
Method + Url: POST [base]/[type]
Content-Type: En av verdiene fra generell del over
Body: En FHIR ressurs av type [type]
(Dersom ressursen har en ressurs-ID fra før, vil denne endres og bestemmes av Helsenorge)
Respons:
OK: 201 Created
. Ved suksessfull opprettelse av ressursen og påfølgende respons er Location
headeren satt inneholdende logisk id, i tillegg returneres den opprettede ressursen i sin helhet.
Feil: 400 Bad Request
+ FHIR OperationOutcome
Klienter kan benytte “Transaction” for å sende en FHIR Bundle til Helsenorge, og ressursene i Bundelen blir opprettet. Det er forutsatt at bundelen kun inneholder FHIR ressurser som støttes i det aktuelle grensesnitt.
Request/response:
Method + Url: POST [base]
Content-Type: En av verdiene fra generell del over
Body:
En FHIR ressurs av type Bundle
(Dersom Bundle har en ressurs-ID fra før, vil denne endres)
Hver ressurs i Bundle SKAL etterfølges av hvilken operasjon som skal utføres. Det støttes kun HTTP POST operasjon for ressursene i bundelen, dvs. at alle ressursene i Bundelen får en ID tilordnet av Helsenorge når de opprettes.
Respons:
200 OK
+ Bundle med Bundle.type = "transaction-response"
Feil:
400 Bad Request
+ Bundle med et sett FHIR OperationOutcome
Request/response:
Method + Url: GET [base]/[type]/[id]
Accept: En av verdiene fra generell del over
Body: N/A
Respons:
200 OK
+ FHIR-resource of [type]
with resource-ID [id]
Feil:
404 Not Found
Vi ønsker ikke at potensiell sensitiv informasjon (eks. innbyggers fødselsnummer) skal finnes i URL’er, derfor støttes kun POST basert search.
Request/response:
Method + Url: POST [base]/[type]/_search
Content-type: application/x-www-form-urlencoded
Body: [query-parameters]
Respons:
200 OK
+ Bundle med Bundle.type = "searchset”
med en samling av FHIR ressurser av type [type]
og som tilfredsstiller søkeparameterne. Dersom søket ikke ga noe resultat inneholder Bundelen ingen ressurser.
Feil:
401 Not Authorized
400 Bad request
- Hvis man ikke støtter ressurstypen
Denne kan alltid benyttes for å oppdatere en ressurs som allerede er lagret på Helsenorge.
Request/response:
Method + Url: PATCH [base]/[type]/[id]
Content-Type: En av verdiene fra generell del over
Body: FHIRPath Patch
Respons:
200 OK
Feil:
400 Bad request
For noen ressurser kan klienten benytte “Update” for å endre en allerede eksisterende ressurs.
Merk! For de fleste FHIR ressurser har vi på Helsenorge valgt å ikke støtte Update ved hjelp av PUT. Dette fordi mange av ressursene inngår i en workflow på Helsenorge, og der Helsenorge er avhengig av å selv ha “kontroll” på diverse elementer i ressursen. For disse ressursene skal PATCH benyttes dersom ekstern aktør ønsker å modifisere noen elementer i ressursen.
Request/response:
Method + Url: PUT [base]/[type]/[id]
Content-Type: En av verdiene fra generell del over
Body: En FHIR ressurs av type [type]
- Ressursens-ID skal være satt og den samme som er angitt i URL. ID’en skal være den som Helsenorge returnerte når ressursen ble opprettet med POST.
Respons:
200 OK
Feil:
400 Bad Request
+ FHIR OperationOutcome
I noen av løsningene på Helsenorge tillates at ekstern aktør kan slette en FHIR ressurs på Helsenorge. Dersom dette er tillatt, vil det fremgå av beskrivelsen for den aktuelle tjeneste.
Request/response:
Method + Url: DELETE [base]/[type]/[id]
Body: N/A
Respons:
204 No Content
Feil:
405 Method not Allowed