Closed mgramigna closed 1 year ago
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 |
408 tests passing in 31 suites.
Report generated by 🧪jest coverage report action from ad5ecba3b5cc3ba620c0cd5b0aa2bd104da41105
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. Runningreports
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
Calculator.ts
, the best approach for seeing code changes is to go through the file directly rather than looking through the code diffcomponentResults
onto the patient execution results - this is a simplified version of the detailed results that we can use for report building that gives us access to thegroupId
,componentCanonical
, andpopulationResults
Composite measure report building
AbstractMeasureReportBuilder
. Having this abstract class allows us to cleanly separate the composite functionality from the standard measure report building that we’ve been doing.CompositeReportBuilder
that extends the abstract class:this.compositeFraction
get incrementedaddPatientResults
increments the numerator and denominator ofthis.compositeFraction
according to the composite scoring type defined on the composite report builder.all-or-nothing
,opportunity
, andlinear
are currently supported.New integration tests
Makefile
to generate an all-or-nothing composite measure that consists of two components —> we restricted integration tests to all-or-nothing because the composite scoring type only affects the measure report content, not detailed resultsNew unit tests
Other changes
cql-execution
to3.0.0
ecqm-bundler
to0.4.1
MeasureReportBuilder
no longer takes in the measure bundle as input - just takes in the measureTesting guidance