Structured Data Capture
3.0.0-preview - STU 3 International flag

This page is part of the Structured Data Capture FHIR IG (v3.0.0-preview: STU 3 Draft) based on FHIR R4. The current version which supercedes this version is 3.0.0. For a full list of available versions, see the Directory of published versions

Extension: Launch Contexts

Official URL: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-launchContext Version: 3.0.0-preview
Standards status: Trial-use Maturity Level: 3 Computable Name: LaunchContextExtension

Resources that provide context for form processing logic (pre-population, flow-control, drop-down selection, etc.) when creating/displaying/editing a QuestionnaireResponse.

Indicates to systems creating or updating a QuestionnaireResponse what types of information to pass in for internal processing. May also influence things like SMART on FHIR permission requests.

Context of Use

This extension may be used on the following element(s):

  • Questionnaire

Scope and Usage

If a name is specified other than one of those specified in the value set, systems will have to come to prior agreement and write code to support the additional name. It will not be possible to dynamically automatically support new launch contexts without writing custom code. In addition, 'custom' names SHOULD have a prefix such that they won't collide with new standard context names introduced by future versions of SDC.

Additional details on the use of this extension can be found on the Form Behavior page.

Usage info

Usage:

Formal Views of Extension Content

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

This structure is derived from Extension

Summary

Mandatory: 4 elements (1 nested mandatory element)
Fixed Value: 4 elements
Prohibited: 1 element

Maturity: 3

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension I0..*ExtensionContext resources needed for Questionnaire
inv-1: Types must be from the specified value set of resource types based on name: patient: Patient; user: Patient, Practitioner, PractitionerRole, RelatedPerson (could be a subset of these); encounter: Encounter; location: Location; study: ResearchStudy
... extension:name 1..1ExtensionVariable name
.... url 1..1uri"name"
.... value[x] 1..1CodingValue of extension
Binding: Questionnaire Launch Context (extensible): Launch context codes for use in defining questionnaires context at launch time (NOTE: the Coding.code will be used for the variable name and that (at present) there is no support for Questionnaires that use multiple launch contexts which share a common code but different code systems. Also, all launch context codes must meet the requirements to be a valid FHIRPath name.).

... extension:type 1..*ExtensionResource type
.... url 1..1uri"type"
.... value[x] 1..1codeValue of extension
Binding: ResourceType (required)
... extension:description 0..1ExtensionExplanation of context element
.... url 1..1uri"description"
.... value[x] 1..1stringValue of extension
... value[x] 0..0

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension I0..*ExtensionContext resources needed for Questionnaire
inv-1: Types must be from the specified value set of resource types based on name: patient: Patient; user: Patient, Practitioner, PractitionerRole, RelatedPerson (could be a subset of these); encounter: Encounter; location: Location; study: ResearchStudy
... id 0..1stringUnique id for inter-element referencing
... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:name 1..1ExtensionVariable name
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... url 1..1uriidentifies the meaning of the extension
..... value[x] 0..1Value of extension
...... valueBase64Binarybase64Binary
...... valueBooleanboolean
...... valueCanonicalcanonical(Any)
...... valueCodecode
...... valueDatedate
...... valueDateTimedateTime
...... valueDecimaldecimal
...... valueIdid
...... valueInstantinstant
...... valueIntegerinteger
...... valueMarkdownmarkdown
...... valueOidoid
...... valuePositiveIntpositiveInt
...... valueStringstring
...... valueTimetime
...... valueUnsignedIntunsignedInt
...... valueUriuri
...... valueUrlurl
...... valueUuiduuid
...... valueAddressAddress
...... valueAgeAge
...... valueAnnotationAnnotation
...... valueAttachmentAttachment
...... valueCodeableConceptCodeableConcept
...... valueCodingCoding
...... valueContactPointContactPoint
...... valueCountCount
...... valueDistanceDistance
...... valueDurationDuration
...... valueHumanNameHumanName
...... valueIdentifierIdentifier
...... valueMoneyMoney
...... valuePeriodPeriod
...... valueQuantityQuantity
...... valueRangeRange
...... valueRatioRatio
...... valueReferenceReference(Any)
...... valueSampledDataSampledData
...... valueSignatureSignature
...... valueTimingTiming
...... valueContactDetailContactDetail
...... valueContributorContributor
...... valueDataRequirementDataRequirement
...... valueExpressionExpression
...... valueParameterDefinitionParameterDefinition
...... valueRelatedArtifactRelatedArtifact
...... valueTriggerDefinitionTriggerDefinition
...... valueUsageContextUsageContext
...... valueDosageDosage
...... valueMetaMeta
.... url 1..1uri"name"
.... value[x] 1..1CodingValue of extension
Binding: Questionnaire Launch Context (extensible): Launch context codes for use in defining questionnaires context at launch time (NOTE: the Coding.code will be used for the variable name and that (at present) there is no support for Questionnaires that use multiple launch contexts which share a common code but different code systems. Also, all launch context codes must meet the requirements to be a valid FHIRPath name.).

.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... url 1..1uriidentifies the meaning of the extension
..... value[x] 0..1Value of extension
...... valueBase64Binarybase64Binary
...... valueBooleanboolean
...... valueCanonicalcanonical(Any)
...... valueCodecode
...... valueDatedate
...... valueDateTimedateTime
...... valueDecimaldecimal
...... valueIdid
...... valueInstantinstant
...... valueIntegerinteger
...... valueMarkdownmarkdown
...... valueOidoid
...... valuePositiveIntpositiveInt
...... valueStringstring
...... valueTimetime
...... valueUnsignedIntunsignedInt
...... valueUriuri
...... valueUrlurl
...... valueUuiduuid
...... valueAddressAddress
...... valueAgeAge
...... valueAnnotationAnnotation
...... valueAttachmentAttachment
...... valueCodeableConceptCodeableConcept
...... valueCodingCoding
...... valueContactPointContactPoint
...... valueCountCount
...... valueDistanceDistance
...... valueDurationDuration
...... valueHumanNameHumanName
...... valueIdentifierIdentifier
...... valueMoneyMoney
...... valuePeriodPeriod
...... valueQuantityQuantity
...... valueRangeRange
...... valueRatioRatio
...... valueReferenceReference(Any)
...... valueSampledDataSampledData
...... valueSignatureSignature
...... valueTimingTiming
...... valueContactDetailContactDetail
...... valueContributorContributor
...... valueDataRequirementDataRequirement
...... valueExpressionExpression
...... valueParameterDefinitionParameterDefinition
...... valueRelatedArtifactRelatedArtifact
...... valueTriggerDefinitionTriggerDefinition
...... valueUsageContextUsageContext
...... valueDosageDosage
...... valueMetaMeta
.... url 1..1uri"type"
.... value[x] 1..1codeValue of extension
Binding: ResourceType (required)
... extension:description 0..1ExtensionExplanation of context element
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... url 1..1uriidentifies the meaning of the extension
..... value[x] 0..1Value of extension
...... valueBase64Binarybase64Binary
...... valueBooleanboolean
...... valueCanonicalcanonical(Any)
...... valueCodecode
...... valueDatedate
...... valueDateTimedateTime
...... valueDecimaldecimal
...... valueIdid
...... valueInstantinstant
...... valueIntegerinteger
...... valueMarkdownmarkdown
...... valueOidoid
...... valuePositiveIntpositiveInt
...... valueStringstring
...... valueTimetime
...... valueUnsignedIntunsignedInt
...... valueUriuri
...... valueUrlurl
...... valueUuiduuid
...... valueAddressAddress
...... valueAgeAge
...... valueAnnotationAnnotation
...... valueAttachmentAttachment
...... valueCodeableConceptCodeableConcept
...... valueCodingCoding
...... valueContactPointContactPoint
...... valueCountCount
...... valueDistanceDistance
...... valueDurationDuration
...... valueHumanNameHumanName
...... valueIdentifierIdentifier
...... valueMoneyMoney
...... valuePeriodPeriod
...... valueQuantityQuantity
...... valueRangeRange
...... valueRatioRatio
...... valueReferenceReference(Any)
...... valueSampledDataSampledData
...... valueSignatureSignature
...... valueTimingTiming
...... valueContactDetailContactDetail
...... valueContributorContributor
...... valueDataRequirementDataRequirement
...... valueExpressionExpression
...... valueParameterDefinitionParameterDefinition
...... valueRelatedArtifactRelatedArtifact
...... valueTriggerDefinitionTriggerDefinition
...... valueUsageContextUsageContext
...... valueDosageDosage
...... valueMetaMeta
.... url 1..1uri"description"
.... value[x] 1..1stringValue of extension
... url 1..1uri"http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-launchContext"

doco Documentation for this format

This structure is derived from Extension

Summary

Mandatory: 4 elements (1 nested mandatory element)
Fixed Value: 4 elements
Prohibited: 1 element

Maturity: 3

Differential View

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension I0..*ExtensionContext resources needed for Questionnaire
inv-1: Types must be from the specified value set of resource types based on name: patient: Patient; user: Patient, Practitioner, PractitionerRole, RelatedPerson (could be a subset of these); encounter: Encounter; location: Location; study: ResearchStudy
... extension:name 1..1ExtensionVariable name
.... url 1..1uri"name"
.... value[x] 1..1CodingValue of extension
Binding: Questionnaire Launch Context (extensible): Launch context codes for use in defining questionnaires context at launch time (NOTE: the Coding.code will be used for the variable name and that (at present) there is no support for Questionnaires that use multiple launch contexts which share a common code but different code systems. Also, all launch context codes must meet the requirements to be a valid FHIRPath name.).

... extension:type 1..*ExtensionResource type
.... url 1..1uri"type"
.... value[x] 1..1codeValue of extension
Binding: ResourceType (required)
... extension:description 0..1ExtensionExplanation of context element
.... url 1..1uri"description"
.... value[x] 1..1stringValue of extension
... value[x] 0..0

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension I0..*ExtensionContext resources needed for Questionnaire
inv-1: Types must be from the specified value set of resource types based on name: patient: Patient; user: Patient, Practitioner, PractitionerRole, RelatedPerson (could be a subset of these); encounter: Encounter; location: Location; study: ResearchStudy
... id 0..1stringUnique id for inter-element referencing
... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:name 1..1ExtensionVariable name
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... url 1..1uriidentifies the meaning of the extension
..... value[x] 0..1Value of extension
...... valueBase64Binarybase64Binary
...... valueBooleanboolean
...... valueCanonicalcanonical(Any)
...... valueCodecode
...... valueDatedate
...... valueDateTimedateTime
...... valueDecimaldecimal
...... valueIdid
...... valueInstantinstant
...... valueIntegerinteger
...... valueMarkdownmarkdown
...... valueOidoid
...... valuePositiveIntpositiveInt
...... valueStringstring
...... valueTimetime
...... valueUnsignedIntunsignedInt
...... valueUriuri
...... valueUrlurl
...... valueUuiduuid
...... valueAddressAddress
...... valueAgeAge
...... valueAnnotationAnnotation
...... valueAttachmentAttachment
...... valueCodeableConceptCodeableConcept
...... valueCodingCoding
...... valueContactPointContactPoint
...... valueCountCount
...... valueDistanceDistance
...... valueDurationDuration
...... valueHumanNameHumanName
...... valueIdentifierIdentifier
...... valueMoneyMoney
...... valuePeriodPeriod
...... valueQuantityQuantity
...... valueRangeRange
...... valueRatioRatio
...... valueReferenceReference(Any)
...... valueSampledDataSampledData
...... valueSignatureSignature
...... valueTimingTiming
...... valueContactDetailContactDetail
...... valueContributorContributor
...... valueDataRequirementDataRequirement
...... valueExpressionExpression
...... valueParameterDefinitionParameterDefinition
...... valueRelatedArtifactRelatedArtifact
...... valueTriggerDefinitionTriggerDefinition
...... valueUsageContextUsageContext
...... valueDosageDosage
...... valueMetaMeta
.... url 1..1uri"name"
.... value[x] 1..1CodingValue of extension
Binding: Questionnaire Launch Context (extensible): Launch context codes for use in defining questionnaires context at launch time (NOTE: the Coding.code will be used for the variable name and that (at present) there is no support for Questionnaires that use multiple launch contexts which share a common code but different code systems. Also, all launch context codes must meet the requirements to be a valid FHIRPath name.).

.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... url 1..1uriidentifies the meaning of the extension
..... value[x] 0..1Value of extension
...... valueBase64Binarybase64Binary
...... valueBooleanboolean
...... valueCanonicalcanonical(Any)
...... valueCodecode
...... valueDatedate
...... valueDateTimedateTime
...... valueDecimaldecimal
...... valueIdid
...... valueInstantinstant
...... valueIntegerinteger
...... valueMarkdownmarkdown
...... valueOidoid
...... valuePositiveIntpositiveInt
...... valueStringstring
...... valueTimetime
...... valueUnsignedIntunsignedInt
...... valueUriuri
...... valueUrlurl
...... valueUuiduuid
...... valueAddressAddress
...... valueAgeAge
...... valueAnnotationAnnotation
...... valueAttachmentAttachment
...... valueCodeableConceptCodeableConcept
...... valueCodingCoding
...... valueContactPointContactPoint
...... valueCountCount
...... valueDistanceDistance
...... valueDurationDuration
...... valueHumanNameHumanName
...... valueIdentifierIdentifier
...... valueMoneyMoney
...... valuePeriodPeriod
...... valueQuantityQuantity
...... valueRangeRange
...... valueRatioRatio
...... valueReferenceReference(Any)
...... valueSampledDataSampledData
...... valueSignatureSignature
...... valueTimingTiming
...... valueContactDetailContactDetail
...... valueContributorContributor
...... valueDataRequirementDataRequirement
...... valueExpressionExpression
...... valueParameterDefinitionParameterDefinition
...... valueRelatedArtifactRelatedArtifact
...... valueTriggerDefinitionTriggerDefinition
...... valueUsageContextUsageContext
...... valueDosageDosage
...... valueMetaMeta
.... url 1..1uri"type"
.... value[x] 1..1codeValue of extension
Binding: ResourceType (required)
... extension:description 0..1ExtensionExplanation of context element
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... url 1..1uriidentifies the meaning of the extension
..... value[x] 0..1Value of extension
...... valueBase64Binarybase64Binary
...... valueBooleanboolean
...... valueCanonicalcanonical(Any)
...... valueCodecode
...... valueDatedate
...... valueDateTimedateTime
...... valueDecimaldecimal
...... valueIdid
...... valueInstantinstant
...... valueIntegerinteger
...... valueMarkdownmarkdown
...... valueOidoid
...... valuePositiveIntpositiveInt
...... valueStringstring
...... valueTimetime
...... valueUnsignedIntunsignedInt
...... valueUriuri
...... valueUrlurl
...... valueUuiduuid
...... valueAddressAddress
...... valueAgeAge
...... valueAnnotationAnnotation
...... valueAttachmentAttachment
...... valueCodeableConceptCodeableConcept
...... valueCodingCoding
...... valueContactPointContactPoint
...... valueCountCount
...... valueDistanceDistance
...... valueDurationDuration
...... valueHumanNameHumanName
...... valueIdentifierIdentifier
...... valueMoneyMoney
...... valuePeriodPeriod
...... valueQuantityQuantity
...... valueRangeRange
...... valueRatioRatio
...... valueReferenceReference(Any)
...... valueSampledDataSampledData
...... valueSignatureSignature
...... valueTimingTiming
...... valueContactDetailContactDetail
...... valueContributorContributor
...... valueDataRequirementDataRequirement
...... valueExpressionExpression
...... valueParameterDefinitionParameterDefinition
...... valueRelatedArtifactRelatedArtifact
...... valueTriggerDefinitionTriggerDefinition
...... valueUsageContextUsageContext
...... valueDosageDosage
...... valueMetaMeta
.... url 1..1uri"description"
.... value[x] 1..1stringValue of extension
... url 1..1uri"http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-launchContext"

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet
Extension.extension:name.value[x]extensibleQuestionnaireLaunchContext
Extension.extension:type.value[x]requiredResourceType

Constraints

IdGradePathDetailsRequirements
ele-1errorExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
inv-1errorExtensionTypes must be from the specified value set of resource types based on name: patient: Patient; user: Patient, Practitioner, PractitionerRole, RelatedPerson (could be a subset of these); encounter: Encounter; location: Location; study: ResearchStudy
: (extension('name').value.where(code='patient' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').value = 'Patient') and (extension('name').value.where(code='user' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies (extension('type').value='Patient' or extension('type').value='Practitioner' or extension('type').value='PractitionerRole' or extension('type').value='RelatedPerson')) and (extension('name').value.where(code='encounter' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').value = 'Encounter') and (extension('name').value.where(code='location' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').value = 'Location') and (extension('name').value.where(code='study' and system='http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext').exists() implies extension('type').value = 'ResearchStudy')
ele-1errorExtension.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorExtension.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorExtension.extension:nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorExtension.extension:nameMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorExtension.extension:name.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorExtension.extension:name.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorExtension.extension:name.extension.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorExtension.extension:name.extension.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorExtension.extension:name.extension.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorExtension.extension:name.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorExtension.extension:typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorExtension.extension:typeMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorExtension.extension:type.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorExtension.extension:type.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorExtension.extension:type.extension.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorExtension.extension:type.extension.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorExtension.extension:type.extension.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorExtension.extension:type.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorExtension.extension:descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorExtension.extension:descriptionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorExtension.extension:description.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorExtension.extension:description.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorExtension.extension:description.extension.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorExtension.extension:description.extension.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorExtension.extension:description.extension.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorExtension.extension:description.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())