# CQL Model Info Settings - Using CQL With FHIR v3.0.0-ballot

## Resource Profile: CQL Model Info Settings 

 
CQL ModelInfo settings expressed using FHIR Parameters 

**Usages:**

* Refer to this Profile: [CQL ImplementationGuide](StructureDefinition-cql-implementationguide.md)
* Examples for this Profile: [Parameters/fhir-modelinfo-settings](Parameters-fhir-modelinfo-settings.md)

You can also check for [usages in the FHIR IG Statistics](https://packages2.fhir.org/xig/resource/hl7.fhir.uv.cql|current/StructureDefinition/StructureDefinition-cql-modelinfosettings.json)

### Formal Views of Profile Content

 [Description Differentials, Snapshots, and other representations](http://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#structure-definitions). 

 

Other representations of profile: [CSV](../StructureDefinition-cql-modelinfosettings.csv), [Excel](../StructureDefinition-cql-modelinfosettings.xlsx), [Schematron](../StructureDefinition-cql-modelinfosettings.sch) 



## Resource Content

```json
{
  "resourceType" : "StructureDefinition",
  "id" : "cql-modelinfosettings",
  "extension" : [{
    "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
    "valueInteger" : 1
  },
  {
    "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
    "valueCode" : "cds"
  },
  {
    "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
    "valueCode" : "trial-use"
  }],
  "url" : "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-modelinfosettings",
  "identifier" : [{
    "system" : "urn:ietf:rfc:3986",
    "value" : "urn:oid:2.16.840.1.113883.4.642.40.37.42.11"
  }],
  "version" : "3.0.0-ballot",
  "name" : "CQLModelInfoSettings",
  "title" : "CQL Model Info Settings",
  "status" : "active",
  "experimental" : false,
  "date" : "2026-08-14T03:31:27+10:00",
  "publisher" : "HL7 International / Clinical Decision Support",
  "contact" : [{
    "telecom" : [{
      "system" : "url",
      "value" : "http://www.hl7.org/Special/committees/dss"
    }]
  }],
  "description" : "CQL ModelInfo settings expressed using FHIR Parameters",
  "jurisdiction" : [{
    "coding" : [{
      "system" : "http://unstats.un.org/unsd/methods/m49/m49.htm",
      "code" : "001",
      "display" : "World"
    }]
  }],
  "fhirVersion" : "4.0.1",
  "mapping" : [{
    "identity" : "v2",
    "uri" : "http://hl7.org/v2",
    "name" : "HL7 v2 Mapping"
  },
  {
    "identity" : "rim",
    "uri" : "http://hl7.org/v3",
    "name" : "RIM Mapping"
  }],
  "kind" : "resource",
  "abstract" : false,
  "type" : "Parameters",
  "baseDefinition" : "http://hl7.org/fhir/StructureDefinition/Parameters",
  "derivation" : "constraint",
  "differential" : {
    "element" : [{
      "id" : "Parameters",
      "path" : "Parameters",
      "mustSupport" : false
    },
    {
      "id" : "Parameters.parameter",
      "path" : "Parameters.parameter",
      "slicing" : {
        "discriminator" : [{
          "type" : "value",
          "path" : "name"
        }],
        "ordered" : false,
        "rules" : "open"
      }
    },
    {
      "id" : "Parameters.parameter:modelName",
      "path" : "Parameters.parameter",
      "sliceName" : "modelName",
      "short" : "What model",
      "definition" : "This parameter determines the unqualified name of the model as it will be referenced in CQL. By convention, it is typically a valid unquoted identifier in CQL (excluding underscores) and for IGs, is typically a Pascal-cased rendering of the end of the package id (i.e. the unqualified package id).",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:modelName.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "modelName"
    },
    {
      "id" : "Parameters.parameter:modelName.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:modelVersion",
      "path" : "Parameters.parameter",
      "sliceName" : "modelVersion",
      "short" : "What version",
      "definition" : "This parameter determines the version of the model as it will be referenced in CQL. By convention, this SHOULD correspond to the version of the specification being represented, though this is not required.",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:modelVersion.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "modelVersion"
    },
    {
      "id" : "Parameters.parameter:modelVersion.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:modelNamespace",
      "path" : "Parameters.parameter",
      "sliceName" : "modelNamespace",
      "short" : "What namespace",
      "definition" : "This parameter determines the namespace of the model as it will be referenced in CQL. By convention, it is typically a valid unquoted identifier qualifier in CQL (excluding underscores) and for IGs, is typically a Pascal-cased rendering of the package id without the end (i.e. the qualified package id without the last identifier).",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:modelNamespace.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "modelNamespace"
    },
    {
      "id" : "Parameters.parameter:modelNamespace.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:modelUrl",
      "path" : "Parameters.parameter",
      "sliceName" : "modelUrl",
      "short" : "What url",
      "definition" : "This parameter determines the url of the model as it will be referenced in ELM. By convention, it is typically the base canonical for the specification or IG the model is representing.",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:modelUrl.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "modelUrl"
    },
    {
      "id" : "Parameters.parameter:modelUrl.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:patientClassName",
      "path" : "Parameters.parameter",
      "sliceName" : "patientClassName",
      "short" : "Name of the patient class in the model",
      "definition" : "This parameter identifies the name of the Patient class in the model. This is used by the translator to support patient-specific capabilities of CQL (such as age calculation)",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:patientClassName.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "patientClassName"
    },
    {
      "id" : "Parameters.parameter:patientClassName.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:patientBirthDatePropertyName",
      "path" : "Parameters.parameter",
      "sliceName" : "patientBirthDatePropertyName",
      "short" : "Name of the birthdate property of the Patient class in the model",
      "definition" : "This parameter identifies the name of the BirthDate element in the Patient class in the model. This is used by the translator to support patient age calculation in CQL.",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:patientBirthDatePropertyName.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "patientBirthDatePropertyName"
    },
    {
      "id" : "Parameters.parameter:patientBirthDatePropertyName.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:targetQualifier",
      "path" : "Parameters.parameter",
      "sliceName" : "targetQualifier",
      "short" : "Model target qualifier",
      "definition" : "This parameter identifies the target qualifier for the classes in the model. This typically corresponds to the model name",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:targetQualifier.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "targetQualifier"
    },
    {
      "id" : "Parameters.parameter:targetQualifier.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:targetUrl",
      "path" : "Parameters.parameter",
      "sliceName" : "targetUrl",
      "short" : "Model target url",
      "definition" : "This parameter identifies the target url for ELM output when using profile-informed authoring. This typically corresponds to the base FHIR URL (since profile-informed authoring maps profiled structures down to the base FHIR resources).",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:targetUrl.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "targetUrl"
    },
    {
      "id" : "Parameters.parameter:targetUrl.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:useCqlPrimitives",
      "path" : "Parameters.parameter",
      "sliceName" : "useCqlPrimitives",
      "short" : "Map to CQL primitives?",
      "definition" : "Indicates whether or not data types should be mapped to CQL types according to the [FHIR Type Mapping](conformance.html#fhir-type-mapping) section of the Using CQL With FHIR implementation guide.",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:useCqlPrimitives.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "useCqlPrimitives"
    },
    {
      "id" : "Parameters.parameter:useCqlPrimitives.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "boolean"
      }]
    },
    {
      "id" : "Parameters.parameter:includeMetadata",
      "path" : "Parameters.parameter",
      "sliceName" : "includeMetadata",
      "short" : "Include definitions, comments, bindings and other metadata?",
      "definition" : "Indicates whether or not elements should include metadata information such as definitions, comments, bindings, and constraints.",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:includeMetadata.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "includeMetadata"
    },
    {
      "id" : "Parameters.parameter:includeMetadata.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "boolean"
      }]
    },
    {
      "id" : "Parameters.parameter:createSliceElements",
      "path" : "Parameters.parameter",
      "sliceName" : "createSliceElements",
      "short" : "Create slice and extension elements?",
      "definition" : "Indicates whether or not slices and elements in profiles should be represented as first-class elements in the resulting classes.",
      "comment" : "This is a feature of Profile-informed authoring, and requires the use of _target mapping_, a feature of the CQL-to-ELM translator that is not widely implemented. Care should be taken when using profile-informed authoring to ensure that the target environment can correctly support profile-informed model information.",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:createSliceElements.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "createSliceElements"
    },
    {
      "id" : "Parameters.parameter:createSliceElements.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "boolean"
      }]
    },
    {
      "id" : "Parameters.parameter:flatten",
      "path" : "Parameters.parameter",
      "sliceName" : "flatten",
      "short" : "Create flattened classes?",
      "definition" : "Indicates whether or not to create flattened classes (true), or to derive classes (e.g. a USCore.Encounter is a FHIR.Encounter).",
      "comment" : "This is a feature of Profile-informed authoring, and requires the use of _target mapping_, a feature of the CQL-to-ELM translator that is not widely implemented. Care should be taken when using profile-informed authoring to ensure that the target environment can correctly support profile-informed model information.",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:flatten.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "flatten"
    },
    {
      "id" : "Parameters.parameter:flatten.value[x]",
      "path" : "Parameters.parameter.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "boolean"
      }]
    },
    {
      "id" : "Parameters.parameter:dependency",
      "path" : "Parameters.parameter",
      "sliceName" : "dependency",
      "short" : "Required model information",
      "definition" : "Describes required model information used by the structures in this model information.",
      "min" : 0,
      "max" : "*"
    },
    {
      "id" : "Parameters.parameter:dependency.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "dependency"
    },
    {
      "id" : "Parameters.parameter:dependency.part",
      "path" : "Parameters.parameter.part",
      "slicing" : {
        "discriminator" : [{
          "type" : "value",
          "path" : "name"
        }],
        "ordered" : false,
        "rules" : "open"
      },
      "min" : 4,
      "max" : "4"
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelNamespace",
      "path" : "Parameters.parameter.part",
      "sliceName" : "modelNamespace",
      "short" : "Namespace of the required model (i.e. packageId)",
      "definition" : "The namespace of the required model (e.g. hl7.fhir)",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelNamespace.name",
      "path" : "Parameters.parameter.part.name",
      "fixedString" : "modelNamespace"
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelNamespace.value[x]",
      "path" : "Parameters.parameter.part.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelName",
      "path" : "Parameters.parameter.part",
      "sliceName" : "modelName",
      "short" : "Name of the required model",
      "definition" : "The unqualified name of the required model (e.g. FHIR)",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelName.name",
      "path" : "Parameters.parameter.part.name",
      "fixedString" : "modelName"
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelName.value[x]",
      "path" : "Parameters.parameter.part.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelVersion",
      "path" : "Parameters.parameter.part",
      "sliceName" : "modelVersion",
      "short" : "Version of the required model",
      "definition" : "The version of the required model (e.g. 4.0.1)",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelVersion.name",
      "path" : "Parameters.parameter.part.name",
      "fixedString" : "modelVersion"
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelVersion.value[x]",
      "path" : "Parameters.parameter.part.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelUrl",
      "path" : "Parameters.parameter.part",
      "sliceName" : "modelUrl",
      "short" : "Url of the required model",
      "definition" : "The url (i.e. base canonical) of the required model (e.g. http://hl7.org/fhir)",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelUrl.name",
      "path" : "Parameters.parameter.part.name",
      "fixedString" : "modelUrl"
    },
    {
      "id" : "Parameters.parameter:dependency.part:modelUrl.value[x]",
      "path" : "Parameters.parameter.part.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:profile",
      "path" : "Parameters.parameter",
      "sliceName" : "profile",
      "short" : "Profile configuration",
      "definition" : "Describes profile configuration information for the structures in this model information.",
      "min" : 0,
      "max" : "*"
    },
    {
      "id" : "Parameters.parameter:profile.name",
      "path" : "Parameters.parameter.name",
      "fixedString" : "profile"
    },
    {
      "id" : "Parameters.parameter:profile.part",
      "path" : "Parameters.parameter.part",
      "slicing" : {
        "discriminator" : [{
          "type" : "value",
          "path" : "name"
        }],
        "ordered" : false,
        "rules" : "open"
      },
      "min" : 1,
      "max" : "5"
    },
    {
      "id" : "Parameters.parameter:profile.part:url",
      "path" : "Parameters.parameter.part",
      "sliceName" : "url",
      "short" : "Url of the profile",
      "definition" : "The canonical url of the profile being configured (e.g. http://hl7.org/fhir/StructureDefinition/Patient)",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:profile.part:url.name",
      "path" : "Parameters.parameter.part.name",
      "fixedString" : "url"
    },
    {
      "id" : "Parameters.parameter:profile.part:url.value[x]",
      "path" : "Parameters.parameter.part.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "uri"
      }]
    },
    {
      "id" : "Parameters.parameter:profile.part:isIncluded",
      "path" : "Parameters.parameter.part",
      "sliceName" : "isIncluded",
      "short" : "Included in the model?",
      "definition" : "Indicates whether the profile should result in a class declaration in the model information. By default, all profiles defined in an implementation guide are included in the model information.",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:profile.part:isIncluded.name",
      "path" : "Parameters.parameter.part.name",
      "fixedString" : "isIncluded"
    },
    {
      "id" : "Parameters.parameter:profile.part:isIncluded.value[x]",
      "path" : "Parameters.parameter.part.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "boolean"
      }]
    },
    {
      "id" : "Parameters.parameter:profile.part:isRetrievable",
      "path" : "Parameters.parameter.part",
      "sliceName" : "isRetrievable",
      "short" : "Can be the target of a retrieve expression?",
      "definition" : "Indicates whether the resulting class declaration can be the target of a retrieve expression in CQL. By default, for FHIR-based models, this is all non-abstract resource and profile definitions (not data types or extension definitions)",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:profile.part:isRetrievable.name",
      "path" : "Parameters.parameter.part.name",
      "fixedString" : "isRetrievable"
    },
    {
      "id" : "Parameters.parameter:profile.part:isRetrievable.value[x]",
      "path" : "Parameters.parameter.part.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "boolean"
      }]
    },
    {
      "id" : "Parameters.parameter:profile.part:label",
      "path" : "Parameters.parameter.part",
      "sliceName" : "label",
      "short" : "Label for the class",
      "definition" : "The friendly name of the class; an alternate identifier by which the class can be referenced as a type (e.g. Blood Pressure vs BloodPressure). By default, the title of the StructureDefinition, if present, will be used as the label for the class declaration.",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:profile.part:label.name",
      "path" : "Parameters.parameter.part.name",
      "fixedString" : "label"
    },
    {
      "id" : "Parameters.parameter:profile.part:label.value[x]",
      "path" : "Parameters.parameter.part.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "Parameters.parameter:profile.part:primaryCodePath",
      "path" : "Parameters.parameter.part",
      "sliceName" : "primaryCodePath",
      "short" : "Primary code path for the class",
      "definition" : "The primary code path used as the default terminology filter if no terminology filter is specified in a retrieve (e.g. code for FHIR.Observation). If no primary code path is specified, retrieve expression must specify a code filter explicitly.",
      "min" : 0,
      "max" : "1"
    },
    {
      "id" : "Parameters.parameter:profile.part:primaryCodePath.name",
      "path" : "Parameters.parameter.part.name",
      "fixedString" : "primaryCodePath"
    },
    {
      "id" : "Parameters.parameter:profile.part:primaryCodePath.value[x]",
      "path" : "Parameters.parameter.part.value[x]",
      "min" : 1,
      "type" : [{
        "code" : "string"
      }]
    }]
  }
}

```
