R4 Ballot #2 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.5.0: R4 Ballot #2). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

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

This structure is derived from ElementDefinition.

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. ElementDefinition I0..*Definition of an element in a resource or extension
... id 0..1stringxml:id (or equivalent in JSON)
... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... elementdefinition-question 0..*stringExtension
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..0
.... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-question"
.... valueString 0..1stringValue of extension
... elementdefinition-allowedUnits 0..1CodeableConcept, canonical(ValueSet)Extension
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits
Binding: UCUM Codes (required)
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..0
.... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits"
.... value[x] 1..1CodeableConcept, canonical(ValueSet)Value of extension
Binding: UCUM Codes (required)
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored if unrecognized
... path Σ1..1stringPath of the element in the hierarchy of elements
... sliceName Σ0..1stringName for this particular element (in a set of slices)
... sliceIsConstraining Σ0..1booleanIf this slice definition constrains an inherited slice definition (or not)
... label Σ0..1stringName for element to display with or prompt for element
... code Σ0..*CodingCorresponding codes in terminologies
Binding: LOINC Codes (example)
... definition Σ0..1markdownFull formal definition as narrative text
... comment Σ0..1markdownComments about the use of this element
... requirements Σ0..1markdownWhy this resource has been created
... alias Σ0..*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..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... path Σ1..1stringPath that identifies the base element
.... min Σ1..1unsignedIntMin cardinality of the base element
.... max Σ1..1stringMax cardinality of the base element
... type ΣI0..*ElementData type and Profile for this element
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... code Σ1..1uriData type or Resource (reference to definition)
Binding: FHIRDefinedType (extensible)
.... targetProfile Σ0..*canonical(StructureDefinition | ImplementationGuide)Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply
.... versioning Σ0..1codeeither | independent | specific
Binding: ReferenceVersionRules (required)
... defaultValue[x] ΣI0..1base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ParameterDefinition, DataRequirement, RelatedArtifact, ContactDetail, Contributor, TriggerDefinition, Expression, UsageContext, DosageSpecified value if missing from instance
... meaningWhenMissing ΣI0..1markdownImplicit meaning when this element is missing
... orderMeaning Σ0..1stringWhat the order of the elements means
... example ΣI0..*ElementExample value (as defined for type)
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... label Σ1..1stringDescribes the purpose of this example
.... value[x] Σ1..1base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ParameterDefinition, DataRequirement, RelatedArtifact, ContactDetail, Contributor, TriggerDefinition, Expression, UsageContext, DosageValue of Example (one of allowed types)
... minValue[x] Σ0..1date, dateTime, instant, time, decimal, integer, positiveInt, unsignedInt, QuantityMinimum Allowed Value (for some types)
... maxValue[x] Σ0..1date, dateTime, instant, time, decimal, integer, positiveInt, unsignedInt, QuantityMaximum Allowed Value (for some types)
... maxLength Σ0..1integerMax length for strings
... condition Σ0..*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..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... key ΣI1..1idTarget of 'condition' reference above
.... requirements Σ0..1stringWhy this constraint is necessary or appropriate
.... severity Σ1..1codeerror | warning
Binding: ConstraintSeverity (required)
.... human Σ1..1stringHuman description of constraint
.... expression Σ0..1stringFHIRPath expression of constraint
.... xpath Σ0..1stringXPath expression of constraint
.... source Σ0..1canonical(StructureDefinition)Reference to original source of constraint
... mustSupport Σ0..1booleanIf the element must be supported
... isModifierReason Σ0..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..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... strength Σ1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required)
.... description Σ0..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..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... identity Σ1..1idReference to mapping declaration
.... language Σ0..1codeComputable language of mapping
Binding: MimeType (required)
.... map Σ1..1stringDetails of the mapping
.... comment Σ0..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 if unrecognized  --></modifierExtension>
 <path value="[string]"/><!-- 1..1 Path of the element in the hierarchy of elements -->
 <representation value="[code]"/><!-- 0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml -->
 <sliceName value="[string]"/><!-- 0..1 Name for this particular element (in a set of slices) -->
 <sliceIsConstraining value="[boolean]"/><!-- 0..1 
     If this slice definition constrains an inherited slice definition (or not) -->
 <label value="[string]"/><!-- 0..1 Name for element to display with or prompt for element -->
 <code><!-- 0..* Coding Corresponding codes in terminologies --></code>
 <slicing> ?? 0..0 Element  <!-- ?? 0..0 This element is sliced - slices follow -->
 </slicing>
 <short value="[string]"/><!-- 0..0 Concise definition for space-constrained presentation -->
 <definition value="[markdown]"/><!-- 0..1 Full formal definition as narrative text -->
 <comment value="[markdown]"/><!-- 0..1 Comments about the use of this element -->
 <requirements value="[markdown]"/><!-- 0..1 Why this resource has been created -->
 <alias value="[string]"/><!-- 0..* Other names -->
 <min value="[unsignedInt]"/><!-- 0..1 Minimum Cardinality -->
 <max value="[string]"/><!-- ?? 0..1 Maximum Cardinality (a number or *) -->
 <base> ?? 0..1 Element  <!-- ?? 0..1 Base definition information for tools -->
  <path value="[string]"/><!-- 1..1 Path that identifies the base element -->
  <min value="[unsignedInt]"/><!-- 1..1 Min cardinality of the base element -->
  <max value="[string]"/><!-- 1..1 Max cardinality of the base element -->
 </base>
 <contentReference value="[uri]"/><!-- 0..0 Reference to definition of content for the element -->
 <type> ?? 0..* Element  <!-- ?? 0..* Data type and Profile for this element -->
  <code value="[uri]"/><!-- 1..1 Data type or Resource (reference to definition) -->
  <profile value="[canonical]"/><!-- 0..0 Profiles (StructureDefinition or IG) - one must apply -->
  <targetProfile value="[canonical]"/><!-- 0..* 
      Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply -->
  <aggregation value="[code]"/><!-- 0..0 contained | referenced | bundled - how aggregated -->
  <versioning value="[code]"/><!-- 0..1 either | independent | specific -->
 </type>
 <defaultValue[x]><!-- 0..1 base64Binary|boolean|canonical|
   code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|
   time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
   CodeableConcept|Coding|ContactPoint|Count|Distance|Duration|HumanName|
   Identifier|Money|Period|Quantity|Range|Ratio|Reference|SampledData|Signature|
   Timing|ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail|
   Contributor|TriggerDefinition|Expression|UsageContext|Dosage 
     Specified value if missing from instance --></defaultValue[x]>
 <meaningWhenMissing value="[markdown]"/><!-- 0..1 Implicit meaning when this element is missing -->
 <orderMeaning value="[string]"/><!-- 0..1 What the order of the elements means -->
 <fixed[x]><!-- 0..0 base64Binary|boolean|canonical|code|date|
   dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time|
   unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|
   Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|
   Quantity|Range|Ratio|Reference|SampledData|Signature|Timing|
   ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail|Contributor|
   TriggerDefinition|Expression|UsageContext|Dosage 
     Value must be exactly this --></fixed[x]>
 <pattern[x]><!-- 0..0 base64Binary|boolean|canonical|code|
   date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time|
   unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|
   Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|
   Quantity|Range|Ratio|Reference|SampledData|Signature|Timing|
   ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail|Contributor|
   TriggerDefinition|Expression|UsageContext|Dosage 
     Value must have at least these property values --></pattern[x]>
 <example> ?? 0..* Element  <!-- ?? 0..* Example value (as defined for type) -->
  <label value="[string]"/><!-- 1..1 Describes the purpose of this example -->
  <value[x]><!-- 1..1 base64Binary|boolean|canonical|
    code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|
    string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
    CodeableConcept|Coding|ContactPoint|Count|Distance|Duration|HumanName|
    Identifier|Money|Period|Quantity|Range|Ratio|Reference|SampledData|Signature|
    Timing|ParameterDefinition|DataRequirement|RelatedArtifact|ContactDetail|
    Contributor|TriggerDefinition|Expression|UsageContext|Dosage 
      Value of Example (one of allowed types) --></value[x]>
 </example>
 <minValue[x]><!-- 0..1 date|dateTime|instant|time|decimal|
   integer|positiveInt|unsignedInt|Quantity 
     Minimum Allowed Value (for some types) --></minValue[x]>
 <maxValue[x]><!-- 0..1 date|dateTime|instant|time|decimal|
   integer|positiveInt|unsignedInt|Quantity 
     Maximum Allowed Value (for some types) --></maxValue[x]>
 <maxLength value="[integer]"/><!-- 0..1 Max length for strings -->
 <condition value="[id]"/><!-- 0..* Reference to invariant about presence -->
 <constraint> ?? 0..* Element  <!-- ?? 0..* Condition that must evaluate to true -->
  <key value="[id]"/><!-- 1..1 Target of 'condition' reference above -->
  <requirements value="[string]"/><!-- 0..1 Why this constraint is necessary or appropriate -->
  <severity value="[code]"/><!-- 1..1 error | warning -->
  <human value="[string]"/><!-- 1..1 Human description of constraint -->
  <expression value="[string]"/><!-- 0..1 FHIRPath expression of constraint -->
  <xpath value="[string]"/><!-- 0..1 XPath expression of constraint -->
  <source value="[canonical]"/><!-- 0..1 Reference to original source of constraint -->
 </constraint>
 <mustSupport value="[boolean]"/><!-- 0..1 If the element must be supported -->
 <isModifier value="[boolean]"/><!-- 0..0 If this modifies the meaning of other elements -->
 <isModifierReason value="[string]"/><!-- 0..1 Reason that this element is marked as a modifier -->
 <isSummary value="[boolean]"/><!-- 0..0 Include when _summary = true? -->
 <binding> ?? 0..1 Element  <!-- ?? 0..1 ValueSet details if this is coded -->
  <strength value="[code]"/><!-- 1..1 required | extensible | preferred | example -->
  <description value="[string]"/><!-- 0..1 Human explanation of the value set -->
  <valueSet value="[canonical]"/><!-- 0..1 Source of value set -->
 </binding>
 <mapping> ?? 0..* Element  <!-- ?? 0..* Map element to another set of definitions -->
  <identity value="[id]"/><!-- 1..1 Reference to mapping declaration -->
  <language value="[code]"/><!-- 0..1 Computable language of mapping -->
  <map value="[string]"/><!-- 1..1 Details of the mapping -->
  <comment value="[string]"/><!-- 0..1 Comments about the mapping or its use -->
 </mapping>
</ElementDefinition>

JSON Template

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

 

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

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:'))
.