Clinical Practice Guidelines
2.0.0-ballot - ballot International flag

Clinical Practice Guidelines, published by HL7 International / Clinical Decision Support. This guide is not an authorized publication; it is the continuous build for version 2.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/cqf-recommendations/ and changes regularly. See the Directory of published versions

Resource Profile: CPG Computable Graph Definition

Official URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-computablegraphdefinition Version: 2.0.0-ballot
Active as of 2023-12-19 Computable Name: CPGComputableGraphDefinition

Profile of GraphDefinition to establish computable expectations for the use of the GraphDefinition resource

This is a computable artifact profile

Examples:

Usage:

Formal Views of Profile Content

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

This structure is derived from GraphDefinition

NameFlagsCard.TypeDescription & Constraintsdoco
.. GraphDefinition 0..*GraphDefinitionDefinition of a graph of resources
... start S1..1codeType of resource at which the graph starts
... link S0..*BackboneElementLinks this graph makes rules about

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. GraphDefinition C0..*GraphDefinitionDefinition of a graph of resources
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... name ΣC1..1stringName for this graph definition (computer friendly)
... start SΣ1..1codeType of resource at which the graph starts
Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.

... link S0..*BackboneElementLinks this graph makes rules about
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
GraphDefinition.statusrequiredPublicationStatus
GraphDefinition.startrequiredResourceType

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorGraphDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorGraphDefinitionIf 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-4errorGraphDefinitionIf 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-5errorGraphDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceGraphDefinitionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
gdf-0warningGraphDefinitionName 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}')
NameFlagsCard.TypeDescription & Constraintsdoco
.. GraphDefinition C0..*GraphDefinitionDefinition of a graph of resources
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ0..1uriCanonical identifier for this graph definition, represented as a URI (globally unique)
... version Σ0..1stringBusiness version of the graph definition
... name ΣC1..1stringName for this graph definition (computer friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

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


... purpose 0..1markdownWhy this graph definition is defined
... start SΣ1..1codeType of resource at which the graph starts
Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.

... profile 0..1canonical(StructureDefinition)Profile on base resource
... link S0..*BackboneElementLinks this graph makes rules about
.... 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
.... path 0..1stringPath in the resource that contains the link
.... sliceName 0..1stringWhich slice (if profiled)
.... min 0..1integerMinimum occurrences for this link
.... max 0..1stringMaximum occurrences for this link
.... description 0..1stringWhy this link is specified
.... target 0..*BackboneElementPotential target for the link
..... 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..1codeType of resource this link refers to
Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.

..... params 0..1stringCriteria for reverse lookup
..... profile 0..1canonical(StructureDefinition)Profile for the target resource
..... compartment 0..*BackboneElementCompartment Consistency Rules
...... 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
...... use 1..1codecondition | requirement
Binding: GraphCompartmentUse (required): Defines how a compartment rule is used.

...... code 1..1codePatient | Encounter | RelatedPerson | Practitioner | Device
Binding: CompartmentType (required): Identifies a compartment.

...... rule 1..1codeidentical | matching | different | custom
Binding: GraphCompartmentRule (required): How a compartment must be linked.

...... expression 0..1stringCustom rule, as a FHIRPath expression
...... description 0..1stringDocumentation for FHIRPath expression
..... link 0..*See link (GraphDefinition)Additional links from target resource

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
GraphDefinition.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
GraphDefinition.statusrequiredPublicationStatus
GraphDefinition.jurisdictionextensibleJurisdiction ValueSet
GraphDefinition.startrequiredResourceType
GraphDefinition.link.target.typerequiredResourceType
GraphDefinition.link.target.compartment.userequiredGraphCompartmentUse
GraphDefinition.link.target.compartment.coderequiredCompartmentType
GraphDefinition.link.target.compartment.rulerequiredGraphCompartmentRule

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorGraphDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorGraphDefinitionIf 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-4errorGraphDefinitionIf 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-5errorGraphDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceGraphDefinitionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
gdf-0warningGraphDefinitionName 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}')

This structure is derived from GraphDefinition

Summary

Must-Support: 2 elements

Differential View

This structure is derived from GraphDefinition

NameFlagsCard.TypeDescription & Constraintsdoco
.. GraphDefinition 0..*GraphDefinitionDefinition of a graph of resources
... start S1..1codeType of resource at which the graph starts
... link S0..*BackboneElementLinks this graph makes rules about

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. GraphDefinition C0..*GraphDefinitionDefinition of a graph of resources
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... name ΣC1..1stringName for this graph definition (computer friendly)
... start SΣ1..1codeType of resource at which the graph starts
Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.

... link S0..*BackboneElementLinks this graph makes rules about
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
GraphDefinition.statusrequiredPublicationStatus
GraphDefinition.startrequiredResourceType

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorGraphDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorGraphDefinitionIf 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-4errorGraphDefinitionIf 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-5errorGraphDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceGraphDefinitionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
gdf-0warningGraphDefinitionName 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}')

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. GraphDefinition C0..*GraphDefinitionDefinition of a graph of resources
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ0..1uriCanonical identifier for this graph definition, represented as a URI (globally unique)
... version Σ0..1stringBusiness version of the graph definition
... name ΣC1..1stringName for this graph definition (computer friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

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


... purpose 0..1markdownWhy this graph definition is defined
... start SΣ1..1codeType of resource at which the graph starts
Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.

... profile 0..1canonical(StructureDefinition)Profile on base resource
... link S0..*BackboneElementLinks this graph makes rules about
.... 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
.... path 0..1stringPath in the resource that contains the link
.... sliceName 0..1stringWhich slice (if profiled)
.... min 0..1integerMinimum occurrences for this link
.... max 0..1stringMaximum occurrences for this link
.... description 0..1stringWhy this link is specified
.... target 0..*BackboneElementPotential target for the link
..... 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..1codeType of resource this link refers to
Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.

..... params 0..1stringCriteria for reverse lookup
..... profile 0..1canonical(StructureDefinition)Profile for the target resource
..... compartment 0..*BackboneElementCompartment Consistency Rules
...... 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
...... use 1..1codecondition | requirement
Binding: GraphCompartmentUse (required): Defines how a compartment rule is used.

...... code 1..1codePatient | Encounter | RelatedPerson | Practitioner | Device
Binding: CompartmentType (required): Identifies a compartment.

...... rule 1..1codeidentical | matching | different | custom
Binding: GraphCompartmentRule (required): How a compartment must be linked.

...... expression 0..1stringCustom rule, as a FHIRPath expression
...... description 0..1stringDocumentation for FHIRPath expression
..... link 0..*See link (GraphDefinition)Additional links from target resource

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
GraphDefinition.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
GraphDefinition.statusrequiredPublicationStatus
GraphDefinition.jurisdictionextensibleJurisdiction ValueSet
GraphDefinition.startrequiredResourceType
GraphDefinition.link.target.typerequiredResourceType
GraphDefinition.link.target.compartment.userequiredGraphCompartmentUse
GraphDefinition.link.target.compartment.coderequiredCompartmentType
GraphDefinition.link.target.compartment.rulerequiredGraphCompartmentRule

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorGraphDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorGraphDefinitionIf 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-4errorGraphDefinitionIf 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-5errorGraphDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceGraphDefinitionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
gdf-0warningGraphDefinitionName 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}')

This structure is derived from GraphDefinition

Summary

Must-Support: 2 elements

 

Other representations of profile: CSV, Excel, Schematron