The official URL for this profile is:
http://hl7.org/fhir/us/sdc/StructureDefinition/sdc-dataelement
This profile sets expectations for use of the DataElement resource within the Structured Data Capture implementation guide. This includes identifying which core elements and extensions must be supported.
The focus of this profile is on those characteristics of Data Elements which are necessary to support the definition of forms (questionnaires) that can support auto-population or pre-population of content on the basis of referenced data elements.
For the purposes of this profile, Supported means that clients SHALL be capable of processing the element/extension and use the information to control the display and information capture associated with the DataElement. It means that servers SHALL be capable of persisting those elements and returning them in response to requests.
This profile relies on the use of a number of other profiles, some required, others available for use "when necessary":
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from DataElement
Summary
Mandatory: 6 elements (4 nested mandatory elements)
Must-Support: 54 elements
Fixed Value: 1 element
Prohibited: 12 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
This structure is derived from DataElement
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
DataElement | I | 0..* | Resource data element | |
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: Common Languages (extensible) | |
text | I | 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 | SΣ | 1..1 | uri | Logical URI to reference this data element (globally unique) |
identifier | SΣ | 1..* | Identifier | Additional identifier for the data element |
version | SΣ | 0..1 | string | Business version of the data element |
status | ?!SΣ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required) |
experimental | ?!SΣ | 0..1 | boolean | For testing purposes, not real usage |
date | SΣ | 0..1 | dateTime | Date this was last changed |
publisher | SΣ | 0..1 | string | Name of the publisher (organization or individual) |
name | SΣ | 1..1 | string | Name for this data element (computer friendly) |
title | Σ | 0..1 | string | Name for this data element (human friendly) |
contact | SΣ | 0..* | ContactDetail | Contact details for the publisher |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
name | Σ | 0..1 | string | Name of an individual to contact |
telecom | SΣ | 0..* | ContactPoint | Contact details for individual or organization |
useContext | SΣ | 0..* | UsageContext | Context the content is intended to support |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for data element (if applicable) Binding: Jurisdiction ValueSet (extensible) |
copyright | S | 0..1 | markdown | Use and/or publishing restrictions |
stringency | SΣ | 1..1 | code | comparable | fully-specified | equivalent | convertable | scaleable | flexible Binding: DataElementStringency (required) |
mapping | SI | 0..* | BackboneElement | External specification mapped to |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
identity | S | 1..1 | id | Internal id when this mapping is used |
uri | S | 0..1 | uri | Identifies what this mapping refers to |
name | S | 0..1 | string | Names what this mapping refers to |
comment | S | 0..1 | string | Versions, issues, scope limitations, etc. |
element | SΣI | 1..* | ElementDefinition | Definition of element |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
elementdefinition-question | S | 0..* | string | Extension URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/elementdefinition-question" | |
valueString | 0..1 | string | Value of extension | |
elementdefinition-allowedUnits | S | 0..1 | CodeableConcept, Reference(ValueSet) | Extension URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits Binding: UCUM Codes (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits" | |
value[x] | 1..1 | CodeableConcept, Reference(ValueSet) | Value of extension Binding: UCUM Codes (required) | |
minLength | S | 0..1 | integer | Extension URL: http://hl7.org/fhir/StructureDefinition/minLength |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/minLength" | |
valueInteger | 0..1 | integer | Value of extension | |
regex | S | 0..1 | string | Extension URL: http://hl7.org/fhir/StructureDefinition/regex |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/regex" | |
valueString | 0..1 | string | Value of extension | |
entryFormat | S | 0..1 | string | Extension URL: http://hl7.org/fhir/StructureDefinition/entryFormat |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/entryFormat" | |
valueString | 0..1 | string | Value of extension | |
maxDecimalPlaces | S | 0..1 | integer | Extension URL: http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces" | |
valueInteger | 0..1 | integer | Value of extension | |
path | SΣ | 1..1 | string | Path of the element in the hierarchy of elements |
representation | Σ | 0..* | code | xmlAttr | xmlText | typeAttr | cdaText | xhtml Binding: PropertyRepresentation (required) |
label | SΣ | 0..1 | string | Name for element to display with or prompt for element |
code | SΣ | 0..* | Coding | Corresponding codes in terminologies Binding: LOINC Codes (example) |
slicing | ΣI | 0..1 | Element | This element is sliced - slices follow |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
discriminator | ΣI | 0..* | Element | Element values that are used to distinguish the slices |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
type | Σ | 1..1 | code | value | exists | pattern | type | profile Binding: DiscriminatorType (required) |
path | Σ | 1..1 | string | Path to element value |
description | ΣI | 0..1 | string | Text description of how slicing works (or not) |
ordered | Σ | 0..1 | boolean | If elements must be in same order as slices |
rules | Σ | 1..1 | code | closed | open | openAtEnd Binding: SlicingRules (required) |
short | Σ | 0..1 | string | Concise definition for space-constrained presentation |
definition | SΣ | 0..1 | markdown | Full formal definition as narrative text |
comment | SΣ | 0..1 | markdown | Comments about the use of this element |
requirements | SΣ | 0..1 | markdown | Why this resource has been created |
alias | SΣ | 0..* | string | Other names |
type | SΣI | 0..1 | Element | Data type and Profile for this element |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
code | SΣ | 1..1 | uri | Data type or Resource (reference to definition) |
profile | Σ | 0..1 | uri | Profile (StructureDefinition) to apply (or IG) |
aggregation | ΣI | 0..* | code | contained | referenced | bundled - how aggregated Binding: AggregationMode (required) |
orderMeaning | Σ | 0..1 | string | What the order of the elements means |
fixed[x] | ΣI | 0..1 | base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta | Value must be exactly this |
pattern[x] | ΣI | 0..1 | base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta | Value must have at least these property values |
example | SΣI | 0..* | Element | Example value (as defined for type) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
label | SΣ | 1..1 | string | Describes the purpose of this example |
value[x] | SΣ | 1..1 | base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta | Value of Example (one of allowed types) |
minValue[x] | SΣ | 0..1 | integer, decimal, instant, date, time, dateTime, Quantity | Minimum Allowed Value (for some types) |
maxValue[x] | SΣ | 0..1 | integer, decimal, instant, date, time, dateTime, Quantity | Maximum Allowed Value (for some types) |
maxLength | SΣ | 0..1 | integer | Max length for strings |
isModifier | Σ | 0..1 | boolean | If this modifies the meaning of other elements |
isSummary | Σ | 0..1 | boolean | Include when _summary = true? |
binding | SΣI | 0..1 | Element | ValueSet details if this is coded |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
strength | SΣ | 1..1 | code | required | extensible | preferred | example Binding: BindingStrength (required) |
description | SΣI | 0..1 | string | Human explanation of the value set |
valueSetReference | SΣI | 1..1 | Reference(Structured Data Capture Value Set) | Source of value set |
mapping | SΣI | 0..* | Element | Map element to another set of definitions |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
elementdefinition-equivalence | S | 1..1 | code | Extension URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-equivalence Binding: ConceptMapEquivalence (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/elementdefinition-equivalence" | |
valueCode | S | 1..1 | code | Value of extension Binding: ConceptMapEquivalence (required) Fixed Value: equivalent |
identity | SΣ | 1..1 | id | Reference to mapping declaration |
language | SΣ | 0..1 | code | Computable language of mapping Binding: DEX mapping language mime types (required) |
map | SΣ | 1..1 | string | Details of the mapping |
comment | Σ | 0..1 | string | Comments about the mapping or its use |
Documentation for this format |
This structure is derived from DataElement
Summary
Mandatory: 6 elements (4 nested mandatory elements)
Must-Support: 54 elements
Fixed Value: 1 element
Prohibited: 12 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Differential View
This structure is derived from DataElement
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
DataElement | I | 0..* | Resource data element | |
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: Common Languages (extensible) | |
text | I | 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 | SΣ | 1..1 | uri | Logical URI to reference this data element (globally unique) |
identifier | SΣ | 1..* | Identifier | Additional identifier for the data element |
version | SΣ | 0..1 | string | Business version of the data element |
status | ?!SΣ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required) |
experimental | ?!SΣ | 0..1 | boolean | For testing purposes, not real usage |
date | SΣ | 0..1 | dateTime | Date this was last changed |
publisher | SΣ | 0..1 | string | Name of the publisher (organization or individual) |
name | SΣ | 1..1 | string | Name for this data element (computer friendly) |
title | Σ | 0..1 | string | Name for this data element (human friendly) |
contact | SΣ | 0..* | ContactDetail | Contact details for the publisher |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
name | Σ | 0..1 | string | Name of an individual to contact |
telecom | SΣ | 0..* | ContactPoint | Contact details for individual or organization |
useContext | SΣ | 0..* | UsageContext | Context the content is intended to support |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for data element (if applicable) Binding: Jurisdiction ValueSet (extensible) |
copyright | S | 0..1 | markdown | Use and/or publishing restrictions |
stringency | SΣ | 1..1 | code | comparable | fully-specified | equivalent | convertable | scaleable | flexible Binding: DataElementStringency (required) |
mapping | SI | 0..* | BackboneElement | External specification mapped to |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
identity | S | 1..1 | id | Internal id when this mapping is used |
uri | S | 0..1 | uri | Identifies what this mapping refers to |
name | S | 0..1 | string | Names what this mapping refers to |
comment | S | 0..1 | string | Versions, issues, scope limitations, etc. |
element | SΣI | 1..* | ElementDefinition | Definition of element |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
elementdefinition-question | S | 0..* | string | Extension URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/elementdefinition-question" | |
valueString | 0..1 | string | Value of extension | |
elementdefinition-allowedUnits | S | 0..1 | CodeableConcept, Reference(ValueSet) | Extension URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits Binding: UCUM Codes (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits" | |
value[x] | 1..1 | CodeableConcept, Reference(ValueSet) | Value of extension Binding: UCUM Codes (required) | |
minLength | S | 0..1 | integer | Extension URL: http://hl7.org/fhir/StructureDefinition/minLength |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/minLength" | |
valueInteger | 0..1 | integer | Value of extension | |
regex | S | 0..1 | string | Extension URL: http://hl7.org/fhir/StructureDefinition/regex |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/regex" | |
valueString | 0..1 | string | Value of extension | |
entryFormat | S | 0..1 | string | Extension URL: http://hl7.org/fhir/StructureDefinition/entryFormat |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/entryFormat" | |
valueString | 0..1 | string | Value of extension | |
maxDecimalPlaces | S | 0..1 | integer | Extension URL: http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces" | |
valueInteger | 0..1 | integer | Value of extension | |
path | SΣ | 1..1 | string | Path of the element in the hierarchy of elements |
representation | Σ | 0..* | code | xmlAttr | xmlText | typeAttr | cdaText | xhtml Binding: PropertyRepresentation (required) |
label | SΣ | 0..1 | string | Name for element to display with or prompt for element |
code | SΣ | 0..* | Coding | Corresponding codes in terminologies Binding: LOINC Codes (example) |
slicing | ΣI | 0..1 | Element | This element is sliced - slices follow |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
discriminator | ΣI | 0..* | Element | Element values that are used to distinguish the slices |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
type | Σ | 1..1 | code | value | exists | pattern | type | profile Binding: DiscriminatorType (required) |
path | Σ | 1..1 | string | Path to element value |
description | ΣI | 0..1 | string | Text description of how slicing works (or not) |
ordered | Σ | 0..1 | boolean | If elements must be in same order as slices |
rules | Σ | 1..1 | code | closed | open | openAtEnd Binding: SlicingRules (required) |
short | Σ | 0..1 | string | Concise definition for space-constrained presentation |
definition | SΣ | 0..1 | markdown | Full formal definition as narrative text |
comment | SΣ | 0..1 | markdown | Comments about the use of this element |
requirements | SΣ | 0..1 | markdown | Why this resource has been created |
alias | SΣ | 0..* | string | Other names |
type | SΣI | 0..1 | Element | Data type and Profile for this element |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
code | SΣ | 1..1 | uri | Data type or Resource (reference to definition) |
profile | Σ | 0..1 | uri | Profile (StructureDefinition) to apply (or IG) |
aggregation | ΣI | 0..* | code | contained | referenced | bundled - how aggregated Binding: AggregationMode (required) |
orderMeaning | Σ | 0..1 | string | What the order of the elements means |
fixed[x] | ΣI | 0..1 | base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta | Value must be exactly this |
pattern[x] | ΣI | 0..1 | base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta | Value must have at least these property values |
example | SΣI | 0..* | Element | Example value (as defined for type) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
label | SΣ | 1..1 | string | Describes the purpose of this example |
value[x] | SΣ | 1..1 | base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta | Value of Example (one of allowed types) |
minValue[x] | SΣ | 0..1 | integer, decimal, instant, date, time, dateTime, Quantity | Minimum Allowed Value (for some types) |
maxValue[x] | SΣ | 0..1 | integer, decimal, instant, date, time, dateTime, Quantity | Maximum Allowed Value (for some types) |
maxLength | SΣ | 0..1 | integer | Max length for strings |
isModifier | Σ | 0..1 | boolean | If this modifies the meaning of other elements |
isSummary | Σ | 0..1 | boolean | Include when _summary = true? |
binding | SΣI | 0..1 | Element | ValueSet details if this is coded |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
strength | SΣ | 1..1 | code | required | extensible | preferred | example Binding: BindingStrength (required) |
description | SΣI | 0..1 | string | Human explanation of the value set |
valueSetReference | SΣI | 1..1 | Reference(Structured Data Capture Value Set) | Source of value set |
mapping | SΣI | 0..* | Element | Map element to another set of definitions |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
elementdefinition-equivalence | S | 1..1 | code | Extension URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-equivalence Binding: ConceptMapEquivalence (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/elementdefinition-equivalence" | |
valueCode | S | 1..1 | code | Value of extension Binding: ConceptMapEquivalence (required) Fixed Value: equivalent |
identity | SΣ | 1..1 | id | Reference to mapping declaration |
language | SΣ | 0..1 | code | Computable language of mapping Binding: DEX mapping language mime types (required) |
map | SΣ | 1..1 | string | Details of the mapping |
comment | Σ | 0..1 | string | Comments about the mapping or its use |
Documentation for this format |
Other representations of profile: Schematron
Path | Name | Conformance | ValueSet |
DataElement.language | Common Languages | extensible | Common Languages |
DataElement.status | PublicationStatus | required | PublicationStatus |
DataElement.jurisdiction | Jurisdiction ValueSet | extensible | Jurisdiction ValueSet |
DataElement.stringency | DataElementStringency | required | DataElementStringency |
DataElement.element.extension.value[x] | UCUM Codes | required | UCUM Codes |
DataElement.element.representation | PropertyRepresentation | required | PropertyRepresentation |
DataElement.element.code | LOINC Codes | example | LOINC Codes |
DataElement.element.slicing.discriminator.type | DiscriminatorType | required | DiscriminatorType |
DataElement.element.slicing.rules | SlicingRules | required | SlicingRules |
DataElement.element.type.aggregation | AggregationMode | required | AggregationMode |
DataElement.element.constraint.severity | ConstraintSeverity | required | ConstraintSeverity |
DataElement.element.binding.strength | BindingStrength | required | BindingStrength |
DataElement.element.mapping.extension.valueCode | ConceptMapEquivalence | required | ConceptMapEquivalence |
DataElement.element.mapping.language | DEX mapping language mime types | required | DEX mapping language mime types |
Id | Path | Details | Requirements |
dom-2 | DataElement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-1 | DataElement | If the resource is contained in another resource, it SHALL NOT contain any narrative : contained.text.empty() | |
dom-4 | DataElement | 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-3 | DataElement | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource : contained.where(('#'+id in %resource.descendants().reference).not()).empty() | |
ele-1 | DataElement.mapping | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
dae-3 | DataElement.mapping | At least one of name or uri SHALL be present : uri.exists() or name.exists() | |
dae-1 | DataElement.element | No base allowed : base.empty() | |
dae-2 | DataElement.element | No slicing allowed : slicing.empty() | |
ele-1 | DataElement.element.slicing | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
eld-1 | DataElement.element.slicing | If there are no discriminators, there must be a definition : discriminator.exists() or description.exists() | |
ele-1 | DataElement.element.slicing.discriminator | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ele-1 | DataElement.element.type | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
eld-4 | DataElement.element.type | Aggregation may only be specified if one of the allowed types for the element is a resource : aggregation.empty() or (code = 'Reference') | |
ele-1 | DataElement.element.example | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ele-1 | DataElement.element.binding | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
eld-10 | DataElement.element.binding | provide either a reference or a description (or both) : valueSet.exists() or description.exists() | |
eld-12 | DataElement.element.binding | ValueSet as a URI SHALL start with http:// or https:// or urn: : valueSet.is(uri).not() or valueSet.as(uri).startsWith('http:') or valueSet.as(uri).startsWith('https') or valueSet.as(uri).startsWith('urn:') | |
ele-1 | DataElement.element.mapping | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) |
In some environments, it may be necessary for a questionnaire to support multiple languages. The rendering tool would select the appropriate language based on a configuration setting, or perhaps would display all available languages and the user would read the one they are familiar with. Systems MAY choose to provide support for identifying language and translations. If they do, they SHALL do so using the generic translation extension FHIR defines: http://hl7.org/fhir/StructureDefinition/translation
These extensions can be used on absolutely any string element on Questionnaire, ValueSet or any other resource. The base string should be the primary language of the questionnaire. It is what will be rendered by systems that do not support the translation extension or by systems whose language preference is other than one of the languages provided.
The ISO 19763 specification permits declaring language on questionnaire titles, descriptions, display names for codes and many other strings. It also supports capturing multiple variants of these strings with distinct languages. These capabilities can be mirrored using the above extensions.
While DataElement.stringency has been introduced, a formal set of rules defining exactly what level of "tightness" must exist for a stringency code, and in particular, what the rules are for data elements intended for use in auto-population/pre-population has not yet been defined. For example, if a data element supports a subset of the answer codes that the question does, is that acceptable? Must the question text be word-for-word identical? Is it acceptable if the data element length is shorter than the permitted length for the question? Is it acceptable if units of measure are not an exact match so long as conversion factors are known?
Opinions on these and related questions of stringency are welcome.