Oppgave API

Dette er et API som kan benyttes til forskjellige type oppgaver en helseaktør ønsker at innbygger skal utføre.

Dette API’et kan benyttes for å sende en oppgave til innbygger, og eventuelt i ettertid endre utvalgte parametere på en oppgave som allerede er innsendt.

Alle oppgaver til innbygger er modellert som en FHIR ressurs av type Task. For skjemaoppgaver kan oppgaven også inneholde andre FHIR ressurser i en FHIR Bundle. Men, selve oppgaven er alltid en FHIR Task.

Gjennom bruk av FHIR-ressurser har vi lagt til rette for at aktøren kan benytte forskjellig teknologi for integrasjon. Aktøren velger om man ønsker å benytte meldingsbasert integrasjon eller FHIR API.

 

Forutsetninger for bruk av Oppgave (under utarbeidelse):

Følgende aktører kan bruke tjenesten:

  • Offentlig helseaktør, eller aktør med offentlig avtale

  • Aktører med tjenester på Helsenorge

API-navn

Oppgave

Funksjonelt område

Oppgave

API-versjon og dato publisert

v1.0 Oct 27, 2020

Status

I drift

API-dokumentasjon sist endret

Jun 25, 2024

Teknologi

REST + FHIR HelseId.jpg

AMQP + FHIR

 

Forretningsbehov

Id

Brukerhistorie

Forretningsmessige akseptansekriterier

 

Som aktør ønsker jeg at innbygger skal fylle ut et skjema

slik at jeg innhenter nødvebndig/ønsket informasjon elektronisk

 

 

Som aktør ønsker jeg å sende en foresprøsel om at innbygger skal samtykke til en bestemt type behandling

slik at jeg kan foreta databehandling av personopplysninger i henhold til samtykkets omfang

 

 

Som aktør ønsker jeg å be innbygger utføre en oppgave i et eksternt system

der dette er ønsket/nødvendig som en del av ytelse av helsehjelp

 

 

Som aktør ønsker jeg å be innbygger om å ta stilling til bruk av verktøy

slik at innbygger tar et aktivt valg om å ta i bruk det verktøyet jeg har forskrevet

 

 

 

 

Prosesser og flyt

 

Innsending av Oppgave

Payload

En oppgave er alltid representert med en FHIR Task: FHIR Task - Oppgave

I skjemaløsningen kan det i tilleg sendes med andre FHIR ressurser. Det skjer da som en FHIR Bundle (der et av elementene må være en Task). Se detaljer om dette her: Benyttede FHIR Ressurser i Skjemaløsningen

REST API

Autorisasjon

To metoder for tilgang er tilgjengelige:

  1. HelseId sin autoriseringstjeneste for maskin-til-maskin kan benyttes:

    1. Velg Helsenorge Ekstern API i HelseId sin selvbetjeningsløsning

    2. Velg deretter scope “Oppgave

    3. Når tilgangen er godkjent av Helsenorge, kan aksesstoken hentes ut fra HelseId

  2. API-klienten kan alternativt autentisere seg mot Helsenorge Sikkerhetstjeneste.

    1. API-klienten må forhåndskonfigureres på Helsenorge med sin public key

    2. API-et skal benyttes i system-til-system kontekst: 01 - System til System

    3. Deretter kan API-klienten få utsedt et AksessToken fra Helsenorge STS.

AksessToken som mottas fra HelseId eller Helsenorge STS skal deretter være med i Authorization header i alle HTTP-requestene. Se: 02 - Kall til Helsenorge og PVK API'er og bruk av AccessToken

Bruk av API’et

  • (HTTP POST): Helsenorge bestemmer ressursens ID. FHIR - REST Operasjoner | Create HTTP POST

  • URL til REST API:

    • Dersom Payload er bare Task: POST [baseUrl for ekstern-API til HN-system]/oppgave/v1/Task

    • Dersom Payload er en Bundle (opsjon i Skjemaløsningen): POST [baseUrl for ekstern-API til HN-system]/oppgave/v1/Bundle

  • Se her for oversikt over baseURL’er til de forskjellige systemene: Testmiljøer og endepunkter

Meldingsbasert integrasjon (AMQP)

Sending av Hendelsesvarsel kan også skje ved meldingsbasert integrasjon. (Vil først implementeres når første aktør har slik behov). Hodemeldingen inneholder da eksakt samme “payload” som det som postes i REST-API’et.

Struktur på AMQP-melding ved meldingsbasert integrasjon

Tjeneste

Oppgaveforespørsel

Bruksområde

Forespørsel fra helsepersonell til Innbygger med en oppgave som man ønsker at innbygger skal utføre.

Hodemelding

Obligatorisk, og benyttes i henhold til beskrivelse i Hodemelding

Obligatorisk verdi i MsgHead/MsgInfo/Type er:

<Type V="DIALOG_INNBYGGER_OPPGAVEFORESPØRSEL" DN="Dialog med innbygger – oppgaveforespørsel" />

Obligatorisk verdi i MsgHead/MsgInfo/Ack er:

<Ack DN="Ja" V="J"/>

Dialogmelding

Ikke aktuelt å bruke for denne tjenesten.

iCalender

Ikke aktuelt å bruke for denne tjenesten

Helsepersonell

Ikke aktuelt å bruke for denne tjenesten.

Pasientrelasjon

Ikke aktuelt å bruke for denne tjenesten.

Vedlegg

Ikke aktuelt å bruke for denne tjenesten

FHIR ressurs (i Document)

Støtte for kommunikasjonsprosessen i Adresseregisteret

Følgende prosess skal aktiveres i adresseregisteret for å støtte funksjonaliteten.

Prosess

Funksjonalitet

Versjon

Dialog_Innbygger_Oppgaveforesporsel

Basisversjon for kommunikasjonsprosess

1.0

Tabellen under viser hvilke roller som inngår i prosessen, hvilke funksjoner de ulike rollene kan gjøre og hvilke meldinger som benyttes.

Versjon

Rolle

Funksjon

Meldingsinnhold

1.0

Innbygger

Applikasjonskvittering

 

Helsepersonell

TilUtforelse

FHIR (Task eventuelt Bundle)

Eksempel på bruk av FHIR Task i Hodemelding

<?xml version="1.0" encoding="iso-8859-1"?> <MsgHead xmlns="http://www.kith.no/xmlstds/msghead/2006-05-24"> <MsgInfo> <!-- Meldingens funksjon Volven-kodeverk 8279 --> <Type V="DIALOG_INNBYGGER_OPPGAVEFORESPØRSEL" DN="Dialog med innbygger - forespørsel om å utføre oppgave" /> <MIGversion>v1.2 2006-05-24</MIGversion> <GenDate>2019-12-29T11:34:00.0513824+01:00</GenDate> <MsgId>d43723fe-a526-4c00-86b2-da3f4ae52cb8</MsgId> <Ack DN="Ja" V="J" /> <Sender> <Organisation> <OrganisationName>HELSEDIREKTORATET</OrganisationName> <Ident> <Id>2397</Id> <TypeId V="HER" S="2.16.578.1.12.4.1.1.9051" DN="Her-id" /> </Ident> <Organisation> <OrganisationName>DD.TEST</OrganisationName> <Ident> <Id>8091467</Id> <TypeId V="HER" S="2.16.578.1.12.4.1.1.9051" DN="Her-id" /> </Ident> </Organisation> </Organisation> </Sender> <Receiver> <Organisation> <OrganisationName>Direktoratet for e-helse</OrganisationName> <Ident> <!-- HERID i TEST: 115851, HERID i Prod: ? --> <Id>115851</Id> <TypeId V="HER" S="2.16.578.1.12.4.1.1.9051" DN="Her-id" /> </Ident> <Organisation> <OrganisationName>Digitale innbyggertjenester</OrganisationName> <!-- HERID'er i DEV/TEST: TEST01: 8093248, TEST02: 8093247, QA: 8093249, MAS-01: 8093244, MAS-02: 8093239 --> <Ident> <Id>8093248</Id> <TypeId V="HER" S="2.16.578.1.12.4.1.1.9051" DN="Her-id" /> </Ident> </Organisation> </Organisation> </Receiver> <Patient> <!-- Samme informasjon finnes i FHIR objektet, men må være med for å tilfredstille Hodemeldingen (benyttes ikke av Helsenorge) --> <Ident> <Id>13116900216</Id> <TypeId V="FNR" DN="Fødselsnummer" S="2.16.578.1.12.4.1.1.8116"/> </Ident> </Patient> </MsgInfo> <Document> <!-- Dette er et selvstendig objekt som inneholder all informasjon som er nødvendig for å kunne utføre oppgaven. Resten av (hode) meldingen er i utgangspunktet KUN transport. --> <ContentDescription>FHIR Task</ContentDescription> <RefDoc> <MsgType V="XML" DN="XML-instans" /> <Content> <Task> ………….. </Task> </Content> </RefDoc> </Document> </MsgHead>

Generell info om meldingsutveksling med Helsenorge

For overordnet informasjon om meldingsutveksling med Helsenorge se her: Meldingsutveksling med Helsenorge

Feilsituasjoner og feilkoder

Se her for informasjon om feilkoder ved innsending og oppdatering av oppgaver: Feilsituasjoner og feilkoder