Helsemeldingar via NHN
⚠️ Beta – berre tilgjengeleg i testmiljø
Denne funksjonaliteten er førebels i beta og er per no berre tilgjengeleg i testmiljø.
Grensesnitt, funksjonalitet og oppførsel kan endre seg før endeleg produksjonssetting.
Innleiing
eFormidling støttar sending av meldingar til fastlegar via Norsk Helsenett (NHN) sin meldingsinfrastruktur. Meldingane vert sende direkte til fastlegen sitt EPJ-system (Elektronisk pasientjournal).
Prosessar og dokumenttypar
Det er to måtar å adressere meldingar via NHN:
1. Sending til fastlege (via fødselsnummer)
Ved sending til fastlege brukar du fødselsnummeret til pasienten som mottakaradresse. Integrasjonspunktet vil automatisk slå opp i Fastlegeregisteret (FLR) for å finne kven som er fastlegen til den aktuelle pasienten, og deretter levere meldinga til fastlegen sitt EPJ-system.
- Prosess:
urn:no:difi:profile:helse:helse:ver1.0 - Mottakaradresse:
fastlege-for:<Fødselsnummer (11 siffer)>. Eksempel:fastlege-for:17912099997- - Authority må setjast tilnhn-actorid - Oppslag: Fastlegeregisteret (FLR), Adresseregisteret (AR) og Folkeregisteret (FREG)
Pasientinformasjon vert fylt ut automatisk ved oppslag i FREG.
2. Sending til HER-id (direkte til helsepersonell)
Ved sending direkte til eit HER-id brukar du HER-id til mottakaren som adresse. Dette gjer at du kan sende meldingar direkte til ein spesifikk helsepersonell eller helseinstans som er registrert i Adresseregisteret (AR), utan å gå via fastlegeoppslag.
- Prosess:
urn:no:difi:profile:helse:helse:ver1.0 - Mottakaradresse:
her-id:<HER-id>, med prefikset i små bokstavar. Authority må setjast tilnhn-actorid - Oppslag: Adresseregisteret (AR)
- Eksempel: Dialogmelding v1.1
Pasientinformasjon må fyllast ut i dette tilfellet.
Føresetnader
Ved bruk av Helsemeldingar via NHN opptrer ei organisasjon vanlegvis både som avsendar og mottakar.
For at ei organisasjon kan ta i bruk Helsemeldingar via NHN må følgjande føresetnader vere på plass:
- Organisasjonen må vere medlem av Helsenettet
- Organisasjonen må vere registrert som virksomhet i Adresseregisteret (AR), og HER-id-ane som skal brukast må vere registrerte som kommunikasjonspartar under den virksomheten
- Kvar kommunikasjonspart som skal brukast må ha EDI 2.0-adresse registrert i AR,
meldingstjener-api@testedi.nhn.noi test ogmeldingstjener-api@edi.nhn.noi produksjon. Utan denne kan ikkje NHN rute meldingar til parten - Digdir må ha fullmakt i HelseID til å opptre på vegne av organisasjonen som eig HER-id-en. I testmiljøet gjer Digdir dette sjølv, ved å registrere organisasjonen som tenant på HelseID-klienten. Ta kontakt med oss når AR-oppføringa er på plass. I produksjon gir organisasjonen sjølv fullmakta, sjå NHN si rettleiing
- Organisasjonen som eig HER-id-en må delegere scopet
eformidling:dphi Altinn til organisasjonsnummeret integrasjonspunktet køyrer med. I testmiljøet gjerast dette i TT02 - Maskinporten-klienten som integrasjonspunktet nyttar må ha scopet
eformidling:dph - Integrasjonspunktet må vere versjon 4.2.0 eller nyare. Tidlegare versjonar har kjende feil som rammar DPH: før v4.1.0 vert det bedt om feil scope frå Maskinporten, v4.0.8 kan ikkje køyre DPI og DPH samtidig, og i v4.1.0 arvar ikkje DPH nøkkellageroppsettet
Merk: kven som må delegere avgjerast av Adresseregisteret, ikkje av konfigurasjonen.
Integrasjonspunktet slår opp kvar HER-id i AR og hentar organisasjonsnummeret til den overordna virksomheten. Det nummeret vert sendt som
consumer_orgtil Maskinporten. Delegeringa må difor gjerast av nettopp den organisasjonen som eig HER-id-en i AR, sjølv om integrasjonspunktet køyrer med eit anna organisasjonsnummer.Får du
invalid_scope(MP-251) frå Maskinporten, står organisasjonsnummeret i feilmeldinga. Oppstartsloggen viser same nummeret, saman med namnet på organisasjonen HER-id-en tilhøyrer.
Teknisk implementering
Helsemeldingar via NHN brukar kommunikasjon over EDI 2.0, der integrasjonspunktet vert brukt for å automatisere tilgang til AR og FLR, og i tillegg tilbyr sikker transport.
Integrasjonspunktet pakkar meldingane og sender desse vidare til NHN sin EDI 2.0-teneste. Meldingane vert deretter ruta til mottakarens MSH (Message Service Handler / meldingstjenar) basert på informasjon frå Adresseregisteret (AR) og Fastlege-registeret (FLR).
Konfigurasjon
For å ta i bruk Helsemeldingar via NHN må integrasjonspunktet konfigurerast med følgjande:
Aktivere NHN-meldingar
Først må NHN-meldingar aktiverast i integrasjonspunktet:
difi.move.feature.enableDPH=true
# Denne er mellombels nødvendig inntil løysinga er klar for produksjon
difi.move.feature.enable-beta-features=true
Liste av HER-id-ar som det skal sendast og takast imot meldingar for
Integrasjonspunktet kan representere éi eller fleire organisasjonar. Alle HER-id-ar som skal sende eller ta imot meldingar må listast opp.
Krav til kvar HER-id:
- han må vere registrert som kommunikasjonspart under ei overordna virksomhet i AR. Organisasjonsnummeret vert henta frå den overordna, så ein HER-id utan overordna virksomhet kan ikkje brukast. Ein HER-id som representerer sjølve organisasjonen ligg typisk øvst og har inga overordna eining
- den overordna virksomheten må ha delegert
eformidling:dph, sjå Føresetnader - han må ha EDI 2.0-adresse registrert i AR
- han må vere eksklusiv for dette integrasjonspunktet. Ein HER-id kan bare hentast av éin konsument, sidan meldingar vert markerte som lesne per HER-id. To integrasjonspunkt på same HER-id vil ta meldingar frå kvarandre
Erstatt verdiane under med dykkar eigne HER-id-ar. Ikkje bruk eksempelverdiar: dei tilhøyrer andre
organisasjonar, og gir feil consumer_org.
difi.move.dph.her-ids[0]=<HER-id>
difi.move.dph.her-ids[1]=<HER-id>
Testing
Skaffe eigne HER-id-ar i test
I testmiljøet er dette sjølvbetening. Lag ein brukar i https://register-web.test.nhn.no/ar/, be om eigarskap til eit organisasjonsnummer, og opprett deretter kommunikasjonspartane sjølv.
Vel organisasjonsnummer med omhu. Verksemda må òg kunne delegere i Altinn TT02, så eit heilt oppdikta nummer blokkerer delegeringssteget. Det enklaste for ein leverandør er å bruke sitt eige organisasjonsnummer.
Testmottakar
Ein mottakar må kunne ta imot og kvittere for meldinga. Det er ikkje nok at HER-id-en finst i
Adresseregisteret: er det ingen som hentar meldingane for den parten, blir dei liggande ulesne,
og avsendaren får aldri status LEVERT.
Digdir tilbyr i dag ingen open testmottakar som de kan sende til. Ta kontakt med oss når de er klare til å teste, så finn vi ein motpart saman.
Ein felle ved sending direkte til HER-id
Ved fastlege-for: hentar integrasjonspunktet rolla til mottakaren frå registeroppslaget, og
den blir rett. Ved her-id: er det ikkje gitt at parten faktisk er lege.
Eit konkret døme frå vårt eige testoppsett: HER-id 8144717 er registrert med yrke Sykepleier. Sender du til den som om det var ein fastlege, får meldinga feil rolle i MsgHead. Kontroller yrke og tittel i Adresseregisteret før de brukar ein HER-id direkte.
Testpasient
For å teste fastlege-for: treng de ein syntetisk person som faktisk har ein fastlegekontrakt i
Fastlegeregisteret i test. Eit vilkårleg syntetisk fødselsnummer held ikkje; oppslaget feilar med
«Personen er ikke tilknyttet fastlegekontrakt». Be kundesenter@nhn.no om ein testperson med
fastlegetilknyting.
Ein HER-id kan berre hentast av éin konsument
To integrasjonspunkt som pollar same HER-id vil ta meldingar frå kvarandre, sidan meldingar blir markerte som lesne per HER-id. Bruk eigne HER-id-ar i testoppsettet dykkar.
Applikasjonskvitteringar
Til vanleg ønskjer Norsk Helsenett at mottakande system les og lagar applikasjonskvitteringar, slik at ein kan fortelje avsendaren om meldinga har kome heilt fram til mottakaren. Integrasjonspunktet har likevel høve til å ta seg av dette automatisk sjølv, ved å setje følgjande property:
difi.move.feature.enable-receipts=false
Då gjer integrasjonspunktet to ting: det sender sjølv ei applikasjonskvittering med status OK tilbake til avsendaren, og det leverer ikkje innkomne applikasjonskvitteringar vidare til fagsystemet som eigne meldingar.
Ulempa er at kvitteringa vert sendt så snart integrasjonspunktet har henta meldinga, altså før
fagsystemet har behandla henne. Avsendaren får difor status LEVERT for tidleg. Ideelt sett bør
det mottakande systemet ta seg av denne biten sjølv.
Meldingsflyt
Diagrammet under viser flyten av meldingar og statusar ved sending av helsemeldingar via NHN. Meldingar går frå avsendarens fagsystem, gjennom integrasjonspunktet og EDI 2.0, til mottakarens MSH (Message Service Handler / meldingstjenar) og vidare til EPJ-systemet (Elektronisk pasientjournal).
Statusmeldingar vert returnert på fleire nivå for å informere avsendar om meldingsutvekslinga:
- OPPRETTET: meldinga er oppretta i integrasjonspunktet
- SENDT: meldinga er levert vidare og har fått ein referanse frå NHN
- MOTTATT: transportkvittering frå mottakarens meldingstenar
- LEVERT: applikasjonskvittering med status OK frå mottakarens system. Dette er sluttstatus ved suksess
- FEIL: avvist på transportnivå, eller applikasjonskvittering med
RejectedellerOkErrorInMessagePart - LEVETID_UTLOPT: levetida på meldinga er passert utan at ho vart ferdig
Merk at DPH ikkje set statusen LEST. NHN har heller ingen “lest”-status, berre
transportkvittering og applikasjonskvittering.
Det er alltid integrasjonspunktet som set statusane og rapporterer dei til fagsystemet. Kvitteringane
frå NHN går tilbake same veg som meldinga, og integrasjonspunktet hentar dei ved polling.
OPPRETTET og LEVETID_UTLOPT set integrasjonspunktet sjølv, utan at det ligg ei kvittering bak.
EDI 2.0") D("fa:fa-hospital-o Mottakar
MSH") E("fa:fa-hospital-o Mottakar
EPJ") A --> |Melding| B B --> |Melding| C C --> |Melding| D D --> |Melding| E B -.-> |OPPRETTET og SENDT| A D -.-> |Transportkvittering| C C -.-> |Transportkvittering| B B -.-> |MOTTATT| A E -.-> |Applikasjonskvittering| D D -.-> |Applikasjonskvittering| C C -.-> |Applikasjonskvittering| B B -.-> |LEVERT eller FEIL| A
Eksempel på bruk
Eksempel 1: Sending til fastlege (via fødselsnummer)
Eksempel SBD for sending av helsemelding til fastlege via pasientens fødselsnummer:
{
"standardBusinessDocumentHeader": {
"headerVersion": "1.0",
"sender": [
{
"identifier": {
"authority": "nhn-actorid",
"value": "her-id:<eigen HER-id>"
}
}
],
"receiver": [
{
"identifier": {
"authority": "nhn-actorid",
"value": "fastlege-for:30878199614"
}
}
],
"documentIdentification": {
"standard": "urn:no:difi:helse:xsd::dialogmelding",
"typeVersion": "2.0",
"instanceIdentifier": "",
"type": "dialogmelding",
"creationDateAndTime": "2019-07-02T15:05:04.7960494+02:00"
},
"businessScope": {
"scope": [
{
"type": "ConversationId",
"identifier": "urn:no:difi:profile:helse:helse:ver1.0"
}
]
}
},
"dialogmelding": {
"hoveddokument": "dialogmelding.xml",
"metadataFiler": {
"test.pdf": {
"description" : "Dette er en test"
}
}
}
}
Fila dialogmelding.xml skal inneholde ei Dialogmelding v1.1.
Eksempel:
<Dialogmelding xmlns="http://www.kith.no/xmlstds/dialog/2013-01-23">
<Notat>
<TemaKodet V="6" S="2.16.578.1.12.4.1.1.7322" DN="Henvendelse om pasient"/>
<Tema>Test tema</Tema>
<TekstNotatInnhold xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Testing 1 2 3 </TekstNotatInnhold>
</Notat>
</Dialogmelding>
Forklaring av viktige felt
| Felt | Beskrivelse |
|---|---|
sender.identifier.value |
HER-iden til avsendaren, prefiks med her-id: i små bokstavar. Må vere ein av HER-id-ane i difi.move.dph.her-ids |
receiver.identifier.value |
Fødselsnummer til pasienten (11 siffer), med prefiks fastlege-for:. Eksempel: fastlege-for:30878199614. Integrasjonspunktet slår opp fastlegen i FLR. |
businessScope.scope[].identifier |
Prosess: urn:no:difi:profile:helse:helse:ver1.0 |
Merk: Scopet
ConversationIdskal vise til første melding i ein dialog. Sidan dette er den første meldinga, vert han sett lik dokument-ID-en automatisk.
Eksempel 2: Sending til HER-id, første melding i ein dialog
Eksempel SBD for sending av helsemelding direkte til ein HER-id:
{
"standardBusinessDocumentHeader": {
"headerVersion": "1.0",
"sender": [
{
"identifier": {
"authority": "nhn-actorid",
"value": "her-id:<eigen HER-id>"
}
}
],
"receiver": [
{
"identifier": {
"authority": "nhn-actorid",
"value": "her-id:12345"
}
}
],
"documentIdentification": {
"standard": "urn:no:difi:helse:xsd::dialogmelding",
"typeVersion": "2.0",
"instanceIdentifier": "",
"type": "dialogmelding",
"creationDateAndTime": "2019-07-02T15:05:04.7960494+02:00"
},
"businessScope": {
"scope": [
{
"type": "ConversationId",
"identifier": "urn:no:difi:profile:helse:helse:ver1.0"
}
]
}
},
"dialogmelding": {
"hoveddokument": "dialogmelding.xml",
"pasient": {
"fnr": "30878199614",
"fornavn": "OVERSIKTLIG",
"etternavn": "KARAFFEL"
},
"metadataFiler": {
"test.pdf": {
"description" : "Dette er en test"
}
}
}
}
Forklaring av viktige felt
| Felt | Beskrivelse |
|---|---|
sender.identifier.value |
HER-iden til avsendaren, prefiks med her-id: i små bokstavar. Må vere ein av HER-id-ane i difi.move.dph.her-ids |
receiver.identifier.value |
HER-id til mottakaren (tal), med prefiks her-id:. Eksempel: her-id:12345. Integrasjonspunktet slår opp adressa i AR (Adresseregisteret). |
businessScope.scope[].identifier |
Prosess: urn:no:difi:profile:helse:helse:ver1.0 |
Merk: HER-id må vere registrert i Adresseregisteret (AR) og knytt til organisasjonen sin MSH før meldingar kan sendast.
Merk: Scopet
ConversationIdskal referere til første melding i ein dialog. Sidan dette er den første meldinga, vert han sett lik dokument-ID-en automatisk.
Eksempel 3: Svar i ein dialog
Eksempel SBD for sending av helsemelding direkte til ein HER-id:
{
"standardBusinessDocumentHeader": {
"headerVersion": "1.0",
"sender": [
{
"identifier": {
"authority": "nhn-actorid",
"value": "her-id:<eigen HER-id>"
}
}
],
"receiver": [
{
"identifier": {
"authority": "nhn-actorid",
"value": "her-id:12345"
}
}
],
"documentIdentification": {
"standard": "urn:no:difi:helse:xsd::dialogmelding",
"typeVersion": "2.0",
"instanceIdentifier": "",
"type": "dialogmelding",
"creationDateAndTime": "2019-07-02T15:05:04.7960494+02:00"
},
"businessScope": {
"scope": [
{
"type": "ConversationId",
"instanceIdentifier": "",
"identifier": "urn:no:difi:profile:helse:helse:ver1.0"
},
{
"type": "ParentId",
"instanceIdentifier": ""
}
]
}
},
"dialogmelding": {
"hoveddokument": "dialogmelding.xml",
"pasient": {
"fnr": "30878199614",
"fornavn": "OVERSIKTLIG",
"etternavn": "KARAFFEL"
},
"metadataFiler": {
"test.pdf": {
"description" : "Dette er en test"
}
}
}
}
Merk: Scopene
ConversationIdogParentIdvert brukte til å vise til ein samtale. ConversationId skal referere til første melding i dialogen. ParentId skal referere til førre melding i dialogen.