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

2024 : Regarding stopdate calculation confirmation and custom function requirement_ECQM128v12

XMLWordPrintable

    • Icon: Other Other
    • Resolution: Answered
    • Icon: Critical Critical
    • None
    • None
    • Hide
      Thank you for your inquiry for CMS128v12, Anti-depressant Medication Management (2024 performance period). The function CMD.MedicationDispensedPeriod requires Medication, Dispensed attributes supply, dosage, and frequency, or attribute daysSupplied to calculate "totalDaysSupplied". In the event that either required option of attributes is absent, the function will return Medication, Dispensed attribute relevantPeriod as it is if both relevantPeriod.low and relevantPeriod.high are not null, which appears to be the case in the example you shared, therefore, the end date of the returned interval would be "the date from end of Dispensed.relevantPeriod", i.e., 2024-01-09, assuming the Medication, Dispensed has a relevantPeriod of 2023-09-25 4:35PM - 2024-01-09 5:00PM.

      CMD.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
      Show
      Thank you for your inquiry for CMS128v12, Anti-depressant Medication Management (2024 performance period). The function CMD.MedicationDispensedPeriod requires Medication, Dispensed attributes supply, dosage, and frequency, or attribute daysSupplied to calculate "totalDaysSupplied". In the event that either required option of attributes is absent, the function will return Medication, Dispensed attribute relevantPeriod as it is if both relevantPeriod.low and relevantPeriod.high are not null, which appears to be the case in the example you shared, therefore, the end date of the returned interval would be "the date from end of Dispensed.relevantPeriod", i.e., 2024-01-09, assuming the Medication, Dispensed has a relevantPeriod of 2023-09-25 4:35PM - 2024-01-09 5:00PM. CMD.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
    • CMS0128v12

      Hello  

      Following question  is  for ECQM128V12

      1)  

      As per the below stopdate calculation function, first preference is given for stopdate calculation using supply value and dose data and second preference is given for direct stopdate present in the file.

      CMD.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}}
      *else if totalDaysSupplied is not null then Interval[startDate, startDate + Quantity

      { value: totalDaysSupplied - 1, unit: 'day' }

      ]*

      In above mentioned line of code, we are doing -1 and the add the days in start date.

      Below data is present for patient “Ramon Townsend“ from product P5.

      low value='20230925163500' , high value='20240109170000'

      period value='24' unit='h'

      doseQuantity value="1.0"

      quantity value="106.0"

      Formula : totalDaysSupplied = Dispense.supply.value /(Dispense.dosage.value * ToDaily(Dispense.frequency)

      startDate + Quantity { value: totalDaysSupplied - 1, unit: 'day' }

      Stopdate calculation :

      106.0/(1*(24/24)) = 106

      2023-09-25 + (106 - 1) = 2024-01-08

      Using above data if we calculate stopdate then that will be 2024-01-08 and actually high value is 2024-01-09 in patient xml file. One day difference is there. is it correct ?

       

       

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

              Created:
              Updated:
              Resolved:
              Solution Posted On: