FHIR Clinical Guidelines (v1.0.0) (STU1)

This page is part of the Clinical Guidelines (v1.0.0: STU 1) based on FHIR R4. This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

D.4.1 StructureDefinition-cpg-casefeaturedefinition

Introduction:

Examples:

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-casefeaturedefinition

Profile of StructureDefinition to represent a case feature of a clinical practice guideline, optionally specifying formal computational semantics, as well as relationships to other case features and specific aspects of the guideline

This profile builds on CPGShareableStructureDefinition.

This profile was published on Thu Jun 06 00:00:00 UTC 2019 as a draft by Health Level Seven, Inc. - CDS WG.

Description of Profiles, Differentials, and Snapshots.

NameFlagsCard.TypeDescription & Constraintsdoco
.. StructureDefinition 0..*CPGShareableStructureDefinitionStructural Definition
... cpg-inferenceExpression S0..1ExpressionHow to calculate the feature
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-inferenceExpression
... cpg-assertionExpression S0..1ExpressionHow the feature is asserted
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-assertionExpression
... cpg-featureExpression S0..1ExpressionHow the feature is expression
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-featureExpression
... cpg-caseFeatureOf S0..*canonical()Which guideline components this is a feature of
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-caseFeatureOf
... kind 1..1codeprimitive-type | complex-type | resource | logical
Fixed Value: resource
... abstract 1..1booleanWhether the structure is abstract
Fixed Value: false
... derivation 1..1codespecialization | constraint - How relates to base definition
Fixed Value: constraint

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. StructureDefinition I0..*CPGShareableStructureDefinitionStructural Definition
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages: A human language.

... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... cpg-knowledgeCapability S1..*codeshareable | computable | publishable | executable
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeCapability
Binding: CPG Knowledge Capability (required): A knowledge capability provided by a knowledge artifact


... cpg-knowledgeRepresentationLevel S0..*codenarrative | semi-structured | structured | executable
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeRepresentationLevel
Binding: CPG Knowledge Representation Level (required): A level of knowledge representation provided by this artifact


... cpg-inferenceExpression S0..1ExpressionHow to calculate the feature
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-inferenceExpression
... cpg-assertionExpression S0..1ExpressionHow the feature is asserted
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-assertionExpression
... cpg-featureExpression S0..1ExpressionHow the feature is expression
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-featureExpression
... cpg-caseFeatureOf S0..*canonical()Which guideline components this is a feature of
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-caseFeatureOf
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ1..1uriCanonical identifier for this structure definition, represented as a URI (globally unique)
... identifier SΣ0..*IdentifierAdditional identifier for the structure definition
... version Σ1..1stringBusiness version of the structure definition
... name ΣI1..1stringName for this structure definition (computer friendly)
... title SΣ0..1stringName for this structure definition (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ1..1booleanFor testing purposes, not real usage
... date SΣ0..1dateTimeDate last changed
... publisher Σ1..1stringName of the publisher (organization or individual)
... contact SΣ0..*ContactDetailContact details for the publisher
... description 1..1markdownNatural language description of the structure definition
... useContext SΣ0..*UsageContextThe context that the content is intended to support
... jurisdiction SΣ0..*CodeableConceptIntended jurisdiction for structure definition (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1markdownWhy this structure definition is defined
... copyright 0..1markdownUse and/or publishing restrictions
... keyword Σ0..*CodingAssist with indexing and finding
Binding: DefinitionUseCodes (extensible): Codes for the meaning of the defined structure (SNOMED CT and LOINC codes, as an example).


... fhirVersion Σ1..1codeFHIR Version this StructureDefinition targets
Binding: FHIRVersion (required): All published FHIR Versions.

... mapping I0..*BackboneElementExternal specification that the content is mapped to
sdf-2: Must have at least a name or a uri (or both)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... identity 1..1idInternal id when this mapping is used
.... uri I0..1uriIdentifies what this mapping refers to
.... name I0..1stringNames what this mapping refers to
.... comment 0..1stringVersions, Issues, Scope limitations etc.
... kind Σ1..1codeprimitive-type | complex-type | resource | logical
Binding: StructureDefinitionKind (required): Defines the type of structure that a definition is describing.


Fixed Value: resource
... abstract Σ1..1booleanWhether the structure is abstract
Fixed Value: false
... context ΣI0..*BackboneElementIf an extension, where it can be used in instances
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type Σ1..1codefhirpath | element | extension
Binding: ExtensionContextType (required): How an extension context is interpreted.

.... expression Σ1..1stringWhere the extension can be used in instances
... contextInvariant ΣI0..*stringFHIRPath invariants - when the extension can be used
... type ΣI1..1uriType defined or constrained by this structure
Binding: FHIRDefinedType (extensible): Either a resource or a data type, including logical model types.

... baseDefinition ΣI0..1canonical(StructureDefinition)Definition that this type is constrained/specialized from
... derivation Σ1..1codespecialization | constraint - How relates to base definition
Binding: TypeDerivationRule (required): How a type relates to its baseDefinition.


Fixed Value: constraint
... snapshot I0..1BackboneElementSnapshot view of the structure
sdf-3: Each element definition in a snapshot must have a formal definition and cardinalities
sdf-8: All snapshot elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models
sdf-8b: All snapshot elements must have a base definition
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... element I1..*ElementDefinitionDefinition of elements in the resource (if no StructureDefinition)
sdf-10: provide either a binding reference or a description (or both)
... differential I0..1BackboneElementDifferential view of the structure
sdf-20: No slicing on the root element
sdf-8a: 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
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... element 1..*ElementDefinitionDefinition of elements in the resource (if no StructureDefinition)

doco Documentation for this format

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. StructureDefinition 0..*CPGShareableStructureDefinitionStructural Definition
... cpg-inferenceExpression S0..1ExpressionHow to calculate the feature
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-inferenceExpression
... cpg-assertionExpression S0..1ExpressionHow the feature is asserted
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-assertionExpression
... cpg-featureExpression S0..1ExpressionHow the feature is expression
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-featureExpression
... cpg-caseFeatureOf S0..*canonical()Which guideline components this is a feature of
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-caseFeatureOf
... kind 1..1codeprimitive-type | complex-type | resource | logical
Fixed Value: resource
... abstract 1..1booleanWhether the structure is abstract
Fixed Value: false
... derivation 1..1codespecialization | constraint - How relates to base definition
Fixed Value: constraint

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. StructureDefinition I0..*CPGShareableStructureDefinitionStructural Definition
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages: A human language.

... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... cpg-knowledgeCapability S1..*codeshareable | computable | publishable | executable
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeCapability
Binding: CPG Knowledge Capability (required): A knowledge capability provided by a knowledge artifact


... cpg-knowledgeRepresentationLevel S0..*codenarrative | semi-structured | structured | executable
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeRepresentationLevel
Binding: CPG Knowledge Representation Level (required): A level of knowledge representation provided by this artifact


... cpg-inferenceExpression S0..1ExpressionHow to calculate the feature
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-inferenceExpression
... cpg-assertionExpression S0..1ExpressionHow the feature is asserted
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-assertionExpression
... cpg-featureExpression S0..1ExpressionHow the feature is expression
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-featureExpression
... cpg-caseFeatureOf S0..*canonical()Which guideline components this is a feature of
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-caseFeatureOf
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ1..1uriCanonical identifier for this structure definition, represented as a URI (globally unique)
... identifier SΣ0..*IdentifierAdditional identifier for the structure definition
... version Σ1..1stringBusiness version of the structure definition
... name ΣI1..1stringName for this structure definition (computer friendly)
... title SΣ0..1stringName for this structure definition (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ1..1booleanFor testing purposes, not real usage
... date SΣ0..1dateTimeDate last changed
... publisher Σ1..1stringName of the publisher (organization or individual)
... contact SΣ0..*ContactDetailContact details for the publisher
... description 1..1markdownNatural language description of the structure definition
... useContext SΣ0..*UsageContextThe context that the content is intended to support
... jurisdiction SΣ0..*CodeableConceptIntended jurisdiction for structure definition (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1markdownWhy this structure definition is defined
... copyright 0..1markdownUse and/or publishing restrictions
... keyword Σ0..*CodingAssist with indexing and finding
Binding: DefinitionUseCodes (extensible): Codes for the meaning of the defined structure (SNOMED CT and LOINC codes, as an example).


... fhirVersion Σ1..1codeFHIR Version this StructureDefinition targets
Binding: FHIRVersion (required): All published FHIR Versions.

... mapping I0..*BackboneElementExternal specification that the content is mapped to
sdf-2: Must have at least a name or a uri (or both)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... identity 1..1idInternal id when this mapping is used
.... uri I0..1uriIdentifies what this mapping refers to
.... name I0..1stringNames what this mapping refers to
.... comment 0..1stringVersions, Issues, Scope limitations etc.
... kind Σ1..1codeprimitive-type | complex-type | resource | logical
Binding: StructureDefinitionKind (required): Defines the type of structure that a definition is describing.


Fixed Value: resource
... abstract Σ1..1booleanWhether the structure is abstract
Fixed Value: false
... context ΣI0..*BackboneElementIf an extension, where it can be used in instances
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type Σ1..1codefhirpath | element | extension
Binding: ExtensionContextType (required): How an extension context is interpreted.

.... expression Σ1..1stringWhere the extension can be used in instances
... contextInvariant ΣI0..*stringFHIRPath invariants - when the extension can be used
... type ΣI1..1uriType defined or constrained by this structure
Binding: FHIRDefinedType (extensible): Either a resource or a data type, including logical model types.

... baseDefinition ΣI0..1canonical(StructureDefinition)Definition that this type is constrained/specialized from
... derivation Σ1..1codespecialization | constraint - How relates to base definition
Binding: TypeDerivationRule (required): How a type relates to its baseDefinition.


Fixed Value: constraint
... snapshot I0..1BackboneElementSnapshot view of the structure
sdf-3: Each element definition in a snapshot must have a formal definition and cardinalities
sdf-8: All snapshot elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models
sdf-8b: All snapshot elements must have a base definition
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... element I1..*ElementDefinitionDefinition of elements in the resource (if no StructureDefinition)
sdf-10: provide either a binding reference or a description (or both)
... differential I0..1BackboneElementDifferential view of the structure
sdf-20: No slicing on the root element
sdf-8a: 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
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... element 1..*ElementDefinitionDefinition of elements in the resource (if no StructureDefinition)

doco Documentation for this format

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathConformanceValueSet / Code
StructureDefinition.languagepreferredCommonLanguages
Max Binding: AllLanguages
StructureDefinition.statusrequiredPublicationStatus
StructureDefinition.jurisdictionextensibleJurisdiction ValueSet
StructureDefinition.keywordextensibleDefinitionUseCodes
StructureDefinition.fhirVersionrequiredFHIRVersion
StructureDefinition.kindrequiredFixed Value: resource
StructureDefinition.context.typerequiredExtensionContextType
StructureDefinition.typeextensibleFHIRDefinedType
StructureDefinition.derivationrequiredFixed Value: constraint

D.4.1.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2StructureDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3StructureDefinitionIf 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-4StructureDefinitionIf 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-5StructureDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6StructureDefinitionA resource should have narrative for robust management
: text.`div`.exists()
sdf-0StructureDefinitionName 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-1StructureDefinitionElement paths must be unique unless the structure is a constraint
: derivation = 'constraint' or snapshot.element.select(path).isDistinct()
sdf-15aStructureDefinitionIf the first element in a differential has no "." in the path and it's not a logical model, it has no type
: (kind!='logical' and differential.element.first().path.contains('.').not()) implies differential.element.first().type.empty()
No Type on the root element (differential)
sdf-4StructureDefinitionIf the structure is not abstract, then there SHALL be a baseDefinition
: abstract = true or baseDefinition.exists()
Ensure that the base types are abstract
sdf-5StructureDefinitionIf the structure defines an extension then the structure must have context information
: type != 'Extension' or derivation = 'specialization' or (context.exists())
sdf-6StructureDefinitionA structure must have either a differential, or a snapshot (or both)
: snapshot.exists() or differential.exists()
sdf-9StructureDefinitionIn any snapshot or differential, no label, code or requirements on an element without a "." in the path (e.g. the first element)
: 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()
Because these 3 fields seem to be have overlapping meaning with the ones in the root of StructureDefinition
sdf-11StructureDefinitionIf there's a type, its content must match the path name in the first element of a snapshot
: kind != 'logical' implies snapshot.empty() or snapshot.element.first().path = type
Ensure that the type is not inconsistent with the other information in the structure
sdf-14StructureDefinitionAll element definitions must have an id
: snapshot.element.all(id.exists()) and differential.element.all(id.exists())
elements have id
sdf-15StructureDefinitionThe first element in a snapshot has no type unless model is a logical model.
: kind!='logical' implies snapshot.element.first().type.empty()
No Type on the root element (snapshot)
sdf-16StructureDefinitionAll element definitions must have unique ids (snapshot)
: snapshot.element.all(id.exists()) and snapshot.element.id.trace('ids').isDistinct()
element ids need to be unique
sdf-17StructureDefinitionAll element definitions must have unique ids (diff)
: differential.element.all(id.exists()) and differential.element.id.trace('ids').isDistinct()
element ids need to be unique
sdf-18StructureDefinitionContext Invariants can only be used for extensions
: contextInvariant.exists() implies type = 'Extension'
contextInvariant
sdf-19StructureDefinitionFHIR Specification models only use FHIR defined types
: 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]+$')))
custom types only in logical models
sdf-21StructureDefinitionDefault values can only be specified on specializations
: differential.element.defaultValue.exists() implies (derivation = 'specialization')
no default values on data types or resources
sdf-22StructureDefinitionFHIR Specification models never have default values
: url.startsWith('http://hl7.org/fhir/StructureDefinition') implies (snapshot.element.defaultValue.empty() and differential.element.defaultValue.empty())
no default values on data types or resources
sdf-23StructureDefinitionNo slice name on root
: (snapshot | differential).element.all(path.contains('.').not() implies sliceName.empty())
no sliceName on root
ele-1StructureDefinition.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.extension:knowledgeCapabilityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.extension:knowledgeCapabilityMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.extension:knowledgeRepresentationLevelAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.extension:knowledgeRepresentationLevelMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.extension:inferenceExpressionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.extension:inferenceExpressionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.extension:assertionExpressionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.extension:assertionExpressionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.extension:featureExpressionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.extension:featureExpressionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.extension:caseFeatureOfAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.extension:caseFeatureOfMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.urlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.titleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.experimentalAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.dateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.publisherAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.contactAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.useContextAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.jurisdictionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.purposeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.copyrightAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.keywordAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.fhirVersionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.mappingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
sdf-2StructureDefinition.mappingMust have at least a name or a uri (or both)
: name.exists() or uri.exists()
ele-1StructureDefinition.mapping.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.mapping.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.mapping.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.mapping.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.mapping.identityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.mapping.uriAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.mapping.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.mapping.commentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.kindAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.abstractAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.contextAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.context.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.context.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.context.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.context.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.context.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.context.expressionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.contextInvariantAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.baseDefinitionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.derivationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1StructureDefinition.snapshotAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
sdf-3StructureDefinition.snapshotEach element definition in a snapshot must have a formal definition and cardinalities
: element.all(definition.exists() and min.exists() and max.exists())
sdf-8StructureDefinition.snapshotAll 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-8bStructureDefinition.snapshotAll snapshot elements must have a base definition
: element.all(base.exists())
ele-1StructureDefinition.snapshot.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.snapshot.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.snapshot.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.snapshot.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.snapshot.elementAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
sdf-10StructureDefinition.snapshot.elementprovide either a binding reference or a description (or both)
: binding.empty() or binding.valueSet.exists() or binding.description.exists()
binding is required
ele-1StructureDefinition.differentialAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
sdf-20StructureDefinition.differentialNo slicing on the root element
: element.where(path.contains('.').not()).slicing.empty()
no slicing on root
sdf-8aStructureDefinition.differentialIn 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('\\..*','')&'.')))
ele-1StructureDefinition.differential.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.differential.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.differential.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1StructureDefinition.differential.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1StructureDefinition.differential.elementAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())