Skip to content

Upstream Measure Processor, ApplyScoringMembership configuration option#663

Merged
Capt-Mac merged 12 commits into
masterfrom
measure-processor-refactor
May 27, 2025
Merged

Upstream Measure Processor, ApplyScoringMembership configuration option#663
Capt-Mac merged 12 commits into
masterfrom
measure-processor-refactor

Conversation

@Capt-Mac
Copy link
Copy Markdown
Contributor

@Capt-Mac Capt-Mac commented May 6, 2025

This change allows for measure processor two pathways to generating Measure Reports:

  1. Calculate Results, Process Results, Output in Measure Report (existing behavior)
  2. Pass in pre-calculated Results, Process results, Output in Measure Report (bypass result generation)

The core purpose of this change is to expose dQM enforcement points and report generation while allowing upstream result creation to come from alternative sources like the CQL CLI tool.

Another feature was added allows for introduction of a new configuration that disables/enables application of Measure Scoring by set membership between dependent populations (InNumerator=True requires InDenominator=True). The current behavior of enforcing set membership will be defaulted, but if desired, users could override this setting and have raw output of CQL criteria expressions result in Measure Report populations (InNumerator=True requires InDenominator=False).

This is to allow implementers the ability to have CQL enforce membership logic instead of relying on dQM scoring algorithms. If choosing an existing scoring algorithm, all other standard behavior is still enforced.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2025

Formatting check succeeded!

@Capt-Mac Capt-Mac marked this pull request as ready for review May 6, 2025 22:07
@sonarqubecloud
Copy link
Copy Markdown

@codecov
Copy link
Copy Markdown

codecov Bot commented May 27, 2025

Codecov Report

Attention: Patch coverage is 75.97173% with 68 lines in your changes missing coverage. Please review.

Project coverage is 71.12%. Comparing base (dc33495) to head (5c82c60).
Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
.../fhir/cr/measure/common/MeasureProcessorUtils.java 80.76% 17 Missing and 13 partials ⚠️
...cds/cqf/fhir/cr/measure/r4/R4MeasureProcessor.java 62.96% 18 Missing and 2 partials ⚠️
...s/cqf/fhir/cr/measure/common/MeasureEvaluator.java 60.00% 3 Missing and 9 partials ⚠️
...f/fhir/cr/measure/dstu3/Dstu3MeasureProcessor.java 89.74% 3 Missing and 1 partial ⚠️
.../cqf/fhir/cr/measure/MeasureEvaluationOptions.java 50.00% 2 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master     #663      +/-   ##
============================================
- Coverage     71.53%   71.12%   -0.42%     
  Complexity      153      153              
============================================
  Files           475      473       -2     
  Lines         22303    22341      +38     
  Branches       2873     2875       +2     
============================================
- Hits          15955    15890      -65     
- Misses         4926     5025      +99     
- Partials       1422     1426       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Capt-Mac
Copy link
Copy Markdown
Contributor Author

current code coverage gaps will be patched by addition of CQL CLI testing that will make use of MeasureProcessor 'evaluateResults' method

@Capt-Mac Capt-Mac merged commit 5284cbd into master May 27, 2025
10 checks passed
@Capt-Mac Capt-Mac deleted the measure-processor-refactor branch May 27, 2025 18:05
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.

4 participants