This page is part of the FHIR Specification (v3.5.0: R4 Ballot #2). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2
FHIR Infrastructure Work Group | Maturity Level: 1 | Trial Use | Use Context: Any |
The official URL for this profile is:
http://hl7.org/fhir/StructureDefinition/elementdefinition-de
Identifies how the ElementDefinition data type is used when it appears within a data element
This profile was published on Sat, Feb 28, 2015 00:00+1000 as a draft by Health Level Seven International (Orders and Observations).
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
This structure is derived from ElementDefinition.
This structure is derived from ElementDefinition.
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ElementDefinition | I | 0..* | Definition of an element in a resource or extension | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
elementdefinition-question | 0..* | string | Extension URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..0 | |||
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/elementdefinition-question" | |
valueString | 0..1 | string | Value of extension | |
elementdefinition-allowedUnits | 0..1 | CodeableConcept, canonical(ValueSet) | Extension URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits Binding: UCUM Codes (required) | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..0 | |||
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits" | |
value[x] | 1..1 | CodeableConcept, canonical(ValueSet) | Value of extension Binding: UCUM Codes (required) | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored if unrecognized |
path | Σ | 1..1 | string | Path of the element in the hierarchy of elements |
sliceName | Σ | 0..1 | string | Name for this particular element (in a set of slices) |
sliceIsConstraining | Σ | 0..1 | boolean | If this slice definition constrains an inherited slice definition (or not) |
label | Σ | 0..1 | string | Name for element to display with or prompt for element |
code | Σ | 0..* | Coding | Corresponding codes in terminologies Binding: LOINC Codes (example) |
definition | Σ | 0..1 | markdown | Full formal definition as narrative text |
comment | Σ | 0..1 | markdown | Comments about the use of this element |
requirements | Σ | 0..1 | markdown | Why this resource has been created |
alias | Σ | 0..* | string | Other names |
min | ΣI | 0..1 | unsignedInt | Minimum Cardinality |
max | ΣI | 0..1 | string | Maximum Cardinality (a number or *) eld-3: Max SHALL be a number or "*" |
base | ΣI | 0..1 | Element | Base definition information for tools |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
path | Σ | 1..1 | string | Path that identifies the base element |
min | Σ | 1..1 | unsignedInt | Min cardinality of the base element |
max | Σ | 1..1 | string | Max cardinality of the base element |
type | ΣI | 0..* | Element | Data type and Profile for this element |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
code | Σ | 1..1 | uri | Data type or Resource (reference to definition) Binding: FHIRDefinedType (extensible) |
targetProfile | Σ | 0..* | canonical(StructureDefinition | ImplementationGuide) | Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply |
versioning | Σ | 0..1 | code | either | independent | specific Binding: ReferenceVersionRules (required) |
defaultValue[x] | ΣI | 0..1 | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ParameterDefinition, DataRequirement, RelatedArtifact, ContactDetail, Contributor, TriggerDefinition, Expression, UsageContext, Dosage | Specified value if missing from instance |
meaningWhenMissing | ΣI | 0..1 | markdown | Implicit meaning when this element is missing |
orderMeaning | Σ | 0..1 | string | What the order of the elements means |
example | ΣI | 0..* | Element | Example value (as defined for type) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
label | Σ | 1..1 | string | Describes the purpose of this example |
value[x] | Σ | 1..1 | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ParameterDefinition, DataRequirement, RelatedArtifact, ContactDetail, Contributor, TriggerDefinition, Expression, UsageContext, Dosage | Value of Example (one of allowed types) |
minValue[x] | Σ | 0..1 | date, dateTime, instant, time, decimal, integer, positiveInt, unsignedInt, Quantity | Minimum Allowed Value (for some types) |
maxValue[x] | Σ | 0..1 | date, dateTime, instant, time, decimal, integer, positiveInt, unsignedInt, Quantity | Maximum Allowed Value (for some types) |
maxLength | Σ | 0..1 | integer | Max length for strings |
condition | Σ | 0..* | id | Reference to invariant about presence |
constraint | ΣI | 0..* | Element | Condition that must evaluate to true eld-21: Constraints should have an expression or else validators will not be able to enforce them |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
key | ΣI | 1..1 | id | Target of 'condition' reference above |
requirements | Σ | 0..1 | string | Why this constraint is necessary or appropriate |
severity | Σ | 1..1 | code | error | warning Binding: ConstraintSeverity (required) |
human | Σ | 1..1 | string | Human description of constraint |
expression | Σ | 0..1 | string | FHIRPath expression of constraint |
xpath | Σ | 0..1 | string | XPath expression of constraint |
source | Σ | 0..1 | canonical(StructureDefinition) | Reference to original source of constraint |
mustSupport | Σ | 0..1 | boolean | If the element must be supported |
isModifierReason | Σ | 0..1 | string | Reason that this element is marked as a modifier |
binding | ΣI | 0..1 | Element | ValueSet details if this is coded eld-12: ValueSet SHALL start with http:// or https:// or urn: |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
strength | Σ | 1..1 | code | required | extensible | preferred | example Binding: BindingStrength (required) |
description | Σ | 0..1 | string | Human explanation of the value set |
valueSet | ΣI | 0..1 | canonical(ValueSet) | Source of value set |
mapping | ΣI | 0..* | Element | Map element to another set of definitions |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
identity | Σ | 1..1 | id | Reference to mapping declaration |
language | Σ | 0..1 | code | Computable language of mapping Binding: MimeType (required) |
map | Σ | 1..1 | string | Details of the mapping |
comment | Σ | 0..1 | string | Comments about the mapping or its use |
Documentation for this format |
<!-- DataElement constraint on ElementDefinition data type --> <ElementDefinition xmlns="http://hl7.org/fhir" > <!-- from Element: extension --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored if unrecognized --></modifierExtension> <path value="[string]"/><!-- 1..1 Path of the element in the hierarchy of elements --> <representation value="[code]"/><!-- 0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml --> <sliceName value="[string]"/><!-- 0..1 Name for this particular element (in a set of slices) --> <sliceIsConstraining value="[boolean]"/><!-- 0..1 If this slice definition constrains an inherited slice definition (or not) --> <label value="[string]"/><!-- 0..1 Name for element to display with or prompt for element --> <code><!-- 0..* Coding Corresponding codes in terminologies --></code> <slicing> 0..0 Element <!-- 0..0 This element is sliced - slices follow --> </slicing> <short value="[string]"/><!-- 0..0 Concise definition for space-constrained presentation --> <definition value="[markdown]"/><!-- 0..1 Full formal definition as narrative text --> <comment value="[markdown]"/><!-- 0..1 Comments about the use of this element --> <requirements value="[markdown]"/><!-- 0..1 Why this resource has been created --> <alias value="[string]"/><!-- 0..* Other names --> <min value="[unsignedInt]"/><!-- 0..1 Minimum Cardinality --> <max value="[string]"/><!-- 0..1 Maximum Cardinality (a number or *) --> <base> 0..1 Element <!-- 0..1 Base definition information for tools --> <path value="[string]"/><!-- 1..1 Path that identifies the base element --> <min value="[unsignedInt]"/><!-- 1..1 Min cardinality of the base element --> <max value="[string]"/><!-- 1..1 Max cardinality of the base element --> </base> <contentReference value="[uri]"/><!-- 0..0 Reference to definition of content for the element --> <type> 0..* Element <!-- 0..* Data type and Profile for this element --> <code value="[uri]"/><!-- 1..1 Data type or Resource (reference to definition) --> <profile value="[canonical]"/><!-- 0..0 Profiles (StructureDefinition or IG) - one must apply --> <targetProfile value="[canonical]"/><!-- 0..* Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply --> <aggregation value="[code]"/><!-- 0..0 contained | referenced | bundled - how aggregated --> <versioning value="[code]"/><!-- 0..1 either | independent | specific --> </type> <defaultValue[x]><!-- 0..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string| time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|Coding|ContactPoint|Count|Distance|Duration|HumanName| Identifier|Money|Period|Quantity|Range|Ratio|Reference|SampledData|Signature| Timing|ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail| Contributor|TriggerDefinition|Expression|UsageContext|Dosage Specified value if missing from instance --></defaultValue[x]> <meaningWhenMissing value="[markdown]"/><!-- 0..1 Implicit meaning when this element is missing --> <orderMeaning value="[string]"/><!-- 0..1 What the order of the elements means --> <fixed[x]><!-- 0..0 base64Binary|boolean|canonical|code|date| dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time| unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept| Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period| Quantity|Range|Ratio|Reference|SampledData|Signature|Timing| ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail|Contributor| TriggerDefinition|Expression|UsageContext|Dosage Value must be exactly this --></fixed[x]> <pattern[x]><!-- 0..0 base64Binary|boolean|canonical|code| date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time| unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept| Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period| Quantity|Range|Ratio|Reference|SampledData|Signature|Timing| ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail|Contributor| TriggerDefinition|Expression|UsageContext|Dosage Value must have at least these property values --></pattern[x]> <example> 0..* Element <!-- 0..* Example value (as defined for type) --> <label value="[string]"/><!-- 1..1 Describes the purpose of this example --> <value[x]><!-- 1..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt| string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|Coding|ContactPoint|Count|Distance|Duration|HumanName| Identifier|Money|Period|Quantity|Range|Ratio|Reference|SampledData|Signature| Timing|ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail| Contributor|TriggerDefinition|Expression|UsageContext|Dosage Value of Example (one of allowed types) --></value[x]> </example> <minValue[x]><!-- 0..1 date|dateTime|instant|time|decimal| integer|positiveInt|unsignedInt|Quantity Minimum Allowed Value (for some types) --></minValue[x]> <maxValue[x]><!-- 0..1 date|dateTime|instant|time|decimal| integer|positiveInt|unsignedInt|Quantity Maximum Allowed Value (for some types) --></maxValue[x]> <maxLength value="[integer]"/><!-- 0..1 Max length for strings --> <condition value="[id]"/><!-- 0..* Reference to invariant about presence --> <constraint> 0..* Element <!-- 0..* Condition that must evaluate to true --> <key value="[id]"/><!-- 1..1 Target of 'condition' reference above --> <requirements value="[string]"/><!-- 0..1 Why this constraint is necessary or appropriate --> <severity value="[code]"/><!-- 1..1 error | warning --> <human value="[string]"/><!-- 1..1 Human description of constraint --> <expression value="[string]"/><!-- 0..1 FHIRPath expression of constraint --> <xpath value="[string]"/><!-- 0..1 XPath expression of constraint --> <source value="[canonical]"/><!-- 0..1 Reference to original source of constraint --> </constraint> <mustSupport value="[boolean]"/><!-- 0..1 If the element must be supported --> <isModifier value="[boolean]"/><!-- 0..0 If this modifies the meaning of other elements --> <isModifierReason value="[string]"/><!-- 0..1 Reason that this element is marked as a modifier --> <isSummary value="[boolean]"/><!-- 0..0 Include when _summary = true? --> <binding> 0..1 Element <!-- 0..1 ValueSet details if this is coded --> <strength value="[code]"/><!-- 1..1 required | extensible | preferred | example --> <description value="[string]"/><!-- 0..1 Human explanation of the value set --> <valueSet value="[canonical]"/><!-- 0..1 Source of value set --> </binding> <mapping> 0..* Element <!-- 0..* Map element to another set of definitions --> <identity value="[id]"/><!-- 1..1 Reference to mapping declaration --> <language value="[code]"/><!-- 0..1 Computable language of mapping --> <map value="[string]"/><!-- 1..1 Details of the mapping --> <comment value="[string]"/><!-- 0..1 Comments about the mapping or its use --> </mapping> </ElementDefinition>
{ // DataElement constraint on ElementDefinition data type // from Element: extension "extension" : [ // sliced by value:url in the specified order, Open { // Extension // // from Element: extension "extension" : [ // sliced by value:url in the specified order, Open ] "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-question", // R! "valueString" : "<string>" //Value of extension }, { // Extension // // from Element: extension "extension" : [ // sliced by value:url in the specified order, Open ] "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits", // R! // value[x]: Value of extension. One of these 2: "valueCodeableConcept" : { CodeableConcept } // R! Value of extension "valueCanonical" : "<canonical>", // R! Value of extension } ], "modifierExtension" : [{ Extension }], //Extensions that cannot be ignored if unrecognized "path" : "<string>", // R! Path of the element in the hierarchy of elements "sliceName" : "<string>", //Name for this particular element (in a set of slices) "sliceIsConstraining" : <boolean>, //If this slice definition constrains an inherited slice definition (or not) "label" : "<string>", //Name for element to display with or prompt for element "code" : [{ Coding }], //Corresponding codes in terminologies "definition" : "<markdown>", //Full formal definition as narrative text "comment" : "<markdown>", //Comments about the use of this element "requirements" : "<markdown>", //Why this resource has been created "alias" : ["<string>"], //Other names "min" : "<unsignedInt>", //Minimum Cardinality "max" : "<string>", // C?Maximum Cardinality (a number or *) "base" : { Element }, // C?Base definition information for tools "type" : [{ Element }], // C?Data type and Profile for this element // value[x]: Specified value if missing from instance. One of these 49: "defaultValueBase64Binary" : "<base64Binary>", //Specified value if missing from instance "defaultValueBoolean" : <boolean>, //Specified value if missing from instance "defaultValueCanonical" : "<canonical>", //Specified value if missing from instance "defaultValueCode" : "<code>", //Specified value if missing from instance "defaultValueDate" : "<date>", //Specified value if missing from instance "defaultValueDateTime" : "<dateTime>", //Specified value if missing from instance "defaultValueDecimal" : <decimal>, //Specified value if missing from instance "defaultValueId" : "<id>", //Specified value if missing from instance "defaultValueInstant" : "<instant>", //Specified value if missing from instance "defaultValueInteger" : <integer>, //Specified value if missing from instance "defaultValueMarkdown" : "<markdown>", //Specified value if missing from instance "defaultValueOid" : "<oid>", //Specified value if missing from instance "defaultValuePositiveInt" : "<positiveInt>", //Specified value if missing from instance "defaultValueString" : "<string>", //Specified value if missing from instance "defaultValueTime" : "<time>", //Specified value if missing from instance "defaultValueUnsignedInt" : "<unsignedInt>", //Specified value if missing from instance "defaultValueUri" : "<uri>", //Specified value if missing from instance "defaultValueUrl" : "<url>", //Specified value if missing from instance "defaultValueUuid" : "<uuid>" //Specified value if missing from instance "defaultValueAddress" : { Address }, //Specified value if missing from instance "defaultValueAge" : { Age }, //Specified value if missing from instance "defaultValueAnnotation" : { Annotation }, //Specified value if missing from instance "defaultValueAttachment" : { Attachment }, //Specified value if missing from instance "defaultValueCodeableConcept" : { CodeableConcept }, //Specified value if missing from instance "defaultValueCoding" : { Coding }, //Specified value if missing from instance "defaultValueContactPoint" : { ContactPoint }, //Specified value if missing from instance "defaultValueCount" : { Count }, //Specified value if missing from instance "defaultValueDistance" : { Distance }, //Specified value if missing from instance "defaultValueDuration" : { Duration }, //Specified value if missing from instance "defaultValueHumanName" : { HumanName }, //Specified value if missing from instance "defaultValueIdentifier" : { Identifier }, //Specified value if missing from instance "defaultValueMoney" : { Money }, //Specified value if missing from instance "defaultValuePeriod" : { Period }, //Specified value if missing from instance "defaultValueQuantity" : { Quantity }, //Specified value if missing from instance "defaultValueRange" : { Range }, //Specified value if missing from instance "defaultValueRatio" : { Ratio }, //Specified value if missing from instance "defaultValueReference" : { Reference }, //Specified value if missing from instance "defaultValueSampledData" : { SampledData }, //Specified value if missing from instance "defaultValueSignature" : { Signature }, //Specified value if missing from instance "defaultValueTiming" : { Timing }, //Specified value if missing from instance "defaultValueParameterDefinition" : { ParameterDefinition }, //Specified value if missing from instance "defaultValueDataRequirement" : { DataRequirement }, //Specified value if missing from instance "defaultValueRelatedArtifact" : { RelatedArtifact }, //Specified value if missing from instance "defaultValueContactDetail" : { ContactDetail }, //Specified value if missing from instance "defaultValueContributor" : { Contributor }, //Specified value if missing from instance "defaultValueTriggerDefinition" : { TriggerDefinition }, //Specified value if missing from instance "defaultValueExpression" : { Expression }, //Specified value if missing from instance "defaultValueUsageContext" : { UsageContext }, //Specified value if missing from instance "defaultValueDosage" : { Dosage }, //Specified value if missing from instance "meaningWhenMissing" : "<markdown>", //Implicit meaning when this element is missing "orderMeaning" : "<string>", //What the order of the elements means // value[x]: Value must be exactly this. One of these 49: // value[x]: Value must have at least these property values. One of these 49: "example" : [{ Element }], // C?Example value (as defined for type) // value[x]: Minimum Allowed Value (for some types). One of these 9: "minValueDate" : "<date>", //Minimum Allowed Value (for some types) "minValueDateTime" : "<dateTime>", //Minimum Allowed Value (for some types) "minValueInstant" : "<instant>", //Minimum Allowed Value (for some types) "minValueTime" : "<time>", //Minimum Allowed Value (for some types) "minValueDecimal" : <decimal>, //Minimum Allowed Value (for some types) "minValueInteger" : <integer>, //Minimum Allowed Value (for some types) "minValuePositiveInt" : "<positiveInt>", //Minimum Allowed Value (for some types) "minValueUnsignedInt" : "<unsignedInt>", //Minimum Allowed Value (for some types) "minValueQuantity" : { Quantity }, //Minimum Allowed Value (for some types) // value[x]: Maximum Allowed Value (for some types). One of these 9: "maxValueDate" : "<date>", //Maximum Allowed Value (for some types) "maxValueDateTime" : "<dateTime>", //Maximum Allowed Value (for some types) "maxValueInstant" : "<instant>", //Maximum Allowed Value (for some types) "maxValueTime" : "<time>", //Maximum Allowed Value (for some types) "maxValueDecimal" : <decimal>, //Maximum Allowed Value (for some types) "maxValueInteger" : <integer>, //Maximum Allowed Value (for some types) "maxValuePositiveInt" : "<positiveInt>", //Maximum Allowed Value (for some types) "maxValueUnsignedInt" : "<unsignedInt>", //Maximum Allowed Value (for some types) "maxValueQuantity" : { Quantity }, //Maximum Allowed Value (for some types) "maxLength" : <integer>, //Max length for strings "condition" : ["<id>"], //Reference to invariant about presence "constraint" : [{ Element }], // C?Condition that must evaluate to true "mustSupport" : <boolean>, //If the element must be supported "isModifierReason" : "<string>", //Reason that this element is marked as a modifier "binding" : { Element }, // C?ValueSet details if this is coded "mapping" : [{ Element }], // C?Map element to another set of definitions }
This structure is derived from ElementDefinition.
Differential View
This structure is derived from ElementDefinition.
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ElementDefinition | I | 0..* | Definition of an element in a resource or extension | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
elementdefinition-question | 0..* | string | Extension URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..0 | |||
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/elementdefinition-question" | |
valueString | 0..1 | string | Value of extension | |
elementdefinition-allowedUnits | 0..1 | CodeableConcept, canonical(ValueSet) | Extension URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits Binding: UCUM Codes (required) | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..0 | |||
url | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits" | |
value[x] | 1..1 | CodeableConcept, canonical(ValueSet) | Value of extension Binding: UCUM Codes (required) | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored if unrecognized |
path | Σ | 1..1 | string | Path of the element in the hierarchy of elements |
sliceName | Σ | 0..1 | string | Name for this particular element (in a set of slices) |
sliceIsConstraining | Σ | 0..1 | boolean | If this slice definition constrains an inherited slice definition (or not) |
label | Σ | 0..1 | string | Name for element to display with or prompt for element |
code | Σ | 0..* | Coding | Corresponding codes in terminologies Binding: LOINC Codes (example) |
definition | Σ | 0..1 | markdown | Full formal definition as narrative text |
comment | Σ | 0..1 | markdown | Comments about the use of this element |
requirements | Σ | 0..1 | markdown | Why this resource has been created |
alias | Σ | 0..* | string | Other names |
min | ΣI | 0..1 | unsignedInt | Minimum Cardinality |
max | ΣI | 0..1 | string | Maximum Cardinality (a number or *) eld-3: Max SHALL be a number or "*" |
base | ΣI | 0..1 | Element | Base definition information for tools |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
path | Σ | 1..1 | string | Path that identifies the base element |
min | Σ | 1..1 | unsignedInt | Min cardinality of the base element |
max | Σ | 1..1 | string | Max cardinality of the base element |
type | ΣI | 0..* | Element | Data type and Profile for this element |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
code | Σ | 1..1 | uri | Data type or Resource (reference to definition) Binding: FHIRDefinedType (extensible) |
targetProfile | Σ | 0..* | canonical(StructureDefinition | ImplementationGuide) | Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply |
versioning | Σ | 0..1 | code | either | independent | specific Binding: ReferenceVersionRules (required) |
defaultValue[x] | ΣI | 0..1 | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ParameterDefinition, DataRequirement, RelatedArtifact, ContactDetail, Contributor, TriggerDefinition, Expression, UsageContext, Dosage | Specified value if missing from instance |
meaningWhenMissing | ΣI | 0..1 | markdown | Implicit meaning when this element is missing |
orderMeaning | Σ | 0..1 | string | What the order of the elements means |
example | ΣI | 0..* | Element | Example value (as defined for type) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
label | Σ | 1..1 | string | Describes the purpose of this example |
value[x] | Σ | 1..1 | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ParameterDefinition, DataRequirement, RelatedArtifact, ContactDetail, Contributor, TriggerDefinition, Expression, UsageContext, Dosage | Value of Example (one of allowed types) |
minValue[x] | Σ | 0..1 | date, dateTime, instant, time, decimal, integer, positiveInt, unsignedInt, Quantity | Minimum Allowed Value (for some types) |
maxValue[x] | Σ | 0..1 | date, dateTime, instant, time, decimal, integer, positiveInt, unsignedInt, Quantity | Maximum Allowed Value (for some types) |
maxLength | Σ | 0..1 | integer | Max length for strings |
condition | Σ | 0..* | id | Reference to invariant about presence |
constraint | ΣI | 0..* | Element | Condition that must evaluate to true eld-21: Constraints should have an expression or else validators will not be able to enforce them |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
key | ΣI | 1..1 | id | Target of 'condition' reference above |
requirements | Σ | 0..1 | string | Why this constraint is necessary or appropriate |
severity | Σ | 1..1 | code | error | warning Binding: ConstraintSeverity (required) |
human | Σ | 1..1 | string | Human description of constraint |
expression | Σ | 0..1 | string | FHIRPath expression of constraint |
xpath | Σ | 0..1 | string | XPath expression of constraint |
source | Σ | 0..1 | canonical(StructureDefinition) | Reference to original source of constraint |
mustSupport | Σ | 0..1 | boolean | If the element must be supported |
isModifierReason | Σ | 0..1 | string | Reason that this element is marked as a modifier |
binding | ΣI | 0..1 | Element | ValueSet details if this is coded eld-12: ValueSet SHALL start with http:// or https:// or urn: |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
strength | Σ | 1..1 | code | required | extensible | preferred | example Binding: BindingStrength (required) |
description | Σ | 0..1 | string | Human explanation of the value set |
valueSet | ΣI | 0..1 | canonical(ValueSet) | Source of value set |
mapping | ΣI | 0..* | Element | Map element to another set of definitions |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
identity | Σ | 1..1 | id | Reference to mapping declaration |
language | Σ | 0..1 | code | Computable language of mapping Binding: MimeType (required) |
map | Σ | 1..1 | string | Details of the mapping |
comment | Σ | 0..1 | string | Comments about the mapping or its use |
Documentation for this format |
XML Template
<!-- DataElement constraint on ElementDefinition data type --> <ElementDefinition xmlns="http://hl7.org/fhir" > <!-- from Element: extension --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored if unrecognized --></modifierExtension> <path value="[string]"/><!-- 1..1 Path of the element in the hierarchy of elements --> <representation value="[code]"/><!-- 0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml --> <sliceName value="[string]"/><!-- 0..1 Name for this particular element (in a set of slices) --> <sliceIsConstraining value="[boolean]"/><!-- 0..1 If this slice definition constrains an inherited slice definition (or not) --> <label value="[string]"/><!-- 0..1 Name for element to display with or prompt for element --> <code><!-- 0..* Coding Corresponding codes in terminologies --></code> <slicing> 0..0 Element <!-- 0..0 This element is sliced - slices follow --> </slicing> <short value="[string]"/><!-- 0..0 Concise definition for space-constrained presentation --> <definition value="[markdown]"/><!-- 0..1 Full formal definition as narrative text --> <comment value="[markdown]"/><!-- 0..1 Comments about the use of this element --> <requirements value="[markdown]"/><!-- 0..1 Why this resource has been created --> <alias value="[string]"/><!-- 0..* Other names --> <min value="[unsignedInt]"/><!-- 0..1 Minimum Cardinality --> <max value="[string]"/><!-- 0..1 Maximum Cardinality (a number or *) --> <base> 0..1 Element <!-- 0..1 Base definition information for tools --> <path value="[string]"/><!-- 1..1 Path that identifies the base element --> <min value="[unsignedInt]"/><!-- 1..1 Min cardinality of the base element --> <max value="[string]"/><!-- 1..1 Max cardinality of the base element --> </base> <contentReference value="[uri]"/><!-- 0..0 Reference to definition of content for the element --> <type> 0..* Element <!-- 0..* Data type and Profile for this element --> <code value="[uri]"/><!-- 1..1 Data type or Resource (reference to definition) --> <profile value="[canonical]"/><!-- 0..0 Profiles (StructureDefinition or IG) - one must apply --> <targetProfile value="[canonical]"/><!-- 0..* Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply --> <aggregation value="[code]"/><!-- 0..0 contained | referenced | bundled - how aggregated --> <versioning value="[code]"/><!-- 0..1 either | independent | specific --> </type> <defaultValue[x]><!-- 0..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string| time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|Coding|ContactPoint|Count|Distance|Duration|HumanName| Identifier|Money|Period|Quantity|Range|Ratio|Reference|SampledData|Signature| Timing|ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail| Contributor|TriggerDefinition|Expression|UsageContext|Dosage Specified value if missing from instance --></defaultValue[x]> <meaningWhenMissing value="[markdown]"/><!-- 0..1 Implicit meaning when this element is missing --> <orderMeaning value="[string]"/><!-- 0..1 What the order of the elements means --> <fixed[x]><!-- 0..0 base64Binary|boolean|canonical|code|date| dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time| unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept| Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period| Quantity|Range|Ratio|Reference|SampledData|Signature|Timing| ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail|Contributor| TriggerDefinition|Expression|UsageContext|Dosage Value must be exactly this --></fixed[x]> <pattern[x]><!-- 0..0 base64Binary|boolean|canonical|code| date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time| unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept| Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period| Quantity|Range|Ratio|Reference|SampledData|Signature|Timing| ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail|Contributor| TriggerDefinition|Expression|UsageContext|Dosage Value must have at least these property values --></pattern[x]> <example> 0..* Element <!-- 0..* Example value (as defined for type) --> <label value="[string]"/><!-- 1..1 Describes the purpose of this example --> <value[x]><!-- 1..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt| string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|Coding|ContactPoint|Count|Distance|Duration|HumanName| Identifier|Money|Period|Quantity|Range|Ratio|Reference|SampledData|Signature| Timing|ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail| Contributor|TriggerDefinition|Expression|UsageContext|Dosage Value of Example (one of allowed types) --></value[x]> </example> <minValue[x]><!-- 0..1 date|dateTime|instant|time|decimal| integer|positiveInt|unsignedInt|Quantity Minimum Allowed Value (for some types) --></minValue[x]> <maxValue[x]><!-- 0..1 date|dateTime|instant|time|decimal| integer|positiveInt|unsignedInt|Quantity Maximum Allowed Value (for some types) --></maxValue[x]> <maxLength value="[integer]"/><!-- 0..1 Max length for strings --> <condition value="[id]"/><!-- 0..* Reference to invariant about presence --> <constraint> 0..* Element <!-- 0..* Condition that must evaluate to true --> <key value="[id]"/><!-- 1..1 Target of 'condition' reference above --> <requirements value="[string]"/><!-- 0..1 Why this constraint is necessary or appropriate --> <severity value="[code]"/><!-- 1..1 error | warning --> <human value="[string]"/><!-- 1..1 Human description of constraint --> <expression value="[string]"/><!-- 0..1 FHIRPath expression of constraint --> <xpath value="[string]"/><!-- 0..1 XPath expression of constraint --> <source value="[canonical]"/><!-- 0..1 Reference to original source of constraint --> </constraint> <mustSupport value="[boolean]"/><!-- 0..1 If the element must be supported --> <isModifier value="[boolean]"/><!-- 0..0 If this modifies the meaning of other elements --> <isModifierReason value="[string]"/><!-- 0..1 Reason that this element is marked as a modifier --> <isSummary value="[boolean]"/><!-- 0..0 Include when _summary = true? --> <binding> 0..1 Element <!-- 0..1 ValueSet details if this is coded --> <strength value="[code]"/><!-- 1..1 required | extensible | preferred | example --> <description value="[string]"/><!-- 0..1 Human explanation of the value set --> <valueSet value="[canonical]"/><!-- 0..1 Source of value set --> </binding> <mapping> 0..* Element <!-- 0..* Map element to another set of definitions --> <identity value="[id]"/><!-- 1..1 Reference to mapping declaration --> <language value="[code]"/><!-- 0..1 Computable language of mapping --> <map value="[string]"/><!-- 1..1 Details of the mapping --> <comment value="[string]"/><!-- 0..1 Comments about the mapping or its use --> </mapping> </ElementDefinition>
JSON Template
{ // DataElement constraint on ElementDefinition data type // from Element: extension "extension" : [ // sliced by value:url in the specified order, Open { // Extension // // from Element: extension "extension" : [ // sliced by value:url in the specified order, Open ] "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-question", // R! "valueString" : "<string>" //Value of extension }, { // Extension // // from Element: extension "extension" : [ // sliced by value:url in the specified order, Open ] "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits", // R! // value[x]: Value of extension. One of these 2: "valueCodeableConcept" : { CodeableConcept } // R! Value of extension "valueCanonical" : "<canonical>", // R! Value of extension } ], "modifierExtension" : [{ Extension }], //Extensions that cannot be ignored if unrecognized "path" : "<string>", // R! Path of the element in the hierarchy of elements "sliceName" : "<string>", //Name for this particular element (in a set of slices) "sliceIsConstraining" : <boolean>, //If this slice definition constrains an inherited slice definition (or not) "label" : "<string>", //Name for element to display with or prompt for element "code" : [{ Coding }], //Corresponding codes in terminologies "definition" : "<markdown>", //Full formal definition as narrative text "comment" : "<markdown>", //Comments about the use of this element "requirements" : "<markdown>", //Why this resource has been created "alias" : ["<string>"], //Other names "min" : "<unsignedInt>", //Minimum Cardinality "max" : "<string>", // C?Maximum Cardinality (a number or *) "base" : { Element }, // C?Base definition information for tools "type" : [{ Element }], // C?Data type and Profile for this element // value[x]: Specified value if missing from instance. One of these 49: "defaultValueBase64Binary" : "<base64Binary>", //Specified value if missing from instance "defaultValueBoolean" : <boolean>, //Specified value if missing from instance "defaultValueCanonical" : "<canonical>", //Specified value if missing from instance "defaultValueCode" : "<code>", //Specified value if missing from instance "defaultValueDate" : "<date>", //Specified value if missing from instance "defaultValueDateTime" : "<dateTime>", //Specified value if missing from instance "defaultValueDecimal" : <decimal>, //Specified value if missing from instance "defaultValueId" : "<id>", //Specified value if missing from instance "defaultValueInstant" : "<instant>", //Specified value if missing from instance "defaultValueInteger" : <integer>, //Specified value if missing from instance "defaultValueMarkdown" : "<markdown>", //Specified value if missing from instance "defaultValueOid" : "<oid>", //Specified value if missing from instance "defaultValuePositiveInt" : "<positiveInt>", //Specified value if missing from instance "defaultValueString" : "<string>", //Specified value if missing from instance "defaultValueTime" : "<time>", //Specified value if missing from instance "defaultValueUnsignedInt" : "<unsignedInt>", //Specified value if missing from instance "defaultValueUri" : "<uri>", //Specified value if missing from instance "defaultValueUrl" : "<url>", //Specified value if missing from instance "defaultValueUuid" : "<uuid>" //Specified value if missing from instance "defaultValueAddress" : { Address }, //Specified value if missing from instance "defaultValueAge" : { Age }, //Specified value if missing from instance "defaultValueAnnotation" : { Annotation }, //Specified value if missing from instance "defaultValueAttachment" : { Attachment }, //Specified value if missing from instance "defaultValueCodeableConcept" : { CodeableConcept }, //Specified value if missing from instance "defaultValueCoding" : { Coding }, //Specified value if missing from instance "defaultValueContactPoint" : { ContactPoint }, //Specified value if missing from instance "defaultValueCount" : { Count }, //Specified value if missing from instance "defaultValueDistance" : { Distance }, //Specified value if missing from instance "defaultValueDuration" : { Duration }, //Specified value if missing from instance "defaultValueHumanName" : { HumanName }, //Specified value if missing from instance "defaultValueIdentifier" : { Identifier }, //Specified value if missing from instance "defaultValueMoney" : { Money }, //Specified value if missing from instance "defaultValuePeriod" : { Period }, //Specified value if missing from instance "defaultValueQuantity" : { Quantity }, //Specified value if missing from instance "defaultValueRange" : { Range }, //Specified value if missing from instance "defaultValueRatio" : { Ratio }, //Specified value if missing from instance "defaultValueReference" : { Reference }, //Specified value if missing from instance "defaultValueSampledData" : { SampledData }, //Specified value if missing from instance "defaultValueSignature" : { Signature }, //Specified value if missing from instance "defaultValueTiming" : { Timing }, //Specified value if missing from instance "defaultValueParameterDefinition" : { ParameterDefinition }, //Specified value if missing from instance "defaultValueDataRequirement" : { DataRequirement }, //Specified value if missing from instance "defaultValueRelatedArtifact" : { RelatedArtifact }, //Specified value if missing from instance "defaultValueContactDetail" : { ContactDetail }, //Specified value if missing from instance "defaultValueContributor" : { Contributor }, //Specified value if missing from instance "defaultValueTriggerDefinition" : { TriggerDefinition }, //Specified value if missing from instance "defaultValueExpression" : { Expression }, //Specified value if missing from instance "defaultValueUsageContext" : { UsageContext }, //Specified value if missing from instance "defaultValueDosage" : { Dosage }, //Specified value if missing from instance "meaningWhenMissing" : "<markdown>", //Implicit meaning when this element is missing "orderMeaning" : "<string>", //What the order of the elements means // value[x]: Value must be exactly this. One of these 49: // value[x]: Value must have at least these property values. One of these 49: "example" : [{ Element }], // C?Example value (as defined for type) // value[x]: Minimum Allowed Value (for some types). One of these 9: "minValueDate" : "<date>", //Minimum Allowed Value (for some types) "minValueDateTime" : "<dateTime>", //Minimum Allowed Value (for some types) "minValueInstant" : "<instant>", //Minimum Allowed Value (for some types) "minValueTime" : "<time>", //Minimum Allowed Value (for some types) "minValueDecimal" : <decimal>, //Minimum Allowed Value (for some types) "minValueInteger" : <integer>, //Minimum Allowed Value (for some types) "minValuePositiveInt" : "<positiveInt>", //Minimum Allowed Value (for some types) "minValueUnsignedInt" : "<unsignedInt>", //Minimum Allowed Value (for some types) "minValueQuantity" : { Quantity }, //Minimum Allowed Value (for some types) // value[x]: Maximum Allowed Value (for some types). One of these 9: "maxValueDate" : "<date>", //Maximum Allowed Value (for some types) "maxValueDateTime" : "<dateTime>", //Maximum Allowed Value (for some types) "maxValueInstant" : "<instant>", //Maximum Allowed Value (for some types) "maxValueTime" : "<time>", //Maximum Allowed Value (for some types) "maxValueDecimal" : <decimal>, //Maximum Allowed Value (for some types) "maxValueInteger" : <integer>, //Maximum Allowed Value (for some types) "maxValuePositiveInt" : "<positiveInt>", //Maximum Allowed Value (for some types) "maxValueUnsignedInt" : "<unsignedInt>", //Maximum Allowed Value (for some types) "maxValueQuantity" : { Quantity }, //Maximum Allowed Value (for some types) "maxLength" : <integer>, //Max length for strings "condition" : ["<id>"], //Reference to invariant about presence "constraint" : [{ Element }], // C?Condition that must evaluate to true "mustSupport" : <boolean>, //If the element must be supported "isModifierReason" : "<string>", //Reason that this element is marked as a modifier "binding" : { Element }, // C?ValueSet details if this is coded "mapping" : [{ Element }], // C?Map element to another set of definitions }
Alternate definitions: Master Definition (XML, JSON), Schematron
Path | Name | Conformance | ValueSet |
ElementDefinition.extension.value[x] | UCUM Codes | required | UCUM Codes |
ElementDefinition.code | LOINC Codes | example | LOINC Codes |
ElementDefinition.slicing.discriminator.type | DiscriminatorType | required | DiscriminatorType |
ElementDefinition.slicing.rules | SlicingRules | required | SlicingRules |
ElementDefinition.type.code | FHIRDefinedType | extensible | FHIRDefinedType |
ElementDefinition.type.versioning | ReferenceVersionRules | required | ReferenceVersionRules |
ElementDefinition.constraint.severity | ConstraintSeverity | required | ConstraintSeverity |
ElementDefinition.binding.strength | BindingStrength | required | BindingStrength |
ElementDefinition.mapping.language | MimeType | required | MimeType |
Id | Path | Details | Requirements |
eld-3 | ElementDefinition.max | Max SHALL be a number or "*" Expression: empty() or ($this = '*') or (toInteger() >= 0) | |
eld-21 | ElementDefinition.constraint | Constraints should have an expression or else validators will not be able to enforce them Expression: expression.exists() | |
eld-12 | ElementDefinition.binding | ValueSet SHALL start with http:// or https:// or urn: Expression: valueSet.exists() implies (valueSet.startsWith('http:') or valueSet.startsWith('https') or valueSet.startsWith('urn:')) |