FHIR Application Feature Framework Implementation Guide
1.0.0 - STU 1

FHIR Application Feature Framework Implementation Guide - Local Development build (v1.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Extension: Feature

Official URL: http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature | Version: 1.0.0
Standards status: Trial-use | Maturity Level: 2 | Computable Name: Feature

This extension documents the features of a system using code/value pairs

Context of Use

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

- Element ID: `CapabilityStatement`
- Element ID: `TerminologyCapabilities`

Usage info

Usages:

- Use this Extension: Feature Capability Statement
- Examples for this Extension: FeatureCapabilityStatementExample

You can also check for usages in the FHIR IG Statistics

### Formal Views of Extension Content

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

- Differential Table
- Snapshot Table
- Statistics/References
- All

This structure is derived from Extension

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Extension |  | 0..* | Extension | Extension
extension |  | 2..* | Extension | Extension
Slices for extension |  |  |  | Content/Rules for all slices
extension:definition | S | 1..1 | Extension | Extension
extension |  | 0..0 |  | Extension
url |  | 1..1 | uri | "definition"
value[x] |  | 1..1 | canonical(Feature Definition) | Value of extension
extension:context | S | 0..* | Extension | Extension
extension |  | 0..0 |  | Extension
url |  | 1..1 | uri | "context"
value[x] |  | 1..1 | string | The context(s) on which this feature can be defined. The context(s) declared in this extension must align with one or more of the contexts in the FeatureDefinition.
extension:value | S | 1..1 | Extension | Extension
extension |  | 0..0 |  | Extension
url |  | 1..1 | uri | "value"
value[x] |  | 1..1 | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, integer64, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, CodeableReference(), Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, RatioRange, Reference(), SampledData, Signature, Timing, ContactDetail, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Availability, ExtendedContactDetail, Dosage, Meta | The value of the feature. Must align with the type and ValueSet (if a code type) in the FeatureDefinition.
url |  | 1..1 | uri | "http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature"
value[x] |  | 0..0 |  | Value of extension
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Extension |  | 0..* | Extension | Extension
id |  | 0..1 | id | Unique id for inter-element referencing
Slices for extension |  | 2..* | Extension | Extension Slice: Unordered, Open by value:url
extension:definition | S | 1..1 | Extension | Extension
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "definition"
value[x] |  | 1..1 | canonical(Feature Definition) | Value of extension
extension:context | S | 0..* | Extension | Extension
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "context"
value[x] |  | 1..1 | string | The context(s) on which this feature can be defined. The context(s) declared in this extension must align with one or more of the contexts in the FeatureDefinition.
extension:value | S | 1..1 | Extension | Extension
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "value"
value[x] |  | 1..1 |  | The value of the feature. Must align with the type and ValueSet (if a code type) in the FeatureDefinition.
valueBase64Binary |  |  | base64Binary |
valueBoolean |  |  | boolean |
valueCanonical |  |  | canonical(Any) |
valueCode |  |  | code |
valueDate |  |  | date |
valueDateTime |  |  | dateTime |
valueDecimal |  |  | decimal |
valueId |  |  | id |
valueInstant |  |  | instant |
valueInteger |  |  | integer |
valueInteger64 |  |  | integer64 |
valueMarkdown |  |  | markdown |
valueOid |  |  | oid |
valuePositiveInt |  |  | positiveInt |
valueString |  |  | string |
valueTime |  |  | time |
valueUnsignedInt |  |  | unsignedInt |
valueUri |  |  | uri |
valueUrl |  |  | url |
valueUuid |  |  | uuid |
valueAddress |  |  | Address |
valueAge |  |  | Age |
valueAnnotation |  |  | Annotation |
valueAttachment |  |  | Attachment |
valueCodeableConcept |  |  | CodeableConcept |
valueCodeableReference |  |  | CodeableReference |
valueCoding |  |  | Coding |
valueContactPoint |  |  | ContactPoint |
valueCount |  |  | Count |
valueDistance |  |  | Distance |
valueDuration |  |  | Duration |
valueHumanName |  |  | HumanName |
valueIdentifier |  |  | Identifier |
valueMoney |  |  | Money |
valuePeriod |  |  | Period |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueRatioRange |  |  | RatioRange |
valueReference |  |  | Reference(Any) |
valueSampledData |  |  | SampledData |
valueSignature |  |  | Signature |
valueTiming |  |  | Timing |
valueContactDetail |  |  | ContactDetail |
valueDataRequirement |  |  | DataRequirement |
valueExpression |  |  | Expression |
valueParameterDefinition |  |  | ParameterDefinition |
valueRelatedArtifact |  |  | RelatedArtifact |
valueTriggerDefinition |  |  | TriggerDefinition |
valueUsageContext |  |  | UsageContext |
valueAvailability |  |  | Availability |
valueExtendedContactDetail |  |  | ExtendedContactDetail |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
url |  | 1..1 | uri | "http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature"
Documentation for this format

This structure is derived from Extension

Summary

Complex Extension: This extension documents the features of a system using code/value pairs

- definition: canonical: An Extension
- context: string: An Extension
- value: base64Binary, boolean, canonical, code, date, dateTime, decimal, id, instant, integer, integer64, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, CodeableReference, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, RatioRange, Reference, SampledData, Signature, Timing, ContactDetail, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Availability, ExtendedContactDetail, Dosage, Meta: An Extension

Maturity: 2

Differential View

This structure is derived from Extension

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Extension |  | 0..* | Extension | Extension
extension |  | 2..* | Extension | Extension
Slices for extension |  |  |  | Content/Rules for all slices
extension:definition | S | 1..1 | Extension | Extension
extension |  | 0..0 |  | Extension
url |  | 1..1 | uri | "definition"
value[x] |  | 1..1 | canonical(Feature Definition) | Value of extension
extension:context | S | 0..* | Extension | Extension
extension |  | 0..0 |  | Extension
url |  | 1..1 | uri | "context"
value[x] |  | 1..1 | string | The context(s) on which this feature can be defined. The context(s) declared in this extension must align with one or more of the contexts in the FeatureDefinition.
extension:value | S | 1..1 | Extension | Extension
extension |  | 0..0 |  | Extension
url |  | 1..1 | uri | "value"
value[x] |  | 1..1 | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, integer64, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, CodeableReference(), Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, RatioRange, Reference(), SampledData, Signature, Timing, ContactDetail, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Availability, ExtendedContactDetail, Dosage, Meta | The value of the feature. Must align with the type and ValueSet (if a code type) in the FeatureDefinition.
url |  | 1..1 | uri | "http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature"
value[x] |  | 0..0 |  | Value of extension
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Extension |  | 0..* | Extension | Extension
id |  | 0..1 | id | Unique id for inter-element referencing
Slices for extension |  | 2..* | Extension | Extension Slice: Unordered, Open by value:url
extension:definition | S | 1..1 | Extension | Extension
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "definition"
value[x] |  | 1..1 | canonical(Feature Definition) | Value of extension
extension:context | S | 0..* | Extension | Extension
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "context"
value[x] |  | 1..1 | string | The context(s) on which this feature can be defined. The context(s) declared in this extension must align with one or more of the contexts in the FeatureDefinition.
extension:value | S | 1..1 | Extension | Extension
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "value"
value[x] |  | 1..1 |  | The value of the feature. Must align with the type and ValueSet (if a code type) in the FeatureDefinition.
valueBase64Binary |  |  | base64Binary |
valueBoolean |  |  | boolean |
valueCanonical |  |  | canonical(Any) |
valueCode |  |  | code |
valueDate |  |  | date |
valueDateTime |  |  | dateTime |
valueDecimal |  |  | decimal |
valueId |  |  | id |
valueInstant |  |  | instant |
valueInteger |  |  | integer |
valueInteger64 |  |  | integer64 |
valueMarkdown |  |  | markdown |
valueOid |  |  | oid |
valuePositiveInt |  |  | positiveInt |
valueString |  |  | string |
valueTime |  |  | time |
valueUnsignedInt |  |  | unsignedInt |
valueUri |  |  | uri |
valueUrl |  |  | url |
valueUuid |  |  | uuid |
valueAddress |  |  | Address |
valueAge |  |  | Age |
valueAnnotation |  |  | Annotation |
valueAttachment |  |  | Attachment |
valueCodeableConcept |  |  | CodeableConcept |
valueCodeableReference |  |  | CodeableReference |
valueCoding |  |  | Coding |
valueContactPoint |  |  | ContactPoint |
valueCount |  |  | Count |
valueDistance |  |  | Distance |
valueDuration |  |  | Duration |
valueHumanName |  |  | HumanName |
valueIdentifier |  |  | Identifier |
valueMoney |  |  | Money |
valuePeriod |  |  | Period |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueRatioRange |  |  | RatioRange |
valueReference |  |  | Reference(Any) |
valueSampledData |  |  | SampledData |
valueSignature |  |  | Signature |
valueTiming |  |  | Timing |
valueContactDetail |  |  | ContactDetail |
valueDataRequirement |  |  | DataRequirement |
valueExpression |  |  | Expression |
valueParameterDefinition |  |  | ParameterDefinition |
valueRelatedArtifact |  |  | RelatedArtifact |
valueTriggerDefinition |  |  | TriggerDefinition |
valueUsageContext |  |  | UsageContext |
valueAvailability |  |  | Availability |
valueExtendedContactDetail |  |  | ExtendedContactDetail |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
url |  | 1..1 | uri | "http://hl7.org/fhir/uv/application-feature/StructureDefinition/feature"
Documentation for this format

This structure is derived from Extension

Summary

Complex Extension: This extension documents the features of a system using code/value pairs

- definition: canonical: An Extension
- context: string: An Extension
- value: base64Binary, boolean, canonical, code, date, dateTime, decimal, id, instant, integer, integer64, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, CodeableReference, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, RatioRange, Reference, SampledData, Signature, Timing, ContactDetail, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Availability, ExtendedContactDetail, Dosage, Meta: An Extension

Maturity: 2

Other representations of profile: CSV, Excel, Schematron

#### Constraints

Id | Grade | Path(s) | Description | Expression
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()`