FHIR © HL7.org  |  Server Home  |  XIG Home  |  XIG Stats  |  Server Source  |  FHIR  

FHIR IG Statistics: Measure/QuestionnaireMeasureExample

Packageexample.fhir.uv.mycontentig
Resource TypeMeasure
IdQuestionnaireMeasureExample
FHIR VersionR4
Sourcehttp://somewhere.org/fhir/uv/mycontentig/https://build.fhir.org/ig/cqframework/sample-content-ig/Measure-QuestionnaireMeasureExample.html
URLhttp://somewhere.org/fhir/uv/mycontentig/Measure/QuestionnaireMeasureExample
Version0.4.9-cibuild
Statusdraft
Date2025-08-07T12:57:13-07:00
NameQuestionnaireMeasureExample
TitleQuestionnaire Measure Example
Realmuv
Authorityhl7
DescriptionExample measure illustrating a continuous variable measure calculating scores from multiple questionnaires

Resources that use this resource

No resources found


Resources that this resource uses

No resources found


Narrative

Note: links and images are rebased to the (stated) source

Metadata
Title Questionnaire Measure Example
Version 0.4.9-cibuild
Status Draft
Experimental true
Jurisdiction Global (Whole world)
Steward (Publisher) HL7 International - [Some] Work Group
Description

Example measure illustrating a continuous variable measure calculating scores from multiple questionnaires

Measure Scoring Continuous Variable
Measure Type Process
Improvement Notation Increased score indicates improvement
Measure Group (Rate) (ID: group-1)
Initial Population ID: 8A48538B-80BB-4E8B-9716-559C657278FD
Description: No description provided Logic Definition: Initial Population
Measure Population ID: 8FBD6CFA-99E4-4108-B083-91067C55170E
Description: No description provided Logic Definition: Measure Population
Measure Observation ID: 8B71AD15-47EB-4939-8318-1DF60CABCFD6
Description: No description provided Logic Definition: MeasureObservation Input Population: 8FBD6CFA-99E4-4108-B083-91067C55170E AggregateMethod: average
Measure Logic
Primary Library QuestionnaireMeasureExample
Contents Population Criteria
Logic Definitions
Terminology
Dependencies
Data Requirements
Population Criteria
Measure Group (Rate) (ID: group-1)
Initial Population
define "Initial Population":
  AgeInYearsAt(start of "Measurement Period") >= 18
Measure Population
// Likely some condition or other relevant characteristic such as a depression diagnosis
define "Measure Population":
  true
Measure Observation
/*
Measure observation is a function defined in terms of the types of members of the measure
population, Patient in this case. In a population evaluation scenario, the measure
observation is evaluated for every member of the population.

In an individual report scenario, however, the measure observation is evaluated for
the current patient. Note that the patient context is flowing through the call here
*/
define function "MeasureObservation"(patient Patient):
  PHQ9Logic.CalculateTotalScore
Logic Definitions
Logic Definition Library Name: QuestionnaireMeasureExample
define "Initial Population":
  AgeInYearsAt(start of "Measurement Period") >= 18
Logic Definition Library Name: QuestionnaireMeasureExample
// Likely some condition or other relevant characteristic such as a depression diagnosis
define "Measure Population":
  true
Logic Definition Library Name: QuestionnaireMeasureExample
/*
Measure observation is a function defined in terms of the types of members of the measure
population, Patient in this case. In a population evaluation scenario, the measure
observation is evaluated for every member of the population.

In an individual report scenario, however, the measure observation is evaluated for
the current patient. Note that the patient context is flowing through the call here
*/
define function "MeasureObservation"(patient Patient):
  PHQ9Logic.CalculateTotalScore
Logic Definition Library Name: PHQ9LogicExample
// Use the QuestionnaireResponse provided as a parameter if available
// Otherwise look it up from the record
define "QuestionnaireResponse":
  if response is not null then
    response
  else
    Last(
      [QuestionnaireResponse] QR
        where QR.questionnaire = 'http://somewhere.org/fhir/uv/mycontentig/Questionnaire/phq-9-questionnaire'
        sort by (authored as FHIR.dateTime) desc
    )
Logic Definition Library Name: PHQ9LogicExample
// NOTE: This ties this logic directly to this particular rendering of the Questionnaire.
// Ideally the items would be filtered based on Code of the Item, rather than the LinkId,
// but that would require pulling in the Questionnaire because the QuestionnaireResponse
// only has the LinkId.
define "Responses":
  "QuestionnaireResponse" QR
    return QR.item I where I.linkId in {
      'LittleInterest',
      'FeelingDown',
      'TroubleSleeping',
      'FeelingTired',
      'BadApetite',
      'FeelingBadAboutSelf',
      'TroubleConcetrating',
      'MovingSpeaking'
    }
Logic Definition Library Name: PHQ9LogicExample
define "CalculateTotalScore":
  Sum("Responses" R return all AnswerCardinality(First(R.answer.value)))
Logic Definition Library Name: PHQ9LogicExample
/*
@source: https://www.med.umich.edu/1info/FHP/practiceguides/depress/score.pdf
*/
define function "AnswerCardinality"(answer Coding):
  case
    when answer ~ "Not at all" then 0
    when answer ~ "Several days" then 1
    when answer ~ "More than half the days" then 2
    when answer ~ "Nearly every day" then 3
    else null
  end
Logic Definition Library Name: FHIRHelpers
define function ToString(value uri): value.value
Logic Definition Library Name: FHIRHelpers
define function ToString(value string): value.value
Logic Definition Library Name: FHIRHelpers
define function ToCode(coding FHIR.Coding):
    if coding is null then
        null
    else
        System.Code {
          code: coding.code.value,
          system: coding.system.value,
          version: coding.version.value,
          display: coding.display.value
        }
Terminology
Code System Description: Code system LOINC
Resource: Logical Observation Identifiers, Names and Codes (LOINC)
Canonical URL: http://loinc.org
Direct Reference Code Code: LA6568-5
System: http://loinc.org
Direct Reference Code Code: LA6569-3
System: http://loinc.org
Direct Reference Code Code: LA6570-1
System: http://loinc.org
Direct Reference Code Code: LA6571-9
System: http://loinc.org
Dependencies
Dependency Description: Library PHQ9Logic
Resource: PHQ9LogicExample
Canonical URL: http://somewhere.org/fhir/uv/mycontentig/Library/PHQ9LogicExample
Dependency Description: Library FHIRHelpers
Resource: http://somewhere.org/fhir/uv/mycontentig/Library/FHIRHelpers|4.0.1
Canonical URL: http://somewhere.org/fhir/uv/mycontentig/Library/FHIRHelpers|4.0.1
Data Requirements
Data Requirement Type: QuestionnaireResponse
Profile(s): QuestionnaireResponse
Must Support Elements: questionnaire, item, answer
Data Requirement Type: Patient
Profile(s): Patient
Generated using version 0.4.9-cibuild of the sample-content-ig Liquid templates

Source

{
  "resourceType": "Measure",
  "id": "QuestionnaireMeasureExample",
  "meta": {
    "profile": [
      "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/computable-measure-cqfm"
    ]
  },
  "text": {
    "status": "extensions",
    "div": "<!-- snip (see above) -->"
  },
  "contained": [
    {
      "resourceType": "Library",
      "id": "effective-data-requirements",
      "extension": [
        {
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode",
          "valueCoding": {
            "system": "http://loinc.org",
            "code": "LA6568-5"
          }
        },
        {
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode",
          "valueCoding": {
            "system": "http://loinc.org",
            "code": "LA6569-3"
          }
        },
        {
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode",
          "valueCoding": {
            "system": "http://loinc.org",
            "code": "LA6570-1"
          }
        },
        {
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode",
          "valueCoding": {
            "system": "http://loinc.org",
            "code": "LA6571-9"
          }
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "PHQ9LogicExample"
            },
            {
              "url": "name",
              "valueString": "QuestionnaireResponse"
            },
            {
              "url": "statement",
              "valueString": "// Use the QuestionnaireResponse provided as a parameter if available\n// Otherwise look it up from the record\ndefine \"QuestionnaireResponse\":\n  if response is not null then\n    response\n  else\n    Last(\n      [QuestionnaireResponse] QR\n        where QR.questionnaire = 'http://somewhere.org/fhir/uv/mycontentig/Questionnaire/phq-9-questionnaire'\n        sort by (authored as FHIR.dateTime) desc\n    )"
            },
            {
              "url": "displaySequence",
              "valueInteger": 0
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "PHQ9LogicExample"
            },
            {
              "url": "name",
              "valueString": "Responses"
            },
            {
              "url": "statement",
              "valueString": "// NOTE: This ties this logic directly to this particular rendering of the Questionnaire.\n// Ideally the items would be filtered based on Code of the Item, rather than the LinkId,\n// but that would require pulling in the Questionnaire because the QuestionnaireResponse\n// only has the LinkId.\ndefine \"Responses\":\n  \"QuestionnaireResponse\" QR\n    return QR.item I where I.linkId in {\n      'LittleInterest',\n      'FeelingDown',\n      'TroubleSleeping',\n      'FeelingTired',\n      'BadApetite',\n      'FeelingBadAboutSelf',\n      'TroubleConcetrating',\n      'MovingSpeaking'\n    }"
            },
            {
              "url": "displaySequence",
              "valueInteger": 1
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "PHQ9LogicExample"
            },
            {
              "url": "name",
              "valueString": "CalculateTotalScore"
            },
            {
              "url": "statement",
              "valueString": "define \"CalculateTotalScore\":\n  Sum(\"Responses\" R return all AnswerCardinality(First(R.answer.value)))"
            },
            {
              "url": "displaySequence",
              "valueInteger": 2
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "QuestionnaireMeasureExample"
            },
            {
              "url": "name",
              "valueString": "Initial Population"
            },
            {
              "url": "statement",
              "valueString": "define \"Initial Population\":\n  AgeInYearsAt(start of \"Measurement Period\") >= 18"
            },
            {
              "url": "displaySequence",
              "valueInteger": 3
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "QuestionnaireMeasureExample"
            },
            {
              "url": "name",
              "valueString": "Measure Population"
            },
            {
              "url": "statement",
              "valueString": "// Likely some condition or other relevant characteristic such as a depression diagnosis\ndefine \"Measure Population\":\n  true"
            },
            {
              "url": "displaySequence",
              "valueInteger": 4
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "QuestionnaireMeasureExample"
            },
            {
              "url": "name",
              "valueString": "MeasureObservation"
            },
            {
              "url": "statement",
              "valueString": "/*\nMeasure observation is a function defined in terms of the types of members of the measure\npopulation, Patient in this case. In a population evaluation scenario, the measure\nobservation is evaluated for every member of the population.\n\nIn an individual report scenario, however, the measure observation is evaluated for\nthe current patient. Note that the patient context is flowing through the call here\n*/\ndefine function \"MeasureObservation\"(patient Patient):\n  PHQ9Logic.CalculateTotalScore"
            },
            {
              "url": "displaySequence",
              "valueInteger": 5
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToString"
            },
            {
              "url": "statement",
              "valueString": "define function ToString(value uri): value.value"
            },
            {
              "url": "displaySequence",
              "valueInteger": 6
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToString"
            },
            {
              "url": "statement",
              "valueString": "define function ToString(value string): value.value"
            },
            {
              "url": "displaySequence",
              "valueInteger": 7
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "PHQ9LogicExample"
            },
            {
              "url": "name",
              "valueString": "AnswerCardinality"
            },
            {
              "url": "statement",
              "valueString": "/*\n@source: https://www.med.umich.edu/1info/FHP/practiceguides/depress/score.pdf\n*/\ndefine function \"AnswerCardinality\"(answer Coding):\n  case\n    when answer ~ \"Not at all\" then 0\n    when answer ~ \"Several days\" then 1\n    when answer ~ \"More than half the days\" then 2\n    when answer ~ \"Nearly every day\" then 3\n    else null\n  end"
            },
            {
              "url": "displaySequence",
              "valueInteger": 8
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToCode"
            },
            {
              "url": "statement",
              "valueString": "define function ToCode(coding FHIR.Coding):\n    if coding is null then\n        null\n    else\n        System.Code {\n          code: coding.code.value,\n          system: coding.system.value,\n          version: coding.version.value,\n          display: coding.display.value\n        }"
            },
            {
              "url": "displaySequence",
              "valueInteger": 9
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        }
      ],
      "name": "EffectiveDataRequirements",
      "status": "active",
      "type": {
        "coding": [
          {
            "system": "http://terminology.hl7.org/CodeSystem/library-type",
            "code": "module-definition"
          }
        ]
      },
      "relatedArtifact": [
        {
          "type": "depends-on",
          "display": "Library PHQ9Logic",
          "resource": "http://somewhere.org/fhir/uv/mycontentig/Library/PHQ9LogicExample"
        },
        {
          "type": "depends-on",
          "display": "Library FHIRHelpers",
          "resource": "http://somewhere.org/fhir/uv/mycontentig/Library/FHIRHelpers|4.0.1"
        },
        {
          "type": "depends-on",
          "display": "Code system LOINC",
          "resource": "http://loinc.org"
        }
      ],
      "parameter": [
        {
          "name": "response",
          "use": "in",
          "min": 0,
          "max": "1",
          "type": "QuestionnaireResponse"
        },
        {
          "name": "Measurement Period",
          "use": "in",
          "min": 0,
          "max": "1",
          "type": "Period"
        },
        {
          "name": "Initial Population",
          "use": "out",
          "min": 0,
          "max": "1",
          "type": "boolean"
        },
        {
          "name": "Measure Population",
          "use": "out",
          "min": 0,
          "max": "1",
          "type": "boolean"
        }
      ],
      "dataRequirement": [
        {
          "type": "QuestionnaireResponse",
          "profile": [
            "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse"
          ],
          "mustSupport": [
            "questionnaire",
            "item",
            "answer"
          ]
        },
        {
          "type": "Patient",
          "profile": [
            "http://hl7.org/fhir/StructureDefinition/Patient"
          ]
        }
      ]
    }
  ],
  "extension": [
    {
      "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem",
      "valueReference": {
        "reference": "Device/cqf-tooling"
      }
    },
    {
      "id": "effective-data-requirements",
      "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements",
      "valueReference": {
        "reference": "#effective-data-requirements"
      }
    }
  ],
  "url": "http://somewhere.org/fhir/uv/mycontentig/Measure/QuestionnaireMeasureExample",
  "version": "0.4.9-cibuild",
  "name": "QuestionnaireMeasureExample",
  "title": "Questionnaire Measure Example",
  "status": "draft",
  "experimental": true,
  "date": "2025-08-07T12:57:13-07:00",
  "publisher": "HL7 International - [Some] Work Group",
  "contact": [
    {
      "telecom": [
        {
          "system": "url",
          "value": "http://hl7.org/Special/committees/[something]"
        }
      ]
    }
  ],
  "description": "Example measure illustrating a continuous variable measure calculating scores from multiple questionnaires",
  "jurisdiction": [
    {
      "coding": [
        {
          "system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code": "001"
        }
      ]
    }
  ],
  "library": [
    "http://somewhere.org/fhir/uv/mycontentig/Library/QuestionnaireMeasureExample"
  ],
  "scoring": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/measure-scoring",
        "code": "continuous-variable",
        "display": "Continuous Variable"
      }
    ]
  },
  "type": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/measure-type",
          "code": "process"
        }
      ]
    }
  ],
  "improvementNotation": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/measure-improvement-notation",
        "code": "increase"
      }
    ]
  },
  "group": [
    {
      "id": "group-1",
      "population": [
        {
          "id": "8A48538B-80BB-4E8B-9716-559C657278FD",
          "code": {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/measure-population",
                "code": "initial-population",
                "display": "Initial Population"
              }
            ]
          },
          "criteria": {
            "language": "text/cql-identifier",
            "expression": "Initial Population"
          }
        },
        {
          "id": "8FBD6CFA-99E4-4108-B083-91067C55170E",
          "code": {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/measure-population",
                "code": "measure-population",
                "display": "Measure Population"
              }
            ]
          },
          "criteria": {
            "language": "text/cql-identifier",
            "expression": "Measure Population"
          }
        },
        {
          "id": "8B71AD15-47EB-4939-8318-1DF60CABCFD6",
          "extension": [
            {
              "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-aggregateMethod",
              "valueCode": "average"
            },
            {
              "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-criteriaReference",
              "valueString": "8FBD6CFA-99E4-4108-B083-91067C55170E"
            }
          ],
          "code": {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/measure-population",
                "code": "measure-observation",
                "display": "Measure Observation"
              }
            ]
          },
          "criteria": {
            "language": "text/cql-identifier",
            "expression": "MeasureObservation"
          }
        }
      ]
    }
  ]
}