Indholdsfortegnelse

Introduktion

Formål

Denne guide har som formål at give et overblik over MHDService.

Beskrivelse

MHDService er udviklet i regi af GMv2 projektet og udstiller en general MHD-basere t(se https://profiles.ihe.net/ITI/MHD/index.html) adgang til at hente dokumenter på dokumentdelingsservicen. MHDService udstiller opslag i registry og repository efter MHD standarden via operationerne ITI-67 (https://profiles.ihe.net/ITI/MHD/ITI-67.html) og ITI-68 (https://profiles.ihe.net/ITI/MHD/ITI-68.html). Disse svarer til hhv. ITI-18 og ITI-43 i tilgangen til DDS, men udstiller et mere REST-agtigt API med FHIR ressourcer. I FHIR termer laver man således i ITI-67 en søgning efter DocumentReference ressourcer. Hver DocumentReference indeholder et link, der er et opslag efter en Binary resource, der indeholder dokumentet.

MHDService giver adgang for borgeren til borgerens egne dokumenter. MHDServicens REST snitflade er sikret ved bearer tokens. Disse veksles til IDWS kald videre på DDS'en.

Links til mere information

MHD standarden: https://profiles.ihe.net/ITI/MHD/index.html

ITI-67: https://profiles.ihe.net/ITI/MHD/ITI-67.html

ITI-68: https://profiles.ihe.net/ITI/MHD/ITI-68.html

MedComs profilering af DocumentReference: https://medcomfhir.dk/ig/document/StructureDefinition-medcom-documentreference.html

Binary ressourcen: https://hl7.org/fhir/R4/binary.html

Grafisk fremstilling og sammenhængen

Kald-sekvens gennem MHDService, der gennemstiller og transformerer de traditionelle ITI-18 og ITI-43:

Til redigering: https://mermaid.live/edit#pako:eNqFkcFOwzAMhl-l8rmbQrc2WQ6ToDmwwy6UA0K9RI27VTTJyBLEmPbuZCsDaYKRk_37d_zJ3kNjFQKHLb4GNA2KTq6c1LVJ4iv7Do0fzefLe1Ghe-sa5MnicTEq6GD40aNJiGqo3rChGoWL3idRJRq9VNLLX34Y5vFE2CboGD1gi-5I9R8Ou4YznfyFU4rbRNmX06wrOHedkW5Xm8ECKWh0WnYqrm1_1Grwa9RYA4-hwlaG3tdQm0O0yuBttTMNcO8CpuBsWK2Bt7Lfxixs4ibOO_9WN9I8W6vPLTEFvod34FPKxjQr8iwjhBFKWQo74Cwbz0hOyIxNclrMyPSQwsepn4wZzVNA1XnrlsOhT_dOYeWO_F9MaBS60gbjgU-K7PAJ-qelZw


Læsevejledning og forudsætninger

Dette dokument er henvendt til udviklere og arkitekter, der skal anvende MHD Service.

Det forventes at læseren har kendskab til REST services, JWT / bearer token autentifikation og FHIR.

Sikkerhed

Service udstil typeREST med JTP-H bearer token.
Krævede adgangeJTP-H token identificerer borgeren, der har adgang til egne dokumenter.
WhitelistingNej
Krævet sikkerhedsniveauData udstilles kun til borgerlogin, og kun borgerens egne dokumenter.
Forudsætninger for anvendelseLigesom ved brug af DDS er det anvenders ansvar kun at hente dokumenter via ITI-68, som kalder umiddelbart forinden har fået udleveret link til via ITI-67. Dette sikrer de udleverede dokumenters aktualitet. Da der kun er tale om borgertilgang til egne dokumenter er spærring ikke et problem, men dokumenter kan deprecates og erstattes af nye versioner på DDS.
LogningDer logges almindelig auditlog med kald-log jf. husreglerne. 

Definitioner og referencer

ReferenceBeskrivelse
JTP-HJWT Token Profile for Healthcare
FHIR

Fast Healthcare Interoperability Resources.

En standard udviklet af HL7 (Health Level 7) til elektronisk udveksling af sundhedsoplysninger.

DDS

Dokument Delingsservice

Adgang, brug og snitflader

Adgang

Adgang til servicen sker ved at medsende en Authorization-header med bearer token i form af JTP-H. Et gyldigt JTP-H token til test kan erhverves vha. OATH 2.0 med følgende properties (fra GMv2):  

urlhttps://test.cloud.idm.trifork.com/auth/realms/gravid/protocol/openid-connect/auth 
access token urlhttps://test.cloud.idm.trifork.com/auth/realms/gravid/protocol/openid-connect/token
client idgravidapp
redirect urlgravidapp
scopeopenid profile


Endpoint eksempler:

Capability statement :

Endpoint

<serverurl>/mhd/api/2025/11/27/meta

Beskrivelse af services

Returnerer en capability statement der beskriver service samt søge parametre.

ResultatCapability statement (https://build.fhir.org/capabilitystatement.html)

Hent dokumentreferencer (ITI-67):

Endpoint

<serverurl>/mhd/api/2025/11/27/DocumentReference?patient.identifier=2311890002&status=current

Beskrivelse af services

Returnerer dokument referencer for borgeren. Bemærk, der returneres kun de dokumenttyper som er MHD'en er konfigureret til at returnere.

ResultatBundle med DocumenReference resourcer

Hent dokument (ITI-68):

Endpoint

<serverurl>/mhd/api/2025/11/27/Binary/1.2.208.193%5E12345f0f-648f-4760-841a-05e96e3c3990?repositoryID=1.2.208.176.43210.8.10.15&homeCommunityID=1.2.208.176.43210.8.10

Beskrivelse af services

Returnerer binaries indeholdende dokumenter fra DDS. Bemærk, ovenstående url findes i svaret fra hent dokumentreferencer og det er derfor ikke meningen at man selv skal konstruere den.

ResultatBinary med dokument fra DDS

Snitfladebeskrivelse og brug

Anvender skal kalde ITI-67 for at få udleveret en aktuel liste af links til dokumenter. Disse links kan umiddelbart derefter bruges i ITI-68 kald for at hente indholdet af dokumenterne. Links til dokumenter bør ikke lagres til senere anvendelse, da status mm. kan skifte på dokumentdelingsservicen, fx deprecating af dokument ved erstatning med en ny version.

MHDService-instansen henter dokumenter for den angivne patient i det dokument repository den enkelte instans er konfigureret op til. Man kan fx kun hente dokumenter fra graviditetsmappens repository med graviditetsmappe-instansen af MHDService.

ITI-67

ITI-67 (registry opslag) udstiller følgende søgninger efter dokumenter:

POST-kaldet understøtte både at parameter kaldes med query- og form- parametre. For yderligere detaljer se https://hl7.org/fhir/R4/http.html#.


I graviditetsmappen fremsøges dokumenter for en specifik patient ved at angivelse af  parametrene "patient.identifier" og status. Da nuværende instans af MHD er konfigureret til at kun returnere dokumenter tillgørende gravidmappen, vil kun disse blive returneret. MHD standarden tilbyder en række yderligere søgeparametre som er specificeret i følgende Capability statement:


https://mhd.gravidmappen.test.tcs.trifork.cloud/mhd/api/2025/11/27/metadata


I de følgende afsnit beskrives kort  de minimal kald som GMv2 projektet bruger.

ITI-67 Request

Request til ITI-67 er et GET til "<MHDService instance base URL>/DocumentReference" eller POST med parameteren "patient.identifier" angivet som url-parameter eller i body'en. Parameteren angiver patientens CPR nummer.


ITI-67 parametre
ParameterBeskrivelsePåkrævet
patient.identifierPatientens CPR nummerJa
statusStatus på dokumentetja

For yderligere parametre se https://mhd.gravidmappen.test.tcs.trifork.cloud/mhd/api/2025/11/27/metadata

ITI-67 Response

Response er et FHIR searchset Bundle med MedComDocumentReference ressourcer for de fundne dokumenter. 


Bemærk! I MedComs profil er der kun understøttelse for 1 author med en organisation og en optinel person. I ITI-18 kan der være flere authors, hver med en organisation og en person. I den generelle document reference profil https://hl7.org/fhir/R4/documentreference.html er der understøttelse for 0 til mange authors, desværre er en author her. enten en organisation, person, osv. Det vil sige at vi kan ikke mappe en person og bevare tilknytning til organisation som beskrevet i ITI-18. Derfor er det besluttet at vi blot mapper en organisation med person i henhold til den nuværende MedCom document reference. 

ITI-68

ITI-68 (repository opslag) udstiller opslag efter dokumenter i graviditetsmappen. I ITI-67 kaldet er givet et antal MedComDocumentReferences der har en URL til hvert enkelt dokument. På denne URL findes ITI-68 opslaget efter dokumentet.

URL'en for hvert dokument vil være på formen "<MHDService instance base URL>/Binary/<documentId>", og vil returnere objektet i form af en Binary FHIR ressource, med CDA'en som "data".

ITI-68 Request

Request til ITI-68 er et GET kald til "<MHDService instance base URL>/Binary/<documentId>?repositoryID=<repo id>&homeCommunityID=<home community id>", hvor værdien af "documentId" angiver dokumentets "DocumentUniqueId".


ITI-68 parametre
ParameterTypeBeskrivelsePåkrævet
documentIdPath parameterDokumentets DocumentUniqueIdJa
repositoryIDQuery parameterRepository ID, hvor dokumentet kan hentesJa
homeCommunityIDQuery parameterHome Community ID for dokumentetJa

Bemærk at DocumentReference-ressourcen fra ITI-67, indeholder linket med alle parametre, så dette link er ikke noget man som anvender skal konstruere selv.

ITI-68 Response

Response er en FHIR Binary ressource hvor dokumentet er base 64 encoded i "data" elementet.

Eksempler på request/response

Eksempler på request og response til de operationer der udstilles. De enkelte elementer er beskrevet under snitfladebeskrivelse. 

ITI-67 efterfulgt af ITI-68

Et kald til ITI-67 kunne se ud som

GET <baseurl>/DocumentReference?patient.identifier=<cpr>&status=current

og give et Bundle af DocumentReferences med URL'er til at hente de enkelte dokumenter. Herunder er vist et eksempel med et enkelt og dokument. Der er skåret en masse fra for at vise hvordan selve linket er indfanget.

{
	"resourceType": "Bundle",
	"type": "searchset",
	"entry": [
		{
			"resource": {
				"resourceType": "DocumentReference",
				"meta": {
					"profile": [
						"http://medcomfhir.dk/ig/coredocument/StructureDefinition/medcom-documentreference"
					]
				},
                ...
                "content": [
					{
						"attachment": {
							"contentType": "application/fhir+json",
							...
							"url": "<baseurl>/Binary/<documentId>?repositoryID=<repo id>&homeCommunityID=<home community id>",
							...
						},
						...
					}
				],
				...
			}
		}
	]
}

Denne URL bruges derefter i et ITI-68 kald. ála

GET <baseurl>/Binary/<documentId>?repositoryID=<repo id>&homeCommunityID=<home community id>

som vil give dokumentet indpakket i en Binary ressource.

{
  "resourceType": "Binary",
  "contentType": "text/xml",
  "data": "<base64 encodet CDA dokument>"
}


Test

Følgende brugere burde have journal data på både Test 1 og Test 2:

CPR

1704999948


Dokument Historik

3/4 2025Martin Henriksen/SDSEtablering af dokumentation
10/4 2025Anders Ringsmose/TriforkForslag til API
7/8 2025Thomas Glæsner/TriforkUdfyldelse af dokumentation
8/9 2025 Thomas Glæsner/TriforkRettelser efter review
12/9 2025Thomas Glæsner/TriforkOpdateret link til MedComs DocumentReference Profil