Canonical Resource Management Infrastructure Implementation Guide
1.0.0-ballot2 - Ballot International flag

This page is part of the Canonical Resource Management Infrastructure Implementation Guide (v1.0.0-ballot2: STU1 Ballot 2) based on FHIR (HL7® FHIR® Standard) R4. . For a full list of available versions, see the Directory of published versions

Resource Profile: CRMI Executable Library

Official URL: http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-executablelibrary Version: 1.0.0-ballot2
Standards status: Trial-use Maturity Level: 3 Computable Name: CRMIExecutableLibrary

The CRMI Execuable Library profile defines the must support elements for an executable library used to support artifact logic

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
... relatedArtifact S0..*RelatedArtifactRequired dependencies
... parameter S0..*ParameterDefinitionParameters defined by the library
... dataRequirement S0..*DataRequirementWhat data is referenced by this library
.... fhirQueryPattern 0..*stringWhat FHIR query?
URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern

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
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... relatedArtifact S0..*RelatedArtifactRequired dependencies
... parameter S0..*ParameterDefinitionParameters defined by the library
... dataRequirement S0..*DataRequirementWhat data is referenced by this library
.... fhirQueryPattern 0..*stringWhat FHIR query?
URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern
.... type Σ1..1codeThe type of the required data
Binding: FHIRAllTypes (required): A list of all the concrete types defined in this version of the FHIR specification - Abstract Types, Data Types and Resource Types.

... content SΣ1..*AttachmentContents of the library, either embedded or referenced

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Library.statusrequiredPublicationStatus
Library.typeextensibleLibraryType
Library.dataRequirement.typerequiredFHIRAllTypes

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
... extension 0..*ExtensionAdditional content defined by implementations
... 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] 0..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 S0..*RelatedArtifactRequired dependencies
... parameter S0..*ParameterDefinitionParameters defined by the library
... dataRequirement S0..*DataRequirementWhat data is referenced by this library
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... fhirQueryPattern 0..*stringWhat FHIR query?
URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern
.... type Σ1..1codeThe type of the required data
Binding: FHIRAllTypes (required): A list of all the concrete types defined in this version of the FHIR specification - Abstract Types, Data Types and Resource Types.

.... profile Σ0..*canonical(StructureDefinition)The profile of the required data
.... subject[x] Σ0..1E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
Binding: SubjectType (extensible): The possible types of subjects for a data requirement (E.g., Patient, Practitioner, Organization, Location, etc.).

..... subjectCodeableConceptCodeableConcept
..... subjectReferenceReference(Group)
.... mustSupport Σ0..*stringIndicates specific structure elements that are referenced by the knowledge module
.... codeFilter ΣC0..*ElementWhat codes are expected
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... path Σ0..1stringA code-valued attribute to filter on
..... searchParam Σ0..1stringA coded (token) parameter to search on
..... valueSet Σ0..1canonical(ValueSet)Valueset for the filter
..... code Σ0..*CodingWhat code is expected
.... dateFilter ΣC0..*ElementWhat dates/date ranges are expected
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... path Σ0..1stringA date-valued attribute to filter on
..... searchParam Σ0..1stringA date valued parameter to search on
..... value[x] Σ0..1The value of the filter, as a Period, DateTime, or Duration value
...... valueDateTimedateTime
...... valuePeriodPeriod
...... valueDurationDuration
.... limit Σ0..1positiveIntNumber of results
.... sort Σ0..*ElementOrder of the results
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... path Σ1..1stringThe name of the attribute to perform the sort
..... direction Σ1..1codeascending | descending
Binding: SortDirection (required): The possible sort directions, ascending or descending.

... content SΣ1..*AttachmentContents of the library, either embedded or referenced

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Library.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Library.statusrequiredPublicationStatus
Library.typeextensibleLibraryType
Library.subject[x]extensibleSubjectType
Library.jurisdictionextensibleJurisdiction ValueSet
Library.topicexampleDefinitionTopic
Library.dataRequirement.typerequiredFHIRAllTypes
Library.dataRequirement.subject[x]extensibleSubjectType
Library.dataRequirement.sort.directionrequiredSortDirection

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()
drq-1errorLibrary.dataRequirement.codeFilterEither a path or a searchParam must be provided, but not both
: path.exists() xor searchParam.exists()
drq-2errorLibrary.dataRequirement.dateFilterEither a path or a searchParam must be provided, but not both
: path.exists() xor searchParam.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: 1 element
Must-Support: 4 elements

Extensions

This structure refers to these extensions:

Maturity: 3

Differential View

This structure is derived from Library

NameFlagsCard.TypeDescription & Constraintsdoco
.. Library 0..*LibraryRepresents a library of quality improvement components
... relatedArtifact S0..*RelatedArtifactRequired dependencies
... parameter S0..*ParameterDefinitionParameters defined by the library
... dataRequirement S0..*DataRequirementWhat data is referenced by this library
.... fhirQueryPattern 0..*stringWhat FHIR query?
URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern

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
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... relatedArtifact S0..*RelatedArtifactRequired dependencies
... parameter S0..*ParameterDefinitionParameters defined by the library
... dataRequirement S0..*DataRequirementWhat data is referenced by this library
.... fhirQueryPattern 0..*stringWhat FHIR query?
URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern
.... type Σ1..1codeThe type of the required data
Binding: FHIRAllTypes (required): A list of all the concrete types defined in this version of the FHIR specification - Abstract Types, Data Types and Resource Types.

... content SΣ1..*AttachmentContents of the library, either embedded or referenced

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Library.statusrequiredPublicationStatus
Library.typeextensibleLibraryType
Library.dataRequirement.typerequiredFHIRAllTypes

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
... extension 0..*ExtensionAdditional content defined by implementations
... 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] 0..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 S0..*RelatedArtifactRequired dependencies
... parameter S0..*ParameterDefinitionParameters defined by the library
... dataRequirement S0..*DataRequirementWhat data is referenced by this library
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... fhirQueryPattern 0..*stringWhat FHIR query?
URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern
.... type Σ1..1codeThe type of the required data
Binding: FHIRAllTypes (required): A list of all the concrete types defined in this version of the FHIR specification - Abstract Types, Data Types and Resource Types.

.... profile Σ0..*canonical(StructureDefinition)The profile of the required data
.... subject[x] Σ0..1E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
Binding: SubjectType (extensible): The possible types of subjects for a data requirement (E.g., Patient, Practitioner, Organization, Location, etc.).

..... subjectCodeableConceptCodeableConcept
..... subjectReferenceReference(Group)
.... mustSupport Σ0..*stringIndicates specific structure elements that are referenced by the knowledge module
.... codeFilter ΣC0..*ElementWhat codes are expected
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... path Σ0..1stringA code-valued attribute to filter on
..... searchParam Σ0..1stringA coded (token) parameter to search on
..... valueSet Σ0..1canonical(ValueSet)Valueset for the filter
..... code Σ0..*CodingWhat code is expected
.... dateFilter ΣC0..*ElementWhat dates/date ranges are expected
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... path Σ0..1stringA date-valued attribute to filter on
..... searchParam Σ0..1stringA date valued parameter to search on
..... value[x] Σ0..1The value of the filter, as a Period, DateTime, or Duration value
...... valueDateTimedateTime
...... valuePeriodPeriod
...... valueDurationDuration
.... limit Σ0..1positiveIntNumber of results
.... sort Σ0..*ElementOrder of the results
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... path Σ1..1stringThe name of the attribute to perform the sort
..... direction Σ1..1codeascending | descending
Binding: SortDirection (required): The possible sort directions, ascending or descending.

... content SΣ1..*AttachmentContents of the library, either embedded or referenced

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Library.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Library.statusrequiredPublicationStatus
Library.typeextensibleLibraryType
Library.subject[x]extensibleSubjectType
Library.jurisdictionextensibleJurisdiction ValueSet
Library.topicexampleDefinitionTopic
Library.dataRequirement.typerequiredFHIRAllTypes
Library.dataRequirement.subject[x]extensibleSubjectType
Library.dataRequirement.sort.directionrequiredSortDirection

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()
drq-1errorLibrary.dataRequirement.codeFilterEither a path or a searchParam must be provided, but not both
: path.exists() xor searchParam.exists()
drq-2errorLibrary.dataRequirement.dateFilterEither a path or a searchParam must be provided, but not both
: path.exists() xor searchParam.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: 1 element
Must-Support: 4 elements

Extensions

This structure refers to these extensions:

Maturity: 3

 

Other representations of profile: CSV, Excel, Schematron