Anvendelse
EAS udstiller 4 FHIR-operationer. Det drejer sig om:
- getReceivingOrganizationByPatientId
- getReceivingOrganizationByGPId
- getListOfGpByPostalCode
- getReceivingOrganizationBySORId
Disse operationer er beskrevet i EAS implementation guiden (https://build.fhir.org/ig/medcomdk/dk-ehmi-eas/index.html), hvor de er specificeret via OperationDefinitions, som findes under "Artifacts". For hver OperationDefinition findes der et request-eksempel, som kan benyttes i kald til de forskellige operationer. Hver OperationDefinition angiver i øvrigt, hvilken URL der skal kaldes på.
Der laves opslag i diverse NSP-registre (PersonInformation, SikredeInformation og SORES) samt MedComs EER-service. Derfor er det vigtigt at benytte data (CPR, ydernummer, SOR-ID, dokumenttype), som findes i disse registre.
NSP Test1-eksempel:
Sikkerhedsmodellen omkring EHMI er mTLS og JTP-H Tokens.
For at kunne kalde EAS, skal man derfor forbinde med et gyldigt klientcertifikat og JWT token. For Test1 anvendes de gængse NSP Testcertifikater der kan findes under vedhæftninger her NSP Test Identity Provider (NTIdP) - Leverancebeskrivelse
curl -s -X POST -H "Content-Type: application/x-www-form-urlencoded" \ -d 'grant_type=client_credentials&client_id=$CLIENT_ID&scope=EAS system/Organization.rs' \ --key NSP_Test_Service_Consumer_sds.key \ --cert NSP_Test_Service_Consumer_sds.cer \ "https://keycloak-test.nspop.dk/auth/realms/ehmi/protocol/openid-connect/token"
For at ovenstående virker, skal der være oprettet en klient i Keycloak med i dette tilfælde NSP_Test_Service_Consumer_sds. Herefter angives $CLIENT_ID som det klient id der er udstedt.
For at få oprettet en klient skal fremsendes metadata til Keycloak. Der henvises til dokumentet: Sikkerhedsarkitektur – EMHI services
Bemærk, at HELE certifikatkæden skal fremgå i certifikatet i PEM format (Det gør det som standard ikke)
Når man har en access token, kan EAS kaldes med samme klientcertifikat og JWT token som standard `Authorization Bearer` header.
For operationen "getReceivingOrganizationByPatientId" kan man benytte denne URL:
https://test1-cnsp.test.nspop.dk:41500/eas/fhir/Organization/$getReceivingOrganizationByPatientId
Anvend Content-Type "application/json" og HTTP POST. Et eksempel-request kan fx se således ud:
{
"resourceType" : "Parameters",
"id" : "EX-GetReceivingOrganizationByPatientId-Request",
"parameter" : [
{
"name" : "easCorePatient",
"resource" : {
"resourceType" : "Patient",
"meta" : {
"profile" : [
🔗 "http://medcomehmi.dk/ig/eas/StructureDefinition/EasCorePatient"
]
},
"identifier" : [
{
"value" : "0908720091"
}
]
}
},
{
"name" : "messageType",
"valueString" : "urn:dk:healthcare:medcom:messaging:fhir:structuredefinition:homecareobservation:1.1"
}
]
}Et svar består af et Bundle med matchende Organization-ressourcer (og relevante Endpoint-ressourcer), og ser fx således ud:
{
"resourceType": "Bundle",
"type": "collection",
"entry": [
{
"resource": {
"resourceType": "Organization",
"id": "2453",
"meta": {
"versionId": "1",
"lastUpdated": "2025-11-04T08:11:31.972+00:00",
"profile": [
"http://medcomehmi.dk/ig/eer/StructureDefinition/Eer.Messaging.Organization",
"http://medcomehmi.dk/ig/eas/StructureDefinition/eas-messaging-organization"
]
},
"identifier": [
{
"use": "official",
"type": {
"coding": [
{
"system": "http://medcomehmi.dk/ig/terminology/CodeSystem/eer-sor-organization-identier-type",
"code": "SORID",
"display": "SOR Identifier"
}
]
},
"system": "urn:oid:1.2.208.176.1.1",
"value": "620921000016006"
},
{
"system": "http://cvr.dk",
"value": "31336244"
}
],
"type": [
{
"coding": [
{
"system": "http://medcomehmi.dk/ig/terminology/CodeSystem/eer-sor-organization-type",
"code": "SI"
}
]
}
],
"name": "Almen Lægeklinik Hvidovre (1254731000016003)",
"partOf": {
"identifier": {
"system": "urn:oid:1.2.208.176.1.1",
"value": "620911000016002"
}
},
"endpoint": [
{
"reference": "Endpoint/2452"
}
]
}
},
{
"resource": {
"resourceType": "Endpoint",
"id": "2452",
"meta": {
"versionId": "1",
"lastUpdated": "2025-11-04T08:11:31.972+00:00",
"profile": [
"http://medcomehmi.dk/ig/eer/StructureDefinition/eer.dk.messaging.edelivery.fhir",
"http://medcomehmi.dk/ig/eas/StructureDefinition/eas-endpoint"
]
},
"identifier": [
{
"type": {
"coding": [
{
"system": "http://medcomehmi.dk/ig/terminology/CodeSystem/ehmi-delivery-status-agent-who-identifier-types",
"code": "GLN"
}
]
},
"system": "https://www.gs1.org/gln",
"value": "5790002619588"
}
],
"status": "active",
"connectionType": {
"system": "http://medcomehmi.dk/ig/terminology/CodeSystem/eer-endpoint-connection-type",
"code": "EerMessagingEdelivery"
},
"name": "EER Messaging Endpoint - AlmenLægeklinikHvidovre.2650.Hvidovre.1254731000016003 FHIR Endpoint",
"managingOrganization": {
"reference": "Organization/2453"
},
"period": {
"start": "2023-11-10T00:00:00+00:00"
},
"payloadType": [
{
"coding": [
{
"system": "http://medcomehmi.dk/ig/terminology/CodeSystem/ehmi-message-definition-uri",
"code": "urn:dk:healthcare:medcom:messaging:fhir:structuredefinition:homecareobservation:1.1"
}
]
},
{
"coding": [
{
"system": "http://medcomehmi.dk/ig/terminology/CodeSystem/ehmi-message-definition-uri",
"code": "urn:dk:healthcare:medcom:messaging:fhir:structuredefinition:acknowledgement:2.0"
}
]
}
],
"payloadMimeType": [
"text/xml",
"application/fhir+xml",
"application/fhir+json"
],
"address": "https://example.org/fhir"
}
}
]
}