From d6cb77ce410f38b1db12245d5c87b9df37a13ad4 Mon Sep 17 00:00:00 2001 From: Justin McKelvy <60718638+Capt-Mac@users.noreply.github.com> Date: Tue, 8 Oct 2024 09:20:38 -0600 Subject: [PATCH 1/2] make methods accessible for extension --- .../cr/measure/r4/R4CareGapsProcessor.java | 30 +++++++------------ .../fhir/cr/measure/r4/R4CareGapsService.java | 2 +- 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsProcessor.java b/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsProcessor.java index 4736d8a01..55c34e61f 100644 --- a/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsProcessor.java +++ b/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsProcessor.java @@ -99,7 +99,7 @@ public Parameters getCareGapsReport( return result.setParameter(components); } - private R4CareGapsParameters setCareGapParameters( + protected R4CareGapsParameters setCareGapParameters( @Nullable ZonedDateTime periodStart, @Nullable ZonedDateTime periodEnd, String subject, @@ -116,7 +116,7 @@ private R4CareGapsParameters setCareGapParameters( return r4CareGapsParams; } - private List resolveMeasure(List> measure) { + protected List resolveMeasure(List> measure) { return measure.stream() .map(x -> x.fold( id -> repository.read(Measure.class, id), @@ -136,7 +136,7 @@ protected List getSubjects(String subject) { return subjects; } - private void addConfiguredResource(String id, String key) { + protected void addConfiguredResource(String id, String key) { // read resource from repository Resource resource = repository.read(Organization.class, new IdType(RESOURCE_TYPE_ORGANIZATION, id)); @@ -151,7 +151,7 @@ private void addConfiguredResource(String id, String key) { configuredResources.put(key, resource); } - private void checkMeasureImprovementNotation(Measure measure) { + protected void checkMeasureImprovementNotation(Measure measure) { if (!measure.hasImprovementNotation()) { ourLog.warn( "Measure '{}' does not specify an improvement notation, defaulting to: '{}'.", @@ -160,19 +160,11 @@ private void checkMeasureImprovementNotation(Measure measure) { } } - private Parameters initializeResult() { + protected Parameters initializeResult() { return newResource(Parameters.class, "care-gaps-report-" + UUID.randomUUID()); } - private List canonicalToString(List measureUrls) { - return measureUrls.stream() - .map(PrimitiveType::toString) - .map(x -> x.replace("CanonicalType[", "")) - .map(x -> x.replace("]", "")) - .collect(Collectors.toList()); - } - - private void checkValidStatusCode(List statuses) { + protected void checkValidStatusCode(List statuses) { r4MeasureServiceUtils.listThrowIllegalArgumentIfEmpty(statuses, "status"); for (String status : statuses) { @@ -186,7 +178,7 @@ private void checkValidStatusCode(List statuses) { } } - private void measureCompatibilityCheck(List measures) { + protected void measureCompatibilityCheck(List measures) { for (Measure measure : measures) { checkMeasureScoringType(measure); checkMeasureImprovementNotation(measure); @@ -195,7 +187,7 @@ private void measureCompatibilityCheck(List measures) { } } - private void checkMeasureBasis(Measure measure) { + protected void checkMeasureBasis(Measure measure) { R4MeasureBasisDef measureDef = new R4MeasureBasisDef(); if (!measureDef.isBooleanBasis(measure)) { throw new IllegalArgumentException( @@ -208,7 +200,7 @@ private void checkMeasureBasis(Measure measure) { * This is helpful when creating DetectedIssues per GroupComponent so endUsers can attribute evidence of a Care-Gap to the specific MeasureReport result * @param measure Measure resource */ - private void checkMeasureGroupComponents(Measure measure) { + protected void checkMeasureGroupComponents(Measure measure) { // if a Multi-rate Measure, enforce groupId to be populated if (measure.getGroup().size() > 1) { for (MeasureGroupComponent group : measure.getGroup()) { @@ -221,7 +213,7 @@ private void checkMeasureGroupComponents(Measure measure) { } } - private void checkMeasureScoringType(Measure measure) { + protected void checkMeasureScoringType(Measure measure) { List scoringTypes = r4MeasureServiceUtils.getMeasureScoringDef(measure); for (MeasureScoring measureScoringType : scoringTypes) { if (!MeasureScoring.PROPORTION.equals(measureScoringType) @@ -233,7 +225,7 @@ private void checkMeasureScoringType(Measure measure) { } } - private void checkConfigurationReferences() { + protected void checkConfigurationReferences() { careGapsProperties.validateRequiredProperties(); addConfiguredResource(careGapsProperties.getCareGapsReporter(), CareGapsConstants.CARE_GAPS_REPORTER_KEY); diff --git a/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsService.java b/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsService.java index fc6329ab7..902cfa185 100644 --- a/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsService.java +++ b/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsService.java @@ -67,7 +67,7 @@ public Parameters getCareGapsReport( notDocument); } - private List> liftMeasureParameters( + protected List> liftMeasureParameters( List measureId, List measureIdentifier, List measureUrl) { List> eitherList = new ArrayList<>(); From 4a316e127ffada878068ece7720afea573e5610c Mon Sep 17 00:00:00 2001 From: Justin McKelvy <60718638+Capt-Mac@users.noreply.github.com> Date: Tue, 8 Oct 2024 09:29:59 -0600 Subject: [PATCH 2/2] formatting --- .../org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsProcessor.java | 1 - 1 file changed, 1 deletion(-) diff --git a/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsProcessor.java b/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsProcessor.java index 55c34e61f..9509d9536 100644 --- a/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsProcessor.java +++ b/cqf-fhir-cr/src/main/java/org/opencds/cqf/fhir/cr/measure/r4/R4CareGapsProcessor.java @@ -17,7 +17,6 @@ import org.hl7.fhir.r4.model.Measure.MeasureGroupComponent; import org.hl7.fhir.r4.model.Organization; import org.hl7.fhir.r4.model.Parameters; -import org.hl7.fhir.r4.model.PrimitiveType; import org.hl7.fhir.r4.model.Resource; import org.opencds.cqf.fhir.api.Repository; import org.opencds.cqf.fhir.cr.measure.CareGapsProperties;