Name Flags Card. Type Description & Constraints doco
. . ElementDefinition Σ N Element Definition of an element in a resource or extension
+ Rule: Min <= Max
+ Rule: if the element definition has a contentReference, it cannot have type, defaultValue, fixed, pattern, example, minValue, maxValue, maxLength, or binding
+ Rule: Fixed value may only be specified if there is one type
+ Rule: Pattern may only be specified if there is one type
+ Rule: Pattern and fixed are mutually exclusive
+ Rule: Binding can only be present for coded elements, string, and uri if using FHIR-defined types
+ Rule: Types must be unique by code
+ Rule: Constraints must be unique by key
+ Rule: default value and meaningWhenMissing are mutually exclusive
+ Rule: sliceName must be composed of proper tokens separated by "/"
+ Rule: Must have a modifier reason if isModifier = true
+ Rule: 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
+ Warning: 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.
+ Rule: sliceIsConstraining can only appear if slicename is present
+ Guideline: pattern[x] should be used rather than fixed[x]
+ Warning: Order has no meaning (and cannot be asserted to have meaning), so enforcing rules on order is improper
+ Warning: Mappings SHOULD be unique by key
+ Rule: Can't have valueAlternatives if mustHaveValue is true

Elements defined in Ancestors: id, extension, modifierExtension
. . . path Σ C 1..1 string Path of the element in the hierarchy of elements
. . . representation Σ 0..* code xmlAttr | xmlText | typeAttr | cdaText | xhtml
Binding: PropertyRepresentation ( Required)

. . . sliceName Σ C 0..1 string Name for this particular element (in a set of slices)
. . . sliceIsConstraining Σ C TU 0..1 boolean If this slice definition constrains an inherited slice definition (or not)
. . . label Σ T 0..1 string Name for element to display with or prompt for element
. . . code Σ 0..* Coding Corresponding codes in terminologies
Binding: ElementDefinitionCode ( Example)

. . . slicing Σ C 0..1 Element This element is sliced - slices follow
. . . . discriminator Σ 0..* Element Element values that are used to distinguish the slices

. . . . . type Σ 1..1 code value | exists | type | profile | position
Binding: DiscriminatorType ( Required)
. . . . . path Σ 1..1 string Path to element value
. . . . description Σ T 0..1 string Text description of how slicing works (or not)
. . . . ordered Σ C 0..1 boolean If elements must be in same order as slices
. . . . rules Σ C 1..1 code closed | open | openAtEnd
Binding: SlicingRules ( Required)
. . . short Σ T 0..1 string Concise definition for space-constrained presentation
. . . definition Σ T 0..1 markdown Full formal definition as narrative text
. . . comment Σ T 0..1 markdown Comments about the use of this element
. . . requirements Σ T 0..1 markdown Why this resource has been created
. . . alias Σ T 0..* string Other names

. . . min Σ C 0..1 unsignedInt Minimum Cardinality
. . . max Σ C 0..1 string Maximum Cardinality (a number or *)
+ Rule: Max SHALL be a number or "*"
. . . base Σ 0..1 Element Base definition information for tools
. . . . path Σ 1..1 string Path that identifies the base element
. . . . min Σ 1..1 unsignedInt Min cardinality of the base element
. . . . max Σ 1..1 string Max cardinality of the base element
. . . contentReference Σ C 0..1 uri Reference to definition of content for the element
. . . type Σ C 0..* Element Data type and Profile for this element
+ Rule: Aggregation may only be specified if one of the allowed types for the element is a reference
+ Rule: targetProfile is only allowed if the type is Reference or canonical

. . . . code Σ C 1..1 uri Data type or Resource (reference to definition)
Binding: Element Definition Types ( Extensible)
. . . . profile Σ 0..* canonical( StructureDefinition | ImplementationGuide) Profiles (StructureDefinition or IG) - one must apply

. . . . targetProfile Σ C 0..* canonical( StructureDefinition | ImplementationGuide) Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply

. . . . aggregation Σ C 0..* code contained | referenced | bundled - how aggregated
Binding: AggregationMode ( Required)

. . . . versioning Σ 0..1 code either | independent | specific
Binding: ReferenceVersionRules ( Required)
. . . defaultValue[x] Σ C 0..1 * Specified value if missing from instance
. . . meaningWhenMissing Σ T C 0..1 markdown Implicit meaning when this element is missing
. . . orderMeaning Σ C 0..1 string What the order of the elements means
. . . fixed[x] Σ C 0..1 * Value must be exactly this
. . . pattern[x] Σ C 0..1 * Value must have at least these property values
. . . example Σ C 0..* Element Example value (as defined for type)

. . . . label Σ T 1..1 string Describes the purpose of this example
. . . . value[x] Σ 1..1 * Value of Example (one of allowed types)
. . . minValue[x] Σ C 0..1 Minimum Allowed Value (for some types)
. . . . minValueDate date
. . . . minValueDateTime dateTime
. . . . minValueInstant instant
. . . . minValueTime time
. . . . minValueDecimal decimal
. . . . minValueInteger integer
. . . . minValueInteger64 integer64
. . . . minValuePositiveInt positiveInt
. . . . minValueUnsignedInt unsignedInt
. . . . minValueQuantity Quantity
. . . maxValue[x] Σ C 0..1 Maximum Allowed Value (for some types)
. . . . maxValueDate date
. . . . maxValueDateTime dateTime
. . . . maxValueInstant instant
. . . . maxValueTime time
. . . . maxValueDecimal decimal
. . . . maxValueInteger integer
. . . . maxValueInteger64 integer64
. . . . maxValuePositiveInt positiveInt
. . . . maxValueUnsignedInt unsignedInt
. . . . maxValueQuantity Quantity
. . . maxLength Σ C 0..1 integer Max length for string type data
. . . condition Σ 0..* id Reference to invariant about presence

. . . constraint Σ C 0..* Element Condition that must evaluate to true
+ Warning: Constraints should have an expression or else validators will not be able to enforce them
+ Rule: Errors cannot be suppressed

. . . . key Σ C 1..1 id Target of 'condition' reference above
. . . . requirements Σ 0..1 markdown Why this constraint is necessary or appropriate
. . . . severity Σ C 1..1 code error | warning
Binding: ConstraintSeverity ( Required)
. . . . suppress Σ C TU 0..1 boolean Suppress warning or hint in profile
. . . . human Σ T 1..1 string Human description of constraint
. . . . expression Σ C 0..1 string FHIRPath expression of constraint
. . . . source Σ 0..1 canonical( StructureDefinition) Reference to original source of constraint
. . . mustHaveValue Σ C TU 0..1 boolean For primitives, that a value must be present - not replaced by an extension
. . . valueAlternatives Σ C TU 0..* canonical( StructureDefinition) Extensions that are allowed to replace a primitive value

. . . mustSupport Σ 0..1 boolean If the element must be supported (discouraged - see obligations)
. . . isModifier Σ C 0..1 boolean If this modifies the meaning of other elements
. . . isModifierReason Σ C 0..1 string Reason that this element is marked as a modifier
. . . isSummary Σ 0..1 boolean Include when _summary = true?
. . . binding Σ C 0..1 Element ValueSet details if this is coded
+ Rule: ValueSet SHALL start with http:// or https:// or urn: or #
+ Rule: binding SHALL have either description or valueSet
. . . . strength Σ 1..1 code required | extensible | preferred | example
Binding: BindingStrength ( Required)
. . . . description Σ T C 0..1 markdown Intended use of codes in the bound value set
. . . . valueSet Σ C 0..1 canonical( ValueSet) Source of value set
. . . . additional Σ TU 0..* Element Additional Bindings - more rules about the binding

. . . . . purpose Σ 1..1 code maximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component
Binding: Additional Binding Purpose ValueSet ( Required)
. . . . . valueSet Σ 1..1 canonical( ValueSet) The value set for the additional binding
. . . . . documentation Σ 0..1 markdown Documentation of the purpose of use of the binding
. . . . . shortDoco Σ 0..1 string Concise documentation - for summary tables
. . . . . usage Σ 0..* UsageContext Qualifies the usage - jurisdiction, gender, workflow status etc.

. . . . . any Σ 0..1 boolean Whether binding can applies to all repeats, or just one
. . . mapping Σ C 0..* Element Map element to another set of definitions

. . . . identity Σ C 1..1 id Reference to mapping declaration
. . . . language Σ 0..1 code Computable language of mapping
Binding: Mime Types ( Required)
. . . . map Σ 1..1 string Details of the mapping
. . . . comment Σ 0..1 markdown Comments about the mapping or its use

doco Documentation for this format