Henvisninger

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

  1. UNDER ARBEID

 

Forretningsbehov

Funksjonalitet

Akseptansekrav

Se informasjon om henvisningen

  1. Helseaktør sender henvisning med relevant informasjon om

    1. Status på henvisning

    2. Henviser

    3. Mottakende behandlingssted

    4. Relevante dato-felter

Se “Tabell - oversikt over statuser og dataelement” for detaljer om hvilke data som forventes til hver status

Varsel om henvisninger

  1. Helsenorge varsel innbygger om nye henvisninger og relevante endringer på henvisningen

  2. Avsender kan undertrykke varsling på enkelte henvisninger, feks ved innleggelse på akutten (Ø-hjelp).

  3. Avsender av henvisning kan angi navn som skal vises i varseltekst, feks navn på helseforetak.

  4. Avsender har ansvar for at ikke sensitiv informasjon vises i varseltekst. (feks tolkes avdeling som sensitiv informasjon). Hvis avsender ikke har angitt noe navn, vises heller ingen navn i varsel.

Se “Tabell - oversikt over statuser og dataelement” for detaljer om hvilke status-endringer som trigger ny push av henvisning.

Tilgangsstyring av henvisning

  1. Helseaktøren har ansvar for å angi og evt begrense tilgang til henvisningen.

  2. Hvis ingen skal se henvisningen på Helsenorge, sendes den heller ikke fra helseaktøren. Feks dersom foreldre ikke skal se henvisninger for barn mellom 12-16 år (ikke testbart på Helsenorge).

 

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

  1. Ved feilsending av henvisning og evt ved behov for oppdatert informasjon på henvisning, sender avsender oppdatert henvisning til Helsenorge.

Tabell - Oversikt over statuser og dataelementer
https://miro.com/app/board/uXjVLbGD4Os=/

Henvisning - Statuser og tilhørende data.svg

SE EKSEMPEL HER: Timeendringsønske

evt også noen skjermbilde / kopiere inn figma?


Teknisk Implementasjon

Teknologi

Dokumentasjon

Kommentar

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

Steg

Sjekk

Scenario

Feilmelding IssueComponent

A

ServiceRequest er tom

Alle

Severity = IssueSeverity.Fatal, Code = IssueType.Invariant,
Diagnostics = "The request does not contain the required ServiceRequest resource"

B

Profil er ikke satt

Alle

Severity = IssueSeverity.Fatal, Code = IssueType.Invariant,
Diagnostics = $"Resource ServiceRequest does not have a profile"

B

Profil er ikke satt

Alle

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "Resource ServiceRequest have { serviceRequest.Meta.Profile.Count() } profile(s), but does not contain the required profile http://helsenorge.no/fhir/StructureDefinition/hn-basis-serviceRequest"

B

ServiceRequest følger ikke profilen

Alle

Severity = IssueSeverity.Error, Code = IssueType.Invalid,
Diagnostics = "Resource ServiceRequest does not conform to profile http://helsenorge.no/fhir/StructureDefinition/hn-basis-serviceRequest"

C

ServiceRequest.status er satt

Alle

Severity = IssueSeverity.Error,       Code = IssueType.Required,
Diagnostics = "Resource does not have a status"

C

ServiceRequest har Extensions

Alle

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "Resource does not have extensions"

C

ServiceRequest har Contained 

Alle

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "Resource does not have contained resources"

C

Finnes en stk. ServiceRequest Identifier av type urn:uuid, og verdien er en gyldig GUID

Alle

Severity = IssueSeverity.Error, Code = IssueType.Invalid,
Diagnostics = "Resource does not have a valid identifier of type urn:uuid" / "Resource have multiple identifiers of type urn:uuid" / "Resource identifiers of type urn:uuid is not a valid GUID"

C

ServiceRequest Requester er satt og det finnes en stk av den i contained-ressursene

Alle

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "Resource does not have a requester" / Resource does not have a contained requester with id {identifier}" / Resource have more than one ({containedRequesterCount}) contained requester with id {identifier}"

Contained ServiceRequest Requester er av type PractitionerRole

 Severity = IssueSeverity.Error, Code = IssueType.Invalid,
 Diagnostics = "Resource's contained requester with id {identifier} is not of type PractitionerRole"

C

ServiceRequest Requester Practitioner finnes i contained og er av type Practitioner

Alle

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "Resource does not have a contained requester practitioner with id {identifier}"

Det finnes en stk, ServiceRequest Requester contained-ressurs av type Practitioner som har verdi i feltet "Name"

Severity = IssueSeverity.Error,  Code = IssueType.Invalid,
Diagnostics = "Resource have more than one ({containedPractitionerCount}) contained requester practitioner with id {identifier}" /  Resource's contained requester with id {identifier} is not of type Practitioner" / "Resource's contained requester Pratitioner with id {identifier} does not  any names"

ServiceRequest Requester Organization finnes i contained og er av type Organization

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "Resource does not have a contained requester organization with id {identifier}")

Det finnes en stk, ServiceRequest Requester contained-ressurs av type Organization som har verdi i feltet "Name"

Severity = IssueSeverity.Error, Code = IssueType.Invalid,
Diagnostics = "Resource have more than one ({containedOrganizations}) contained requester organization with id {identifier}" / "Resource's contained requester with id {identifier} is not of type Organization" / "Resource's contained Organization requester with id {identifier} does not have an organizational name"

C

ServiceRequest extension mottattdato eksisterer

Alle

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-mottattdato-dato is missing" 

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,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-mottatt-dato is present more than once" / The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-mottatt-dato does not have the expected type FhirDateTime / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-mottatt-dato has a value with incorrect date format" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-mottatt-dato has a date value that is out of range" 

ServiceRequest extension mottattdato er i dag eller tilbake i tid

Severity = IssueSeverity.Error, Code = IssueType.Invalid,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-mottatt-dato has a date value in the future that should be today or in the past"

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,
Diagnostics = "The extension status reason is present more than once" / "The extension status reason does not have the expected type CodeableConcept" / "The extension status reason of type CodeableConcept does not have a text value"

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,
Diagnostics = "The status reason '{statusReason}' is not valid for the given status"

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,
Diagnostics = "Resource does not have any performers" / "Resource have more than one performer" / "Performer exist but does not contain a valid resource reference"

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,
Diagnostics = "Resource does not contain the performer organization with reference id '{performerReferenceId}'" / "Resource must contain exactly one performer organization with reference id '{performerReferenceId}' (it has {referenceCount})" / "Contained organization of type 'hosp' does not have a name" / "Contained mottak organization of type 'hosp' does not have an organizational number value" / "Contained mottaker organization of type 'hosp' does not have a valid organizational number value"

C

ServiceRequest skal ha en stk. Performer med gyldig ressursreferanse

Alle

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "Resource does not have any performers" / "Resource have more than one performer" / "Performer exist but does not contain a valid resource reference"

ServiceRequest Performer refererer contained informasjon om både helseforetaket og avdelingen

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "Performer exist but it only contains the 'hosp' reference" / "Contained organization for Performer exist, but it is not of type 'hosp' or 'dept'"

ServiceRequest Performer refererer contained informasjon om avdelingen (navn og gyldig referanse til helseforetak) og helseforetaket (navn og organisasjonsnummer) 

Severity = IssueSeverity.Error, Code = IssueType.Invalid,
Diagnostics = "Contained organization of type 'dept' does not have a name"  / "Contained organization of type 'dept' does not have a refrence to the parent 'hosp' organization" / "Contained organization of type 'dept' has an invalid reference to the parent 'hosp' organization" / "Resource does not contain the performer organization with reference id '{parentReferenceId}'" /  "Resource must contain exactly one performer organization with reference id '{parentReferenceId}' (it has {referenceCount})" / "Contained organization of type 'hosp' does not have a name" / "Contained mottak organization of type 'hosp' does not have an organizational number value" / "Contained mottaker organization of type 'hosp' does not have a valid organizational number value"

C

ServiceRequest extension ansinitetsdato eksisterer

Alle

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-ansiennitets-dato is missing" 

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,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-ansiennitets-dato is present more than once" / The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-ansiennitets-dato does not have the expected type FhirDateTime / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-ansiennitets-dato has a value with incorrect date format" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-ansiennitets-dato has a date value that is out of range" 

ServiceRequest extension ansinitetsdato er i dag eller tilbake i tid

Severity = IssueSeverity.Error, Code = IssueType.Invalid,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-ansiennitets-dato has a date value in the future that should be today or in the past"

C

ServiceRequest extension fristforvurdering eksisterer

Alle

Severity = IssueSeverity.Error, Code = IssueType.Invalid,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-frist-for-vurdering is missing"

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,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-frist-for-vurdering is present more than once" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-frist-for-vurdering does not have the expected type FhirDateTime" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-frist-for-vurdering has a value with incorrect date format" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-frist-for-vurdering has a date value that is out of range"

C

Når ServiceRequest status er draft så skal statusreason være tom/ikke definert

Status er draft

Severity = IssueSeverity.Error, Code = IssueType.Invalid,
Diagnostics = "The status reason '{statusReason}' is not valid for the given status"

C

Når ServiceRequest status er onhold så skal statusreason være tom/ikke definert

Status er onhold

Severity = IssueSeverity.Error, Code = IssueType.Invalid,
Diagnostics = "The status reason '{statusReason}' is not valid for the given status"

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,
Diagnostics = "The status reason '{statusReason}' is not valid for the given status"

Når ServiceRequest status er active så skal ServiceRequest extension vurdertdato eksistere

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato is missing"

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,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato is present more than once" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato does not have the expected type FhirDateTime" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato has a value with incorrect date format" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato has a date value that is out of range"

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,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-frist-for-helsehjelp is present more than once" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-frist-for-helsehjelp does not have the expected type FhirDateTime" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-frist-for-helsehjelp has a value with incorrect date format" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-frist-for-helsehjelp has a date value that is out of range" / The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-frist-for-helsehjelp has a date value in the future that should be today or in the past"

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,
Diagnostics = "The status reason '{statusReason}' is not valid for the given status"

Når ServiceRequest status er revoked så skal ServiceRequest extension vurdertdato eksistere

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato is missing"

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,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato is present more than once" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato does not have the expected type FhirDateTime" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato has a value with incorrect date format" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato has a date value that is out of range"

Når ServiceRequest status er revoked så skal ServiceRequest.Occurence eksistere

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "Occurence is empty"

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,
Diagnostics = "Occurence is not of type Period"

Når ServiceRequest status er revoked så skal ServiceRequest.Occurence ha en sluttdato Period.End

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "Occurence Period does not have a end date"

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,
Diagnostics = "Occurence is not of type Period"

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,
Diagnostics = "The status reason '{statusReason}' is not valid for the given status"

Når ServiceRequest status er completed og statusreason er tom/ikke definert, så skal extension vurderdato eksistere

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato is missing"

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,
Diagnostics = "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato is present more than once" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato does not have the expected type FhirDateTime" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato has a value with incorrect date format" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato has a date value that is out of range" / "The extension with URL http://helsenorge.no/fhir/StructureDefinition/no-vurdert-dato has a date value in the future that should be today or in the past"

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,
Diagnostics = "Occurence is not of type Period"

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,
Diagnostics = "Occurence Period does not have a end date"

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,
Diagnostics = "Occurence is not of type Period"

C

ServiceRequest skal ha en av de godkjente statusene over

Status er ukjent

severity = IssueSeverity.Error, Code = IssueType.Invalid,
Diagnostics = "Resource has invalid status value {status}"

D

ServiceRequest Subject inneholder en gyldig personidentifikator

Ikke riktig identifikator for innbygger

Severity = IssueSeverity.Error, Code = IssueType.Required,
Diagnostics = “Subject is null or of invalid type” / "Subject ResourceReference Identifier system and/or value is null"

ServiceRequest Subject inneholder en personidentifikator med riktig identifikatortype

Severity = IssueSeverity.Error, Code = IssueType.Invalid,
Diagnostics = “Subject ResourceReference Identifier system {subject.Identifier.System} is 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
Diagnostics = “The patient is not found (active but do not have access to henvisninger)” / “The patient is not found”