Uploaded image for project: 'eCQM Issue Tracker'
  1. eCQM Issue Tracker
  2. CQM-6452

CRP: Align QDM measure functions with FHIR-based measure

XMLWordPrintable

    • Icon: Other Other
    • Resolution: Resolved
    • Icon: Moderate Moderate
    • None
    • Hide
      We plan to move forward with the proposed change during this annual update.
      Show
      We plan to move forward with the proposed change during this annual update.
    • Not measure related
    • Hide
      Brief Description of Measures:
      CMS136: Follow-Up Care for Children Prescribed ADHD Medication (ADD)

      Percentage of children 6-12 years of age and newly prescribed a medication for attention-deficit/hyperactivity disorder (ADHD) who had appropriate follow-up care.
      Two rates are reported.
      a. Percentage of children who had one follow-up visit with a practitioner with prescribing authority during the 30-Day Initiation Phase.
      b. Percentage of children who remained on ADHD medication for at least 210 treatment days and who, in addition to the visit in the Initiation Phase, had at least two additional follow-up visits with a practitioner within 270 days (9 months) after the Initiation Phase ended.

      CMS128: Anti-depressant Medication Management

      Percentage of patients 18 years of age and older who were treated with antidepressant medication, had a diagnosis of major depression, and who remained on an antidepressant medication treatment.
      Two rates are reported.
      a. Percentage of patients who remained on an antidepressant medication for at least 84 days (12 weeks).
      b. Percentage of patients who remained on an antidepressant medication for at least 180 days (6 months).


      Description of Issue:
      The current functions in the CumulativeMedicationDuration library, “MedicationOrderPeriod” and "MedicationDispensedPeriod", calculate the medication period for a single QDM datatype, “Medication, Order” or "Medication, Dispensed", using the following QDM attributes and approach: if "supply", "dosage", and "frequency" elements are present, "daysSupplied" is derived by calculating "(supply / (dosage * frequency)) * (1 + refills)". If "daysSupplied" element is present, the duration is "daysSupplied * (1 + refills)". The result is then the interval from "relevantPeriod.low" to "relevantPeriod.low + daysSupplied", or "authorDatetime" to "authorDatetime + daysSupplied". Otherwise, the "relevantPeriod" element is used if present and completely specified.

      For "Medication, Dispensed", the calculation is slightly different as the datatype does not have a refills attribute and has an additional relevantDatetime attribute to take into consideration.

      As currently specified, the functions prioritize a derived calculation of daysSupplied over "daysSupplied". This approach does not align with the FHIR QI-Core version of the functions in development, which prioritizes "daysSupplied" over the derived calculation. The measure developer proposes reversing the order of priority in QDM version to align with FHIR QI-Core version.


      Show
      Brief Description of Measures: CMS136: Follow-Up Care for Children Prescribed ADHD Medication (ADD) Percentage of children 6-12 years of age and newly prescribed a medication for attention-deficit/hyperactivity disorder (ADHD) who had appropriate follow-up care. Two rates are reported. a. Percentage of children who had one follow-up visit with a practitioner with prescribing authority during the 30-Day Initiation Phase. b. Percentage of children who remained on ADHD medication for at least 210 treatment days and who, in addition to the visit in the Initiation Phase, had at least two additional follow-up visits with a practitioner within 270 days (9 months) after the Initiation Phase ended. CMS128: Anti-depressant Medication Management Percentage of patients 18 years of age and older who were treated with antidepressant medication, had a diagnosis of major depression, and who remained on an antidepressant medication treatment. Two rates are reported. a. Percentage of patients who remained on an antidepressant medication for at least 84 days (12 weeks). b. Percentage of patients who remained on an antidepressant medication for at least 180 days (6 months). Description of Issue: The current functions in the CumulativeMedicationDuration library, “MedicationOrderPeriod” and "MedicationDispensedPeriod", calculate the medication period for a single QDM datatype, “Medication, Order” or "Medication, Dispensed", using the following QDM attributes and approach: if "supply", "dosage", and "frequency" elements are present, "daysSupplied" is derived by calculating "(supply / (dosage * frequency)) * (1 + refills)". If "daysSupplied" element is present, the duration is "daysSupplied * (1 + refills)". The result is then the interval from "relevantPeriod.low" to "relevantPeriod.low + daysSupplied", or "authorDatetime" to "authorDatetime + daysSupplied". Otherwise, the "relevantPeriod" element is used if present and completely specified. For "Medication, Dispensed", the calculation is slightly different as the datatype does not have a refills attribute and has an additional relevantDatetime attribute to take into consideration. As currently specified, the functions prioritize a derived calculation of daysSupplied over "daysSupplied". This approach does not align with the FHIR QI-Core version of the functions in development, which prioritizes "daysSupplied" over the derived calculation. The measure developer proposes reversing the order of priority in QDM version to align with FHIR QI-Core version.
    • Hide
      Proposed Solution:
      Changes are highlighted by the asterisks.

      Current QDM Version of "MedicationOrderPeriod":
      define function "MedicationOrderPeriod"(MedOrder "Medication, Order" ):

        MedOrder Order

          let startDate: date from Coalesce(Order.relevantPeriod.low, Order.authorDatetime),


          ***totalDaysSupplied: Coalesce(Order.supply.value /(Order.dosage.value * ToDaily(Order.frequency)), Order.daysSupplied) * ( 1 + Coalesce(Order.refills, 0) )***


          return if startDate is null then null

            else if totalDaysSupplied is not null then Interval[startDate, startDate + Quantity { value: totalDaysSupplied - 1, unit: 'day' }]

            else if Order.relevantPeriod.high is not null then Interval[startDate, date from end of Order.relevantPeriod]
            else null


      Proposed QI-Core Aligned Version of "MedicationOrderPeriod":
      define function "MedicationOrderPeriod"(MedOrder "Medication, Order" ):

        MedOrder Order

          let startDate: date from Coalesce(Order.relevantPeriod.low, Order.authorDatetime),


          *** totalDaysSupplied: Coalesce(Order.daysSupplied, Order.supply.value /(Order.dosage.value * ToDaily(Order.frequency))) * ( 1 + Coalesce(Order.refills, 0) )***


          return if startDate is null then null

             else if totalDaysSupplied is not null then Interval[startDate, startDate + Quantity { value: totalDaysSupplied - 1, unit: 'day' }]

            else if Order.relevantPeriod.high is not null then Interval[startDate, date from end of Order.relevantPeriod]
            else null


      Current QDM Version of "MedicationDispensedPeriod":
      define function "MedicationDispensedPeriod"(MedDispense "Medication, Dispensed" ):

        MedDispense Dispense

          let startDate: date from Coalesce(Dispense.relevantPeriod.low, Dispense.relevantDatetime, Dispense.authorDatetime),

         
      ***totalDaysSupplied: Coalesce(Dispense.supply.value /(Dispense.dosage.value * ToDaily(Dispense.frequency)), Dispense.daysSupplied)***


          return if startDate is null then null

            else if totalDaysSupplied is not null then Interval[startDate, startDate + Quantity { value: totalDaysSupplied - 1, unit: 'day' }]

            else if Dispense.relevantPeriod.high is not null then Interval[startDate, date from end of Dispense.relevantPeriod]
            else null


      Proposed QI-Core Aligned Version of "MedicationDispensedPeriod":
      define function "MedicationDispensedPeriod"(MedDispense "Medication, Dispensed" ):

        MedDispense Dispense

          let startDate: date from Coalesce(Dispense.relevantPeriod.low, Dispense.relevantDatetime, Dispense.authorDatetime),

         

          ***totalDaysSupplied: Coalesce(Dispense.daysSupplied, Dispense.supply.value /(Dispense.dosage.value * ToDaily(Dispense.frequency)))***

         

          return if startDate is null then null

            else if totalDaysSupplied is not null then Interval[startDate, startDate + Quantity { value: totalDaysSupplied - 1, unit: 'day' }]

            else if Dispense.relevantPeriod.high is not null then Interval[startDate, date from end of Dispense.relevantPeriod]

            else null



      Rationale for Change:
      This update will bring the QDM version of the two functions closer in alignment with the FHIR-based QI-Core version that is currently in development.
      Show
      Proposed Solution: Changes are highlighted by the asterisks. Current QDM Version of "MedicationOrderPeriod": define function "MedicationOrderPeriod"(MedOrder "Medication, Order" ):   MedOrder Order     let startDate: date from Coalesce(Order.relevantPeriod.low, Order.authorDatetime),     ***totalDaysSupplied: Coalesce(Order.supply.value /(Order.dosage.value * ToDaily(Order.frequency)), Order.daysSupplied) * ( 1 + Coalesce(Order.refills, 0) )***     return if startDate is null then null       else if totalDaysSupplied is not null then Interval[startDate, startDate + Quantity { value: totalDaysSupplied - 1, unit: 'day' }]       else if Order.relevantPeriod.high is not null then Interval[startDate, date from end of Order.relevantPeriod]       else null Proposed QI-Core Aligned Version of "MedicationOrderPeriod": define function "MedicationOrderPeriod"(MedOrder "Medication, Order" ):   MedOrder Order     let startDate: date from Coalesce(Order.relevantPeriod.low, Order.authorDatetime),     *** totalDaysSupplied: Coalesce(Order.daysSupplied, Order.supply.value /(Order.dosage.value * ToDaily(Order.frequency))) * ( 1 + Coalesce(Order.refills, 0) )***     return if startDate is null then null        else if totalDaysSupplied is not null then Interval[startDate, startDate + Quantity { value: totalDaysSupplied - 1, unit: 'day' }]       else if Order.relevantPeriod.high is not null then Interval[startDate, date from end of Order.relevantPeriod]       else null Current QDM Version of "MedicationDispensedPeriod": define function "MedicationDispensedPeriod"(MedDispense "Medication, Dispensed" ):   MedDispense Dispense     let startDate: date from Coalesce(Dispense.relevantPeriod.low, Dispense.relevantDatetime, Dispense.authorDatetime),     ***totalDaysSupplied: Coalesce(Dispense.supply.value /(Dispense.dosage.value * ToDaily(Dispense.frequency)), Dispense.daysSupplied)***     return if startDate is null then null       else if totalDaysSupplied is not null then Interval[startDate, startDate + Quantity { value: totalDaysSupplied - 1, unit: 'day' }]       else if Dispense.relevantPeriod.high is not null then Interval[startDate, date from end of Dispense.relevantPeriod]       else null Proposed QI-Core Aligned Version of "MedicationDispensedPeriod": define function "MedicationDispensedPeriod"(MedDispense "Medication, Dispensed" ):   MedDispense Dispense     let startDate: date from Coalesce(Dispense.relevantPeriod.low, Dispense.relevantDatetime, Dispense.authorDatetime),         ***totalDaysSupplied: Coalesce(Dispense.daysSupplied, Dispense.supply.value /(Dispense.dosage.value * ToDaily(Dispense.frequency)))***         return if startDate is null then null       else if totalDaysSupplied is not null then Interval[startDate, startDate + Quantity { value: totalDaysSupplied - 1, unit: 'day' }]       else if Dispense.relevantPeriod.high is not null then Interval[startDate, date from end of Dispense.relevantPeriod]       else null Rationale for Change: This update will bring the QDM version of the two functions closer in alignment with the FHIR-based QI-Core version that is currently in development.

          edave Mathematica EC eCQM Team
          edave Mathematica EC eCQM Team
          Votes:
          0 Vote for this issue
          Watchers:
          2 Start watching this issue

            Created:
            Updated:
            Resolved: