cql-to-elm translator validation issue
This was noticed while testing CMS190V11 in bonnie. CQL:
define "No Mechanical VTE Prophylaxis Due to Medical Reason on Day of or Day After Procedure":
from
"Encounter with ICU Location" QualifyingEncounterICU,
["Procedure, Performed": "General or Neuraxial Anesthesia"] AnesthesiaProcedure,
"No Mechanical VTE Prophylaxis Performed or Ordered" NoMechanicalProphylaxis
where NoMechanicalProphylaxis.negationRationale in "Medical Reason" NoMechanicalProphylaxis
and Global."NormalizeInterval" ( AnesthesiaProcedure.relevantDatetime, AnesthesiaProcedure.relevantPeriod ) ends 1 day after day of VTE."StartOfFirstICU" ( QualifyingEncounterICU )
and NoMechanicalProphylaxis.authorDatetime during day of TJC."CalendarDayOfOrDayAfter" (
end of Global."NormalizeInterval" ( AnesthesiaProcedure.relevantDatetime, AnesthesiaProcedure.relevantPeriod ) )
return QualifyingEncounterICU
especially the line where NoMechanicalProphylaxis.negationRationale in "Medical Reason" NoMechanicalProphylaxis.
The alias NoMechanicalProphylaxis in the above line seems to be unnecessary, however, the translator did not catch it.
After talking to @JSRankins, we think that this could be a potential bug in the translator.
Although we used translator v1.5.3 for this, this issue could be in the latest version of the translator as well.
@adongare , can you post the full library (or even better, a pared down version that includes all the dependencies so this is a standalone repro?)
I've downloaded the ECM at https://ecqi.healthit.gov/ecqm/eh/2023/cms0190v11#quicktabs-tab-tabs_measure-2 and opened it using the plugin in visual code. I believe the definition has changed since then
define "No Mechanical VTE Prophylaxis Due to Medical Reason on Day of or Day After Procedure":
from
"Encounter with ICU Location" QualifyingEncounterICU,
["Procedure, Performed": "General or Neuraxial Anesthesia"] AnesthesiaProcedure,
"No Mechanical VTE Prophylaxis Performed or Ordered" NoVTEDevice
where NoVTEDevice.negationRationale in "Medical Reason"
and Global."NormalizeInterval" ( AnesthesiaProcedure.relevantDatetime, AnesthesiaProcedure.relevantPeriod ) ends 1 day after day of VTE."StartOfFirstICU" ( QualifyingEncounterICU )
and NoVTEDevice.authorDatetime during day of TJC."CalendarDayOfOrDayAfter" (
end of Global."NormalizeInterval" ( AnesthesiaProcedure.relevantDatetime, AnesthesiaProcedure.relevantPeriod ) )
return QualifyingEncounterICU
@brynrhodes, @ddieppois- we advised measure dev to remove the alias. Here is the cql file: CMS190v11.txt and measure CMS190-v11-1-001-QDM-5-6 (1).zip. thank you!