The library

Every measure package in the corpus, and every question, interpretation issue, and test case recorded against it. Open a measure to read what implementers already found, or ask something nobody has answered yet.

54 measures
17 shared libraries
14 knowledge entries
15 stewards
46 verified unmodified

Applies to every measure

Knowledge that is not about one measure: how CQL is evaluated, how this corpus packages things. Filed under a scope rather than a measure, because burying it under whichever measure exposed it is how it gets lost.

corpus
implementation note corpus-2026-001 resolved

Draft versioning of seeded packages

Seeded packages carry a 0.x version, not the CMS measure number. A reader expecting 13.0.0 for CMS122v13 will not find it, and that is deliberate.

implementation note corpus-2026-002 resolved

Vendored library duplication

Every package vendors the CQL libraries its measure includes, so the same library file is copied into many packages. The corpus has no way to say that two copies of FHIRHelpers.cql are the same artifact, and a fix to a shared library has to be applied everywhere it was copied.

implementation note corpus-2026-003 resolved

One value set two CQL aliases

CQL legitimately declares one value set under two names. A manifest that lists value sets by walking those declarations therefore names the same OID twice, which no check caught until someone went looking for it.

defect corpus-2026-004 resolved

Undeclared symlink hid content from the scanner

A symlink is neither a file nor a directory to readdir, so the package file walk skipped it. Licensed content could therefore sit inside a package behind an undeclared symlink and validate clean at Level 1, and oq pack dropped it from the tarball without saying so.

defect corpus-2026-005 resolved

The scanner trusted its own parser

Two ways past the content scanner, both found with real, declared files. Each worked by making a parser fail to recognise something rather than by hiding it: a duplicate key that stopped the YAML parser reading an embedded expansion, and a CQL comment that stopped a regex matching a licensed descriptor. In both cases the scanner read the failure as "nothing here".

implementation note corpus-2026-006 open

Verifying a provenance claim without fetching

A community package can declare relationship: unmodified against any upstream and nothing checks it. The CI job that makes that claim verifiable today only covers the 53 seeded packages, because it works by re-running the importer.

defect corpus-2026-007 resolved

The licensing check could not see FHIR resources

The check that enforces this project's hardest content rule, that AMA-licensed CPT descriptors are never redistributed, read CQL and nothing else. It returned no findings for every other file type, including FHIR resources, where the same twelve licensed descriptors also appear.

defect corpus-2026-008 open

Included library versions not published

Seventeen imported measures, and one imported library, include a shared CQL library at a version the corpus does not carry. Each includes an older version than the one upstream publishes in input/cql. The importer matches includes by library name only, so it pairs every one of them with the newer library, and nothing reported the difference until oq validate-all gained the cql.includes warning on 2026-10-18.

cql
implementation note cql-2026-001 open

Prefer defines, because function caching is not guaranteed

Engines in common use evaluate a define once per patient and reuse the result. They do not reliably do the same for a function call. Logic written as functions therefore tends to re-run its retrieves on every invocation, which turns one pass over a patient's data into repeated full scans of the bundle.

Shared libraries

CQL libraries that measures include, published once as packages of their own. A measure names the ones it includes as dependencies, and every bundle or FHIR package built from it carries them, so a measure still loads on its own.

Who recorded this

Everyone who has put something into the knowledge corpus, by the handle on their entries. Some asked not to be named and appear as anonymous, which is a choice the corpus supports: the finding is what has to be public, not the finder.

aks129 9 entries anonymous 4 entries evan-machusak 1 entry