Using CQL with FHIR
1.0.0-ballot - Ballot International flag

This page is part of the Using CQL with FHIR Implementation Guide (v1.0.0-ballot: STU1 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. . For a full list of available versions, see the Directory of published versions

Resource Profile: CQL Library

Official URL: http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library Version: 1.0.0-ballot
Standards status: Trial-use Maturity Level: 3 Computable Name: CQLLibrary

The CQL Library profile defines conformance expectations for the use of a FHIR Library resource as a wrapper for a Clinical Quality Language (CQL) library

Usage:

Formal Views of Profile Content

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

This structure is derived from Library

NameFlagsCard.TypeDescription & Constraintsdoco
.. Library 0..*LibraryRepresents a library of quality improvement components
... cqlOptions S0..1Reference(Parameters)What options
URL: http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions
... subject[x] S0..1CodeableConcept, Reference(Group)Type of individual the library content is focused on
... Slices for content S0..*AttachmentContents of the library, either embedded or referenced
Slice: Unordered, Open by value:contentType
.... content:cqlContent S1..1AttachmentContents of the library, either embedded or referenced
..... contentType S1..1codeMime type of the content, with charset etc.
Fixed Value: text/cql
..... data S0..1base64BinaryData inline, base64ed
..... url S0..1urlUri where the data can be found

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Library C0..*LibraryRepresents a library of quality improvement components
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... cqlOptions S0..1Reference(Parameters)What options
URL: http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... type Σ1..1CodeableConceptlogic-library | model-definition | asset-collection | module-definition
Binding: LibraryType (extensible): The type of knowledge asset this library contains.

... subject[x] S0..1Type of individual the library content is focused on
Binding: SubjectType (extensible): The possible types of subjects for a library (E.g. Patient, Practitioner, Organization, Location, etc.).

.... subjectCodeableConceptCodeableConcept
.... subjectReferenceReference(Group)
... Slices for content SΣ0..*AttachmentContents of the library, either embedded or referenced
Slice: Unordered, Open by value:contentType
.... content:cqlContent SΣ1..1AttachmentContents of the library, either embedded or referenced
..... contentType SΣ1..1codeMime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.


Fixed Value: text/cql
..... data S0..1base64BinaryData inline, base64ed
..... url SΣ0..1urlUri where the data can be found
Example General: http://www.acme.com/logo-small.png

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Library.statusrequiredPublicationStatus
Library.typeextensibleLibraryType
Library.subject[x]extensibleSubjectType
Library.content:cqlContent.contentTyperequiredFixed Value: text/cql

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorLibraryIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorLibraryIf 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-4errorLibraryIf 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-5errorLibraryIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceLibraryA 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()
lib-0warningLibraryName 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
.. Library C0..*LibraryRepresents a library of quality improvement components
... 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
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... cqlOptions S0..1Reference(Parameters)What options
URL: http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ0..1uriCanonical identifier for this library, represented as a URI (globally unique)
... identifier Σ0..*IdentifierAdditional identifier for the library
... version Σ0..1stringBusiness version of the library
... name ΣC0..1stringName for this library (computer friendly)
... title Σ0..1stringName for this library (human friendly)
... subtitle 0..1stringSubordinate title of the library
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ0..1booleanFor testing purposes, not real usage
... type Σ1..1CodeableConceptlogic-library | model-definition | asset-collection | module-definition
Binding: LibraryType (extensible): The type of knowledge asset this library contains.

... subject[x] S0..1Type of individual the library content is focused on
Binding: SubjectType (extensible): The possible types of subjects for a library (E.g. Patient, Practitioner, Organization, Location, etc.).

.... subjectCodeableConceptCodeableConcept
.... subjectReferenceReference(Group)
... 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 library
... useContext Σ0..*UsageContextThe context that the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for library (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1markdownWhy this library is defined
... usage 0..1stringDescribes the clinical usage of the library
... copyright 0..1markdownUse and/or publishing restrictions
... approvalDate 0..1dateWhen the library was approved by publisher
... lastReviewDate 0..1dateWhen the library was last reviewed
... effectivePeriod Σ0..1PeriodWhen the library is expected to be used
... topic 0..*CodeableConceptE.g. Education, Treatment, Assessment, etc.
Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering.


... author 0..*ContactDetailWho authored the content
... editor 0..*ContactDetailWho edited the content
... reviewer 0..*ContactDetailWho reviewed the content
... endorser 0..*ContactDetailWho endorsed the content
... relatedArtifact 0..*RelatedArtifactAdditional documentation, citations, etc.
... parameter 0..*ParameterDefinitionParameters defined by the library
... dataRequirement 0..*DataRequirementWhat data is referenced by this library
... Slices for content SΣ0..*AttachmentContents of the library, either embedded or referenced
Slice: Unordered, Open by value:contentType
.... content:cqlContent SΣ1..1AttachmentContents of the library, either embedded or referenced
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... contentType SΣ1..1codeMime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.


Fixed Value: text/cql
..... language Σ0..1codeHuman language of the content (BCP-47)
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding

Example General: en-AU
..... data S0..1base64BinaryData inline, base64ed
..... url SΣ0..1urlUri where the data can be found
Example General: http://www.acme.com/logo-small.png
..... size Σ0..1unsignedIntNumber of bytes of content (if url provided)
..... hash Σ0..1base64BinaryHash of the data (sha-1, base64ed)
..... title Σ0..1stringLabel to display in place of the data
Example General: Official Corporate Logo
..... creation Σ0..1dateTimeDate attachment was first created

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Library.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Library.statusrequiredPublicationStatus
Library.typeextensibleLibraryType
Library.subject[x]extensibleSubjectType
Library.jurisdictionextensibleJurisdiction ValueSet
Library.topicexampleDefinitionTopic
Library.content:cqlContent.contentTyperequiredFixed Value: text/cql
Library.content:cqlContent.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorLibraryIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorLibraryIf 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-4errorLibraryIf 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-5errorLibraryIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceLibraryA 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()
lib-0warningLibraryName 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 Library

Summary

Mandatory: 2 elements
Must-Support: 7 elements
Fixed Value: 1 element

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element Library.content is sliced based on the value of value:contentType

Maturity: 3

Differential View

This structure is derived from Library

NameFlagsCard.TypeDescription & Constraintsdoco
.. Library 0..*LibraryRepresents a library of quality improvement components
... cqlOptions S0..1Reference(Parameters)What options
URL: http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions
... subject[x] S0..1CodeableConcept, Reference(Group)Type of individual the library content is focused on
... Slices for content S0..*AttachmentContents of the library, either embedded or referenced
Slice: Unordered, Open by value:contentType
.... content:cqlContent S1..1AttachmentContents of the library, either embedded or referenced
..... contentType S1..1codeMime type of the content, with charset etc.
Fixed Value: text/cql
..... data S0..1base64BinaryData inline, base64ed
..... url S0..1urlUri where the data can be found

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Library C0..*LibraryRepresents a library of quality improvement components
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... cqlOptions S0..1Reference(Parameters)What options
URL: http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... type Σ1..1CodeableConceptlogic-library | model-definition | asset-collection | module-definition
Binding: LibraryType (extensible): The type of knowledge asset this library contains.

... subject[x] S0..1Type of individual the library content is focused on
Binding: SubjectType (extensible): The possible types of subjects for a library (E.g. Patient, Practitioner, Organization, Location, etc.).

.... subjectCodeableConceptCodeableConcept
.... subjectReferenceReference(Group)
... Slices for content SΣ0..*AttachmentContents of the library, either embedded or referenced
Slice: Unordered, Open by value:contentType
.... content:cqlContent SΣ1..1AttachmentContents of the library, either embedded or referenced
..... contentType SΣ1..1codeMime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.


Fixed Value: text/cql
..... data S0..1base64BinaryData inline, base64ed
..... url SΣ0..1urlUri where the data can be found
Example General: http://www.acme.com/logo-small.png

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Library.statusrequiredPublicationStatus
Library.typeextensibleLibraryType
Library.subject[x]extensibleSubjectType
Library.content:cqlContent.contentTyperequiredFixed Value: text/cql

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorLibraryIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorLibraryIf 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-4errorLibraryIf 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-5errorLibraryIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceLibraryA 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()
lib-0warningLibraryName 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
.. Library C0..*LibraryRepresents a library of quality improvement components
... 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
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... cqlOptions S0..1Reference(Parameters)What options
URL: http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ0..1uriCanonical identifier for this library, represented as a URI (globally unique)
... identifier Σ0..*IdentifierAdditional identifier for the library
... version Σ0..1stringBusiness version of the library
... name ΣC0..1stringName for this library (computer friendly)
... title Σ0..1stringName for this library (human friendly)
... subtitle 0..1stringSubordinate title of the library
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ0..1booleanFor testing purposes, not real usage
... type Σ1..1CodeableConceptlogic-library | model-definition | asset-collection | module-definition
Binding: LibraryType (extensible): The type of knowledge asset this library contains.

... subject[x] S0..1Type of individual the library content is focused on
Binding: SubjectType (extensible): The possible types of subjects for a library (E.g. Patient, Practitioner, Organization, Location, etc.).

.... subjectCodeableConceptCodeableConcept
.... subjectReferenceReference(Group)
... 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 library
... useContext Σ0..*UsageContextThe context that the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for library (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1markdownWhy this library is defined
... usage 0..1stringDescribes the clinical usage of the library
... copyright 0..1markdownUse and/or publishing restrictions
... approvalDate 0..1dateWhen the library was approved by publisher
... lastReviewDate 0..1dateWhen the library was last reviewed
... effectivePeriod Σ0..1PeriodWhen the library is expected to be used
... topic 0..*CodeableConceptE.g. Education, Treatment, Assessment, etc.
Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering.


... author 0..*ContactDetailWho authored the content
... editor 0..*ContactDetailWho edited the content
... reviewer 0..*ContactDetailWho reviewed the content
... endorser 0..*ContactDetailWho endorsed the content
... relatedArtifact 0..*RelatedArtifactAdditional documentation, citations, etc.
... parameter 0..*ParameterDefinitionParameters defined by the library
... dataRequirement 0..*DataRequirementWhat data is referenced by this library
... Slices for content SΣ0..*AttachmentContents of the library, either embedded or referenced
Slice: Unordered, Open by value:contentType
.... content:cqlContent SΣ1..1AttachmentContents of the library, either embedded or referenced
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... contentType SΣ1..1codeMime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.


Fixed Value: text/cql
..... language Σ0..1codeHuman language of the content (BCP-47)
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding

Example General: en-AU
..... data S0..1base64BinaryData inline, base64ed
..... url SΣ0..1urlUri where the data can be found
Example General: http://www.acme.com/logo-small.png
..... size Σ0..1unsignedIntNumber of bytes of content (if url provided)
..... hash Σ0..1base64BinaryHash of the data (sha-1, base64ed)
..... title Σ0..1stringLabel to display in place of the data
Example General: Official Corporate Logo
..... creation Σ0..1dateTimeDate attachment was first created

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Library.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Library.statusrequiredPublicationStatus
Library.typeextensibleLibraryType
Library.subject[x]extensibleSubjectType
Library.jurisdictionextensibleJurisdiction ValueSet
Library.topicexampleDefinitionTopic
Library.content:cqlContent.contentTyperequiredFixed Value: text/cql
Library.content:cqlContent.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorLibraryIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorLibraryIf 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-4errorLibraryIf 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-5errorLibraryIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceLibraryA 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()
lib-0warningLibraryName 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 Library

Summary

Mandatory: 2 elements
Must-Support: 7 elements
Fixed Value: 1 element

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element Library.content is sliced based on the value of value:contentType

Maturity: 3

 

Other representations of profile: CSV, Excel, Schematron