--- type: "resource" title: "Endpoint" resource: "Endpoint" --- # Endpoint ## Introduction ## Scope and Usage An endpoint describes the technical details of a location that can be connected to for the delivery/retrieval of information. Sufficient information is required to ensure that a connection can be made securely, and appropriate data transmitted as defined by the endpoint owner. This is not a description of details of the current system, as found in [CapabilityStatement](capabilitystatement), but of another (potentially external) system. These may be locally hosted services, regional services, or national service. These resources are typically used to identify where to locate endpoint details for: - Questionnaires: Where to send information (currently an SDC extension with just the address) - ValueSet: Where related Terminology Services can be found (where not local) - Subscription: The destination to send the subscribed data (or to pull) - Messaging: (currently defined in the Message Header, but only as the address) - Referrals: Where to send referral requests (linked to the services directory resources - Organization/Location/Practitioner/HealthcareService) - Referrals - Templates: Where to locate referral templates (Questionnaires) (linked to the services directory resources - Organization/Location/Practitioner/HealthcareService) - CarePlans: Where a shared CarePlan can be found - Scheduling: Where to lookup to discover schedules/availability information (linked to the services directory resources - Organization/Location/Practitioner/HealthcareService) - Scheduling: Where to lookup to send appointment requests (linked to the services directory resources - Organization/Location/Practitioner/HealthcareService) - Patient/Person: Location of Master Patient/Person Indexes - Service Provider Directories: Location of related directories (parent/child/federated) - DICOM/imaging: Location of where to query, retrieve or store imaging content and metadata (QIDO-RS, WADO-RS, WADO-URI, STOW-RS) ## Boundaries and Relationships ### CapabilityStatement The endpoint is distinct from a capability statement in that the CapabilityStatement statement describes the entire capability of a system (and in the metadata case, just this system) Where the endpoint resource describes the technical details for how to connect, and for what purposes (which could be a small sub-set of the system's capabilities, and might not be a FHIR endpoint). ### ContactPoint Endpoints are used to facilitate system to system communication, providing the details of the addressing of the system, purpose of use, protocols required/provided, and any other details required to communicate between the systems. (such as configuration parameters, require headers ...) The address value in the endpoint can only be used in the context of the provided details. E.g. If the endpoint has a URL for an XDS service, using that in a browser by a user is meaningless. E.g.2 If the endpoint has a US Direct address, using this to send a normal email message will not work, as they are not true email addresses (even though they appear to be) A ContactPoint contains contact information, such as a phone number, web address that a user can directly interact with, no additional information would be required to use the value. The value is generally used to communicate with an entity directly, not a system. ## Background and Context ### Expected Implementations - Any solution where there are distributed FHIR servers deployed and need discovery/configuration - Systems advertising connectivity information in a DICOM environment - (Refer to the scope and usage section for common uses) ## Notes ## Notes - The IHE connection types that were defined in R4 have been moved to IHE defined profiles and vocabulary at [https://profiles.ihe.net/ITI/mCSD](https://profiles.ihe.net/ITI/mCSD) - Endpoint.period is meant to represent the general **planned** period of time when the Endpoint may be used, for example when an endpoint is being commissioned or decommissioned. It is not meant to account for temporary downtimes or other short terms changes of availability. For example, if an Endpoint is only available during business hours (9-5), the lack of availability during the night would not be reflected in Endpoint.period. ### Payload Advertising The `Endpoint.payload.type` is intended to be a description of the semantic content, for example, does this endpoint support exchanging care plans, discharge summaries, referrals, appointment bookings, etc. The "how" that content is exchanged is described elsewhere, via the `mimeType` (what format) and `connectionType` (what exchange method). The `Endpoint.profileCanonical`/`profileUri` describes the detailed type of content that is handles/available at the endpoint. (Such as canonicals of FHIR resource profiles, or other non-fhir based profile references) ## StructureDefinition ### Elements (Simplified) - **[Endpoint](/endpoint-definitions#Endpoint)** [0..*]: - The technical details of an endpoint that can be used for electronic services - **[Endpoint.identifier](/endpoint-definitions#Endpoint.identifier)** [0..*]: [Identifier](/Identifier) Identifies this endpoint across multiple systems - **[Endpoint.status](/endpoint-definitions#Endpoint.status)** [1..1]: [code](/code) required:[endpoint-status](/valueset-endpoint-status) active | limited | suspended | error | off | entered-in-error - **[Endpoint.connectionType](/endpoint-definitions#Endpoint.connectionType)** [1..*]: [CodeableConcept](/CodeableConcept) example:[endpoint-connection-type](/valueset-endpoint-connection-type) Protocol/Profile/Standard to be used with this endpoint connection - **[Endpoint.name](/endpoint-definitions#Endpoint.name)** [0..1]: [string](/string) A name that this endpoint can be identified by - **[Endpoint.description](/endpoint-definitions#Endpoint.description)** [0..1]: [string](/string) Additional details about the endpoint that could be displayed as further information to identify the description beyond its name - **[Endpoint.environmentType](/endpoint-definitions#Endpoint.environmentType)** [0..*]: [CodeableConcept](/CodeableConcept) extensible:[endpoint-environment](/valueset-endpoint-environment) The type of environment(s) exposed at this endpoint - **[Endpoint.managingOrganization](/endpoint-definitions#Endpoint.managingOrganization)** [0..1]: Reference([Organization](/Organization)) Organization that manages this endpoint (might not be the organization that exposes the endpoint) - **[Endpoint.contact](/endpoint-definitions#Endpoint.contact)** [0..*]: [ContactPoint](/ContactPoint) Contact details for source (e.g. troubleshooting) - **[Endpoint.period](/endpoint-definitions#Endpoint.period)** [0..1]: [Period](/Period) Interval the endpoint is expected to be operational - **[Endpoint.availability](/endpoint-definitions#Endpoint.availability)** [0..1]: [Availability](/Availability) Times the endpoint is expected to be available (including exceptions) - **[Endpoint.payload](/endpoint-definitions#Endpoint.payload)** [0..*]: [BackboneElement](/BackboneElement) Set of payloads that are provided by this endpoint - **[Endpoint.payload.type](/endpoint-definitions#Endpoint.payload.type)** [0..*]: [CodeableConcept](/CodeableConcept) example:[endpoint-payload-type](/valueset-endpoint-payload-type) The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) - **[Endpoint.payload.mimeType](/endpoint-definitions#Endpoint.payload.mimeType)** [0..*]: [code](/code) required:[mimetypes](/valueset-mimetypes) Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) - **[Endpoint.payload.profileCanonical](/endpoint-definitions#Endpoint.payload.profileCanonical)** [0..*]: [canonical](/canonical) The profile that is expected at this endpoint - **[Endpoint.payload.profileUri](/endpoint-definitions#Endpoint.payload.profileUri)** [0..*]: [uri](/uri) The non-fhir based profile that is expected at this endpoint - **[Endpoint.address](/endpoint-definitions#Endpoint.address)** [1..1]: [url](/url) The technical base address for connecting to this endpoint - **[Endpoint.header](/endpoint-definitions#Endpoint.header)** [0..*]: [string](/string) Usage depends on the channel type ## Mappings - [Endpoint Mappings](/endpoint-mappings) — 21 mapping entries ## Resource Packs ### list-Endpoint-packs.xml ```xml ``` ## Search Parameters - [connection-type](/endpoint-search#connection-type) — **token** — Protocol/Profile/Standard to be used with this endpoint connection — `Endpoint.connectionType` - [identifier](/endpoint-search#identifier) — **token** — Identifies this endpoint across multiple systems — `Endpoint.identifier` - [name](/endpoint-search#name) — **string** — A name that this endpoint can be identified by — `Endpoint.name` - [organization](/endpoint-search#organization) — **reference** — The organization that is managing the endpoint — `Endpoint.managingOrganization` - [payload-type](/endpoint-search#payload-type) — **token** — The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) — `Endpoint.payload.type` - [payload-profile](/endpoint-search#payload-profile) — **reference** — The profiles (FHIR or non-FHIR) that might be used at this endpoint — `Endpoint.payload.profileCanonical | Endpoint.payload.profileUri` - [status](/endpoint-search#status) — **token** — The current status of the Endpoint (usually expected to be active) — `Endpoint.status` [Full Search Parameters](/endpoint-search) ## Examples - [b5711af0a-d678-46d1-86e9-66e454cf1522](/endpoint-example-b5711af0a-d678-46d1-86e9-66e454cf1522) — endpoint-examples-general-template — Collection of endpoint examples - [direct-endpoint](/endpoint-example-direct-endpoint) — endpoint-example-direct — Example of a DIRECT endpoint - [endpoint-example](/endpoint-example-endpoint-example) — endpoint-example - [endpoint-example-auhl7v2](/endpoint-example-endpoint-example-auhl7v2) — endpoint-example-auhl7v2 - [endpoint-example-ccdaxca](/endpoint-example-endpoint-example-ccdaxca) — endpoint-example-ccdaxca - [endpoint-example-direct](/endpoint-example-endpoint-example-direct) — endpoint-example-direct - [endpoint-example-iid](/endpoint-example-endpoint-example-iid) — endpoint-example-iid - [endpoint-example-uscorefhir](/endpoint-example-endpoint-example-uscorefhir) — endpoint-example-uscorefhir - [endpoint-example-wadors](/endpoint-example-endpoint-example-wadors) — endpoint-example-wadors - [endpoint-examples-general-template](/endpoint-example-endpoint-examples-general-template) — endpoint-examples-general-template - [endpoint-examples-header](/endpoint-example-endpoint-examples-header) — endpoint-examples-header - [example](/endpoint-example-example) — endpoint-example — Example Endpoint - [example-au-hl7v2](/endpoint-example-example-au-hl7v2) — endpoint-example-auhl7v2 — Example of an AU HL7v2 Referral Exchange endpoint - [example-ccda-xca](/endpoint-example-example-ccda-xca) — endpoint-example-ccdaxca — Example of an XCA CCDA Referral Exchange endpoint - [example-usCore-fhir](/endpoint-example-example-usCore-fhir) — endpoint-example-uscorefhir — Example of an US Core FHIR REST endpoint - [example-wadors](/endpoint-example-example-wadors) — endpoint-example-wadors — Example of DICOM WADO-RS endpoint [Full Examples](/endpoint-examples) ## Mapping Exceptions ### endpoint-fivews-mapping-exceptions.xml ### Unmapped Elements - **FiveWs.recorded** — Unknown - **FiveWs.author** — Unknown - **FiveWs.actor** — Unknown - **FiveWs.cause** — Unknown - **FiveWs.version** — Unknown - **FiveWs.witness** — Unknown - **FiveWs.where** — Unknown - **FiveWs.context** — Unknown - **FiveWs.init** — Unknown - **FiveWs.why** — Unknown - **FiveWs.source** — Unknown - **FiveWs.who** — Unknown - **FiveWs.grade** — Unknown - **FiveWs.planned** — Unknown - **FiveWs.subject** — Unknown