Release 4

This page is part of the FHIR Specification (v4.0.1: R4 - Mixed Normative and STU) in it's permanent home (it will always be available at this URL). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

StructureDefinition: elementdefinition-de

FHIR Infrastructure Work Group Maturity Level: 1Trial UseUse Context: Any

The official URL for this profile is:

http://hl7.org/fhir/StructureDefinition/elementdefinition-de

Identifies how the ElementDefinition data type is used when it appears within a data element

This profile was published on Sat, Feb 28, 2015 00:00+1100 as a draft by Health Level Seven International (Orders and Observations).

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

This structure is derived from ElementDefinition.

NameFlagsCard.TypeDescription & Constraintsdoco
.. ElementDefinition I0..*Definition of an element in a resource or extension
... id 0..1stringUnique id for inter-element referencing
... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... elementdefinition-question I0..*stringPrompt for element phrased as question
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..0
.... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-question"
.... value[x] I1..1stringValue of extension
... elementdefinition-allowedUnits I0..1CodeableConcept, canonical(ValueSet)Units to use for measured value
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits
Binding: UCUM Codes (required)
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..0
.... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits"
.... value[x] I1..1Value of extension
Binding: UCUM Codes (required)
..... valueCodeableConceptCodeableConcept
..... valueCanonicalcanonical(valueset.html)
... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
... path ΣI1..1stringPath of the element in the hierarchy of elements
... sliceName ΣI0..1stringName for this particular element (in a set of slices)
... sliceIsConstraining ΣI0..1booleanIf this slice definition constrains an inherited slice definition (or not)
... label ΣI0..1stringName for element to display with or prompt for element
... code ΣI0..*CodingCorresponding codes in terminologies
Binding: LOINC Codes (example)
... definition ΣI0..1markdownFull formal definition as narrative text
... comment ΣI0..1markdownComments about the use of this element
... requirements ΣI0..1markdownWhy this resource has been created
... alias ΣI0..*stringOther names
... min ΣI0..1unsignedIntMinimum Cardinality
... max ΣI0..1stringMaximum Cardinality (a number or *)
eld-3: Max SHALL be a number or "*"
... base ΣI0..1ElementBase definition information for tools
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... path ΣI1..1stringPath that identifies the base element
.... min ΣI1..1unsignedIntMin cardinality of the base element
.... max ΣI1..1stringMax cardinality of the base element
... type ΣI0..*ElementData type and Profile for this element
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... code ΣI1..1uriData type or Resource (reference to definition)
Binding: FHIRDefinedType (extensible)
.... targetProfile ΣI0..*canonical(StructureDefinition | ImplementationGuide)Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply
.... versioning ΣI0..1codeeither | independent | specific
Binding: ReferenceVersionRules (required)
... defaultValue[x] ΣI0..1Specified value if missing from instance
.... defaultValueBase64Binarybase64Binary
.... defaultValueBooleanboolean
.... defaultValueCanonicalcanonical()
.... defaultValueCodecode
.... defaultValueDatedate
.... defaultValueDateTimedateTime
.... defaultValueDecimaldecimal
.... defaultValueIdid
.... defaultValueInstantinstant
.... defaultValueIntegerinteger
.... defaultValueMarkdownmarkdown
.... defaultValueOidoid
.... defaultValuePositiveIntpositiveInt
.... defaultValueStringstring
.... defaultValueTimetime
.... defaultValueUnsignedIntunsignedInt
.... defaultValueUriuri
.... defaultValueUrlurl
.... defaultValueUuiduuid
.... defaultValueAddressAddress
.... defaultValueAgeAge
.... defaultValueAnnotationAnnotation
.... defaultValueAttachmentAttachment
.... defaultValueCodeableConceptCodeableConcept
.... defaultValueCodingCoding
.... defaultValueContactPointContactPoint
.... defaultValueCountCount
.... defaultValueDistanceDistance
.... defaultValueDurationDuration
.... defaultValueHumanNameHumanName
.... defaultValueIdentifierIdentifier
.... defaultValueMoneyMoney
.... defaultValuePeriodPeriod
.... defaultValueQuantityQuantity
.... defaultValueRangeRange
.... defaultValueRatioRatio
.... defaultValueReferenceReference()
.... defaultValueSampledDataSampledData
.... defaultValueSignatureSignature
.... defaultValueTimingTiming
.... defaultValueContactDetailContactDetail
.... defaultValueContributorContributor
.... defaultValueDataRequirementDataRequirement
.... defaultValueExpressionExpression
.... defaultValueParameterDefinitionParameterDefinition
.... defaultValueRelatedArtifactRelatedArtifact
.... defaultValueTriggerDefinitionTriggerDefinition
.... defaultValueUsageContextUsageContext
.... defaultValueDosageDosage
.... defaultValueMetaMeta
... meaningWhenMissing ΣI0..1markdownImplicit meaning when this element is missing
... orderMeaning ΣI0..1stringWhat the order of the elements means
... example ΣI0..*ElementExample value (as defined for type)
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... label ΣI1..1stringDescribes the purpose of this example
.... value[x] ΣI1..1Value of Example (one of allowed types)
..... valueBase64Binarybase64Binary
..... valueBooleanboolean
..... valueCanonicalcanonical()
..... valueCodecode
..... valueDatedate
..... valueDateTimedateTime
..... valueDecimaldecimal
..... valueIdid
..... valueInstantinstant
..... valueIntegerinteger
..... valueMarkdownmarkdown
..... valueOidoid
..... valuePositiveIntpositiveInt
..... valueStringstring
..... valueTimetime
..... valueUnsignedIntunsignedInt
..... valueUriuri
..... valueUrlurl
..... valueUuiduuid
..... valueAddressAddress
..... valueAgeAge
..... valueAnnotationAnnotation
..... valueAttachmentAttachment
..... valueCodeableConceptCodeableConcept
..... valueCodingCoding
..... valueContactPointContactPoint
..... valueCountCount
..... valueDistanceDistance
..... valueDurationDuration
..... valueHumanNameHumanName
..... valueIdentifierIdentifier
..... valueMoneyMoney
..... valuePeriodPeriod
..... valueQuantityQuantity
..... valueRangeRange
..... valueRatioRatio
..... valueReferenceReference()
..... valueSampledDataSampledData
..... valueSignatureSignature
..... valueTimingTiming
..... valueContactDetailContactDetail
..... valueContributorContributor
..... valueDataRequirementDataRequirement
..... valueExpressionExpression
..... valueParameterDefinitionParameterDefinition
..... valueRelatedArtifactRelatedArtifact
..... valueTriggerDefinitionTriggerDefinition
..... valueUsageContextUsageContext
..... valueDosageDosage
..... valueMetaMeta
... minValue[x] ΣI0..1Minimum Allowed Value (for some types)
.... minValueDatedate
.... minValueDateTimedateTime
.... minValueInstantinstant
.... minValueTimetime
.... minValueDecimaldecimal
.... minValueIntegerinteger
.... minValuePositiveIntpositiveInt
.... minValueUnsignedIntunsignedInt
.... minValueQuantityQuantity
... maxValue[x] ΣI0..1Maximum Allowed Value (for some types)
.... maxValueDatedate
.... maxValueDateTimedateTime
.... maxValueInstantinstant
.... maxValueTimetime
.... maxValueDecimaldecimal
.... maxValueIntegerinteger
.... maxValuePositiveIntpositiveInt
.... maxValueUnsignedIntunsignedInt
.... maxValueQuantityQuantity
... maxLength ΣI0..1integerMax length for strings
... condition ΣI0..*idReference to invariant about presence
... constraint ΣI0..*ElementCondition that must evaluate to true
eld-21: Constraints should have an expression or else validators will not be able to enforce them
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... key ΣI1..1idTarget of 'condition' reference above
.... requirements ΣI0..1stringWhy this constraint is necessary or appropriate
.... severity ΣI1..1codeerror | warning
Binding: ConstraintSeverity (required)
.... human ΣI1..1stringHuman description of constraint
.... expression ΣI0..1stringFHIRPath expression of constraint
.... xpath ΣI0..1stringXPath expression of constraint
.... source ΣI0..1canonical(StructureDefinition)Reference to original source of constraint
... mustSupport ΣI0..1booleanIf the element must be supported
... isModifierReason ΣI0..1stringReason that this element is marked as a modifier
... binding ΣI0..1ElementValueSet details if this is coded
eld-12: ValueSet SHALL start with http:// or https:// or urn:
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... strength ΣI1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required)
.... description ΣI0..1stringHuman explanation of the value set
.... valueSet ΣI0..1canonical(ValueSet)Source of value set
... mapping ΣI0..*ElementMap element to another set of definitions
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... identity ΣI1..1idReference to mapping declaration
.... language ΣI0..1codeComputable language of mapping
Binding: MimeType (required)
.... map ΣI1..1stringDetails of the mapping
.... comment ΣI0..1stringComments about the mapping or its use

doco Documentation for this format
<!-- DataElement constraint on ElementDefinition data type -->doco

<ElementDefinition xmlns="http://hl7.org/fhir"
>
  <!-- from Element: extension -->
 <modifierExtension><!-- ?? 0..* Extension  Extensions that cannot be ignored even if unrecognized  --></modifierExtension>
 <path value="[string]"/><!-- ?? 1..1 Path of the element in the hierarchy of elements -->
 <representation value="[code]"/><!-- ?? 0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml -->
 <sliceName value="[string]"/><!-- ?? 0..1 Name for this particular element (in a set of slices) -->
 <sliceIsConstraining value="[boolean]"/><!-- ?? 0..1 
     If this slice definition constrains an inherited slice definition (or not) -->
 <label value="[string]"/><!-- ?? 0..1 Name for element to display with or prompt for element -->
 <code><!-- ?? 0..* Coding Corresponding codes in terminologies --></code>
 <slicing> ?? 0..0 Element  <!-- ?? 0..0 This element is sliced - slices follow -->
 </slicing>
 <short value="[string]"/><!-- ?? 0..0 Concise definition for space-constrained presentation -->
 <definition value="[markdown]"/><!-- ?? 0..1 Full formal definition as narrative text -->
 <comment value="[markdown]"/><!-- ?? 0..1 Comments about the use of this element -->
 <requirements value="[markdown]"/><!-- ?? 0..1 Why this resource has been created -->
 <alias value="[string]"/><!-- ?? 0..* Other names -->
 <min value="[unsignedInt]"/><!-- ?? 0..1 Minimum Cardinality -->
 <max value="[string]"/><!-- ?? 0..1 Maximum Cardinality (a number or *) -->
 <base> ?? 0..1 Element  <!-- ?? 0..1 Base definition information for tools -->
  <path value="[string]"/><!-- ?? 1..1 Path that identifies the base element -->
  <min value="[unsignedInt]"/><!-- ?? 1..1 Min cardinality of the base element -->
  <max value="[string]"/><!-- ?? 1..1 Max cardinality of the base element -->
 </base>
 <contentReference value="[uri]"/><!-- ?? 0..0 Reference to definition of content for the element -->
 <type> ?? 0..* Element  <!-- ?? 0..* Data type and Profile for this element -->
  <code value="[uri]"/><!-- ?? 1..1 Data type or Resource (reference to definition) -->
  <profile value="[canonical]"/><!-- ?? 0..0 Profiles (StructureDefinition or IG) - one must apply -->
  <targetProfile value="[canonical]"/><!-- ?? 0..* 
      Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply -->
  <aggregation value="[code]"/><!-- ?? 0..0 contained | referenced | bundled - how aggregated -->
  <versioning value="[code]"/><!-- ?? 0..1 either | independent | specific -->
 </type>
 <defaultValue[x]><!-- ?? 0..1 base64Binary|boolean|canonical|
   code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|
   time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
   CodeableConcept|Coding|ContactPoint|Count|Distance|Duration|HumanName|
   Identifier|Money|Period|Quantity|Range|Ratio|Reference|SampledData|Signature|
   Timing|ContactDetail|Contributor|DataRequirement|Expression|
   ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Dosage|
   Meta Specified value if missing from instance --></defaultValue[x]>
 <meaningWhenMissing value="[markdown]"/><!-- ?? 0..1 Implicit meaning when this element is missing -->
 <orderMeaning value="[string]"/><!-- ?? 0..1 What the order of the elements means -->
 <fixed[x]><!-- ?? 0..0 base64Binary|boolean|canonical|code|date|
   dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time|
   unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|
   Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|
   Quantity|Range|Ratio|Reference|SampledData|Signature|Timing|ContactDetail|
   Contributor|DataRequirement|Expression|ParameterDefinition|RelatedArtifact|
   TriggerDefinition|UsageContext|Dosage|Meta Value must be exactly this --></fixed[x]>
 <pattern[x]><!-- ?? 0..0 base64Binary|boolean|canonical|code|
   date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time|
   unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|
   Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|
   Quantity|Range|Ratio|Reference|SampledData|Signature|Timing|ContactDetail|
   Contributor|DataRequirement|Expression|ParameterDefinition|RelatedArtifact|
   TriggerDefinition|UsageContext|Dosage|Meta 
     Value must have at least these property values --></pattern[x]>
 <example> ?? 0..* Element  <!-- ?? 0..* Example value (as defined for type) -->
  <label value="[string]"/><!-- ?? 1..1 Describes the purpose of this example -->
  <value[x]><!-- ?? 1..1 base64Binary|boolean|canonical|
    code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|
    string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
    CodeableConcept|Coding|ContactPoint|Count|Distance|Duration|HumanName|
    Identifier|Money|Period|Quantity|Range|Ratio|Reference|SampledData|Signature|
    Timing|ContactDetail|Contributor|DataRequirement|Expression|
    ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Dosage|
    Meta Value of Example (one of allowed types) --></value[x]>
 </example>
 <minValue[x]><!-- ?? 0..1 date|dateTime|instant|time|decimal|
   integer|positiveInt|unsignedInt|Quantity 
     Minimum Allowed Value (for some types) --></minValue[x]>
 <maxValue[x]><!-- ?? 0..1 date|dateTime|instant|time|decimal|
   integer|positiveInt|unsignedInt|Quantity 
     Maximum Allowed Value (for some types) --></maxValue[x]>
 <maxLength value="[integer]"/><!-- ?? 0..1 Max length for strings -->
 <condition value="[id]"/><!-- ?? 0..* Reference to invariant about presence -->
 <constraint> ?? 0..* Element  <!-- ?? 0..* Condition that must evaluate to true -->
  <key value="[id]"/><!-- ?? 1..1 Target of 'condition' reference above -->
  <requirements value="[string]"/><!-- ?? 0..1 Why this constraint is necessary or appropriate -->
  <severity value="[code]"/><!-- ?? 1..1 error | warning -->
  <human value="[string]"/><!-- ?? 1..1 Human description of constraint -->
  <expression value="[string]"/><!-- ?? 0..1 FHIRPath expression of constraint -->
  <xpath value="[string]"/><!-- ?? 0..1 XPath expression of constraint -->
  <source value="[canonical]"/><!-- ?? 0..1 Reference to original source of constraint -->
 </constraint>
 <mustSupport value="[boolean]"/><!-- ?? 0..1 If the element must be supported -->
 <isModifier value="[boolean]"/><!-- ?? 0..0 If this modifies the meaning of other elements -->
 <isModifierReason value="[string]"/><!-- ?? 0..1 Reason that this element is marked as a modifier -->
 <isSummary value="[boolean]"/><!-- ?? 0..0 Include when _summary = true? -->
 <binding> ?? 0..1 Element  <!-- ?? 0..1 ValueSet details if this is coded -->
  <strength value="[code]"/><!-- ?? 1..1 required | extensible | preferred | example -->
  <description value="[string]"/><!-- ?? 0..1 Human explanation of the value set -->
  <valueSet value="[canonical]"/><!-- ?? 0..1 Source of value set -->
 </binding>
 <mapping> ?? 0..* Element  <!-- ?? 0..* Map element to another set of definitions -->
  <identity value="[id]"/><!-- ?? 1..1 Reference to mapping declaration -->
  <language value="[code]"/><!-- ?? 0..1 Computable language of mapping -->
  <map value="[string]"/><!-- ?? 1..1 Details of the mapping -->
  <comment value="[string]"/><!-- ?? 0..1 Comments about the mapping or its use -->
 </mapping>
</ElementDefinition>
{ // DataElement constraint on ElementDefinition data type
  // from Element: extension
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Prompt for element phrased as question // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-question", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // Units to use for measured value // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits", // R! 
// value[x]: Value of extension. One of these 2:
        "valueCodeableConcept" : { CodeableConcept } // C? R! Value of extension
        "valueCanonical" : "<canonical>", // C? R! Value of extension
      }
    ],
    "modifierExtension" : [{ Extension }], // C?Extensions that cannot be ignored even if unrecognized
    "path" : "<string>", // C? R! Path of the element in the hierarchy of elements
    "sliceName" : "<string>", // C?Name for this particular element (in a set of slices)
    "sliceIsConstraining" : <boolean>, // C?If this slice definition constrains an inherited slice definition (or not)
    "label" : "<string>", // C?Name for element to display with or prompt for element
    "code" : [{ Coding }], // C?Corresponding codes in terminologies
    "definition" : "<markdown>", // C?Full formal definition as narrative text
    "comment" : "<markdown>", // C?Comments about the use of this element
    "requirements" : "<markdown>", // C?Why this resource has been created
    "alias" : ["<string>"], // C?Other names
    "min" : "<unsignedInt>", // C?Minimum Cardinality
    "max" : "<string>", // C?Maximum Cardinality (a number or *)
    "base" : { Element }, // C?Base definition information for tools
    "type" : [{ Element }], // C?Data type and Profile for this element
// value[x]: Specified value if missing from instance. One of these 50:
    "defaultValueBase64Binary" : "<base64Binary>", // C?Specified value if missing from instance
    "defaultValueBoolean" : <boolean>, // C?Specified value if missing from instance
    "defaultValueCanonical" : "<canonical>", // C?Specified value if missing from instance
    "defaultValueCode" : "<code>", // C?Specified value if missing from instance
    "defaultValueDate" : "<date>", // C?Specified value if missing from instance
    "defaultValueDateTime" : "<dateTime>", // C?Specified value if missing from instance
    "defaultValueDecimal" : <decimal>, // C?Specified value if missing from instance
    "defaultValueId" : "<id>", // C?Specified value if missing from instance
    "defaultValueInstant" : "<instant>", // C?Specified value if missing from instance
    "defaultValueInteger" : <integer>, // C?Specified value if missing from instance
    "defaultValueMarkdown" : "<markdown>", // C?Specified value if missing from instance
    "defaultValueOid" : "<oid>", // C?Specified value if missing from instance
    "defaultValuePositiveInt" : "<positiveInt>", // C?Specified value if missing from instance
    "defaultValueString" : "<string>", // C?Specified value if missing from instance
    "defaultValueTime" : "<time>", // C?Specified value if missing from instance
    "defaultValueUnsignedInt" : "<unsignedInt>", // C?Specified value if missing from instance
    "defaultValueUri" : "<uri>", // C?Specified value if missing from instance
    "defaultValueUrl" : "<url>", // C?Specified value if missing from instance
    "defaultValueUuid" : "<uuid>" // C?Specified value if missing from instance
    "defaultValueAddress" : { Address }, // C?Specified value if missing from instance
    "defaultValueAge" : { Age }, // C?Specified value if missing from instance
    "defaultValueAnnotation" : { Annotation }, // C?Specified value if missing from instance
    "defaultValueAttachment" : { Attachment }, // C?Specified value if missing from instance
    "defaultValueCodeableConcept" : { CodeableConcept }, // C?Specified value if missing from instance
    "defaultValueCoding" : { Coding }, // C?Specified value if missing from instance
    "defaultValueContactPoint" : { ContactPoint }, // C?Specified value if missing from instance
    "defaultValueCount" : { Count }, // C?Specified value if missing from instance
    "defaultValueDistance" : { Distance }, // C?Specified value if missing from instance
    "defaultValueDuration" : { Duration }, // C?Specified value if missing from instance
    "defaultValueHumanName" : { HumanName }, // C?Specified value if missing from instance
    "defaultValueIdentifier" : { Identifier }, // C?Specified value if missing from instance
    "defaultValueMoney" : { Money }, // C?Specified value if missing from instance
    "defaultValuePeriod" : { Period }, // C?Specified value if missing from instance
    "defaultValueQuantity" : { Quantity }, // C?Specified value if missing from instance
    "defaultValueRange" : { Range }, // C?Specified value if missing from instance
    "defaultValueRatio" : { Ratio }, // C?Specified value if missing from instance
    "defaultValueReference" : { Reference }, // C?Specified value if missing from instance
    "defaultValueSampledData" : { SampledData }, // C?Specified value if missing from instance
    "defaultValueSignature" : { Signature }, // C?Specified value if missing from instance
    "defaultValueTiming" : { Timing }, // C?Specified value if missing from instance
    "defaultValueContactDetail" : { ContactDetail }, // C?Specified value if missing from instance
    "defaultValueContributor" : { Contributor }, // C?Specified value if missing from instance
    "defaultValueDataRequirement" : { DataRequirement }, // C?Specified value if missing from instance
    "defaultValueExpression" : { Expression }, // C?Specified value if missing from instance
    "defaultValueParameterDefinition" : { ParameterDefinition }, // C?Specified value if missing from instance
    "defaultValueRelatedArtifact" : { RelatedArtifact }, // C?Specified value if missing from instance
    "defaultValueTriggerDefinition" : { TriggerDefinition }, // C?Specified value if missing from instance
    "defaultValueUsageContext" : { UsageContext }, // C?Specified value if missing from instance
    "defaultValueDosage" : { Dosage }, // C?Specified value if missing from instance
    "defaultValueMeta" : { Meta }, // C?Specified value if missing from instance
    "meaningWhenMissing" : "<markdown>", // C?Implicit meaning when this element is missing
    "orderMeaning" : "<string>", // C?What the order of the elements means
// value[x]: Value must be exactly this. One of these 50:
// value[x]: Value must have at least these property values. One of these 50:
    "example" : [{ Element }], // C?Example value (as defined for type)
// value[x]: Minimum Allowed Value (for some types). One of these 9:
    "minValueDate" : "<date>", // C?Minimum Allowed Value (for some types)
    "minValueDateTime" : "<dateTime>", // C?Minimum Allowed Value (for some types)
    "minValueInstant" : "<instant>", // C?Minimum Allowed Value (for some types)
    "minValueTime" : "<time>", // C?Minimum Allowed Value (for some types)
    "minValueDecimal" : <decimal>, // C?Minimum Allowed Value (for some types)
    "minValueInteger" : <integer>, // C?Minimum Allowed Value (for some types)
    "minValuePositiveInt" : "<positiveInt>", // C?Minimum Allowed Value (for some types)
    "minValueUnsignedInt" : "<unsignedInt>", // C?Minimum Allowed Value (for some types)
    "minValueQuantity" : { Quantity }, // C?Minimum Allowed Value (for some types)
// value[x]: Maximum Allowed Value (for some types). One of these 9:
    "maxValueDate" : "<date>", // C?Maximum Allowed Value (for some types)
    "maxValueDateTime" : "<dateTime>", // C?Maximum Allowed Value (for some types)
    "maxValueInstant" : "<instant>", // C?Maximum Allowed Value (for some types)
    "maxValueTime" : "<time>", // C?Maximum Allowed Value (for some types)
    "maxValueDecimal" : <decimal>, // C?Maximum Allowed Value (for some types)
    "maxValueInteger" : <integer>, // C?Maximum Allowed Value (for some types)
    "maxValuePositiveInt" : "<positiveInt>", // C?Maximum Allowed Value (for some types)
    "maxValueUnsignedInt" : "<unsignedInt>", // C?Maximum Allowed Value (for some types)
    "maxValueQuantity" : { Quantity }, // C?Maximum Allowed Value (for some types)
    "maxLength" : <integer>, // C?Max length for strings
    "condition" : ["<id>"], // C?Reference to invariant about presence
    "constraint" : [{ Element }], // C?Condition that must evaluate to true
    "mustSupport" : <boolean>, // C?If the element must be supported
    "isModifierReason" : "<string>", // C?Reason that this element is marked as a modifier
    "binding" : { Element }, // C?ValueSet details if this is coded
    "mapping" : [{ Element }], // C?Map element to another set of definitions
  }

This structure is derived from ElementDefinition.

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. ElementDefinition I0..*Definition of an element in a resource or extension
... id 0..1stringUnique id for inter-element referencing
... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... elementdefinition-question I0..*stringPrompt for element phrased as question
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..0
.... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-question"
.... value[x] I1..1stringValue of extension
... elementdefinition-allowedUnits I0..1CodeableConcept, canonical(ValueSet)Units to use for measured value
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits
Binding: UCUM Codes (required)
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..0
.... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits"
.... value[x] I1..1Value of extension
Binding: UCUM Codes (required)
..... valueCodeableConceptCodeableConcept
..... valueCanonicalcanonical(valueset.html)
... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
... path ΣI1..1stringPath of the element in the hierarchy of elements
... sliceName ΣI0..1stringName for this particular element (in a set of slices)
... sliceIsConstraining ΣI0..1booleanIf this slice definition constrains an inherited slice definition (or not)
... label ΣI0..1stringName for element to display with or prompt for element
... code ΣI0..*CodingCorresponding codes in terminologies
Binding: LOINC Codes (example)
... definition ΣI0..1markdownFull formal definition as narrative text
... comment ΣI0..1markdownComments about the use of this element
... requirements ΣI0..1markdownWhy this resource has been created
... alias ΣI0..*stringOther names
... min ΣI0..1unsignedIntMinimum Cardinality
... max ΣI0..1stringMaximum Cardinality (a number or *)
eld-3: Max SHALL be a number or "*"
... base ΣI0..1ElementBase definition information for tools
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... path ΣI1..1stringPath that identifies the base element
.... min ΣI1..1unsignedIntMin cardinality of the base element
.... max ΣI1..1stringMax cardinality of the base element
... type ΣI0..*ElementData type and Profile for this element
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... code ΣI1..1uriData type or Resource (reference to definition)
Binding: FHIRDefinedType (extensible)
.... targetProfile ΣI0..*canonical(StructureDefinition | ImplementationGuide)Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply
.... versioning ΣI0..1codeeither | independent | specific
Binding: ReferenceVersionRules (required)
... defaultValue[x] ΣI0..1Specified value if missing from instance
.... defaultValueBase64Binarybase64Binary
.... defaultValueBooleanboolean
.... defaultValueCanonicalcanonical()
.... defaultValueCodecode
.... defaultValueDatedate
.... defaultValueDateTimedateTime
.... defaultValueDecimaldecimal
.... defaultValueIdid
.... defaultValueInstantinstant
.... defaultValueIntegerinteger
.... defaultValueMarkdownmarkdown
.... defaultValueOidoid
.... defaultValuePositiveIntpositiveInt
.... defaultValueStringstring
.... defaultValueTimetime
.... defaultValueUnsignedIntunsignedInt
.... defaultValueUriuri
.... defaultValueUrlurl
.... defaultValueUuiduuid
.... defaultValueAddressAddress
.... defaultValueAgeAge
.... defaultValueAnnotationAnnotation
.... defaultValueAttachmentAttachment
.... defaultValueCodeableConceptCodeableConcept
.... defaultValueCodingCoding
.... defaultValueContactPointContactPoint
.... defaultValueCountCount
.... defaultValueDistanceDistance
.... defaultValueDurationDuration
.... defaultValueHumanNameHumanName
.... defaultValueIdentifierIdentifier
.... defaultValueMoneyMoney
.... defaultValuePeriodPeriod
.... defaultValueQuantityQuantity
.... defaultValueRangeRange
.... defaultValueRatioRatio
.... defaultValueReferenceReference()
.... defaultValueSampledDataSampledData
.... defaultValueSignatureSignature
.... defaultValueTimingTiming
.... defaultValueContactDetailContactDetail
.... defaultValueContributorContributor
.... defaultValueDataRequirementDataRequirement
.... defaultValueExpressionExpression
.... defaultValueParameterDefinitionParameterDefinition
.... defaultValueRelatedArtifactRelatedArtifact
.... defaultValueTriggerDefinitionTriggerDefinition
.... defaultValueUsageContextUsageContext
.... defaultValueDosageDosage
.... defaultValueMetaMeta
... meaningWhenMissing ΣI0..1markdownImplicit meaning when this element is missing
... orderMeaning ΣI0..1stringWhat the order of the elements means
... example ΣI0..*ElementExample value (as defined for type)
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... label ΣI1..1stringDescribes the purpose of this example
.... value[x] ΣI1..1Value of Example (one of allowed types)
..... valueBase64Binarybase64Binary
..... valueBooleanboolean
..... valueCanonicalcanonical()
..... valueCodecode
..... valueDatedate
..... valueDateTimedateTime
..... valueDecimaldecimal
..... valueIdid
..... valueInstantinstant
..... valueIntegerinteger
..... valueMarkdownmarkdown
..... valueOidoid
..... valuePositiveIntpositiveInt
..... valueStringstring
..... valueTimetime
..... valueUnsignedIntunsignedInt
..... valueUriuri
..... valueUrlurl
..... valueUuiduuid
..... valueAddressAddress
..... valueAgeAge
..... valueAnnotationAnnotation
..... valueAttachmentAttachment
..... valueCodeableConceptCodeableConcept
..... valueCodingCoding
..... valueContactPointContactPoint
..... valueCountCount
..... valueDistanceDistance
..... valueDurationDuration
..... valueHumanNameHumanName
..... valueIdentifierIdentifier
..... valueMoneyMoney
..... valuePeriodPeriod
..... valueQuantityQuantity
..... valueRangeRange
..... valueRatioRatio
..... valueReferenceReference()
..... valueSampledDataSampledData
..... valueSignatureSignature
..... valueTimingTiming
..... valueContactDetailContactDetail
..... valueContributorContributor
..... valueDataRequirementDataRequirement
..... valueExpressionExpression
..... valueParameterDefinitionParameterDefinition
..... valueRelatedArtifactRelatedArtifact
..... valueTriggerDefinitionTriggerDefinition
..... valueUsageContextUsageContext
..... valueDosageDosage
..... valueMetaMeta
... minValue[x] ΣI0..1Minimum Allowed Value (for some types)
.... minValueDatedate
.... minValueDateTimedateTime
.... minValueInstantinstant
.... minValueTimetime
.... minValueDecimaldecimal
.... minValueIntegerinteger
.... minValuePositiveIntpositiveInt
.... minValueUnsignedIntunsignedInt
.... minValueQuantityQuantity
... maxValue[x] ΣI0..1Maximum Allowed Value (for some types)
.... maxValueDatedate
.... maxValueDateTimedateTime
.... maxValueInstantinstant
.... maxValueTimetime
.... maxValueDecimaldecimal
.... maxValueIntegerinteger
.... maxValuePositiveIntpositiveInt
.... maxValueUnsignedIntunsignedInt
.... maxValueQuantityQuantity
... maxLength ΣI0..1integerMax length for strings
... condition ΣI0..*idReference to invariant about presence
... constraint ΣI0..*ElementCondition that must evaluate to true
eld-21: Constraints should have an expression or else validators will not be able to enforce them
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... key ΣI1..1idTarget of 'condition' reference above
.... requirements ΣI0..1stringWhy this constraint is necessary or appropriate
.... severity ΣI1..1codeerror | warning
Binding: ConstraintSeverity (required)
.... human ΣI1..1stringHuman description of constraint
.... expression ΣI0..1stringFHIRPath expression of constraint
.... xpath ΣI0..1stringXPath expression of constraint
.... source ΣI0..1canonical(StructureDefinition)Reference to original source of constraint
... mustSupport ΣI0..1booleanIf the element must be supported
... isModifierReason ΣI0..1stringReason that this element is marked as a modifier
... binding ΣI0..1ElementValueSet details if this is coded
eld-12: ValueSet SHALL start with http:// or https:// or urn:
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... strength ΣI1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required)
.... description ΣI0..1stringHuman explanation of the value set
.... valueSet ΣI0..1canonical(ValueSet)Source of value set
... mapping ΣI0..*ElementMap element to another set of definitions
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... identity ΣI1..1idReference to mapping declaration
.... language ΣI0..1codeComputable language of mapping
Binding: MimeType (required)
.... map ΣI1..1stringDetails of the mapping
.... comment ΣI0..1stringComments about the mapping or its use

doco Documentation for this format

XML Template

<!-- DataElement constraint on ElementDefinition data type -->doco

<ElementDefinition xmlns="http://hl7.org/fhir"
>
  <!-- from Element: extension -->
 <modifierExtension><!-- ?? 0..* Extension  Extensions that cannot be ignored even if unrecognized  --></modifierExtension>
 <path value="[string]"/><!-- ?? 1..1 Path of the element in the hierarchy of elements -->
 <representation value="[code]"/><!-- ?? 0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml -->
 <sliceName value="[string]"/><!-- ?? 0..1 Name for this particular element (in a set of slices) -->
 <sliceIsConstraining value="[boolean]"/><!-- ?? 0..1 
     If this slice definition constrains an inherited slice definition (or not) -->
 <label value="[string]"/><!-- ?? 0..1 Name for element to display with or prompt for element -->
 <code><!-- ?? 0..* Coding Corresponding codes in terminologies --></code>
 <slicing> ?? 0..0 Element  <!-- ?? 0..0 This element is sliced - slices follow -->
 </slicing>
 <short value="[string]"/><!-- ?? 0..0 Concise definition for space-constrained presentation -->
 <definition value="[markdown]"/><!-- ?? 0..1 Full formal definition as narrative text -->
 <comment value="[markdown]"/><!-- ?? 0..1 Comments about the use of this element -->
 <requirements value="[markdown]"/><!-- ?? 0..1 Why this resource has been created -->
 <alias value="[string]"/><!-- ?? 0..* Other names -->
 <min value="[unsignedInt]"/><!-- ?? 0..1 Minimum Cardinality -->
 <max value="[string]"/><!-- ?? 0..1 Maximum Cardinality (a number or *) -->
 <base> ?? 0..1 Element  <!-- ?? 0..1 Base definition information for tools -->
  <path value="[string]"/><!-- ?? 1..1 Path that identifies the base element -->
  <min value="[unsignedInt]"/><!-- ?? 1..1 Min cardinality of the base element -->
  <max value="[string]"/><!-- ?? 1..1 Max cardinality of the base element -->
 </base>
 <contentReference value="[uri]"/><!-- ?? 0..0 Reference to definition of content for the element -->
 <type> ?? 0..* Element  <!-- ?? 0..* Data type and Profile for this element -->
  <code value="[uri]"/><!-- ?? 1..1 Data type or Resource (reference to definition) -->
  <profile value="[canonical]"/><!-- ?? 0..0 Profiles (StructureDefinition or IG) - one must apply -->
  <targetProfile value="[canonical]"/><!-- ?? 0..* 
      Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply -->
  <aggregation value="[code]"/><!-- ?? 0..0 contained | referenced | bundled - how aggregated -->
  <versioning value="[code]"/><!-- ?? 0..1 either | independent | specific -->
 </type>
 <defaultValue[x]><!-- ?? 0..1 base64Binary|boolean|canonical|
   code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|
   time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
   CodeableConcept|Coding|ContactPoint|Count|Distance|Duration|HumanName|
   Identifier|Money|Period|Quantity|Range|Ratio|Reference|SampledData|Signature|
   Timing|ContactDetail|Contributor|DataRequirement|Expression|
   ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Dosage|
   Meta Specified value if missing from instance --></defaultValue[x]>
 <meaningWhenMissing value="[markdown]"/><!-- ?? 0..1 Implicit meaning when this element is missing -->
 <orderMeaning value="[string]"/><!-- ?? 0..1 What the order of the elements means -->
 <fixed[x]><!-- ?? 0..0 base64Binary|boolean|canonical|code|date|
   dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time|
   unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|
   Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|
   Quantity|Range|Ratio|Reference|SampledData|Signature|Timing|ContactDetail|
   Contributor|DataRequirement|Expression|ParameterDefinition|RelatedArtifact|
   TriggerDefinition|UsageContext|Dosage|Meta Value must be exactly this --></fixed[x]>
 <pattern[x]><!-- ?? 0..0 base64Binary|boolean|canonical|code|
   date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time|
   unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|
   Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|
   Quantity|Range|Ratio|Reference|SampledData|Signature|Timing|ContactDetail|
   Contributor|DataRequirement|Expression|ParameterDefinition|RelatedArtifact|
   TriggerDefinition|UsageContext|Dosage|Meta 
     Value must have at least these property values --></pattern[x]>
 <example> ?? 0..* Element  <!-- ?? 0..* Example value (as defined for type) -->
  <label value="[string]"/><!-- ?? 1..1 Describes the purpose of this example -->
  <value[x]><!-- ?? 1..1 base64Binary|boolean|canonical|
    code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|
    string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
    CodeableConcept|Coding|ContactPoint|Count|Distance|Duration|HumanName|
    Identifier|Money|Period|Quantity|Range|Ratio|Reference|SampledData|Signature|
    Timing|ContactDetail|Contributor|DataRequirement|Expression|
    ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Dosage|
    Meta Value of Example (one of allowed types) --></value[x]>
 </example>
 <minValue[x]><!-- ?? 0..1 date|dateTime|instant|time|decimal|
   integer|positiveInt|unsignedInt|Quantity 
     Minimum Allowed Value (for some types) --></minValue[x]>
 <maxValue[x]><!-- ?? 0..1 date|dateTime|instant|time|decimal|
   integer|positiveInt|unsignedInt|Quantity 
     Maximum Allowed Value (for some types) --></maxValue[x]>
 <maxLength value="[integer]"/><!-- ?? 0..1 Max length for strings -->
 <condition value="[id]"/><!-- ?? 0..* Reference to invariant about presence -->
 <constraint> ?? 0..* Element  <!-- ?? 0..* Condition that must evaluate to true -->
  <key value="[id]"/><!-- ?? 1..1 Target of 'condition' reference above -->
  <requirements value="[string]"/><!-- ?? 0..1 Why this constraint is necessary or appropriate -->
  <severity value="[code]"/><!-- ?? 1..1 error | warning -->
  <human value="[string]"/><!-- ?? 1..1 Human description of constraint -->
  <expression value="[string]"/><!-- ?? 0..1 FHIRPath expression of constraint -->
  <xpath value="[string]"/><!-- ?? 0..1 XPath expression of constraint -->
  <source value="[canonical]"/><!-- ?? 0..1 Reference to original source of constraint -->
 </constraint>
 <mustSupport value="[boolean]"/><!-- ?? 0..1 If the element must be supported -->
 <isModifier value="[boolean]"/><!-- ?? 0..0 If this modifies the meaning of other elements -->
 <isModifierReason value="[string]"/><!-- ?? 0..1 Reason that this element is marked as a modifier -->
 <isSummary value="[boolean]"/><!-- ?? 0..0 Include when _summary = true? -->
 <binding> ?? 0..1 Element  <!-- ?? 0..1 ValueSet details if this is coded -->
  <strength value="[code]"/><!-- ?? 1..1 required | extensible | preferred | example -->
  <description value="[string]"/><!-- ?? 0..1 Human explanation of the value set -->
  <valueSet value="[canonical]"/><!-- ?? 0..1 Source of value set -->
 </binding>
 <mapping> ?? 0..* Element  <!-- ?? 0..* Map element to another set of definitions -->
  <identity value="[id]"/><!-- ?? 1..1 Reference to mapping declaration -->
  <language value="[code]"/><!-- ?? 0..1 Computable language of mapping -->
  <map value="[string]"/><!-- ?? 1..1 Details of the mapping -->
  <comment value="[string]"/><!-- ?? 0..1 Comments about the mapping or its use -->
 </mapping>
</ElementDefinition>

JSON Template

{ // DataElement constraint on ElementDefinition data type
  // from Element: extension
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Prompt for element phrased as question // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-question", // R! 
        "valueString" : "<string>" // C? R! Value of extension
      },
      { // Units to use for measured value // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits", // R! 
// value[x]: Value of extension. One of these 2:
        "valueCodeableConcept" : { CodeableConcept } // C? R! Value of extension
        "valueCanonical" : "<canonical>", // C? R! Value of extension
      }
    ],
    "modifierExtension" : [{ Extension }], // C?Extensions that cannot be ignored even if unrecognized
    "path" : "<string>", // C? R! Path of the element in the hierarchy of elements
    "sliceName" : "<string>", // C?Name for this particular element (in a set of slices)
    "sliceIsConstraining" : <boolean>, // C?If this slice definition constrains an inherited slice definition (or not)
    "label" : "<string>", // C?Name for element to display with or prompt for element
    "code" : [{ Coding }], // C?Corresponding codes in terminologies
    "definition" : "<markdown>", // C?Full formal definition as narrative text
    "comment" : "<markdown>", // C?Comments about the use of this element
    "requirements" : "<markdown>", // C?Why this resource has been created
    "alias" : ["<string>"], // C?Other names
    "min" : "<unsignedInt>", // C?Minimum Cardinality
    "max" : "<string>", // C?Maximum Cardinality (a number or *)
    "base" : { Element }, // C?Base definition information for tools
    "type" : [{ Element }], // C?Data type and Profile for this element
// value[x]: Specified value if missing from instance. One of these 50:
    "defaultValueBase64Binary" : "<base64Binary>", // C?Specified value if missing from instance
    "defaultValueBoolean" : <boolean>, // C?Specified value if missing from instance
    "defaultValueCanonical" : "<canonical>", // C?Specified value if missing from instance
    "defaultValueCode" : "<code>", // C?Specified value if missing from instance
    "defaultValueDate" : "<date>", // C?Specified value if missing from instance
    "defaultValueDateTime" : "<dateTime>", // C?Specified value if missing from instance
    "defaultValueDecimal" : <decimal>, // C?Specified value if missing from instance
    "defaultValueId" : "<id>", // C?Specified value if missing from instance
    "defaultValueInstant" : "<instant>", // C?Specified value if missing from instance
    "defaultValueInteger" : <integer>, // C?Specified value if missing from instance
    "defaultValueMarkdown" : "<markdown>", // C?Specified value if missing from instance
    "defaultValueOid" : "<oid>", // C?Specified value if missing from instance
    "defaultValuePositiveInt" : "<positiveInt>", // C?Specified value if missing from instance
    "defaultValueString" : "<string>", // C?Specified value if missing from instance
    "defaultValueTime" : "<time>", // C?Specified value if missing from instance
    "defaultValueUnsignedInt" : "<unsignedInt>", // C?Specified value if missing from instance
    "defaultValueUri" : "<uri>", // C?Specified value if missing from instance
    "defaultValueUrl" : "<url>", // C?Specified value if missing from instance
    "defaultValueUuid" : "<uuid>" // C?Specified value if missing from instance
    "defaultValueAddress" : { Address }, // C?Specified value if missing from instance
    "defaultValueAge" : { Age }, // C?Specified value if missing from instance
    "defaultValueAnnotation" : { Annotation }, // C?Specified value if missing from instance
    "defaultValueAttachment" : { Attachment }, // C?Specified value if missing from instance
    "defaultValueCodeableConcept" : { CodeableConcept }, // C?Specified value if missing from instance
    "defaultValueCoding" : { Coding }, // C?Specified value if missing from instance
    "defaultValueContactPoint" : { ContactPoint }, // C?Specified value if missing from instance
    "defaultValueCount" : { Count }, // C?Specified value if missing from instance
    "defaultValueDistance" : { Distance }, // C?Specified value if missing from instance
    "defaultValueDuration" : { Duration }, // C?Specified value if missing from instance
    "defaultValueHumanName" : { HumanName }, // C?Specified value if missing from instance
    "defaultValueIdentifier" : { Identifier }, // C?Specified value if missing from instance
    "defaultValueMoney" : { Money }, // C?Specified value if missing from instance
    "defaultValuePeriod" : { Period }, // C?Specified value if missing from instance
    "defaultValueQuantity" : { Quantity }, // C?Specified value if missing from instance
    "defaultValueRange" : { Range }, // C?Specified value if missing from instance
    "defaultValueRatio" : { Ratio }, // C?Specified value if missing from instance
    "defaultValueReference" : { Reference }, // C?Specified value if missing from instance
    "defaultValueSampledData" : { SampledData }, // C?Specified value if missing from instance
    "defaultValueSignature" : { Signature }, // C?Specified value if missing from instance
    "defaultValueTiming" : { Timing }, // C?Specified value if missing from instance
    "defaultValueContactDetail" : { ContactDetail }, // C?Specified value if missing from instance
    "defaultValueContributor" : { Contributor }, // C?Specified value if missing from instance
    "defaultValueDataRequirement" : { DataRequirement }, // C?Specified value if missing from instance
    "defaultValueExpression" : { Expression }, // C?Specified value if missing from instance
    "defaultValueParameterDefinition" : { ParameterDefinition }, // C?Specified value if missing from instance
    "defaultValueRelatedArtifact" : { RelatedArtifact }, // C?Specified value if missing from instance
    "defaultValueTriggerDefinition" : { TriggerDefinition }, // C?Specified value if missing from instance
    "defaultValueUsageContext" : { UsageContext }, // C?Specified value if missing from instance
    "defaultValueDosage" : { Dosage }, // C?Specified value if missing from instance
    "defaultValueMeta" : { Meta }, // C?Specified value if missing from instance
    "meaningWhenMissing" : "<markdown>", // C?Implicit meaning when this element is missing
    "orderMeaning" : "<string>", // C?What the order of the elements means
// value[x]: Value must be exactly this. One of these 50:
// value[x]: Value must have at least these property values. One of these 50:
    "example" : [{ Element }], // C?Example value (as defined for type)
// value[x]: Minimum Allowed Value (for some types). One of these 9:
    "minValueDate" : "<date>", // C?Minimum Allowed Value (for some types)
    "minValueDateTime" : "<dateTime>", // C?Minimum Allowed Value (for some types)
    "minValueInstant" : "<instant>", // C?Minimum Allowed Value (for some types)
    "minValueTime" : "<time>", // C?Minimum Allowed Value (for some types)
    "minValueDecimal" : <decimal>, // C?Minimum Allowed Value (for some types)
    "minValueInteger" : <integer>, // C?Minimum Allowed Value (for some types)
    "minValuePositiveInt" : "<positiveInt>", // C?Minimum Allowed Value (for some types)
    "minValueUnsignedInt" : "<unsignedInt>", // C?Minimum Allowed Value (for some types)
    "minValueQuantity" : { Quantity }, // C?Minimum Allowed Value (for some types)
// value[x]: Maximum Allowed Value (for some types). One of these 9:
    "maxValueDate" : "<date>", // C?Maximum Allowed Value (for some types)
    "maxValueDateTime" : "<dateTime>", // C?Maximum Allowed Value (for some types)
    "maxValueInstant" : "<instant>", // C?Maximum Allowed Value (for some types)
    "maxValueTime" : "<time>", // C?Maximum Allowed Value (for some types)
    "maxValueDecimal" : <decimal>, // C?Maximum Allowed Value (for some types)
    "maxValueInteger" : <integer>, // C?Maximum Allowed Value (for some types)
    "maxValuePositiveInt" : "<positiveInt>", // C?Maximum Allowed Value (for some types)
    "maxValueUnsignedInt" : "<unsignedInt>", // C?Maximum Allowed Value (for some types)
    "maxValueQuantity" : { Quantity }, // C?Maximum Allowed Value (for some types)
    "maxLength" : <integer>, // C?Max length for strings
    "condition" : ["<id>"], // C?Reference to invariant about presence
    "constraint" : [{ Element }], // C?Condition that must evaluate to true
    "mustSupport" : <boolean>, // C?If the element must be supported
    "isModifierReason" : "<string>", // C?Reason that this element is marked as a modifier
    "binding" : { Element }, // C?ValueSet details if this is coded
    "mapping" : [{ Element }], // C?Map element to another set of definitions
  }

 

Alternate definitions: Master Definition (XML, JSON), Schematron

Terminology Bindings

PathNameConformanceValueSet
ElementDefinition.extension.value[x]UCUM CodesrequiredUCUM Codes
ElementDefinition.codeLOINC CodesexampleLOINC Codes
ElementDefinition.slicing.discriminator.typeDiscriminatorTyperequiredDiscriminatorType
ElementDefinition.slicing.rulesSlicingRulesrequiredSlicingRules
ElementDefinition.type.codeFHIRDefinedTypeextensibleFHIRDefinedType
ElementDefinition.type.versioningReferenceVersionRulesrequiredReferenceVersionRules
ElementDefinition.constraint.severityConstraintSeverityrequiredConstraintSeverity
ElementDefinition.binding.strengthBindingStrengthrequiredBindingStrength
ElementDefinition.mapping.languageMimeTyperequiredMimeType

Constraints

RuleWarningRule
IdPathDetailsRequirements
eld-3ElementDefinition.maxMax SHALL be a number or "*"
Expression: empty() or ($this = '*') or (toInteger() >= 0)
eld-21ElementDefinition.constraintConstraints should have an expression or else validators will not be able to enforce them
Expression: expression.exists()
eld-12ElementDefinition.bindingValueSet SHALL start with http:// or https:// or urn:
Expression: valueSet.exists() implies (valueSet.startsWith('http:') or valueSet.startsWith('https') or valueSet.startsWith('urn:'))
.