Henvisninger
Ny løsning der henvisninger pushes fra EPJ til Helsenorge, muliggjør mer oppdatert informasjon til innbygger og bl.a bruk av varslinger i Helsenorge-appen.
Inntil alle helseregioner har tatt i bruk ny løsning for push av henvisninger, vil NHN støtte både ny løsning (push) og gammel løsning (pull) der henvisninger kun oppdateres når innbygger aktivt oppdaterer henvisnings-siden på Helsenorge.
Dokumentasjon: Under arbeid Løsningen: Under arbeid
Beskrivelse av funksjonalitet
UNDER ARBEID
Forutsetninger & tips
UNDER ARBEID
Forretningsbehov
Funksjonalitet | Akseptansekrav |
Se informasjon om henvisningen |
Se “Tabell - oversikt over statuser og dataelement” for detaljer om hvilke data som forventes til hver status |
Varsel om henvisninger |
Se “Tabell - oversikt over statuser og dataelement” for detaljer om hvilke status-endringer som trigger ny push av henvisning. |
Tilgangsstyring av henvisning |
OBS! Nåværende tilgangsstyring på Helsenorge tillater ikke at henvisninger blir sendt til barn eller foreldre til barn 12-16 år. Henvisning blir markert med referanse til tilgangsstyringen som var gjeldene når den ble lagret, slik at man ved evt fremtidige endringer har mulighet til å skille mellom ulik tilgangsstyring og visning av henvisninger. |
Feilsending og oppdatert informasjon på henvisning |
|
Tabell - Oversikt over statuser og dataelementer
https://miro.com/app/board/uXjVLbGD4Os=/
Teknisk Implementasjon
Teknologi | Dokumentasjon | Kommentar |
|---|---|---|
AMQP |
|
|
FHIR | LINK TIL TEKNISK DOK EVT DETALJERT UNDERSIDE FOR TEKNISK DOK |
|
Validering av mottatte henvisninger
Helsenorge ExternalApi mottar FHIR ServiceRequest-meldinger og disse valideres i fire steg.
A: FHIR-ressursen er av type ServiceRequest
B: ServiceRequest referererer den norske basisprofilen for ServiceRequest og validerer mot denne
C: ServiceRequest-meldingen inneholder de forventede dataene per status
D: innbygger er digitalt aktiv
Alle feil resulterer i at responsen tilbake er HTTP 422 UnprocessableContent (A, B, C) eller 404 NotFound (D), og innehlder en FHIR OperationOutput-ressurs med liste over Issue-innslag, en IssueComponents per feiltype.
Steg | Sjekk | Scenario | Feilmelding IssueComponent |
|---|---|---|---|
A | ServiceRequest er tom | Alle | Severity = IssueSeverity.Fatal, Code = IssueType.Invariant, |
B | Profil er ikke satt | Alle | Severity = IssueSeverity.Fatal, Code = IssueType.Invariant, |
B | Profil er ikke satt | Alle | Severity = IssueSeverity.Error, Code = IssueType.Required, |
B | ServiceRequest følger ikke profilen | Alle | Severity = IssueSeverity.Error, Code = IssueType.Invalid, |
C | ServiceRequest.status er satt | Alle | Severity = IssueSeverity.Error, Code = IssueType.Required, |
C | ServiceRequest har Extensions | Alle | Severity = IssueSeverity.Error, Code = IssueType.Required, |
C | ServiceRequest har Contained | Alle | Severity = IssueSeverity.Error, Code = IssueType.Required, |
C | Finnes en stk. ServiceRequest Identifier av type urn:uuid, og verdien er en gyldig GUID | Alle | Severity = IssueSeverity.Error, Code = IssueType.Invalid, |
C | ServiceRequest Requester er satt og det finnes en stk av den i contained-ressursene | Alle | Severity = IssueSeverity.Error, Code = IssueType.Required, |
Contained ServiceRequest Requester er av type PractitionerRole | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
C | ServiceRequest Requester Practitioner finnes i contained og er av type Practitioner | Alle | Severity = IssueSeverity.Error, Code = IssueType.Required, |
Det finnes en stk, ServiceRequest Requester contained-ressurs av type Practitioner som har verdi i feltet "Name" | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
ServiceRequest Requester Organization finnes i contained og er av type Organization | Severity = IssueSeverity.Error, Code = IssueType.Required, | ||
Det finnes en stk, ServiceRequest Requester contained-ressurs av type Organization som har verdi i feltet "Name" | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
C | ServiceRequest extension mottattdato eksisterer | Alle | Severity = IssueSeverity.Error, Code = IssueType.Required, |
Det finnes kun en stk. ServiceRequest extension mottattdato, med riktig format og ikke for langt frem eller tilbake i tid (+/-100 år) | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
ServiceRequest extension mottattdato er i dag eller tilbake i tid | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
C | Hvis ServiceRequest extension statusreason er satt så skal det være en stk. CodeableConcept med Text-verdi fylt ut | Alle | Severity = IssueSeverity.Error, Code = IssueType.Invalid, |
C | Hvis ServiceRequest status er entered-in-error så skal statusreason være "omgjort" eller "slettet | Status er entered-in-error Alle sjekker under dette er ikke relevante hvis status er entered-in-error | Severity = IssueSeverity.Error, Code = IssueType.Invalid, |
Hvis ServiceRequest status er entered-in-error og statusreason er "slettet" så skal en stk. Performer være definert med gyldig ressursreferanse | Severity = IssueSeverity.Error, Code = IssueType.Required, | ||
Hvis ServiceRequest status er entered-in-error og statusreason er "slettet" så skal Performer referere contained informasjon om helseforetaket (navn og organisasjonsnummer) | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
C | ServiceRequest skal ha en stk. Performer med gyldig ressursreferanse | Alle | Severity = IssueSeverity.Error, Code = IssueType.Required, |
ServiceRequest Performer refererer contained informasjon om både helseforetaket og avdelingen | Severity = IssueSeverity.Error, Code = IssueType.Required, | ||
ServiceRequest Performer refererer contained informasjon om avdelingen (navn og gyldig referanse til helseforetak) og helseforetaket (navn og organisasjonsnummer) | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
C | ServiceRequest extension ansinitetsdato eksisterer | Alle | Severity = IssueSeverity.Error, Code = IssueType.Required, |
Det finnes kun en stk. ServiceRequest extension ansinitetsdato, med riktig format og ikke for langt frem eller tilbake i tid (+/-100 år) | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
ServiceRequest extension ansinitetsdato er i dag eller tilbake i tid | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
C | ServiceRequest extension fristforvurdering eksisterer | Alle | Severity = IssueSeverity.Error, Code = IssueType.Invalid, |
Det finnes kun en stk. ServiceRequest extension fristforvurdering, med riktig format og med en dato som er innenfor ytre datogrenser (+/-100 år) | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
C | Når ServiceRequest status er draft så skal statusreason være tom/ikke definert | Status er draft | Severity = IssueSeverity.Error, Code = IssueType.Invalid, |
C | Når ServiceRequest status er onhold så skal statusreason være tom/ikke definert | Status er onhold | Severity = IssueSeverity.Error, Code = IssueType.Invalid, |
C | Når ServiceRequest status er active så skal statusreason være tom/ikke definert, eller ha verdiene "skalikkerettighetsvurderes" eller "utredning" | Status er active | Severity = IssueSeverity.Error, Code = IssueType.Invalid, |
Når ServiceRequest status er active så skal ServiceRequest extension vurdertdato eksistere | Severity = IssueSeverity.Error, Code = IssueType.Required, | ||
Når ServiceRequest status er active så finnes en stk. ServiceRequest extension vurdertdato, med riktig format og med en dato som er innenfor ytre datogrenser (+/-100 år) | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
Når ServiceRequest status er active og statusreason er tom/ikke definert, så skal ServiceRequest extension fristforhelsehjelp eksistere | Severity = IssueSeverity.Error, Code = IssueType.Required, Diagnostics= "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-frist-for-helsehjelp is missing" | ||
Når ServiceRequest status er active og statusreason er tom/ikke definert, så finnes en stk. ServiceRequest extension fristforhelsehjelp, med riktig format, med en dato som er innenfor ytre datogrenser (+/-100 år) og med en dato som ikke er fremover i tid | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
C | Når ServiceRequest status er revoked så skal statusreason ha en av vediene "ikke_med_indikasjon", "feilregistrert", "kapasitet" eller "annet" | Status er revoked | Severity = IssueSeverity.Error, Code = IssueType.Invalid, |
Når ServiceRequest status er revoked så skal ServiceRequest extension vurdertdato eksistere | Severity = IssueSeverity.Error, Code = IssueType.Required, | ||
Når ServiceRequest status er active så finnes en stk. ServiceRequest extension vurdertdato, med riktig format og med en dato som er innenfor ytre datogrenser (+/-100 år) | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
Når ServiceRequest status er revoked så skal ServiceRequest.Occurence eksistere | Severity = IssueSeverity.Error, Code = IssueType.Required, | ||
Når ServiceRequest status er revoked så skal ServiceRequest.Occurence være definert som type Period og ha en sluttdato Period.End | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
Når ServiceRequest status er revoked så skal ServiceRequest.Occurence ha en sluttdato Period.End | Severity = IssueSeverity.Error, Code = IssueType.Required, | ||
Når ServiceRequest status er revoked så skal ServiceRequest.Occurence Period.End ha korrekt datoformat og en dato som er innenfor ytre datogrenser (+/-100 år) | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
C | Når ServiceRequest status er completed så skal statusreason være tom/ikke definert, eller ha verdiene "videresendt" eller "foresporsel" | Status er completed | Severity = IssueSeverity.Error, Code = IssueType.Invalid, |
Når ServiceRequest status er completed og statusreason er tom/ikke definert, så skal extension vurderdato eksistere | Severity = IssueSeverity.Error, Code = IssueType.Required, | ||
Når ServiceRequest status er completed og statusreason er tom/ikke definert, så finnes en stk. ServiceRequest extension vurderdato, i riktig format, med en dato som er innenfor ytre datogrenser (+/-100 år) og med en dato som ikke er fremover i tid | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
Når ServiceRequest status er completed og statusreason er tom/ikke definert eller “foresporsel”, så skal ServiceRequest.Occurence være definert som type Period og ha en sluttdato Period.End | severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
Når ServiceRequest status er completed og statusreason er tom/ikke definert eller “foresporsel”, så skal ServiceRequest.Occurence være definert som type Period og ha en sluttdato Period.End | Severity = IssueSeverity.Error, Code = IssueType.Required, | ||
Når ServiceRequest status er completed og statusreason er tom/ikke definert eller “foresporsel”, så skal ServiceRequest.Occurence ha en sluttdato Period.End | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
C | ServiceRequest skal ha en av de godkjente statusene over | Status er ukjent | severity = IssueSeverity.Error, Code = IssueType.Invalid, |
D | ServiceRequest Subject inneholder en gyldig personidentifikator | Ikke riktig identifikator for innbygger | Severity = IssueSeverity.Error, Code = IssueType.Required, |
ServiceRequest Subject inneholder en personidentifikator med riktig identifikatortype | Severity = IssueSeverity.Error, Code = IssueType.Invalid, | ||
D | Innbygger definert i ServiceRequest Subject er digitalt aktiv og har tilgang til henvisninger | Innbygger er ikke digitalt aktiv | Severity = IssueSeverity.Information, Code = IssueType.NotFound |