// the find
cqframework/clinical_quality_language
Clinical Quality Language (CQL) is an HL7 specification for the expression of clinical knowledge that can be used within both the Clinical Decision Support (CDS) and Clinical Quality Measurement (CQM) domains. This repository contains complementary tooling in support of that specification.
The reference CQL-to-ELM translator and ELM runtime for HL7's Clinical Quality Language, kept alongside the spec, with the grammar, FHIR data-requirements tooling, a formatter, and a browser playground in one Gradle build. It is for people writing clinical quality measures or CDS logic who need the compiler to match the spec exactly, and for tool authors embedding CQL in their own products.
- The module split separates the translator (cql, cql-to-elm), the ELM model classes (elm), the runtime (engine), and the FHIR pieces (elm-fhir, engine-fhir), so each can be used on its own rather than as one monolith.
- Generated code, including the ANTLR parser and the ELM classes from the XSD, is produced by build-logic tasks instead of being checked in, so the grammar and schema stay the single source of truth.
- One Kotlin Multiplatform codebase targets the JVM, an npm package, and a browser playground, which is a real portability win for an authoring tool.
- The build badge points at a published conformance result file on cql-tests-results.quality.hl7.org, so the passing-test count can be checked from outside the repo instead of being asserted in the README.
- The README is mostly a directory of links. Getting started, usage, and the authoring guide live in a separate GitHub wiki and the spec site, so someone arriving from the repo has to hunt for how to compile a single file.
- Setup has real friction: Windows users must set core.longpaths before cloning, and nothing compiles until JDK 17 is installed and a full ./gradlew build has generated the grammar and schema artifacts. It is not hard, but it is the first hour of work.
- The archive/ tree still holds CoffeeScript code, a 2013 Visual Studio extension, old .NET projects, and scratch CQL files. That noise makes code search harder and it is not obvious which parts are live.
- Two copyright holders are named in the license section, MITRE for the translator and the University of Utah for the engine modules. Anyone forking or redistributing a subset has to read that section carefully rather than assume one license header applies everywhere.