R4 Ballot #2 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.5.0: R4 Ballot #2). The current version which supercedes this version is 5.0.0. 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 Work GroupMaturity Level: 2 Trial Use Compartments: Not linked to any defined compartments

The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b or a REST endpoint for another FHIR server. 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 for imaging content and metadata (QIDO-RS, WADO-RS, or WADO-URI)

The endpoint is distinct from a capability statement in that the CapabilityStatement statement describes the entire capability of a server (and in the metadata case, just this server)
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 server'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 vaue 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. Generally it is used to communicate with an entity directly, not a system.

  • Any solution where there are distributed FHIR servers deployed and need discovery/configuration
  • (Refer to the scope and usage section for common uses)

This resource is referenced by HealthcareService, ImagingStudy, InsurancePlan, Location, Organization, OrganizationAffiliation and PractitionerRole

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
EndpointStatus (Required)
... connectionType Σ1..1CodingProtocol/Profile/Standard to be used with this endpoint connection
Endpoint Connection Type (Extensible)
... name Σ0..1stringA name that this endpoint can be identified by
... 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
... payloadType Σ1..*CodeableConceptThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Endpoint Payload Type (Example)
... payloadMimeType Σ0..*codeMimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
MimeType (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

UML Diagram (Legend)

Endpoint (DomainResource)Identifier for the organization that is used to identify the endpoint across multiple disparate systemsidentifier : Identifier [0..*]active | suspended | error | off | test (this element modifies the meaning of other elements)status : code [1..1] « The status of the endpoint. (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 : Coding [1..1] « (Strength=Extensible)EndpointConnectionType+ »A friendly name that this endpoint can be referred to withname : string [0..1]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 subscription. 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 payload type describes the acceptable content that can be communicated on the endpointpayloadType : CodeableConcept [1..*] « (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)payloadMimeType : code [0..*] « The mime type of an attachment. Any valid mime type is allowed. (Strength=Required)Mime Types! »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..*]

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:Endpoint.identifier [ Identifier ], ... ; # 0..* Identifies this endpoint across multiple systems
  fhir:Endpoint.status [ code ]; # 1..1 active | suspended | error | off | entered-in-error | test
  fhir:Endpoint.connectionType [ Coding ]; # 1..1 Protocol/Profile/Standard to be used with this endpoint connection
  fhir:Endpoint.name [ string ]; # 0..1 A name that this endpoint can be identified by
  fhir:Endpoint.managingOrganization [ Reference(Organization) ]; # 0..1 Organization that manages this endpoint (might not be the organization that exposes the endpoint)
  fhir:Endpoint.contact [ ContactPoint ], ... ; # 0..* Contact details for source (e.g. troubleshooting)
  fhir:Endpoint.period [ Period ]; # 0..1 Interval the endpoint is expected to be operational
  fhir:Endpoint.payloadType [ CodeableConcept ], ... ; # 1..* The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
  fhir:Endpoint.payloadMimeType [ code ], ... ; # 0..* Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
  fhir:Endpoint.address [ url ]; # 1..1 The technical base address for connecting to this endpoint
  fhir:Endpoint.header [ string ], ... ; # 0..* Usage depends on the channel type
]

Changes since R3

Endpoint
Endpoint.address
  • Type changed from uri to url

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 3 tests that all execute ok. 3 fail round-trip testing and 3 r3 resources are invalid (0 errors).)

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
EndpointStatus (Required)
... connectionType Σ1..1CodingProtocol/Profile/Standard to be used with this endpoint connection
Endpoint Connection Type (Extensible)
... name Σ0..1stringA name that this endpoint can be identified by
... 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
... payloadType Σ1..*CodeableConceptThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Endpoint Payload Type (Example)
... payloadMimeType Σ0..*codeMimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
MimeType (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

UML Diagram (Legend)

Endpoint (DomainResource)Identifier for the organization that is used to identify the endpoint across multiple disparate systemsidentifier : Identifier [0..*]active | suspended | error | off | test (this element modifies the meaning of other elements)status : code [1..1] « The status of the endpoint. (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 : Coding [1..1] « (Strength=Extensible)EndpointConnectionType+ »A friendly name that this endpoint can be referred to withname : string [0..1]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 subscription. 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 payload type describes the acceptable content that can be communicated on the endpointpayloadType : CodeableConcept [1..*] « (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)payloadMimeType : code [0..*] « The mime type of an attachment. Any valid mime type is allowed. (Strength=Required)Mime Types! »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..*]

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:Endpoint.identifier [ Identifier ], ... ; # 0..* Identifies this endpoint across multiple systems
  fhir:Endpoint.status [ code ]; # 1..1 active | suspended | error | off | entered-in-error | test
  fhir:Endpoint.connectionType [ Coding ]; # 1..1 Protocol/Profile/Standard to be used with this endpoint connection
  fhir:Endpoint.name [ string ]; # 0..1 A name that this endpoint can be identified by
  fhir:Endpoint.managingOrganization [ Reference(Organization) ]; # 0..1 Organization that manages this endpoint (might not be the organization that exposes the endpoint)
  fhir:Endpoint.contact [ ContactPoint ], ... ; # 0..* Contact details for source (e.g. troubleshooting)
  fhir:Endpoint.period [ Period ]; # 0..1 Interval the endpoint is expected to be operational
  fhir:Endpoint.payloadType [ CodeableConcept ], ... ; # 1..* The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
  fhir:Endpoint.payloadMimeType [ code ], ... ; # 0..* Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
  fhir:Endpoint.address [ url ]; # 1..1 The technical base address for connecting to this endpoint
  fhir:Endpoint.header [ string ], ... ; # 0..* Usage depends on the channel type
]

Changes since Release 3

Endpoint
Endpoint.address
  • Type changed from uri to url

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 3 tests that all execute ok. 3 fail round-trip testing and 3 r3 resources are invalid (0 errors).)

 

See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the dependency analysis

PathDefinitionTypeReference
Endpoint.status The status of the endpoint.RequiredEndpointStatus
Endpoint.connectionType ExtensibleEndpointConnectionType
Endpoint.payloadType ExampleEndpointPayloadType
Endpoint.payloadMimeType The mime type of an attachment. Any valid mime type is allowed.RequiredMime Types

Search parameters for 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.where(resolve() is Organization)
(Organization)
payload-typetokenThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)Endpoint.payloadType
statustokenThe current status of the Endpoint (usually expected to be active)Endpoint.status