NameFlagsCard.TypeDescription & Constraintsdoco
.. StructureDefinition NDomainResourceStructural 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 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: 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: If the first element in a differential has no "." in the path and it's not a logical model, it has no type
+ 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: 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
+ Rule: If there's a base definition, there must be a derivation
+ Warning: Elements in Resources must have a min cardinality or 0 or 1 and a max cardinality of 1 or *

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
Interfaces Implemented: CanonicalResource
... url ΣC1..1uriCanonical identifier for this structure definition, represented as a URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
... identifier Σ0..*IdentifierAdditional identifier for the structure definition

... version Σ0..1stringBusiness version of the structure definition
... versionAlgorithm[x] ΣTU0..1How to compare versions
Binding: Version Algorithm (Extensible)
.... versionAlgorithmStringstring
.... versionAlgorithmCodingCoding
... name ΣC1..1stringName for this structure definition (computer friendly)
... title ΣT0..1stringName for this structure definition (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (Required)
... experimental Σ0..1booleanFor testing purposes, not real usage
... date Σ0..1dateTimeDate last changed
... publisher ΣT0..1stringName of the publisher/steward (organization or individual)
... contact Σ0..*ContactDetailContact details for the publisher

... description T0..1markdownNatural language description of the structure definition
... useContext ΣTU0..*UsageContextThe context that the content is intended to support

... jurisdiction ΣXD0..*CodeableConceptIntended jurisdiction for structure definition (if applicable)
Binding: Jurisdiction ValueSet (Extensible)

... purpose T0..1markdownWhy this structure definition is defined
... copyright T0..1markdownUse and/or publishing restrictions
... copyrightLabel TTU0..1stringCopyright holder and year(s)
... keyword ΣXD0..*CodingAssist with indexing and finding
Binding: Structure Definition Use Codes / Keywords (Extensible)

... fhirVersion Σ0..1codeFHIR Version this StructureDefinition targets
Binding: FHIRVersion (Required)
... mapping C0..*BackboneElementExternal specification that the content is mapped to
+ Rule: Must have at least a name or a uri (or both)

.... identity 1..1idInternal id when this mapping is used
.... uri C0..1uriIdentifies what this mapping refers to
.... name C0..1stringNames what this mapping refers to
.... comment 0..1stringVersions, Issues, Scope limitations etc
... kind ΣC1..1codeprimitive-type | complex-type | resource | logical
Binding: Structure Definition Kind (Required)
... abstract ΣC1..1booleanWhether the structure is abstract
... context ΣC0..*BackboneElementIf an extension, where it can be used in instances

.... type Σ1..1codefhirpath | element | extension
Binding: Extension Context Type (Required)
.... expression Σ1..1stringWhere the extension can be used in instances
... contextInvariant ΣC0..*stringFHIRPath invariants - when the extension can be used

... type ΣC1..1uriType defined or constrained by this structure
Binding: All FHIR Types (Extensible)
... baseDefinition ΣC0..1canonical(StructureDefinition)Definition that this type is constrained/specialized from
... derivation ΣC0..1codespecialization | constraint - How relates to base definition
Binding: Type Derivation Rule (Required)
... snapshot C0..1BackboneElementSnapshot view of the structure
+ Rule: Each element definition in a snapshot must have a formal definition and cardinalities, unless model is a logical model
+ 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
+ Guideline: The root element of a profile should not have mustSupport = true
+ Rule: All snapshot elements must have a base definition
.... element C1..*ElementDefinitionDefinition of elements in the resource (if no StructureDefinition)
+ Rule: provide either a binding reference or a description (or both)
+ Rule: If there are no discriminators, there must be a definition

... differential C0..1BackboneElementDifferential 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 C1..*ElementDefinitionDefinition of elements in the resource (if no StructureDefinition)


doco Documentation for this format