SMART App Launch
2.2.0-ballot - CI-Build International flag

This page is part of the Smart App Launch Implementation Guide (v2.2.0-ballot: STU 2.2 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 2.1.0. For a full list of available versions, see the Directory of published versions

Resource Profile: Patient Access Endpoint Profile

Official URL: http://hl7.org/fhir/smart-app-launch/StructureDefinition/patient-access-endpoint Version: 2.2.0-ballot
Active as of 2023-08-31 Computable Name: PatientAccessEndpoint

Profile on Endpoint associated with a Patient Access Brand.

For background and context, see Patient Access Brands Overview.

In addition to the core data elements on Endpoint, one key extension is used in this profile:

Notes:

  • 0..1 name Conveys a fallback or default name describing the endpoint and the organization offering Patient API access at this endpoint. This value MAY contain technical details like FHIR API Version designations and apps SHOULD preferentially use names from an associated PatientAccessBrand rather than displaying this value to users.
  • 1..* MS contact website where developers can configure access to this endpoint, providing at least one "system": "url" contact point where the value is an https:// URL intended for app developers
  • 1..1 MS address FHIR base URL for server supporting patient access

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from Endpoint

NameFlagsCard.TypeDescription & Constraintsdoco
.. Endpoint 0..*EndpointPatient Access Endpoint
... Slices for extension 1..*ExtensionExtension
Slice: Unordered, Open by value:url
... fhir-version S1..*codeEndpoint FHIR Version
URL: http://hl7.org/fhir/StructureDefinition/endpoint-fhir-version
Binding: FHIRVersion (required)
... status S1..1codeactive | suspended | error | off | entered-in-error | test
.... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-connection-type
.... code1..1codeSymbol in syntax defined by the system
Fixed Value: hl7-fhir-rest
... name 0..1stringA name that this endpoint can be identified by
... Slices for contact S1..*ContactPointContact information for the endpoint.
Slice: Unordered, Open by value:system
.... contact:configuration-url S1..*ContactPointWebsite where developers can configure access to this endpoint
..... system S1..1codephone | fax | email | pager | url | sms | other
Fixed Value: url
..... value S1..1stringan https:// URL for app developers
... payloadType S1..1CodeableConceptThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Required Pattern: At least the following
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: none
... address S1..1urlFHIR base URL for servers supporting patient access

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Endpoint 0..*EndpointPatient Access Endpoint
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... Slices for extension 1..*ExtensionExtension
Slice: Unordered, Open by value:url
... fhir-version S1..*codeEndpoint FHIR Version
URL: http://hl7.org/fhir/StructureDefinition/endpoint-fhir-version
Binding: FHIRVersion (required)
... status ?!SΣ1..1codeactive | suspended | error | off | entered-in-error | test
Binding: EndpointStatus (required): The status of the endpoint.

... connectionType SΣ1..1CodingProtocol/Profile/Standard to be used with this endpoint connection
Binding: EndpointConnectionType (extensible)
Required Pattern: At least the following
.... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-connection-type
.... code1..1codeSymbol in syntax defined by the system
Fixed Value: hl7-fhir-rest
... name Σ0..1stringA name that this endpoint can be identified by
... Slices for contact S1..*ContactPointContact information for the endpoint.
Slice: Unordered, Open by value:system
.... contact:configuration-url S1..*ContactPointWebsite where developers can configure access to this endpoint
..... system SΣC1..1codephone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.


Fixed Value: url
..... value SΣ1..1stringan https:// URL for app developers
..... use ?!Σ0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

... payloadType SΣ1..1CodeableConceptThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Binding: EndpointPayloadType (example)

Required Pattern: At least the following
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: none
... address SΣ1..1urlFHIR base URL for servers supporting patient access

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Endpoint.statusrequiredEndpointStatus
Endpoint.connectionTypeextensiblePattern: hl7-fhir-rest
Endpoint.contact:configuration-url.systemrequiredFixed Value: url
Endpoint.contact:configuration-url.userequiredContactPointUse
Endpoint.payloadTypeexamplePattern: none

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorEndpointIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorEndpointIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorEndpointIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorEndpointIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceEndpointA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Endpoint 0..*EndpointPatient Access Endpoint
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 1..*ExtensionExtension
Slice: Unordered, Open by value:url
... fhir-version S1..*codeEndpoint FHIR Version
URL: http://hl7.org/fhir/StructureDefinition/endpoint-fhir-version
Binding: FHIRVersion (required)
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierIdentifies this endpoint across multiple systems
... status ?!SΣ1..1codeactive | suspended | error | off | entered-in-error | test
Binding: EndpointStatus (required): The status of the endpoint.

... connectionType SΣ1..1CodingProtocol/Profile/Standard to be used with this endpoint connection
Binding: EndpointConnectionType (extensible)
Required Pattern: At least the following
.... id0..1stringUnique id for inter-element referencing
.... extension0..*ExtensionAdditional content defined by implementations
.... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-connection-type
.... version0..1stringVersion of the system - if relevant
.... code1..1codeSymbol in syntax defined by the system
Fixed Value: hl7-fhir-rest
.... display0..1stringRepresentation defined by the system
.... userSelected0..1booleanIf this coding was chosen directly by the user
... 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)
... Slices for contact S1..*ContactPointContact information for the endpoint.
Slice: Unordered, Open by value:system
.... contact:configuration-url S1..*ContactPointWebsite where developers can configure access to this endpoint
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... system SΣC1..1codephone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.


Fixed Value: url
..... value SΣ1..1stringan https:// URL for app developers
..... use ?!Σ0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

..... rank Σ0..1positiveIntSpecify preferred order of use (1 = highest)
..... period Σ0..1PeriodTime period when the contact point was/is in use
... period Σ0..1PeriodInterval the endpoint is expected to be operational
... payloadType SΣ1..1CodeableConceptThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Binding: EndpointPayloadType (example)

Required Pattern: At least the following
.... id0..1stringUnique id for inter-element referencing
.... extension0..*ExtensionAdditional content defined by implementations
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type
..... version0..1stringVersion of the system - if relevant
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: none
..... display0..1stringRepresentation defined by the system
..... userSelected0..1booleanIf this coding was chosen directly by the user
.... text0..1stringPlain text representation of the concept
... payloadMimeType Σ0..*codeMimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.


... address SΣ1..1urlFHIR base URL for servers supporting patient access
... header 0..*stringUsage depends on the channel type

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Endpoint.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Endpoint.statusrequiredEndpointStatus
Endpoint.connectionTypeextensiblePattern: hl7-fhir-rest
Endpoint.contact:configuration-url.systemrequiredFixed Value: url
Endpoint.contact:configuration-url.userequiredContactPointUse
Endpoint.payloadTypeexamplePattern: none
Endpoint.payloadMimeTyperequiredMime Types (a valid code from urn:ietf:bcp:13)

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorEndpointIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorEndpointIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorEndpointIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorEndpointIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceEndpointA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Endpoint

Summary

Mandatory: 6 elements
Must-Support: 9 elements
Fixed Value: 1 element

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element Endpoint.contact is sliced based on the value of value:system

Differential View

This structure is derived from Endpoint

NameFlagsCard.TypeDescription & Constraintsdoco
.. Endpoint 0..*EndpointPatient Access Endpoint
... Slices for extension 1..*ExtensionExtension
Slice: Unordered, Open by value:url
... fhir-version S1..*codeEndpoint FHIR Version
URL: http://hl7.org/fhir/StructureDefinition/endpoint-fhir-version
Binding: FHIRVersion (required)
... status S1..1codeactive | suspended | error | off | entered-in-error | test
.... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-connection-type
.... code1..1codeSymbol in syntax defined by the system
Fixed Value: hl7-fhir-rest
... name 0..1stringA name that this endpoint can be identified by
... Slices for contact S1..*ContactPointContact information for the endpoint.
Slice: Unordered, Open by value:system
.... contact:configuration-url S1..*ContactPointWebsite where developers can configure access to this endpoint
..... system S1..1codephone | fax | email | pager | url | sms | other
Fixed Value: url
..... value S1..1stringan https:// URL for app developers
... payloadType S1..1CodeableConceptThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Required Pattern: At least the following
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: none
... address S1..1urlFHIR base URL for servers supporting patient access

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Endpoint 0..*EndpointPatient Access Endpoint
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... Slices for extension 1..*ExtensionExtension
Slice: Unordered, Open by value:url
... fhir-version S1..*codeEndpoint FHIR Version
URL: http://hl7.org/fhir/StructureDefinition/endpoint-fhir-version
Binding: FHIRVersion (required)
... status ?!SΣ1..1codeactive | suspended | error | off | entered-in-error | test
Binding: EndpointStatus (required): The status of the endpoint.

... connectionType SΣ1..1CodingProtocol/Profile/Standard to be used with this endpoint connection
Binding: EndpointConnectionType (extensible)
Required Pattern: At least the following
.... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-connection-type
.... code1..1codeSymbol in syntax defined by the system
Fixed Value: hl7-fhir-rest
... name Σ0..1stringA name that this endpoint can be identified by
... Slices for contact S1..*ContactPointContact information for the endpoint.
Slice: Unordered, Open by value:system
.... contact:configuration-url S1..*ContactPointWebsite where developers can configure access to this endpoint
..... system SΣC1..1codephone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.


Fixed Value: url
..... value SΣ1..1stringan https:// URL for app developers
..... use ?!Σ0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

... payloadType SΣ1..1CodeableConceptThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Binding: EndpointPayloadType (example)

Required Pattern: At least the following
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: none
... address SΣ1..1urlFHIR base URL for servers supporting patient access

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Endpoint.statusrequiredEndpointStatus
Endpoint.connectionTypeextensiblePattern: hl7-fhir-rest
Endpoint.contact:configuration-url.systemrequiredFixed Value: url
Endpoint.contact:configuration-url.userequiredContactPointUse
Endpoint.payloadTypeexamplePattern: none

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorEndpointIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorEndpointIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorEndpointIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorEndpointIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceEndpointA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Endpoint 0..*EndpointPatient Access Endpoint
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 1..*ExtensionExtension
Slice: Unordered, Open by value:url
... fhir-version S1..*codeEndpoint FHIR Version
URL: http://hl7.org/fhir/StructureDefinition/endpoint-fhir-version
Binding: FHIRVersion (required)
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierIdentifies this endpoint across multiple systems
... status ?!SΣ1..1codeactive | suspended | error | off | entered-in-error | test
Binding: EndpointStatus (required): The status of the endpoint.

... connectionType SΣ1..1CodingProtocol/Profile/Standard to be used with this endpoint connection
Binding: EndpointConnectionType (extensible)
Required Pattern: At least the following
.... id0..1stringUnique id for inter-element referencing
.... extension0..*ExtensionAdditional content defined by implementations
.... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-connection-type
.... version0..1stringVersion of the system - if relevant
.... code1..1codeSymbol in syntax defined by the system
Fixed Value: hl7-fhir-rest
.... display0..1stringRepresentation defined by the system
.... userSelected0..1booleanIf this coding was chosen directly by the user
... 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)
... Slices for contact S1..*ContactPointContact information for the endpoint.
Slice: Unordered, Open by value:system
.... contact:configuration-url S1..*ContactPointWebsite where developers can configure access to this endpoint
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... system SΣC1..1codephone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.


Fixed Value: url
..... value SΣ1..1stringan https:// URL for app developers
..... use ?!Σ0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

..... rank Σ0..1positiveIntSpecify preferred order of use (1 = highest)
..... period Σ0..1PeriodTime period when the contact point was/is in use
... period Σ0..1PeriodInterval the endpoint is expected to be operational
... payloadType SΣ1..1CodeableConceptThe type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Binding: EndpointPayloadType (example)

Required Pattern: At least the following
.... id0..1stringUnique id for inter-element referencing
.... extension0..*ExtensionAdditional content defined by implementations
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type
..... version0..1stringVersion of the system - if relevant
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: none
..... display0..1stringRepresentation defined by the system
..... userSelected0..1booleanIf this coding was chosen directly by the user
.... text0..1stringPlain text representation of the concept
... payloadMimeType Σ0..*codeMimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.


... address SΣ1..1urlFHIR base URL for servers supporting patient access
... header 0..*stringUsage depends on the channel type

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Endpoint.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Endpoint.statusrequiredEndpointStatus
Endpoint.connectionTypeextensiblePattern: hl7-fhir-rest
Endpoint.contact:configuration-url.systemrequiredFixed Value: url
Endpoint.contact:configuration-url.userequiredContactPointUse
Endpoint.payloadTypeexamplePattern: none
Endpoint.payloadMimeTyperequiredMime Types (a valid code from urn:ietf:bcp:13)

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorEndpointIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorEndpointIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorEndpointIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorEndpointIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceEndpointA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Endpoint

Summary

Mandatory: 6 elements
Must-Support: 9 elements
Fixed Value: 1 element

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element Endpoint.contact is sliced based on the value of value:system

 

Other representations of profile: CSV, Excel, Schematron