Endpoint Registry Example

The following examples show an instance of the Endpoint Registry domain - an Organization that uses an Endpoint that implements an API Specification. The instance exemplifies a healthcare provider that uses an endpoint based on a EHDS patient summary IG from HL7 Europe.

Healthcare provider (Organization)

This example of Organization shows an organization with an organization identifier as seen in the identifier element with system "urn:oid:2.5.4.97". It has a reference to the logical ID of the Endpoint it uses (see Endpoint section below) in the endpoint element.

Command 'tree' could not render: File not found for 'subject=Organization/6868324d-2f57-40be-922a-934387d2117b'
Command 'json' could not render: File not found for 'subject=Organization/6868324d-2f57-40be-922a-934387d2117b'

Endpoint

This example of Endpoint shows an endpoint with name "Journalis FHIR" that can be reached at the address "https://journalis.api.regiontornaland.se/fhir". Its status is set to active and the date from when it started being in use is seen in the period.start element.

It uses the security method OAuth as seen in the first connectionType element and it is a FHIR based endpoint as seen in the second the connectionType element. The extension with url "http://electronichealth.se/fhir/NDI/StructureDefinition/endpoint-associated-server-er" contains a serverURL extension pointing to "https://auth.journalis.api.regiontornaland" and an associatedServerType extension declaring the server referenced to in the serverURL as an authorization server.

The payload element contains information about what API specifications the endpoint is based on. This is done by using the extension with url "http://electronichealth.se/fhir/NDI/StructureDefinition/endpoint-payload-api-specification-er" that points to an ActorDefinition (see section ActorDefinition below), using the ActorDefinition's canonical URL. The example Endpoint below has two payloads, i.e. two API specifications it implements. The payloads reference one specification each by their canonical URLs. The canonical URL is the preferred identifier of the ActorDefinition.

Endpoint
{
"resourceType": "Endpoint",
"id": "af80d38e-1fd2-44f1-b751-8253d4ab8b52",
"meta": {
"profile": [
"http://electronichealth.se/fhir/NDI/StructureDefinition/endpoint-er"
]
},
{
{
"url": "associatedServerType",
"system": "http://electronichealth.se/CodeSystem/associated-server-types",
"code": "authorization"
}
},
{
"url": "serverURL",
"valueUrl": "https://auth.journalis.api.regiontornaland"
}
],
"url": "http://electronichealth.se/fhir/NDI/StructureDefinition/endpoint-associated-server-er"
}
],
"status": "active",
{
"coding": [
{
"system": "http://hl7.org/fhir/restful-security-service",
"code": "OAuth"
}
]
},
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/endpoint-connection-type",
"code": "hl7-fhir-rest"
}
]
}
],
"name": "Journalis FHIR",
"payload": [
{
{
"url": "http://electronichealth.se/fhir/NDI/StructureDefinition/endpoint-payload-actor-definition-er",
"valueCanonical": "https://electronichealth.se/ntk/ActorDefinition/HL7EU/ehds-ps-1"
}
]
},
{
{
"url": "http://electronichealth.se/fhir/NDI/StructureDefinition/endpoint-payload-actor-definition-er",
"valueCanonical": "https://electronichealth.se/ntk/ActorDefinition/NDI/restriction-register-1"
}
]
}
],
"address": "https://journalis.api.regiontornaland.se/fhir"
}

API Specifications (ActorDefinition)

Example 1

This example of an API Specification shows meta data about an API specification that is referenced to in the Endpoint.payload example above. An ActorDefinition that defines a system rather than a person has to have the type element set to "system".

The API specification has the human readable name "EHDS Patient summary" as seen in the title element, as well as a machine readable name "ehds-ps" as seen in the name element. The publisher element declares that the API specification is published by HL7 Europe.

This specific instance is for version 1 of the specification. The url element is the canonical URL of the ActorDefinition and is the identifier that should be used to reference it, as done in the Endpoint example above. It is created by combining the publisher, machine readable name and version in the following format: "https://electronichealth.se/ntk/ActorDefinition/[publisher]/[machine readable name]-[version]".

The useContext element has the code "topic" which declares that the valueCoding defines a high level category that the ActorDefinition is a part of, in this example the category "clinical-specifications".

The actual API specification can be found at the URL provided in the reference element, i.e. "https://build.fhir.org/ig/hl7-eu/eps/" in this example.

ActorDefinition
{
"resourceType": "ActorDefinition",
"id": "6013a60c-ca34-4437-a038-528e988be845",
"meta": {
"profile": [
"http://electronichealth.se/fhir/NDI/StructureDefinition/api-specification-er"
]
},
"url": "https://electronichealth.se/ntk/ActorDefinition/HL7EU/ehds-ps-1",
"version": "1",
"name": "ehds-ps",
"title": "EHDS patient summary",
"status": "active",
"publisher": "HL7 Europe",
"description": "Returnerar en EHDS patientöversikt för given patient",
{
"code": {
"system": "http://terminology.hl7.org/CodeSystem/usage-context-type",
"code": "topic"
},
"coding": [
{
"system": "http://electronichealth.se/CodeSystem/specification-categories",
"code": "clinical-specifications"
}
]
}
}
],
"type": "system",
"https://build.fhir.org/ig/hl7-eu/eps/"
]
}

Example 2

This example of an API Specification shows meta data about another API specification that is referenced to in the Endpoint.payload example above.

The API specification has the human readable name "Spärregister" as seen in the title element, as well as a machine readable name "restriction-register" as seen in the name element. The publisher element declares that the API specification is published by NDI. This specific instance is for version 1 of the specification.

The useContext element has the code "topic" which declares that the valueCoding defines a high level category that the API specification is a part of, in this example the category "ndi-specifications".

The actual API specification can be found at the URL provided in the reference element, i.e. "https://simplifier.net/guide/swedishproxypermissionanddatarestrictionservice?version=current" in this example.

ActorDefinition
{
"resourceType": "ActorDefinition",
"id": "11f2f9c5-7ff0-4a3c-8e0d-2e678fc8079f",
"meta": {
"profile": [
"http://electronichealth.se/fhir/NDI/StructureDefinition/api-specification-er"
]
},
"url": "https://electronichealth.se/ntk/ActorDefinition/NDI/restriction-register-1",
"version": "1",
"name": "restriction-register",
"title": "Spärregister",
"status": "active",
"publisher": "NDI",
"description": "Tar emot en eller flera spärrar för vidare hantering",
{
"code": {
"system": "http://terminology.hl7.org/CodeSystem/usage-context-type",
"code": "topic"
},
"coding": [
{
"system": "http://electronichealth.se/CodeSystem/specification-categories",
"code": "ndi-specifications"
}
]
}
}
],
"type": "system",
"https://simplifier.net/guide/swedishproxypermissionanddatarestrictionservice?version=current"
]
}