-
Notifications
You must be signed in to change notification settings - Fork 24
Archived Cooking with CQL Sessions 2016 and 2017
In this session we provided an introduction to and overview of CQL using a measure tour of the Public Comment review draft version of CMS 117 - Infant Vaccination.
This session covered the following topics:
- Hepatitis B Vaccination in an adolescent vaccine measure
- Turning a specific age during the measurement period
- Review of portions of CMS program measure drafts of 128, 159, 160, 161, and 169
This session covered the following topics:
- Matching Multiple Encounter Diagnoses
- Determining Arrival and Departure Time from Multiple Facility Locations
- Addressing Multiple Components of a Diagnostic Study
This session covered the following topics:
- Use of terminology operations and references in measures
- Use of multi-source queries
- QDM-CQL side-by-side review of CMS 68 and CMS 22
- Review of the common library functions available in the MAT
- Use of plural attributes in the upcoming QDM 5.3 release
- Use of the relatedTo attribute to implement
fulfills
in the upcoming QDM 5.3 release - Preliminary review of calculations with quantities
This session covered the following topics:
- Review of test measure 68: Medications documented
- Using exists with a singleton
- Using "choice" unions
- Review of test measure 111: continuous variable measures
- Combining "and" and "not"
- QDM vs CQL timing calculations
- Length Of Stay calculations
In this session we reviewed QDM 5.3, then discussed how result types are used and determined by expressions within CQL. We then reviewed issues with an expression of AMI8 and CMS31.
In this session we reviewed creation of libraries in the MAT, and then focused on the use of specific occurrences in a complex stroke measure, CMS72v5. We then used the Hospitalization function to demonstrate how to significantly simplify the logic of CMS72v5, avoiding the need to express the difference between inpatient encounters with and without prior emergency department visits in each criterion.
In this session, we focused on continuous variable measures, as well as demonstrated the use of common functions between measures that could potentially be added to a common library. Specifically, we worked CMS32, CMS55, and CMS111.
In this session, we expressed a complete measure (CMS146) in CQL and the MAT and produced the HQMF artifacts. The measure example was chosen for its use of specific occurrences. The "working" version of the example measure contains walkthrough text describing how the measure development proceeded. The final version of the example measure library is CMS146.cql.
In this session, we focused on valuesets expressed in measure CMS53. We also identified valuesets MultipleWithClauses. The "working" version of the example measure contains walkthrough text describing how the measure development proceeded.
In this session, we focused on valuesets expressed in measure CMS22. We also identified valuesets RelatedToGestationalAge. The "working" version of the example measure contains walkthrough text describing how the measure development proceeded.
In this session, we focused on valuesets expressed in the following measures:
-
CMS129 - Variable definition with Most Recent and attributes;
-
CMS104 -Denominator Exclusion with multiple discharge statuses;
-
CMS154 - Denominator Exclusion with timing relative to a Diagnosis;
-
CMS72 - Denominator Exception;
-
CMS105 – Discharged on Statin medication. The "working" version of the example measure contains walkthrough text describing how the measure development proceeded.
In this session, we discussed JIRA ticket CQM-1608 about VTE prophylaxis DuringObservation. We also focused on valuesets expressed 3 different measures – CMS117, CMS9, and CMS104. The "working" version of the example measure contains walkthrough text describing how the measure development proceeded.
In this session, we focused on valuesets expressed in 7 different measures – CMS143, CMS149, CMS165, CMS102, CMS 124, CMS65, and CMS 159. The "working" version of the example measure contains walkthrough text describing how the measure development proceeded.
In this session, we reviewed QDM version 4.3 and draft of QDM 5.0 for Clinical Quality Language Measure Developers. There are no examples associated with this session.
- This session covered changes to QDM 5.0, there are no examples associated
In this session, we focused on the use of CQL with FHIR and the differences between QDM version 4.2 and QDM version 5.0 for Negation Rationale and Timing Periods. We also discussed the definitions of Assessment Result Types, Care Goal, Transfer From, Transfer To, Cumulative Medication Duration, and Allergy and AdverseEvent.
In this session, we focused on the feedback received from Session 3. We looked at various criteria in the measure, CMS159, as presented in the clean version. The criteria discussed were Initial Population, $DepressionEncounter, $DepressionEncounterBH, $DepressionF2Fnomed, and $DepressionIndex. The "working" version of the example measure contains walkthrough text describing how the measure development proceeded.
The next part looked at a different measure, CMS9v5 (Exclusive Breastmilk Feeding), and described this episode-based measure in QDM and looked at how it is expressed in CQL. We looked at Population Criteria, Data Criteria, Supplemental Data Elements, and Risk Adjustment Variables as presented in the clean version. The "working" version of the example measure contains walkthrough text describing how the measure development proceeded.
In this session, we shared a new resource that will help explain all things CQL and will host the examples presented in the Cooking with CQL sessions. The link to the resource is https://github.com/cqframework/CQL-Formatting-and-Usage-Wiki/wiki/Cooking-with-CQL-Examples and is titled CQL Formatting and Usage Wiki.
We also focused on describing initial populations as seen in the “Clean Version” using examples from the following measures: Patient-based Proportion Measure
- CMS117 – Age and encounter;
- CMS125- Age, sex, and encounter;
- CMS129 – Diagnosis overlaps MP and sex;
- CMS138 – Count of encounters;
- CMS135 - Count of encounters with diagnosis;
- CMS136 – Cumulative medication;
- CMS140 – First occurrence;
- CMS154 – Satisfies any with satisfies all;
- CMS159 – Timing, diagnosis, satisfies; Episode of Care Proportion Measure;
- CMS53 – Diagnosis overlaps encounter;
- CMS113 – Procedure during encounter; Episode of Care Continuous Variable Measure;
- CMS55 – Encounter relative to another encounter;
- CMS111 – Encounter relative to another encounter Procedure-based Proportion Measure;
- CMS133 – Procedure relative to MP end.
The "working" version of the example measure contains walkthrough text describing how the measure development proceeded.
The Cooking with CQL sessions provides guidance on how to use CQL to express measures. In this session, we focused on how to calculate age in CQL by describing various criteria using examples from the following measures:
-
CMS132 – Initial Population;
-
CMS104 - Initial Population, $EncounterInpatientNonElective;
-
CMS122 - Initial Population;
-
CMS113 - Initial Population, $EncounterInpatient;
-
CMS2 - Initial Population;
-
CMS124 - Initial Population;
-
CMS153 - Initial Population, Stratification 1, Stratification 2;
-
CMS82 - Initial Population, Numerator.
In this session, we demonstrated how to build an eCQM using CQL. The measure focused in this session is the PHQ-9 Scoring examples, as there are difficult criteria of this measure to express in CQL. Specifically, we focused on understanding “Measurement Period” using QDM version 4.2. In example 1, we discussed the measure “utilization of the PHQ-9 to monitor Depression Symptoms for Adolescents and Adults,” we explored the Measurement Period as defined in “In Initial Population”, “Depression Encounter”, “Depression Diagnosis”, “Assessment Period 1”. “Assessment Period 2”, and “Assessment Period 3.” We also looked at different numerator and stratification examples.
Example 2 looked at the measure “Depression Remission or Response for Adolescents and Adults” using the “Measurement Period” and evaluated “Initial Population”, Depression Followup, Depression Remission, Depression Response, Depression Encounter, and Depression Index.
Question | Session # and Date |
---|---|
Any source code implementing CQL? What programming language(s) are samples written in? | 20 - 11.30.17 |
Are occurrences still a concept that will be used? | 20 - 11.30.17 |
Do you know of any CQL classes made available in person? | 20 - 11.30.17 |
How do I indicate a change version of the LOVs? | 20 - 11.30.17 |
How is terminology maintained? For Example, List of Values (LOVs). | 20 - 11.30.17 |
Is there any sample available for CQL to DRL (drools) conversion? | 20 - 11.30.17 |
Will there be any CQL related activities at the HL7 work group meeting - the connectathon? | 20 - 11.30.17 |
If the Enc1 is in June, the previous one is still in the measurement period. Could you move the age to separate statement instead of a where? | 19 - 10.26.17 |
What is the difference between using definitions vs. parameters when expressing a measure? | 19 - 10.26.17 |
When using within to make the range clearer, does that mean the 60 days can be either side? | 19 - 10.26.17 |
In the Encounter Diagnoses example below, can "or" be changed to "and" and still provide the two diagnoses? | 18 - 9.21.17 |
Referring to the example that uses the code of each component within a Diagnostic Study to identify different results, would this mean an additional setup/implementation will be required for healthcare systems to "map" to these additional codes around a newly created component1 or component 2? | 18 - 9.21.17 |
What unit is returned in this example? Define function "Arrival and Departure Time" (Encounter "Encounter, Performed"): | 18 - 9.21.17 |
With the new changes to the QDM, is the attribute now "Diagnoses" instead of "Diagnosis"? | 17 - 8.17.17 |
Which are the other uses for "id" in QDM v5.3? | 17 - 8.17.17 |
Can the Length of Stay function be included in the MAT tool? | 16 - 7.20.17 |
In the hospitalization function where it says, "if null," does it mean that if there is no ED encounter, it will start counting from the inpatient encounter? | 16 - 7.20.17 |
Is the hospitalization function posted on the Wiki? Is Hospitalization function in a library on MAT 5.3 staging? | 16 - 7.20.17 |
What does the hospitalization function mean? | 16 - 7.20.17 |
What is the recommendation for measure developers regarding the QDM length of stay attribute? Should they use the attribute or should they indicate length of stay using CQL expression without invoking the attribute? | 16 - 7.20.17 |
Why are we using diagnosis to represent allergy instead of allergy intolerance? | 16 - 7.20.17 |
We tried to use "Inpatient Encounters" and intersect it with something else, but it would not work. Why is that? | 15 -6.15.17 |
You used the definition called "Inpatient Encounters" throughout the measure, but I thought it only had the length of stay and end string measurement period? | 15 -6.15.17 |
In the example below, does using exist have any impact when also using the union to define the numerator? "Encounter With Antithrombotic Therapy" | 14 - 5.18.17 |
What is the difference in the query order between: Define "Encounter With ED Visit Less Than Two Days" and ED Visit Less Than Two Days"? | 14 - 5.18.17 |
Where is the encounter defined in the Hospitalization function? | 14 - 5.18.17 |
Can measures be shared to use as examples? | 12 - 3.16.17 |
Explain why, if the timing is less than 30 days, 29 days is used in the CQL expression? | 12 - 3.16.17 |
For medication order, is authorDatetime a timestamp or is it a period? | 12 - 3.16.17 |
To compare a timestamp and relevant Period, is the comparison based on the start or end of the period? | 12 - 3.16.17 |
How are time durations calculated in CQL? | 10 - 1.26.17 |
To estimate due date, do you take the return of a record, within physical exam performed estimated due date codes that would have access to all the actual fields and cast it to datetime? | 10 - 1.26.17 |
When define "gestational age at birth": 280 – (days between "Estimated Due Date" and "Time of Delivery") div 7 is entered into the MAT, is it entered as a function or a definition? | 10 - 1.26.17 |
When using "with" in the "such that" expression, do you have to put it before all the such that’s or is there a significance to the order? | 10 - 1.26.17 |
Does union return a unique code for both diagnosis of asthma and other illness? | 9 - 11/17/16 |
Is measure 72, which defines exceptions for antithrombotic therapy, an example that could be simplified in logic to reference an episode of care? | 9 - 11/17/16 |
Will comments be included for reference when Bryn posts updated measure examples to the WIKI? | 9 - 11/17/16 |
Are there any in-person CQL classes available? | 7 - 9.15.16 |
How can I learn about setting up the data access layer? | 7 - 9.15.16 |
Do you see CQL implementation impacting how vendors write their code to extract the data elements? | 3 - 6.8.16 |
How does CQL compare to DROOLS and is there any sample available for CQL to DRL (drools) conversion? | 3 - 6.8.16 |
How does CQL simplify more than other traditional query languages? | 3 - 6.8.16 |
In the multi-source example shown below, what is the result type? The query in question is: define "Emergency Department Encounters": | 3 - 6.8.16 |
Is the CQL Author"s guide part of the HL7 documentation? Or where can this be accessed? | 3 - 6.8.16 |
Was the goal of CQL to encourage modularity for re-usability? | 3 - 6.8.16 |
What is a library? Does it import something from another measure? | 3 - 6.8.16 |
What is the driving benefit of CQL in eCQMs and does it justify extensive vendor resources to re-write parsing tools? | 3 - 6.8.16 |
What's the purpose of the library here? Is this something you"re creating for reuse in other measures? | 3 - 6.8.16 |
Where can I find more detailed description on the temporal operators used by CQL? | 3 - 6.8.16 |
Authoring Patterns - QICore v4.1.1
Authoring Patterns - QICore v5.0.0
Authoring Patterns - QICore v6.0.0
Cooking with CQL Q&A All Categories
Additional Q&A Examples
Developers Introduction to CQL
Specifying Population Criteria