projecttacoma / fqm-execution

fqm-execution is a library that allows users to calculate FHIR-based electronic Clinical Quality Measures (eCQMs) and retrieve the results in a variety of formats
https://projecttacoma.github.io/fqm-execution/
Apache License 2.0
18 stars 6 forks source link

Add Support for Composite Measure Calculation #235

Closed mgramigna closed 1 year ago

mgramigna commented 1 year ago

Summary

The moment we’ve all been waiting for - composite measure support is here! Adds the ability to run measure calculation on a composite measure, and adds the ability to generate a composite measure report.

New behavior

Composite measure calculation

fqm-execution can now calculate detailed results for a composite measure. To do so, a measure bundle must be passed in that contains the composite measure, all component measures, and all their dependencies. For each patient, calculates detailed results for each of the components.

Composite measure report building

fqm-execution can now generate a summary measure report. Running reports with a passed-in measure bundle containing a composite will calculate the measure score based on the composite scoring type that is provided. All-or-nothing, opportunity, and linear are currently supported.

Code changes

Composite measure calculation

Composite measure report building

New integration tests

New unit tests

Other changes

Testing guidance

  1. Run integration tests for all-or-nothing composite
  2. Run unit tests for composite report builder class, changes to standard measure report builder, composite measure bundle helpers, etc.
  3. Test composite report building across the three different composite scoring types. This can be done by changing the composite scoring code on the measure.
github-actions[bot] commented 1 year ago

Coverage report

St.:grey_question:
Category Percentage Covered / Total
🟢 Statements
86.41% (+0.56% 🔼)
2174/2516
🟡 Branches
75.04% (+0.59% 🔼)
1975/2632
🟢 Functions
88.91% (+0.87% 🔼)
393/442
🟢 Lines
86.74% (+0.57% 🔼)
2099/2420
Show new covered files 🐣
|
St.:grey_question:
| File | Statements | Branches | Functions | Lines | | :----------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------- | :--------- | :------- | :-------- | :----- | | 🔴 |
`...` / AbstractMeasureReportBuilder.ts
| 36.36% | 0% | 50% | 33.33% | | 🟢 |
`...` / reportBuilderFactory.ts
| 100% | 100% | 100% | 100% | | 🟢 |
`...` / CompositeReportBuilder.ts
| 100% | 80% | 100% | 100% |
Show files with reduced coverage 🔻
|
St.:grey_question:
| File | Statements | Branches | Functions | Lines | | :----------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------- | :------------------------------------------------------------- | :------------------------------------------------------------- | :-------- | :------------------------------------------------------------- | | 🟢 |
`...` / MeasureBundleHelpers.ts
|
98.45% (-0.91% 🔻)
|
90.65% (-1.82% 🔻)
| 100% |
98.88% (-0.43% 🔻)
|

Test suite run success

408 tests passing in 31 suites.

Report generated by 🧪jest coverage report action from ad5ecba3b5cc3ba620c0cd5b0aa2bd104da41105