CQL is a Health Level Seven International® (HL7) authoring language standard that’s intended to be human readable. CQL provides the ability to express logic that is human readable yet structured enough for processing a query electronically. Measure authors with access to the Measure Authoring Tool (MAT) can use the tool to author measures using CQL.
Clinical Quality Language Frequently Asked Questions
A full list of resources is found on the CQL Tools & Resources page.
Explore these resources to get an overview of CQL and learn how to implement CQL.
- Learn more about the fundamentals of CQL and why it’s important on the CQL Educational Resources page. Also find past presentations and webinars for the various audiences who might use CQL.
- Watch the CQL tutorial to see CQL in action.
- Attend an upcoming Cooking with CQL, QDM, and FHIR® webinar. The sessions feature open discussion with subject matter experts on the Measure Authoring Tool (MAT), show how to express measures using CQL, and review questions. Visit the eCQI Events page to find registration information.
- Visit the CQL Formatting and Usage Wiki to review common questions and answers on CQL.
Visit the Connect page to find out how to connect to various CQL resources.
- Getting Started with CQL (used at the January 2020 Connectathon in Baltimore MD)
- Community Projects – Lists all the known open source community project (discussing all the technical aspects) and implementation projects
- Clinical Quality Language Project Home Page – This Health Level Seven International® (HL7) Confluence page houses all the up to date information about the CQL project
- The Clinical Decision Support (CDS) Work group is balloting CQL Normative in the 2020 May cycle and the May Ballot plan
A CQL library is text document (.cql, .xml, and .json) that contains CQL expressions, definitions, functions, and other declarations that can be used across measures. Each electronic clinical quality measure (eCQM) contains a primary library that defines the criteria used by the populations of the measure. The Health Quality Measure Format (HQMF) document references this library and defines the populations by identifying which expressions in the CQL library define each population (e.g., Inpatient Encounter, terminologies). Measures may include references to a shared library, which can be either referenced throughout a single measure or across different measures (and even clinical decision support rules) to share definitions and functions like "Hospitalization". Library sharing minimizes efforts with measure development and implementation.
For more information on libraries, refer to the Using Libraries to Shared Logic section of the CQL Implementation Guide.
There are a lot of things that CQL supports, higher level constructs like timing phrases that are translated into a representation in ELM that is focused on implementation so that you don’t have to worry about those pieces within ELM. There is nothing that says you could not do all that yourself. But for implementation, using ELM takes those pieces off an implementer’s plate. Individually each of those are not terribly difficult, but when you put them all together and add them up, and the fact that it is maintained as a part of this whole infrastructure, it is a significant advantage to be able to use the ELM directly rather than have to start from a parser. Refer to the CQL for Measure Developers presentation for additional guidance.
CQL can be used with any data model. The examples in the Cooking with CQL, QDM, and FHIR® sessions are focused on using the Quality Data Model (QDM), which has a serialization as Quality Reporting Document Architecture (QRDA). QRDA is similar to consolidated clinical document architecture (C-CDA) standard. QRDA and C-CDA are Health Level Seven International® V3 standards.
Yes, you can use return, it is an arbitrary expression. So, whatever you want to return from the “from,” you can.
Developing the measures in Java, C#, or any other commercially supported language would not achieve the goal of sharing the measure logic in a platform independent way, nor would it serve as a vehicle for communicating the intent of the measures in the way that CQL/ELM does. Traditional programming languages do not support the required set of operations for expressing measure logic, and traditional query languages, though closer to the mark, still do not support important aspects like terminology and interval-based timing. Refer to the GitHub tooling repository for additional guidance.