Extensions for Using Data Elements from FHIR DSTU2 in FHIR R4
0.1.0 - STU International flag

Extensions for Using Data Elements from FHIR DSTU2 in FHIR R4 - Downloaded Version null See the Directory of published versions

Resource Profile: Profile_R2_StructureDefinition_R4

Official URL: http://hl7.org/fhir/1.0/StructureDefinition/profile-StructureDefinition Version: 0.1.0
Standards status: Trial-use Maturity Level: 0 Computable Name: Profile_R2_StructureDefinition_R4

This cross-version profile allows DSTU2 StructureDefinition content to be represented via FHIR R4 StructureDefinition resources.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. StructureDefinition C 0..* StructureDefinition(4.0.1) Structural Definition
Constraints: sdf-0, sdf-1, sdf-15a, sdf-4, sdf-5, sdf-6, sdf-9, sdf-11, sdf-14, sdf-15, sdf-16, sdf-17, sdf-18, sdf-19, sdf-21, sdf-22, sdf-23
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... url Σ 1..1 uri Canonical identifier for this structure definition, represented as a URI (globally unique)
... status ?!Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
... kind Σ 1..1 code primitive-type | complex-type | resource | logical
Binding: StructureDefinitionKind . (required): Defines the type of structure that a definition is describing.
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:kind 0..1 code DSTU2: datatype | resource | logical additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.kind
Binding: R2StructureDefinitionKindForR4 (0.1.0) (required): Defines the type of structure that a definition is describing.
Constraints: ext-1
... abstract Σ 1..1 boolean Whether the structure is abstract
... type ΣC 1..1 uri Type defined or constrained by this structure
Binding: FHIRDefinedType . (extensible): Either a resource or a data type, including logical model types.
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:constrainedType 0..1 code DSTU2: Any datatype or resource, including abstract ones additional types additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.constrainedType
Binding: R2DefinedTypesForR4 (0.1.0) (required): Either a resource or a data type.
Constraints: ext-1

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
StructureDefinition.​status Base required PublicationStatus 📍4.0.1 FHIR Std.
StructureDefinition.​kind Base required StructureDefinitionKind . 📍4.0.1 tx.fhir.org
StructureDefinition.​type Base extensible FHIRDefinedType . 📍4.0.1 tx.fhir.org

Constraints

Id Grade Path(s) Description Expression
dom-2 error StructureDefinition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error StructureDefinition If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error StructureDefinition If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error StructureDefinition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice StructureDefinition A resource should have narrative for robust management text.`div`.exists()
ele-1 error StructureDefinition.implicitRules, StructureDefinition.modifierExtension, StructureDefinition.url, StructureDefinition.name, StructureDefinition.status, StructureDefinition.kind, StructureDefinition.kind.extension, StructureDefinition.kind.extension:kind, StructureDefinition.abstract, StructureDefinition.type, StructureDefinition.type.extension, StructureDefinition.type.extension:constrainedType All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error StructureDefinition.modifierExtension, StructureDefinition.kind.extension, StructureDefinition.kind.extension:kind, StructureDefinition.type.extension, StructureDefinition.type.extension:constrainedType Must have either extensions or value[x], not both extension.exists() != value.exists()
sdf-0 warning StructureDefinition Name should be usable as an identifier for the module by machine processing applications such as code generation name.matches('[A-Z]([A-Za-z0-9_]){0,254}')
sdf-1 error StructureDefinition Element paths must be unique unless the structure is a constraint derivation = 'constraint' or snapshot.element.select(path).isDistinct()
sdf-6 error StructureDefinition A structure must have either a differential, or a snapshot (or both) snapshot.exists() or differential.exists()
sdf-14 error StructureDefinition All element definitions must have an id
Requirements:

elements have id

snapshot.element.all(id.exists()) and differential.element.all(id.exists())
sdf-15a error StructureDefinition If the first element in a differential has no "." in the path and it's not a logical model, it has no type
Requirements:

No Type on the root element (differential)

(kind!='logical' and differential.element.first().path.contains('.').not()) implies differential.element.first().type.empty()
sdf-4 error StructureDefinition If the structure is not abstract, then there SHALL be a baseDefinition
Requirements:

Ensure that the base types are abstract

abstract = true or baseDefinition.exists()
sdf-5 error StructureDefinition If the structure defines an extension then the structure must have context information type != 'Extension' or derivation = 'specialization' or (context.exists())
sdf-9 error StructureDefinition In any snapshot or differential, no label, code or requirements on an element without a "." in the path (e.g. the first element)
Requirements:

Because these 3 fields seem to be have overlapping meaning with the ones in the root of StructureDefinition

children().element.where(path.contains('.').not()).label.empty() and children().element.where(path.contains('.').not()).code.empty() and children().element.where(path.contains('.').not()).requirements.empty()
sdf-11 error StructureDefinition If there's a type, its content must match the path name in the first element of a snapshot
Requirements:

Ensure that the type is not inconsistent with the other information in the structure

kind != 'logical' implies snapshot.empty() or snapshot.element.first().path = type
sdf-15 error StructureDefinition The first element in a snapshot has no type unless model is a logical model.
Requirements:

No Type on the root element (snapshot)

kind!='logical' implies snapshot.element.first().type.empty()
sdf-16 error StructureDefinition All element definitions must have unique ids (snapshot)
Requirements:

element ids need to be unique

snapshot.element.all(id.exists()) and snapshot.element.id.trace('ids').isDistinct()
sdf-17 error StructureDefinition All element definitions must have unique ids (diff)
Requirements:

element ids need to be unique

differential.element.all(id.exists()) and differential.element.id.trace('ids').isDistinct()
sdf-18 error StructureDefinition Context Invariants can only be used for extensions
Requirements:

contextInvariant

contextInvariant.exists() implies type = 'Extension'
sdf-19 error StructureDefinition FHIR Specification models only use FHIR defined types
Requirements:

custom types only in logical models

url.startsWith('http://hl7.org/fhir/StructureDefinition') implies (differential.element.type.code.all(matches('^[a-zA-Z0-9]+$') or matches('^http:\\/\\/hl7\\.org\\/fhirpath\\/System\\.[A-Z][A-Za-z]+$')) and snapshot.element.type.code.all(matches('^[a-zA-Z0-9\\.]+$') or matches('^http:\\/\\/hl7\\.org\\/fhirpath\\/System\\.[A-Z][A-Za-z]+$')))
sdf-21 error StructureDefinition Default values can only be specified on specializations
Requirements:

no default values on data types or resources

differential.element.defaultValue.exists() implies (derivation = 'specialization')
sdf-22 error StructureDefinition FHIR Specification models never have default values
Requirements:

no default values on data types or resources

url.startsWith('http://hl7.org/fhir/StructureDefinition') implies (snapshot.element.defaultValue.empty() and differential.element.defaultValue.empty())
sdf-23 error StructureDefinition No slice name on root
Requirements:

no sliceName on root

(snapshot | differential).element.all(path.contains('.').not() implies sliceName.empty())

This structure is derived from StructureDefinition

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. StructureDefinition 0..* StructureDefinition(4.0.1) Structural Definition
... meta
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:meta 0..1 Meta DSTU2: meta additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.meta
... text
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:text 0..1 (Complex) DSTU2: text additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.text
... identifier
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:identifier 0..* Identifier DSTU2: Other identifiers for the StructureDefinition additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.identifier
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:name 0..1 string DSTU2: Name of a individual to contact (new)
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contact.name
..... extension:telecom 0..* ContactPoint DSTU2: Contact details for individual or publisher (new)
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contact.telecom
... kind
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:kind 0..1 code DSTU2: datatype | resource | logical additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.kind
Binding: R2StructureDefinitionKindForR4 (0.1.0) (required): Defines the type of structure that a definition is describing.
... context
.... expression
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:contextType 0..1 code DSTU2: resource | datatype | mapping | extension
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contextType
Binding: R2ExtensionContextForR4 (0.1.0) (required): How an extension context is interpreted.
... type
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:constrainedType 0..1 code DSTU2: Any datatype or resource, including abstract ones additional types additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.constrainedType
Binding: R2DefinedTypesForR4 (0.1.0) (required): Either a resource or a data type.
... snapshot
.... element
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:element 0..* (Complex) DSTU2: element additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.snapshot.element
... differential
.... element
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:element 0..* (Complex) DSTU2: element additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.differential.element

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. StructureDefinition C 0..* StructureDefinition(4.0.1) Structural Definition
Constraints: sdf-0, sdf-1, sdf-15a, sdf-4, sdf-5, sdf-6, sdf-9, sdf-11, sdf-14, sdf-15, sdf-16, sdf-17, sdf-18, sdf-19, sdf-21, sdf-22, sdf-23
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:meta 0..1 Meta DSTU2: meta additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.meta
Constraints: ext-1
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels . (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:text 0..1 (Complex) DSTU2: text additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.text
Constraints: ext-1
.... status 1..1 code generated | extensions | additional | empty
Binding: NarrativeStatus (required): The status of a resource narrative.
.... div C 1..1 xhtml Limited xhtml content
Constraints: txt-1, txt-2
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... 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
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:identifier 0..* Identifier DSTU2: Other identifiers for the StructureDefinition additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.identifier
Constraints: ext-1
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
.... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
.... system Σ 0..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value Σ 0..1 string The value that is unique
Example General: 123456
.... period Σ 0..1 Period Time period when id is/was valid for use
.... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... version Σ 0..1 string Business version of the structure definition
... name ΣC 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
Binding: PublicationStatus (required): The lifecycle status of an artifact.
... 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
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:name 0..1 string DSTU2: Name of a individual to contact (new)
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contact.name
Constraints: ext-1
..... extension:telecom 0..* ContactPoint DSTU2: Contact details for individual or publisher (new)
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contact.telecom
Constraints: ext-1
.... name Σ 0..1 string Name of an individual to contact
.... telecom Σ 0..* ContactPoint Contact details for individual or organization
... description 0..1 markdown Natural language description of the structure definition
... useContext Σ 0..* UsageContext The context that the content is intended to support
... jurisdiction Σ 0..* CodeableConcept Intended jurisdiction for structure definition (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.
... 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
Binding: DefinitionUseCodes (extensible): Codes for the meaning of the defined structure (SNOMED CT and LOINC codes, as an example).
... fhirVersion Σ 0..1 code FHIR Version this StructureDefinition targets
Binding: FHIRVersion (required): All published FHIR Versions.
... mapping C 0..* BackboneElement External specification that the content is mapped to
Constraints: sdf-2
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... identity 1..1 id Internal id when this mapping is used
.... uri C 0..1 uri Identifies what this mapping refers to
.... name C 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
Binding: StructureDefinitionKind . (required): Defines the type of structure that a definition is describing.
.... id 0..1 string xml:id (or equivalent in JSON)
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:kind 0..1 code DSTU2: datatype | resource | logical additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.kind
Binding: R2StructureDefinitionKindForR4 (0.1.0) (required): Defines the type of structure that a definition is describing.
Constraints: ext-1
.... value 0..1 string Primitive value for code
... abstract Σ 1..1 boolean Whether the structure is abstract
... context ΣC 0..* BackboneElement If an extension, where it can be used in instances
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... type Σ 1..1 code fhirpath | element | extension
Binding: ExtensionContextType (required): How an extension context is interpreted.
.... expression Σ 1..1 string Where the extension can be used in instances
..... id 0..1 string xml:id (or equivalent in JSON)
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
...... extension:contextType 0..1 code DSTU2: resource | datatype | mapping | extension
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contextType
Binding: R2ExtensionContextForR4 (0.1.0) (required): How an extension context is interpreted.
Constraints: ext-1
..... value 0..1 string Primitive value for string
Max Length:1048576
... contextInvariant ΣC 0..* string FHIRPath invariants - when the extension can be used
... type ΣC 1..1 uri Type defined or constrained by this structure
Binding: FHIRDefinedType . (extensible): Either a resource or a data type, including logical model types.
.... id 0..1 string xml:id (or equivalent in JSON)
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:constrainedType 0..1 code DSTU2: Any datatype or resource, including abstract ones additional types additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.constrainedType
Binding: R2DefinedTypesForR4 (0.1.0) (required): Either a resource or a data type.
Constraints: ext-1
.... value 0..1 uri Primitive value for uri
... baseDefinition ΣC 0..1 canonical(StructureDefinition) Definition that this type is constrained/specialized from
... derivation Σ 0..1 code specialization | constraint - How relates to base definition
Binding: TypeDerivationRule (required): How a type relates to its baseDefinition.
... snapshot C 0..1 BackboneElement Snapshot view of the structure
Constraints: sdf-3, sdf-8, sdf-8b
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... element C 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)
Constraints: sdf-10
..... id 0..1 string Unique id for inter-element referencing
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
...... extension:element 1..* (Complex) DSTU2: element additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.snapshot.element
Constraints: ext-1
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... path Σ 1..1 string Path of the element in the hierarchy of elements
..... representation Σ 0..* code xmlAttr | xmlText | typeAttr | cdaText | xhtml
Binding: PropertyRepresentation (required): How a property is represented when serialized.
..... sliceName Σ 0..1 string Name for this particular element (in a set of slices)
..... sliceIsConstraining Σ 0..1 boolean If this slice definition constrains an inherited slice definition (or not)
..... label Σ 0..1 string Name for element to display with or prompt for element
..... code Σ 0..* Coding Corresponding codes in terminologies
Binding: LOINCCodes (example): Codes that indicate the meaning of a data element.
..... slicing ΣC 0..1 Element This element is sliced - slices follow
Constraints: eld-1
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... discriminator Σ 0..* Element Element values that are used to distinguish the slices
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
....... type Σ 1..1 code value | exists | pattern | type | profile
Binding: DiscriminatorType (required): How an element value is interpreted when discrimination is evaluated.
....... path Σ 1..1 string Path to element value
...... description ΣC 0..1 string Text description of how slicing works (or not)
...... ordered Σ 0..1 boolean If elements must be in same order as slices
...... rules Σ 1..1 code closed | open | openAtEnd
Binding: SlicingRules (required): How slices are interpreted when evaluating an instance.
..... short Σ 0..1 string Concise definition for space-constrained presentation
..... definition Σ 0..1 markdown Full formal definition as narrative text
..... comment Σ 0..1 markdown Comments about the use of this element
..... requirements Σ 0..1 markdown Why this resource has been created
..... alias Σ 0..* string Other names
..... min ΣC 0..1 unsignedInt Minimum Cardinality
..... max ΣC 0..1 string Maximum Cardinality (a number or *)
Constraints: eld-3
..... base Σ 0..1 Element Base definition information for tools
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... 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
Constraints: eld-4, eld-17
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... code Σ 1..1 uri Data type or Resource (reference to definition)
Binding: FHIRDefinedType . (extensible): Either a resource or a data type, including logical model types.
...... profile Σ 0..* canonical(StructureDefinition | ImplementationGuide) Profiles (StructureDefinition or IG) - one must apply
...... targetProfile Σ 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): How resource references can be aggregated.
...... versioning Σ 0..1 code either | independent | specific
Binding: ReferenceVersionRules (required): Whether a reference needs to be version specific or version independent, or whether either can be used.
..... defaultValue[x] ΣC 0..1 Specified value if missing from instance
...... defaultValueBase64Binary base64Binary
...... defaultValueBoolean boolean
...... defaultValueCanonical canonical(Any)
...... defaultValueCode code
...... defaultValueDate date
...... defaultValueDateTime dateTime
...... defaultValueDecimal decimal
...... defaultValueId id
...... defaultValueInstant instant
...... defaultValueInteger integer
...... defaultValueMarkdown markdown
...... defaultValueOid oid
...... defaultValuePositiveInt positiveInt
...... defaultValueString string
...... defaultValueTime time
...... defaultValueUnsignedInt unsignedInt
...... defaultValueUri uri
...... defaultValueUrl url
...... defaultValueUuid uuid
...... defaultValueAddress Address
...... defaultValueAge Age
...... defaultValueAnnotation Annotation
...... defaultValueAttachment Attachment
...... defaultValueCodeableConcept CodeableConcept
...... defaultValueCoding Coding
...... defaultValueContactPoint ContactPoint
...... defaultValueCount Count
...... defaultValueDistance Distance
...... defaultValueDuration Duration
...... defaultValueHumanName HumanName
...... defaultValueIdentifier Identifier
...... defaultValueMoney Money
...... defaultValuePeriod Period
...... defaultValueQuantity Quantity
...... defaultValueRange Range
...... defaultValueRatio Ratio
...... defaultValueReference Reference(Any)
...... defaultValueSampledData SampledData
...... defaultValueSignature Signature
...... defaultValueTiming Timing
...... defaultValueContactDetail ContactDetail
...... defaultValueContributor Contributor
...... defaultValueDataRequirement DataRequirement
...... defaultValueExpression Expression
...... defaultValueParameterDefinition ParameterDefinition
...... defaultValueRelatedArtifact RelatedArtifact
...... defaultValueTriggerDefinition TriggerDefinition
...... defaultValueUsageContext UsageContext
...... defaultValueDosage Dosage
...... defaultValueMeta Meta
..... meaningWhenMissing ΣC 0..1 markdown Implicit meaning when this element is missing
..... orderMeaning Σ 0..1 string What the order of the elements means
..... fixed[x] ΣC 0..1 Value must be exactly this
...... fixedBase64Binary base64Binary
...... fixedBoolean boolean
...... fixedCanonical canonical(Any)
...... fixedCode code
...... fixedDate date
...... fixedDateTime dateTime
...... fixedDecimal decimal
...... fixedId id
...... fixedInstant instant
...... fixedInteger integer
...... fixedMarkdown markdown
...... fixedOid oid
...... fixedPositiveInt positiveInt
...... fixedString string
...... fixedTime time
...... fixedUnsignedInt unsignedInt
...... fixedUri uri
...... fixedUrl url
...... fixedUuid uuid
...... fixedAddress Address
...... fixedAge Age
...... fixedAnnotation Annotation
...... fixedAttachment Attachment
...... fixedCodeableConcept CodeableConcept
...... fixedCoding Coding
...... fixedContactPoint ContactPoint
...... fixedCount Count
...... fixedDistance Distance
...... fixedDuration Duration
...... fixedHumanName HumanName
...... fixedIdentifier Identifier
...... fixedMoney Money
...... fixedPeriod Period
...... fixedQuantity Quantity
...... fixedRange Range
...... fixedRatio Ratio
...... fixedReference Reference(Any)
...... fixedSampledData SampledData
...... fixedSignature Signature
...... fixedTiming Timing
...... fixedContactDetail ContactDetail
...... fixedContributor Contributor
...... fixedDataRequirement DataRequirement
...... fixedExpression Expression
...... fixedParameterDefinition ParameterDefinition
...... fixedRelatedArtifact RelatedArtifact
...... fixedTriggerDefinition TriggerDefinition
...... fixedUsageContext UsageContext
...... fixedDosage Dosage
...... fixedMeta Meta
..... pattern[x] ΣC 0..1 Value must have at least these property values
...... patternBase64Binary base64Binary
...... patternBoolean boolean
...... patternCanonical canonical(Any)
...... patternCode code
...... patternDate date
...... patternDateTime dateTime
...... patternDecimal decimal
...... patternId id
...... patternInstant instant
...... patternInteger integer
...... patternMarkdown markdown
...... patternOid oid
...... patternPositiveInt positiveInt
...... patternString string
...... patternTime time
...... patternUnsignedInt unsignedInt
...... patternUri uri
...... patternUrl url
...... patternUuid uuid
...... patternAddress Address
...... patternAge Age
...... patternAnnotation Annotation
...... patternAttachment Attachment
...... patternCodeableConcept CodeableConcept
...... patternCoding Coding
...... patternContactPoint ContactPoint
...... patternCount Count
...... patternDistance Distance
...... patternDuration Duration
...... patternHumanName HumanName
...... patternIdentifier Identifier
...... patternMoney Money
...... patternPeriod Period
...... patternQuantity Quantity
...... patternRange Range
...... patternRatio Ratio
...... patternReference Reference(Any)
...... patternSampledData SampledData
...... patternSignature Signature
...... patternTiming Timing
...... patternContactDetail ContactDetail
...... patternContributor Contributor
...... patternDataRequirement DataRequirement
...... patternExpression Expression
...... patternParameterDefinition ParameterDefinition
...... patternRelatedArtifact RelatedArtifact
...... patternTriggerDefinition TriggerDefinition
...... patternUsageContext UsageContext
...... patternDosage Dosage
...... patternMeta Meta
..... example Σ 0..* Element Example value (as defined for type)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... label Σ 1..1 string Describes the purpose of this example
...... value[x] Σ 1..1 Value of Example (one of allowed types)
....... valueBase64Binary base64Binary
....... valueBoolean boolean
....... valueCanonical canonical(Any)
....... valueCode code
....... valueDate date
....... valueDateTime dateTime
....... valueDecimal decimal
....... valueId id
....... valueInstant instant
....... valueInteger integer
....... valueMarkdown markdown
....... valueOid oid
....... valuePositiveInt positiveInt
....... valueString string
....... valueTime time
....... valueUnsignedInt unsignedInt
....... valueUri uri
....... valueUrl url
....... valueUuid uuid
....... valueAddress Address
....... valueAge Age
....... valueAnnotation Annotation
....... valueAttachment Attachment
....... valueCodeableConcept CodeableConcept
....... valueCoding Coding
....... valueContactPoint ContactPoint
....... valueCount Count
....... valueDistance Distance
....... valueDuration Duration
....... valueHumanName HumanName
....... valueIdentifier Identifier
....... valueMoney Money
....... valuePeriod Period
....... valueQuantity Quantity
....... valueRange Range
....... valueRatio Ratio
....... valueReference Reference(Any)
....... valueSampledData SampledData
....... valueSignature Signature
....... valueTiming Timing
....... valueContactDetail ContactDetail
....... valueContributor Contributor
....... valueDataRequirement DataRequirement
....... valueExpression Expression
....... valueParameterDefinition ParameterDefinition
....... valueRelatedArtifact RelatedArtifact
....... valueTriggerDefinition TriggerDefinition
....... valueUsageContext UsageContext
....... valueDosage Dosage
....... valueMeta Meta
..... minValue[x] Σ 0..1 Minimum Allowed Value (for some types)
...... minValueDate date
...... minValueDateTime dateTime
...... minValueInstant instant
...... minValueTime time
...... minValueDecimal decimal
...... minValueInteger integer
...... minValuePositiveInt positiveInt
...... minValueUnsignedInt unsignedInt
...... minValueQuantity Quantity
..... maxValue[x] Σ 0..1 Maximum Allowed Value (for some types)
...... maxValueDate date
...... maxValueDateTime dateTime
...... maxValueInstant instant
...... maxValueTime time
...... maxValueDecimal decimal
...... maxValueInteger integer
...... maxValuePositiveInt positiveInt
...... maxValueUnsignedInt unsignedInt
...... maxValueQuantity Quantity
..... maxLength Σ 0..1 integer Max length for strings
..... condition Σ 0..* id Reference to invariant about presence
..... constraint ΣC 0..* Element Condition that must evaluate to true
Constraints: eld-21
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... key ΣC 1..1 id Target of 'condition' reference above
...... requirements Σ 0..1 string Why this constraint is necessary or appropriate
...... severity Σ 1..1 code error | warning
Binding: ConstraintSeverity (required): SHALL applications comply with this constraint?
...... human Σ 1..1 string Human description of constraint
...... expression Σ 0..1 string FHIRPath expression of constraint
...... xpath Σ 0..1 string XPath expression of constraint
...... source Σ 0..1 canonical(StructureDefinition) Reference to original source of constraint
..... mustSupport Σ 0..1 boolean If the element must be supported
..... isModifier Σ 0..1 boolean If this modifies the meaning of other elements
..... isModifierReason Σ 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
Constraints: eld-12
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... strength Σ 1..1 code required | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.
...... description Σ 0..1 string Human explanation of the value set
...... valueSet ΣC 0..1 canonical(ValueSet) Source of value set
..... mapping Σ 0..* Element Map element to another set of definitions
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... identity Σ 1..1 id Reference to mapping declaration
...... language Σ 0..1 code Computable language of mapping
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
...... map Σ 1..1 string Details of the mapping
...... comment Σ 0..1 string Comments about the mapping or its use
... differential C 0..1 BackboneElement Differential view of the structure
Constraints: sdf-20, sdf-8a
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... element 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)
..... id 0..1 string Unique id for inter-element referencing
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
...... extension:element 1..* (Complex) DSTU2: element additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.differential.element
Constraints: ext-1
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... path Σ 1..1 string Path of the element in the hierarchy of elements
..... representation Σ 0..* code xmlAttr | xmlText | typeAttr | cdaText | xhtml
Binding: PropertyRepresentation (required): How a property is represented when serialized.
..... sliceName Σ 0..1 string Name for this particular element (in a set of slices)
..... sliceIsConstraining Σ 0..1 boolean If this slice definition constrains an inherited slice definition (or not)
..... label Σ 0..1 string Name for element to display with or prompt for element
..... code Σ 0..* Coding Corresponding codes in terminologies
Binding: LOINCCodes (example): Codes that indicate the meaning of a data element.
..... slicing ΣC 0..1 Element This element is sliced - slices follow
Constraints: eld-1
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... discriminator Σ 0..* Element Element values that are used to distinguish the slices
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
....... type Σ 1..1 code value | exists | pattern | type | profile
Binding: DiscriminatorType (required): How an element value is interpreted when discrimination is evaluated.
....... path Σ 1..1 string Path to element value
...... description ΣC 0..1 string Text description of how slicing works (or not)
...... ordered Σ 0..1 boolean If elements must be in same order as slices
...... rules Σ 1..1 code closed | open | openAtEnd
Binding: SlicingRules (required): How slices are interpreted when evaluating an instance.
..... short Σ 0..1 string Concise definition for space-constrained presentation
..... definition Σ 0..1 markdown Full formal definition as narrative text
..... comment Σ 0..1 markdown Comments about the use of this element
..... requirements Σ 0..1 markdown Why this resource has been created
..... alias Σ 0..* string Other names
..... min ΣC 0..1 unsignedInt Minimum Cardinality
..... max ΣC 0..1 string Maximum Cardinality (a number or *)
Constraints: eld-3
..... base Σ 0..1 Element Base definition information for tools
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... 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
Constraints: eld-4, eld-17
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... code Σ 1..1 uri Data type or Resource (reference to definition)
Binding: FHIRDefinedType . (extensible): Either a resource or a data type, including logical model types.
...... profile Σ 0..* canonical(StructureDefinition | ImplementationGuide) Profiles (StructureDefinition or IG) - one must apply
...... targetProfile Σ 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): How resource references can be aggregated.
...... versioning Σ 0..1 code either | independent | specific
Binding: ReferenceVersionRules (required): Whether a reference needs to be version specific or version independent, or whether either can be used.
..... defaultValue[x] ΣC 0..1 Specified value if missing from instance
...... defaultValueBase64Binary base64Binary
...... defaultValueBoolean boolean
...... defaultValueCanonical canonical(Any)
...... defaultValueCode code
...... defaultValueDate date
...... defaultValueDateTime dateTime
...... defaultValueDecimal decimal
...... defaultValueId id
...... defaultValueInstant instant
...... defaultValueInteger integer
...... defaultValueMarkdown markdown
...... defaultValueOid oid
...... defaultValuePositiveInt positiveInt
...... defaultValueString string
...... defaultValueTime time
...... defaultValueUnsignedInt unsignedInt
...... defaultValueUri uri
...... defaultValueUrl url
...... defaultValueUuid uuid
...... defaultValueAddress Address
...... defaultValueAge Age
...... defaultValueAnnotation Annotation
...... defaultValueAttachment Attachment
...... defaultValueCodeableConcept CodeableConcept
...... defaultValueCoding Coding
...... defaultValueContactPoint ContactPoint
...... defaultValueCount Count
...... defaultValueDistance Distance
...... defaultValueDuration Duration
...... defaultValueHumanName HumanName
...... defaultValueIdentifier Identifier
...... defaultValueMoney Money
...... defaultValuePeriod Period
...... defaultValueQuantity Quantity
...... defaultValueRange Range
...... defaultValueRatio Ratio
...... defaultValueReference Reference(Any)
...... defaultValueSampledData SampledData
...... defaultValueSignature Signature
...... defaultValueTiming Timing
...... defaultValueContactDetail ContactDetail
...... defaultValueContributor Contributor
...... defaultValueDataRequirement DataRequirement
...... defaultValueExpression Expression
...... defaultValueParameterDefinition ParameterDefinition
...... defaultValueRelatedArtifact RelatedArtifact
...... defaultValueTriggerDefinition TriggerDefinition
...... defaultValueUsageContext UsageContext
...... defaultValueDosage Dosage
...... defaultValueMeta Meta
..... meaningWhenMissing ΣC 0..1 markdown Implicit meaning when this element is missing
..... orderMeaning Σ 0..1 string What the order of the elements means
..... fixed[x] ΣC 0..1 Value must be exactly this
...... fixedBase64Binary base64Binary
...... fixedBoolean boolean
...... fixedCanonical canonical(Any)
...... fixedCode code
...... fixedDate date
...... fixedDateTime dateTime
...... fixedDecimal decimal
...... fixedId id
...... fixedInstant instant
...... fixedInteger integer
...... fixedMarkdown markdown
...... fixedOid oid
...... fixedPositiveInt positiveInt
...... fixedString string
...... fixedTime time
...... fixedUnsignedInt unsignedInt
...... fixedUri uri
...... fixedUrl url
...... fixedUuid uuid
...... fixedAddress Address
...... fixedAge Age
...... fixedAnnotation Annotation
...... fixedAttachment Attachment
...... fixedCodeableConcept CodeableConcept
...... fixedCoding Coding
...... fixedContactPoint ContactPoint
...... fixedCount Count
...... fixedDistance Distance
...... fixedDuration Duration
...... fixedHumanName HumanName
...... fixedIdentifier Identifier
...... fixedMoney Money
...... fixedPeriod Period
...... fixedQuantity Quantity
...... fixedRange Range
...... fixedRatio Ratio
...... fixedReference Reference(Any)
...... fixedSampledData SampledData
...... fixedSignature Signature
...... fixedTiming Timing
...... fixedContactDetail ContactDetail
...... fixedContributor Contributor
...... fixedDataRequirement DataRequirement
...... fixedExpression Expression
...... fixedParameterDefinition ParameterDefinition
...... fixedRelatedArtifact RelatedArtifact
...... fixedTriggerDefinition TriggerDefinition
...... fixedUsageContext UsageContext
...... fixedDosage Dosage
...... fixedMeta Meta
..... pattern[x] ΣC 0..1 Value must have at least these property values
...... patternBase64Binary base64Binary
...... patternBoolean boolean
...... patternCanonical canonical(Any)
...... patternCode code
...... patternDate date
...... patternDateTime dateTime
...... patternDecimal decimal
...... patternId id
...... patternInstant instant
...... patternInteger integer
...... patternMarkdown markdown
...... patternOid oid
...... patternPositiveInt positiveInt
...... patternString string
...... patternTime time
...... patternUnsignedInt unsignedInt
...... patternUri uri
...... patternUrl url
...... patternUuid uuid
...... patternAddress Address
...... patternAge Age
...... patternAnnotation Annotation
...... patternAttachment Attachment
...... patternCodeableConcept CodeableConcept
...... patternCoding Coding
...... patternContactPoint ContactPoint
...... patternCount Count
...... patternDistance Distance
...... patternDuration Duration
...... patternHumanName HumanName
...... patternIdentifier Identifier
...... patternMoney Money
...... patternPeriod Period
...... patternQuantity Quantity
...... patternRange Range
...... patternRatio Ratio
...... patternReference Reference(Any)
...... patternSampledData SampledData
...... patternSignature Signature
...... patternTiming Timing
...... patternContactDetail ContactDetail
...... patternContributor Contributor
...... patternDataRequirement DataRequirement
...... patternExpression Expression
...... patternParameterDefinition ParameterDefinition
...... patternRelatedArtifact RelatedArtifact
...... patternTriggerDefinition TriggerDefinition
...... patternUsageContext UsageContext
...... patternDosage Dosage
...... patternMeta Meta
..... example Σ 0..* Element Example value (as defined for type)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... label Σ 1..1 string Describes the purpose of this example
...... value[x] Σ 1..1 Value of Example (one of allowed types)
....... valueBase64Binary base64Binary
....... valueBoolean boolean
....... valueCanonical canonical(Any)
....... valueCode code
....... valueDate date
....... valueDateTime dateTime
....... valueDecimal decimal
....... valueId id
....... valueInstant instant
....... valueInteger integer
....... valueMarkdown markdown
....... valueOid oid
....... valuePositiveInt positiveInt
....... valueString string
....... valueTime time
....... valueUnsignedInt unsignedInt
....... valueUri uri
....... valueUrl url
....... valueUuid uuid
....... valueAddress Address
....... valueAge Age
....... valueAnnotation Annotation
....... valueAttachment Attachment
....... valueCodeableConcept CodeableConcept
....... valueCoding Coding
....... valueContactPoint ContactPoint
....... valueCount Count
....... valueDistance Distance
....... valueDuration Duration
....... valueHumanName HumanName
....... valueIdentifier Identifier
....... valueMoney Money
....... valuePeriod Period
....... valueQuantity Quantity
....... valueRange Range
....... valueRatio Ratio
....... valueReference Reference(Any)
....... valueSampledData SampledData
....... valueSignature Signature
....... valueTiming Timing
....... valueContactDetail ContactDetail
....... valueContributor Contributor
....... valueDataRequirement DataRequirement
....... valueExpression Expression
....... valueParameterDefinition ParameterDefinition
....... valueRelatedArtifact RelatedArtifact
....... valueTriggerDefinition TriggerDefinition
....... valueUsageContext UsageContext
....... valueDosage Dosage
....... valueMeta Meta
..... minValue[x] Σ 0..1 Minimum Allowed Value (for some types)
...... minValueDate date
...... minValueDateTime dateTime
...... minValueInstant instant
...... minValueTime time
...... minValueDecimal decimal
...... minValueInteger integer
...... minValuePositiveInt positiveInt
...... minValueUnsignedInt unsignedInt
...... minValueQuantity Quantity
..... maxValue[x] Σ 0..1 Maximum Allowed Value (for some types)
...... maxValueDate date
...... maxValueDateTime dateTime
...... maxValueInstant instant
...... maxValueTime time
...... maxValueDecimal decimal
...... maxValueInteger integer
...... maxValuePositiveInt positiveInt
...... maxValueUnsignedInt unsignedInt
...... maxValueQuantity Quantity
..... maxLength Σ 0..1 integer Max length for strings
..... condition Σ 0..* id Reference to invariant about presence
..... constraint ΣC 0..* Element Condition that must evaluate to true
Constraints: eld-21
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... key ΣC 1..1 id Target of 'condition' reference above
...... requirements Σ 0..1 string Why this constraint is necessary or appropriate
...... severity Σ 1..1 code error | warning
Binding: ConstraintSeverity (required): SHALL applications comply with this constraint?
...... human Σ 1..1 string Human description of constraint
...... expression Σ 0..1 string FHIRPath expression of constraint
...... xpath Σ 0..1 string XPath expression of constraint
...... source Σ 0..1 canonical(StructureDefinition) Reference to original source of constraint
..... mustSupport Σ 0..1 boolean If the element must be supported
..... isModifier Σ 0..1 boolean If this modifies the meaning of other elements
..... isModifierReason Σ 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
Constraints: eld-12
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... strength Σ 1..1 code required | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.
...... description Σ 0..1 string Human explanation of the value set
...... valueSet ΣC 0..1 canonical(ValueSet) Source of value set
..... mapping Σ 0..* Element Map element to another set of definitions
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... identity Σ 1..1 id Reference to mapping declaration
...... language Σ 0..1 code Computable language of mapping
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
...... map Σ 1..1 string Details of the mapping
...... comment Σ 0..1 string Comments about the mapping or its use

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
StructureDefinition.​meta.security Base extensible SecurityLabels . 📍4.0.1 tx.fhir.org
StructureDefinition.​meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
StructureDefinition.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
StructureDefinition.​text.status Base required NarrativeStatus 📍4.0.1 FHIR Std.
StructureDefinition.​identifier.use Base required IdentifierUse 📍4.0.1 FHIR Std.
StructureDefinition.​identifier.type Base extensible IdentifierType 📍4.0.1 FHIR Std.
StructureDefinition.​status Base required PublicationStatus 📍4.0.1 FHIR Std.
StructureDefinition.​jurisdiction Base extensible Jurisdiction 📍4.0.1 FHIR Std.
StructureDefinition.​keyword Base extensible Structure Definition Use Codes / Keywords 📍4.0.1 FHIR Std.
StructureDefinition.​fhirVersion Base required FHIRVersion 📍4.0.1 FHIR Std.
StructureDefinition.​kind Base required StructureDefinitionKind . 📍4.0.1 tx.fhir.org
StructureDefinition.​context.type Base required ExtensionContextType 📍4.0.1 FHIR Std.
StructureDefinition.​type Base extensible FHIRDefinedType . 📍4.0.1 tx.fhir.org
StructureDefinition.​derivation Base required TypeDerivationRule 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.representation Base required PropertyRepresentation 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.code Base example LOINC Codes 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.slicing.​discriminator.type Base required DiscriminatorType 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.slicing.​rules Base required SlicingRules 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.type.​code Base extensible FHIRDefinedType . 📍4.0.1 tx.fhir.org
StructureDefinition.​snapshot.element.type.​aggregation Base required AggregationMode 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.type.​versioning Base required ReferenceVersionRules 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.constraint.​severity Base required ConstraintSeverity 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.binding.​strength Base required BindingStrength 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.mapping.​language Base required MimeType 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​representation Base required PropertyRepresentation 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​slicing.discriminator.​type Base required DiscriminatorType 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​slicing.rules Base required SlicingRules 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​type.code Base extensible FHIRDefinedType . 📍4.0.1 tx.fhir.org
StructureDefinition.​differential.element.​type.aggregation Base required AggregationMode 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​type.versioning Base required ReferenceVersionRules 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​constraint.severity Base required ConstraintSeverity 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​binding.strength Base required BindingStrength 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​mapping.language Base required MimeType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error StructureDefinition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error StructureDefinition If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error StructureDefinition If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error StructureDefinition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice StructureDefinition A resource should have narrative for robust management text.`div`.exists()
eld-1 error StructureDefinition.snapshot.element.slicing, StructureDefinition.differential.element.slicing If there are no discriminators, there must be a definition discriminator.exists() or description.exists()
ele-1 error StructureDefinition.meta, StructureDefinition.meta.extension, StructureDefinition.meta.extension:meta, StructureDefinition.meta.versionId, StructureDefinition.meta.lastUpdated, StructureDefinition.meta.source, StructureDefinition.meta.profile, StructureDefinition.meta.security, StructureDefinition.meta.tag, StructureDefinition.implicitRules, StructureDefinition.language, StructureDefinition.text, StructureDefinition.text.extension, StructureDefinition.text.extension:text, StructureDefinition.text.status, StructureDefinition.text.div, StructureDefinition.extension, StructureDefinition.modifierExtension, StructureDefinition.url, StructureDefinition.identifier, StructureDefinition.identifier.extension, StructureDefinition.identifier.extension:identifier, StructureDefinition.identifier.use, StructureDefinition.identifier.type, StructureDefinition.identifier.system, StructureDefinition.identifier.value, StructureDefinition.identifier.period, StructureDefinition.identifier.assigner, StructureDefinition.version, StructureDefinition.name, StructureDefinition.title, StructureDefinition.status, StructureDefinition.experimental, StructureDefinition.date, StructureDefinition.publisher, StructureDefinition.contact, StructureDefinition.contact.extension, StructureDefinition.contact.extension:name, StructureDefinition.contact.extension:telecom, StructureDefinition.contact.name, StructureDefinition.contact.telecom, StructureDefinition.description, StructureDefinition.useContext, StructureDefinition.jurisdiction, StructureDefinition.purpose, StructureDefinition.copyright, StructureDefinition.keyword, StructureDefinition.fhirVersion, StructureDefinition.mapping, StructureDefinition.mapping.extension, StructureDefinition.mapping.modifierExtension, StructureDefinition.mapping.identity, StructureDefinition.mapping.uri, StructureDefinition.mapping.name, StructureDefinition.mapping.comment, StructureDefinition.kind, StructureDefinition.kind.extension, StructureDefinition.kind.extension:kind, StructureDefinition.abstract, StructureDefinition.context, StructureDefinition.context.extension, StructureDefinition.context.modifierExtension, StructureDefinition.context.type, StructureDefinition.context.expression, StructureDefinition.context.expression.extension, StructureDefinition.context.expression.extension:contextType, StructureDefinition.contextInvariant, StructureDefinition.type, StructureDefinition.type.extension, StructureDefinition.type.extension:constrainedType, StructureDefinition.baseDefinition, StructureDefinition.derivation, StructureDefinition.snapshot, StructureDefinition.snapshot.extension, StructureDefinition.snapshot.modifierExtension, StructureDefinition.snapshot.element, StructureDefinition.snapshot.element.extension, StructureDefinition.snapshot.element.extension:element, StructureDefinition.snapshot.element.modifierExtension, StructureDefinition.snapshot.element.path, StructureDefinition.snapshot.element.representation, StructureDefinition.snapshot.element.sliceName, StructureDefinition.snapshot.element.sliceIsConstraining, StructureDefinition.snapshot.element.label, StructureDefinition.snapshot.element.code, StructureDefinition.snapshot.element.slicing, StructureDefinition.snapshot.element.slicing.extension, StructureDefinition.snapshot.element.slicing.discriminator, StructureDefinition.snapshot.element.slicing.discriminator.extension, StructureDefinition.snapshot.element.slicing.discriminator.type, StructureDefinition.snapshot.element.slicing.discriminator.path, StructureDefinition.snapshot.element.slicing.description, StructureDefinition.snapshot.element.slicing.ordered, StructureDefinition.snapshot.element.slicing.rules, StructureDefinition.snapshot.element.short, StructureDefinition.snapshot.element.definition, StructureDefinition.snapshot.element.comment, StructureDefinition.snapshot.element.requirements, StructureDefinition.snapshot.element.alias, StructureDefinition.snapshot.element.min, StructureDefinition.snapshot.element.max, StructureDefinition.snapshot.element.base, StructureDefinition.snapshot.element.base.extension, StructureDefinition.snapshot.element.base.path, StructureDefinition.snapshot.element.base.min, StructureDefinition.snapshot.element.base.max, StructureDefinition.snapshot.element.contentReference, StructureDefinition.snapshot.element.type, StructureDefinition.snapshot.element.type.extension, StructureDefinition.snapshot.element.type.code, StructureDefinition.snapshot.element.type.profile, StructureDefinition.snapshot.element.type.targetProfile, StructureDefinition.snapshot.element.type.aggregation, StructureDefinition.snapshot.element.type.versioning, StructureDefinition.snapshot.element.defaultValue[x], StructureDefinition.snapshot.element.meaningWhenMissing, StructureDefinition.snapshot.element.orderMeaning, StructureDefinition.snapshot.element.fixed[x], StructureDefinition.snapshot.element.pattern[x], StructureDefinition.snapshot.element.example, StructureDefinition.snapshot.element.example.extension, StructureDefinition.snapshot.element.example.label, StructureDefinition.snapshot.element.example.value[x], StructureDefinition.snapshot.element.minValue[x], StructureDefinition.snapshot.element.maxValue[x], StructureDefinition.snapshot.element.maxLength, StructureDefinition.snapshot.element.condition, StructureDefinition.snapshot.element.constraint, StructureDefinition.snapshot.element.constraint.extension, StructureDefinition.snapshot.element.constraint.key, StructureDefinition.snapshot.element.constraint.requirements, StructureDefinition.snapshot.element.constraint.severity, StructureDefinition.snapshot.element.constraint.human, StructureDefinition.snapshot.element.constraint.expression, StructureDefinition.snapshot.element.constraint.xpath, StructureDefinition.snapshot.element.constraint.source, StructureDefinition.snapshot.element.mustSupport, StructureDefinition.snapshot.element.isModifier, StructureDefinition.snapshot.element.isModifierReason, StructureDefinition.snapshot.element.isSummary, StructureDefinition.snapshot.element.binding, StructureDefinition.snapshot.element.binding.extension, StructureDefinition.snapshot.element.binding.strength, StructureDefinition.snapshot.element.binding.description, StructureDefinition.snapshot.element.binding.valueSet, StructureDefinition.snapshot.element.mapping, StructureDefinition.snapshot.element.mapping.extension, StructureDefinition.snapshot.element.mapping.identity, StructureDefinition.snapshot.element.mapping.language, StructureDefinition.snapshot.element.mapping.map, StructureDefinition.snapshot.element.mapping.comment, StructureDefinition.differential, StructureDefinition.differential.extension, StructureDefinition.differential.modifierExtension, StructureDefinition.differential.element, StructureDefinition.differential.element.extension, StructureDefinition.differential.element.extension:element, StructureDefinition.differential.element.modifierExtension, StructureDefinition.differential.element.path, StructureDefinition.differential.element.representation, StructureDefinition.differential.element.sliceName, StructureDefinition.differential.element.sliceIsConstraining, StructureDefinition.differential.element.label, StructureDefinition.differential.element.code, StructureDefinition.differential.element.slicing, StructureDefinition.differential.element.slicing.extension, StructureDefinition.differential.element.slicing.discriminator, StructureDefinition.differential.element.slicing.discriminator.extension, StructureDefinition.differential.element.slicing.discriminator.type, StructureDefinition.differential.element.slicing.discriminator.path, StructureDefinition.differential.element.slicing.description, StructureDefinition.differential.element.slicing.ordered, StructureDefinition.differential.element.slicing.rules, StructureDefinition.differential.element.short, StructureDefinition.differential.element.definition, StructureDefinition.differential.element.comment, StructureDefinition.differential.element.requirements, StructureDefinition.differential.element.alias, StructureDefinition.differential.element.min, StructureDefinition.differential.element.max, StructureDefinition.differential.element.base, StructureDefinition.differential.element.base.extension, StructureDefinition.differential.element.base.path, StructureDefinition.differential.element.base.min, StructureDefinition.differential.element.base.max, StructureDefinition.differential.element.contentReference, StructureDefinition.differential.element.type, StructureDefinition.differential.element.type.extension, StructureDefinition.differential.element.type.code, StructureDefinition.differential.element.type.profile, StructureDefinition.differential.element.type.targetProfile, StructureDefinition.differential.element.type.aggregation, StructureDefinition.differential.element.type.versioning, StructureDefinition.differential.element.defaultValue[x], StructureDefinition.differential.element.meaningWhenMissing, StructureDefinition.differential.element.orderMeaning, StructureDefinition.differential.element.fixed[x], StructureDefinition.differential.element.pattern[x], StructureDefinition.differential.element.example, StructureDefinition.differential.element.example.extension, StructureDefinition.differential.element.example.label, StructureDefinition.differential.element.example.value[x], StructureDefinition.differential.element.minValue[x], StructureDefinition.differential.element.maxValue[x], StructureDefinition.differential.element.maxLength, StructureDefinition.differential.element.condition, StructureDefinition.differential.element.constraint, StructureDefinition.differential.element.constraint.extension, StructureDefinition.differential.element.constraint.key, StructureDefinition.differential.element.constraint.requirements, StructureDefinition.differential.element.constraint.severity, StructureDefinition.differential.element.constraint.human, StructureDefinition.differential.element.constraint.expression, StructureDefinition.differential.element.constraint.xpath, StructureDefinition.differential.element.constraint.source, StructureDefinition.differential.element.mustSupport, StructureDefinition.differential.element.isModifier, StructureDefinition.differential.element.isModifierReason, StructureDefinition.differential.element.isSummary, StructureDefinition.differential.element.binding, StructureDefinition.differential.element.binding.extension, StructureDefinition.differential.element.binding.strength, StructureDefinition.differential.element.binding.description, StructureDefinition.differential.element.binding.valueSet, StructureDefinition.differential.element.mapping, StructureDefinition.differential.element.mapping.extension, StructureDefinition.differential.element.mapping.identity, StructureDefinition.differential.element.mapping.language, StructureDefinition.differential.element.mapping.map, StructureDefinition.differential.element.mapping.comment All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
eld-3 error StructureDefinition.snapshot.element.max, StructureDefinition.differential.element.max Max SHALL be a number or "*" empty() or ($this = '*') or (toInteger() >= 0)
eld-4 error StructureDefinition.snapshot.element.type, StructureDefinition.differential.element.type Aggregation may only be specified if one of the allowed types for the element is a reference aggregation.empty() or (code = 'Reference') or (code = 'canonical')
eld-12 error StructureDefinition.snapshot.element.binding, StructureDefinition.differential.element.binding ValueSet SHALL start with http:// or https:// or urn: valueSet.exists() implies (valueSet.startsWith('http:') or valueSet.startsWith('https') or valueSet.startsWith('urn:'))
eld-17 error StructureDefinition.snapshot.element.type, StructureDefinition.differential.element.type targetProfile is only allowed if the type is Reference or canonical (code='Reference' or code = 'canonical') or targetProfile.empty()
eld-21 warning StructureDefinition.snapshot.element.constraint, StructureDefinition.differential.element.constraint Constraints should have an expression or else validators will not be able to enforce them expression.exists()
ext-1 error StructureDefinition.meta.extension, StructureDefinition.meta.extension:meta, StructureDefinition.text.extension, StructureDefinition.text.extension:text, StructureDefinition.extension, StructureDefinition.modifierExtension, StructureDefinition.identifier.extension, StructureDefinition.identifier.extension:identifier, StructureDefinition.contact.extension, StructureDefinition.contact.extension:name, StructureDefinition.contact.extension:telecom, StructureDefinition.mapping.extension, StructureDefinition.mapping.modifierExtension, StructureDefinition.kind.extension, StructureDefinition.kind.extension:kind, StructureDefinition.context.extension, StructureDefinition.context.modifierExtension, StructureDefinition.context.expression.extension, StructureDefinition.context.expression.extension:contextType, StructureDefinition.type.extension, StructureDefinition.type.extension:constrainedType, StructureDefinition.snapshot.extension, StructureDefinition.snapshot.modifierExtension, StructureDefinition.snapshot.element.extension, StructureDefinition.snapshot.element.extension:element, StructureDefinition.snapshot.element.modifierExtension, StructureDefinition.snapshot.element.slicing.extension, StructureDefinition.snapshot.element.slicing.discriminator.extension, StructureDefinition.snapshot.element.base.extension, StructureDefinition.snapshot.element.type.extension, StructureDefinition.snapshot.element.example.extension, StructureDefinition.snapshot.element.constraint.extension, StructureDefinition.snapshot.element.binding.extension, StructureDefinition.snapshot.element.mapping.extension, StructureDefinition.differential.extension, StructureDefinition.differential.modifierExtension, StructureDefinition.differential.element.extension, StructureDefinition.differential.element.extension:element, StructureDefinition.differential.element.modifierExtension, StructureDefinition.differential.element.slicing.extension, StructureDefinition.differential.element.slicing.discriminator.extension, StructureDefinition.differential.element.base.extension, StructureDefinition.differential.element.type.extension, StructureDefinition.differential.element.example.extension, StructureDefinition.differential.element.constraint.extension, StructureDefinition.differential.element.binding.extension, StructureDefinition.differential.element.mapping.extension Must have either extensions or value[x], not both extension.exists() != value.exists()
sdf-0 warning StructureDefinition Name should be usable as an identifier for the module by machine processing applications such as code generation name.matches('[A-Z]([A-Za-z0-9_]){0,254}')
sdf-1 error StructureDefinition Element paths must be unique unless the structure is a constraint derivation = 'constraint' or snapshot.element.select(path).isDistinct()
sdf-15a error StructureDefinition If the first element in a differential has no "." in the path and it's not a logical model, it has no type
Requirements:

No Type on the root element (differential)

(kind!='logical' and differential.element.first().path.contains('.').not()) implies differential.element.first().type.empty()
sdf-2 error StructureDefinition.mapping Must have at least a name or a uri (or both) name.exists() or uri.exists()
sdf-3 error StructureDefinition.snapshot Each element definition in a snapshot must have a formal definition and cardinalities element.all(definition.exists() and min.exists() and max.exists())
sdf-4 error StructureDefinition If the structure is not abstract, then there SHALL be a baseDefinition
Requirements:

Ensure that the base types are abstract

abstract = true or baseDefinition.exists()
sdf-5 error StructureDefinition If the structure defines an extension then the structure must have context information type != 'Extension' or derivation = 'specialization' or (context.exists())
sdf-6 error StructureDefinition A structure must have either a differential, or a snapshot (or both) snapshot.exists() or differential.exists()
sdf-8 error StructureDefinition.snapshot All snapshot elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models (%resource.kind = 'logical' or element.first().path = %resource.type) and element.tail().all(path.startsWith(%resource.snapshot.element.first().path&'.'))
sdf-10 error StructureDefinition.snapshot.element provide either a binding reference or a description (or both)
Requirements:

binding is required

binding.empty() or binding.valueSet.exists() or binding.description.exists()
sdf-11 error StructureDefinition If there's a type, its content must match the path name in the first element of a snapshot
Requirements:

Ensure that the type is not inconsistent with the other information in the structure

kind != 'logical' implies snapshot.empty() or snapshot.element.first().path = type
sdf-14 error StructureDefinition All element definitions must have an id
Requirements:

elements have id

snapshot.element.all(id.exists()) and differential.element.all(id.exists())
sdf-15 error StructureDefinition The first element in a snapshot has no type unless model is a logical model.
Requirements:

No Type on the root element (snapshot)

kind!='logical' implies snapshot.element.first().type.empty()
sdf-16 error StructureDefinition All element definitions must have unique ids (snapshot)
Requirements:

element ids need to be unique

snapshot.element.all(id.exists()) and snapshot.element.id.trace('ids').isDistinct()
sdf-17 error StructureDefinition All element definitions must have unique ids (diff)
Requirements:

element ids need to be unique

differential.element.all(id.exists()) and differential.element.id.trace('ids').isDistinct()
sdf-18 error StructureDefinition Context Invariants can only be used for extensions
Requirements:

contextInvariant

contextInvariant.exists() implies type = 'Extension'
sdf-20 error StructureDefinition.differential No slicing on the root element
Requirements:

no slicing on root

element.where(path.contains('.').not()).slicing.empty()
sdf-21 error StructureDefinition Default values can only be specified on specializations
Requirements:

no default values on data types or resources

differential.element.defaultValue.exists() implies (derivation = 'specialization')
sdf-22 error StructureDefinition FHIR Specification models never have default values
Requirements:

no default values on data types or resources

url.startsWith('http://hl7.org/fhir/StructureDefinition') implies (snapshot.element.defaultValue.empty() and differential.element.defaultValue.empty())
sdf-23 error StructureDefinition No slice name on root
Requirements:

no sliceName on root

(snapshot | differential).element.all(path.contains('.').not() implies sliceName.empty())
sdf-8a error StructureDefinition.differential 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 (%resource.kind = 'logical' or element.first().path.startsWith(%resource.type)) and (element.tail().empty() or element.tail().all(path.startsWith(%resource.differential.element.first().path.replaceMatches('\\..*','')&'.')))
sdf-9 error StructureDefinition In any snapshot or differential, no label, code or requirements on an element without a "." in the path (e.g. the first element)
Requirements:

Because these 3 fields seem to be have overlapping meaning with the ones in the root of StructureDefinition

children().element.where(path.contains('.').not()).label.empty() and children().element.where(path.contains('.').not()).code.empty() and children().element.where(path.contains('.').not()).requirements.empty()
sdf-19 error StructureDefinition FHIR Specification models only use FHIR defined types
Requirements:

custom types only in logical models

url.startsWith('http://hl7.org/fhir/StructureDefinition') implies (differential.element.type.code.all(matches('^[a-zA-Z0-9]+$') or matches('^http:\\/\\/hl7\\.org\\/fhirpath\\/System\\.[A-Z][A-Za-z]+$')) and snapshot.element.type.code.all(matches('^[a-zA-Z0-9\\.]+$') or matches('^http:\\/\\/hl7\\.org\\/fhirpath\\/System\\.[A-Z][A-Za-z]+$')))
sdf-8b error StructureDefinition.snapshot All snapshot elements must have a base definition element.all(base.exists())
txt-1 error StructureDefinition.text.div The narrative SHALL contain only the basic html formatting elements and attributes described in chapters 7-11 (except section 4 of chapter 9) and 15 of the HTML 4.0 standard, <a> elements (either name or href), images and internally contained style attributes htmlChecks()
txt-2 error StructureDefinition.text.div The narrative SHALL have some non-whitespace content htmlChecks()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. StructureDefinition C 0..* StructureDefinition(4.0.1) Structural Definition
Constraints: sdf-0, sdf-1, sdf-15a, sdf-4, sdf-5, sdf-6, sdf-9, sdf-11, sdf-14, sdf-15, sdf-16, sdf-17, sdf-18, sdf-19, sdf-21, sdf-22, sdf-23
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... url Σ 1..1 uri Canonical identifier for this structure definition, represented as a URI (globally unique)
... status ?!Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
... kind Σ 1..1 code primitive-type | complex-type | resource | logical
Binding: StructureDefinitionKind . (required): Defines the type of structure that a definition is describing.
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:kind 0..1 code DSTU2: datatype | resource | logical additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.kind
Binding: R2StructureDefinitionKindForR4 (0.1.0) (required): Defines the type of structure that a definition is describing.
Constraints: ext-1
... abstract Σ 1..1 boolean Whether the structure is abstract
... type ΣC 1..1 uri Type defined or constrained by this structure
Binding: FHIRDefinedType . (extensible): Either a resource or a data type, including logical model types.
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:constrainedType 0..1 code DSTU2: Any datatype or resource, including abstract ones additional types additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.constrainedType
Binding: R2DefinedTypesForR4 (0.1.0) (required): Either a resource or a data type.
Constraints: ext-1

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
StructureDefinition.​status Base required PublicationStatus 📍4.0.1 FHIR Std.
StructureDefinition.​kind Base required StructureDefinitionKind . 📍4.0.1 tx.fhir.org
StructureDefinition.​type Base extensible FHIRDefinedType . 📍4.0.1 tx.fhir.org

Constraints

Id Grade Path(s) Description Expression
dom-2 error StructureDefinition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error StructureDefinition If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error StructureDefinition If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error StructureDefinition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice StructureDefinition A resource should have narrative for robust management text.`div`.exists()
ele-1 error StructureDefinition.implicitRules, StructureDefinition.modifierExtension, StructureDefinition.url, StructureDefinition.name, StructureDefinition.status, StructureDefinition.kind, StructureDefinition.kind.extension, StructureDefinition.kind.extension:kind, StructureDefinition.abstract, StructureDefinition.type, StructureDefinition.type.extension, StructureDefinition.type.extension:constrainedType All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error StructureDefinition.modifierExtension, StructureDefinition.kind.extension, StructureDefinition.kind.extension:kind, StructureDefinition.type.extension, StructureDefinition.type.extension:constrainedType Must have either extensions or value[x], not both extension.exists() != value.exists()
sdf-0 warning StructureDefinition Name should be usable as an identifier for the module by machine processing applications such as code generation name.matches('[A-Z]([A-Za-z0-9_]){0,254}')
sdf-1 error StructureDefinition Element paths must be unique unless the structure is a constraint derivation = 'constraint' or snapshot.element.select(path).isDistinct()
sdf-6 error StructureDefinition A structure must have either a differential, or a snapshot (or both) snapshot.exists() or differential.exists()
sdf-14 error StructureDefinition All element definitions must have an id
Requirements:

elements have id

snapshot.element.all(id.exists()) and differential.element.all(id.exists())
sdf-15a error StructureDefinition If the first element in a differential has no "." in the path and it's not a logical model, it has no type
Requirements:

No Type on the root element (differential)

(kind!='logical' and differential.element.first().path.contains('.').not()) implies differential.element.first().type.empty()
sdf-4 error StructureDefinition If the structure is not abstract, then there SHALL be a baseDefinition
Requirements:

Ensure that the base types are abstract

abstract = true or baseDefinition.exists()
sdf-5 error StructureDefinition If the structure defines an extension then the structure must have context information type != 'Extension' or derivation = 'specialization' or (context.exists())
sdf-9 error StructureDefinition In any snapshot or differential, no label, code or requirements on an element without a "." in the path (e.g. the first element)
Requirements:

Because these 3 fields seem to be have overlapping meaning with the ones in the root of StructureDefinition

children().element.where(path.contains('.').not()).label.empty() and children().element.where(path.contains('.').not()).code.empty() and children().element.where(path.contains('.').not()).requirements.empty()
sdf-11 error StructureDefinition If there's a type, its content must match the path name in the first element of a snapshot
Requirements:

Ensure that the type is not inconsistent with the other information in the structure

kind != 'logical' implies snapshot.empty() or snapshot.element.first().path = type
sdf-15 error StructureDefinition The first element in a snapshot has no type unless model is a logical model.
Requirements:

No Type on the root element (snapshot)

kind!='logical' implies snapshot.element.first().type.empty()
sdf-16 error StructureDefinition All element definitions must have unique ids (snapshot)
Requirements:

element ids need to be unique

snapshot.element.all(id.exists()) and snapshot.element.id.trace('ids').isDistinct()
sdf-17 error StructureDefinition All element definitions must have unique ids (diff)
Requirements:

element ids need to be unique

differential.element.all(id.exists()) and differential.element.id.trace('ids').isDistinct()
sdf-18 error StructureDefinition Context Invariants can only be used for extensions
Requirements:

contextInvariant

contextInvariant.exists() implies type = 'Extension'
sdf-19 error StructureDefinition FHIR Specification models only use FHIR defined types
Requirements:

custom types only in logical models

url.startsWith('http://hl7.org/fhir/StructureDefinition') implies (differential.element.type.code.all(matches('^[a-zA-Z0-9]+$') or matches('^http:\\/\\/hl7\\.org\\/fhirpath\\/System\\.[A-Z][A-Za-z]+$')) and snapshot.element.type.code.all(matches('^[a-zA-Z0-9\\.]+$') or matches('^http:\\/\\/hl7\\.org\\/fhirpath\\/System\\.[A-Z][A-Za-z]+$')))
sdf-21 error StructureDefinition Default values can only be specified on specializations
Requirements:

no default values on data types or resources

differential.element.defaultValue.exists() implies (derivation = 'specialization')
sdf-22 error StructureDefinition FHIR Specification models never have default values
Requirements:

no default values on data types or resources

url.startsWith('http://hl7.org/fhir/StructureDefinition') implies (snapshot.element.defaultValue.empty() and differential.element.defaultValue.empty())
sdf-23 error StructureDefinition No slice name on root
Requirements:

no sliceName on root

(snapshot | differential).element.all(path.contains('.').not() implies sliceName.empty())

Differential View

This structure is derived from StructureDefinition

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. StructureDefinition 0..* StructureDefinition(4.0.1) Structural Definition
... meta
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:meta 0..1 Meta DSTU2: meta additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.meta
... text
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:text 0..1 (Complex) DSTU2: text additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.text
... identifier
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:identifier 0..* Identifier DSTU2: Other identifiers for the StructureDefinition additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.identifier
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:name 0..1 string DSTU2: Name of a individual to contact (new)
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contact.name
..... extension:telecom 0..* ContactPoint DSTU2: Contact details for individual or publisher (new)
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contact.telecom
... kind
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:kind 0..1 code DSTU2: datatype | resource | logical additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.kind
Binding: R2StructureDefinitionKindForR4 (0.1.0) (required): Defines the type of structure that a definition is describing.
... context
.... expression
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:contextType 0..1 code DSTU2: resource | datatype | mapping | extension
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contextType
Binding: R2ExtensionContextForR4 (0.1.0) (required): How an extension context is interpreted.
... type
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:constrainedType 0..1 code DSTU2: Any datatype or resource, including abstract ones additional types additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.constrainedType
Binding: R2DefinedTypesForR4 (0.1.0) (required): Either a resource or a data type.
... snapshot
.... element
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:element 0..* (Complex) DSTU2: element additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.snapshot.element
... differential
.... element
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
...... extension:element 0..* (Complex) DSTU2: element additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.differential.element

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. StructureDefinition C 0..* StructureDefinition(4.0.1) Structural Definition
Constraints: sdf-0, sdf-1, sdf-15a, sdf-4, sdf-5, sdf-6, sdf-9, sdf-11, sdf-14, sdf-15, sdf-16, sdf-17, sdf-18, sdf-19, sdf-21, sdf-22, sdf-23
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:meta 0..1 Meta DSTU2: meta additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.meta
Constraints: ext-1
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels . (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:text 0..1 (Complex) DSTU2: text additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.text
Constraints: ext-1
.... status 1..1 code generated | extensions | additional | empty
Binding: NarrativeStatus (required): The status of a resource narrative.
.... div C 1..1 xhtml Limited xhtml content
Constraints: txt-1, txt-2
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... 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
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:identifier 0..* Identifier DSTU2: Other identifiers for the StructureDefinition additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.identifier
Constraints: ext-1
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
.... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
.... system Σ 0..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value Σ 0..1 string The value that is unique
Example General: 123456
.... period Σ 0..1 Period Time period when id is/was valid for use
.... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... version Σ 0..1 string Business version of the structure definition
... name ΣC 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
Binding: PublicationStatus (required): The lifecycle status of an artifact.
... 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
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:name 0..1 string DSTU2: Name of a individual to contact (new)
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contact.name
Constraints: ext-1
..... extension:telecom 0..* ContactPoint DSTU2: Contact details for individual or publisher (new)
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contact.telecom
Constraints: ext-1
.... name Σ 0..1 string Name of an individual to contact
.... telecom Σ 0..* ContactPoint Contact details for individual or organization
... description 0..1 markdown Natural language description of the structure definition
... useContext Σ 0..* UsageContext The context that the content is intended to support
... jurisdiction Σ 0..* CodeableConcept Intended jurisdiction for structure definition (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.
... 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
Binding: DefinitionUseCodes (extensible): Codes for the meaning of the defined structure (SNOMED CT and LOINC codes, as an example).
... fhirVersion Σ 0..1 code FHIR Version this StructureDefinition targets
Binding: FHIRVersion (required): All published FHIR Versions.
... mapping C 0..* BackboneElement External specification that the content is mapped to
Constraints: sdf-2
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... identity 1..1 id Internal id when this mapping is used
.... uri C 0..1 uri Identifies what this mapping refers to
.... name C 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
Binding: StructureDefinitionKind . (required): Defines the type of structure that a definition is describing.
.... id 0..1 string xml:id (or equivalent in JSON)
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:kind 0..1 code DSTU2: datatype | resource | logical additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.kind
Binding: R2StructureDefinitionKindForR4 (0.1.0) (required): Defines the type of structure that a definition is describing.
Constraints: ext-1
.... value 0..1 string Primitive value for code
... abstract Σ 1..1 boolean Whether the structure is abstract
... context ΣC 0..* BackboneElement If an extension, where it can be used in instances
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... type Σ 1..1 code fhirpath | element | extension
Binding: ExtensionContextType (required): How an extension context is interpreted.
.... expression Σ 1..1 string Where the extension can be used in instances
..... id 0..1 string xml:id (or equivalent in JSON)
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
...... extension:contextType 0..1 code DSTU2: resource | datatype | mapping | extension
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.contextType
Binding: R2ExtensionContextForR4 (0.1.0) (required): How an extension context is interpreted.
Constraints: ext-1
..... value 0..1 string Primitive value for string
Max Length:1048576
... contextInvariant ΣC 0..* string FHIRPath invariants - when the extension can be used
... type ΣC 1..1 uri Type defined or constrained by this structure
Binding: FHIRDefinedType . (extensible): Either a resource or a data type, including logical model types.
.... id 0..1 string xml:id (or equivalent in JSON)
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:constrainedType 0..1 code DSTU2: Any datatype or resource, including abstract ones additional types additional codes
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.constrainedType
Binding: R2DefinedTypesForR4 (0.1.0) (required): Either a resource or a data type.
Constraints: ext-1
.... value 0..1 uri Primitive value for uri
... baseDefinition ΣC 0..1 canonical(StructureDefinition) Definition that this type is constrained/specialized from
... derivation Σ 0..1 code specialization | constraint - How relates to base definition
Binding: TypeDerivationRule (required): How a type relates to its baseDefinition.
... snapshot C 0..1 BackboneElement Snapshot view of the structure
Constraints: sdf-3, sdf-8, sdf-8b
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... element C 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)
Constraints: sdf-10
..... id 0..1 string Unique id for inter-element referencing
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
...... extension:element 1..* (Complex) DSTU2: element additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.snapshot.element
Constraints: ext-1
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... path Σ 1..1 string Path of the element in the hierarchy of elements
..... representation Σ 0..* code xmlAttr | xmlText | typeAttr | cdaText | xhtml
Binding: PropertyRepresentation (required): How a property is represented when serialized.
..... sliceName Σ 0..1 string Name for this particular element (in a set of slices)
..... sliceIsConstraining Σ 0..1 boolean If this slice definition constrains an inherited slice definition (or not)
..... label Σ 0..1 string Name for element to display with or prompt for element
..... code Σ 0..* Coding Corresponding codes in terminologies
Binding: LOINCCodes (example): Codes that indicate the meaning of a data element.
..... slicing ΣC 0..1 Element This element is sliced - slices follow
Constraints: eld-1
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... discriminator Σ 0..* Element Element values that are used to distinguish the slices
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
....... type Σ 1..1 code value | exists | pattern | type | profile
Binding: DiscriminatorType (required): How an element value is interpreted when discrimination is evaluated.
....... path Σ 1..1 string Path to element value
...... description ΣC 0..1 string Text description of how slicing works (or not)
...... ordered Σ 0..1 boolean If elements must be in same order as slices
...... rules Σ 1..1 code closed | open | openAtEnd
Binding: SlicingRules (required): How slices are interpreted when evaluating an instance.
..... short Σ 0..1 string Concise definition for space-constrained presentation
..... definition Σ 0..1 markdown Full formal definition as narrative text
..... comment Σ 0..1 markdown Comments about the use of this element
..... requirements Σ 0..1 markdown Why this resource has been created
..... alias Σ 0..* string Other names
..... min ΣC 0..1 unsignedInt Minimum Cardinality
..... max ΣC 0..1 string Maximum Cardinality (a number or *)
Constraints: eld-3
..... base Σ 0..1 Element Base definition information for tools
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... 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
Constraints: eld-4, eld-17
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... code Σ 1..1 uri Data type or Resource (reference to definition)
Binding: FHIRDefinedType . (extensible): Either a resource or a data type, including logical model types.
...... profile Σ 0..* canonical(StructureDefinition | ImplementationGuide) Profiles (StructureDefinition or IG) - one must apply
...... targetProfile Σ 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): How resource references can be aggregated.
...... versioning Σ 0..1 code either | independent | specific
Binding: ReferenceVersionRules (required): Whether a reference needs to be version specific or version independent, or whether either can be used.
..... defaultValue[x] ΣC 0..1 Specified value if missing from instance
...... defaultValueBase64Binary base64Binary
...... defaultValueBoolean boolean
...... defaultValueCanonical canonical(Any)
...... defaultValueCode code
...... defaultValueDate date
...... defaultValueDateTime dateTime
...... defaultValueDecimal decimal
...... defaultValueId id
...... defaultValueInstant instant
...... defaultValueInteger integer
...... defaultValueMarkdown markdown
...... defaultValueOid oid
...... defaultValuePositiveInt positiveInt
...... defaultValueString string
...... defaultValueTime time
...... defaultValueUnsignedInt unsignedInt
...... defaultValueUri uri
...... defaultValueUrl url
...... defaultValueUuid uuid
...... defaultValueAddress Address
...... defaultValueAge Age
...... defaultValueAnnotation Annotation
...... defaultValueAttachment Attachment
...... defaultValueCodeableConcept CodeableConcept
...... defaultValueCoding Coding
...... defaultValueContactPoint ContactPoint
...... defaultValueCount Count
...... defaultValueDistance Distance
...... defaultValueDuration Duration
...... defaultValueHumanName HumanName
...... defaultValueIdentifier Identifier
...... defaultValueMoney Money
...... defaultValuePeriod Period
...... defaultValueQuantity Quantity
...... defaultValueRange Range
...... defaultValueRatio Ratio
...... defaultValueReference Reference(Any)
...... defaultValueSampledData SampledData
...... defaultValueSignature Signature
...... defaultValueTiming Timing
...... defaultValueContactDetail ContactDetail
...... defaultValueContributor Contributor
...... defaultValueDataRequirement DataRequirement
...... defaultValueExpression Expression
...... defaultValueParameterDefinition ParameterDefinition
...... defaultValueRelatedArtifact RelatedArtifact
...... defaultValueTriggerDefinition TriggerDefinition
...... defaultValueUsageContext UsageContext
...... defaultValueDosage Dosage
...... defaultValueMeta Meta
..... meaningWhenMissing ΣC 0..1 markdown Implicit meaning when this element is missing
..... orderMeaning Σ 0..1 string What the order of the elements means
..... fixed[x] ΣC 0..1 Value must be exactly this
...... fixedBase64Binary base64Binary
...... fixedBoolean boolean
...... fixedCanonical canonical(Any)
...... fixedCode code
...... fixedDate date
...... fixedDateTime dateTime
...... fixedDecimal decimal
...... fixedId id
...... fixedInstant instant
...... fixedInteger integer
...... fixedMarkdown markdown
...... fixedOid oid
...... fixedPositiveInt positiveInt
...... fixedString string
...... fixedTime time
...... fixedUnsignedInt unsignedInt
...... fixedUri uri
...... fixedUrl url
...... fixedUuid uuid
...... fixedAddress Address
...... fixedAge Age
...... fixedAnnotation Annotation
...... fixedAttachment Attachment
...... fixedCodeableConcept CodeableConcept
...... fixedCoding Coding
...... fixedContactPoint ContactPoint
...... fixedCount Count
...... fixedDistance Distance
...... fixedDuration Duration
...... fixedHumanName HumanName
...... fixedIdentifier Identifier
...... fixedMoney Money
...... fixedPeriod Period
...... fixedQuantity Quantity
...... fixedRange Range
...... fixedRatio Ratio
...... fixedReference Reference(Any)
...... fixedSampledData SampledData
...... fixedSignature Signature
...... fixedTiming Timing
...... fixedContactDetail ContactDetail
...... fixedContributor Contributor
...... fixedDataRequirement DataRequirement
...... fixedExpression Expression
...... fixedParameterDefinition ParameterDefinition
...... fixedRelatedArtifact RelatedArtifact
...... fixedTriggerDefinition TriggerDefinition
...... fixedUsageContext UsageContext
...... fixedDosage Dosage
...... fixedMeta Meta
..... pattern[x] ΣC 0..1 Value must have at least these property values
...... patternBase64Binary base64Binary
...... patternBoolean boolean
...... patternCanonical canonical(Any)
...... patternCode code
...... patternDate date
...... patternDateTime dateTime
...... patternDecimal decimal
...... patternId id
...... patternInstant instant
...... patternInteger integer
...... patternMarkdown markdown
...... patternOid oid
...... patternPositiveInt positiveInt
...... patternString string
...... patternTime time
...... patternUnsignedInt unsignedInt
...... patternUri uri
...... patternUrl url
...... patternUuid uuid
...... patternAddress Address
...... patternAge Age
...... patternAnnotation Annotation
...... patternAttachment Attachment
...... patternCodeableConcept CodeableConcept
...... patternCoding Coding
...... patternContactPoint ContactPoint
...... patternCount Count
...... patternDistance Distance
...... patternDuration Duration
...... patternHumanName HumanName
...... patternIdentifier Identifier
...... patternMoney Money
...... patternPeriod Period
...... patternQuantity Quantity
...... patternRange Range
...... patternRatio Ratio
...... patternReference Reference(Any)
...... patternSampledData SampledData
...... patternSignature Signature
...... patternTiming Timing
...... patternContactDetail ContactDetail
...... patternContributor Contributor
...... patternDataRequirement DataRequirement
...... patternExpression Expression
...... patternParameterDefinition ParameterDefinition
...... patternRelatedArtifact RelatedArtifact
...... patternTriggerDefinition TriggerDefinition
...... patternUsageContext UsageContext
...... patternDosage Dosage
...... patternMeta Meta
..... example Σ 0..* Element Example value (as defined for type)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... label Σ 1..1 string Describes the purpose of this example
...... value[x] Σ 1..1 Value of Example (one of allowed types)
....... valueBase64Binary base64Binary
....... valueBoolean boolean
....... valueCanonical canonical(Any)
....... valueCode code
....... valueDate date
....... valueDateTime dateTime
....... valueDecimal decimal
....... valueId id
....... valueInstant instant
....... valueInteger integer
....... valueMarkdown markdown
....... valueOid oid
....... valuePositiveInt positiveInt
....... valueString string
....... valueTime time
....... valueUnsignedInt unsignedInt
....... valueUri uri
....... valueUrl url
....... valueUuid uuid
....... valueAddress Address
....... valueAge Age
....... valueAnnotation Annotation
....... valueAttachment Attachment
....... valueCodeableConcept CodeableConcept
....... valueCoding Coding
....... valueContactPoint ContactPoint
....... valueCount Count
....... valueDistance Distance
....... valueDuration Duration
....... valueHumanName HumanName
....... valueIdentifier Identifier
....... valueMoney Money
....... valuePeriod Period
....... valueQuantity Quantity
....... valueRange Range
....... valueRatio Ratio
....... valueReference Reference(Any)
....... valueSampledData SampledData
....... valueSignature Signature
....... valueTiming Timing
....... valueContactDetail ContactDetail
....... valueContributor Contributor
....... valueDataRequirement DataRequirement
....... valueExpression Expression
....... valueParameterDefinition ParameterDefinition
....... valueRelatedArtifact RelatedArtifact
....... valueTriggerDefinition TriggerDefinition
....... valueUsageContext UsageContext
....... valueDosage Dosage
....... valueMeta Meta
..... minValue[x] Σ 0..1 Minimum Allowed Value (for some types)
...... minValueDate date
...... minValueDateTime dateTime
...... minValueInstant instant
...... minValueTime time
...... minValueDecimal decimal
...... minValueInteger integer
...... minValuePositiveInt positiveInt
...... minValueUnsignedInt unsignedInt
...... minValueQuantity Quantity
..... maxValue[x] Σ 0..1 Maximum Allowed Value (for some types)
...... maxValueDate date
...... maxValueDateTime dateTime
...... maxValueInstant instant
...... maxValueTime time
...... maxValueDecimal decimal
...... maxValueInteger integer
...... maxValuePositiveInt positiveInt
...... maxValueUnsignedInt unsignedInt
...... maxValueQuantity Quantity
..... maxLength Σ 0..1 integer Max length for strings
..... condition Σ 0..* id Reference to invariant about presence
..... constraint ΣC 0..* Element Condition that must evaluate to true
Constraints: eld-21
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... key ΣC 1..1 id Target of 'condition' reference above
...... requirements Σ 0..1 string Why this constraint is necessary or appropriate
...... severity Σ 1..1 code error | warning
Binding: ConstraintSeverity (required): SHALL applications comply with this constraint?
...... human Σ 1..1 string Human description of constraint
...... expression Σ 0..1 string FHIRPath expression of constraint
...... xpath Σ 0..1 string XPath expression of constraint
...... source Σ 0..1 canonical(StructureDefinition) Reference to original source of constraint
..... mustSupport Σ 0..1 boolean If the element must be supported
..... isModifier Σ 0..1 boolean If this modifies the meaning of other elements
..... isModifierReason Σ 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
Constraints: eld-12
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... strength Σ 1..1 code required | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.
...... description Σ 0..1 string Human explanation of the value set
...... valueSet ΣC 0..1 canonical(ValueSet) Source of value set
..... mapping Σ 0..* Element Map element to another set of definitions
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... identity Σ 1..1 id Reference to mapping declaration
...... language Σ 0..1 code Computable language of mapping
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
...... map Σ 1..1 string Details of the mapping
...... comment Σ 0..1 string Comments about the mapping or its use
... differential C 0..1 BackboneElement Differential view of the structure
Constraints: sdf-20, sdf-8a
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... element 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)
..... id 0..1 string Unique id for inter-element referencing
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
...... extension:element 1..* (Complex) DSTU2: element additional types
URL: http://hl7.org/fhir/1.0/StructureDefinition/extension-StructureDefinition.differential.element
Constraints: ext-1
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... path Σ 1..1 string Path of the element in the hierarchy of elements
..... representation Σ 0..* code xmlAttr | xmlText | typeAttr | cdaText | xhtml
Binding: PropertyRepresentation (required): How a property is represented when serialized.
..... sliceName Σ 0..1 string Name for this particular element (in a set of slices)
..... sliceIsConstraining Σ 0..1 boolean If this slice definition constrains an inherited slice definition (or not)
..... label Σ 0..1 string Name for element to display with or prompt for element
..... code Σ 0..* Coding Corresponding codes in terminologies
Binding: LOINCCodes (example): Codes that indicate the meaning of a data element.
..... slicing ΣC 0..1 Element This element is sliced - slices follow
Constraints: eld-1
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... discriminator Σ 0..* Element Element values that are used to distinguish the slices
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
....... type Σ 1..1 code value | exists | pattern | type | profile
Binding: DiscriminatorType (required): How an element value is interpreted when discrimination is evaluated.
....... path Σ 1..1 string Path to element value
...... description ΣC 0..1 string Text description of how slicing works (or not)
...... ordered Σ 0..1 boolean If elements must be in same order as slices
...... rules Σ 1..1 code closed | open | openAtEnd
Binding: SlicingRules (required): How slices are interpreted when evaluating an instance.
..... short Σ 0..1 string Concise definition for space-constrained presentation
..... definition Σ 0..1 markdown Full formal definition as narrative text
..... comment Σ 0..1 markdown Comments about the use of this element
..... requirements Σ 0..1 markdown Why this resource has been created
..... alias Σ 0..* string Other names
..... min ΣC 0..1 unsignedInt Minimum Cardinality
..... max ΣC 0..1 string Maximum Cardinality (a number or *)
Constraints: eld-3
..... base Σ 0..1 Element Base definition information for tools
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... 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
Constraints: eld-4, eld-17
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... code Σ 1..1 uri Data type or Resource (reference to definition)
Binding: FHIRDefinedType . (extensible): Either a resource or a data type, including logical model types.
...... profile Σ 0..* canonical(StructureDefinition | ImplementationGuide) Profiles (StructureDefinition or IG) - one must apply
...... targetProfile Σ 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): How resource references can be aggregated.
...... versioning Σ 0..1 code either | independent | specific
Binding: ReferenceVersionRules (required): Whether a reference needs to be version specific or version independent, or whether either can be used.
..... defaultValue[x] ΣC 0..1 Specified value if missing from instance
...... defaultValueBase64Binary base64Binary
...... defaultValueBoolean boolean
...... defaultValueCanonical canonical(Any)
...... defaultValueCode code
...... defaultValueDate date
...... defaultValueDateTime dateTime
...... defaultValueDecimal decimal
...... defaultValueId id
...... defaultValueInstant instant
...... defaultValueInteger integer
...... defaultValueMarkdown markdown
...... defaultValueOid oid
...... defaultValuePositiveInt positiveInt
...... defaultValueString string
...... defaultValueTime time
...... defaultValueUnsignedInt unsignedInt
...... defaultValueUri uri
...... defaultValueUrl url
...... defaultValueUuid uuid
...... defaultValueAddress Address
...... defaultValueAge Age
...... defaultValueAnnotation Annotation
...... defaultValueAttachment Attachment
...... defaultValueCodeableConcept CodeableConcept
...... defaultValueCoding Coding
...... defaultValueContactPoint ContactPoint
...... defaultValueCount Count
...... defaultValueDistance Distance
...... defaultValueDuration Duration
...... defaultValueHumanName HumanName
...... defaultValueIdentifier Identifier
...... defaultValueMoney Money
...... defaultValuePeriod Period
...... defaultValueQuantity Quantity
...... defaultValueRange Range
...... defaultValueRatio Ratio
...... defaultValueReference Reference(Any)
...... defaultValueSampledData SampledData
...... defaultValueSignature Signature
...... defaultValueTiming Timing
...... defaultValueContactDetail ContactDetail
...... defaultValueContributor Contributor
...... defaultValueDataRequirement DataRequirement
...... defaultValueExpression Expression
...... defaultValueParameterDefinition ParameterDefinition
...... defaultValueRelatedArtifact RelatedArtifact
...... defaultValueTriggerDefinition TriggerDefinition
...... defaultValueUsageContext UsageContext
...... defaultValueDosage Dosage
...... defaultValueMeta Meta
..... meaningWhenMissing ΣC 0..1 markdown Implicit meaning when this element is missing
..... orderMeaning Σ 0..1 string What the order of the elements means
..... fixed[x] ΣC 0..1 Value must be exactly this
...... fixedBase64Binary base64Binary
...... fixedBoolean boolean
...... fixedCanonical canonical(Any)
...... fixedCode code
...... fixedDate date
...... fixedDateTime dateTime
...... fixedDecimal decimal
...... fixedId id
...... fixedInstant instant
...... fixedInteger integer
...... fixedMarkdown markdown
...... fixedOid oid
...... fixedPositiveInt positiveInt
...... fixedString string
...... fixedTime time
...... fixedUnsignedInt unsignedInt
...... fixedUri uri
...... fixedUrl url
...... fixedUuid uuid
...... fixedAddress Address
...... fixedAge Age
...... fixedAnnotation Annotation
...... fixedAttachment Attachment
...... fixedCodeableConcept CodeableConcept
...... fixedCoding Coding
...... fixedContactPoint ContactPoint
...... fixedCount Count
...... fixedDistance Distance
...... fixedDuration Duration
...... fixedHumanName HumanName
...... fixedIdentifier Identifier
...... fixedMoney Money
...... fixedPeriod Period
...... fixedQuantity Quantity
...... fixedRange Range
...... fixedRatio Ratio
...... fixedReference Reference(Any)
...... fixedSampledData SampledData
...... fixedSignature Signature
...... fixedTiming Timing
...... fixedContactDetail ContactDetail
...... fixedContributor Contributor
...... fixedDataRequirement DataRequirement
...... fixedExpression Expression
...... fixedParameterDefinition ParameterDefinition
...... fixedRelatedArtifact RelatedArtifact
...... fixedTriggerDefinition TriggerDefinition
...... fixedUsageContext UsageContext
...... fixedDosage Dosage
...... fixedMeta Meta
..... pattern[x] ΣC 0..1 Value must have at least these property values
...... patternBase64Binary base64Binary
...... patternBoolean boolean
...... patternCanonical canonical(Any)
...... patternCode code
...... patternDate date
...... patternDateTime dateTime
...... patternDecimal decimal
...... patternId id
...... patternInstant instant
...... patternInteger integer
...... patternMarkdown markdown
...... patternOid oid
...... patternPositiveInt positiveInt
...... patternString string
...... patternTime time
...... patternUnsignedInt unsignedInt
...... patternUri uri
...... patternUrl url
...... patternUuid uuid
...... patternAddress Address
...... patternAge Age
...... patternAnnotation Annotation
...... patternAttachment Attachment
...... patternCodeableConcept CodeableConcept
...... patternCoding Coding
...... patternContactPoint ContactPoint
...... patternCount Count
...... patternDistance Distance
...... patternDuration Duration
...... patternHumanName HumanName
...... patternIdentifier Identifier
...... patternMoney Money
...... patternPeriod Period
...... patternQuantity Quantity
...... patternRange Range
...... patternRatio Ratio
...... patternReference Reference(Any)
...... patternSampledData SampledData
...... patternSignature Signature
...... patternTiming Timing
...... patternContactDetail ContactDetail
...... patternContributor Contributor
...... patternDataRequirement DataRequirement
...... patternExpression Expression
...... patternParameterDefinition ParameterDefinition
...... patternRelatedArtifact RelatedArtifact
...... patternTriggerDefinition TriggerDefinition
...... patternUsageContext UsageContext
...... patternDosage Dosage
...... patternMeta Meta
..... example Σ 0..* Element Example value (as defined for type)
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... label Σ 1..1 string Describes the purpose of this example
...... value[x] Σ 1..1 Value of Example (one of allowed types)
....... valueBase64Binary base64Binary
....... valueBoolean boolean
....... valueCanonical canonical(Any)
....... valueCode code
....... valueDate date
....... valueDateTime dateTime
....... valueDecimal decimal
....... valueId id
....... valueInstant instant
....... valueInteger integer
....... valueMarkdown markdown
....... valueOid oid
....... valuePositiveInt positiveInt
....... valueString string
....... valueTime time
....... valueUnsignedInt unsignedInt
....... valueUri uri
....... valueUrl url
....... valueUuid uuid
....... valueAddress Address
....... valueAge Age
....... valueAnnotation Annotation
....... valueAttachment Attachment
....... valueCodeableConcept CodeableConcept
....... valueCoding Coding
....... valueContactPoint ContactPoint
....... valueCount Count
....... valueDistance Distance
....... valueDuration Duration
....... valueHumanName HumanName
....... valueIdentifier Identifier
....... valueMoney Money
....... valuePeriod Period
....... valueQuantity Quantity
....... valueRange Range
....... valueRatio Ratio
....... valueReference Reference(Any)
....... valueSampledData SampledData
....... valueSignature Signature
....... valueTiming Timing
....... valueContactDetail ContactDetail
....... valueContributor Contributor
....... valueDataRequirement DataRequirement
....... valueExpression Expression
....... valueParameterDefinition ParameterDefinition
....... valueRelatedArtifact RelatedArtifact
....... valueTriggerDefinition TriggerDefinition
....... valueUsageContext UsageContext
....... valueDosage Dosage
....... valueMeta Meta
..... minValue[x] Σ 0..1 Minimum Allowed Value (for some types)
...... minValueDate date
...... minValueDateTime dateTime
...... minValueInstant instant
...... minValueTime time
...... minValueDecimal decimal
...... minValueInteger integer
...... minValuePositiveInt positiveInt
...... minValueUnsignedInt unsignedInt
...... minValueQuantity Quantity
..... maxValue[x] Σ 0..1 Maximum Allowed Value (for some types)
...... maxValueDate date
...... maxValueDateTime dateTime
...... maxValueInstant instant
...... maxValueTime time
...... maxValueDecimal decimal
...... maxValueInteger integer
...... maxValuePositiveInt positiveInt
...... maxValueUnsignedInt unsignedInt
...... maxValueQuantity Quantity
..... maxLength Σ 0..1 integer Max length for strings
..... condition Σ 0..* id Reference to invariant about presence
..... constraint ΣC 0..* Element Condition that must evaluate to true
Constraints: eld-21
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... key ΣC 1..1 id Target of 'condition' reference above
...... requirements Σ 0..1 string Why this constraint is necessary or appropriate
...... severity Σ 1..1 code error | warning
Binding: ConstraintSeverity (required): SHALL applications comply with this constraint?
...... human Σ 1..1 string Human description of constraint
...... expression Σ 0..1 string FHIRPath expression of constraint
...... xpath Σ 0..1 string XPath expression of constraint
...... source Σ 0..1 canonical(StructureDefinition) Reference to original source of constraint
..... mustSupport Σ 0..1 boolean If the element must be supported
..... isModifier Σ 0..1 boolean If this modifies the meaning of other elements
..... isModifierReason Σ 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
Constraints: eld-12
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... strength Σ 1..1 code required | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.
...... description Σ 0..1 string Human explanation of the value set
...... valueSet ΣC 0..1 canonical(ValueSet) Source of value set
..... mapping Σ 0..* Element Map element to another set of definitions
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... identity Σ 1..1 id Reference to mapping declaration
...... language Σ 0..1 code Computable language of mapping
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
...... map Σ 1..1 string Details of the mapping
...... comment Σ 0..1 string Comments about the mapping or its use

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
StructureDefinition.​meta.security Base extensible SecurityLabels . 📍4.0.1 tx.fhir.org
StructureDefinition.​meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
StructureDefinition.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
StructureDefinition.​text.status Base required NarrativeStatus 📍4.0.1 FHIR Std.
StructureDefinition.​identifier.use Base required IdentifierUse 📍4.0.1 FHIR Std.
StructureDefinition.​identifier.type Base extensible IdentifierType 📍4.0.1 FHIR Std.
StructureDefinition.​status Base required PublicationStatus 📍4.0.1 FHIR Std.
StructureDefinition.​jurisdiction Base extensible Jurisdiction 📍4.0.1 FHIR Std.
StructureDefinition.​keyword Base extensible Structure Definition Use Codes / Keywords 📍4.0.1 FHIR Std.
StructureDefinition.​fhirVersion Base required FHIRVersion 📍4.0.1 FHIR Std.
StructureDefinition.​kind Base required StructureDefinitionKind . 📍4.0.1 tx.fhir.org
StructureDefinition.​context.type Base required ExtensionContextType 📍4.0.1 FHIR Std.
StructureDefinition.​type Base extensible FHIRDefinedType . 📍4.0.1 tx.fhir.org
StructureDefinition.​derivation Base required TypeDerivationRule 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.representation Base required PropertyRepresentation 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.code Base example LOINC Codes 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.slicing.​discriminator.type Base required DiscriminatorType 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.slicing.​rules Base required SlicingRules 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.type.​code Base extensible FHIRDefinedType . 📍4.0.1 tx.fhir.org
StructureDefinition.​snapshot.element.type.​aggregation Base required AggregationMode 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.type.​versioning Base required ReferenceVersionRules 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.constraint.​severity Base required ConstraintSeverity 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.binding.​strength Base required BindingStrength 📍4.0.1 FHIR Std.
StructureDefinition.​snapshot.element.mapping.​language Base required MimeType 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​representation Base required PropertyRepresentation 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​slicing.discriminator.​type Base required DiscriminatorType 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​slicing.rules Base required SlicingRules 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​type.code Base extensible FHIRDefinedType . 📍4.0.1 tx.fhir.org
StructureDefinition.​differential.element.​type.aggregation Base required AggregationMode 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​type.versioning Base required ReferenceVersionRules 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​constraint.severity Base required ConstraintSeverity 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​binding.strength Base required BindingStrength 📍4.0.1 FHIR Std.
StructureDefinition.​differential.element.​mapping.language Base required MimeType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error StructureDefinition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error StructureDefinition If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error StructureDefinition If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error StructureDefinition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice StructureDefinition A resource should have narrative for robust management text.`div`.exists()
eld-1 error StructureDefinition.snapshot.element.slicing, StructureDefinition.differential.element.slicing If there are no discriminators, there must be a definition discriminator.exists() or description.exists()
ele-1 error StructureDefinition.meta, StructureDefinition.meta.extension, StructureDefinition.meta.extension:meta, StructureDefinition.meta.versionId, StructureDefinition.meta.lastUpdated, StructureDefinition.meta.source, StructureDefinition.meta.profile, StructureDefinition.meta.security, StructureDefinition.meta.tag, StructureDefinition.implicitRules, StructureDefinition.language, StructureDefinition.text, StructureDefinition.text.extension, StructureDefinition.text.extension:text, StructureDefinition.text.status, StructureDefinition.text.div, StructureDefinition.extension, StructureDefinition.modifierExtension, StructureDefinition.url, StructureDefinition.identifier, StructureDefinition.identifier.extension, StructureDefinition.identifier.extension:identifier, StructureDefinition.identifier.use, StructureDefinition.identifier.type, StructureDefinition.identifier.system, StructureDefinition.identifier.value, StructureDefinition.identifier.period, StructureDefinition.identifier.assigner, StructureDefinition.version, StructureDefinition.name, StructureDefinition.title, StructureDefinition.status, StructureDefinition.experimental, StructureDefinition.date, StructureDefinition.publisher, StructureDefinition.contact, StructureDefinition.contact.extension, StructureDefinition.contact.extension:name, StructureDefinition.contact.extension:telecom, StructureDefinition.contact.name, StructureDefinition.contact.telecom, StructureDefinition.description, StructureDefinition.useContext, StructureDefinition.jurisdiction, StructureDefinition.purpose, StructureDefinition.copyright, StructureDefinition.keyword, StructureDefinition.fhirVersion, StructureDefinition.mapping, StructureDefinition.mapping.extension, StructureDefinition.mapping.modifierExtension, StructureDefinition.mapping.identity, StructureDefinition.mapping.uri, StructureDefinition.mapping.name, StructureDefinition.mapping.comment, StructureDefinition.kind, StructureDefinition.kind.extension, StructureDefinition.kind.extension:kind, StructureDefinition.abstract, StructureDefinition.context, StructureDefinition.context.extension, StructureDefinition.context.modifierExtension, StructureDefinition.context.type, StructureDefinition.context.expression, StructureDefinition.context.expression.extension, StructureDefinition.context.expression.extension:contextType, StructureDefinition.contextInvariant, StructureDefinition.type, StructureDefinition.type.extension, StructureDefinition.type.extension:constrainedType, StructureDefinition.baseDefinition, StructureDefinition.derivation, StructureDefinition.snapshot, StructureDefinition.snapshot.extension, StructureDefinition.snapshot.modifierExtension, StructureDefinition.snapshot.element, StructureDefinition.snapshot.element.extension, StructureDefinition.snapshot.element.extension:element, StructureDefinition.snapshot.element.modifierExtension, StructureDefinition.snapshot.element.path, StructureDefinition.snapshot.element.representation, StructureDefinition.snapshot.element.sliceName, StructureDefinition.snapshot.element.sliceIsConstraining, StructureDefinition.snapshot.element.label, StructureDefinition.snapshot.element.code, StructureDefinition.snapshot.element.slicing, StructureDefinition.snapshot.element.slicing.extension, StructureDefinition.snapshot.element.slicing.discriminator, StructureDefinition.snapshot.element.slicing.discriminator.extension, StructureDefinition.snapshot.element.slicing.discriminator.type, StructureDefinition.snapshot.element.slicing.discriminator.path, StructureDefinition.snapshot.element.slicing.description, StructureDefinition.snapshot.element.slicing.ordered, StructureDefinition.snapshot.element.slicing.rules, StructureDefinition.snapshot.element.short, StructureDefinition.snapshot.element.definition, StructureDefinition.snapshot.element.comment, StructureDefinition.snapshot.element.requirements, StructureDefinition.snapshot.element.alias, StructureDefinition.snapshot.element.min, StructureDefinition.snapshot.element.max, StructureDefinition.snapshot.element.base, StructureDefinition.snapshot.element.base.extension, StructureDefinition.snapshot.element.base.path, StructureDefinition.snapshot.element.base.min, StructureDefinition.snapshot.element.base.max, StructureDefinition.snapshot.element.contentReference, StructureDefinition.snapshot.element.type, StructureDefinition.snapshot.element.type.extension, StructureDefinition.snapshot.element.type.code, StructureDefinition.snapshot.element.type.profile, StructureDefinition.snapshot.element.type.targetProfile, StructureDefinition.snapshot.element.type.aggregation, StructureDefinition.snapshot.element.type.versioning, StructureDefinition.snapshot.element.defaultValue[x], StructureDefinition.snapshot.element.meaningWhenMissing, StructureDefinition.snapshot.element.orderMeaning, StructureDefinition.snapshot.element.fixed[x], StructureDefinition.snapshot.element.pattern[x], StructureDefinition.snapshot.element.example, StructureDefinition.snapshot.element.example.extension, StructureDefinition.snapshot.element.example.label, StructureDefinition.snapshot.element.example.value[x], StructureDefinition.snapshot.element.minValue[x], StructureDefinition.snapshot.element.maxValue[x], StructureDefinition.snapshot.element.maxLength, StructureDefinition.snapshot.element.condition, StructureDefinition.snapshot.element.constraint, StructureDefinition.snapshot.element.constraint.extension, StructureDefinition.snapshot.element.constraint.key, StructureDefinition.snapshot.element.constraint.requirements, StructureDefinition.snapshot.element.constraint.severity, StructureDefinition.snapshot.element.constraint.human, StructureDefinition.snapshot.element.constraint.expression, StructureDefinition.snapshot.element.constraint.xpath, StructureDefinition.snapshot.element.constraint.source, StructureDefinition.snapshot.element.mustSupport, StructureDefinition.snapshot.element.isModifier, StructureDefinition.snapshot.element.isModifierReason, StructureDefinition.snapshot.element.isSummary, StructureDefinition.snapshot.element.binding, StructureDefinition.snapshot.element.binding.extension, StructureDefinition.snapshot.element.binding.strength, StructureDefinition.snapshot.element.binding.description, StructureDefinition.snapshot.element.binding.valueSet, StructureDefinition.snapshot.element.mapping, StructureDefinition.snapshot.element.mapping.extension, StructureDefinition.snapshot.element.mapping.identity, StructureDefinition.snapshot.element.mapping.language, StructureDefinition.snapshot.element.mapping.map, StructureDefinition.snapshot.element.mapping.comment, StructureDefinition.differential, StructureDefinition.differential.extension, StructureDefinition.differential.modifierExtension, StructureDefinition.differential.element, StructureDefinition.differential.element.extension, StructureDefinition.differential.element.extension:element, StructureDefinition.differential.element.modifierExtension, StructureDefinition.differential.element.path, StructureDefinition.differential.element.representation, StructureDefinition.differential.element.sliceName, StructureDefinition.differential.element.sliceIsConstraining, StructureDefinition.differential.element.label, StructureDefinition.differential.element.code, StructureDefinition.differential.element.slicing, StructureDefinition.differential.element.slicing.extension, StructureDefinition.differential.element.slicing.discriminator, StructureDefinition.differential.element.slicing.discriminator.extension, StructureDefinition.differential.element.slicing.discriminator.type, StructureDefinition.differential.element.slicing.discriminator.path, StructureDefinition.differential.element.slicing.description, StructureDefinition.differential.element.slicing.ordered, StructureDefinition.differential.element.slicing.rules, StructureDefinition.differential.element.short, StructureDefinition.differential.element.definition, StructureDefinition.differential.element.comment, StructureDefinition.differential.element.requirements, StructureDefinition.differential.element.alias, StructureDefinition.differential.element.min, StructureDefinition.differential.element.max, StructureDefinition.differential.element.base, StructureDefinition.differential.element.base.extension, StructureDefinition.differential.element.base.path, StructureDefinition.differential.element.base.min, StructureDefinition.differential.element.base.max, StructureDefinition.differential.element.contentReference, StructureDefinition.differential.element.type, StructureDefinition.differential.element.type.extension, StructureDefinition.differential.element.type.code, StructureDefinition.differential.element.type.profile, StructureDefinition.differential.element.type.targetProfile, StructureDefinition.differential.element.type.aggregation, StructureDefinition.differential.element.type.versioning, StructureDefinition.differential.element.defaultValue[x], StructureDefinition.differential.element.meaningWhenMissing, StructureDefinition.differential.element.orderMeaning, StructureDefinition.differential.element.fixed[x], StructureDefinition.differential.element.pattern[x], StructureDefinition.differential.element.example, StructureDefinition.differential.element.example.extension, StructureDefinition.differential.element.example.label, StructureDefinition.differential.element.example.value[x], StructureDefinition.differential.element.minValue[x], StructureDefinition.differential.element.maxValue[x], StructureDefinition.differential.element.maxLength, StructureDefinition.differential.element.condition, StructureDefinition.differential.element.constraint, StructureDefinition.differential.element.constraint.extension, StructureDefinition.differential.element.constraint.key, StructureDefinition.differential.element.constraint.requirements, StructureDefinition.differential.element.constraint.severity, StructureDefinition.differential.element.constraint.human, StructureDefinition.differential.element.constraint.expression, StructureDefinition.differential.element.constraint.xpath, StructureDefinition.differential.element.constraint.source, StructureDefinition.differential.element.mustSupport, StructureDefinition.differential.element.isModifier, StructureDefinition.differential.element.isModifierReason, StructureDefinition.differential.element.isSummary, StructureDefinition.differential.element.binding, StructureDefinition.differential.element.binding.extension, StructureDefinition.differential.element.binding.strength, StructureDefinition.differential.element.binding.description, StructureDefinition.differential.element.binding.valueSet, StructureDefinition.differential.element.mapping, StructureDefinition.differential.element.mapping.extension, StructureDefinition.differential.element.mapping.identity, StructureDefinition.differential.element.mapping.language, StructureDefinition.differential.element.mapping.map, StructureDefinition.differential.element.mapping.comment All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
eld-3 error StructureDefinition.snapshot.element.max, StructureDefinition.differential.element.max Max SHALL be a number or "*" empty() or ($this = '*') or (toInteger() >= 0)
eld-4 error StructureDefinition.snapshot.element.type, StructureDefinition.differential.element.type Aggregation may only be specified if one of the allowed types for the element is a reference aggregation.empty() or (code = 'Reference') or (code = 'canonical')
eld-12 error StructureDefinition.snapshot.element.binding, StructureDefinition.differential.element.binding ValueSet SHALL start with http:// or https:// or urn: valueSet.exists() implies (valueSet.startsWith('http:') or valueSet.startsWith('https') or valueSet.startsWith('urn:'))
eld-17 error StructureDefinition.snapshot.element.type, StructureDefinition.differential.element.type targetProfile is only allowed if the type is Reference or canonical (code='Reference' or code = 'canonical') or targetProfile.empty()
eld-21 warning StructureDefinition.snapshot.element.constraint, StructureDefinition.differential.element.constraint Constraints should have an expression or else validators will not be able to enforce them expression.exists()
ext-1 error StructureDefinition.meta.extension, StructureDefinition.meta.extension:meta, StructureDefinition.text.extension, StructureDefinition.text.extension:text, StructureDefinition.extension, StructureDefinition.modifierExtension, StructureDefinition.identifier.extension, StructureDefinition.identifier.extension:identifier, StructureDefinition.contact.extension, StructureDefinition.contact.extension:name, StructureDefinition.contact.extension:telecom, StructureDefinition.mapping.extension, StructureDefinition.mapping.modifierExtension, StructureDefinition.kind.extension, StructureDefinition.kind.extension:kind, StructureDefinition.context.extension, StructureDefinition.context.modifierExtension, StructureDefinition.context.expression.extension, StructureDefinition.context.expression.extension:contextType, StructureDefinition.type.extension, StructureDefinition.type.extension:constrainedType, StructureDefinition.snapshot.extension, StructureDefinition.snapshot.modifierExtension, StructureDefinition.snapshot.element.extension, StructureDefinition.snapshot.element.extension:element, StructureDefinition.snapshot.element.modifierExtension, StructureDefinition.snapshot.element.slicing.extension, StructureDefinition.snapshot.element.slicing.discriminator.extension, StructureDefinition.snapshot.element.base.extension, StructureDefinition.snapshot.element.type.extension, StructureDefinition.snapshot.element.example.extension, StructureDefinition.snapshot.element.constraint.extension, StructureDefinition.snapshot.element.binding.extension, StructureDefinition.snapshot.element.mapping.extension, StructureDefinition.differential.extension, StructureDefinition.differential.modifierExtension, StructureDefinition.differential.element.extension, StructureDefinition.differential.element.extension:element, StructureDefinition.differential.element.modifierExtension, StructureDefinition.differential.element.slicing.extension, StructureDefinition.differential.element.slicing.discriminator.extension, StructureDefinition.differential.element.base.extension, StructureDefinition.differential.element.type.extension, StructureDefinition.differential.element.example.extension, StructureDefinition.differential.element.constraint.extension, StructureDefinition.differential.element.binding.extension, StructureDefinition.differential.element.mapping.extension Must have either extensions or value[x], not both extension.exists() != value.exists()
sdf-0 warning StructureDefinition Name should be usable as an identifier for the module by machine processing applications such as code generation name.matches('[A-Z]([A-Za-z0-9_]){0,254}')
sdf-1 error StructureDefinition Element paths must be unique unless the structure is a constraint derivation = 'constraint' or snapshot.element.select(path).isDistinct()
sdf-15a error StructureDefinition If the first element in a differential has no "." in the path and it's not a logical model, it has no type
Requirements:

No Type on the root element (differential)

(kind!='logical' and differential.element.first().path.contains('.').not()) implies differential.element.first().type.empty()
sdf-2 error StructureDefinition.mapping Must have at least a name or a uri (or both) name.exists() or uri.exists()
sdf-3 error StructureDefinition.snapshot Each element definition in a snapshot must have a formal definition and cardinalities element.all(definition.exists() and min.exists() and max.exists())
sdf-4 error StructureDefinition If the structure is not abstract, then there SHALL be a baseDefinition
Requirements:

Ensure that the base types are abstract

abstract = true or baseDefinition.exists()
sdf-5 error StructureDefinition If the structure defines an extension then the structure must have context information type != 'Extension' or derivation = 'specialization' or (context.exists())
sdf-6 error StructureDefinition A structure must have either a differential, or a snapshot (or both) snapshot.exists() or differential.exists()
sdf-8 error StructureDefinition.snapshot All snapshot elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models (%resource.kind = 'logical' or element.first().path = %resource.type) and element.tail().all(path.startsWith(%resource.snapshot.element.first().path&'.'))
sdf-10 error StructureDefinition.snapshot.element provide either a binding reference or a description (or both)
Requirements:

binding is required

binding.empty() or binding.valueSet.exists() or binding.description.exists()
sdf-11 error StructureDefinition If there's a type, its content must match the path name in the first element of a snapshot
Requirements:

Ensure that the type is not inconsistent with the other information in the structure

kind != 'logical' implies snapshot.empty() or snapshot.element.first().path = type
sdf-14 error StructureDefinition All element definitions must have an id
Requirements:

elements have id

snapshot.element.all(id.exists()) and differential.element.all(id.exists())
sdf-15 error StructureDefinition The first element in a snapshot has no type unless model is a logical model.
Requirements:

No Type on the root element (snapshot)

kind!='logical' implies snapshot.element.first().type.empty()
sdf-16 error StructureDefinition All element definitions must have unique ids (snapshot)
Requirements:

element ids need to be unique

snapshot.element.all(id.exists()) and snapshot.element.id.trace('ids').isDistinct()
sdf-17 error StructureDefinition All element definitions must have unique ids (diff)
Requirements:

element ids need to be unique

differential.element.all(id.exists()) and differential.element.id.trace('ids').isDistinct()
sdf-18 error StructureDefinition Context Invariants can only be used for extensions
Requirements:

contextInvariant

contextInvariant.exists() implies type = 'Extension'
sdf-20 error StructureDefinition.differential No slicing on the root element
Requirements:

no slicing on root

element.where(path.contains('.').not()).slicing.empty()
sdf-21 error StructureDefinition Default values can only be specified on specializations
Requirements:

no default values on data types or resources

differential.element.defaultValue.exists() implies (derivation = 'specialization')
sdf-22 error StructureDefinition FHIR Specification models never have default values
Requirements:

no default values on data types or resources

url.startsWith('http://hl7.org/fhir/StructureDefinition') implies (snapshot.element.defaultValue.empty() and differential.element.defaultValue.empty())
sdf-23 error StructureDefinition No slice name on root
Requirements:

no sliceName on root

(snapshot | differential).element.all(path.contains('.').not() implies sliceName.empty())
sdf-8a error StructureDefinition.differential 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 (%resource.kind = 'logical' or element.first().path.startsWith(%resource.type)) and (element.tail().empty() or element.tail().all(path.startsWith(%resource.differential.element.first().path.replaceMatches('\\..*','')&'.')))
sdf-9 error StructureDefinition In any snapshot or differential, no label, code or requirements on an element without a "." in the path (e.g. the first element)
Requirements:

Because these 3 fields seem to be have overlapping meaning with the ones in the root of StructureDefinition

children().element.where(path.contains('.').not()).label.empty() and children().element.where(path.contains('.').not()).code.empty() and children().element.where(path.contains('.').not()).requirements.empty()
sdf-19 error StructureDefinition FHIR Specification models only use FHIR defined types
Requirements:

custom types only in logical models

url.startsWith('http://hl7.org/fhir/StructureDefinition') implies (differential.element.type.code.all(matches('^[a-zA-Z0-9]+$') or matches('^http:\\/\\/hl7\\.org\\/fhirpath\\/System\\.[A-Z][A-Za-z]+$')) and snapshot.element.type.code.all(matches('^[a-zA-Z0-9\\.]+$') or matches('^http:\\/\\/hl7\\.org\\/fhirpath\\/System\\.[A-Z][A-Za-z]+$')))
sdf-8b error StructureDefinition.snapshot All snapshot elements must have a base definition element.all(base.exists())
txt-1 error StructureDefinition.text.div The narrative SHALL contain only the basic html formatting elements and attributes described in chapters 7-11 (except section 4 of chapter 9) and 15 of the HTML 4.0 standard, <a> elements (either name or href), images and internally contained style attributes htmlChecks()
txt-2 error StructureDefinition.text.div The narrative SHALL have some non-whitespace content htmlChecks()

 

Other representations of profile: CSV, Excel, Schematron