Name Flags Card. Type Description & Constraints doco
. . StructureDefinition N DomainResource Structural Definition
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation
+ Rule: Element paths must be unique unless the structure is a constraint
+ Rule: If the first element in a differential has no "." in the path and it's not a logical model, it has no type
+ Rule: If the structure is not abstract, then there SHALL be a baseDefinition
+ Rule: If the structure defines an extension then the structure must have context information
+ Rule: A structure must have either a differential, or a snapshot (or both)
+ Rule: In any snapshot or differential, no label, code or requirements on an element without a "." in the path (e.g. the first element)
+ Rule: If there's a type, its content must match the path name in the first element of a snapshot
+ Rule: All element definitions must have an id
+ Rule: The first element in a snapshot has no type unless model is a logical model.
+ Rule: All element definitions must have unique ids (snapshot)
+ Rule: All element definitions must have unique ids (diff)
+ Rule: Context Invariants can only be used for extensions
+ Rule: FHIR Specification models only use FHIR defined types
+ Rule: Default values can only be specified on specializations
+ Rule: FHIR Specification models never have default values
+ Rule: No slice name on root
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
. . . url Σ 1..1 uri Canonical identifier for this structure definition, represented as a URI (globally unique)
. . . identifier Σ 0..* Identifier Additional identifier for the structure definition
. . . version Σ 0..1 string Business version of the structure definition
. . . name Σ 1..1 string Name for this structure definition (computer friendly)
. . . title Σ 0..1 string Name for this structure definition (human friendly)
. . . status ?! Σ 1..1 code draft | active | retired | unknown
PublicationStatus ( Required)
. . . experimental Σ 0..1 boolean For testing purposes, not real usage
. . . date Σ 0..1 dateTime Date last changed
. . . publisher Σ 0..1 string Name of the publisher (organization or individual)
. . . contact Σ 0..* ContactDetail Contact details for the publisher
. . . description 0..1 markdown Natural language description of the structure definition
. . . useContext Σ TU 0..* UsageContext The context that the content is intended to support
. . . jurisdiction Σ 0..* CodeableConcept Intended jurisdiction for structure definition (if applicable)
Jurisdiction ( Extensible)
. . . purpose 0..1 markdown Why this structure definition is defined
. . . copyright 0..1 markdown Use and/or publishing restrictions
. . . keyword Σ 0..* Coding Assist with indexing and finding
Structure Definition Use Codes / Keywords ( Extensible)
. . . fhirVersion Σ 0..1 code FHIR Version this StructureDefinition targets
FHIRVersion ( Required)
. . . mapping I 0..* BackboneElement External specification that the content is mapped to
+ Rule: Must have at least a name or a uri (or both)
. . . . identity 1..1 id Internal id when this mapping is used
. . . . uri I 0..1 uri Identifies what this mapping refers to
. . . . name I 0..1 string Names what this mapping refers to
. . . . comment 0..1 string Versions, Issues, Scope limitations etc.
. . . kind Σ 1..1 code primitive-type | complex-type | resource | logical
StructureDefinitionKind ( Required)
. . . abstract Σ 1..1 boolean Whether the structure is abstract
. . . context Σ I 0..* BackboneElement If an extension, where it can be used in instances
. . . . type Σ 1..1 code fhirpath | element | extension
ExtensionContextType ( Required)
. . . . expression Σ 1..1 string Where the extension can be used in instances
. . . contextInvariant Σ I 0..* string FHIRPath invariants - when the extension can be used
. . . type Σ I 1..1 uri Type defined or constrained by this structure
FHIRDefinedType ( Extensible)
. . . baseDefinition Σ I 0..1 canonical( StructureDefinition) Definition that this type is constrained/specialized from
. . . derivation Σ 0..1 code specialization | constraint - How relates to base definition
TypeDerivationRule ( Required)
. . . snapshot I 0..1 BackboneElement Snapshot view of the structure
+ Rule: Each element definition in a snapshot must have a formal definition and cardinalities
+ Rule: All snapshot elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models
+ Rule: For CodeableReference elements, target profiles must be listed on the CodeableReference, not the CodeableReference.reference
+ Rule: For CodeableReference elements, bindings must be listed on the CodeableReference, not the CodeableReference.concept
+ Rule: All snapshot elements must have a base definition
. . . . element I 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)
+ Rule: provide either a binding reference or a description (or both)
. . . differential I 0..1 BackboneElement Differential view of the structure
+ Rule: No slicing on the root element
+ Rule: In any differential, all the elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models
. . . . element 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)

doco Documentation for this format