FHIR Application Feature Framework Implementation Guide
1.0.0-ballot - STU1 Ballot International flag

FHIR Application Feature Framework Implementation Guide, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/capstmt/ and changes regularly. See the Directory of published versions

Logical Model: Feature Definition

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

A definition of a feature that applications may implement, or be required to implement. Features are an aspect of a an applications implementation that generally impacts on the handling of data received from or provided to from the application, which makes it worth declaring. Once declared,

Usage:

  • Refer to this Logical Model Profile: Feature

Formal Views of Profile Content

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

This structure is derived from CanonicalResource

NameFlagsCard.TypeDescription & Constraintsdoco
.. FeatureDefinition 1..1 CanonicalResource
Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension, url, identifier, version, versionAlgorithm[x], name, title, status, experimental, date, publisher, contact, description, useContext, jurisdiction, purpose, copyright, copyrightLabel
Feature Definition
Instances of this logical model are not marked to be the target of a Reference
... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
... valueSet 0..1 canonical(ValueSet) ValueSet that controls what coded value are allowed
... context 0..* url The FHIR elements on which this feature can be defined
.... name 1..1 code The name of the feature
.... description 0..1 string A human-readable description of the qualifier.
.... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
.... optional 1..1 boolean Whether the feature is optional, or must always be present

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
FeatureDefinition.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard
FeatureDefinition.qualifier.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard
NameFlagsCard.TypeDescription & Constraintsdoco
.. FeatureDefinition C 1..1 CanonicalResource
Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension, url, identifier, version, versionAlgorithm[x], name, title, status, experimental, date, publisher, contact, description, useContext, jurisdiction, purpose, copyright, copyrightLabel
Feature Definition
Instances of this logical model are not marked to be the target of a Reference
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
... valueSet 0..1 canonical(ValueSet) ValueSet that controls what coded value are allowed
... context 0..* url The FHIR elements on which this feature can be defined
... qualifier 0..* BackboneElement A qualifier that might provided more information about a feature implementation
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... name 1..1 code The name of the feature
.... description 0..1 string A human-readable description of the qualifier.
.... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
.... optional 1..1 boolean Whether the feature is optional, or must always be present

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
FeatureDefinition.statusrequiredPublicationStatus
http://hl7.org/fhir/ValueSet/publication-status|5.0.0
from the FHIR Standard
FeatureDefinition.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard
FeatureDefinition.qualifier.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
cnl-0warningFeatureDefinitionName should be usable as an identifier for the module by machine processing applications such as code generation
: name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
dom-2errorFeatureDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorFeatureDefinitionIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorFeatureDefinitionIf 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-5errorFeatureDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceFeatureDefinitionA 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
.. FeatureDefinition C 1..1 CanonicalResource
Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension, url, identifier, version, versionAlgorithm[x], name, title, status, experimental, date, publisher, contact, description, useContext, jurisdiction, purpose, copyright, copyrightLabel
Feature Definition
Instances of this logical model are not marked to be the target of a Reference
... 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
... language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language

Additional BindingsPurpose
CommonLanguages Starter Set
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... url ΣC 0..1 uri Canonical identifier for this {{title}}, represented as an absolute URI (globally unique)
... identifier Σ 0..* Identifier Additional identifier for the {{title}}
... version Σ 0..1 string Business version of the {{title}}
... versionAlgorithm[x] Σ 0..1 How to compare versions
Binding: VersionAlgorithm (extensible)
.... versionAlgorithmString string
.... versionAlgorithmCoding Coding
... name ΣC 0..1 string Name for this {{title}} (computer friendly)
... title Σ 0..1 string Name for this {{title}} (human friendly)
... status ?!Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ 0..1 boolean For testing purposes, not real usage
... date Σ 0..1 dateTime Date last changed
... publisher Σ 0..1 string Name of the publisher/steward (organization or individual)
... contact Σ 0..* ContactDetail Contact details for the publisher
... description 0..1 markdown Natural language description of the {{title}}
... useContext Σ 0..* UsageContext The context that the content is intended to support
... jurisdiction Σ 0..* CodeableConcept Intended jurisdiction for {{title}} (if applicable)
Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1 markdown Why this {{title}} is defined
... copyright 0..1 markdown Use and/or publishing restrictions
... copyrightLabel 0..1 string Copyright holder and year(s)
... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
... valueSet 0..1 canonical(ValueSet) ValueSet that controls what coded value are allowed
... context 0..* url The FHIR elements on which this feature can be defined
... qualifier 0..* BackboneElement A qualifier that might provided more information about a feature implementation
.... @id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... name 1..1 code The name of the feature
.... description 0..1 string A human-readable description of the qualifier.
.... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
.... optional 1..1 boolean Whether the feature is optional, or must always be present

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
FeatureDefinition.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
FeatureDefinition.versionAlgorithm[x]extensibleVersionAlgorithm
http://hl7.org/fhir/ValueSet/version-algorithm
from the FHIR Standard
FeatureDefinition.statusrequiredPublicationStatus
http://hl7.org/fhir/ValueSet/publication-status|5.0.0
from the FHIR Standard
FeatureDefinition.jurisdictionextensibleJurisdictionValueSet
http://hl7.org/fhir/ValueSet/jurisdiction
from the FHIR Standard
FeatureDefinition.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard
FeatureDefinition.qualifier.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
cnl-0warningFeatureDefinitionName should be usable as an identifier for the module by machine processing applications such as code generation
: name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
cnl-1warningFeatureDefinition.urlURL should not contain | or # - these characters make processing canonical references problematic
: exists() implies matches('^[^|# ]+$')
dom-2errorFeatureDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorFeatureDefinitionIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorFeatureDefinitionIf 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-5errorFeatureDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceFeatureDefinitionA 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 CanonicalResource

Summary

Mandatory: 0 element(4 nested mandatory elements)

Maturity: 1

Differential View

This structure is derived from CanonicalResource

NameFlagsCard.TypeDescription & Constraintsdoco
.. FeatureDefinition 1..1 CanonicalResource
Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension, url, identifier, version, versionAlgorithm[x], name, title, status, experimental, date, publisher, contact, description, useContext, jurisdiction, purpose, copyright, copyrightLabel
Feature Definition
Instances of this logical model are not marked to be the target of a Reference
... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
... valueSet 0..1 canonical(ValueSet) ValueSet that controls what coded value are allowed
... context 0..* url The FHIR elements on which this feature can be defined
.... name 1..1 code The name of the feature
.... description 0..1 string A human-readable description of the qualifier.
.... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
.... optional 1..1 boolean Whether the feature is optional, or must always be present

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
FeatureDefinition.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard
FeatureDefinition.qualifier.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. FeatureDefinition C 1..1 CanonicalResource
Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension, url, identifier, version, versionAlgorithm[x], name, title, status, experimental, date, publisher, contact, description, useContext, jurisdiction, purpose, copyright, copyrightLabel
Feature Definition
Instances of this logical model are not marked to be the target of a Reference
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
... valueSet 0..1 canonical(ValueSet) ValueSet that controls what coded value are allowed
... context 0..* url The FHIR elements on which this feature can be defined
... qualifier 0..* BackboneElement A qualifier that might provided more information about a feature implementation
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... name 1..1 code The name of the feature
.... description 0..1 string A human-readable description of the qualifier.
.... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
.... optional 1..1 boolean Whether the feature is optional, or must always be present

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
FeatureDefinition.statusrequiredPublicationStatus
http://hl7.org/fhir/ValueSet/publication-status|5.0.0
from the FHIR Standard
FeatureDefinition.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard
FeatureDefinition.qualifier.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
cnl-0warningFeatureDefinitionName should be usable as an identifier for the module by machine processing applications such as code generation
: name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
dom-2errorFeatureDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorFeatureDefinitionIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorFeatureDefinitionIf 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-5errorFeatureDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceFeatureDefinitionA 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
.. FeatureDefinition C 1..1 CanonicalResource
Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension, url, identifier, version, versionAlgorithm[x], name, title, status, experimental, date, publisher, contact, description, useContext, jurisdiction, purpose, copyright, copyrightLabel
Feature Definition
Instances of this logical model are not marked to be the target of a Reference
... 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
... language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language

Additional BindingsPurpose
CommonLanguages Starter Set
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... url ΣC 0..1 uri Canonical identifier for this {{title}}, represented as an absolute URI (globally unique)
... identifier Σ 0..* Identifier Additional identifier for the {{title}}
... version Σ 0..1 string Business version of the {{title}}
... versionAlgorithm[x] Σ 0..1 How to compare versions
Binding: VersionAlgorithm (extensible)
.... versionAlgorithmString string
.... versionAlgorithmCoding Coding
... name ΣC 0..1 string Name for this {{title}} (computer friendly)
... title Σ 0..1 string Name for this {{title}} (human friendly)
... status ?!Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ 0..1 boolean For testing purposes, not real usage
... date Σ 0..1 dateTime Date last changed
... publisher Σ 0..1 string Name of the publisher/steward (organization or individual)
... contact Σ 0..* ContactDetail Contact details for the publisher
... description 0..1 markdown Natural language description of the {{title}}
... useContext Σ 0..* UsageContext The context that the content is intended to support
... jurisdiction Σ 0..* CodeableConcept Intended jurisdiction for {{title}} (if applicable)
Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1 markdown Why this {{title}} is defined
... copyright 0..1 markdown Use and/or publishing restrictions
... copyrightLabel 0..1 string Copyright holder and year(s)
... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
... valueSet 0..1 canonical(ValueSet) ValueSet that controls what coded value are allowed
... context 0..* url The FHIR elements on which this feature can be defined
... qualifier 0..* BackboneElement A qualifier that might provided more information about a feature implementation
.... @id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... name 1..1 code The name of the feature
.... description 0..1 string A human-readable description of the qualifier.
.... valueType 1..1 code Type of value associated with the feature
Binding: FHIRTypes (required)
.... optional 1..1 boolean Whether the feature is optional, or must always be present

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
FeatureDefinition.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
FeatureDefinition.versionAlgorithm[x]extensibleVersionAlgorithm
http://hl7.org/fhir/ValueSet/version-algorithm
from the FHIR Standard
FeatureDefinition.statusrequiredPublicationStatus
http://hl7.org/fhir/ValueSet/publication-status|5.0.0
from the FHIR Standard
FeatureDefinition.jurisdictionextensibleJurisdictionValueSet
http://hl7.org/fhir/ValueSet/jurisdiction
from the FHIR Standard
FeatureDefinition.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard
FeatureDefinition.qualifier.valueTyperequiredFHIRTypes
http://hl7.org/fhir/ValueSet/data-types
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
cnl-0warningFeatureDefinitionName should be usable as an identifier for the module by machine processing applications such as code generation
: name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
cnl-1warningFeatureDefinition.urlURL should not contain | or # - these characters make processing canonical references problematic
: exists() implies matches('^[^|# ]+$')
dom-2errorFeatureDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorFeatureDefinitionIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorFeatureDefinitionIf 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-5errorFeatureDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceFeatureDefinitionA 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 CanonicalResource

Summary

Mandatory: 0 element(4 nested mandatory elements)

Maturity: 1

 

Other representations of profile: CSV, Excel