Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

care-gaps Refactor #518

Closed
Capt-Mac opened this issue Sep 18, 2024 · 0 comments · Fixed by #522
Closed

care-gaps Refactor #518

Capt-Mac opened this issue Sep 18, 2024 · 0 comments · Fixed by #522
Assignees
Labels

Comments

@Capt-Mac
Copy link
Contributor

Capt-Mac commented Sep 18, 2024

Description of Issues

Redundant Logic

Current R4CareGapsService is in need of a refactor to take advantage of latest available measure evaluation logic and parameters. This would eliminate redundant code in clinical-reasoning that performs the same functions.

Complexity of Code

The current r4CareGapservice also combines several different concepts into a single class that makes it difficult to debug and understand various components of the logic. This should follow established patterns of separate component classes for the specific function it serves, similar to Measure Evaluation (MeasureProcessor, MeasureReportBuilder, MeasureEvaluator).

Unused Parameters

Current parameters proposed for $care-gaps includes additional options for narrowing the scenario, and ownership of care-gap reports, but lacks implementation. If a user populates one of these parameters they will throw an error back to the user. These unused parameters should be removed from implementation entirely to avoid confusion with end users.

  • Practitioner, Organization, Topic, Program

Care-Gap Standardized Measure Resources

Care-gaps does not have a standard Measure resource design that it is required for use, it layers all depedency on Measure Evaluation. This is a problem because there are scenarios that are un-covered.

Un-processable Measures

Current logic only processes Measure resources that have a "Numerator" or "Denominator" population code. However there are other Measure Scoring Types that do not define these population codes and would therefore break the service if requested.

Proposed Enhancements

Refactor

  • Care-gaps to leverage r4MultiMeasureService class to process n-number of Measures requested
  • CareGapsService to be divided into:
    a. CareGapsProcessor - houses construction of result body with input of different Result Bodies as needed (Future non-document mode)
    b. CareGapsBundleBuilder - logic to build care-gap bundle per subject
    c. CareGapsStatusEvaluator - houses logic to evaluate a 'Measure Report' for a specific care-gap status
    d. 'measureIds' parameter changed from type String to IdType to validate resources at parameter.

Enhancements

Added Capability

  • enable measureIdentifier parameter (currently unimplemented)
  • enable Practitioner and Group of Practitioners through "subject" parameter
  • enable all-subjects option through "subject" parameter (ex: $care-gaps?subject=null returns all Patients)
  • similar to r4MultiMeasureService, future patient attribution models can be exposed through a resource reference within the "subject" parameter (like Organization).

Parameter Removals

  • remove unimplemented parameter placeholders: Organization, Practitioner, Program, Topic. As these only return an error if populated.

Added Measure Scoring Type Validation

  • add rule for Measure resources that only MeasureScoringType: Ratio or Proportion are processable for $care-gaps, as any other ScoringType implementation does not have a standardized interpretation for care-gaps, and should throw an error.
@Capt-Mac Capt-Mac added the dQM label Sep 18, 2024
@Capt-Mac Capt-Mac self-assigned this Sep 18, 2024
@Capt-Mac Capt-Mac changed the title care-gaps to use R4MultiMeasureService care-gaps Refactor Sep 20, 2024
@Capt-Mac Capt-Mac linked a pull request Sep 20, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant