Skip to content

feat(measure): promote CMS125 + CMS122 to Active with full CQL#63

Merged
Taleef7 merged 1 commit into
mainfrom
feat/cms125-cms122-runnable
Jun 8, 2026
Merged

feat(measure): promote CMS125 + CMS122 to Active with full CQL#63
Taleef7 merged 1 commit into
mainfrom
feat/cms125-cms122-runnable

Conversation

@Taleef7
Copy link
Copy Markdown
Owner

@Taleef7 Taleef7 commented Jun 8, 2026

Summary

  • CMS125v14 — Breast Cancer Screening: 820-day mammogram compliance window (27 months); all 5 outcome buckets seeded and verified
  • CMS122v14 — Diabetes HbA1c Poor Control: value-based Observation measure (HbA1c > 9% → OVERDUE / ≤ 9% → COMPLIANT); numeric lab value flows through new observationValue field on ExamConfig
  • Both measures seeded as Active v1.0 via ensureCms125Seed() / ensureCms122Seed() — called before ensureCmsEcqmCatalogSeed() so the catalog seed skips the existing v1.0 row; idempotent re-seed just updates CQL text

What changed

File Change
measures/cms125.cql New — 820-day mammogram window with inline code-filter pattern
measures/cms122.cql New — numeric HbA1c Observation-based CQL
SyntheticFhirBundleBuilder.java Added observationValue field to ExamConfig; Observation FHIR resource emitted when set
CqlEvaluationService.java Two new MeasureSeedSpec cases; observationBased dispatch for Observation-type measures
MeasureService.java ensureCms125Seed() + ensureCms122Seed() wired into ensureInstanceSeeds()
docs/MEASURES.md Added Category 3b; catalog summary updated (10 runnable, 47 Draft, 60 total)

Test plan

  • CqlEvaluationServiceTest#cms125BreastCancerScreeningProducesAllFiveOutcomeBuckets — verifies all 5 outcome buckets present in population
  • CqlEvaluationServiceTest#cms122DiabetesHbA1cProducesStructuredOutcomes — verifies COMPLIANT/OVERDUE/MISSING_DATA/EXCLUDED + HbA1c Poor Control=true in OVERDUE evidence
  • All existing tests unaffected (backward-compatible ExamConfig constructor; existing seed path unchanged)
  • BUILD SUCCESSFUL on ./gradlew.bat test --tests "com.workwell.compile.CqlEvaluationServiceTest"

🤖 Generated with Claude Code

…tion

CMS125 (Breast Cancer Screening) and CMS122 (Diabetes HbA1c Poor Control)
are now runnable Active measures with full CQL libraries, synthetic employee
seed data covering all 5 outcome buckets, and test coverage in
CqlEvaluationServiceTest. Both measures are seeded before
ensureCmsEcqmCatalogSeed() so the catalog seed leaves the Active v1.0 intact.

- cms125.cql: 820-day mammogram compliance window (27 months); COMPLIANT /
  DUE_SOON / OVERDUE / MISSING_DATA / EXCLUDED using inline code-filter pattern
- cms122.cql: numeric Observation-based — HbA1c > 9% → OVERDUE (poor control);
  ≤ 9% → COMPLIANT; no result → MISSING_DATA
- SyntheticFhirBundleBuilder: new observationValue field on ExamConfig for
  numeric lab values (null-safe; existing Procedure/Immunization path unchanged)
- CqlEvaluationService: two new MeasureSeedSpec cases + observationBased
  dispatch for Observation-type measures
- MeasureService: ensureCms125Seed() + ensureCms122Seed() with idempotent
  upsert (updates CQL text if v1.0 already exists; inserts Active v1.0 if not)
- docs/MEASURES.md: added Category 3b; updated catalog summary (10 runnable,
  47 Draft catalog entries; total remains 60)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Jun 8, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
workwell-measure-studio Ready Ready Preview, Comment Jun 8, 2026 3:09pm

@Taleef7 Taleef7 merged commit e535b6e into main Jun 8, 2026
30 checks passed
@Taleef7 Taleef7 deleted the feat/cms125-cms122-runnable branch June 8, 2026 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant