Pre-launch · validation core is running, registry is next

OPEN
QUALITY

An open registry for healthcare quality measures. Publish in CQL, SQL, or SQL‑on‑FHIR, get it validated, and get review from people who have solved the same problem. Today every organization rebuilds this logic on its own.

Read the spec Why this exists

Why this exists

The argument, from a real email thread

A PhD candidate writes a CQL library to screen patients for a Hospital at Home program. It runs at 30 to 40 seconds per patient. He needs it to run across 300,000. He has no idea whether the problem is his logic, his engine, or his data.

He gets lucky. His email reaches someone who has spent years optimizing CQL, and that person writes back a detailed review: functions are not cached the way defines are, a retrieve iterates every resource in the bundle every time, this correlated query is really a lateral join running dozens of semi‑joins. Rewrite it this way.

That review answered the question completely. Four people read it. It is not searchable, it is not attached to any measure, and the next person with the same problem will not find it.

This is a great example of why we need an open community for quality where experts can share their expertise, rather than relying on an introduction to the one person who happened to know someone by pure luck. — from the thread that started this

Every payer, health system, and vendor doing quality measurement staffs its own team to implement the same national measures against its own data, then pays auditors to confirm the implementation is right. The same specification ambiguities get rediscovered independently, over and over. The cost is enormous and none of it reaches a patient.

Open Quality is where that answer should live.

A measure is a package

Manifest, logic, value set references, provenance
// CMS122v13 — HbA1c Poor Control define "Initial Population": AgeInYearsAt(start of "Measurement Period") between 18 and 75 and exists "Diabetes" define "Numerator": exists "Most Recent HbA1c" R where R.value as Quantity > 9.0 '%'
CMS
Diabetes: HbA1c Poor Control@cms/diabetes-hba1c-poor-control
L2
Steward
CMS
Data model
fhir-r4
Period
2026
CQL
FHIR
SQL
VS
-- Colorectal cancer screening -- SQL on FHIR / OMOP SELECT p.person_id, MAX(o.observation_date) AS last_scr FROM person p JOIN observation o ON o.person_id = p.person_id WHERE o.observation_concept_id IN (SELECT concept_id FROM vs_colonoscopy) GROUP BY p.person_id
OQ
Colorectal Cancer Screening@oq/crc-screening-omop
L1
Steward
community
Data model
omop-5.4
Period
2026
CQL
FHIR
SQL
VS
# openquality.yaml id: cms/diabetes-hba1c-poor-control version: 13.0.0 license: CC0-1.0 dataModel: fhir-r4 measure: steward: CMS identifiers: [CMS122v13] artifacts: - path: cql/HbA1c.cql type: cql valueSets: # referenced, - oid: 2.16.840.1… # never embedded
YML
The manifestopenquality.yaml
SPEC
Languages
any
Value sets
by reference
Versions
immutable
CQL
SQL
FHIR
R/PY

Three levels, and SQL can reach the top

Levels measure rigor, not FHIR adoption
LEVEL 0

Shared

A valid manifest, an open license, and at least one artifact. Any language. The bar is low on purpose, so that unfinished work can still be shared.

LEVEL 1

Described

Machine-readable measure identity, a declared data model, every value set resolvable, and a README that states intent, known limitations, and provenance.

LEVEL 2

Verified

Deep validation passes for every artifact. CQL translates to ELM. FHIR validates against the CRMI and ECR profiles. SQL parses against its declared dialect and ships its schema.

Most organizations that do quality measurement write SQL against a warehouse, not CQL. A level system that required FHIR to reach the top would exclude them.

Honest status

Nothing here is launched yet
PieceStateWhat it is
Package formatshipped Manifest schema, conformance levels, license policy, content scanning. 91 tests.
Validation coreshipped Validates a package directory and computes its level. Runs on real CMS eCQM content.
oq CLIshipped oq validate and oq pack. Deterministic, content-addressed tarballs.
Deep validatorsnext CQL‑to‑ELM, FHIR profile validation, SQL parsing, VSAC resolution. Level 2 needs these.
Registryplanned Publish, search, install. Git-authored, registry-hosted, versions immutable.
Typed feedbackplanned Questions, interpretation issues, defect reports, implementation notes — attached to a measure, searchable.
# what runs today $ oq validate packages/core/test/fixtures/cms122 Level 1 (Described) To reach the next level: - cql.translate did not run Note: cql.translate, fhir.validate, and sql.parse run on publish, not locally.

What it will and will not host

Open licenses only. Every package declares an SPDX license from a short allowlist. Value sets are referenced by OID or canonical URL, never embedded as expansions, which makes the licensing rule enforceable by machine rather than by review.

No HEDIS logic. NCQA holds copyright on those specifications. You can publish your own implementation written against a public specification. You can also publish test cases and review comments. Many employers approve releasing that even when they will not release the SQL.