Canonical Resource Management Infrastructure Implementation Guide
1.0.0 - STU1

Publication Build: This will be filled in by the publication tooling

## Resource Profile: CRMI Module Definition Library

Official URL: http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-moduledefinitionlibrary | Version: 1.0.0
Standards status: Trial-use | Maturity Level: 3 | Computable Name: CRMIModuleDefinitionLibrary
Other Identifiers: OID:2.16.840.1.113883.4.642.40.38.42.29

The CRMI Module Definition Library profile defines the must support elements for a library that communicates the effective data requirements and dependencies of an artifact (or set of artifacts). This is most commonly used as the result of a $data-requirements operation, but could also be persisted statically as a way to persist the calculation of effective data requirements for a specific artifact and input parameters

Usage:

- Refer to this Resource Profile: CRMI Effective Data Requirements
- Examples for this Resource Profile: EXMLogicModuleDefinition

### Formal Views of Profile Content

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

- Differential Table
- Key Elements Table
- Snapshot Table
- Statistics/References
- All

This structure is derived from Library

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Library |  | 0..* | Library | Represents a library of quality improvement components
Slices for extension |  |  |  | Content/Rules for all slices
directReferenceCode | S | 0..* | Coding | A code directly referenced by the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
logicDefinition | S | 0..* | (Complex) | A logic definition used in the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
inputParameters | S | 0..1 | Reference(Parameters) | What parameters URL: http://hl7.org/fhir/StructureDefinition/cqf-inputParameters
type | S | 1..1 | CodeableConcept | logic-library | model-definition | asset-collection | module-definition Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/library-type
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: module-definition
subject[x] | S | 0..1 | CodeableConcept, Reference(Group) | Type of individual the library content is focused on
relatedArtifact | S | 0..* | RelatedArtifact | Dependencies used by the artifact
parameter | S | 0..* | ParameterDefinition | Parameters defined by the library
Slices for extension |  |  |  | Content/Rules for all slices
defaultValue | S | 0..1 | string, boolean, integer, decimal, date, dateTime, Coding, CodeableConcept, Period, Range, Quantity, Ratio | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-defaultValue
dataRequirement | S | 0..* | DataRequirement | What data is referenced by this library
Slices for extension |  |  |  | Content/Rules for all slices
isSelective | S | 0..1 | boolean | specifies whether a given DataRequirement is "selective" URL: http://hl7.org/fhir/StructureDefinition/cqf-isSelective
valueFilter | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-valueFilter
fhirQueryPattern |  | 0..* | string | What FHIR query? URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern
content |  | 0..0 |  |
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Library | C | 0..* | Library | Represents a library of quality improvement components lib-0: Name should be usable as an identifier for the module by machine processing applications such as code generation
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
directReferenceCode | S | 0..* | Coding | A code directly referenced by the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
logicDefinition | S | 0..* | (Complex) | A logic definition used in the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
inputParameters | S | 0..1 | Reference(Parameters) | What parameters URL: http://hl7.org/fhir/StructureDefinition/cqf-inputParameters
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
type | S Σ | 1..1 | CodeableConcept | logic-library | model-definition | asset-collection | module-definition Binding: LibraryType (extensible): The type of knowledge asset this library contains. Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/library-type
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: module-definition
subject[x] | S | 0..1 |  | Type 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.).
subjectCodeableConcept |  |  | CodeableConcept |
subjectReference |  |  | Reference(Group) |
relatedArtifact | S | 0..* | RelatedArtifact | Dependencies used by the artifact
parameter | S | 0..* | ParameterDefinition | Parameters defined by the library
Slices for extension |  |  |  | Content/Rules for all slices
defaultValue | S | 0..1 | string, boolean, integer, decimal, date, dateTime, Coding, CodeableConcept, Period, Range, Quantity, Ratio | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-defaultValue
use | Σ | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether the parameter is input or output.
type | Σ | 1..1 | code | What type of value 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.
dataRequirement | S | 0..* | DataRequirement | What data is referenced by this library
Slices for extension |  |  |  | Content/Rules for all slices
isSelective | S | 0..1 | boolean | specifies whether a given DataRequirement is "selective" URL: http://hl7.org/fhir/StructureDefinition/cqf-isSelective
valueFilter | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-valueFilter
fhirQueryPattern |  | 0..* | string | What FHIR query? URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern
type | Σ | 1..1 | code | The 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.
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | URI
Library.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` from the FHIR Standard
Library.type | extensible | Pattern: module-definition `http://hl7.org/fhir/ValueSet/library-type` from the FHIR Standard
Library.subject[x] | extensible | SubjectType `http://hl7.org/fhir/ValueSet/subject-type` from the FHIR Standard
Library.parameter.use | required | OperationParameterUse `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
Library.parameter.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
Library.dataRequirement.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | Library | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Library | If 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-4 | error | Library | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | Library | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Library | A resource should have narrative for robust management : text.`div`.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
lib-0 | warning | Library | Name 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}') |

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Library | C | 0..* | Library | Represents a library of quality improvement components lib-0: Name should be usable as an identifier for the module by machine processing applications such as code generation
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
directReferenceCode | S | 0..* | Coding | A code directly referenced by the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
logicDefinition | S | 0..* | (Complex) | A logic definition used in the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
inputParameters | S | 0..1 | Reference(Parameters) | What parameters URL: http://hl7.org/fhir/StructureDefinition/cqf-inputParameters
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
url | Σ | 0..1 | uri | Canonical identifier for this library, represented as a URI (globally unique)
identifier | Σ | 0..* | Identifier | Additional identifier for the library
version | Σ | 0..1 | string | Business version of the library
name | Σ C | 0..1 | string | Name for this library (computer friendly)
title | Σ | 0..1 | string | Name for this library (human friendly)
subtitle |  | 0..1 | string | Subordinate title of the library
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
type | S Σ | 1..1 | CodeableConcept | logic-library | model-definition | asset-collection | module-definition Binding: LibraryType (extensible): The type of knowledge asset this library contains. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/library-type
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: module-definition
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
subject[x] | S | 0..1 |  | Type 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.).
subjectCodeableConcept |  |  | CodeableConcept |
subjectReference |  |  | Reference(Group) |
date | Σ | 0..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description | Σ | 0..1 | markdown | Natural language description of the library
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for library (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this library is defined
usage |  | 0..1 | string | Describes the clinical usage of the library
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
approvalDate |  | 0..1 | date | When the library was approved by publisher
lastReviewDate |  | 0..1 | date | When the library was last reviewed
effectivePeriod | Σ | 0..1 | Period | When the library is expected to be used
topic |  | 0..* | CodeableConcept | E.g. Education, Treatment, Assessment, etc. Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering.
author |  | 0..* | ContactDetail | Who authored the content
editor |  | 0..* | ContactDetail | Who edited the content
reviewer |  | 0..* | ContactDetail | Who reviewed the content
endorser |  | 0..* | ContactDetail | Who endorsed the content
relatedArtifact | S | 0..* | RelatedArtifact | Dependencies used by the artifact
parameter | S | 0..* | ParameterDefinition | Parameters defined by the library
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
defaultValue | S | 0..1 | string, boolean, integer, decimal, date, dateTime, Coding, CodeableConcept, Period, Range, Quantity, Ratio | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-defaultValue
name | Σ | 0..1 | code | Name used to access the parameter value
use | Σ | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether the parameter is input or output.
min | Σ | 0..1 | integer | Minimum cardinality
max | Σ | 0..1 | string | Maximum cardinality (a number of *)
documentation | Σ | 0..1 | string | A brief description of the parameter
type | Σ | 1..1 | code | What type of value 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..1 | canonical(StructureDefinition) | What profile the value is expected to be
dataRequirement | S | 0..* | DataRequirement | What data is referenced by this library
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
isSelective | S | 0..1 | boolean | specifies whether a given DataRequirement is "selective" URL: http://hl7.org/fhir/StructureDefinition/cqf-isSelective
valueFilter | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-valueFilter
fhirQueryPattern |  | 0..* | string | What FHIR query? URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern
type | Σ | 1..1 | code | The 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..1 |  | E.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.).
subjectCodeableConcept |  |  | CodeableConcept |
subjectReference |  |  | Reference(Group) |
mustSupport | Σ | 0..* | string | Indicates specific structure elements that are referenced by the knowledge module
codeFilter | Σ C | 0..* | Element | What codes are expected drq-1: Either a path or a searchParam must be provided, but not both
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
path | Σ | 0..1 | string | A code-valued attribute to filter on
searchParam | Σ | 0..1 | string | A coded (token) parameter to search on
valueSet | Σ | 0..1 | canonical(ValueSet) | Valueset for the filter
code | Σ | 0..* | Coding | What code is expected
dateFilter | Σ C | 0..* | Element | What dates/date ranges are expected drq-2: Either a path or a searchParam must be provided, but not both
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
path | Σ | 0..1 | string | A date-valued attribute to filter on
searchParam | Σ | 0..1 | string | A date valued parameter to search on
value[x] | Σ | 0..1 |  | The value of the filter, as a Period, DateTime, or Duration value
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
valueDuration |  |  | Duration |
limit | Σ | 0..1 | positiveInt | Number of results
sort | Σ | 0..* | Element | Order of the results
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
path | Σ | 1..1 | string | The name of the attribute to perform the sort
direction | Σ | 1..1 | code | ascending | descending Binding: SortDirection (required): The possible sort directions, ascending or descending.
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | URI
Library.language | preferred | CommonLanguages
Additional Bindings | Purpose
AllLanguages | Max Binding
`http://hl7.org/fhir/ValueSet/languages` from the FHIR Standard
Library.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` from the FHIR Standard
Library.type | extensible | Pattern: module-definition `http://hl7.org/fhir/ValueSet/library-type` from the FHIR Standard
Library.subject[x] | extensible | SubjectType `http://hl7.org/fhir/ValueSet/subject-type` from the FHIR Standard
Library.jurisdiction | extensible | Jurisdiction ValueSet `http://hl7.org/fhir/ValueSet/jurisdiction` from the FHIR Standard
Library.topic | example | DefinitionTopic `http://hl7.org/fhir/ValueSet/definition-topic` from the FHIR Standard
Library.parameter.use | required | OperationParameterUse `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
Library.parameter.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
Library.dataRequirement.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
Library.dataRequirement.subject[x] | extensible | SubjectType `http://hl7.org/fhir/ValueSet/subject-type` from the FHIR Standard
Library.dataRequirement.sort.direction | required | SortDirection `http://hl7.org/fhir/ValueSet/sort-direction|4.0.1` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | Library | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Library | If 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-4 | error | Library | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | Library | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Library | A resource should have narrative for robust management : text.`div`.exists() |
drq-1 | error | Library.dataRequirement.codeFilter | Either a path or a searchParam must be provided, but not both : path.exists() xor searchParam.exists() |
drq-2 | error | Library.dataRequirement.dateFilter | Either a path or a searchParam must be provided, but not both : path.exists() xor searchParam.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
lib-0 | warning | Library | Name 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: 11 elements
Prohibited: 1 element

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
- http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
- http://hl7.org/fhir/StructureDefinition/cqf-inputParameters
- http://hl7.org/fhir/StructureDefinition/cqf-defaultValue
- http://hl7.org/fhir/StructureDefinition/cqf-isSelective
- http://hl7.org/fhir/StructureDefinition/cqf-valueFilter
- http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern

Maturity: 3

Differential View

This structure is derived from Library

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Library |  | 0..* | Library | Represents a library of quality improvement components
Slices for extension |  |  |  | Content/Rules for all slices
directReferenceCode | S | 0..* | Coding | A code directly referenced by the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
logicDefinition | S | 0..* | (Complex) | A logic definition used in the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
inputParameters | S | 0..1 | Reference(Parameters) | What parameters URL: http://hl7.org/fhir/StructureDefinition/cqf-inputParameters
type | S | 1..1 | CodeableConcept | logic-library | model-definition | asset-collection | module-definition Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/library-type
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: module-definition
subject[x] | S | 0..1 | CodeableConcept, Reference(Group) | Type of individual the library content is focused on
relatedArtifact | S | 0..* | RelatedArtifact | Dependencies used by the artifact
parameter | S | 0..* | ParameterDefinition | Parameters defined by the library
Slices for extension |  |  |  | Content/Rules for all slices
defaultValue | S | 0..1 | string, boolean, integer, decimal, date, dateTime, Coding, CodeableConcept, Period, Range, Quantity, Ratio | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-defaultValue
dataRequirement | S | 0..* | DataRequirement | What data is referenced by this library
Slices for extension |  |  |  | Content/Rules for all slices
isSelective | S | 0..1 | boolean | specifies whether a given DataRequirement is "selective" URL: http://hl7.org/fhir/StructureDefinition/cqf-isSelective
valueFilter | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-valueFilter
fhirQueryPattern |  | 0..* | string | What FHIR query? URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern
content |  | 0..0 |  |
Documentation for this format

Key Elements View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Library | C | 0..* | Library | Represents a library of quality improvement components lib-0: Name should be usable as an identifier for the module by machine processing applications such as code generation
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
directReferenceCode | S | 0..* | Coding | A code directly referenced by the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
logicDefinition | S | 0..* | (Complex) | A logic definition used in the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
inputParameters | S | 0..1 | Reference(Parameters) | What parameters URL: http://hl7.org/fhir/StructureDefinition/cqf-inputParameters
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
type | S Σ | 1..1 | CodeableConcept | logic-library | model-definition | asset-collection | module-definition Binding: LibraryType (extensible): The type of knowledge asset this library contains. Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/library-type
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: module-definition
subject[x] | S | 0..1 |  | Type 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.).
subjectCodeableConcept |  |  | CodeableConcept |
subjectReference |  |  | Reference(Group) |
relatedArtifact | S | 0..* | RelatedArtifact | Dependencies used by the artifact
parameter | S | 0..* | ParameterDefinition | Parameters defined by the library
Slices for extension |  |  |  | Content/Rules for all slices
defaultValue | S | 0..1 | string, boolean, integer, decimal, date, dateTime, Coding, CodeableConcept, Period, Range, Quantity, Ratio | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-defaultValue
use | Σ | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether the parameter is input or output.
type | Σ | 1..1 | code | What type of value 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.
dataRequirement | S | 0..* | DataRequirement | What data is referenced by this library
Slices for extension |  |  |  | Content/Rules for all slices
isSelective | S | 0..1 | boolean | specifies whether a given DataRequirement is "selective" URL: http://hl7.org/fhir/StructureDefinition/cqf-isSelective
valueFilter | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-valueFilter
fhirQueryPattern |  | 0..* | string | What FHIR query? URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern
type | Σ | 1..1 | code | The 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.
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | URI
Library.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` from the FHIR Standard
Library.type | extensible | Pattern: module-definition `http://hl7.org/fhir/ValueSet/library-type` from the FHIR Standard
Library.subject[x] | extensible | SubjectType `http://hl7.org/fhir/ValueSet/subject-type` from the FHIR Standard
Library.parameter.use | required | OperationParameterUse `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
Library.parameter.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
Library.dataRequirement.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | Library | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Library | If 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-4 | error | Library | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | Library | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Library | A resource should have narrative for robust management : text.`div`.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
lib-0 | warning | Library | Name 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

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Library | C | 0..* | Library | Represents a library of quality improvement components lib-0: Name should be usable as an identifier for the module by machine processing applications such as code generation
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
directReferenceCode | S | 0..* | Coding | A code directly referenced by the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
logicDefinition | S | 0..* | (Complex) | A logic definition used in the artifact URL: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
inputParameters | S | 0..1 | Reference(Parameters) | What parameters URL: http://hl7.org/fhir/StructureDefinition/cqf-inputParameters
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
url | Σ | 0..1 | uri | Canonical identifier for this library, represented as a URI (globally unique)
identifier | Σ | 0..* | Identifier | Additional identifier for the library
version | Σ | 0..1 | string | Business version of the library
name | Σ C | 0..1 | string | Name for this library (computer friendly)
title | Σ | 0..1 | string | Name for this library (human friendly)
subtitle |  | 0..1 | string | Subordinate title of the library
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
type | S Σ | 1..1 | CodeableConcept | logic-library | model-definition | asset-collection | module-definition Binding: LibraryType (extensible): The type of knowledge asset this library contains. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/library-type
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: module-definition
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
subject[x] | S | 0..1 |  | Type 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.).
subjectCodeableConcept |  |  | CodeableConcept |
subjectReference |  |  | Reference(Group) |
date | Σ | 0..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description | Σ | 0..1 | markdown | Natural language description of the library
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for library (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this library is defined
usage |  | 0..1 | string | Describes the clinical usage of the library
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
approvalDate |  | 0..1 | date | When the library was approved by publisher
lastReviewDate |  | 0..1 | date | When the library was last reviewed
effectivePeriod | Σ | 0..1 | Period | When the library is expected to be used
topic |  | 0..* | CodeableConcept | E.g. Education, Treatment, Assessment, etc. Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering.
author |  | 0..* | ContactDetail | Who authored the content
editor |  | 0..* | ContactDetail | Who edited the content
reviewer |  | 0..* | ContactDetail | Who reviewed the content
endorser |  | 0..* | ContactDetail | Who endorsed the content
relatedArtifact | S | 0..* | RelatedArtifact | Dependencies used by the artifact
parameter | S | 0..* | ParameterDefinition | Parameters defined by the library
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
defaultValue | S | 0..1 | string, boolean, integer, decimal, date, dateTime, Coding, CodeableConcept, Period, Range, Quantity, Ratio | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-defaultValue
name | Σ | 0..1 | code | Name used to access the parameter value
use | Σ | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether the parameter is input or output.
min | Σ | 0..1 | integer | Minimum cardinality
max | Σ | 0..1 | string | Maximum cardinality (a number of *)
documentation | Σ | 0..1 | string | A brief description of the parameter
type | Σ | 1..1 | code | What type of value 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..1 | canonical(StructureDefinition) | What profile the value is expected to be
dataRequirement | S | 0..* | DataRequirement | What data is referenced by this library
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
isSelective | S | 0..1 | boolean | specifies whether a given DataRequirement is "selective" URL: http://hl7.org/fhir/StructureDefinition/cqf-isSelective
valueFilter | S | 0..* | (Complex) | Extension URL: http://hl7.org/fhir/StructureDefinition/cqf-valueFilter
fhirQueryPattern |  | 0..* | string | What FHIR query? URL: http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern
type | Σ | 1..1 | code | The 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..1 |  | E.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.).
subjectCodeableConcept |  |  | CodeableConcept |
subjectReference |  |  | Reference(Group) |
mustSupport | Σ | 0..* | string | Indicates specific structure elements that are referenced by the knowledge module
codeFilter | Σ C | 0..* | Element | What codes are expected drq-1: Either a path or a searchParam must be provided, but not both
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
path | Σ | 0..1 | string | A code-valued attribute to filter on
searchParam | Σ | 0..1 | string | A coded (token) parameter to search on
valueSet | Σ | 0..1 | canonical(ValueSet) | Valueset for the filter
code | Σ | 0..* | Coding | What code is expected
dateFilter | Σ C | 0..* | Element | What dates/date ranges are expected drq-2: Either a path or a searchParam must be provided, but not both
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
path | Σ | 0..1 | string | A date-valued attribute to filter on
searchParam | Σ | 0..1 | string | A date valued parameter to search on
value[x] | Σ | 0..1 |  | The value of the filter, as a Period, DateTime, or Duration value
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
valueDuration |  |  | Duration |
limit | Σ | 0..1 | positiveInt | Number of results
sort | Σ | 0..* | Element | Order of the results
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
path | Σ | 1..1 | string | The name of the attribute to perform the sort
direction | Σ | 1..1 | code | ascending | descending Binding: SortDirection (required): The possible sort directions, ascending or descending.
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | URI
Library.language | preferred | CommonLanguages
Additional Bindings | Purpose
AllLanguages | Max Binding
`http://hl7.org/fhir/ValueSet/languages` from the FHIR Standard
Library.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` from the FHIR Standard
Library.type | extensible | Pattern: module-definition `http://hl7.org/fhir/ValueSet/library-type` from the FHIR Standard
Library.subject[x] | extensible | SubjectType `http://hl7.org/fhir/ValueSet/subject-type` from the FHIR Standard
Library.jurisdiction | extensible | Jurisdiction ValueSet `http://hl7.org/fhir/ValueSet/jurisdiction` from the FHIR Standard
Library.topic | example | DefinitionTopic `http://hl7.org/fhir/ValueSet/definition-topic` from the FHIR Standard
Library.parameter.use | required | OperationParameterUse `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
Library.parameter.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
Library.dataRequirement.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
Library.dataRequirement.subject[x] | extensible | SubjectType `http://hl7.org/fhir/ValueSet/subject-type` from the FHIR Standard
Library.dataRequirement.sort.direction | required | SortDirection `http://hl7.org/fhir/ValueSet/sort-direction|4.0.1` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | Library | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Library | If 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-4 | error | Library | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | Library | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Library | A resource should have narrative for robust management : text.`div`.exists() |
drq-1 | error | Library.dataRequirement.codeFilter | Either a path or a searchParam must be provided, but not both : path.exists() xor searchParam.exists() |
drq-2 | error | Library.dataRequirement.dateFilter | Either a path or a searchParam must be provided, but not both : path.exists() xor searchParam.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
lib-0 | warning | Library | Name 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: 11 elements
Prohibited: 1 element

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
- http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
- http://hl7.org/fhir/StructureDefinition/cqf-inputParameters
- http://hl7.org/fhir/StructureDefinition/cqf-defaultValue
- http://hl7.org/fhir/StructureDefinition/cqf-isSelective
- http://hl7.org/fhir/StructureDefinition/cqf-valueFilter
- http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern

Maturity: 3

Other representations of profile: CSV, Excel, Schematron