This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions
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+0000 as a draft by HL7 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 eld-2: Min <= Max eld-5: if the element definition has a contentReference, it cannot have type, defaultValue, fixed, pattern, example, minValue, maxValue, maxLength, or binding eld-6: Fixed value may only be specified if there is one type eld-7: Pattern may only be specified if there is one type eld-8: Pattern and fixed are mutually exclusive eld-11: Binding can only be present for coded elements, string, and uri if using FHIR-defined types eld-13: Types must be unique by code eld-14: Constraints must be unique by key eld-15: default value and meaningWhenMissing are mutually exclusive eld-16: sliceName must be composed of proper tokens separated by "/" eld-18: Must have a modifier reason if isModifier = true eld-19: Element path SHALL be expressed as a set of '.'-separated components with each component restricted to a maximum of 64 characters and with some limits on the allowed choice of characters eld-20: The first component of the path should be UpperCamelCase. Additional components (following a '.') should be lowerCamelCase. If this syntax is not adhered to, code generation tools may be broken. Logical models may be less concerned about this implication. eld-22: sliceIsConstraining can only appear if slicename is present eld-24: pattern[x] should be used rather than fixed[x] eld-25: Order has no meaning (and cannot be asserted to have meaning), so enforcing rules on order is improper eld-27: Mappings SHOULD be unique by key eld-28: Can't have valueAlternatives if mustHaveValue is true |
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 | C | 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 *) eld-3: Max SHALL be 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 eld-4: Aggregation may only be specified if one of the allowed types for the element is a reference eld-17: targetProfile is only allowed if the type is Reference or canonical |
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 eld-21: Constraints should have an expression or else validators will not be able to enforce them eld-26: Errors cannot be suppressed |
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 | C | 0..1 | boolean | For primitives, that a value must be present - not replaced by an extension |
valueAlternatives | C | 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 eld-12: ValueSet SHALL start with http:// or https:// or urn: or # eld-23: binding SHALL have either description or valueSet |
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 | 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 | 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 | 1..1 | canonical(ValueSet) | The value set for the additional binding | |
documentation | 0..1 | markdown | Documentation of the purpose of use of the binding | |
shortDoco | 0..1 | string | Concise documentation - for summary tables | |
usage | 0..* | UsageContext | Qualifies the usage - jurisdiction, gender, workflow status etc. | |
any | 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 eld-2: Min <= Max eld-5: if the element definition has a contentReference, it cannot have type, defaultValue, fixed, pattern, example, minValue, maxValue, maxLength, or binding eld-6: Fixed value may only be specified if there is one type eld-7: Pattern may only be specified if there is one type eld-8: Pattern and fixed are mutually exclusive eld-11: Binding can only be present for coded elements, string, and uri if using FHIR-defined types eld-13: Types must be unique by code eld-14: Constraints must be unique by key eld-15: default value and meaningWhenMissing are mutually exclusive eld-16: sliceName must be composed of proper tokens separated by "/" eld-18: Must have a modifier reason if isModifier = true eld-19: Element path SHALL be expressed as a set of '.'-separated components with each component restricted to a maximum of 64 characters and with some limits on the allowed choice of characters eld-20: The first component of the path should be UpperCamelCase. Additional components (following a '.') should be lowerCamelCase. If this syntax is not adhered to, code generation tools may be broken. Logical models may be less concerned about this implication. eld-22: sliceIsConstraining can only appear if slicename is present eld-24: pattern[x] should be used rather than fixed[x] eld-25: Order has no meaning (and cannot be asserted to have meaning), so enforcing rules on order is improper eld-27: Mappings SHOULD be unique by key eld-28: Can't have valueAlternatives if mustHaveValue is true |
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 | C | 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 *) eld-3: Max SHALL be 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 eld-4: Aggregation may only be specified if one of the allowed types for the element is a reference eld-17: targetProfile is only allowed if the type is Reference or canonical |
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 eld-21: Constraints should have an expression or else validators will not be able to enforce them eld-26: Errors cannot be suppressed |
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 | C | 0..1 | boolean | For primitives, that a value must be present - not replaced by an extension |
valueAlternatives | C | 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 eld-12: ValueSet SHALL start with http:// or https:// or urn: or # eld-23: binding SHALL have either description or valueSet |
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 | 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 | 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 | 1..1 | canonical(ValueSet) | The value set for the additional binding | |
documentation | 0..1 | markdown | Documentation of the purpose of use of the binding | |
shortDoco | 0..1 | string | Concise documentation - for summary tables | |
usage | 0..* | UsageContext | Qualifies the usage - jurisdiction, gender, workflow status etc. | |
any | 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 |