Extensions for Using Data Elements from FHIR R5 in FHIR STU3
0.1.0 - STU International flag

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

Resource Profile: Profile_R5_StructureDefinition_R3

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

This cross-version profile allows R5 StructureDefinition content to be represented via FHIR STU3 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 Structural Definition
Constraints: sdf-9, sdf-19, sdf-16, sdf-18, sdf-17, sdf-11, sdf-14, sdf-1, sdf-7, sdf-6, sdf-5, sdf-4
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:versionAlgorithm 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm]] R5: How to compare versions (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm
.... extension:copyrightLabel 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel]] R5: Copyright holder and year(s) (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... name Σ 1..1 string Name for this structure definition (computer friendly)
... status ?!Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of a Value Set or Concept Map.
... experimental ?!Σ 0..1 boolean For testing purposes, not real usage
... kind Σ 1..1 code primitive-type | complex-type | resource | logical
Binding: StructureDefinitionKind (required): Defines the type of structure that a definition is describing.
... abstract Σ 1..1 boolean Whether the structure is abstract
... type ΣC 1..1 code Type defined or constrained by this structure
Binding: FHIRDefinedType (extensible): Either a resource or a data type, including logical model types

doco Documentation for this format

Terminology Bindings

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

Constraints

Id Grade Path(s) Description Expression
dom-1 error StructureDefinition If the resource is contained in another resource, it SHALL NOT contain any narrative contained.text.empty()
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 contained.where(('#'+id in %resource.descendants().reference).not()).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()
sdf-1 error StructureDefinition Element paths must be unique unless the structure is a constraint derivation = 'constraint' or snapshot.element.select(path).isDistinct()
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() and contextType.exists())
sdf-6 error StructureDefinition A structure must have either a differential, or a snapshot (or both) snapshot.exists() or differential.exists()
sdf-7 error StructureDefinition If the structure describes a base Resource or Type, the URL has to start with "http://hl7.org/fhir/StructureDefinition/" and the tail must match the id (derivation = 'constraint') or (kind = 'logical') or (url = 'http://hl7.org/fhir/StructureDefinition/'+id)
sdf-9 error StructureDefinition In any snapshot or differential, no label, code or requirements on the 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

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-16 error StructureDefinition All element definitions must have unique ids (snapshot)
Requirements:

element ids need to be unique

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.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 Custom types can only be used in logical models
Requirements:

custom types only in logical models

kind = 'logical' or (differential.element.type.code.all(hasValue() implies matches('^[a-zA-Z0-9]+$')) and snapshot.element.type.code.all(hasValue() implies matches('^[a-zA-Z0-9]+$')))

This structure is derived from StructureDefinition

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. StructureDefinition 0..* StructureDefinition Structural Definition
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:versionAlgorithm 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm]] R5: How to compare versions (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm
.... extension:copyrightLabel 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel]] R5: Copyright holder and year(s) (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel
... contact
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:contact 0..* (Complex) R5: Contact details for the publisher additional types
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.contact
... fhirVersion
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:fhirVersion 0..1 code R5: fhirVersion additional types
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.fhirVersion
Binding: R5FHIRVersionForR3 (0.1.0) (required): All published FHIR Versions.
.... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:type 1..1 code R5: fhirpath | element | extension (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.context.type
Binding: R5ExtensionContextTypeForR3 (0.1.0) (required): How an extension context is interpreted.

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. StructureDefinition C 0..* StructureDefinition Structural Definition
Constraints: sdf-9, sdf-19, sdf-16, sdf-18, sdf-17, sdf-11, sdf-14, sdf-1, sdf-7, sdf-6, sdf-5, sdf-4
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: Common Languages . (extensible): A human language.
Additional BindingsPurpose
All Languages 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
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:versionAlgorithm 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm]] R5: How to compare versions (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm
.... extension:copyrightLabel 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel]] R5: Copyright holder and year(s) (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... url Σ 1..1 uri Logical URI to reference this structure definition (globally unique)
... identifier Σ 0..* Identifier Additional identifier for the structure definition
... version Σ 0..1 string Business version of the structure definition
... name Σ 1..1 string Name for this structure definition (computer friendly)
... title Σ 0..1 string Name for this structure definition (human friendly)
... status ?!Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of a Value Set or Concept Map.
... experimental ?!Σ 0..1 boolean For testing purposes, not real usage
... date Σ 0..1 dateTime Date this was 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 xml:id (or equivalent in JSON)
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:contact 0..* (Complex) R5: Contact details for the publisher additional types
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.contact
.... 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 Context 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: Structure Definition Codes (example): Codes for the meaning of the defined structure (SNOMED CT and LOINC codes, as an example).
... fhirVersion Σ 0..1 id FHIR Version this StructureDefinition targets
.... id 0..1 string xml:id (or equivalent in JSON)
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:fhirVersion 0..1 code R5: fhirVersion additional types
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.fhirVersion
Binding: R5FHIRVersionForR3 (0.1.0) (required): All published FHIR Versions.
.... value 0..1 string Primitive value for id
... mapping C 0..* BackboneElement External specification that the content is mapped to
Constraints: sdf-2
.... id 0..1 string xml:id (or equivalent in JSON)
.... extension 0..* Extension Additional Content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
.... 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.
... abstract Σ 1..1 boolean Whether the structure is abstract
... contextType ΣC 0..1 code resource | datatype | extension
Binding: ExtensionContext (required): How an extension context is interpreted.
... context ΣC 0..* string Where the extension can be used in instances
.... id 0..1 string xml:id (or equivalent in JSON)
.... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:type 1..1 code R5: fhirpath | element | extension (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.context.type
Binding: R5ExtensionContextTypeForR3 (0.1.0) (required): How an extension context is interpreted.
.... 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 code Type defined or constrained by this structure
Binding: FHIRDefinedType (extensible): Either a resource or a data type, including logical model types
... baseDefinition ΣC 0..1 uri 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-15, sdf-8, sdf-3
.... id 0..1 string xml:id (or equivalent in JSON)
.... extension 0..* Extension Additional Content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
.... element C 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)
... differential C 0..1 BackboneElement Differential view of the structure
Constraints: sdf-15a, sdf-20, sdf-8a
.... id 0..1 string xml:id (or equivalent in JSON)
.... extension 0..* Extension Additional Content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
.... element 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
StructureDefinition.​language Base extensible Common Languages . 📍3.0.2 tx.fhir.org
StructureDefinition.​status Base required PublicationStatus 📍3.0.2 FHIR Std.
StructureDefinition.​jurisdiction Base extensible Jurisdiction ValueSet 📍3.0.2 FHIR Std.
StructureDefinition.​keyword Base example Structure Definition Codes 📍3.0.2 FHIR Std.
StructureDefinition.​kind Base required StructureDefinitionKind 📍3.0.2 FHIR Std.
StructureDefinition.​contextType Base required ExtensionContext 📍3.0.2 FHIR Std.
StructureDefinition.​type Base extensible FHIRDefinedType 📍3.0.2 FHIR Std.
StructureDefinition.​derivation Base required TypeDerivationRule 📍3.0.2 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-1 error StructureDefinition If the resource is contained in another resource, it SHALL NOT contain any narrative contained.text.empty()
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 contained.where(('#'+id in %resource.descendants().reference).not()).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()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() | (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
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.differential If the first element in a differential has no "." in the path, it has no type
Requirements:

No Type on the root element (differential)

element.first().path.contains('.').not() implies 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 and min and max)
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() and contextType.exists())
sdf-6 error StructureDefinition A structure must have either a differential, or a snapshot (or both) snapshot.exists() or differential.exists()
sdf-7 error StructureDefinition If the structure describes a base Resource or Type, the URL has to start with "http://hl7.org/fhir/StructureDefinition/" and the tail must match the id (derivation = 'constraint') or (kind = 'logical') or (url = 'http://hl7.org/fhir/StructureDefinition/'+id)
sdf-8 error StructureDefinition.snapshot In any snapshot, all the elements must be in the specified type (%resource.kind = 'logical' or element.first().path = %resource.type) and element.tail().all(path.startsWith(%resource.snapshot.element.first().path&'.'))
sdf-9 error StructureDefinition In any snapshot or differential, no label, code or requirements on the 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

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.snapshot The first element in a snapshot has no type
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.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.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 Custom types can only be used in logical models
Requirements:

custom types only in logical models

kind = 'logical' or (differential.element.type.code.all(hasValue() implies matches('^[a-zA-Z0-9]+$')) and snapshot.element.type.code.all(hasValue() implies matches('^[a-zA-Z0-9]+$')))
sdf-20 error StructureDefinition.differential No slicing on the root element
Requirements:

no slicing on root

element.where(path.contains('.').not()).slicing.empty()
sdf-8a error StructureDefinition.differential In any differential, all the elements must be in the specified type element.first().path.startsWith(%resource.type) and element.tail().all(path.startsWith(%resource.type&'.'))

This structure is derived from StructureDefinition

Summary

Mandatory: 0 element(2 nested mandatory elements)

Extensions

This structure refers to these extensions:

Maturity: 0

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. StructureDefinition C 0..* StructureDefinition Structural Definition
Constraints: sdf-9, sdf-19, sdf-16, sdf-18, sdf-17, sdf-11, sdf-14, sdf-1, sdf-7, sdf-6, sdf-5, sdf-4
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:versionAlgorithm 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm]] R5: How to compare versions (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm
.... extension:copyrightLabel 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel]] R5: Copyright holder and year(s) (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... name Σ 1..1 string Name for this structure definition (computer friendly)
... status ?!Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of a Value Set or Concept Map.
... experimental ?!Σ 0..1 boolean For testing purposes, not real usage
... kind Σ 1..1 code primitive-type | complex-type | resource | logical
Binding: StructureDefinitionKind (required): Defines the type of structure that a definition is describing.
... abstract Σ 1..1 boolean Whether the structure is abstract
... type ΣC 1..1 code Type defined or constrained by this structure
Binding: FHIRDefinedType (extensible): Either a resource or a data type, including logical model types

doco Documentation for this format

Terminology Bindings

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

Constraints

Id Grade Path(s) Description Expression
dom-1 error StructureDefinition If the resource is contained in another resource, it SHALL NOT contain any narrative contained.text.empty()
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 contained.where(('#'+id in %resource.descendants().reference).not()).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()
sdf-1 error StructureDefinition Element paths must be unique unless the structure is a constraint derivation = 'constraint' or snapshot.element.select(path).isDistinct()
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() and contextType.exists())
sdf-6 error StructureDefinition A structure must have either a differential, or a snapshot (or both) snapshot.exists() or differential.exists()
sdf-7 error StructureDefinition If the structure describes a base Resource or Type, the URL has to start with "http://hl7.org/fhir/StructureDefinition/" and the tail must match the id (derivation = 'constraint') or (kind = 'logical') or (url = 'http://hl7.org/fhir/StructureDefinition/'+id)
sdf-9 error StructureDefinition In any snapshot or differential, no label, code or requirements on the 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

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-16 error StructureDefinition All element definitions must have unique ids (snapshot)
Requirements:

element ids need to be unique

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.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 Custom types can only be used in logical models
Requirements:

custom types only in logical models

kind = 'logical' or (differential.element.type.code.all(hasValue() implies matches('^[a-zA-Z0-9]+$')) and snapshot.element.type.code.all(hasValue() implies matches('^[a-zA-Z0-9]+$')))

Differential View

This structure is derived from StructureDefinition

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. StructureDefinition 0..* StructureDefinition Structural Definition
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:versionAlgorithm 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm]] R5: How to compare versions (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm
.... extension:copyrightLabel 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel]] R5: Copyright holder and year(s) (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel
... contact
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:contact 0..* (Complex) R5: Contact details for the publisher additional types
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.contact
... fhirVersion
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:fhirVersion 0..1 code R5: fhirVersion additional types
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.fhirVersion
Binding: R5FHIRVersionForR3 (0.1.0) (required): All published FHIR Versions.
.... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:type 1..1 code R5: fhirpath | element | extension (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.context.type
Binding: R5ExtensionContextTypeForR3 (0.1.0) (required): How an extension context is interpreted.

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. StructureDefinition C 0..* StructureDefinition Structural Definition
Constraints: sdf-9, sdf-19, sdf-16, sdf-18, sdf-17, sdf-11, sdf-14, sdf-1, sdf-7, sdf-6, sdf-5, sdf-4
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: Common Languages . (extensible): A human language.
Additional BindingsPurpose
All Languages 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
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:versionAlgorithm 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm]] R5: How to compare versions (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-versionAlgorithm
.... extension:copyrightLabel 0..1 ?gen-e1? [CanonicalType[http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel]] R5: Copyright holder and year(s) (new)
URL: http://hl7.org/fhir/StructureDefinition/artifact-copyrightLabel
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... url Σ 1..1 uri Logical URI to reference this structure definition (globally unique)
... identifier Σ 0..* Identifier Additional identifier for the structure definition
... version Σ 0..1 string Business version of the structure definition
... name Σ 1..1 string Name for this structure definition (computer friendly)
... title Σ 0..1 string Name for this structure definition (human friendly)
... status ?!Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of a Value Set or Concept Map.
... experimental ?!Σ 0..1 boolean For testing purposes, not real usage
... date Σ 0..1 dateTime Date this was 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 xml:id (or equivalent in JSON)
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:contact 0..* (Complex) R5: Contact details for the publisher additional types
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.contact
.... 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 Context 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: Structure Definition Codes (example): Codes for the meaning of the defined structure (SNOMED CT and LOINC codes, as an example).
... fhirVersion Σ 0..1 id FHIR Version this StructureDefinition targets
.... id 0..1 string xml:id (or equivalent in JSON)
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:fhirVersion 0..1 code R5: fhirVersion additional types
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.fhirVersion
Binding: R5FHIRVersionForR3 (0.1.0) (required): All published FHIR Versions.
.... value 0..1 string Primitive value for id
... mapping C 0..* BackboneElement External specification that the content is mapped to
Constraints: sdf-2
.... id 0..1 string xml:id (or equivalent in JSON)
.... extension 0..* Extension Additional Content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
.... 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.
... abstract Σ 1..1 boolean Whether the structure is abstract
... contextType ΣC 0..1 code resource | datatype | extension
Binding: ExtensionContext (required): How an extension context is interpreted.
... context ΣC 0..* string Where the extension can be used in instances
.... id 0..1 string xml:id (or equivalent in JSON)
.... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:type 1..1 code R5: fhirpath | element | extension (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-StructureDefinition.context.type
Binding: R5ExtensionContextTypeForR3 (0.1.0) (required): How an extension context is interpreted.
.... 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 code Type defined or constrained by this structure
Binding: FHIRDefinedType (extensible): Either a resource or a data type, including logical model types
... baseDefinition ΣC 0..1 uri 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-15, sdf-8, sdf-3
.... id 0..1 string xml:id (or equivalent in JSON)
.... extension 0..* Extension Additional Content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
.... element C 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)
... differential C 0..1 BackboneElement Differential view of the structure
Constraints: sdf-15a, sdf-20, sdf-8a
.... id 0..1 string xml:id (or equivalent in JSON)
.... extension 0..* Extension Additional Content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
.... element 1..* ElementDefinition Definition of elements in the resource (if no StructureDefinition)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
StructureDefinition.​language Base extensible Common Languages . 📍3.0.2 tx.fhir.org
StructureDefinition.​status Base required PublicationStatus 📍3.0.2 FHIR Std.
StructureDefinition.​jurisdiction Base extensible Jurisdiction ValueSet 📍3.0.2 FHIR Std.
StructureDefinition.​keyword Base example Structure Definition Codes 📍3.0.2 FHIR Std.
StructureDefinition.​kind Base required StructureDefinitionKind 📍3.0.2 FHIR Std.
StructureDefinition.​contextType Base required ExtensionContext 📍3.0.2 FHIR Std.
StructureDefinition.​type Base extensible FHIRDefinedType 📍3.0.2 FHIR Std.
StructureDefinition.​derivation Base required TypeDerivationRule 📍3.0.2 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-1 error StructureDefinition If the resource is contained in another resource, it SHALL NOT contain any narrative contained.text.empty()
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 contained.where(('#'+id in %resource.descendants().reference).not()).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()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() | (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
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.differential If the first element in a differential has no "." in the path, it has no type
Requirements:

No Type on the root element (differential)

element.first().path.contains('.').not() implies 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 and min and max)
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() and contextType.exists())
sdf-6 error StructureDefinition A structure must have either a differential, or a snapshot (or both) snapshot.exists() or differential.exists()
sdf-7 error StructureDefinition If the structure describes a base Resource or Type, the URL has to start with "http://hl7.org/fhir/StructureDefinition/" and the tail must match the id (derivation = 'constraint') or (kind = 'logical') or (url = 'http://hl7.org/fhir/StructureDefinition/'+id)
sdf-8 error StructureDefinition.snapshot In any snapshot, all the elements must be in the specified type (%resource.kind = 'logical' or element.first().path = %resource.type) and element.tail().all(path.startsWith(%resource.snapshot.element.first().path&'.'))
sdf-9 error StructureDefinition In any snapshot or differential, no label, code or requirements on the 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

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.snapshot The first element in a snapshot has no type
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.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.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 Custom types can only be used in logical models
Requirements:

custom types only in logical models

kind = 'logical' or (differential.element.type.code.all(hasValue() implies matches('^[a-zA-Z0-9]+$')) and snapshot.element.type.code.all(hasValue() implies matches('^[a-zA-Z0-9]+$')))
sdf-20 error StructureDefinition.differential No slicing on the root element
Requirements:

no slicing on root

element.where(path.contains('.').not()).slicing.empty()
sdf-8a error StructureDefinition.differential In any differential, all the elements must be in the specified type element.first().path.startsWith(%resource.type) and element.tail().all(path.startsWith(%resource.type&'.'))

This structure is derived from StructureDefinition

Summary

Mandatory: 0 element(2 nested mandatory elements)

Extensions

This structure refers to these extensions:

Maturity: 0

 

Other representations of profile: CSV, Excel, Schematron