Release 5

This page is part of the FHIR Specification (v5.0.0: R5 - STU). This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3

8.9 Resource Endpoint - Content

Patient Administration icon Work GroupMaturity Level: 2 Trial UseSecurity Category: Business Compartments: No defined compartments

The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b, a REST endpoint for another FHIR server, or a s/Mime email address. This may include any security context information.

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, 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)

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).

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.

  • 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)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Endpoint TUDomainResourceThe technical details of an endpoint that can be used for electronic services

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierIdentifies this endpoint across multiple systems

... status ?!Σ1..1codeactive | suspended | error | off | entered-in-error | test
Binding: Endpoint Status (Required)
... connectionType Σ1..*CodeableConceptProtocol/Profile/Standard to be used with this endpoint connection
Binding: Endpoint Connection Type (Example)

... description Σ0..1stringAdditional details about the endpoint that could be displayed as further information to identify the description beyond its name
... environmentType Σ0..*CodeableConceptThe type of environment(s) exposed at this endpoint
Binding: Endpoint Environment (Extensible)

... managingOrganization Σ0..1Reference(Organization)Organization that manages this endpoint (might not be the organization that exposes the endpoint)
... contact 0..*ContactPointContact details for source (e.g. troubleshooting)

... period Σ0..1PeriodInterval the endpoint is expected to be operational
... payload 0..*BackboneElementSet of payloads that are provided by this endpoint

.... type Σ0..*CodeableConceptThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Binding: Endpoint Payload Type (Example)

.... mimeType Σ0..*codeMimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
Binding: Mime Types (Required)

... address Σ1..1urlThe technical base address for connecting to this endpoint
... header 0..*stringUsage depends on the channel type


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Endpoint (DomainResource)Identifier for the organization that is used to identify the endpoint across multiple disparate systemsidentifier : Identifier [0..*]The endpoint status represents the general expected availability of an endpoint (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)EndpointStatus! »A coded value that represents the technical details of the usage of this endpoint, such as what WSDLs should be used in what way. (e.g. XDS.b/DICOM/cds-hook)connectionType : CodeableConcept [1..*] « null (Strength=Example)EndpointConnectionType?? »A friendly name that this endpoint can be referred to withname : string [0..1]The description of the endpoint and what it is for (typically used as supplemental information in an endpoint directory describing its usage/purpose)description : string [0..1]The type of environment(s) exposed at this endpoint (dev, prod, test, etc.)environmentType : CodeableConcept [0..*] « null (Strength=Extensible)EndpointEnvironment+ »The organization that manages this endpoint (even if technically another organization is hosting this in the cloud, it is the organization associated with the data)managingOrganization : Reference [0..1] « Organization »Contact details for a human to contact about the endpoint. The primary use of this for system administrator troubleshootingcontact : ContactPoint [0..*]The interval during which the endpoint is expected to be operationalperiod : Period [0..1]The uri that describes the actual end-point to connect toaddress : url [1..1]Additional headers / information to send as part of the notificationheader : string [0..*]PayloadThe payload type describes the acceptable content that can be communicated on the endpointtype : CodeableConcept [0..*] « null (Strength=Example)EndpointPayloadType?? »The mime type to send the payload in - e.g. application/fhir+xml, application/fhir+json. If the mime type is not specified, then the sender could send any content (including no content depending on the connectionType)mimeType : code [0..*] « The mime type of an attachment. Any valid mime type is allowed. (Strength=Required)MimeTypes! »The set of payloads that are provided/available at this endpointpayload[0..*]

XML Template

<Endpoint xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Identifies this endpoint across multiple systems --></identifier>
 <status value="[code]"/><!-- 1..1 active | suspended | error | off | entered-in-error | test -->
 <connectionType><!-- 1..* CodeableConcept Protocol/Profile/Standard to be used with this endpoint connection --></connectionType>
 <name value="[string]"/><!-- 0..1 A name that this endpoint can be identified by -->
 <description value="[string]"/><!-- 0..1 Additional details about the endpoint that could be displayed as further information to identify the description beyond its name -->
 <environmentType><!-- 0..* CodeableConcept The type of environment(s) exposed at this endpoint --></environmentType>
 <managingOrganization><!-- 0..1 Reference(Organization) Organization that manages this endpoint (might not be the organization that exposes the endpoint) --></managingOrganization>
 <contact><!-- 0..* ContactPoint Contact details for source (e.g. troubleshooting) --></contact>
 <period><!-- 0..1 Period Interval the endpoint is expected to be operational --></period>
 <payload>  <!-- 0..* Set of payloads that are provided by this endpoint -->
  <type><!-- 0..* CodeableConcept The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) --></type>
  <mimeType value="[code]"/><!-- 0..* Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) -->
 </payload>
 <address value="[url]"/><!-- 1..1 The technical base address for connecting to this endpoint -->
 <header value="[string]"/><!-- 0..* Usage depends on the channel type -->
</Endpoint>

JSON Template

{doco
  "resourceType" : "Endpoint",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Identifies this endpoint across multiple systems
  "status" : "<code>", // R!  active | suspended | error | off | entered-in-error | test
  "connectionType" : [{ CodeableConcept }], // R!  Protocol/Profile/Standard to be used with this endpoint connection
  "name" : "<string>", // A name that this endpoint can be identified by
  "description" : "<string>", // Additional details about the endpoint that could be displayed as further information to identify the description beyond its name
  "environmentType" : [{ CodeableConcept }], // The type of environment(s) exposed at this endpoint
  "managingOrganization" : { Reference(Organization) }, // Organization that manages this endpoint (might not be the organization that exposes the endpoint)
  "contact" : [{ ContactPoint }], // Contact details for source (e.g. troubleshooting)
  "period" : { Period }, // Interval the endpoint is expected to be operational
  "payload" : [{ // Set of payloads that are provided by this endpoint
    "type" : [{ CodeableConcept }], // The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
    "mimeType" : ["<code>"] // Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
  }],
  "address" : "<url>", // R!  The technical base address for connecting to this endpoint
  "header" : ["<string>"] // Usage depends on the channel type
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Endpoint;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Identifies this endpoint across multiple systems
  fhir:status [ code ] ; # 1..1 active | suspended | error | off | entered-in-error | test
  fhir:connectionType  ( [ CodeableConcept ] ... ) ; # 1..* Protocol/Profile/Standard to be used with this endpoint connection
  fhir:name [ string ] ; # 0..1 A name that this endpoint can be identified by
  fhir:description [ string ] ; # 0..1 Additional details about the endpoint that could be displayed as further information to identify the description beyond its name
  fhir:environmentType  ( [ CodeableConcept ] ... ) ; # 0..* The type of environment(s) exposed at this endpoint
  fhir:managingOrganization [ Reference(Organization) ] ; # 0..1 Organization that manages this endpoint (might not be the organization that exposes the endpoint)
  fhir:contact  ( [ ContactPoint ] ... ) ; # 0..* Contact details for source (e.g. troubleshooting)
  fhir:period [ Period ] ; # 0..1 Interval the endpoint is expected to be operational
  fhir:payload ( [ # 0..* Set of payloads that are provided by this endpoint
    fhir:type  ( [ CodeableConcept ] ... ) ; # 0..* The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
    fhir:mimeType  ( [ code ] ... ) ; # 0..* Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
  ] ... ) ;
  fhir:address [ url ] ; # 1..1 The technical base address for connecting to this endpoint
  fhir:header  ( [ string ] ... ) ; # 0..* Usage depends on the channel type
]

Changes from both R4 and R4B

Endpoint
Endpoint.status
  • Remove code test
Endpoint.connectionType
  • Max Cardinality changed from 1 to *
  • Type changed from Coding to CodeableConcept
  • Remove Binding `http://hl7.org/fhir/ValueSet/endpoint-connection-type` (extensible)
Endpoint.description
  • Added Element
Endpoint.environmentType
  • Added Element
Endpoint.payload
  • Added Element
Endpoint.payload.type
  • Moved from Endpoint.payloadType to type
  • Min Cardinality changed from 1 to 0
Endpoint.payload.mimeType
  • Moved from Endpoint.payloadMimeType to mimeType

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

See R4 <--> R5 Conversion Maps (status = See Conversions Summary.)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Endpoint TUDomainResourceThe technical details of an endpoint that can be used for electronic services

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierIdentifies this endpoint across multiple systems

... status ?!Σ1..1codeactive | suspended | error | off | entered-in-error | test
Binding: Endpoint Status (Required)
... connectionType Σ1..*CodeableConceptProtocol/Profile/Standard to be used with this endpoint connection
Binding: Endpoint Connection Type (Example)

... description Σ0..1stringAdditional details about the endpoint that could be displayed as further information to identify the description beyond its name
... environmentType Σ0..*CodeableConceptThe type of environment(s) exposed at this endpoint
Binding: Endpoint Environment (Extensible)

... managingOrganization Σ0..1Reference(Organization)Organization that manages this endpoint (might not be the organization that exposes the endpoint)
... contact 0..*ContactPointContact details for source (e.g. troubleshooting)

... period Σ0..1PeriodInterval the endpoint is expected to be operational
... payload 0..*BackboneElementSet of payloads that are provided by this endpoint

.... type Σ0..*CodeableConceptThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Binding: Endpoint Payload Type (Example)

.... mimeType Σ0..*codeMimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
Binding: Mime Types (Required)

... address Σ1..1urlThe technical base address for connecting to this endpoint
... header 0..*stringUsage depends on the channel type


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Endpoint (DomainResource)Identifier for the organization that is used to identify the endpoint across multiple disparate systemsidentifier : Identifier [0..*]The endpoint status represents the general expected availability of an endpoint (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)EndpointStatus! »A coded value that represents the technical details of the usage of this endpoint, such as what WSDLs should be used in what way. (e.g. XDS.b/DICOM/cds-hook)connectionType : CodeableConcept [1..*] « null (Strength=Example)EndpointConnectionType?? »A friendly name that this endpoint can be referred to withname : string [0..1]The description of the endpoint and what it is for (typically used as supplemental information in an endpoint directory describing its usage/purpose)description : string [0..1]The type of environment(s) exposed at this endpoint (dev, prod, test, etc.)environmentType : CodeableConcept [0..*] « null (Strength=Extensible)EndpointEnvironment+ »The organization that manages this endpoint (even if technically another organization is hosting this in the cloud, it is the organization associated with the data)managingOrganization : Reference [0..1] « Organization »Contact details for a human to contact about the endpoint. The primary use of this for system administrator troubleshootingcontact : ContactPoint [0..*]The interval during which the endpoint is expected to be operationalperiod : Period [0..1]The uri that describes the actual end-point to connect toaddress : url [1..1]Additional headers / information to send as part of the notificationheader : string [0..*]PayloadThe payload type describes the acceptable content that can be communicated on the endpointtype : CodeableConcept [0..*] « null (Strength=Example)EndpointPayloadType?? »The mime type to send the payload in - e.g. application/fhir+xml, application/fhir+json. If the mime type is not specified, then the sender could send any content (including no content depending on the connectionType)mimeType : code [0..*] « The mime type of an attachment. Any valid mime type is allowed. (Strength=Required)MimeTypes! »The set of payloads that are provided/available at this endpointpayload[0..*]

XML Template

<Endpoint xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Identifies this endpoint across multiple systems --></identifier>
 <status value="[code]"/><!-- 1..1 active | suspended | error | off | entered-in-error | test -->
 <connectionType><!-- 1..* CodeableConcept Protocol/Profile/Standard to be used with this endpoint connection --></connectionType>
 <name value="[string]"/><!-- 0..1 A name that this endpoint can be identified by -->
 <description value="[string]"/><!-- 0..1 Additional details about the endpoint that could be displayed as further information to identify the description beyond its name -->
 <environmentType><!-- 0..* CodeableConcept The type of environment(s) exposed at this endpoint --></environmentType>
 <managingOrganization><!-- 0..1 Reference(Organization) Organization that manages this endpoint (might not be the organization that exposes the endpoint) --></managingOrganization>
 <contact><!-- 0..* ContactPoint Contact details for source (e.g. troubleshooting) --></contact>
 <period><!-- 0..1 Period Interval the endpoint is expected to be operational --></period>
 <payload>  <!-- 0..* Set of payloads that are provided by this endpoint -->
  <type><!-- 0..* CodeableConcept The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) --></type>
  <mimeType value="[code]"/><!-- 0..* Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) -->
 </payload>
 <address value="[url]"/><!-- 1..1 The technical base address for connecting to this endpoint -->
 <header value="[string]"/><!-- 0..* Usage depends on the channel type -->
</Endpoint>

JSON Template

{doco
  "resourceType" : "Endpoint",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Identifies this endpoint across multiple systems
  "status" : "<code>", // R!  active | suspended | error | off | entered-in-error | test
  "connectionType" : [{ CodeableConcept }], // R!  Protocol/Profile/Standard to be used with this endpoint connection
  "name" : "<string>", // A name that this endpoint can be identified by
  "description" : "<string>", // Additional details about the endpoint that could be displayed as further information to identify the description beyond its name
  "environmentType" : [{ CodeableConcept }], // The type of environment(s) exposed at this endpoint
  "managingOrganization" : { Reference(Organization) }, // Organization that manages this endpoint (might not be the organization that exposes the endpoint)
  "contact" : [{ ContactPoint }], // Contact details for source (e.g. troubleshooting)
  "period" : { Period }, // Interval the endpoint is expected to be operational
  "payload" : [{ // Set of payloads that are provided by this endpoint
    "type" : [{ CodeableConcept }], // The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
    "mimeType" : ["<code>"] // Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
  }],
  "address" : "<url>", // R!  The technical base address for connecting to this endpoint
  "header" : ["<string>"] // Usage depends on the channel type
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Endpoint;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Identifies this endpoint across multiple systems
  fhir:status [ code ] ; # 1..1 active | suspended | error | off | entered-in-error | test
  fhir:connectionType  ( [ CodeableConcept ] ... ) ; # 1..* Protocol/Profile/Standard to be used with this endpoint connection
  fhir:name [ string ] ; # 0..1 A name that this endpoint can be identified by
  fhir:description [ string ] ; # 0..1 Additional details about the endpoint that could be displayed as further information to identify the description beyond its name
  fhir:environmentType  ( [ CodeableConcept ] ... ) ; # 0..* The type of environment(s) exposed at this endpoint
  fhir:managingOrganization [ Reference(Organization) ] ; # 0..1 Organization that manages this endpoint (might not be the organization that exposes the endpoint)
  fhir:contact  ( [ ContactPoint ] ... ) ; # 0..* Contact details for source (e.g. troubleshooting)
  fhir:period [ Period ] ; # 0..1 Interval the endpoint is expected to be operational
  fhir:payload ( [ # 0..* Set of payloads that are provided by this endpoint
    fhir:type  ( [ CodeableConcept ] ... ) ; # 0..* The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
    fhir:mimeType  ( [ code ] ... ) ; # 0..* Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
  ] ... ) ;
  fhir:address [ url ] ; # 1..1 The technical base address for connecting to this endpoint
  fhir:header  ( [ string ] ... ) ; # 0..* Usage depends on the channel type
]

Changes from both R4 and R4B

Endpoint
Endpoint.status
  • Remove code test
Endpoint.connectionType
  • Max Cardinality changed from 1 to *
  • Type changed from Coding to CodeableConcept
  • Remove Binding `http://hl7.org/fhir/ValueSet/endpoint-connection-type` (extensible)
Endpoint.description
  • Added Element
Endpoint.environmentType
  • Added Element
Endpoint.payload
  • Added Element
Endpoint.payload.type
  • Moved from Endpoint.payloadType to type
  • Min Cardinality changed from 1 to 0
Endpoint.payload.mimeType
  • Moved from Endpoint.payloadMimeType to mimeType

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

See R4 <--> R5 Conversion Maps (status = See Conversions Summary.)

 

Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis

PathValueSetTypeDocumentation
Endpoint.status EndpointStatus Required

The status of the endpoint.

Endpoint.connectionType EndpointConnectionType Example

This is an example value set defined by the FHIR project, that could be used to represent possible connection type profile values.

Endpoint.environmentType EndpointEnvironment Extensible

The environment type of the endpoint.

Endpoint.payload.type EndpointPayloadType Example

This is an example value set defined by the FHIR project, that could be used to represent possible payload document types.

Endpoint.payload.mimeType MimeTypes (a valid code from urn:ietf:bcp:13)Required

This value set includes all possible codes from BCP-13 (see http://tools.ietf.org/html/bcp13)

Search parameters for this resource. See also the full list of search parameters for this resource, and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
connection-typetokenProtocol/Profile/Standard to be used with this endpoint connectionEndpoint.connectionType
identifiertokenIdentifies this endpoint across multiple systemsEndpoint.identifier
namestringA name that this endpoint can be identified byEndpoint.name
organizationreferenceThe organization that is managing the endpointEndpoint.managingOrganization
(Organization)
payload-typetokenThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)Endpoint.payload.type
statustokenThe current status of the Endpoint (usually expected to be active)Endpoint.status