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.
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ElementDefinition | 0..* | ElementDefinition | Definition of an element in a resource or extension | |
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) | |
representation | 0..0 | |||
slicing | 0..0 | |||
short | 0..0 | |||
contentReference | 0..0 | |||
type | 0..* | Element | Data type and Profile for this element | |
profile | 0..0 | |||
aggregation | 0..0 | |||
defaultValue[x] | 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 | |
meaningWhenMissing | 0..1 | markdown | Implicit meaning when this element is missing | |
fixed[x] | 0..0 | |||
pattern[x] | 0..0 | |||
isModifier | 0..0 | |||
isSummary | 0..0 | |||
Documentation for this format |
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.
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ElementDefinition | 0..* | ElementDefinition | Definition of an element in a resource or extension | |
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) | |
representation | 0..0 | |||
slicing | 0..0 | |||
short | 0..0 | |||
contentReference | 0..0 | |||
type | 0..* | Element | Data type and Profile for this element | |
profile | 0..0 | |||
aggregation | 0..0 | |||
defaultValue[x] | 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 | |
meaningWhenMissing | 0..1 | markdown | Implicit meaning when this element is missing | |
fixed[x] | 0..0 | |||
pattern[x] | 0..0 | |||
isModifier | 0..0 | |||
isSummary | 0..0 | |||
Documentation for this format |
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 |