Medlemstjenester

Funksjonalitet og bakgrunn

Noen aktører tilbyr et sett med helsetjenester til alle medlemmene sine og alle medlemmer mottar de samme helsetjenestene.
Basisinformasjon om disse helsekontaktene er nødvendig for Helsenorge som inngangsbillett til digitale innbyggertjenester som timeadministrasjon og dialog med behandler. Helsenorge har da informasjon om hvilke helsetjenester en innbygger mottar og hvor kommunikasjon skal sendes. Denne siden beskriver hvordan integrasjon med Helsenorge for oversending av helsetilbud og medlemsliste skal implementeres.

Figuren under viser løsningskomponentene for overføring av helsetilbud og medlemsinformasjon .

Tabellen under beskriver kortfattet komponentene som inngår i løsningen.

Komponent

Beskrivelse

Medlemssystem

Medlemssystem som har oversikt over helsetilbud og medlemmer som mottar tilbud

Helsenorge

Innbyggers nettportal for helseinformasjon, eksponerer api for mottak av helsetilbud og medlemsliste

Helsenorge STS

Utsteder av sikkerhetstoken for å kalle API mot Helsenorge

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 “Helsekontakter

    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. Fullmaktinformasjon 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

Valg av standarder

For overføring av helsetilbud og medlemsinformasjon er den internasjonale standarden FHIR valgt, med bruk av versjon 4.0. Dokumentasjon av standarden fins her: http://hl7.org/fhir/.

Helsetilbud- HealthCareService bundle

For å oversende en virksomhets helsetilbud benyttes FHIR ressursen HealthCareService.
https://www.hl7.org/fhir/healthcareservice.html
For å håndtere knytninger til hvem som leverer tjenesten og hvor tjenesten leveres benyttes henholdsvis Organization og Location. Informasjonen sendes i en bundle og oppdateres som en transaksjon.

Medlemmer- Patient bundle

For å oversende medlemmer som mottar helsetilbud benytte FHIR ressursen Patient
https://www.hl7.org/fhir/patient.html
For å kunne sende en liste med flere pasienter benyttes ressursen bundle som er beskrevet her: https://www.hl7.org/fhir/bundle.html

Overføring av medlemstilbud

Dette avsnittet beskriver hvilken informasjon som skal sendes fra medlemssystem, ikke-funksjonelle krav som skal dekkes og angir et eksempel på hvordan forespørsel skal se ut.

Overføring av helsetilbud

Overføring av helsetilbud derfinerer hvilke helsetjenester medlemmene mottar.

Ved publisering av helsetilbud skal det gjøres en POST operasjon mot endepunkt eksponert av helsenorge.no
Forespørsel vil være på formen https://<miljø>/ helsekontakter/api/<versjon>
Eksempel fra integrasjonstestmiljø https://eksternapi-hn-mas-02.int-hn.nhn.no/helsekontakter/api/v1
Tabellen under viser hvilken informasjon som skal overføres for helsetilbud

Ressurs

Attributt

Beskrivelse

Eksempel

Påkrevd

HealthcareService

Identifier

Lokal Id i medlemssystem. GUID

3546c8f7-3cd3-4693-929e-66501642504c

Ja



Active

Angir om ressurs er i aktiv bruk

true

Nei



ProvidedByReference

Referanse til Organisasjon



Ja



LocationReference

Referanse til lokasjon







Name

Navn på tjenesten slik det skal presenteres til innbygger

Reisevaksine

Ja



Comment

Beskrivelse av tjenesten.



Nei



Endpoint.Identifier

Her Id til kommunikasjonspart som skal benyttes for å nå tjeneste

129688

Ja

Organization

Identifier

Id til organisasjon. Organisasjonsnummer

948 554 062

Ja



Name

Navn på organisasjon

SiO Helse

Ja



Endpoint.Id

Her Id til virksomhet

1494

Ja

Location

Address.Line

Gatenavn og nummer

Holbergsgate 21

Ja



Address.City

Poststed

Oslo

Ja



Address.PostalCode

Postnummer

0314

Ja



Telecom.Value

Telefonnummer

22853300

Nei



Telecom.System

Type verdi

phone

Nei



Telecom.Value

Telefonnummer

wwww.sio.no

Nei



Telecom.System

Type verdi

url

Nei

Eksempel XML

<?xml version="1.0" encoding="utf-8"?>
<Bundle xmlns="http://hl7.org/fhir">
<id value="f23750979b6040bf94d4861184507864"/>
<type value="transaction"/>
<entry>
<resource>
<HealthcareService>
<id value="3546c8f7-3cd3-4693-929e-66501642504c"/>
<identifier>
<value value="3546c8f7-3cd3-4693-929e-66501642504c"/>
</identifier>
<active value="true"/>
<providedBy>
<!-- Virksomhet som leverer tjeneste, referanse til organisasjon -->
<reference value="Organization/Organisasjon1"/>
</providedBy>
<location>
<reference value="Location/Lokasjon1"/>
</location>
<name value="Reisevaksine"/>
<comment value="Reisevaksine til studenter og ansatte"/>
<endpoint>
<identifier>
<system value="urn:oid:2.16.578.1.12.4.1.2"/>
<!-- Her ID nivå 2 -->
<value value="129688"/>
</identifier>
</endpoint>
</HealthcareService>
</resource>
<request>
<method value="PUT"/>
</request>
</entry>
<entry>
<resource>
<Location>
<id value="Lokasjon1"/>
<telecom>
<!-- Telefonnummer -->
<system value="phone"/>
<value value="22853300"/>
</telecom>
<telecom>
<!-- URL, er denne relevant? -->
<system value="url"/>
<value value="wwww.sio.no"/>
</telecom>
<address>
<!-- Besøksadresse til tjenesten -->
<line value="Holbergsgate 21"/>
<city value="Oslo"/>
<postalCode value="0314"/>
</address>
</Location>
</resource>
<request>
<method value="PUT"/>
</request>
</entry>
<entry>
<resource>
<Organization>
<id value="Organisasjon1"/>
<identifier>
<system value="urn:oid:2.16.578.1.12.4.1.4.101"/>
<!-- Organisasjonsnummer -->
<value value="948554062"/>
</identifier>
<name value="SiO Helse"/>
<endpoint>
<identifier>
<system value="urn:oid:2.16.578.1.12.4.1.2"/>
<!-- Her ID nivå 1 -->
<value value="1494"/>
</identifier>
</endpoint>
</Organization>
</resource>
<request>
<method value="PUT"/>
</request>
</entry>
</Bundle>

URL

URL til de ulike miljøene i Helsenorge er vist i tabellen under.

Overføring av medlemsliste

Ved overføring av medlemsliste knyttes medlemmer til helsetilbudet.

Dersom innbygger ikke har samtykket til bruk av Helsenorge kan informasjon for denne innbyggeren ikke lagres, og Helsenorge vil da sende en status tilbake for dette.

  • For at innbygger skal få tilgang til tjenester på Helsenorge må informasjon sendes på nytt senere

  • Avsender persisterer informasjon om innbygger er digitalt aktiv og lager en prosess som jevnlig sender medlemmer som ikke er digitalt aktive.

Listen med innbyggere skal deles opp i et konfigurerbart antall, for å unngå timeout og store transaksjoner.

Forespørsel for medlemsliste

Forespørsel vil være på formen https://<miljø>/ helsekontakter/api/<versjon>
Eksempel fra integrasjonstestmiljø https://eksternapi-hn-mas-02.int-hn.nhn.no/helsekontakter/api/v1

Attributt

Beskrivelse

Eksempel

Påkrevd

Identifier

Fødselsnummer/d-nummer til innbygger



Ja

Contact.Organization.Identifier

Organisasjonsnummer til virksomhet



Ja

Contact.period.Start

Startdato for når person mottar tjenester fra virksomhet



Ja

Contact.period.End

Sluttdato for når person mottar tjenester fra virksomhet



Ja

Eksempel XML

Et XML-eksempel er vist under.

<Bundle xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir bundle.xsd">
<id value="1dd860e9-b812-4365-8305-ef889e4b55b6"/>
<type value="batch"/>
<entry>
<resource>
<Patient>
<identifier>
<system value="urn:oid:2.16.578.1.12.4.1.4.1"/>
<!-- fødselsnummer -->
<value value="13116900216"/>
</identifier>
<contact>
<organization>
<identifier>
<system value="urn:oid:2.16.578.1.12.4.1.4.101"/>
<!-- Organisasjonsnummer, Benyttes til å knytte person til SiO -->
<value value="948554062"/>
</identifier>
</organization>
<period>
<start value="2018-12-10T09:00:00Z"/>
<!-- Startdato for tjenester for innbygger -->
<end value="2019-12-10T11:00:00Z"/>
<!-- Sluttdato for tjenester for innbygger -->
</period>
</contact>
</Patient>
</resource>
</entry>
<entry>
<resource>
<Patient>
<identifier>
<system value="urn:oid:2.16.578.1.12.4.1.4.1"/>
<!-- fødselsnummer -->
<value value="21016400952"/>
</identifier>
<contact>
<organization>
<identifier>
<system value="urn:oid:2.16.578.1.12.4.1.4.101"/>
<!-- Organisasjonsnummer, Benyttes til å knytte person til SiO -->
<value value="948554062"/>
</identifier>
</organization>
<period>
<start value="2018-12-10T09:00:00Z"/>
<!-- Startdato for tjenester for innbygger -->
<end value="2019-12-10T11:00:00Z"/>
<!-- Sluttdato for tjenester for innbygger -->
</period>
</contact>
</Patient>
</resource>
</entry>
</Bundle>

Respons medlemsliste

For hvert medlem som sendes i medlemslisten, vil Helsenorge svare med en respons for det spesifikke medlemmet. Et XML-eksempel for respons er vist under.

<Bundle xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir bundle.xsd">
<id value="1dd860e9-b812-4365-8305-ef889e4b55b6"/>
<type value="batch"/>
<entry>
<resource>
<Patient>
<identifier>
<system value="urn:oid:2.16.578.1.12.4.1.4.1"/>
<!-- fødselsnummer -->
<value value="13116900216"/>
</identifier>
</Patient>
</resource>
<response>
<status value="201"/>
<!-- OK, Opprettet -->
</response>
</entry>
<entry>
<resource>
<Patient>
<identifier>
<system value="urn:oid:2.16.578.1.12.4.1.4.1"/>
<!-- fødselsnummer -->
<value value="21016400952"/>
</identifier>
</Patient>
</resource>
<response>
<status value="404"/> <!-- Ikke OK, bruker 404 not found som respons -->
<outcome>
<OperationOutcome>
<issue>
<severity value="information"/>
<code value="not-found"/>
<details>
<text value="Ikke digitalt aktiv"/>
</details>
</issue>
</OperationOutcome>
</outcome>
</response>
</entry>
</Bundle>

Ikke funksjonelle krav

Type

Krav

Ytterligere kommentar

Ytelse

Responstid for overføring av helsetilbud skal være under 3 sekund for 99% av forespørsler

 

Ytelse

Responstid for overføring av medlemsliste skal være under 10 sekund for 99% av forespørsler

 

Ytelse

Timeout for overføring av medlemsliste er 15 sekund

 

Robusthet

Medlemssystem skal ha mekanismer for resending dersom Helsenorge ikke gir respons eller ikke er tilgjengelig

 

Feilhåndtering

Medlemssystem skal ha funksjonalitet for logging og overvåkning av feil

 

Feilhåndtering

Medlemssystem skal ha funksjonalitet for resending for å korrigere feil eller oppdatering av data.

 

Konfigurerbarhet

Medlemssystem skal ha funksjonalitet for konfigurere antall medlemmer som sendes i medlemsliste

Antall settes basert på ytelsestest og etter avtale. Anbefalt utgangspunkt er maks 50 per liste.

Robusthet

Helsenorge skal ha funksjonalitet for å validere maksstørrelse for antall medlemmer som sendes i medlemsliste

 

 

Respons fra helsenorge.no

Respons fra helsenorge.no skal være i henhold til FHIR standard og bruk av RESTful api beskrevet her: https://www.hl7.org/fhir/http.html

Responskode

Beskrivelse

200

OK. Oppdatert

201

OK. Opprettet

4xx

Feilkode i henhold til FHIR spesifikasjon

413

Payload too large