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

Data Type Profile: SDC Usage Context

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

Constraints on the codes and values of UsageContext to help ensure consistent usage in SDC Questionnaires

Scope and Usage

The UsageContext data type allows categorizing artifacts in a wide variety of ways, but doesn't provide much guidance one what aspects should be supported, what data types are relevant to which types of context, or what value sets are appropriate for coded contexts. This profile tightens down the data type to reflect expectations for use in Questionnaire registries.

Formal Views of Profile Content

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

This structure is derived from UsageContext

Summary

Must-Support: 9 elements

Maturity: 3

This structure is derived from UsageContext

NameFlagsCard.TypeDescription & Constraintsdoco
.. UsageContext SI0..*UsageContextDescribes the context of use for a conformance or knowledge resource
sdc-uc-1: If code is gender, focus, user, venue or species, value must be CodeableConcept. If code is age, value must be Range. If code is workflow, task or program, value must be CodeableConcept or Reference
... code S1..1CodingType of context being specified
... value[x] S1..1CodeableConcept, Quantity, Range, Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization)Value that defines the context
... valueCodeableConcept S0..1CodeableConceptValue that defines the context
.... coding S0..*CodingCode defined by a terminology system
..... system S0..1uriIdentity of the terminology system
..... code S0..1codeSymbol in syntax defined by the system
.... low S0..1SimpleQuantityLow limit
.... high S0..1SimpleQuantityHigh limit

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. UsageContext SI0..*UsageContextDescribes the context of use for a conformance or knowledge resource
sdc-uc-1: If code is gender, focus, user, venue or species, value must be CodeableConcept. If code is age, value must be Range. If code is workflow, task or program, value must be CodeableConcept or Reference
... id 0..1stringUnique id for inter-element referencing
... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... code SΣ1..1CodingType of context being specified
Binding: UsageContextType (extensible): A code that specifies a type of context being specified by a usage context.

.... valueCodeableConceptCodeableConcept
.... valueQuantityQuantity
.... valueRangeRange
.... valueReferenceReference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization)
.... value[x]:valueCodeableConcept SΣ0..1CodeableConceptValue that defines the context
Binding: Context of Use ValueSet (example): A code that defines the specific value for the context being specified.

..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... coding SΣ0..*CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system SΣ0..1uriIdentity of the terminology system
...... version Σ0..1stringVersion of the system - if relevant
...... code SΣ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... text Σ0..1stringPlain text representation of the concept
.... value[x]:valueRange SΣ0..1RangeValue that defines the context
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... low SΣ0..1SimpleQuantityLow limit
..... high SΣ0..1SimpleQuantityHigh limit

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. UsageContext I0..*UsageContextDescribes the context of use for a conformance or knowledge resource
sdc-uc-1: If code is gender, focus, user, venue or species, value must be CodeableConcept. If code is age, value must be Range. If code is workflow, task or program, value must be CodeableConcept or Reference
... code Σ1..1CodingType of context being specified
Binding: UsageContextType (extensible): A code that specifies a type of context being specified by a usage context.

... Slices for value[x] Σ1..1Value that defines the context
Slice: Unordered, Open by type:$this
Binding: Context of Use ValueSet (example): A code that defines the specific value for the context being specified.

.... valueCodeableConceptCodeableConcept
.... valueQuantityQuantity
.... valueRangeRange
.... valueReferenceReference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization)
.... value[x]:valueCodeableConcept Σ0..1CodeableConceptValue that defines the context
Binding: Context of Use ValueSet (example): A code that defines the specific value for the context being specified.

..... coding Σ0..*CodingCode defined by a terminology system
...... system Σ0..1uriIdentity of the terminology system
...... code Σ0..1codeSymbol in syntax defined by the system
.... value[x]:valueRange Σ0..1RangeValue that defines the context
..... low Σ0..1SimpleQuantityLow limit
..... high Σ0..1SimpleQuantityHigh limit

doco Documentation for this format

This structure is derived from UsageContext

Summary

Must-Support: 9 elements

Maturity: 3

Differential View

This structure is derived from UsageContext

NameFlagsCard.TypeDescription & Constraintsdoco
.. UsageContext SI0..*UsageContextDescribes the context of use for a conformance or knowledge resource
sdc-uc-1: If code is gender, focus, user, venue or species, value must be CodeableConcept. If code is age, value must be Range. If code is workflow, task or program, value must be CodeableConcept or Reference
... code S1..1CodingType of context being specified
... value[x] S1..1CodeableConcept, Quantity, Range, Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization)Value that defines the context
... valueCodeableConcept S0..1CodeableConceptValue that defines the context
.... coding S0..*CodingCode defined by a terminology system
..... system S0..1uriIdentity of the terminology system
..... code S0..1codeSymbol in syntax defined by the system
.... low S0..1SimpleQuantityLow limit
.... high S0..1SimpleQuantityHigh limit

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. UsageContext SI0..*UsageContextDescribes the context of use for a conformance or knowledge resource
sdc-uc-1: If code is gender, focus, user, venue or species, value must be CodeableConcept. If code is age, value must be Range. If code is workflow, task or program, value must be CodeableConcept or Reference
... id 0..1stringUnique id for inter-element referencing
... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... code SΣ1..1CodingType of context being specified
Binding: UsageContextType (extensible): A code that specifies a type of context being specified by a usage context.

.... valueCodeableConceptCodeableConcept
.... valueQuantityQuantity
.... valueRangeRange
.... valueReferenceReference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization)
.... value[x]:valueCodeableConcept SΣ0..1CodeableConceptValue that defines the context
Binding: Context of Use ValueSet (example): A code that defines the specific value for the context being specified.

..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... coding SΣ0..*CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system SΣ0..1uriIdentity of the terminology system
...... version Σ0..1stringVersion of the system - if relevant
...... code SΣ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... text Σ0..1stringPlain text representation of the concept
.... value[x]:valueRange SΣ0..1RangeValue that defines the context
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... low SΣ0..1SimpleQuantityLow limit
..... high SΣ0..1SimpleQuantityHigh limit

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet
UsageContext.codeextensibleUsageContextType
UsageContext.value[x]exampleContext of Use ValueSet
UsageContext.value[x]:valueCodeableConceptexampleContext of Use ValueSet

Constraints

IdGradePathDetailsRequirements
ele-1errorUsageContextAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
sdc-uc-1errorUsageContextIf code is gender, focus, user, venue or species, value must be CodeableConcept. If code is age, value must be Range. If code is workflow, task or program, value must be CodeableConcept or Reference
: code.system!='http://terminology.hl7.org/CodeSystem/usage-context-type' or (((code.code='gender' or code.code='focus' or code.code='user' or code.code='venue' or code.code='species') implies value.exists() and value is CodeableConcept) and (code.code='age' implies value.exists() and value is Range) and ((code.code='workflow' or code.code='task' or code.code='program') implies (value.exists() and (value is CodeableConcept or value is Reference))))
ele-1errorUsageContext.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorUsageContext.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorUsageContext.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]:valueCodeableConceptAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]:valueCodeableConcept.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorUsageContext.value[x]:valueCodeableConcept.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorUsageContext.value[x]:valueCodeableConcept.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]:valueCodeableConcept.coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorUsageContext.value[x]:valueCodeableConcept.coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorUsageContext.value[x]:valueCodeableConcept.coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]:valueCodeableConcept.coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]:valueCodeableConcept.coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]:valueCodeableConcept.coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]:valueCodeableConcept.coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]:valueCodeableConcept.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]:valueRangeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]:valueRange.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorUsageContext.value[x]:valueRange.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorUsageContext.value[x]:valueRange.lowAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorUsageContext.value[x]:valueRange.highAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())