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

Need to understand - Global.NormalizeInterval(pointInTime DateTime, period Interval<DateTime>) functionality

XMLWordPrintable

    • Icon: None None
    • Resolution: Answered
    • Icon: Blocker Blocker
    • None
    • None
    • Hide
      Thank you for the question. With the introduction of "relevantDatetime" elements to several data types in the QDM 5.5 release, measure authors and measure implementers have a choice of representation for the "relevant" timing of these data types. The 'Normalize Interval' function is now used in all measures containing data types that have both a relevantDatetime and relevantPeriod. The Normalize Interval function is meant to account for differences in EHR vendors' capture of timings of measure criteria, and to decrease implementation burden due to variable use of timing attributes for the same QDM datatypes used across measures. Knowing the rationale of using the ‘Normalize Interval’ function should make it easier to understand how the function is structured.



      Question #1: As suggested in the rationale above, the ‘Normalize Interval’ function can use either Relevant dateTime or Relevant Period depending on data submission. You are correct that if relevant Datetime is available in the patient data, this point of time will be populated in the Interval[RelevantdateTime, RelevantdateTime] for the time comparison during measure process, even though it is a single point in time. The measure then assessed whether this point in time meets the measure criteria, e.g. “ends on day after start of qualifying encounter.”

      Question #2.1: A General or Neuraxial Anesthesia procedure should be performed for a period of time. For example, the procedure’s End datetime can be used for procedures performed late at night and ending early the next morning. Because of the flexibility of the NormalizeInterval() function, if only one point of time is submitted, the function will use that point in time as the end date of the procedure.

       

      Question #2.2: Again, a General or Neuraxial Anesthesia procedure should be performed for a period of time. If patient data has both relevantDatetime and relevantPeriod, the function will process relevantDatetime first, as described in the function. The measure will only look for relevantPeriod if relevantDatetime is null.

       

      Global.NormalizeInterval(pointInTime DateTime, period Interval<DateTime>)

      if pointInTime is not null then Interval[pointInTime, pointInTime]

       else if period is not null then period

        else null as Interval<DateTime>​
      Show
      Thank you for the question. With the introduction of "relevantDatetime" elements to several data types in the QDM 5.5 release, measure authors and measure implementers have a choice of representation for the "relevant" timing of these data types. The 'Normalize Interval' function is now used in all measures containing data types that have both a relevantDatetime and relevantPeriod. The Normalize Interval function is meant to account for differences in EHR vendors' capture of timings of measure criteria, and to decrease implementation burden due to variable use of timing attributes for the same QDM datatypes used across measures. Knowing the rationale of using the ‘Normalize Interval’ function should make it easier to understand how the function is structured. Question #1: As suggested in the rationale above, the ‘Normalize Interval’ function can use either Relevant dateTime or Relevant Period depending on data submission. You are correct that if relevant Datetime is available in the patient data, this point of time will be populated in the Interval[RelevantdateTime, RelevantdateTime] for the time comparison during measure process, even though it is a single point in time. The measure then assessed whether this point in time meets the measure criteria, e.g. “ends on day after start of qualifying encounter.” Question #2.1: A General or Neuraxial Anesthesia procedure should be performed for a period of time. For example, the procedure’s End datetime can be used for procedures performed late at night and ending early the next morning. Because of the flexibility of the NormalizeInterval() function, if only one point of time is submitted, the function will use that point in time as the end date of the procedure.   Question #2.2: Again, a General or Neuraxial Anesthesia procedure should be performed for a period of time. If patient data has both relevantDatetime and relevantPeriod, the function will process relevantDatetime first, as described in the function. The measure will only look for relevantPeriod if relevantDatetime is null.   Global.NormalizeInterval(pointInTime DateTime, period Interval<DateTime>) if pointInTime is not null then Interval[pointInTime, pointInTime]  else if period is not null then period   else null as Interval<DateTime>​
    • EH
    • Venous Thromboembolism Prophylaxis

      Hi Team,

      Consider statements below from CMS108v10:

      One of the Denominator Exclusions criteria states:

      Encounter With Intervention Comfort Measures on Day of or Day After Procedure
      from
      VTE."Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter,
      ["Procedure, Performed": "General or Neuraxial Anesthesia"] AnesthesiaProcedure,
      "Intervention Comfort Measures" ComfortMeasures
      where Global."NormalizeInterval" ( AnesthesiaProcedure.relevantDatetime, AnesthesiaProcedure.relevantPeriod ) ends 1 day after day of start of QualifyingEncounter.relevantPeriod
      and Coalesce(start of Global."NormalizeInterval"(ComfortMeasures.relevantDatetime, ComfortMeasures.relevantPeriod), ComfortMeasures.authorDatetime)during TJC."CalendarDayOfOrDayAfter" (
      end of Global."NormalizeInterval" ( AnesthesiaProcedure.relevantDatetime, AnesthesiaProcedure.relevantPeriod ) )
      return QualifyingEncounter

      Functions:

      Global.NormalizeInterval(pointInTime DateTime, period Interval<DateTime>)
      if pointInTime is not null then Interval[pointInTime, pointInTime]
      else if period is not null then period
      else null as Interval<DateTime>

      Queries:

      1. As per QDMv5,
      a. Relevant dateTime references timing for an assessment that occurs at a single point in time.
      b. Relevant period is the default, or general, method to describe a start to stop time that occurs over a time interval

      Question #1:
      As per definition Relevant dateTime represents single point in time.
      So we need to understand then, how are we supposed to define "Interval[pointInTime, pointInTime]" because for an Interval, we need two points in time?

      Question #2:
      Consider the statement, Global."NormalizeInterval" ( AnesthesiaProcedure.relevantDatetime, AnesthesiaProcedure.relevantPeriod ) ends 1 day after day of start of QualifyingEncounter.relevantPeriod.

      Question #2.1:
      AnesthesiaProcedure.relevantDatetime as per our understanding from the QDM, references to "the time the procedure is performed when the procedure occurs at a single point in time".
      How are we supposed to determine 'end date' to satisfy "ends 1 day after day of start of QualifyingEncounter.relevantPeriod" part?

      Question #2.2:
      We need to understand whether AnesthesiaProcedure.relevantDatetime and AnesthesiaProcedure.relevantPeriod share a 'union or OR' relationship, because how are we otherwise supposed to determine interval between the two?

      Request you to assist on above queries urgently as client deliverables are dependent upon it.

            JLeflore Mathematica EH eCQM Team
            aditiw Aditi Waje (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved:
              Solution Posted On: