NameFlagsCard.TypeDescription & Constraintsdoco
.. ElementDefinitionNElementDefinition 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
... pathC1..1stringPath of the element in the hierarchy of elements
... representation0..*codexmlAttr | xmlText | typeAttr | cdaText | xhtml
Binding: PropertyRepresentation (Required)

... sliceNameC0..1stringName for this particular element (in a set of slices)
... sliceIsConstrainingCTU0..1booleanIf this slice definition constrains an inherited slice definition (or not)
... labelT0..1stringName for element to display with or prompt for element
... code0..*CodingCorresponding codes in terminologies
Binding: ElementDefinitionCode (Example)

... slicingC0..1ElementThis element is sliced - slices follow
.... discriminator0..*ElementElement values that are used to distinguish the slices

..... type1..1codevalue | exists | type | profile | position
Binding: DiscriminatorType (Required)
..... path1..1stringPath to element value
.... descriptionT0..1stringText description of how slicing works (or not)
.... orderedC0..1booleanIf elements must be in same order as slices
.... rulesC1..1codeclosed | open | openAtEnd
Binding: SlicingRules (Required)
... shortT0..1stringConcise definition for space-constrained presentation
... definitionT0..1markdownFull formal definition as narrative text
... commentT0..1markdownComments about the use of this element
... requirementsT0..1markdownWhy this resource has been created
... aliasT0..*stringOther names

... minC0..1unsignedIntMinimum Cardinality
... maxC0..1stringMaximum Cardinality (a number or *)
+ Rule: Max SHALL be a number or "*"
... base0..1ElementBase definition information for tools
.... path1..1stringPath that identifies the base element
.... min1..1unsignedIntMin cardinality of the base element
.... max1..1stringMax cardinality of the base element
... contentReferenceC0..1uriReference to definition of content for the element
... typeC0..*ElementData 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

.... codeC1..1uriData type or Resource (reference to definition)
Binding: Element Definition Types (Extensible)
.... profile0..*canonical(StructureDefinition | ImplementationGuide)Profiles (StructureDefinition or IG) - one must apply

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

.... aggregationC0..*codecontained | referenced | bundled - how aggregated
Binding: AggregationMode (Required)

.... versioning0..1codeeither | independent | specific
Binding: ReferenceVersionRules (Required)
... defaultValue[x]C0..1*Specified value if missing from instance
... meaningWhenMissingTC0..1markdownImplicit meaning when this element is missing
... orderMeaningC0..1stringWhat the order of the elements means
... fixed[x]C0..1*Value must be exactly this
... pattern[x]C0..1*Value must have at least these property values
... exampleC0..*ElementExample value (as defined for type)

.... labelT1..1stringDescribes the purpose of this example
.... value[x]1..1*Value of Example (one of allowed types)
... 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
... maxLengthC0..1integerMax length for string type data
... condition0..*idReference to invariant about presence

... constraintC0..*ElementCondition 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

.... keyC1..1idTarget of 'condition' reference above
.... requirements0..1markdownWhy this constraint is necessary or appropriate
.... severityC1..1codeerror | warning
Binding: ConstraintSeverity (Required)
.... suppressCTU0..1booleanSuppress warning or hint in profile
.... humanT1..1stringHuman description of constraint
.... expressionC0..1stringFHIRPath expression of constraint
.... source0..1canonical(StructureDefinition)Reference to original source of constraint
... mustHaveValueCTU0..1booleanFor primitives, that a value must be present - not replaced by an extension
... valueAlternativesCTU0..*canonical(StructureDefinition)Extensions that are allowed to replace a primitive value

... mustSupport0..1booleanIf the element must be supported (discouraged - see obligations)
... isModifierC0..1booleanIf this modifies the meaning of other elements
... isModifierReasonC0..1stringReason that this element is marked as a modifier
... isSummary0..1booleanInclude when _summary = true?
... bindingC0..1ElementValueSet details if this is coded
+ Rule: ValueSet SHALL start with http:// or https:// or urn: or #
+ Rule: binding SHALL have either description or valueSet
.... strength1..1coderequired | extensible | preferred | example
Binding: BindingStrength (Required)
.... descriptionTC0..1markdownIntended use of codes in the bound value set
.... valueSetC0..1canonical(ValueSet)Source of value set
.... additionalTU0..*ElementAdditional Bindings - more rules about the binding

..... purpose1..1codemaximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component
Binding: Additional Binding Purpose ValueSet (Required)
..... valueSet1..1canonical(ValueSet)The value set for the additional binding
..... documentation0..1markdownDocumentation of the purpose of use of the binding
..... shortDoco0..1stringConcise documentation - for summary tables
..... usage0..*UsageContextQualifies the usage - jurisdiction, gender, workflow status etc.

..... any0..1booleanWhether binding can applies to all repeats, or just one
... mappingC0..*ElementMap element to another set of definitions

.... identityC1..1idReference to mapping declaration
.... language0..1codeComputable language of mapping
Binding: Mime Types (Required)
.... map1..1stringDetails of the mapping
.... comment0..1markdownComments about the mapping or its use

doco Documentation for this format