PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.cql@2.0.0-ballot
    http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module
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]