Denne siden er under arbeid
Ekstern aktør endrer status på oppgave
Payload
Ved endring av enkeltattributter slik som ‘status’ på en ‘Task’ benyttes formatet FhirPath Patch.
Eksempel på payload: Oppdatering av enkeltattributter på Task (FhirPatch)
REST API
Ikke implementert
(HTTP PATCH):
PATCH [base]/oppgave/v1/Task/[id]
Meldingsbasert integrasjon (AMQP)
Ikke implementert
...
Hva er en generisk oppgave
For noen typer oppgaver utføres hele, eller deler, av oppgaven i en arbeidsflyt på Helsenorge. Dette gjelder blant annet Skjemaoppgaver og Samtykkeforespørsler.
For oppgaver man vil at innbygger skal utføre, men der oppgave i sin helhet utføres i et annet system (utenfor Helsenorge) har vi definert en generisk oppgavetype.
Overordnet om integrasjon mellom eksternt system og Helsenorge
Arbeidsflyten for denne type oppgaver er som følger:
Helseaktøren sender oppgaven til innbygger via Helsenorge.
Innbygger varsles om mottatt oppgave og kan logge seg inn på Helsenorge å finne mottatt oppgave.
Innbygger kan se oppgavens innhold, se frister, samt starte oppgaven i eksternt system (via lenke som avsender sendte med i oppgaven)
Innbygger vil også påminnes om eventuelt ikke utført oppgave når fristen nærmer seg
Eksternt system må understøtte single-sign-on via Helsenorge innloggingsløsning: 03 - Innbygger innlogging - Helsenorge som OpenID Connect provider
Når innbygger har fullført oppgaven i eksternt system, skal dette rapportere tilbake til Helsenorge at oppgaven er utført.
Bruk av Oppgave - FHIR Task
En generisk oppgave representeres alltid som en FHIR ressurs av typen Task (http://hl7.org/fhir/task.html )
Hvordan FHIR Task skal benyttes for er beskrevet i detalj her: FHIR Task - Oppgave
Merk at FHIR Task.focus er av type “Task” for generiske oppgaver
Sending av generisk oppgave til innbygger
En generisk oppgave kan sendes til innbygger på to alternative måter.
Meldingsbasert integrasjon
FHIR Tasket kan sendes som et “document” i en Hodemelding via AMQP til Helsenorge. Denne løsningen er beskrevet her: AMQP Oppgaveforespørsel
For å benytte meldingsbasert integrasjon med Helsenorge, må aktøren:
Være abonnent på Helsenett.
Anskaffe virksomhetssertifikater
Registrere sitt system i Adresseregisteret med støtte for den aktuelle meldingstypen.
Implementere meldingsbasert integrasjon med Helsenorge via AMQP: Meldingsutveksling med Helsenorge og PVK
Eksempel Hodemelding med generisk oppgave
FHIR API
Det er også mulig å registrere en oppgave til innbygger på Helsenorge via REST API på Helsenorge.
For å benytte dette må ekstern aktør:
Støtte sikkerhetsmodellen for Helsenorge med bruk av Helsenorge sikkerhetstjeneste med UseCase System til System
Benytte REST API for Oppgave på Helsenorge:
https://{baseURL}/oppgave/v1/task
{baseUrl) for Helsenorge API’ene i de forskjellige testsystemer og produksjonssystemet finnes her: Testmiljøer og endepunkter
Det skal benyttes HTTP Create (POST): https://helsenorge.atlassian.net/wiki/spaces/HELSENORGE/pages/1254654012/FHIR+-+REST+Operasjoner#Lagre-en-FHIR-ressurs-p%C3%A5-Helsenorge
Header: Skal i henhold til sikkerhetsmodellen inneholde: Access token man fikk fra Helsenorge sikkerhetstjeneste
Body: Skal inneholde FHIR Task (i XML eller JSON)
Eksempel: Bruk av API
Kall til Helsenorge sikkerhetstjeneste
Kalle Helsenorge sikkerhetstjeneste med forhåndsregistrert API-klient for å få AccessToken:
Request
Form urlencoded
curl -X POST \
-H 'Content-Type=application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials&client_id=<Client Id (GUID)>&client_secret=<Client Secret>' \
<URL til Helsenorge sikkerhetstjeneste> (Se: Testmiljøer og endepunkter )
JSON
curl -X POST \
-H "Content-Type: application/json" \
-d '{"grant_type": "client_credentials", "client_id": "<Client Id (GUID)>", "client_secret": "<Client Secret>' \
<URL> (Se: Testmiljøer og endepunkter )
Response
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsInZlciI6MSwidHlwXzIiOiJyZWYifQ.eyJqdGkiOiJlNjJmNGExYS1hYmZiLTQ3OGYtYjUwOS0xMzZlM
zhkYTVhYzIiLCJjbGllbnRfaWQiOiI1ZDRmNzlhNS00NTliLTQyOWEtOTcwYS03ZWRjMjQzMjk2MGMiLCJjbGllbnRfbmFtZSI6IkVrc3Rlcm4gdGVzd
GtsaWVudCIsInJlZl90b2tlbiI6IlZhNEhId2xjc1l6aTlZN1k3bEp5akw1V2dZbXVQaHVZakNDblp5bUdGRm8iLCJyZWZfdG9rZW5fdHlwZSI6IkZ1b
GwiLCJ6b25lIjoiZWtzdGVybl9pbnRlcm5ldHQiLCJuYmYiOjE1NTQxMDE4NTMsImV4cCI6MTU1NDEwMzY1MywiaWF0IjoxNTU0MTAxODUzLCJpc3MiO
iJzaWtrZXJoZXQuaGVsc2Vub3JnZS5ubyJ9.hZvCrBx2yNiMzP3_dx0tYBxCookFFQ8EDWtPp3PfUCQ",
"expires_in": 1800,
"token_type": "bearer"
}
Etterfølgende kall til endepunktet for Oppgave
Request
curl -X POST \
-H "Content-Type: application/xml" -H "Authorization: Bearer <access_token>"\
-d 'FHIR Task i xml' \
<BaseUrl/oppgave/v1/task> (For BaseUrl, se: Testmiljøer og endepunkter )
FHIR Task i xml (samme innhold som Document i Hodemelding):
View file | ||
---|---|---|
|
Respons
HTTP respons:
OK: 201 - created. Ved suksessfull opprettelse av ressursen og påfølgende respons vil
Location
headeren være satt inneholdende logisk id , i tillegg returneres den opprettede ressursen i sin helhet.Feil: 400 - error + FHIR OperationOutcome