FHIR CI-Build

This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions

StructureDefinition: elementdefinition-de

FHIR Infrastructure Work Group Maturity Level: 1Trial UseUse Context: Country: World

The canonical URL for this profile is:

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

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

This profile was published on Sat, Feb 28, 2015 00:00+0000 as a draft by HL7 International / Orders and Observations.

Formal Views of Profile Content

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

This structure is derived from ElementDefinition.

Summary

Prohibited: 10 elements

Extensions

This structure refers to these extensions:

This indicates the differences between this profile and the base ElementDefinition structure.

NameFlagsCard.TypeDescription & Constraintsdoco
.. ElementDefinition 0..*ElementDefinitionDefinition of an element in a resource or extension
... Question 0..*stringPrompt for element phrased as question
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question
... AllowedUnits 0..1CodeableConcept, canonical(ValueSet)Units to use for measured value
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits
Binding: UCUM Codes (required)
... representation 0..0
... short 0..0
... contentReference 0..0
... type 0..*ElementData type and Profile for this element
.... profile 0..0
.... aggregation 0..0
... defaultValue[x] 0..1base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, integer64, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, CodeableReference(), Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, RatioRange, Reference(), SampledData, Signature, Timing, ContactDetail, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Availability, ExtendedContactDetail, Dosage, MetaSpecified value if missing from instance
... meaningWhenMissing 0..1markdownImplicit meaning when this element is missing
... fixed[x] 0..0
... pattern[x] 0..0
... isModifier 0..0
... isSummary 0..0

doco Documentation for this format

This provides the consolidated view (aka snapshot) of the profile after applying the changes in this profile to the base ElementDefinition structure.

NameFlagsCard.TypeDescription & Constraintsdoco
.. ElementDefinition C0..*ElementDefinitionDefinition of an element in a resource or extension
eld-2: Min <= Max
eld-5: if the element definition has a contentReference, it cannot have type, defaultValue, fixed, pattern, example, minValue, maxValue, maxLength, or binding
eld-6: Fixed value may only be specified if there is one type
eld-7: Pattern may only be specified if there is one type
eld-8: Pattern and fixed are mutually exclusive
eld-11: Binding can only be present for coded elements, string, and uri if using FHIR-defined types
eld-13: Types must be unique by code
eld-14: Constraints must be unique by key
eld-15: default value and meaningWhenMissing are mutually exclusive
eld-16: sliceName must be composed of proper tokens separated by "/"
eld-18: Must have a modifier reason if isModifier = true
eld-19: Element path SHALL be expressed as a set of '.'-separated components with each component restricted to a maximum of 64 characters and with some limits on the allowed choice of characters
eld-20: The first component of the path should be UpperCamelCase. Additional components (following a '.') should be lowerCamelCase. If this syntax is not adhered to, code generation tools may be broken. Logical models may be less concerned about this implication.
eld-22: sliceIsConstraining can only appear if slicename is present
eld-24: pattern[x] should be used rather than fixed[x]
eld-25: Order has no meaning (and cannot be asserted to have meaning), so enforcing rules on order is improper
eld-27: Mappings SHOULD be unique by key
eld-28: Can't have valueAlternatives if mustHaveValue is true
... id 0..1idUnique id for inter-element referencing
... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... Question 0..*stringPrompt for element phrased as question
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question
... AllowedUnits 0..1CodeableConcept, canonical(ValueSet)Units to use for measured value
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits
Binding: UCUM Codes (required)
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
... path ΣC1..1stringPath of the element in the hierarchy of elements
... sliceName ΣC0..1stringName for this particular element (in a set of slices)
... sliceIsConstraining ΣC0..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: Codes that indicate the meaning of a data element. (example): Codes that indicate the meaning of a data element.


... 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 ΣC0..1unsignedIntMinimum Cardinality
... max ΣC0..1stringMaximum Cardinality (a number or *)
eld-3: Max SHALL be a number or "*"
... base Σ0..1ElementBase definition information for tools
.... id 0..1stringUnique id for inter-element referencing
.... 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 ΣC0..*ElementData type and Profile for this element
eld-4: Aggregation may only be specified if one of the allowed types for the element is a reference
eld-17: targetProfile is only allowed if the type is Reference or canonical
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... code ΣC1..1uriData type or Resource (reference to definition)
Binding: Element Definition Types (extensible): List of all Types for ElementDefinition.type.code.

.... targetProfile ΣC0..*canonical(StructureDefinition | ImplementationGuide)Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply
.... versioning Σ0..1codeeither | independent | specific
Binding: ReferenceVersionRules (required): Whether a reference needs to be version specific or version independent, or whether either can be used.

... defaultValue[x] ΣC0..1Specified value if missing from instance
.... defaultValueBase64Binarybase64Binary
.... defaultValueBooleanboolean
.... defaultValueCanonicalcanonical(Any)
.... defaultValueCodecode
.... defaultValueDatedate
.... defaultValueDateTimedateTime
.... defaultValueDecimaldecimal
.... defaultValueIdid
.... defaultValueInstantinstant
.... defaultValueIntegerinteger
.... defaultValueInteger64integer64
.... defaultValueMarkdownmarkdown
.... defaultValueOidoid
.... defaultValuePositiveIntpositiveInt
.... defaultValueStringstring
.... defaultValueTimetime
.... defaultValueUnsignedIntunsignedInt
.... defaultValueUriuri
.... defaultValueUrlurl
.... defaultValueUuiduuid
.... defaultValueAddressAddress
.... defaultValueAgeAge
.... defaultValueAnnotationAnnotation
.... defaultValueAttachmentAttachment
.... defaultValueCodeableConceptCodeableConcept
.... defaultValueCodeableReferenceCodeableReference
.... defaultValueCodingCoding
.... defaultValueContactPointContactPoint
.... defaultValueCountCount
.... defaultValueDistanceDistance
.... defaultValueDurationDuration
.... defaultValueHumanNameHumanName
.... defaultValueIdentifierIdentifier
.... defaultValueMoneyMoney
.... defaultValuePeriodPeriod
.... defaultValueQuantityQuantity
.... defaultValueRangeRange
.... defaultValueRatioRatio
.... defaultValueRatioRangeRatioRange
.... defaultValueReferenceReference(Any)
.... defaultValueSampledDataSampledData
.... defaultValueSignatureSignature
.... defaultValueTimingTiming
.... defaultValueContactDetailContactDetail
.... defaultValueDataRequirementDataRequirement
.... defaultValueExpressionExpression
.... defaultValueParameterDefinitionParameterDefinition
.... defaultValueRelatedArtifactRelatedArtifact
.... defaultValueTriggerDefinitionTriggerDefinition
.... defaultValueUsageContextUsageContext
.... defaultValueAvailabilityAvailability
.... defaultValueExtendedContactDetailExtendedContactDetail
.... defaultValueDosageDosage
.... defaultValueMetaMeta
... meaningWhenMissing ΣC0..1markdownImplicit meaning when this element is missing
... orderMeaning ΣC0..1stringWhat the order of the elements means
... example ΣC0..*ElementExample value (as defined for type)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... label Σ1..1stringDescribes the purpose of this example
.... value[x] Σ1..1Value of Example (one of allowed types)
..... valueBase64Binarybase64Binary
..... valueBooleanboolean
..... valueCanonicalcanonical(Any)
..... valueCodecode
..... valueDatedate
..... valueDateTimedateTime
..... valueDecimaldecimal
..... valueIdid
..... valueInstantinstant
..... valueIntegerinteger
..... valueInteger64integer64
..... valueMarkdownmarkdown
..... valueOidoid
..... valuePositiveIntpositiveInt
..... valueStringstring
..... valueTimetime
..... valueUnsignedIntunsignedInt
..... valueUriuri
..... valueUrlurl
..... valueUuiduuid
..... valueAddressAddress
..... valueAgeAge
..... valueAnnotationAnnotation
..... valueAttachmentAttachment
..... valueCodeableConceptCodeableConcept
..... valueCodeableReferenceCodeableReference
..... valueCodingCoding
..... valueContactPointContactPoint
..... valueCountCount
..... valueDistanceDistance
..... valueDurationDuration
..... valueHumanNameHumanName
..... valueIdentifierIdentifier
..... valueMoneyMoney
..... valuePeriodPeriod
..... valueQuantityQuantity
..... valueRangeRange
..... valueRatioRatio
..... valueRatioRangeRatioRange
..... valueReferenceReference(Any)
..... valueSampledDataSampledData
..... valueSignatureSignature
..... valueTimingTiming
..... valueContactDetailContactDetail
..... valueDataRequirementDataRequirement
..... valueExpressionExpression
..... valueParameterDefinitionParameterDefinition
..... valueRelatedArtifactRelatedArtifact
..... valueTriggerDefinitionTriggerDefinition
..... valueUsageContextUsageContext
..... valueAvailabilityAvailability
..... valueExtendedContactDetailExtendedContactDetail
..... valueDosageDosage
..... valueMetaMeta
... minValue[x] ΣC0..1Minimum Allowed Value (for some types)
.... minValueDatedate
.... minValueDateTimedateTime
.... minValueInstantinstant
.... minValueTimetime
.... minValueDecimaldecimal
.... minValueIntegerinteger
.... minValueInteger64integer64
.... minValuePositiveIntpositiveInt
.... minValueUnsignedIntunsignedInt
.... minValueQuantityQuantity
... maxValue[x] ΣC0..1Maximum Allowed Value (for some types)
.... maxValueDatedate
.... maxValueDateTimedateTime
.... maxValueInstantinstant
.... maxValueTimetime
.... maxValueDecimaldecimal
.... maxValueIntegerinteger
.... maxValueInteger64integer64
.... maxValuePositiveIntpositiveInt
.... maxValueUnsignedIntunsignedInt
.... maxValueQuantityQuantity
... maxLength ΣC0..1integerMax length for string type data
... condition Σ0..*idReference to invariant about presence
... constraint ΣC0..*ElementCondition that must evaluate to true
eld-21: Constraints should have an expression or else validators will not be able to enforce them
eld-26: Errors cannot be suppressed
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... key ΣC1..1idTarget of 'condition' reference above
.... requirements Σ0..1markdownWhy this constraint is necessary or appropriate
.... severity ΣC1..1codeerror | warning
Binding: ConstraintSeverity (required): SHALL applications comply with this constraint?

.... suppress ΣC0..1booleanSuppress warning or hint in profile
.... human Σ1..1stringHuman description of constraint
.... expression ΣC0..1stringFHIRPath expression of constraint
.... source Σ0..1canonical(StructureDefinition)Reference to original source of constraint
... mustHaveValue ΣC0..1booleanFor primitives, that a value must be present - not replaced by an extension
... valueAlternatives ΣC0..*canonical(StructureDefinition)Extensions that are allowed to replace a primitive value
... mustSupport Σ0..1booleanIf the element must be supported (discouraged - see obligations)
... isModifierReason ΣC0..1stringReason that this element is marked as a modifier
... binding ΣC0..1ElementValueSet details if this is coded
eld-12: ValueSet SHALL start with http:// or https:// or urn: or #
eld-23: binding SHALL have either description or valueSet
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... strength Σ1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

.... description ΣC0..1markdownIntended use of codes in the bound value set
.... valueSet ΣC0..1canonical(ValueSet)Source of value set
.... additional Σ0..*ElementAdditional Bindings - more rules about the binding
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... purpose Σ1..1codemaximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component
Binding: Additional Binding Purpose ValueSet (required): The use of an additional binding.

..... valueSet Σ1..1canonical(ValueSet)The value set for the additional binding
..... documentation Σ0..1markdownDocumentation of the purpose of use of the binding
..... shortDoco Σ0..1stringConcise documentation - for summary tables
..... usage Σ0..*UsageContextQualifies the usage - jurisdiction, gender, workflow status etc.
..... any Σ0..1booleanWhether binding can applies to all repeats, or just one
... mapping ΣC0..*ElementMap element to another set of definitions
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... identity ΣC1..1idReference to mapping declaration
.... language Σ0..1codeComputable language of mapping
Binding: Mime Types (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)

.... map Σ1..1stringDetails of the mapping
.... comment Σ0..1markdownComments 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><!-- I 0..* Extension  Extensions that cannot be ignored even if unrecognized  --></modifierExtension>
 <path value="[string]"/><!-- I 1..1 Path of the element in the hierarchy of elements -->
 <representation value="[code]"/><!-- I 0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml -->
 <sliceName value="[string]"/><!-- I 0..1 Name for this particular element (in a set of slices) -->
 <sliceIsConstraining value="[boolean]"/><!-- I 0..1 
     If this slice definition constrains an inherited slice definition (or not) -->
 <label value="[string]"/><!-- I 0..1 Name for element to display with or prompt for element -->
 <code><!-- I 0..* Coding Corresponding codes in terminologies --></code>
 <slicing> I 0..0 Element  <!-- I 0..0 This element is sliced - slices follow -->
 </slicing>
 <short value="[string]"/><!-- I 0..0 Concise definition for space-constrained presentation -->
 <definition value="[markdown]"/><!-- I 0..1 Full formal definition as narrative text -->
 <comment value="[markdown]"/><!-- I 0..1 Comments about the use of this element -->
 <requirements value="[markdown]"/><!-- I 0..1 Why this resource has been created -->
 <alias value="[string]"/><!-- I 0..* Other names -->
 <min value="[unsignedInt]"/><!-- I 0..1 Minimum Cardinality -->
 <max value="[string]"/><!-- I 0..1 Maximum Cardinality (a number or *) -->
 <base> I 0..1 Element  <!-- I 0..1 Base definition information for tools -->
  <path value="[string]"/><!-- I 1..1 Path that identifies the base element -->
  <min value="[unsignedInt]"/><!-- I 1..1 Min cardinality of the base element -->
  <max value="[string]"/><!-- I 1..1 Max cardinality of the base element -->
 </base>
 <contentReference value="[uri]"/><!-- I 0..0 Reference to definition of content for the element -->
 <type> I 0..* Element  <!-- I 0..* Data type and Profile for this element -->
  <code value="[uri]"/><!-- I 1..1 Data type or Resource (reference to definition) -->
  <profile value="[canonical]"/><!-- I 0..0 Profiles (StructureDefinition or IG) - one must apply -->
  <targetProfile value="[canonical]"/><!-- I 0..* 
      Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply -->
  <aggregation value="[code]"/><!-- I 0..0 contained | referenced | bundled - how aggregated -->
  <versioning value="[code]"/><!-- I 0..1 either | independent | specific -->
 </type>
 <defaultValue[x]><!-- I 0..1 base64Binary|boolean|canonical|
   code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|
   positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|
   Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count|
   Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|
   RatioRange|Reference|SampledData|Signature|Timing|ContactDetail|
   DataRequirement|Expression|ParameterDefinition|RelatedArtifact|
   TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta 
     Specified value if missing from instance --></defaultValue[x]>
 <meaningWhenMissing value="[markdown]"/><!-- I 0..1 Implicit meaning when this element is missing -->
 <orderMeaning value="[string]"/><!-- I 0..1 What the order of the elements means -->
 <fixed[x]><!-- I 0..0 base64Binary|boolean|canonical|code|date|
   dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string|
   time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
   CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration|
   HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|
   SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression|
   ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|
   Availability|ExtendedContactDetail|Dosage|Meta 
     Value must be exactly this --></fixed[x]>
 <pattern[x]><!-- I 0..0 base64Binary|boolean|canonical|code|
   date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|
   string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
   CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration|
   HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|
   SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression|
   ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|
   Availability|ExtendedContactDetail|Dosage|Meta 
     Value must have at least these property values --></pattern[x]>
 <example> I 0..* Element  <!-- I 0..* Example value (as defined for type) -->
  <label value="[string]"/><!-- I 1..1 Describes the purpose of this example -->
  <value[x]><!-- I 1..1 base64Binary|boolean|canonical|
    code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|
    positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|
    Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count|
    Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|
    RatioRange|Reference|SampledData|Signature|Timing|ContactDetail|
    DataRequirement|Expression|ParameterDefinition|RelatedArtifact|
    TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|
    Meta Value of Example (one of allowed types) --></value[x]>
 </example>
 <minValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal|
   integer|integer64|positiveInt|unsignedInt|Quantity 
     Minimum Allowed Value (for some types) --></minValue[x]>
 <maxValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal|
   integer|integer64|positiveInt|unsignedInt|Quantity 
     Maximum Allowed Value (for some types) --></maxValue[x]>
 <maxLength value="[integer]"/><!-- I 0..1 Max length for string type data -->
 <condition value="[id]"/><!-- I 0..* Reference to invariant about presence -->
 <constraint> I 0..* Element  <!-- I 0..* Condition that must evaluate to true -->
  <key value="[id]"/><!-- I 1..1 Target of 'condition' reference above -->
  <requirements value="[markdown]"/><!-- I 0..1 Why this constraint is necessary or appropriate -->
  <severity value="[code]"/><!-- I 1..1 error | warning -->
  <suppress value="[boolean]"/><!-- I 0..1 Suppress warning or hint in profile -->
  <human value="[string]"/><!-- I 1..1 Human description of constraint -->
  <expression value="[string]"/><!-- I 0..1 FHIRPath expression of constraint -->
  <source value="[canonical]"/><!-- I 0..1 Reference to original source of constraint -->
 </constraint>
 <mustHaveValue value="[boolean]"/><!-- I 0..1 
     For primitives, that a value must be present - not replaced by an extension -->
 <valueAlternatives value="[canonical]"/><!-- I 0..* Extensions that are allowed to replace a primitive value -->
 <mustSupport value="[boolean]"/><!-- I 0..1 If the element must be supported (discouraged - see obligations) -->
 <isModifier value="[boolean]"/><!-- I 0..0 If this modifies the meaning of other elements -->
 <isModifierReason value="[string]"/><!-- I 0..1 Reason that this element is marked as a modifier -->
 <isSummary value="[boolean]"/><!-- I 0..0 Include when _summary = true? -->
 <binding> I 0..1 Element  <!-- I 0..1 ValueSet details if this is coded -->
  <strength value="[code]"/><!-- I 1..1 required | extensible | preferred | example -->
  <description value="[markdown]"/><!-- I 0..1 Intended use of codes in the bound value set -->
  <valueSet value="[canonical]"/><!-- I 0..1 Source of value set -->
  <additional> I 0..* Element  <!-- I 0..* Additional Bindings - more rules about the binding -->
   <purpose value="[code]"/><!-- I 1..1 maximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component -->
   <valueSet value="[canonical]"/><!-- I 1..1 The value set for the additional binding -->
   <documentation value="[markdown]"/><!-- I 0..1 
       Documentation of the purpose of use of the binding -->
   <shortDoco value="[string]"/><!-- I 0..1 Concise documentation - for summary tables -->
   <usage><!-- I 0..* UsageContext 
       Qualifies the usage - jurisdiction, gender, workflow status etc. --></usage>
   <any value="[boolean]"/><!-- I 0..1 Whether binding can applies to all repeats, or just one -->
  </additional>
 </binding>
 <mapping> I 0..* Element  <!-- I 0..* Map element to another set of definitions -->
  <identity value="[id]"/><!-- I 1..1 Reference to mapping declaration -->
  <language value="[code]"/><!-- I 0..1 Computable language of mapping -->
  <map value="[string]"/><!-- I 1..1 Details of the mapping -->
  <comment value="[markdown]"/><!-- I 0..1 Comments about the mapping or its use -->
 </mapping>
</ElementDefinition>
{ // DataElement constraint on ElementDefinition data type
  // from Element: extension
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Prompt for element phrased as question // I
        // from Element: extension
      },
      { // Units to use for measured value // I
        // from Element: extension
      }
    ],
    "modifierExtension" : [{ Extension }], // IExtensions that cannot be ignored even if unrecognized
    "path" : "<string>", // I R! Path of the element in the hierarchy of elements
    "sliceName" : "<string>", // IName for this particular element (in a set of slices)
    "sliceIsConstraining" : <boolean>, // IIf this slice definition constrains an inherited slice definition (or not)
    "label" : "<string>", // IName for element to display with or prompt for element
    "code" : [{ Coding }], // ICorresponding codes in terminologies
    "definition" : "<markdown>", // IFull formal definition as narrative text
    "comment" : "<markdown>", // IComments about the use of this element
    "requirements" : "<markdown>", // IWhy this resource has been created
    "alias" : ["<string>"], // IOther names
    "min" : "<unsignedInt>", // IMinimum Cardinality
    "max" : "<string>", // IMaximum Cardinality (a number or *)
    "base" : { Element }, // IBase definition information for tools
    "type" : [{ Element }], // IData type and Profile for this element
  // value[x]: Specified value if missing from instance. One of these 54:
    "defaultValueBase64Binary" : "<base64Binary>", // ISpecified value if missing from instance
    "defaultValueBoolean" : <boolean>, // ISpecified value if missing from instance
    "defaultValueCanonical" : "<canonical>", // ISpecified value if missing from instance
    "defaultValueCode" : "<code>", // ISpecified value if missing from instance
    "defaultValueDate" : "<date>", // ISpecified value if missing from instance
    "defaultValueDateTime" : "<dateTime>", // ISpecified value if missing from instance
    "defaultValueDecimal" : <decimal>, // ISpecified value if missing from instance
    "defaultValueId" : "<id>", // ISpecified value if missing from instance
    "defaultValueInstant" : "<instant>", // ISpecified value if missing from instance
    "defaultValueInteger" : <integer>, // ISpecified value if missing from instance
    "defaultValueInteger64" : "<integer64>", // ISpecified value if missing from instance
    "defaultValueMarkdown" : "<markdown>", // ISpecified value if missing from instance
    "defaultValueOid" : "<oid>", // ISpecified value if missing from instance
    "defaultValuePositiveInt" : "<positiveInt>", // ISpecified value if missing from instance
    "defaultValueString" : "<string>", // ISpecified value if missing from instance
    "defaultValueTime" : "<time>", // ISpecified value if missing from instance
    "defaultValueUnsignedInt" : "<unsignedInt>", // ISpecified value if missing from instance
    "defaultValueUri" : "<uri>", // ISpecified value if missing from instance
    "defaultValueUrl" : "<url>", // ISpecified value if missing from instance
    "defaultValueUuid" : "<uuid>", // ISpecified value if missing from instance
    "defaultValueAddress" : { Address }, // ISpecified value if missing from instance
    "defaultValueAge" : { Age }, // ISpecified value if missing from instance
    "defaultValueAnnotation" : { Annotation }, // ISpecified value if missing from instance
    "defaultValueAttachment" : { Attachment }, // ISpecified value if missing from instance
    "defaultValueCodeableConcept" : { CodeableConcept }, // ISpecified value if missing from instance
    "defaultValueCodeableReference" : { CodeableReference }, // ISpecified value if missing from instance
    "defaultValueCoding" : { Coding }, // ISpecified value if missing from instance
    "defaultValueContactPoint" : { ContactPoint }, // ISpecified value if missing from instance
    "defaultValueCount" : { Count }, // ISpecified value if missing from instance
    "defaultValueDistance" : { Distance }, // ISpecified value if missing from instance
    "defaultValueDuration" : { Duration }, // ISpecified value if missing from instance
    "defaultValueHumanName" : { HumanName }, // ISpecified value if missing from instance
    "defaultValueIdentifier" : { Identifier }, // ISpecified value if missing from instance
    "defaultValueMoney" : { Money }, // ISpecified value if missing from instance
    "defaultValuePeriod" : { Period }, // ISpecified value if missing from instance
    "defaultValueQuantity" : { Quantity }, // ISpecified value if missing from instance
    "defaultValueRange" : { Range }, // ISpecified value if missing from instance
    "defaultValueRatio" : { Ratio }, // ISpecified value if missing from instance
    "defaultValueRatioRange" : { RatioRange }, // ISpecified value if missing from instance
    "defaultValueReference" : { Reference }, // ISpecified value if missing from instance
    "defaultValueSampledData" : { SampledData }, // ISpecified value if missing from instance
    "defaultValueSignature" : { Signature }, // ISpecified value if missing from instance
    "defaultValueTiming" : { Timing }, // ISpecified value if missing from instance
    "defaultValueContactDetail" : { ContactDetail }, // ISpecified value if missing from instance
    "defaultValueDataRequirement" : { DataRequirement }, // ISpecified value if missing from instance
    "defaultValueExpression" : { Expression }, // ISpecified value if missing from instance
    "defaultValueParameterDefinition" : { ParameterDefinition }, // ISpecified value if missing from instance
    "defaultValueRelatedArtifact" : { RelatedArtifact }, // ISpecified value if missing from instance
    "defaultValueTriggerDefinition" : { TriggerDefinition }, // ISpecified value if missing from instance
    "defaultValueUsageContext" : { UsageContext }, // ISpecified value if missing from instance
    "defaultValueAvailability" : { Availability }, // ISpecified value if missing from instance
    "defaultValueExtendedContactDetail" : { ExtendedContactDetail }, // ISpecified value if missing from instance
    "defaultValueDosage" : { Dosage }, // ISpecified value if missing from instance
    "defaultValueMeta" : { Meta }, // ISpecified value if missing from instance
    "meaningWhenMissing" : "<markdown>", // IImplicit meaning when this element is missing
    "orderMeaning" : "<string>", // IWhat the order of the elements means
  // value[x]: Value must be exactly this. One of these 54:
  // value[x]: Value must have at least these property values. One of these 54:
    "example" : [{ Element }], // IExample value (as defined for type)
  // value[x]: Minimum Allowed Value (for some types). One of these 10:
    "minValueDate" : "<date>", // IMinimum Allowed Value (for some types)
    "minValueDateTime" : "<dateTime>", // IMinimum Allowed Value (for some types)
    "minValueInstant" : "<instant>", // IMinimum Allowed Value (for some types)
    "minValueTime" : "<time>", // IMinimum Allowed Value (for some types)
    "minValueDecimal" : <decimal>, // IMinimum Allowed Value (for some types)
    "minValueInteger" : <integer>, // IMinimum Allowed Value (for some types)
    "minValueInteger64" : "<integer64>", // IMinimum Allowed Value (for some types)
    "minValuePositiveInt" : "<positiveInt>", // IMinimum Allowed Value (for some types)
    "minValueUnsignedInt" : "<unsignedInt>", // IMinimum Allowed Value (for some types)
    "minValueQuantity" : { Quantity }, // IMinimum Allowed Value (for some types)
  // value[x]: Maximum Allowed Value (for some types). One of these 10:
    "maxValueDate" : "<date>", // IMaximum Allowed Value (for some types)
    "maxValueDateTime" : "<dateTime>", // IMaximum Allowed Value (for some types)
    "maxValueInstant" : "<instant>", // IMaximum Allowed Value (for some types)
    "maxValueTime" : "<time>", // IMaximum Allowed Value (for some types)
    "maxValueDecimal" : <decimal>, // IMaximum Allowed Value (for some types)
    "maxValueInteger" : <integer>, // IMaximum Allowed Value (for some types)
    "maxValueInteger64" : "<integer64>", // IMaximum Allowed Value (for some types)
    "maxValuePositiveInt" : "<positiveInt>", // IMaximum Allowed Value (for some types)
    "maxValueUnsignedInt" : "<unsignedInt>", // IMaximum Allowed Value (for some types)
    "maxValueQuantity" : { Quantity }, // IMaximum Allowed Value (for some types)
    "maxLength" : <integer>, // IMax length for string type data
    "condition" : ["<id>"], // IReference to invariant about presence
    "constraint" : [{ Element }], // ICondition that must evaluate to true
    "mustHaveValue" : <boolean>, // IFor primitives, that a value must be present - not replaced by an extension
    "valueAlternatives" : ["<canonical>"], // IExtensions that are allowed to replace a primitive value
    "mustSupport" : <boolean>, // IIf the element must be supported (discouraged - see obligations)
    "isModifierReason" : "<string>", // IReason that this element is marked as a modifier
    "binding" : { Element }, // IValueSet details if this is coded
    "mapping" : [{ Element }], // IMap element to another set of definitions
  }

This structure is derived from ElementDefinition.

Differential View

This indicates the differences between this profile and the base ElementDefinition structure.

NameFlagsCard.TypeDescription & Constraintsdoco
.. ElementDefinition 0..*ElementDefinitionDefinition of an element in a resource or extension
... Question 0..*stringPrompt for element phrased as question
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question
... AllowedUnits 0..1CodeableConcept, canonical(ValueSet)Units to use for measured value
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits
Binding: UCUM Codes (required)
... representation 0..0
... short 0..0
... contentReference 0..0
... type 0..*ElementData type and Profile for this element
.... profile 0..0
.... aggregation 0..0
... defaultValue[x] 0..1base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, integer64, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, CodeableReference(), Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, RatioRange, Reference(), SampledData, Signature, Timing, ContactDetail, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Availability, ExtendedContactDetail, Dosage, MetaSpecified value if missing from instance
... meaningWhenMissing 0..1markdownImplicit meaning when this element is missing
... fixed[x] 0..0
... pattern[x] 0..0
... isModifier 0..0
... isSummary 0..0

doco Documentation for this format

Snapshot View

This provides the consolidated view (aka snapshot) of the profile after applying the changes in this profile to the base ElementDefinition structure.

NameFlagsCard.TypeDescription & Constraintsdoco
.. ElementDefinition C0..*ElementDefinitionDefinition of an element in a resource or extension
eld-2: Min <= Max
eld-5: if the element definition has a contentReference, it cannot have type, defaultValue, fixed, pattern, example, minValue, maxValue, maxLength, or binding
eld-6: Fixed value may only be specified if there is one type
eld-7: Pattern may only be specified if there is one type
eld-8: Pattern and fixed are mutually exclusive
eld-11: Binding can only be present for coded elements, string, and uri if using FHIR-defined types
eld-13: Types must be unique by code
eld-14: Constraints must be unique by key
eld-15: default value and meaningWhenMissing are mutually exclusive
eld-16: sliceName must be composed of proper tokens separated by "/"
eld-18: Must have a modifier reason if isModifier = true
eld-19: Element path SHALL be expressed as a set of '.'-separated components with each component restricted to a maximum of 64 characters and with some limits on the allowed choice of characters
eld-20: The first component of the path should be UpperCamelCase. Additional components (following a '.') should be lowerCamelCase. If this syntax is not adhered to, code generation tools may be broken. Logical models may be less concerned about this implication.
eld-22: sliceIsConstraining can only appear if slicename is present
eld-24: pattern[x] should be used rather than fixed[x]
eld-25: Order has no meaning (and cannot be asserted to have meaning), so enforcing rules on order is improper
eld-27: Mappings SHOULD be unique by key
eld-28: Can't have valueAlternatives if mustHaveValue is true
... id 0..1idUnique id for inter-element referencing
... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... Question 0..*stringPrompt for element phrased as question
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question
... AllowedUnits 0..1CodeableConcept, canonical(ValueSet)Units to use for measured value
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits
Binding: UCUM Codes (required)
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
... path ΣC1..1stringPath of the element in the hierarchy of elements
... sliceName ΣC0..1stringName for this particular element (in a set of slices)
... sliceIsConstraining ΣC0..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: Codes that indicate the meaning of a data element. (example): Codes that indicate the meaning of a data element.


... 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 ΣC0..1unsignedIntMinimum Cardinality
... max ΣC0..1stringMaximum Cardinality (a number or *)
eld-3: Max SHALL be a number or "*"
... base Σ0..1ElementBase definition information for tools
.... id 0..1stringUnique id for inter-element referencing
.... 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 ΣC0..*ElementData type and Profile for this element
eld-4: Aggregation may only be specified if one of the allowed types for the element is a reference
eld-17: targetProfile is only allowed if the type is Reference or canonical
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... code ΣC1..1uriData type or Resource (reference to definition)
Binding: Element Definition Types (extensible): List of all Types for ElementDefinition.type.code.

.... targetProfile ΣC0..*canonical(StructureDefinition | ImplementationGuide)Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply
.... versioning Σ0..1codeeither | independent | specific
Binding: ReferenceVersionRules (required): Whether a reference needs to be version specific or version independent, or whether either can be used.

... defaultValue[x] ΣC0..1Specified value if missing from instance
.... defaultValueBase64Binarybase64Binary
.... defaultValueBooleanboolean
.... defaultValueCanonicalcanonical(Any)
.... defaultValueCodecode
.... defaultValueDatedate
.... defaultValueDateTimedateTime
.... defaultValueDecimaldecimal
.... defaultValueIdid
.... defaultValueInstantinstant
.... defaultValueIntegerinteger
.... defaultValueInteger64integer64
.... defaultValueMarkdownmarkdown
.... defaultValueOidoid
.... defaultValuePositiveIntpositiveInt
.... defaultValueStringstring
.... defaultValueTimetime
.... defaultValueUnsignedIntunsignedInt
.... defaultValueUriuri
.... defaultValueUrlurl
.... defaultValueUuiduuid
.... defaultValueAddressAddress
.... defaultValueAgeAge
.... defaultValueAnnotationAnnotation
.... defaultValueAttachmentAttachment
.... defaultValueCodeableConceptCodeableConcept
.... defaultValueCodeableReferenceCodeableReference
.... defaultValueCodingCoding
.... defaultValueContactPointContactPoint
.... defaultValueCountCount
.... defaultValueDistanceDistance
.... defaultValueDurationDuration
.... defaultValueHumanNameHumanName
.... defaultValueIdentifierIdentifier
.... defaultValueMoneyMoney
.... defaultValuePeriodPeriod
.... defaultValueQuantityQuantity
.... defaultValueRangeRange
.... defaultValueRatioRatio
.... defaultValueRatioRangeRatioRange
.... defaultValueReferenceReference(Any)
.... defaultValueSampledDataSampledData
.... defaultValueSignatureSignature
.... defaultValueTimingTiming
.... defaultValueContactDetailContactDetail
.... defaultValueDataRequirementDataRequirement
.... defaultValueExpressionExpression
.... defaultValueParameterDefinitionParameterDefinition
.... defaultValueRelatedArtifactRelatedArtifact
.... defaultValueTriggerDefinitionTriggerDefinition
.... defaultValueUsageContextUsageContext
.... defaultValueAvailabilityAvailability
.... defaultValueExtendedContactDetailExtendedContactDetail
.... defaultValueDosageDosage
.... defaultValueMetaMeta
... meaningWhenMissing ΣC0..1markdownImplicit meaning when this element is missing
... orderMeaning ΣC0..1stringWhat the order of the elements means
... example ΣC0..*ElementExample value (as defined for type)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... label Σ1..1stringDescribes the purpose of this example
.... value[x] Σ1..1Value of Example (one of allowed types)
..... valueBase64Binarybase64Binary
..... valueBooleanboolean
..... valueCanonicalcanonical(Any)
..... valueCodecode
..... valueDatedate
..... valueDateTimedateTime
..... valueDecimaldecimal
..... valueIdid
..... valueInstantinstant
..... valueIntegerinteger
..... valueInteger64integer64
..... valueMarkdownmarkdown
..... valueOidoid
..... valuePositiveIntpositiveInt
..... valueStringstring
..... valueTimetime
..... valueUnsignedIntunsignedInt
..... valueUriuri
..... valueUrlurl
..... valueUuiduuid
..... valueAddressAddress
..... valueAgeAge
..... valueAnnotationAnnotation
..... valueAttachmentAttachment
..... valueCodeableConceptCodeableConcept
..... valueCodeableReferenceCodeableReference
..... valueCodingCoding
..... valueContactPointContactPoint
..... valueCountCount
..... valueDistanceDistance
..... valueDurationDuration
..... valueHumanNameHumanName
..... valueIdentifierIdentifier
..... valueMoneyMoney
..... valuePeriodPeriod
..... valueQuantityQuantity
..... valueRangeRange
..... valueRatioRatio
..... valueRatioRangeRatioRange
..... valueReferenceReference(Any)
..... valueSampledDataSampledData
..... valueSignatureSignature
..... valueTimingTiming
..... valueContactDetailContactDetail
..... valueDataRequirementDataRequirement
..... valueExpressionExpression
..... valueParameterDefinitionParameterDefinition
..... valueRelatedArtifactRelatedArtifact
..... valueTriggerDefinitionTriggerDefinition
..... valueUsageContextUsageContext
..... valueAvailabilityAvailability
..... valueExtendedContactDetailExtendedContactDetail
..... valueDosageDosage
..... valueMetaMeta
... minValue[x] ΣC0..1Minimum Allowed Value (for some types)
.... minValueDatedate
.... minValueDateTimedateTime
.... minValueInstantinstant
.... minValueTimetime
.... minValueDecimaldecimal
.... minValueIntegerinteger
.... minValueInteger64integer64
.... minValuePositiveIntpositiveInt
.... minValueUnsignedIntunsignedInt
.... minValueQuantityQuantity
... maxValue[x] ΣC0..1Maximum Allowed Value (for some types)
.... maxValueDatedate
.... maxValueDateTimedateTime
.... maxValueInstantinstant
.... maxValueTimetime
.... maxValueDecimaldecimal
.... maxValueIntegerinteger
.... maxValueInteger64integer64
.... maxValuePositiveIntpositiveInt
.... maxValueUnsignedIntunsignedInt
.... maxValueQuantityQuantity
... maxLength ΣC0..1integerMax length for string type data
... condition Σ0..*idReference to invariant about presence
... constraint ΣC0..*ElementCondition that must evaluate to true
eld-21: Constraints should have an expression or else validators will not be able to enforce them
eld-26: Errors cannot be suppressed
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... key ΣC1..1idTarget of 'condition' reference above
.... requirements Σ0..1markdownWhy this constraint is necessary or appropriate
.... severity ΣC1..1codeerror | warning
Binding: ConstraintSeverity (required): SHALL applications comply with this constraint?

.... suppress ΣC0..1booleanSuppress warning or hint in profile
.... human Σ1..1stringHuman description of constraint
.... expression ΣC0..1stringFHIRPath expression of constraint
.... source Σ0..1canonical(StructureDefinition)Reference to original source of constraint
... mustHaveValue ΣC0..1booleanFor primitives, that a value must be present - not replaced by an extension
... valueAlternatives ΣC0..*canonical(StructureDefinition)Extensions that are allowed to replace a primitive value
... mustSupport Σ0..1booleanIf the element must be supported (discouraged - see obligations)
... isModifierReason ΣC0..1stringReason that this element is marked as a modifier
... binding ΣC0..1ElementValueSet details if this is coded
eld-12: ValueSet SHALL start with http:// or https:// or urn: or #
eld-23: binding SHALL have either description or valueSet
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... strength Σ1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

.... description ΣC0..1markdownIntended use of codes in the bound value set
.... valueSet ΣC0..1canonical(ValueSet)Source of value set
.... additional Σ0..*ElementAdditional Bindings - more rules about the binding
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... purpose Σ1..1codemaximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component
Binding: Additional Binding Purpose ValueSet (required): The use of an additional binding.

..... valueSet Σ1..1canonical(ValueSet)The value set for the additional binding
..... documentation Σ0..1markdownDocumentation of the purpose of use of the binding
..... shortDoco Σ0..1stringConcise documentation - for summary tables
..... usage Σ0..*UsageContextQualifies the usage - jurisdiction, gender, workflow status etc.
..... any Σ0..1booleanWhether binding can applies to all repeats, or just one
... mapping ΣC0..*ElementMap element to another set of definitions
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... identity ΣC1..1idReference to mapping declaration
.... language Σ0..1codeComputable language of mapping
Binding: Mime Types (required): BCP 13 (RFCs 2045, 2046, 2047, 4288, 4289 and 2049)

.... map Σ1..1stringDetails of the mapping
.... comment Σ0..1markdownComments 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><!-- I 0..* Extension  Extensions that cannot be ignored even if unrecognized  --></modifierExtension>
 <path value="[string]"/><!-- I 1..1 Path of the element in the hierarchy of elements -->
 <representation value="[code]"/><!-- I 0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml -->
 <sliceName value="[string]"/><!-- I 0..1 Name for this particular element (in a set of slices) -->
 <sliceIsConstraining value="[boolean]"/><!-- I 0..1 
     If this slice definition constrains an inherited slice definition (or not) -->
 <label value="[string]"/><!-- I 0..1 Name for element to display with or prompt for element -->
 <code><!-- I 0..* Coding Corresponding codes in terminologies --></code>
 <slicing> I 0..0 Element  <!-- I 0..0 This element is sliced - slices follow -->
 </slicing>
 <short value="[string]"/><!-- I 0..0 Concise definition for space-constrained presentation -->
 <definition value="[markdown]"/><!-- I 0..1 Full formal definition as narrative text -->
 <comment value="[markdown]"/><!-- I 0..1 Comments about the use of this element -->
 <requirements value="[markdown]"/><!-- I 0..1 Why this resource has been created -->
 <alias value="[string]"/><!-- I 0..* Other names -->
 <min value="[unsignedInt]"/><!-- I 0..1 Minimum Cardinality -->
 <max value="[string]"/><!-- I 0..1 Maximum Cardinality (a number or *) -->
 <base> I 0..1 Element  <!-- I 0..1 Base definition information for tools -->
  <path value="[string]"/><!-- I 1..1 Path that identifies the base element -->
  <min value="[unsignedInt]"/><!-- I 1..1 Min cardinality of the base element -->
  <max value="[string]"/><!-- I 1..1 Max cardinality of the base element -->
 </base>
 <contentReference value="[uri]"/><!-- I 0..0 Reference to definition of content for the element -->
 <type> I 0..* Element  <!-- I 0..* Data type and Profile for this element -->
  <code value="[uri]"/><!-- I 1..1 Data type or Resource (reference to definition) -->
  <profile value="[canonical]"/><!-- I 0..0 Profiles (StructureDefinition or IG) - one must apply -->
  <targetProfile value="[canonical]"/><!-- I 0..* 
      Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply -->
  <aggregation value="[code]"/><!-- I 0..0 contained | referenced | bundled - how aggregated -->
  <versioning value="[code]"/><!-- I 0..1 either | independent | specific -->
 </type>
 <defaultValue[x]><!-- I 0..1 base64Binary|boolean|canonical|
   code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|
   positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|
   Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count|
   Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|
   RatioRange|Reference|SampledData|Signature|Timing|ContactDetail|
   DataRequirement|Expression|ParameterDefinition|RelatedArtifact|
   TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta 
     Specified value if missing from instance --></defaultValue[x]>
 <meaningWhenMissing value="[markdown]"/><!-- I 0..1 Implicit meaning when this element is missing -->
 <orderMeaning value="[string]"/><!-- I 0..1 What the order of the elements means -->
 <fixed[x]><!-- I 0..0 base64Binary|boolean|canonical|code|date|
   dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string|
   time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
   CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration|
   HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|
   SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression|
   ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|
   Availability|ExtendedContactDetail|Dosage|Meta 
     Value must be exactly this --></fixed[x]>
 <pattern[x]><!-- I 0..0 base64Binary|boolean|canonical|code|
   date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|
   string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
   CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration|
   HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|
   SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression|
   ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|
   Availability|ExtendedContactDetail|Dosage|Meta 
     Value must have at least these property values --></pattern[x]>
 <example> I 0..* Element  <!-- I 0..* Example value (as defined for type) -->
  <label value="[string]"/><!-- I 1..1 Describes the purpose of this example -->
  <value[x]><!-- I 1..1 base64Binary|boolean|canonical|
    code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|
    positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|
    Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count|
    Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|
    RatioRange|Reference|SampledData|Signature|Timing|ContactDetail|
    DataRequirement|Expression|ParameterDefinition|RelatedArtifact|
    TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|
    Meta Value of Example (one of allowed types) --></value[x]>
 </example>
 <minValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal|
   integer|integer64|positiveInt|unsignedInt|Quantity 
     Minimum Allowed Value (for some types) --></minValue[x]>
 <maxValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal|
   integer|integer64|positiveInt|unsignedInt|Quantity 
     Maximum Allowed Value (for some types) --></maxValue[x]>
 <maxLength value="[integer]"/><!-- I 0..1 Max length for string type data -->
 <condition value="[id]"/><!-- I 0..* Reference to invariant about presence -->
 <constraint> I 0..* Element  <!-- I 0..* Condition that must evaluate to true -->
  <key value="[id]"/><!-- I 1..1 Target of 'condition' reference above -->
  <requirements value="[markdown]"/><!-- I 0..1 Why this constraint is necessary or appropriate -->
  <severity value="[code]"/><!-- I 1..1 error | warning -->
  <suppress value="[boolean]"/><!-- I 0..1 Suppress warning or hint in profile -->
  <human value="[string]"/><!-- I 1..1 Human description of constraint -->
  <expression value="[string]"/><!-- I 0..1 FHIRPath expression of constraint -->
  <source value="[canonical]"/><!-- I 0..1 Reference to original source of constraint -->
 </constraint>
 <mustHaveValue value="[boolean]"/><!-- I 0..1 
     For primitives, that a value must be present - not replaced by an extension -->
 <valueAlternatives value="[canonical]"/><!-- I 0..* Extensions that are allowed to replace a primitive value -->
 <mustSupport value="[boolean]"/><!-- I 0..1 If the element must be supported (discouraged - see obligations) -->
 <isModifier value="[boolean]"/><!-- I 0..0 If this modifies the meaning of other elements -->
 <isModifierReason value="[string]"/><!-- I 0..1 Reason that this element is marked as a modifier -->
 <isSummary value="[boolean]"/><!-- I 0..0 Include when _summary = true? -->
 <binding> I 0..1 Element  <!-- I 0..1 ValueSet details if this is coded -->
  <strength value="[code]"/><!-- I 1..1 required | extensible | preferred | example -->
  <description value="[markdown]"/><!-- I 0..1 Intended use of codes in the bound value set -->
  <valueSet value="[canonical]"/><!-- I 0..1 Source of value set -->
  <additional> I 0..* Element  <!-- I 0..* Additional Bindings - more rules about the binding -->
   <purpose value="[code]"/><!-- I 1..1 maximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component -->
   <valueSet value="[canonical]"/><!-- I 1..1 The value set for the additional binding -->
   <documentation value="[markdown]"/><!-- I 0..1 
       Documentation of the purpose of use of the binding -->
   <shortDoco value="[string]"/><!-- I 0..1 Concise documentation - for summary tables -->
   <usage><!-- I 0..* UsageContext 
       Qualifies the usage - jurisdiction, gender, workflow status etc. --></usage>
   <any value="[boolean]"/><!-- I 0..1 Whether binding can applies to all repeats, or just one -->
  </additional>
 </binding>
 <mapping> I 0..* Element  <!-- I 0..* Map element to another set of definitions -->
  <identity value="[id]"/><!-- I 1..1 Reference to mapping declaration -->
  <language value="[code]"/><!-- I 0..1 Computable language of mapping -->
  <map value="[string]"/><!-- I 1..1 Details of the mapping -->
  <comment value="[markdown]"/><!-- I 0..1 Comments about the mapping or its use -->
 </mapping>
</ElementDefinition>

JSON Template

{ // DataElement constraint on ElementDefinition data type
  // from Element: extension
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // Prompt for element phrased as question // I
        // from Element: extension
      },
      { // Units to use for measured value // I
        // from Element: extension
      }
    ],
    "modifierExtension" : [{ Extension }], // IExtensions that cannot be ignored even if unrecognized
    "path" : "<string>", // I R! Path of the element in the hierarchy of elements
    "sliceName" : "<string>", // IName for this particular element (in a set of slices)
    "sliceIsConstraining" : <boolean>, // IIf this slice definition constrains an inherited slice definition (or not)
    "label" : "<string>", // IName for element to display with or prompt for element
    "code" : [{ Coding }], // ICorresponding codes in terminologies
    "definition" : "<markdown>", // IFull formal definition as narrative text
    "comment" : "<markdown>", // IComments about the use of this element
    "requirements" : "<markdown>", // IWhy this resource has been created
    "alias" : ["<string>"], // IOther names
    "min" : "<unsignedInt>", // IMinimum Cardinality
    "max" : "<string>", // IMaximum Cardinality (a number or *)
    "base" : { Element }, // IBase definition information for tools
    "type" : [{ Element }], // IData type and Profile for this element
  // value[x]: Specified value if missing from instance. One of these 54:
    "defaultValueBase64Binary" : "<base64Binary>", // ISpecified value if missing from instance
    "defaultValueBoolean" : <boolean>, // ISpecified value if missing from instance
    "defaultValueCanonical" : "<canonical>", // ISpecified value if missing from instance
    "defaultValueCode" : "<code>", // ISpecified value if missing from instance
    "defaultValueDate" : "<date>", // ISpecified value if missing from instance
    "defaultValueDateTime" : "<dateTime>", // ISpecified value if missing from instance
    "defaultValueDecimal" : <decimal>, // ISpecified value if missing from instance
    "defaultValueId" : "<id>", // ISpecified value if missing from instance
    "defaultValueInstant" : "<instant>", // ISpecified value if missing from instance
    "defaultValueInteger" : <integer>, // ISpecified value if missing from instance
    "defaultValueInteger64" : "<integer64>", // ISpecified value if missing from instance
    "defaultValueMarkdown" : "<markdown>", // ISpecified value if missing from instance
    "defaultValueOid" : "<oid>", // ISpecified value if missing from instance
    "defaultValuePositiveInt" : "<positiveInt>", // ISpecified value if missing from instance
    "defaultValueString" : "<string>", // ISpecified value if missing from instance
    "defaultValueTime" : "<time>", // ISpecified value if missing from instance
    "defaultValueUnsignedInt" : "<unsignedInt>", // ISpecified value if missing from instance
    "defaultValueUri" : "<uri>", // ISpecified value if missing from instance
    "defaultValueUrl" : "<url>", // ISpecified value if missing from instance
    "defaultValueUuid" : "<uuid>", // ISpecified value if missing from instance
    "defaultValueAddress" : { Address }, // ISpecified value if missing from instance
    "defaultValueAge" : { Age }, // ISpecified value if missing from instance
    "defaultValueAnnotation" : { Annotation }, // ISpecified value if missing from instance
    "defaultValueAttachment" : { Attachment }, // ISpecified value if missing from instance
    "defaultValueCodeableConcept" : { CodeableConcept }, // ISpecified value if missing from instance
    "defaultValueCodeableReference" : { CodeableReference }, // ISpecified value if missing from instance
    "defaultValueCoding" : { Coding }, // ISpecified value if missing from instance
    "defaultValueContactPoint" : { ContactPoint }, // ISpecified value if missing from instance
    "defaultValueCount" : { Count }, // ISpecified value if missing from instance
    "defaultValueDistance" : { Distance }, // ISpecified value if missing from instance
    "defaultValueDuration" : { Duration }, // ISpecified value if missing from instance
    "defaultValueHumanName" : { HumanName }, // ISpecified value if missing from instance
    "defaultValueIdentifier" : { Identifier }, // ISpecified value if missing from instance
    "defaultValueMoney" : { Money }, // ISpecified value if missing from instance
    "defaultValuePeriod" : { Period }, // ISpecified value if missing from instance
    "defaultValueQuantity" : { Quantity }, // ISpecified value if missing from instance
    "defaultValueRange" : { Range }, // ISpecified value if missing from instance
    "defaultValueRatio" : { Ratio }, // ISpecified value if missing from instance
    "defaultValueRatioRange" : { RatioRange }, // ISpecified value if missing from instance
    "defaultValueReference" : { Reference }, // ISpecified value if missing from instance
    "defaultValueSampledData" : { SampledData }, // ISpecified value if missing from instance
    "defaultValueSignature" : { Signature }, // ISpecified value if missing from instance
    "defaultValueTiming" : { Timing }, // ISpecified value if missing from instance
    "defaultValueContactDetail" : { ContactDetail }, // ISpecified value if missing from instance
    "defaultValueDataRequirement" : { DataRequirement }, // ISpecified value if missing from instance
    "defaultValueExpression" : { Expression }, // ISpecified value if missing from instance
    "defaultValueParameterDefinition" : { ParameterDefinition }, // ISpecified value if missing from instance
    "defaultValueRelatedArtifact" : { RelatedArtifact }, // ISpecified value if missing from instance
    "defaultValueTriggerDefinition" : { TriggerDefinition }, // ISpecified value if missing from instance
    "defaultValueUsageContext" : { UsageContext }, // ISpecified value if missing from instance
    "defaultValueAvailability" : { Availability }, // ISpecified value if missing from instance
    "defaultValueExtendedContactDetail" : { ExtendedContactDetail }, // ISpecified value if missing from instance
    "defaultValueDosage" : { Dosage }, // ISpecified value if missing from instance
    "defaultValueMeta" : { Meta }, // ISpecified value if missing from instance
    "meaningWhenMissing" : "<markdown>", // IImplicit meaning when this element is missing
    "orderMeaning" : "<string>", // IWhat the order of the elements means
  // value[x]: Value must be exactly this. One of these 54:
  // value[x]: Value must have at least these property values. One of these 54:
    "example" : [{ Element }], // IExample value (as defined for type)
  // value[x]: Minimum Allowed Value (for some types). One of these 10:
    "minValueDate" : "<date>", // IMinimum Allowed Value (for some types)
    "minValueDateTime" : "<dateTime>", // IMinimum Allowed Value (for some types)
    "minValueInstant" : "<instant>", // IMinimum Allowed Value (for some types)
    "minValueTime" : "<time>", // IMinimum Allowed Value (for some types)
    "minValueDecimal" : <decimal>, // IMinimum Allowed Value (for some types)
    "minValueInteger" : <integer>, // IMinimum Allowed Value (for some types)
    "minValueInteger64" : "<integer64>", // IMinimum Allowed Value (for some types)
    "minValuePositiveInt" : "<positiveInt>", // IMinimum Allowed Value (for some types)
    "minValueUnsignedInt" : "<unsignedInt>", // IMinimum Allowed Value (for some types)
    "minValueQuantity" : { Quantity }, // IMinimum Allowed Value (for some types)
  // value[x]: Maximum Allowed Value (for some types). One of these 10:
    "maxValueDate" : "<date>", // IMaximum Allowed Value (for some types)
    "maxValueDateTime" : "<dateTime>", // IMaximum Allowed Value (for some types)
    "maxValueInstant" : "<instant>", // IMaximum Allowed Value (for some types)
    "maxValueTime" : "<time>", // IMaximum Allowed Value (for some types)
    "maxValueDecimal" : <decimal>, // IMaximum Allowed Value (for some types)
    "maxValueInteger" : <integer>, // IMaximum Allowed Value (for some types)
    "maxValueInteger64" : "<integer64>", // IMaximum Allowed Value (for some types)
    "maxValuePositiveInt" : "<positiveInt>", // IMaximum Allowed Value (for some types)
    "maxValueUnsignedInt" : "<unsignedInt>", // IMaximum Allowed Value (for some types)
    "maxValueQuantity" : { Quantity }, // IMaximum Allowed Value (for some types)
    "maxLength" : <integer>, // IMax length for string type data
    "condition" : ["<id>"], // IReference to invariant about presence
    "constraint" : [{ Element }], // ICondition that must evaluate to true
    "mustHaveValue" : <boolean>, // IFor primitives, that a value must be present - not replaced by an extension
    "valueAlternatives" : ["<canonical>"], // IExtensions that are allowed to replace a primitive value
    "mustSupport" : <boolean>, // IIf the element must be supported (discouraged - see obligations)
    "isModifierReason" : "<string>", // IReason that this element is marked as a modifier
    "binding" : { Element }, // IValueSet details if this is coded
    "mapping" : [{ Element }], // IMap element to another set of definitions
  }

 

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

Terminology Bindings

PathNameConformanceValueSet
ElementDefinition.code?extexamplehttp://loinc.org/vs
ElementDefinition.slicing.discriminator.typeDiscriminatorTyperequiredDiscriminatorType
ElementDefinition.slicing.rulesSlicingRulesrequiredSlicingRules
ElementDefinition.type.codeElement Definition TypesextensibleElement Definition Types
ElementDefinition.type.versioningReferenceVersionRulesrequiredReferenceVersionRules
ElementDefinition.constraint.severityConstraintSeverityrequiredConstraintSeverity
ElementDefinition.binding.strengthBindingStrengthrequiredBindingStrength
ElementDefinition.binding.additional.purposeAdditional Binding Purpose ValueSetrequiredAdditional Binding Purpose ValueSet
ElementDefinition.mapping.languageMime TypesrequiredMime Types
. .