description: The CQL Module profile describes the elements used to provide a structured representation of the declarations and data requirements of a logic library or operation package_name: hl7.fhir.uv.cql derivation: constraint name: CQLModule type: Library elements: extension: type: Extension mustSupport: true url: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode index: 0 slicing: slices: directReferenceCode: match: {} schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode', index: 0} min: 0 logicDefinition: match: {} schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition', index: 1} min: 0 inputParameters: match: {} schema: {type: Extension, short: 'The cqf-inputParameters extension is used to provide the actual parameters given to an operation (i.e. when the module is the result of a $data-requirements operation, what were the parameters to the operation). As opposed to the Library.parameter element, which provides the definition of parameters for the module.', mustSupport: true, url: 'http://hl7.org/fhir/StructureDefinition/cqf-inputParameters', index: 2} min: 0 max: 1 type: {mustSupport: true, index: 3} subject: mustSupport: true choices: [] index: 5 relatedArtifact: short: Dependencies used by the artifact mustSupport: true index: 6 slicing: rules: open discriminator: - {path: type, type: value} min: null slices: dependency: match: {type: depends-on} schema: constraint: mnf-2: {human: 'Dependency reference must be either a resourceReference (referencing a canonical promotion) or a canonical (referencing a canonical resource), but not both', severity: error, expression: 'resource.exists() xor extension(''http://hl7.org/fhir/5.0/StructureDefinition/extension-RelatedArtifact.resourceReference'').exists()'} short: What dependencies are referenced mustSupport: true array: true index: 7 extensions: resourceReference: {url: 'http://hl7.org/fhir/5.0/StructureDefinition/extension-RelatedArtifact.resourceReference', min: 0, max: 1, short: A reference to the dependency artifact (for canonical promotions), type: Extension, mustSupport: true, index: 8} elements: extension: short: A reference to the dependency artifact (for canonical promotions) type: Extension mustSupport: true url: http://hl7.org/fhir/5.0/StructureDefinition/extension-RelatedArtifact.resourceReference index: 8 slicing: slices: resourceReference: match: {} schema: {short: A reference to the dependency artifact (for canonical promotions), type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/5.0/StructureDefinition/extension-RelatedArtifact.resourceReference', index: 8} min: 0 max: 1 type: type: code pattern: {type: Code, value: depends-on} mustSupport: true index: 9 display: {mustSupport: true, index: 10} resource: {short: A reference to the dependency artifact (for canonical resources), mustSupport: true, index: 11} required: [type] parameter: short: Provides the definition of parameters for the module. mustSupport: true index: 12 extensions: defaultValue: {url: 'http://hl7.org/fhir/StructureDefinition/cqf-defaultValue', min: 0, max: 1, type: Extension, short: cqf-defaultValue is used if the parameter definition has a default to provide the expected value of the default. Note that the value is provided according to the FHIR Type Mapping, mustSupport: true, index: 13} cqlType: {url: 'http://hl7.org/fhir/StructureDefinition/cqf-cqlType', min: 0, max: 1, type: Extension, short: 'cqf-cqlType is used to ensure that the type of the parameter can be unambiguously provided, given that the FHIR Type Mapping is potentially ambiguous (for the Period type specifically)', index: 14} cqlAccessModifier: {url: 'http://hl7.org/fhir/StructureDefinition/cqf-cqlAccessModifier', min: 0, max: 1, type: Extension, index: 15} elements: extension: type: Extension short: cqf-defaultValue is used if the parameter definition has a default to provide the expected value of the default. Note that the value is provided according to the FHIR Type Mapping mustSupport: true url: http://hl7.org/fhir/StructureDefinition/cqf-defaultValue index: 13 slicing: slices: defaultValue: match: {} schema: {type: Extension, short: cqf-defaultValue is used if the parameter definition has a default to provide the expected value of the default. Note that the value is provided according to the FHIR Type Mapping, mustSupport: true, url: 'http://hl7.org/fhir/StructureDefinition/cqf-defaultValue', index: 13} min: 0 max: 1 cqlType: match: {} schema: {type: Extension, short: 'cqf-cqlType is used to ensure that the type of the parameter can be unambiguously provided, given that the FHIR Type Mapping is potentially ambiguous (for the Period type specifically)', url: 'http://hl7.org/fhir/StructureDefinition/cqf-cqlType', index: 14} min: 0 max: 1 cqlAccessModifier: match: {} schema: {type: Extension, url: 'http://hl7.org/fhir/StructureDefinition/cqf-cqlAccessModifier', index: 15} min: 0 max: 1 dataRequirement: mustSupport: true index: 16 extensions: isSelective: {url: 'http://hl7.org/fhir/StructureDefinition/cqf-isSelective', min: 0, max: 1, short: specifies whether a given DataRequirement is "selective", type: Extension, mustSupport: true, index: 17} valueFilter: {url: 'http://hl7.org/fhir/StructureDefinition/cqf-valueFilter', min: 0, type: Extension, mustSupport: true, index: 18} fhirQueryPattern: {url: 'http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern', min: 0, type: Extension, mustSupport: false, index: 19} elements: extension: short: specifies whether a given DataRequirement is "selective" type: Extension mustSupport: true url: http://hl7.org/fhir/StructureDefinition/cqf-isSelective index: 17 slicing: slices: isSelective: match: {} schema: {short: specifies whether a given DataRequirement is "selective", type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/StructureDefinition/cqf-isSelective', index: 17} min: 0 max: 1 valueFilter: match: {} schema: {type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/StructureDefinition/cqf-valueFilter', index: 18} min: 0 fhirQueryPattern: match: {} schema: {type: Extension, mustSupport: false, url: 'http://hl7.org/fhir/StructureDefinition/cqf-fhirQueryPattern', index: 19} min: 0 package_version: 2.0.0-ballot extensions: directReferenceCode: {url: 'http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode', min: 0, type: Extension, mustSupport: true, index: 0} logicDefinition: {url: 'http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition', min: 0, type: Extension, mustSupport: true, index: 1} inputParameters: {url: 'http://hl7.org/fhir/StructureDefinition/cqf-inputParameters', min: 0, max: 1, type: Extension, short: 'The cqf-inputParameters extension is used to provide the actual parameters given to an operation (i.e. when the module is the result of a $data-requirements operation, what were the parameters to the operation). As opposed to the Library.parameter element, which provides the definition of parameters for the module.', mustSupport: true, index: 2} class: profile kind: resource url: http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module base: http://hl7.org/fhir/StructureDefinition/Library version: 2.0.0-ballot required: [type]