SMART App Launch
2.2.0 - STU 2.2 International flag

SMART App Launch, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 2.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/smart-app-launch/ and changes regularly. See the Directory of published versions

Resource Profile: SMART App State

Official URL: http://hl7.org/fhir/smart-app-launch/StructureDefinition/smart-app-state-basic Version: 2.2.0
Active as of 2026-09-08 Computable Name: SMARTAppStateBasic

SMART App State profile on Basic resource

See App State capability for requirements, usage notes, and examples.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Basic 0..* Basic Resource for non-supported content
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... code ?!Σ 1..1 CodeableConcept Kind of Resource
Binding: BasicResourceTypes (example): Codes for identifying types of resources not yet defined by FHIR.
.... coding Σ 1..1 Coding Code defined by a terminology system

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Basic.code Base example Basic Resource Types 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Basic If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Basic If 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-4 error Basic If 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-5 error Basic If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Basic A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Basic 0..* Basic Resource for non-supported content
... extension
.... extension 0..0 Extension
.... value[x] 0..1 string Value of extension
... code
.... coding 1..1 Coding Code defined by a terminology system

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Basic 0..* Basic Resource for non-supported content
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... url 1..1 uri identifies the meaning of the extension
.... value[x] 0..1 string Value of extension
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Business identifier
... code ?!Σ 1..1 CodeableConcept Kind of Resource
Binding: BasicResourceTypes (example): Codes for identifying types of resources not yet defined by FHIR.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
.... text Σ 0..1 string Plain text representation of the concept
... subject Σ 0..1 Reference(Resource) Identifies the focus of this resource
... created Σ 0..1 date When created
... author Σ 0..1 Reference(Practitioner | PractitionerRole | Patient | RelatedPerson | Organization) Who created

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Basic.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Basic.code Base example Basic Resource Types 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Basic If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Basic If 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-4 error Basic If 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-5 error Basic If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Basic A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Summary

Mandatory: 1 element
Prohibited: 1 element

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Basic 0..* Basic Resource for non-supported content
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... code ?!Σ 1..1 CodeableConcept Kind of Resource
Binding: BasicResourceTypes (example): Codes for identifying types of resources not yet defined by FHIR.
.... coding Σ 1..1 Coding Code defined by a terminology system

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Basic.code Base example Basic Resource Types 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Basic If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Basic If 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-4 error Basic If 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-5 error Basic If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Basic A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Basic 0..* Basic Resource for non-supported content
... extension
.... extension 0..0 Extension
.... value[x] 0..1 string Value of extension
... code
.... coding 1..1 Coding Code defined by a terminology system

doco Documentation for this format

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Basic 0..* Basic Resource for non-supported content
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... url 1..1 uri identifies the meaning of the extension
.... value[x] 0..1 string Value of extension
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Business identifier
... code ?!Σ 1..1 CodeableConcept Kind of Resource
Binding: BasicResourceTypes (example): Codes for identifying types of resources not yet defined by FHIR.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
.... text Σ 0..1 string Plain text representation of the concept
... subject Σ 0..1 Reference(Resource) Identifies the focus of this resource
... created Σ 0..1 date When created
... author Σ 0..1 Reference(Practitioner | PractitionerRole | Patient | RelatedPerson | Organization) Who created

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Basic.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Basic.code Base example Basic Resource Types 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Basic If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Basic If 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-4 error Basic If 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-5 error Basic If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Basic A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Summary

Mandatory: 1 element
Prohibited: 1 element

 

Other representations of profile: CSV, Excel, Schematron