Publisert - 27.08.2026

Sende dokument-bundle (IHE ITI-65)


1 Bakgrunn

Gjeldende implementasjon er basert på IHE MHD v4.2.2 (prøveimplementasjon av IHE MHD) som er basert på FHIR R4. Dette er en innledende implementasjon av en API-tjeneste som muliggjør registrering av allerede eksisterende dokumenter ved å opprette nye poster i et felles dokumentregister, og eventuelt lagre binærinnhold i NHNs dokumentlager.

Denne tjenesten er en RESTful-implementasjon av IHE ITI-41-meldingen «Provide and Register Document Set-b» (https://profiles.ihe.net/ITI/TF/Volume2/ITI-41.html)

1.1 Bruksområder

Denne tjenesten kan brukes når en publiserer (f.eks. EPJ) ønsker å laste opp et eksisterende medisinsk dokument (XML, PDF, FHIR-dokument, CDA-dokument, PNG-bilde osv.) til nasjonalt lager. EPJ oppretter en FHIR Bundle på sin side og sender denne informasjonen til det nasjonale endepunktet.

Basert på klassifiseringen av opplastet metadata vil dokumentet/dokumentene umiddelbart være tilgjengelige for annet helsepersonell og/eller innbygger i de respektive kanalene for målgruppen.

1.2. Tjenestetilgjengelighet

Denne tjenesten er for øyeblikket kun tilgjengelig i Norsk helsenetts TEST-miljø og kan testes som proof-of-concept. Produksjonsmiljø vil bli etablert basert på behov.

2 API-omfang

Det er en forutsetning at klienten MÅ bruke nhn:phr-repo/mhd/create-omfanget fra Norsk Helsenett dokumentlager-API-et i Selvbetjening for å kunne samhandle med ITI-65-tjenesten. Dette omfanget kan legges til en eksisterende HelseID-klientkonfigurasjon via HelseID Selvbetjenning
Selvbetjening TEST-miljø

3 Endepunkt

Provide Document Bundle - profiles.ihe.net ↗

Egenskap Beskrivelse
HTTP-handling POST
Autorisasjon DPoP JWT
Endepunkt-URL R4/fhir/Bundle
Content-Type application/fhir+json
Forespørselskropp En FHIR Bundle-ressurs (ITI-65)
Svarkropp FHIR OperationOutcome
HTTP 200 Bunten er gyldig — ingen feil eller kritiske problemer funnet
HTTP 400 Bunten har én eller flere valideringsfeil

Eksempel

POST <baseurl>/R4/fhir/Bundle
Authorization: .....
Content-Type: application/fhir+json

<FHIR Bundle body — ITI-65>

3.1 Størrelsesgrenser for forespørsler

Miljø Maks størrelse per dokument Maks størrelse per forespørsel Kommentar
Test 60 MB 100 MB Send flere forespørsler for større dokumenter
QA 60 MB 100 MB Send flere forespørsler for større dokumenter
Produksjon - - Ikke i produksjon ennå

4 Meldinger

Meldinger er basert på bruk av profilen for omfattende metadata (https://profiles.ihe.net/ITI/MHD/StructureDefinition/IHE.MHD.Comprehensive.ProvideBundle") som definert av IHE (Integrating the Healthcare Enterprise) og tilpasset i henhold til dokumentet «Implementeringsguide for norsk bruk av XDS, XCA og XUA» (lenke til dokument) når det gjelder bruk av avtalte verdisett i norsk dokumentutveksling.

Siden det er en XDS-infrastruktur involvert i våre backend-tjenester, støtter vi for øyeblikket kun «XDS-on-FHIR», noe som betyr at alle involverte ressurser må være inneholdt i den innkommende forespørselen.

Vår implementasjon støtter for øyeblikket kun registrering av nye dokumenter i vårt XDS-lager. Andre typer transaksjoner, som erstatning eller utfasing av eksisterende dokumenter, vil bli implementert i fremtiden.

4.1 Meldingsforespørsel

Forespørselsmeldingen implementerer FHIR R4 Bundle med mulighet for bruk av inneholdte ressurser som FHIR R4 Patient, Practitioner, PractitionerRole og Organization. NHNs implementasjon bruker ikke andre FHIR-utvidelser enn de som er spesifisert i Comprehensive-Bundle-profilen.

4.1.1 Forklaring av Bundle-ressurser

Bundle-ressursen bør som minimum inneholde én List-ressurs (som gjenspeiler «XDS SubmissionSet») og én DocumentReference-ressurs (som gjenspeiler «XDS DocumentEntry»). Dersom det skal være binærinnhold i opplastingen, bør det også finnes en oppføring for Binary-ressursen.

* → elementstøtte implementert i gjeldende versjon
- → ikke implementert/testet ennå

/- Ressurselement FHIR-ressurs Kardinalitet Beskrivelse
Bundle Bundle [1..1] FHIR-ressurs for overføring
     meta
          profile [1..] brukt profil for Bundle (comprehensive)
type [1..1] Angir hensikten med denne bunten – hvordan den er ment å brukes.
Verdien MÅ være "transaction"
timestamp [0..1] Dato/klokkeslett da bunten ble satt sammen
entry [1..] Generisk tilnærming for ethvert Bundle.entry
     fullUrl [0..1] Den absolutte URL-en for ressursen
     resource [1..1] En liste er en kuratert samling av ressurser
     request [1..1] Tilleggsinformasjon om hvordan denne oppføringen skal behandles som del av en transaksjon eller batch
          method [1..1] I en transaksjon eller batch er dette HTTP-handlingen som skal utføres for denne oppføringen
          url [1..1] URL-en for denne oppføringen, relativ til roten
entry (SubmissionSet) List [1..1] SubmissionSet definerer hvem som sendte inn, hvorfor de sendte inn, når de sendte inn, hva som er i det, og hvor det er bestemt
entry (DocumentRefs) DocumentReference [0..] Alle nye DocumentReference-ressurser som er del av SubmissionSet
- entry (UpdateDocumentRefs) DocumentReference [0..] Alle oppdaterte DocumentReference-ressurser som er del av SubmissionSet dersom en ny DocumentReference erstatter denne DocumentReference
entry (Documents) Binary [0..] Dokumenter som det refereres til av DocumentReference-ressursene
- entry (FhirDocuments) Binary [0..] FHIR-FhirDocuments som det refereres til av DocumentReference-ressursene
- entry (Folders) List [0..] Mapper som opprettes eller oppdateres
- entry (Patient) Patient [0..*] Pasient

4.1.1.1 List-ressurs som innsendingssett (Submission Set)

Hver registrering av dokumenter har en felles konvolutt (FHIR R4 List) med metadata om hvem og hva som registreres (innsending). Denne innsendingsmetadataen MÅ oppgis ved registrering når man bruker «ITI-65 IHE Provide Document Bundle».

* → elementstøtte implementert i gjeldende versjon
- → ikke implementert/testet ennå

/- Ressurselement XDS-navn Kardinalitet Beskrivelse
List [1..1] FHIR-ressurs i kontekst av XDS SubmissionSet
     meta
          profile SubmissionSet.limitedMetadata [1..] brukt profil for innsendingssett (comprehensive)
extension (designationType) SubmissionSet.contentType [1..1] Uttrykker innholdstype for innsendingssettet eller kodelisten for en mappe
Forventet verdi: kode fra urn:oid:2.16.578.1.12.4.1.1.9602
extension (sourceId) SubmissionSet.sourceId [1..1] OID for innsendende organisasjon
- extension (intendedRecipient) SubmissionSet.intendedRecipient [1..1] Inneholder identiteten til organisasjonen eller personen innsendingssettet er ment for
identifier (official) SubmissionSet.entryUUID [1..1] EntryUUID – en identifikator som identifiserer en enhet unikt og entydig
identifier (usual) SubmissionSet.uniqueId [1..1] uniqueId OID – en identifikator
status SubmissionSet.availabilityStatus [1..1] Godkjenning eller utfasing
Forventet verdi: "current"
mode [1..1] Hvordan denne listen ble utarbeidet
Forventet verdi: "working"
title SubmissionSet.title [0..1] Tekststreng for tittel på denne innsendingen
code [1..1] Denne koden definerer hensikten med listen – hvorfor den ble opprettet
Forventet verdi: "submissionset" som identifikator for List-type
subject SubmissionSet.patientId [1..1] pasientidentifikator for innsending
date SubmissionSet.submissionTime [1..1] Datoen da listen ble utarbeidet
source SubmissionSet.author [0..1] Hvem som sendte inn (person)
- extension (authorOrg) SubmissionSet.author [0..1] Når forfatteren av SubmissionSet er en organisasjon, skal denne utvidelsen brukes
note SubmissionSet.comments [0..1] kommentarer til innsendingssettet
entry
     item (DocumentReference) [1..] Liste over dokumentreferanser i denne innsendingen
     item (List) [0..] Liste over «Folder List» i denne innsendingen

TODO: Kan HER-id presentert i OID-form brukes som SourceId? f.eks.: urn:oid:2.16.578.1.12.4.1.2.112374 for Norsk helsenett [TEST]

OBLIGATORISKE krav for registrering av List-ressurs:

  • Ressurs-id MÅ være til stede for referering på tvers av bunten (List.id)
  • MÅ bruke korrekt profil (List.Meta.Profile = "https://profiles.ihe.net/ITI/MHD/StructureDefinition/IHE.MHD.Comprehensive.SubmissionSet")
  • Dersom innsendingsforfatter er definert og referert (List.source.reference), BØR det finnes et inneholdt objekt for denne forfatteren i bundle-oppføringen [kan avvike fra dokumentforfatter]
  • Det er 2 obligatoriske utvidelser:
  • Identifikatorer MÅ registreres som anbefalt i IHE MHD SubmissionSet-spesifikasjonen

4.1.1.2 List-ressurs som mappe (Folder)

[Støttes ikke ennå]

4.1.1.3 DocumentReference-ressurs

Hver binærressurs som lastes opp i «provide document bundle» SKAL ha sin egen referansemetadatabeskrivelse (FHIR R4 DocumentReference). DocumentReference kan beskrive en intern ressurs (Binary) eller inneholde en lenke til ekstern lagring (ingen Binary-ressurs i Bundle-oppføring).

* → elementstøtte implementert i gjeldende versjon
- → ikke implementert/testet ennå

/- Ressurselement XDS-navn Kardinalitet Beskrivelse
DocumentReference [0..] FHIR-ressurs i kontekst av XDS DocumentEntry
     meta [0..1]
          profile DocumentEntry.limitedMetadata [0..] brukt profil for innsendingssett (comprehensive)
masterIdentifier DocumentEntry.uniqueId [1..1] uniqueId OID
identifier (usual) DocumentEntry.entryUUID [1..1] EntryUUID
status DocumentEntry.availabilityStatus [1..1] Status for denne dokumentreferansen
Verdier: [current | superseded | entered-in-error]
type DocumentEntry.typeCode [1..1] Angir den spesielle typen dokument det refereres til
Forventet verdi: kode fra urn:oid:2.16.578.1.12.4.1.1.9602, nivå 2
category DocumentEntry.classCode [1..1] En kategorisering for typen dokument det refereres til
Forventet verdi: kode fra urn:oid:2.16.578.1.12.4.1.1.9602, nivå 1
subject DocumentEntry.patientId [1..1] pasientidentifikator for dokumentreferansen
author DocumentEntry.author [0..] Identifiserer hvem som er ansvarlig for å legge til informasjonen i dokumentet
authenticator DocumentEntry.legalAuthenticator [0..1] Hvilken person eller organisasjon autentiserer at dette dokumentet er gyldig
- custodian ikke kartlagt Identifiserer organisasjonen eller gruppen som er ansvarlig for løpende vedlikehold og tilgang til dokumentet
relatesTo DocumentEntry-assosiasjoner [0..] Plassholder for relasjoner dette dokumentet har med andre dokumentreferanser som allerede eksisterer
-      code DocumentEntry-assosiasjoner.type [0..1] Typen relasjon dette dokumentet har med et annet dokument
Verdier: [replaces | transforms | signs | appends]
-      target DocumentEntry-assosiasjoner.reference [1..1] Måldokumentet for denne relasjonen
description DocumentEntry.coments [0..1] Valgfri beskrivelse for dokumentreferansen
securityLabel DocumentEntry.confidentialityCode [1..] Liste over konfidensialitetsinnstillinger for relatert dokument
content [1..1] Plassholder for referert vedlegg
     attachment [1..1] Plassholder for vedleggets beskrivelse
          contentType DocumentEntry.mimeType [1..1] Identifiserer typen data i vedlegget og gjør det mulig å velge en metode for å tolke eller vise dataene
          language DocumentEntry.language [1..1] Det menneskelige språket i innholdet i det refererte dokumentet
          url DocumentEntry.repositoryUniqueId
DocumentEntry.URI
[1..1] En plassering der dataene kan nås – referanse til dokumentets binærinnhold i lageret eller et annet sted der data kan finnes
          size DocumentEntry.size [0..1] Størrelse på referert dokument før base64-koding; for dokumenter opprettet på direkten = 0 byte
          hash DocumentEntry.hash [0..1] Den beregnede hash-verdien for dataene ved hjelp av SHA-1
          title DocumentEntry.title [0..1] Navn på relatert dokument
          creation DocumentEntry.creationTime [1..1] Dato da det refererte dokumentet ble opprettet første gang
     format DocumentEntry.formatCode [1..1] En identifikator for dokumentets koding, struktur og mal som dokumentet samsvarer med, utover grunnformatet angitt i mimeType.
context [1..1] Plassholder for klinisk kontekst for det refererte dokumentet som dokumentet ble utarbeidet i
-      encounter DocumentEntry.referenceIdList [0..] Beskriver det kliniske møtet eller typen omsorg som dokumentinnholdet er knyttet til
     event DocumentEntry.eventCodeList [0..] liste over koder som representerer de viktigste kliniske handlingene, knyttet til konteksten for det refererte dokumentet under dokumenteringen
     period [0..1] Plassholder for perioden for dokumentkonteksten
          start DocumentEntry.serviceStartTime [0..1] Starttidspunkt for konteksten til referert dokument (f.eks. pasientbesøk hos fastlege)
          end DocumentEntry.serviceStopTime [0..1] Sluttidspunkt for konteksten til referert dokument
     facilityType DocumentEntry.healthcareFacilityType [1..1] Typen helseinstitusjon der pasienten ble sett
Forventet verdi: kode fra urn:oid:2.16.578.1.12.4.1.1.9602
     practiceSetting DocumentEntry.practiceSettingCode [1..1] Denne egenskapen kan formidle spesifikke opplysninger om praksisomgivelsene der innholdet ble opprettet, og gjenspeiler ofte den kliniske spesialiteten
Forventet verdi: kode fra ett av følgende:
- urn:oid:2.16.578.1.12.4.1.1.7750
- urn:oid:2.16.578.1.12.4.1.1.8254
- urn:oid:2.16.578.1.12.4.1.1.8451
- urn:oid:2.16.578.1.12.4.1.1.8653
- urn:oid:2.16.578.1.12.4.1.1.8655
- urn:oid:2.16.578.1.12.4.1.1.8662
- urn:oid:2.16.578.1.12.4.1.1.8663
- urn:oid:2.16.578.1.12.4.1.1.8664
- urn:oid:2.16.578.1.12.4.1.1.8666
- urn:oid:2.16.578.1.12.4.1.1.8668
samme som spesifisert i tillitsrammeverket
     sourcePatientInfo [1..1] Plassholder for pasientkontekst slik den var kjent da dokumentet ble publisert
          reference DocumentEntry.sourcePatientInfo [0..1] Pasientens opplysninger som navn, fødselsdato osv.
          identifier DocumentEntry.sourcePatientId [0..1] Pasientens identifikator
-      related DocumentEntry.referenceIdList [0..*] Relaterte identifikatorer eller ressurser knyttet til DocumentReference-ressursene

OBLIGATORISKE krav for registrering av DocumentReference-ressurs:

  • Ressurs-id MÅ være til stede for referering på tvers av bunten (DocumentReference.resource.id)
  • MÅ bruke korrekt profil (DocumentReference.Meta.Profile = "https://profiles.ihe.net/ITI/MHD/StructureDefinition/IHE.MHD.Comprehensive.DocumentReference")
  • Patient-ressurs MÅ være inneholdt
  • Alle dokumentforfattere SKAL være inneholdt og referert i DocumentReference
  • Identifikatorer MÅ registreres som anbefalt i IHE MHD DocumentReference-spesifikasjonen
  • Det SKAL oppgis status for registrert dokument (f.eks. «Current»)
  • Dokumentklassifisering SKAL registreres som anbefalt i IHE MHD DocumentReference-spesifikasjonen
  • Hver referanse SKAL ha minst 1 securityLabel
  • Hvert DocumentReference.content[x].attachment SKAL inneholde homeCommunityId-utvidelsen.

4.1.1.3.1 Ruting: homeCommunityIdDocumentReference.content.attachment

NHN bruker en homeCommunityId-utvidelse på DocumentReference.content.attachment for å rute hvert dokument til korrekt register/lager.

Krav

  • Hvert DocumentReference.content[x].attachment SKAL inneholde homeCommunityId-utvidelsen.
  • Tjenesten godtar for øyeblikket utvidelsen under følgende URL(er):
    • Kanonisk (IHE MHD): https://profiles.ihe.net/ITI/MHD/StructureDefinition/ihe-homeCommunityId
    • Eldre (støttes for bakoverkompatibilitet): urn:ihe:iti:xds:2013:homeCommunityId (dersom aktuelt i din integrasjon)

Kardinalitet

  • DocumentReference.content: [1..1] (som beskrevet ovenfor)
  • DocumentReference.content.attachment.extension[homeCommunityId]: [1..1]

Verdi

  • Utvidingens verdi forventes å være en streng/identifikator som representerer målsamfunnet/lageret.

Valideringsadferd

  • Hvis homeCommunityId mangler eller er tom, returnerer API-et HTTP 400 med en OperationOutcome som angir: Missing DocumentReference.content.attachment.extension[homeCommunityId].

Eksempel

{
  "content": [
    {
      "attachment": {
        "contentType": "image/png",
        "url": "urn:uuid:b124f78c-783b-446d-a9e5-a9b761e012f3",
        "extension": [
          {
            "url": "https://profiles.ihe.net/ITI/MHD/StructureDefinition/ihe-homeCommunityId",
            "valueString": "urn:oid:1.2.840.4711.815.1"
          }
        ]
      }
    }
  ]
}

4.1.1.4 Binary-ressurs

Hver binærressurs som lastes opp i «provide document bundle» SKAL leveres i sin egen ressurs (FHIR R4 Binary).

OBLIGATORISKE krav for registrering av Binary-ressurs:

  • Ressurs-id MÅ være til stede for referering på tvers av bunten (Binary.resource.id)
  • Det SKAL registreres contentType for binærinnholdet (f.eks. «image/png»)
  • Binærinnhold SKAL registreres som base64-innhold.

4.1.2 Inneholdte ressurser i Bundle entry-forespørsel

Følgende spesifikasjon gjenspeiler inneholding av ressurser i den respektive Bundle-oppføringen.

4.1.2.1 Patient-ressurs

FHIR R4 Patient forventer ikke bruk av noen bestemt profil, og er basert på bruk av standard generisk FHIR-profil for pasient.

Gjeldende implementasjon støtter ikke norske utvidelser, som (norsk) «mellomnavn» i Patient.Name, FHIR R4 HumanName (http://hl7.no/fhir/StructureDefinition/no-basis-middlename). Denne utvidelsen vil bli utelatt.

Anbefalinger definert i no-basis-Patient-profilen (ref. https://simplifier.net/hl7norwayno-basis/nobasispatient) SKAL respekteres (bruk av identifikatorer).

OBLIGATORISKE krav for bruk av inneholdt Patient-ressurs:

  • Det SKAL finnes unik ID for referering innenfor bundle-oppføringen (Patient.id)
  • MÅ bruke norsk identifikator (typer: FNR, D-nummer, FHN)
  • Det SKAL registreres 1 og kun 1 identifikator per Patient-ressurs (Patient.identifier)
  • Det SKAL registreres kun 1 HumanName i Patient.Name, som representerer pasientens faktiske navn på nåværende tidspunkt
  • Mellomnavn registreres i Patient.Name.Given etter pasientens fornavn [rekkefølge på fornavn er viktig i Norge]
  • Det SKAL være minst 1 etternavn og minst 1 fornavn registrert i Patient.Name-elementet
  • Alle andre ressurselementer er valgfrie og vil bli forkastet etter behandling

4.1.2.2 Practitioner-ressurs

FHIR R4 Practitioner forventer ikke noen bestemt profil, og er basert på bruk av standard generisk FHIR-profil for helsepersonell.

Gjeldende implementasjon støtter ikke norske utvidelser, som (norsk) «mellomnavn» i Practitioner.Name, FHIR R4 HumanName (http://hl7.no/fhir/StructureDefinition/no-basis-middlename).

Anbefalinger definert i no-basis-Practitioner (ref. https://simplifier.net/hl7norwayno-basis/nobasispractitioner) SKAL respekteres (bruk av identifikatorer og registrering av kvalifikasjoner). Denne utvidelsen vil bli utelatt.

OBLIGATORISKE krav for bruk av inneholdt Practitioner-ressurs:

  • Det SKAL finnes unik ID for referering innenfor bundle-oppføringen (Practitioner.id)
  • Det SKAL registreres kun 1 HumanName i Practitioner.Name, som representerer helsepersonellets faktiske navn på nåværende tidspunkt
  • Mellomnavn registreres i Practitioner.Name.Given etter personens fornavn [rekkefølge på fornavn er viktig i Norge]
  • Det SKAL alltid være minst 1 etternavn og 1 fornavn registrert i Practitioner.Name-elementet
  • Alle andre ressurselementer er valgfrie og vil bli forkastet etter behandling

4.1.2.3 PractitionerRole-ressurs

FHIR R4 PractitionerRole forventer ikke noen bestemt profil, og er basert på bruk av standard generisk profil.

Anbefalinger definert i no-basis-PractitionerRole-profilen (ref. https://simplifier.net/hl7norwayno-basis/nobasispractitionerrole) SKAL respekteres.

OBLIGATORISKE krav for bruk av inneholdt PractitionerRole-ressurs:

  • Det SKAL finnes unik ID for referering innenfor bundle-oppføringen (PractitionerRole.id)
  • Hvert helsepersonell SKAL ha en separat PractitionerRole-ressurs tildelt
  • Begge referanser (organisasjon og helsepersonell) SKAL være registrert
  • Helsepersonellets rolle SKAL registreres som minimum 1 instans av PractitionerRole.Code.Coding [støtte for strukturert registrering av denne informasjonen er ikke på plass ennå]
  • Helsepersonellets spesialitet forventes som minimum 1 instans av PractitionerRole.Specialty [støttes ikke ennå]
  • Helsepersonellets telecom forventes som minimum 1 instans av PractitionerRole.Telecom [støttes ikke ennå]
  • Alle andre ressurselementer er valgfrie og vil bli forkastet etter behandling

4.1.2.4 Organization-ressurs

FHIR R4 Organization forventer ikke noen bestemt profil, og er basert på generisk standardprofil. Løsningen støtter ikke norske utvidelser, som norske adresseutvidelser i FHIR R4 Address.

Anbefalinger definert i no-basis-Organization-profilen (ref. https://simplifier.net/hl7norwayno-basis/nobasisorganization) SKAL respekteres (bruk av identifikatorer).

OBLIGATORISKE krav for bruk av inneholdt Organization-ressurs:

  • Det SKAL finnes unik ID for referering innenfor bundle-oppføringen (Organization.id)
  • Identifikatorer som identifiserer organisasjonen forventes som norske identifikatorer [ikke implementert ennå]
  • Det SKAL registreres minimum 1 og kun 1 navn i Organization.Name
Organization.Name [1..1]
  • Alle andre ressurselementer er valgfrie og vil bli forkastet etter behandling

4.1.3 Uttrykking av helsepersonellets organisasjonstilknytning

I XDS brukes følgende informasjonsmodell

<Practitioner>
    <Name>...</Name>
    <Role>...</Role>
    <Organization>...</Organization>
    <Specialty>...</Specialty>
    <Telecom>...</Telecom>
</Practitioner>

IHE MHD-profilen er noe uklar på dette emnet, noe som kan føre til flere implementasjoner.

I vår tjeneste er det følgende forventning:
Hvis det er en relasjon mellom Practitioner og Organization, SKAL det finnes en PractitionerRole-ressurs som kobler disse to ressursene.

PractitionerRole.Practitioner = reference(Practitioner|no-basis-Practitioner)
PractitionerRole.Organization = reference(Organization|no-basis-Organization)

Dersom det kun er 1 Practitioner og Organization inneholdt i DocumentRefs eller List, kan PractitionerRole utelates. Ellers vil ikke ressursen bli behandlet ettersom det er umulig å koble helsepersonell og organisasjon korrekt.

NB!: Elementer som «Specialty» og «Telecom» støttes ikke ennå, og informasjon som oppgis vil ikke bli behandlet/registrert.

4.2 Meldingssvar

Ved suksess følger dette endepunktet FHIR-transaksjonssemantikk:

  • HTTP-svaret er 200 OK
  • Svarkroppen er en Bundle av typen transaction-response
  • Det returneres én Bundle.entry.response for hver oppføring i forespørselen (samme rekkefølge)
  • For hver ressurs som ble opprettet, er Bundle.entry.response.status 201 Created og location identifiserer den opprettede ressursen

Ved feil (400, 401, 500) er svarkroppen en OperationOutcome.

HTTP-status Beskrivelse
HTTP-200 OK Transaksjonen ble behandlet. Returnerer en transaction-response-bunt; hver opprettet oppføring har 201 Created i entry.response.status.
HTTP-400 Bad Request Noe ble ikke registrert korrekt
HTTP-401 Unauthorized Det er noe galt med JWT-tokenet
HTTP-500 Internal server error Noe teknisk gikk galt [tokenbytte, intern XDS-kommunikasjon osv.]

4.2.1 Eksempel: transaction-response-bunt

Eksempelsvar der 3 dokumentreferanser (DocumentReference) ble opprettet:

{
  "resourceType": "Bundle",
  "type": "transaction-response",
  "entry": [
    {
      "response": {
        "status": "201 Created",
        "location": "DocumentReference/4605182e-a9df-47bc-b5e5-0ae33a465bfe"
      }
    },
    {
      "response": {
        "status": "201 Created",
        "location": "DocumentReference/44ca7463-8b05-45cf-8d08-ea8e429c3773"
      }
    },
    {
      "response": {
        "status": "201 Created",
        "location": "DocumentReference/b124f78c-783b-446d-a9e5-a9b761e012f3"
      }
    }
  ]
}

5 Dokumentlivssyklus og assosiasjoner (DocumentReference.relatesTo)

Elementet DocumentReference.relatesTo brukes til å uttrykke relasjoner mellom dokumentet som sendes inn (kilde-DocumentReference) og et allerede registrert dokument (mål-DocumentReference). I XDS-termer tilsvarer dette DocumentEntry-assosiasjoner.

DocumentReference.relatesTo brukes primært ved publisering av en ny versjon av et dokument, levering av en transformert representasjon, tilføying av signaturer, eller tillegg av ytterligere innhold.

5.1 Struktur

DocumentReference.relatesTo er en rekke med assosiasjons-objekter:

  • relatesTo[i].code – assosiasjonstypen
  • relatesTo[i].target – en referanse til måldokumentet som allerede eksisterer

FHIR R4-elementstruktur:

DocumentReference.relatesTo[0..*]
  .code   [0..1]  (replaces | transforms | signs | appends)
  .target [1..1]  (Reference(DocumentReference))

5.2 Assosiasjonstyper

Følgende assosiasjonstyper er definert av IHE MHD/XDS-kartleggingen og brukes vanligvis:

5.2.1 replaces

Brukes når det innsendte dokumentet er en ny versjon som erstatter et tidligere dokument.

  • Den innsendte DocumentReference blir det gjeldende dokumentet
  • target er dokumentet som erstattes

Typiske brukstilfeller:

  • Korrigert rapport
  • Oppdatert epikrise

5.2.2 transforms

Brukes når det innsendte dokumentet er en transformasjon/avledning av et eksisterende dokument.

  • target er kildedokumentet som ble transformert

Typiske brukstilfeller:

  • CDA transformert til PDF
  • Skannet bilde transformert til en konsolidert PDF

5.2.3 signs

Brukes når det innsendte dokumentet er et signaturdokument for et eksisterende dokument.

  • target er dokumentet som signeres

Typiske brukstilfeller:

  • Separat signaturartefakt som refererer til det kliniske dokumentet

5.2.4 appends

Brukes når det innsendte dokumentet legger til ytterligere innhold til et eksisterende dokument.

  • target er dokumentet det legges til innhold i

Typiske brukstilfeller:

  • Tillegg
  • Supplementsside(r)

5.3 Referering til måldokumentet

target-referansen SKAL peke til den eksisterende DocumentReference-instansen som er assosiert.

Merknader:

  • Måldokumentet er vanligvis et allerede registrert dokument i lageret/registeret.
  • Når ITI-65 (Provide Document Bundle) brukes, er det assosierte måldokumentet normalt ikke inkludert som en fullstendig ressurs i den innkommende Bundle. I stedet refereres det ved hjelp av kjent id/identifikator.

Eksempel (erstatter et eksisterende dokument):

{
  "resourceType": "DocumentReference",
  "id": "new-document-id",
  "relatesTo": [
    {
      "code": "replaces",
      "target": {
        "reference": "DocumentReference/existing-document-id"
      }
    }
  ]
}

5.4 Flere assosiasjoner

relatesTo KAN inneholde flere oppføringer ved behov (f.eks. et dokument som både erstatter ett dokument og legger til innhold i et annet), men implementatorer bør unngå tvetydige relasjoner.

5.5 Gjeldende implementasjonsstøtte

På tidspunktet for skriving er livssyklustransaksjoner som erstatning/utfasing beskrevet som fremtidig funksjonalitet (se avsnitt 4). Dersom relatesTo oppgis, BØR klienter sikre at assosiasjonen er semantisk korrekt og at den refererte target eksisterer og kan løses opp i backendregisteret.

ITI-65 $validate-operasjon

$validate-operasjonen lar en avsender validere en FHIR Bundle — slik den ville blitt sendt inn via ITI-65 Provide Document Bundle — uten å lagre noe. Dette er nyttig for testing og integrasjonsformål, og sikrer at en bunt vil bli godtatt før den sendes inn for alvor.

Provide Document Bundle - profiles.ihe.net ↗

Egenskap Beskrivelse
HTTP-handling POST
Autorisasjon DPoP JWT
Endepunkt-URL R4/fhir/Bundle/$validate
Content-Type application/fhir+json
Forespørselskropp En FHIR Bundle-ressurs (samme format som ITI-65)
Svarkropp FHIR OperationOutcome
HTTP 200 Bunten er gyldig — ingen feil eller kritiske problemer funnet
HTTP 400 Bunten har én eller flere valideringsfeil

Hva som valideres

$validate-endepunktet kjører to lag med validering:

  1. Forretningsregler / innholdsvalidering — de samme kontrollene som brukes under en faktisk ITI-65-innsending:

    • Pasientidentifikatorer må bruke et tillatt utstedende autoritetssystem
    • Organisasjonsidentifikatorer må bruke en kjent OID/system
    • Helsepersonellidentifikatorer må bruke et kjent system
    • CodeableConcepts kontrolleres mot konfigurert terminologi:
      • facilityType, practiceSetting, securityLabel, type, category, format, attachment
        • Ukjente systemer gir en advarsel
        • Kjente systemer med ukjent verdi gir en feil
  2. IHE MHD-profilsamsvar — via Firely SDK-validatoren mot ihe.iti.mhd@4.2.0-pakken. Dette laget kjøres i tillegg til forretningsregellaget.

Merk: Bunten lagres aldri når $validate kalles. Internt kjøres den samme provide-bundle-prosessen med et validateOnly: true-flagg.

Svarformat

Svaret er alltid en FHIR OperationOutcome. Hvert problem har en severity og en diagnostics-melding som beskriver hva som feilet og hvor.

Alvorlighetsgrad Betydning
fatal Inndata kunne ikke tolkes som en gyldig FHIR Bundle
error Et obligatorisk felt er ugyldig eller bruker en ukjent verdi i et kjent kodesystem
warning Et felt bruker en ukjent system-OID/URL som ikke er konfigurert lokalt
information Valideringen bestod med 0 feil eller advarsler

Eksempel

POST <baseurl>/R4/fhir/Bundle/$validate
Content-Type: application/fhir+json

<FHIR Bundle body — same format as ITI-65>

Vellykket svar (HTTP 200):

{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "information",
      "code": "success",
      "diagnostics": "Bundle validated with 0 errors or warnings"
    }
  ]
}

Feilsvar (HTTP 400):

{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "code-invalid",
      "diagnostics": "Unknown Value for facilityType (Value=86.999, System=2.16.578.1.12.4.1.1.1303)",
      "location": ["Bundle.entry[0].resource.context.facilityType"]
    },
    {
      "severity": "warning",
      "code": "code-invalid",
      "diagnostics": "Unknown System and Value for Organization (Value=UNKNOWN-ORG, System=urn:oid:9.9.9.9.9)",
      "location": ["Bundle.entry[0].resource.contained[1]"]
    }
  ]
}

Forhold til ITI-65 (Provide Document Bundle)

Ved innsending via det vanlige ITI-65-endepunktet (POST R4/fhir/Bundle) kjøres den samme innholdsvalideringen automatisk før lagring. Dersom det finnes error- eller fatal-problemer, avvises forespørselen og en OperationOutcome returneres — ingenting lagres.

Merk: Advarsler blokkerer ikke innsending.

Bruk $validate under utvikling og integrasjonstesting for å iterere på buntinnholdet uten risiko for å forurense registeret.

7 Eksempler

7.1 Eksempel på Bundle-forespørsel

{
  "resourceType" : "Bundle",
  "id" : "95b6dcdc-b738-4029-a94d-8da44af8cdf3",
  "meta" : {
    "profile" : [ "https://profiles.ihe.net/ITI/MHD/StructureDefinition/IHE.MHD.Comprehensive.ProvideBundle" ],
    "security" : [ {
      "system" : "http://terminology.hl7.org/CodeSystem/v3-ActReason",
      "code" : "HTEST"
    } ]
  },
  "type" : "transaction",
  "timestamp" : "2024-09-02T16:28:31.871+02:00",
  "entry" : [ {
    "fullUrl" : "urn:uuid:4605182e-a9df-47bc-b5e5-0ae33a465bfe",
    "resource" : {
      "resourceType" : "List",
      "id" : "4605182e-a9df-47bc-b5e5-0ae33a465bfe",
      "meta" : {
        "profile" : [ "https://profiles.ihe.net/ITI/MHD/StructureDefinition/IHE.MHD.Comprehensive.SubmissionSet" ]
      },
      "text" : {
        "status" : "generated",
        "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">SubmissionSet Narrative</div>"
      },
      "contained" : [ {
        "resourceType" : "Practitioner",
        "id" : "c94656a0-df62-4234-b23a-0c07c54ac660",
        "name" : [ {
          "family" : "GREVLING",
          "given" : [ "KVART" ]
        } ]
      } ],
      "extension" : [ {
        "url" : "https://profiles.ihe.net/ITI/MHD/StructureDefinition/ihe-designationType",
        "valueCodeableConcept" : {
          "coding" : [ {
            "system" : "urn:oid:2.16.578.1.12.4.1.1.9602",
            "code" : "A03-2"
          } ]
        }
      }, {
        "url" : "https://profiles.ihe.net/ITI/MHD/StructureDefinition/ihe-sourceId",
        "valueIdentifier" : {
          "value" : "urn:oid:1.2.840.4711.815.1"
        }
      } ],
      "identifier" : [ {
        "use" : "usual",
        "system" : "urn:ietf:rfc:3986",
        "value" : "urn:oid:4605182e-a9df-47bc-b5e5-0ae33a465bfe"
      }, {
        "use" : "official",
        "system" : "urn:ietf:rfc:3986",
        "value" : "urn:uuid:44ca7463-8b05-45cf-8d08-ea8e429c3773"
      } ],
      "status" : "current",
      "mode" : "working",
      "title" : "SubmissionSet-17855599120-9/2/2024 4:28:23 PM",
      "code" : {
        "coding" : [ {
          "system" : "https://profiles.ihe.net/ITI/MHD/CodeSystem/MHDlistTypes",
          "code" : "submissionset"
        } ]
      },
      "subject" : {
        "reference" : "Patient/5340ef78-dc25-4d92-8d4f-44ccd99469c2"
      },
      "date" : "2024-09-02T16:28:26Z",
      "source" : {
        "reference" : "#c94656a0-df62-4234-b23a-0c07c54ac660"
      },
      "entry" : [ {
        "item" : {
          "reference" : "urn:uuid:44ca7463-8b05-45cf-8d08-ea8e429c3773"
        }
      } ]
    },
    "request" : {
      "method" : "POST",
      "url" : "List/4605182e-a9df-47bc-b5e5-0ae33a465bfe"
    }
  }, {
    "fullUrl" : "urn:uuid:44ca7463-8b05-45cf-8d08-ea8e429c3773",
    "resource" : {
      "resourceType" : "DocumentReference",
      "id" : "44ca7463-8b05-45cf-8d08-ea8e429c3773",
      "meta" : {
        "profile" : [ "https://profiles.ihe.net/ITI/MHD/StructureDefinition/IHE.MHD.Comprehensive.DocumentReference" ],
        "security" : [ {
          "system" : "2.16.840.1.113883.5.25",
          "code" : "N"
        } ]
      },
      "text" : {
        "status" : "generated",
        "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">Narrative for DocumentRefs</div>"
      },
      "contained" : [ {
        "resourceType" : "Patient",
        "id" : "5340ef78-dc25-4d92-8d4f-44ccd99469c2",
        "text" : {
          "status" : "extensions",
          "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">SubmissionSet with Patient</div>"
        },
        "identifier" : [ {
          "system" : "urn:oid:2.16.578.1.12.4.1.4.1",
          "value" : "17855599120"
        } ],
        "name" : [ {
          "family" : "KLOKKE",
          "given" : [ "USNOBBET" ]
        } ],
        "gender" : "male",
        "birthDate" : "1955-05-17"
      }, {
        "resourceType" : "Practitioner",
        "id" : "c612e85b-f82e-47ee-8abe-def8db59f38d",
        "name" : [ {
          "family" : "Test",
          "given" : [ "Darius" ]
        } ]
      }, {
        "resourceType" : "PractitionerRole",
        "id" : "63257ddd-c81f-48d1-a440-ed06a6179ff7",
        "practitioner" : {
          "reference" : "Practitioner/c612e85b-f82e-47ee-8abe-def8db59f38d"
        },
        "organization" : {
          "reference" : "Organization/17181d6f-579b-4dd3-a522-13c964123ead"
        },
        "code" : [ {
          "coding" : [ {
            "display" : "Sykepleier"
          } ]
        } ]
      }, {
        "resourceType" : "Organization",
        "id" : "17181d6f-579b-4dd3-a522-13c964123ead",
        "name" : "St. Olavs klinikk"
      }, {
        "resourceType" : "Practitioner",
        "id" : "be0fddfd-b66b-4403-a793-f8a581419423",
        "name" : [ {
          "family" : "Duck",
          "given" : [ "Donald", "Reginald" ]
        } ]
      }, {
        "resourceType" : "PractitionerRole",
        "id" : "250c9286-8cc4-4fd9-87bc-2accf90527e3",
        "practitioner" : {
          "reference" : "Practitioner/be0fddfd-b66b-4403-a793-f8a581419423"
        },
        "organization" : {
          "reference" : "Organization/653b3b87-204e-44fb-b6ea-f26ea1a625bd"
        },
        "code" : [ {
          "coding" : [ {
            "display" : "Lege"
          } ]
        } ]
      }, {
        "resourceType" : "Organization",
        "id" : "653b3b87-204e-44fb-b6ea-f26ea1a625bd",
        "name" : "St. Olavs klinikk"
      }, {
        "resourceType" : "Practitioner",
        "id" : "610e464c-24f5-4afe-9dbf-03457129c4ea",
        "name" : [ {
          "family" : "Streng",
          "given" : [ "Dag" ]
        } ]
      } ],
      "masterIdentifier" : {
        "use" : "usual",
        "system" : "urn:ietf:rfc:3986",
        "value" : "urn:uuid:44ca7463-8b05-45cf-8d08-ea8e429c3773"
      },
      "status" : "current",
      "type" : {
        "coding" : [ {
          "system" : "urn:oid:2.16.578.1.12.4.1.1.9602",
          "code" : "A03-2"
        } ]
      },
      "category" : [ {
        "coding" : [ {
          "system" : "urn:oid:2.16.578.1.12.4.1.1.9602",
          "code" : "A00-1"
        } ]
      } ],
      "subject" : {
        "reference" : "Patient/5340ef78-dc25-4d92-8d4f-44ccd99469c2"
      },
      "date" : "2024-02-07T14:35:41.775+01:00",
      "author" : [ {
        "reference" : "#c612e85b-f82e-47ee-8abe-def8db59f38d",
        "type" : "Practitioner"
      }, {
        "reference" : "#63257ddd-c81f-48d1-a440-ed06a6179ff7",
        "type" : "PractitionerRole"
      }, {
        "reference" : "#17181d6f-579b-4dd3-a522-13c964123ead",
        "type" : "Organization"
      }, {
        "reference" : "#be0fddfd-b66b-4403-a793-f8a581419423",
        "type" : "Practitioner"
      }, {
        "reference" : "#250c9286-8cc4-4fd9-87bc-2accf90527e3",
        "type" : "PractitionerRole"
      }, {
        "reference" : "#653b3b87-204e-44fb-b6ea-f26ea1a625bd",
        "type" : "Organization"
      } ],
      "authenticator" : {
        "reference" : "#610e464c-24f5-4afe-9dbf-03457129c4ea"
      },
      "description" : "This has multiple actors here",
      "securityLabel" : [ {
        "coding" : [ {
          "system" : "urn:oid:2.16.840.1.113883.5.25",
          "code" : "N"
        } ]
      } ],
      "content" : [ {
        "attachment" : {
          "extension": [
            {
              "url": "https://profiles.ihe.net/ITI/MHD/StructureDefinition/ihe-homeCommunityId",
              "valueString": "urn:oid:2.16.578.1.12.4.5.100.3.15"
            }
          ],
          "contentType" : "image/png",
          "language" : "nb-NO",
          "url" : "urn:uuid:b124f78c-783b-446d-a9e5-a9b761e012f3",
          "size" : 1025836,
          "hash" : "DEhBSl5R+KhoDs4Rhm842F/vdft7cRH8YwzwGJQwqd0=",
          "title" : "Screenshot 2024-02-07 153542.png",
          "creation" : "2024-02-07T14:35:41Z"
        },
        "format" : {
          "system" : "http://ihe.net/fhir/ihe.formatcode.fhir/CodeSystem/formatcode",
          "code" : "urn:ihe:iti:xds:2017:mimeTypeSufficient"
        }
      } ],
      "context" : {
        "period" : {
          "start" : "2024-08-03T16:26:32Z",
          "end" : "2024-08-08T16:26:32Z"
        },
        "facilityType" : {
          "coding" : [ {
            "system" : "urn:oid:2.16.578.1.12.4.1.1.1303",
            "code" : "86.211"
          } ]
        },
        "practiceSetting" : {
          "coding" : [ {
            "system" : "urn:oid:2.16.578.1.12.4.1.1.8653",
            "code" : "4"
          } ]
        },
        "sourcePatientInfo" : {
          "reference" : "#5340ef78-dc25-4d92-8d4f-44ccd99469c2"
        }
      }
    },
    "request" : {
      "method" : "POST",
      "url" : "DocumentReference/44ca7463-8b05-45cf-8d08-ea8e429c3773"
    }
  }, {
    "fullUrl" : "urn:uuid:b124f78c-783b-446d-a9e5-a9b761e012f3",
    "resource" : {
      "resourceType" : "Binary",
      "id" : "b124f78c-783b-446d-a9e5-a9b761e012f3",
      "meta" : {
        "profile" : [ "http://hl7.org/fhir/StructureDefinition/Binary" ]
      },
      "contentType" : "image/png",
      "data" : "<base64_content_of_binary>"
    },
    "request" : {
      "method" : "POST",
      "url" : "Binary"
    }
  } ]
}

Søk i Utviklerportalen

Søket er fullført!