This page is part of the FHIR Specification (v5.0.0-draft-final: Final QA Preview for R5 - see ballot notes). 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: Country: World |
The canonical 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+1100 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.
Summary
Prohibited: 10 elements
Extensions
This structure refers to these extensions:
This indicates the differences between this profile and the base ElementDefinition structure.
This provides the consolidated view (aka snapshot) of the profile after applying the changes in this profile to the base ElementDefinition structure.
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ElementDefinition | C | 0..* | ElementDefinition | Definition of an element in a resource or extension |
id | 0..1 | id | Unique id for inter-element referencing | |
Slices for extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
Question | 0..* | string | Prompt for element phrased as question URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question | |
AllowedUnits | 0..1 | CodeableConcept, canonical(ValueSet) | Units to use for measured value URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits Binding: UCUM Codes (required) | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
path | ΣC | 1..1 | string | Path of the element in the hierarchy of elements |
sliceName | ΣC | 0..1 | string | Name for this particular element (in a set of slices) |
sliceIsConstraining | ΣCTU | 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: Codes that indicate the meaning of a data element. (example): Codes that indicate the meaning of a data element. |
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 | ΣC | 0..1 | unsignedInt | Minimum Cardinality |
max | ΣC | 0..1 | string | Maximum Cardinality (a number or *) |
base | Σ | 0..1 | Element | Base definition information for tools |
id | 0..1 | string | Unique id for inter-element referencing | |
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 | ΣC | 0..* | Element | Data type and Profile for this element |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
code | ΣC | 1..1 | uri | Data type or Resource (reference to definition) Binding: Element Definition Types (extensible): List of all Types for ElementDefinition.type.code. |
targetProfile | ΣC | 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): Whether a reference needs to be version specific or version independent, or whether either can be used. |
defaultValue[x] | ΣC | 0..1 | Specified value if missing from instance | |
defaultValueBase64Binary | base64Binary | |||
defaultValueBoolean | boolean | |||
defaultValueCanonical | canonical(Any) | |||
defaultValueCode | code | |||
defaultValueDate | date | |||
defaultValueDateTime | dateTime | |||
defaultValueDecimal | decimal | |||
defaultValueId | id | |||
defaultValueInstant | instant | |||
defaultValueInteger | integer | |||
defaultValueInteger64 | integer64 | |||
defaultValueMarkdown | markdown | |||
defaultValueOid | oid | |||
defaultValuePositiveInt | positiveInt | |||
defaultValueString | string | |||
defaultValueTime | time | |||
defaultValueUnsignedInt | unsignedInt | |||
defaultValueUri | uri | |||
defaultValueUrl | url | |||
defaultValueUuid | uuid | |||
defaultValueAddress | Address | |||
defaultValueAge | Age | |||
defaultValueAnnotation | Annotation | |||
defaultValueAttachment | Attachment | |||
defaultValueCodeableConcept | CodeableConcept | |||
defaultValueCodeableReference | CodeableReference | |||
defaultValueCoding | Coding | |||
defaultValueContactPoint | ContactPoint | |||
defaultValueCount | Count | |||
defaultValueDistance | Distance | |||
defaultValueDuration | Duration | |||
defaultValueHumanName | HumanName | |||
defaultValueIdentifier | Identifier | |||
defaultValueMoney | Money | |||
defaultValuePeriod | Period | |||
defaultValueQuantity | Quantity | |||
defaultValueRange | Range | |||
defaultValueRatio | Ratio | |||
defaultValueRatioRange | RatioRange | |||
defaultValueReference | Reference(Any) | |||
defaultValueSampledData | SampledData | |||
defaultValueSignature | Signature | |||
defaultValueTiming | Timing | |||
defaultValueContactDetail | ContactDetail | |||
defaultValueDataRequirement | DataRequirement | |||
defaultValueExpression | Expression | |||
defaultValueParameterDefinition | ParameterDefinition | |||
defaultValueRelatedArtifact | RelatedArtifact | |||
defaultValueTriggerDefinition | TriggerDefinition | |||
defaultValueUsageContext | UsageContext | |||
defaultValueAvailability | Availability | |||
defaultValueExtendedContactDetail | ExtendedContactDetail | |||
defaultValueDosage | Dosage | |||
defaultValueMeta | Meta | |||
meaningWhenMissing | ΣC | 0..1 | markdown | Implicit meaning when this element is missing |
orderMeaning | ΣC | 0..1 | string | What the order of the elements means |
example | ΣC | 0..* | Element | Example value (as defined for type) |
id | 0..1 | string | Unique id for inter-element referencing | |
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 | Value of Example (one of allowed types) | |
valueBase64Binary | base64Binary | |||
valueBoolean | boolean | |||
valueCanonical | canonical(Any) | |||
valueCode | code | |||
valueDate | date | |||
valueDateTime | dateTime | |||
valueDecimal | decimal | |||
valueId | id | |||
valueInstant | instant | |||
valueInteger | integer | |||
valueInteger64 | integer64 | |||
valueMarkdown | markdown | |||
valueOid | oid | |||
valuePositiveInt | positiveInt | |||
valueString | string | |||
valueTime | time | |||
valueUnsignedInt | unsignedInt | |||
valueUri | uri | |||
valueUrl | url | |||
valueUuid | uuid | |||
valueAddress | Address | |||
valueAge | Age | |||
valueAnnotation | Annotation | |||
valueAttachment | Attachment | |||
valueCodeableConcept | CodeableConcept | |||
valueCodeableReference | CodeableReference | |||
valueCoding | Coding | |||
valueContactPoint | ContactPoint | |||
valueCount | Count | |||
valueDistance | Distance | |||
valueDuration | Duration | |||
valueHumanName | HumanName | |||
valueIdentifier | Identifier | |||
valueMoney | Money | |||
valuePeriod | Period | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
valueRatio | Ratio | |||
valueRatioRange | RatioRange | |||
valueReference | Reference(Any) | |||
valueSampledData | SampledData | |||
valueSignature | Signature | |||
valueTiming | Timing | |||
valueContactDetail | ContactDetail | |||
valueDataRequirement | DataRequirement | |||
valueExpression | Expression | |||
valueParameterDefinition | ParameterDefinition | |||
valueRelatedArtifact | RelatedArtifact | |||
valueTriggerDefinition | TriggerDefinition | |||
valueUsageContext | UsageContext | |||
valueAvailability | Availability | |||
valueExtendedContactDetail | ExtendedContactDetail | |||
valueDosage | Dosage | |||
valueMeta | Meta | |||
minValue[x] | ΣC | 0..1 | Minimum Allowed Value (for some types) | |
minValueDate | date | |||
minValueDateTime | dateTime | |||
minValueInstant | instant | |||
minValueTime | time | |||
minValueDecimal | decimal | |||
minValueInteger | integer | |||
minValueInteger64 | integer64 | |||
minValuePositiveInt | positiveInt | |||
minValueUnsignedInt | unsignedInt | |||
minValueQuantity | Quantity | |||
maxValue[x] | ΣC | 0..1 | Maximum Allowed Value (for some types) | |
maxValueDate | date | |||
maxValueDateTime | dateTime | |||
maxValueInstant | instant | |||
maxValueTime | time | |||
maxValueDecimal | decimal | |||
maxValueInteger | integer | |||
maxValueInteger64 | integer64 | |||
maxValuePositiveInt | positiveInt | |||
maxValueUnsignedInt | unsignedInt | |||
maxValueQuantity | Quantity | |||
maxLength | ΣC | 0..1 | integer | Max length for string type data |
condition | Σ | 0..* | id | Reference to invariant about presence |
constraint | ΣC | 0..* | Element | Condition that must evaluate to true |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
key | ΣC | 1..1 | id | Target of 'condition' reference above |
requirements | Σ | 0..1 | markdown | Why this constraint is necessary or appropriate |
severity | ΣC | 1..1 | code | error | warning Binding: ConstraintSeverity (required): SHALL applications comply with this constraint? |
suppress | ΣC | 0..1 | boolean | Suppress warning or hint in profile |
human | Σ | 1..1 | string | Human description of constraint |
expression | ΣC | 0..1 | string | FHIRPath expression of constraint |
source | Σ | 0..1 | canonical(StructureDefinition) | Reference to original source of constraint |
mustHaveValue | ΣCTU | 0..1 | boolean | For primitives, that a value must be present - not replaced by an extension |
valueAlternatives | ΣCTU | 0..* | canonical(StructureDefinition) | Extensions that are allowed to replace a primitive value |
mustSupport | Σ | 0..1 | boolean | If the element must be supported (discouraged - see obligations) |
isModifierReason | ΣC | 0..1 | string | Reason that this element is marked as a modifier |
binding | ΣC | 0..1 | Element | ValueSet details if this is coded |
id | 0..1 | string | Unique id for inter-element referencing | |
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): Indication of the degree of conformance expectations associated with a binding. |
description | ΣC | 0..1 | markdown | Intended use of codes in the bound value set |
valueSet | ΣC | 0..1 | canonical(ValueSet) | Source of value set |
additional | ΣTU | 0..* | Element | Additional Bindings - more rules about the binding |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
purpose | ΣTU | 1..1 | code | maximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component Binding: Additional Binding Purpose ValueSet (required): The use of an additional binding. |
valueSet | ΣTU | 1..1 | canonical(ValueSet) | The value set for the additional binding |
documentation | ΣTU | 0..1 | markdown | Documentation of the purpose of use of the binding |
shortDoco | ΣTU | 0..1 | string | Concise documentation - for summary tables |
usage | ΣTU | 0..* | UsageContext | Qualifies the usage - jurisdiction, gender, workflow status etc. |
any | ΣTU | 0..1 | boolean | Whether binding can applies to all repeats, or just one |
mapping | ΣC | 0..* | Element | Map element to another set of definitions |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
identity | ΣC | 1..1 | id | Reference to mapping declaration |
language | Σ | 0..1 | code | Computable language of mapping Binding: Mime Types (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) |
map | Σ | 1..1 | string | Details of the mapping |
comment | Σ | 0..1 | markdown | 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><!-- I 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <path value="[string]"/><!-- I 1..1 Path of the element in the hierarchy of elements --> <representation value="[code]"/><!-- I 0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml --> <sliceName value="[string]"/><!-- I 0..1 Name for this particular element (in a set of slices) --> <sliceIsConstraining value="[boolean]"/><!-- I 0..1 If this slice definition constrains an inherited slice definition (or not) --> <label value="[string]"/><!-- I 0..1 Name for element to display with or prompt for element --> <code><!-- I 0..* Coding Corresponding codes in terminologies --></code> <slicing> I 0..0 Element <!-- I 0..0 This element is sliced - slices follow --> </slicing> <short value="[string]"/><!-- I 0..0 Concise definition for space-constrained presentation --> <definition value="[markdown]"/><!-- I 0..1 Full formal definition as narrative text --> <comment value="[markdown]"/><!-- I 0..1 Comments about the use of this element --> <requirements value="[markdown]"/><!-- I 0..1 Why this resource has been created --> <alias value="[string]"/><!-- I 0..* Other names --> <min value="[unsignedInt]"/><!-- I 0..1 Minimum Cardinality --> <max value="[string]"/><!-- I 0..1 Maximum Cardinality (a number or *) --> <base> I 0..1 Element <!-- I 0..1 Base definition information for tools --> <path value="[string]"/><!-- I 1..1 Path that identifies the base element --> <min value="[unsignedInt]"/><!-- I 1..1 Min cardinality of the base element --> <max value="[string]"/><!-- I 1..1 Max cardinality of the base element --> </base> <contentReference value="[uri]"/><!-- I 0..0 Reference to definition of content for the element --> <type> I 0..* Element <!-- I 0..* Data type and Profile for this element --> <code value="[uri]"/><!-- I 1..1 Data type or Resource (reference to definition) --> <profile value="[canonical]"/><!-- I 0..0 Profiles (StructureDefinition or IG) - one must apply --> <targetProfile value="[canonical]"/><!-- I 0..* Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply --> <aggregation value="[code]"/><!-- I 0..0 contained | referenced | bundled - how aggregated --> <versioning value="[code]"/><!-- I 0..1 either | independent | specific --> </type> <defaultValue[x]><!-- I 0..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid| positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation| Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count| Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio| RatioRange|Reference|SampledData|Signature|Timing|ContactDetail| DataRequirement|Expression|ParameterDefinition|RelatedArtifact| TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta Specified value if missing from instance --></defaultValue[x]> <meaningWhenMissing value="[markdown]"/><!-- I 0..1 Implicit meaning when this element is missing --> <orderMeaning value="[string]"/><!-- I 0..1 What the order of the elements means --> <fixed[x]><!-- I 0..0 base64Binary|boolean|canonical|code|date| dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string| time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration| HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference| SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext| Availability|ExtendedContactDetail|Dosage|Meta Value must be exactly this --></fixed[x]> <pattern[x]><!-- I 0..0 base64Binary|boolean|canonical|code| date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt| string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration| HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference| SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext| Availability|ExtendedContactDetail|Dosage|Meta Value must have at least these property values --></pattern[x]> <example> I 0..* Element <!-- I 0..* Example value (as defined for type) --> <label value="[string]"/><!-- I 1..1 Describes the purpose of this example --> <value[x]><!-- I 1..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid| positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation| Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count| Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio| RatioRange|Reference|SampledData|Signature|Timing|ContactDetail| DataRequirement|Expression|ParameterDefinition|RelatedArtifact| TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage| Meta Value of Example (one of allowed types) --></value[x]> </example> <minValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal| integer|integer64|positiveInt|unsignedInt|Quantity Minimum Allowed Value (for some types) --></minValue[x]> <maxValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal| integer|integer64|positiveInt|unsignedInt|Quantity Maximum Allowed Value (for some types) --></maxValue[x]> <maxLength value="[integer]"/><!-- I 0..1 Max length for string type data --> <condition value="[id]"/><!-- I 0..* Reference to invariant about presence --> <constraint> I 0..* Element <!-- I 0..* Condition that must evaluate to true --> <key value="[id]"/><!-- I 1..1 Target of 'condition' reference above --> <requirements value="[markdown]"/><!-- I 0..1 Why this constraint is necessary or appropriate --> <severity value="[code]"/><!-- I 1..1 error | warning --> <suppress value="[boolean]"/><!-- I 0..1 Suppress warning or hint in profile --> <human value="[string]"/><!-- I 1..1 Human description of constraint --> <expression value="[string]"/><!-- I 0..1 FHIRPath expression of constraint --> <source value="[canonical]"/><!-- I 0..1 Reference to original source of constraint --> </constraint> <mustHaveValue value="[boolean]"/><!-- I 0..1 For primitives, that a value must be present - not replaced by an extension --> <valueAlternatives value="[canonical]"/><!-- I 0..* Extensions that are allowed to replace a primitive value --> <mustSupport value="[boolean]"/><!-- I 0..1 If the element must be supported (discouraged - see obligations) --> <isModifier value="[boolean]"/><!-- I 0..0 If this modifies the meaning of other elements --> <isModifierReason value="[string]"/><!-- I 0..1 Reason that this element is marked as a modifier --> <isSummary value="[boolean]"/><!-- I 0..0 Include when _summary = true? --> <binding> I 0..1 Element <!-- I 0..1 ValueSet details if this is coded --> <strength value="[code]"/><!-- I 1..1 required | extensible | preferred | example --> <description value="[markdown]"/><!-- I 0..1 Intended use of codes in the bound value set --> <valueSet value="[canonical]"/><!-- I 0..1 Source of value set --> <additional> I 0..* Element <!-- I 0..* Additional Bindings - more rules about the binding --> <purpose value="[code]"/><!-- I 1..1 maximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component --> <valueSet value="[canonical]"/><!-- I 1..1 The value set for the additional binding --> <documentation value="[markdown]"/><!-- I 0..1 Documentation of the purpose of use of the binding --> <shortDoco value="[string]"/><!-- I 0..1 Concise documentation - for summary tables --> <usage><!-- I 0..* UsageContext Qualifies the usage - jurisdiction, gender, workflow status etc. --></usage> <any value="[boolean]"/><!-- I 0..1 Whether binding can applies to all repeats, or just one --> </additional> </binding> <mapping> I 0..* Element <!-- I 0..* Map element to another set of definitions --> <identity value="[id]"/><!-- I 1..1 Reference to mapping declaration --> <language value="[code]"/><!-- I 0..1 Computable language of mapping --> <map value="[string]"/><!-- I 1..1 Details of the mapping --> <comment value="[markdown]"/><!-- I 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 { // Prompt for element phrased as question // I // from Element: extension }, { // Units to use for measured value // I // from Element: extension } ], "modifierExtension" : [{ Extension }], // IExtensions that cannot be ignored even if unrecognized "path" : "<string>", // I R! Path of the element in the hierarchy of elements "sliceName" : "<string>", // IName for this particular element (in a set of slices) "sliceIsConstraining" : <boolean>, // IIf this slice definition constrains an inherited slice definition (or not) "label" : "<string>", // IName for element to display with or prompt for element "code" : [{ Coding }], // ICorresponding codes in terminologies "definition" : "<markdown>", // IFull formal definition as narrative text "comment" : "<markdown>", // IComments about the use of this element "requirements" : "<markdown>", // IWhy this resource has been created "alias" : ["<string>"], // IOther names "min" : "<unsignedInt>", // IMinimum Cardinality "max" : "<string>", // IMaximum Cardinality (a number or *) "base" : { Element }, // IBase definition information for tools "type" : [{ Element }], // IData type and Profile for this element // value[x]: Specified value if missing from instance. One of these 54: "defaultValueBase64Binary" : "<base64Binary>", // ISpecified value if missing from instance "defaultValueBoolean" : <boolean>, // ISpecified value if missing from instance "defaultValueCanonical" : "<canonical>", // ISpecified value if missing from instance "defaultValueCode" : "<code>", // ISpecified value if missing from instance "defaultValueDate" : "<date>", // ISpecified value if missing from instance "defaultValueDateTime" : "<dateTime>", // ISpecified value if missing from instance "defaultValueDecimal" : <decimal>, // ISpecified value if missing from instance "defaultValueId" : "<id>", // ISpecified value if missing from instance "defaultValueInstant" : "<instant>", // ISpecified value if missing from instance "defaultValueInteger" : <integer>, // ISpecified value if missing from instance "defaultValueInteger64" : "<integer64>", // ISpecified value if missing from instance "defaultValueMarkdown" : "<markdown>", // ISpecified value if missing from instance "defaultValueOid" : "<oid>", // ISpecified value if missing from instance "defaultValuePositiveInt" : "<positiveInt>", // ISpecified value if missing from instance "defaultValueString" : "<string>", // ISpecified value if missing from instance "defaultValueTime" : "<time>", // ISpecified value if missing from instance "defaultValueUnsignedInt" : "<unsignedInt>", // ISpecified value if missing from instance "defaultValueUri" : "<uri>", // ISpecified value if missing from instance "defaultValueUrl" : "<url>", // ISpecified value if missing from instance "defaultValueUuid" : "<uuid>", // ISpecified value if missing from instance "defaultValueAddress" : { Address }, // ISpecified value if missing from instance "defaultValueAge" : { Age }, // ISpecified value if missing from instance "defaultValueAnnotation" : { Annotation }, // ISpecified value if missing from instance "defaultValueAttachment" : { Attachment }, // ISpecified value if missing from instance "defaultValueCodeableConcept" : { CodeableConcept }, // ISpecified value if missing from instance "defaultValueCodeableReference" : { CodeableReference }, // ISpecified value if missing from instance "defaultValueCoding" : { Coding }, // ISpecified value if missing from instance "defaultValueContactPoint" : { ContactPoint }, // ISpecified value if missing from instance "defaultValueCount" : { Count }, // ISpecified value if missing from instance "defaultValueDistance" : { Distance }, // ISpecified value if missing from instance "defaultValueDuration" : { Duration }, // ISpecified value if missing from instance "defaultValueHumanName" : { HumanName }, // ISpecified value if missing from instance "defaultValueIdentifier" : { Identifier }, // ISpecified value if missing from instance "defaultValueMoney" : { Money }, // ISpecified value if missing from instance "defaultValuePeriod" : { Period }, // ISpecified value if missing from instance "defaultValueQuantity" : { Quantity }, // ISpecified value if missing from instance "defaultValueRange" : { Range }, // ISpecified value if missing from instance "defaultValueRatio" : { Ratio }, // ISpecified value if missing from instance "defaultValueRatioRange" : { RatioRange }, // ISpecified value if missing from instance "defaultValueReference" : { Reference }, // ISpecified value if missing from instance "defaultValueSampledData" : { SampledData }, // ISpecified value if missing from instance "defaultValueSignature" : { Signature }, // ISpecified value if missing from instance "defaultValueTiming" : { Timing }, // ISpecified value if missing from instance "defaultValueContactDetail" : { ContactDetail }, // ISpecified value if missing from instance "defaultValueDataRequirement" : { DataRequirement }, // ISpecified value if missing from instance "defaultValueExpression" : { Expression }, // ISpecified value if missing from instance "defaultValueParameterDefinition" : { ParameterDefinition }, // ISpecified value if missing from instance "defaultValueRelatedArtifact" : { RelatedArtifact }, // ISpecified value if missing from instance "defaultValueTriggerDefinition" : { TriggerDefinition }, // ISpecified value if missing from instance "defaultValueUsageContext" : { UsageContext }, // ISpecified value if missing from instance "defaultValueAvailability" : { Availability }, // ISpecified value if missing from instance "defaultValueExtendedContactDetail" : { ExtendedContactDetail }, // ISpecified value if missing from instance "defaultValueDosage" : { Dosage }, // ISpecified value if missing from instance "defaultValueMeta" : { Meta }, // ISpecified value if missing from instance "meaningWhenMissing" : "<markdown>", // IImplicit meaning when this element is missing "orderMeaning" : "<string>", // IWhat the order of the elements means // value[x]: Value must be exactly this. One of these 54: // value[x]: Value must have at least these property values. One of these 54: "example" : [{ Element }], // IExample value (as defined for type) // value[x]: Minimum Allowed Value (for some types). One of these 10: "minValueDate" : "<date>", // IMinimum Allowed Value (for some types) "minValueDateTime" : "<dateTime>", // IMinimum Allowed Value (for some types) "minValueInstant" : "<instant>", // IMinimum Allowed Value (for some types) "minValueTime" : "<time>", // IMinimum Allowed Value (for some types) "minValueDecimal" : <decimal>, // IMinimum Allowed Value (for some types) "minValueInteger" : <integer>, // IMinimum Allowed Value (for some types) "minValueInteger64" : "<integer64>", // IMinimum Allowed Value (for some types) "minValuePositiveInt" : "<positiveInt>", // IMinimum Allowed Value (for some types) "minValueUnsignedInt" : "<unsignedInt>", // IMinimum Allowed Value (for some types) "minValueQuantity" : { Quantity }, // IMinimum Allowed Value (for some types) // value[x]: Maximum Allowed Value (for some types). One of these 10: "maxValueDate" : "<date>", // IMaximum Allowed Value (for some types) "maxValueDateTime" : "<dateTime>", // IMaximum Allowed Value (for some types) "maxValueInstant" : "<instant>", // IMaximum Allowed Value (for some types) "maxValueTime" : "<time>", // IMaximum Allowed Value (for some types) "maxValueDecimal" : <decimal>, // IMaximum Allowed Value (for some types) "maxValueInteger" : <integer>, // IMaximum Allowed Value (for some types) "maxValueInteger64" : "<integer64>", // IMaximum Allowed Value (for some types) "maxValuePositiveInt" : "<positiveInt>", // IMaximum Allowed Value (for some types) "maxValueUnsignedInt" : "<unsignedInt>", // IMaximum Allowed Value (for some types) "maxValueQuantity" : { Quantity }, // IMaximum Allowed Value (for some types) "maxLength" : <integer>, // IMax length for string type data "condition" : ["<id>"], // IReference to invariant about presence "constraint" : [{ Element }], // ICondition that must evaluate to true "mustHaveValue" : <boolean>, // IFor primitives, that a value must be present - not replaced by an extension "valueAlternatives" : ["<canonical>"], // IExtensions that are allowed to replace a primitive value "mustSupport" : <boolean>, // IIf the element must be supported (discouraged - see obligations) "isModifierReason" : "<string>", // IReason that this element is marked as a modifier "binding" : { Element }, // IValueSet details if this is coded "mapping" : [{ Element }], // IMap element to another set of definitions }
This structure is derived from ElementDefinition.
Differential View
This indicates the differences between this profile and the base ElementDefinition structure.
Snapshot View
This provides the consolidated view (aka snapshot) of the profile after applying the changes in this profile to the base ElementDefinition structure.
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ElementDefinition | C | 0..* | ElementDefinition | Definition of an element in a resource or extension |
id | 0..1 | id | Unique id for inter-element referencing | |
Slices for extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
Question | 0..* | string | Prompt for element phrased as question URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question | |
AllowedUnits | 0..1 | CodeableConcept, canonical(ValueSet) | Units to use for measured value URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits Binding: UCUM Codes (required) | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
path | ΣC | 1..1 | string | Path of the element in the hierarchy of elements |
sliceName | ΣC | 0..1 | string | Name for this particular element (in a set of slices) |
sliceIsConstraining | ΣCTU | 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: Codes that indicate the meaning of a data element. (example): Codes that indicate the meaning of a data element. |
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 | ΣC | 0..1 | unsignedInt | Minimum Cardinality |
max | ΣC | 0..1 | string | Maximum Cardinality (a number or *) |
base | Σ | 0..1 | Element | Base definition information for tools |
id | 0..1 | string | Unique id for inter-element referencing | |
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 | ΣC | 0..* | Element | Data type and Profile for this element |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
code | ΣC | 1..1 | uri | Data type or Resource (reference to definition) Binding: Element Definition Types (extensible): List of all Types for ElementDefinition.type.code. |
targetProfile | ΣC | 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): Whether a reference needs to be version specific or version independent, or whether either can be used. |
defaultValue[x] | ΣC | 0..1 | Specified value if missing from instance | |
defaultValueBase64Binary | base64Binary | |||
defaultValueBoolean | boolean | |||
defaultValueCanonical | canonical(Any) | |||
defaultValueCode | code | |||
defaultValueDate | date | |||
defaultValueDateTime | dateTime | |||
defaultValueDecimal | decimal | |||
defaultValueId | id | |||
defaultValueInstant | instant | |||
defaultValueInteger | integer | |||
defaultValueInteger64 | integer64 | |||
defaultValueMarkdown | markdown | |||
defaultValueOid | oid | |||
defaultValuePositiveInt | positiveInt | |||
defaultValueString | string | |||
defaultValueTime | time | |||
defaultValueUnsignedInt | unsignedInt | |||
defaultValueUri | uri | |||
defaultValueUrl | url | |||
defaultValueUuid | uuid | |||
defaultValueAddress | Address | |||
defaultValueAge | Age | |||
defaultValueAnnotation | Annotation | |||
defaultValueAttachment | Attachment | |||
defaultValueCodeableConcept | CodeableConcept | |||
defaultValueCodeableReference | CodeableReference | |||
defaultValueCoding | Coding | |||
defaultValueContactPoint | ContactPoint | |||
defaultValueCount | Count | |||
defaultValueDistance | Distance | |||
defaultValueDuration | Duration | |||
defaultValueHumanName | HumanName | |||
defaultValueIdentifier | Identifier | |||
defaultValueMoney | Money | |||
defaultValuePeriod | Period | |||
defaultValueQuantity | Quantity | |||
defaultValueRange | Range | |||
defaultValueRatio | Ratio | |||
defaultValueRatioRange | RatioRange | |||
defaultValueReference | Reference(Any) | |||
defaultValueSampledData | SampledData | |||
defaultValueSignature | Signature | |||
defaultValueTiming | Timing | |||
defaultValueContactDetail | ContactDetail | |||
defaultValueDataRequirement | DataRequirement | |||
defaultValueExpression | Expression | |||
defaultValueParameterDefinition | ParameterDefinition | |||
defaultValueRelatedArtifact | RelatedArtifact | |||
defaultValueTriggerDefinition | TriggerDefinition | |||
defaultValueUsageContext | UsageContext | |||
defaultValueAvailability | Availability | |||
defaultValueExtendedContactDetail | ExtendedContactDetail | |||
defaultValueDosage | Dosage | |||
defaultValueMeta | Meta | |||
meaningWhenMissing | ΣC | 0..1 | markdown | Implicit meaning when this element is missing |
orderMeaning | ΣC | 0..1 | string | What the order of the elements means |
example | ΣC | 0..* | Element | Example value (as defined for type) |
id | 0..1 | string | Unique id for inter-element referencing | |
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 | Value of Example (one of allowed types) | |
valueBase64Binary | base64Binary | |||
valueBoolean | boolean | |||
valueCanonical | canonical(Any) | |||
valueCode | code | |||
valueDate | date | |||
valueDateTime | dateTime | |||
valueDecimal | decimal | |||
valueId | id | |||
valueInstant | instant | |||
valueInteger | integer | |||
valueInteger64 | integer64 | |||
valueMarkdown | markdown | |||
valueOid | oid | |||
valuePositiveInt | positiveInt | |||
valueString | string | |||
valueTime | time | |||
valueUnsignedInt | unsignedInt | |||
valueUri | uri | |||
valueUrl | url | |||
valueUuid | uuid | |||
valueAddress | Address | |||
valueAge | Age | |||
valueAnnotation | Annotation | |||
valueAttachment | Attachment | |||
valueCodeableConcept | CodeableConcept | |||
valueCodeableReference | CodeableReference | |||
valueCoding | Coding | |||
valueContactPoint | ContactPoint | |||
valueCount | Count | |||
valueDistance | Distance | |||
valueDuration | Duration | |||
valueHumanName | HumanName | |||
valueIdentifier | Identifier | |||
valueMoney | Money | |||
valuePeriod | Period | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
valueRatio | Ratio | |||
valueRatioRange | RatioRange | |||
valueReference | Reference(Any) | |||
valueSampledData | SampledData | |||
valueSignature | Signature | |||
valueTiming | Timing | |||
valueContactDetail | ContactDetail | |||
valueDataRequirement | DataRequirement | |||
valueExpression | Expression | |||
valueParameterDefinition | ParameterDefinition | |||
valueRelatedArtifact | RelatedArtifact | |||
valueTriggerDefinition | TriggerDefinition | |||
valueUsageContext | UsageContext | |||
valueAvailability | Availability | |||
valueExtendedContactDetail | ExtendedContactDetail | |||
valueDosage | Dosage | |||
valueMeta | Meta | |||
minValue[x] | ΣC | 0..1 | Minimum Allowed Value (for some types) | |
minValueDate | date | |||
minValueDateTime | dateTime | |||
minValueInstant | instant | |||
minValueTime | time | |||
minValueDecimal | decimal | |||
minValueInteger | integer | |||
minValueInteger64 | integer64 | |||
minValuePositiveInt | positiveInt | |||
minValueUnsignedInt | unsignedInt | |||
minValueQuantity | Quantity | |||
maxValue[x] | ΣC | 0..1 | Maximum Allowed Value (for some types) | |
maxValueDate | date | |||
maxValueDateTime | dateTime | |||
maxValueInstant | instant | |||
maxValueTime | time | |||
maxValueDecimal | decimal | |||
maxValueInteger | integer | |||
maxValueInteger64 | integer64 | |||
maxValuePositiveInt | positiveInt | |||
maxValueUnsignedInt | unsignedInt | |||
maxValueQuantity | Quantity | |||
maxLength | ΣC | 0..1 | integer | Max length for string type data |
condition | Σ | 0..* | id | Reference to invariant about presence |
constraint | ΣC | 0..* | Element | Condition that must evaluate to true |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
key | ΣC | 1..1 | id | Target of 'condition' reference above |
requirements | Σ | 0..1 | markdown | Why this constraint is necessary or appropriate |
severity | ΣC | 1..1 | code | error | warning Binding: ConstraintSeverity (required): SHALL applications comply with this constraint? |
suppress | ΣC | 0..1 | boolean | Suppress warning or hint in profile |
human | Σ | 1..1 | string | Human description of constraint |
expression | ΣC | 0..1 | string | FHIRPath expression of constraint |
source | Σ | 0..1 | canonical(StructureDefinition) | Reference to original source of constraint |
mustHaveValue | ΣCTU | 0..1 | boolean | For primitives, that a value must be present - not replaced by an extension |
valueAlternatives | ΣCTU | 0..* | canonical(StructureDefinition) | Extensions that are allowed to replace a primitive value |
mustSupport | Σ | 0..1 | boolean | If the element must be supported (discouraged - see obligations) |
isModifierReason | ΣC | 0..1 | string | Reason that this element is marked as a modifier |
binding | ΣC | 0..1 | Element | ValueSet details if this is coded |
id | 0..1 | string | Unique id for inter-element referencing | |
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): Indication of the degree of conformance expectations associated with a binding. |
description | ΣC | 0..1 | markdown | Intended use of codes in the bound value set |
valueSet | ΣC | 0..1 | canonical(ValueSet) | Source of value set |
additional | ΣTU | 0..* | Element | Additional Bindings - more rules about the binding |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
purpose | ΣTU | 1..1 | code | maximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component Binding: Additional Binding Purpose ValueSet (required): The use of an additional binding. |
valueSet | ΣTU | 1..1 | canonical(ValueSet) | The value set for the additional binding |
documentation | ΣTU | 0..1 | markdown | Documentation of the purpose of use of the binding |
shortDoco | ΣTU | 0..1 | string | Concise documentation - for summary tables |
usage | ΣTU | 0..* | UsageContext | Qualifies the usage - jurisdiction, gender, workflow status etc. |
any | ΣTU | 0..1 | boolean | Whether binding can applies to all repeats, or just one |
mapping | ΣC | 0..* | Element | Map element to another set of definitions |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
identity | ΣC | 1..1 | id | Reference to mapping declaration |
language | Σ | 0..1 | code | Computable language of mapping Binding: Mime Types (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049) |
map | Σ | 1..1 | string | Details of the mapping |
comment | Σ | 0..1 | markdown | 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><!-- I 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <path value="[string]"/><!-- I 1..1 Path of the element in the hierarchy of elements --> <representation value="[code]"/><!-- I 0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml --> <sliceName value="[string]"/><!-- I 0..1 Name for this particular element (in a set of slices) --> <sliceIsConstraining value="[boolean]"/><!-- I 0..1 If this slice definition constrains an inherited slice definition (or not) --> <label value="[string]"/><!-- I 0..1 Name for element to display with or prompt for element --> <code><!-- I 0..* Coding Corresponding codes in terminologies --></code> <slicing> I 0..0 Element <!-- I 0..0 This element is sliced - slices follow --> </slicing> <short value="[string]"/><!-- I 0..0 Concise definition for space-constrained presentation --> <definition value="[markdown]"/><!-- I 0..1 Full formal definition as narrative text --> <comment value="[markdown]"/><!-- I 0..1 Comments about the use of this element --> <requirements value="[markdown]"/><!-- I 0..1 Why this resource has been created --> <alias value="[string]"/><!-- I 0..* Other names --> <min value="[unsignedInt]"/><!-- I 0..1 Minimum Cardinality --> <max value="[string]"/><!-- I 0..1 Maximum Cardinality (a number or *) --> <base> I 0..1 Element <!-- I 0..1 Base definition information for tools --> <path value="[string]"/><!-- I 1..1 Path that identifies the base element --> <min value="[unsignedInt]"/><!-- I 1..1 Min cardinality of the base element --> <max value="[string]"/><!-- I 1..1 Max cardinality of the base element --> </base> <contentReference value="[uri]"/><!-- I 0..0 Reference to definition of content for the element --> <type> I 0..* Element <!-- I 0..* Data type and Profile for this element --> <code value="[uri]"/><!-- I 1..1 Data type or Resource (reference to definition) --> <profile value="[canonical]"/><!-- I 0..0 Profiles (StructureDefinition or IG) - one must apply --> <targetProfile value="[canonical]"/><!-- I 0..* Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply --> <aggregation value="[code]"/><!-- I 0..0 contained | referenced | bundled - how aggregated --> <versioning value="[code]"/><!-- I 0..1 either | independent | specific --> </type> <defaultValue[x]><!-- I 0..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid| positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation| Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count| Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio| RatioRange|Reference|SampledData|Signature|Timing|ContactDetail| DataRequirement|Expression|ParameterDefinition|RelatedArtifact| TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta Specified value if missing from instance --></defaultValue[x]> <meaningWhenMissing value="[markdown]"/><!-- I 0..1 Implicit meaning when this element is missing --> <orderMeaning value="[string]"/><!-- I 0..1 What the order of the elements means --> <fixed[x]><!-- I 0..0 base64Binary|boolean|canonical|code|date| dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string| time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration| HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference| SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext| Availability|ExtendedContactDetail|Dosage|Meta Value must be exactly this --></fixed[x]> <pattern[x]><!-- I 0..0 base64Binary|boolean|canonical|code| date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt| string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration| HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference| SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext| Availability|ExtendedContactDetail|Dosage|Meta Value must have at least these property values --></pattern[x]> <example> I 0..* Element <!-- I 0..* Example value (as defined for type) --> <label value="[string]"/><!-- I 1..1 Describes the purpose of this example --> <value[x]><!-- I 1..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid| positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation| Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count| Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio| RatioRange|Reference|SampledData|Signature|Timing|ContactDetail| DataRequirement|Expression|ParameterDefinition|RelatedArtifact| TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage| Meta Value of Example (one of allowed types) --></value[x]> </example> <minValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal| integer|integer64|positiveInt|unsignedInt|Quantity Minimum Allowed Value (for some types) --></minValue[x]> <maxValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal| integer|integer64|positiveInt|unsignedInt|Quantity Maximum Allowed Value (for some types) --></maxValue[x]> <maxLength value="[integer]"/><!-- I 0..1 Max length for string type data --> <condition value="[id]"/><!-- I 0..* Reference to invariant about presence --> <constraint> I 0..* Element <!-- I 0..* Condition that must evaluate to true --> <key value="[id]"/><!-- I 1..1 Target of 'condition' reference above --> <requirements value="[markdown]"/><!-- I 0..1 Why this constraint is necessary or appropriate --> <severity value="[code]"/><!-- I 1..1 error | warning --> <suppress value="[boolean]"/><!-- I 0..1 Suppress warning or hint in profile --> <human value="[string]"/><!-- I 1..1 Human description of constraint --> <expression value="[string]"/><!-- I 0..1 FHIRPath expression of constraint --> <source value="[canonical]"/><!-- I 0..1 Reference to original source of constraint --> </constraint> <mustHaveValue value="[boolean]"/><!-- I 0..1 For primitives, that a value must be present - not replaced by an extension --> <valueAlternatives value="[canonical]"/><!-- I 0..* Extensions that are allowed to replace a primitive value --> <mustSupport value="[boolean]"/><!-- I 0..1 If the element must be supported (discouraged - see obligations) --> <isModifier value="[boolean]"/><!-- I 0..0 If this modifies the meaning of other elements --> <isModifierReason value="[string]"/><!-- I 0..1 Reason that this element is marked as a modifier --> <isSummary value="[boolean]"/><!-- I 0..0 Include when _summary = true? --> <binding> I 0..1 Element <!-- I 0..1 ValueSet details if this is coded --> <strength value="[code]"/><!-- I 1..1 required | extensible | preferred | example --> <description value="[markdown]"/><!-- I 0..1 Intended use of codes in the bound value set --> <valueSet value="[canonical]"/><!-- I 0..1 Source of value set --> <additional> I 0..* Element <!-- I 0..* Additional Bindings - more rules about the binding --> <purpose value="[code]"/><!-- I 1..1 maximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component --> <valueSet value="[canonical]"/><!-- I 1..1 The value set for the additional binding --> <documentation value="[markdown]"/><!-- I 0..1 Documentation of the purpose of use of the binding --> <shortDoco value="[string]"/><!-- I 0..1 Concise documentation - for summary tables --> <usage><!-- I 0..* UsageContext Qualifies the usage - jurisdiction, gender, workflow status etc. --></usage> <any value="[boolean]"/><!-- I 0..1 Whether binding can applies to all repeats, or just one --> </additional> </binding> <mapping> I 0..* Element <!-- I 0..* Map element to another set of definitions --> <identity value="[id]"/><!-- I 1..1 Reference to mapping declaration --> <language value="[code]"/><!-- I 0..1 Computable language of mapping --> <map value="[string]"/><!-- I 1..1 Details of the mapping --> <comment value="[markdown]"/><!-- I 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 { // Prompt for element phrased as question // I // from Element: extension }, { // Units to use for measured value // I // from Element: extension } ], "modifierExtension" : [{ Extension }], // IExtensions that cannot be ignored even if unrecognized "path" : "<string>", // I R! Path of the element in the hierarchy of elements "sliceName" : "<string>", // IName for this particular element (in a set of slices) "sliceIsConstraining" : <boolean>, // IIf this slice definition constrains an inherited slice definition (or not) "label" : "<string>", // IName for element to display with or prompt for element "code" : [{ Coding }], // ICorresponding codes in terminologies "definition" : "<markdown>", // IFull formal definition as narrative text "comment" : "<markdown>", // IComments about the use of this element "requirements" : "<markdown>", // IWhy this resource has been created "alias" : ["<string>"], // IOther names "min" : "<unsignedInt>", // IMinimum Cardinality "max" : "<string>", // IMaximum Cardinality (a number or *) "base" : { Element }, // IBase definition information for tools "type" : [{ Element }], // IData type and Profile for this element // value[x]: Specified value if missing from instance. One of these 54: "defaultValueBase64Binary" : "<base64Binary>", // ISpecified value if missing from instance "defaultValueBoolean" : <boolean>, // ISpecified value if missing from instance "defaultValueCanonical" : "<canonical>", // ISpecified value if missing from instance "defaultValueCode" : "<code>", // ISpecified value if missing from instance "defaultValueDate" : "<date>", // ISpecified value if missing from instance "defaultValueDateTime" : "<dateTime>", // ISpecified value if missing from instance "defaultValueDecimal" : <decimal>, // ISpecified value if missing from instance "defaultValueId" : "<id>", // ISpecified value if missing from instance "defaultValueInstant" : "<instant>", // ISpecified value if missing from instance "defaultValueInteger" : <integer>, // ISpecified value if missing from instance "defaultValueInteger64" : "<integer64>", // ISpecified value if missing from instance "defaultValueMarkdown" : "<markdown>", // ISpecified value if missing from instance "defaultValueOid" : "<oid>", // ISpecified value if missing from instance "defaultValuePositiveInt" : "<positiveInt>", // ISpecified value if missing from instance "defaultValueString" : "<string>", // ISpecified value if missing from instance "defaultValueTime" : "<time>", // ISpecified value if missing from instance "defaultValueUnsignedInt" : "<unsignedInt>", // ISpecified value if missing from instance "defaultValueUri" : "<uri>", // ISpecified value if missing from instance "defaultValueUrl" : "<url>", // ISpecified value if missing from instance "defaultValueUuid" : "<uuid>", // ISpecified value if missing from instance "defaultValueAddress" : { Address }, // ISpecified value if missing from instance "defaultValueAge" : { Age }, // ISpecified value if missing from instance "defaultValueAnnotation" : { Annotation }, // ISpecified value if missing from instance "defaultValueAttachment" : { Attachment }, // ISpecified value if missing from instance "defaultValueCodeableConcept" : { CodeableConcept }, // ISpecified value if missing from instance "defaultValueCodeableReference" : { CodeableReference }, // ISpecified value if missing from instance "defaultValueCoding" : { Coding }, // ISpecified value if missing from instance "defaultValueContactPoint" : { ContactPoint }, // ISpecified value if missing from instance "defaultValueCount" : { Count }, // ISpecified value if missing from instance "defaultValueDistance" : { Distance }, // ISpecified value if missing from instance "defaultValueDuration" : { Duration }, // ISpecified value if missing from instance "defaultValueHumanName" : { HumanName }, // ISpecified value if missing from instance "defaultValueIdentifier" : { Identifier }, // ISpecified value if missing from instance "defaultValueMoney" : { Money }, // ISpecified value if missing from instance "defaultValuePeriod" : { Period }, // ISpecified value if missing from instance "defaultValueQuantity" : { Quantity }, // ISpecified value if missing from instance "defaultValueRange" : { Range }, // ISpecified value if missing from instance "defaultValueRatio" : { Ratio }, // ISpecified value if missing from instance "defaultValueRatioRange" : { RatioRange }, // ISpecified value if missing from instance "defaultValueReference" : { Reference }, // ISpecified value if missing from instance "defaultValueSampledData" : { SampledData }, // ISpecified value if missing from instance "defaultValueSignature" : { Signature }, // ISpecified value if missing from instance "defaultValueTiming" : { Timing }, // ISpecified value if missing from instance "defaultValueContactDetail" : { ContactDetail }, // ISpecified value if missing from instance "defaultValueDataRequirement" : { DataRequirement }, // ISpecified value if missing from instance "defaultValueExpression" : { Expression }, // ISpecified value if missing from instance "defaultValueParameterDefinition" : { ParameterDefinition }, // ISpecified value if missing from instance "defaultValueRelatedArtifact" : { RelatedArtifact }, // ISpecified value if missing from instance "defaultValueTriggerDefinition" : { TriggerDefinition }, // ISpecified value if missing from instance "defaultValueUsageContext" : { UsageContext }, // ISpecified value if missing from instance "defaultValueAvailability" : { Availability }, // ISpecified value if missing from instance "defaultValueExtendedContactDetail" : { ExtendedContactDetail }, // ISpecified value if missing from instance "defaultValueDosage" : { Dosage }, // ISpecified value if missing from instance "defaultValueMeta" : { Meta }, // ISpecified value if missing from instance "meaningWhenMissing" : "<markdown>", // IImplicit meaning when this element is missing "orderMeaning" : "<string>", // IWhat the order of the elements means // value[x]: Value must be exactly this. One of these 54: // value[x]: Value must have at least these property values. One of these 54: "example" : [{ Element }], // IExample value (as defined for type) // value[x]: Minimum Allowed Value (for some types). One of these 10: "minValueDate" : "<date>", // IMinimum Allowed Value (for some types) "minValueDateTime" : "<dateTime>", // IMinimum Allowed Value (for some types) "minValueInstant" : "<instant>", // IMinimum Allowed Value (for some types) "minValueTime" : "<time>", // IMinimum Allowed Value (for some types) "minValueDecimal" : <decimal>, // IMinimum Allowed Value (for some types) "minValueInteger" : <integer>, // IMinimum Allowed Value (for some types) "minValueInteger64" : "<integer64>", // IMinimum Allowed Value (for some types) "minValuePositiveInt" : "<positiveInt>", // IMinimum Allowed Value (for some types) "minValueUnsignedInt" : "<unsignedInt>", // IMinimum Allowed Value (for some types) "minValueQuantity" : { Quantity }, // IMinimum Allowed Value (for some types) // value[x]: Maximum Allowed Value (for some types). One of these 10: "maxValueDate" : "<date>", // IMaximum Allowed Value (for some types) "maxValueDateTime" : "<dateTime>", // IMaximum Allowed Value (for some types) "maxValueInstant" : "<instant>", // IMaximum Allowed Value (for some types) "maxValueTime" : "<time>", // IMaximum Allowed Value (for some types) "maxValueDecimal" : <decimal>, // IMaximum Allowed Value (for some types) "maxValueInteger" : <integer>, // IMaximum Allowed Value (for some types) "maxValueInteger64" : "<integer64>", // IMaximum Allowed Value (for some types) "maxValuePositiveInt" : "<positiveInt>", // IMaximum Allowed Value (for some types) "maxValueUnsignedInt" : "<unsignedInt>", // IMaximum Allowed Value (for some types) "maxValueQuantity" : { Quantity }, // IMaximum Allowed Value (for some types) "maxLength" : <integer>, // IMax length for string type data "condition" : ["<id>"], // IReference to invariant about presence "constraint" : [{ Element }], // ICondition that must evaluate to true "mustHaveValue" : <boolean>, // IFor primitives, that a value must be present - not replaced by an extension "valueAlternatives" : ["<canonical>"], // IExtensions that are allowed to replace a primitive value "mustSupport" : <boolean>, // IIf the element must be supported (discouraged - see obligations) "isModifierReason" : "<string>", // IReason that this element is marked as a modifier "binding" : { Element }, // IValueSet details if this is coded "mapping" : [{ Element }], // IMap element to another set of definitions }
Alternate definitions: Master Definition (XML, JSON), Schematron
Path | Name | Conformance | ValueSet |
ElementDefinition.code | ?ext | example | http://loinc.org/vs |
ElementDefinition.slicing.discriminator.type | DiscriminatorType | required | DiscriminatorType |
ElementDefinition.slicing.rules | SlicingRules | required | SlicingRules |
ElementDefinition.type.code | Element Definition Types | extensible | Element Definition Types |
ElementDefinition.type.versioning | ReferenceVersionRules | required | ReferenceVersionRules |
ElementDefinition.constraint.severity | ConstraintSeverity | required | ConstraintSeverity |
ElementDefinition.binding.strength | BindingStrength | required | BindingStrength |
ElementDefinition.binding.additional.purpose | Additional Binding Purpose ValueSet | required | Additional Binding Purpose ValueSet |
ElementDefinition.mapping.language | Mime Types | required | Mime Types |