diff --git a/src/main/java/cms/gov/madie/measure/resources/AdminController.java b/src/main/java/cms/gov/madie/measure/resources/AdminController.java index c0878735..1dc9a98f 100644 --- a/src/main/java/cms/gov/madie/measure/resources/AdminController.java +++ b/src/main/java/cms/gov/madie/measure/resources/AdminController.java @@ -284,7 +284,7 @@ public ResponseEntity overwriteExpectedValues( && target.getTitle().equals(source.getTitle()) && target.getSeries().equals(source.getSeries()))) { target.setGroupPopulations(source.getGroupPopulations()); - correctGroupIdsAndExpectedValueType(target.getGroupPopulations(), targetMeasure); + correctIdsAndExpectedValueType(target.getGroupPopulations(), targetMeasure); } } } @@ -295,7 +295,7 @@ public ResponseEntity overwriteExpectedValues( Measure.class, ActionType.UPDATED, principal.getName(), - "Admin Action: Overwrote Expected Values with pre-2.1.3 release snapshot."); + "Admin Action: Overwrote Expected Values."); return ResponseEntity.ok(targetMeasure); } @@ -313,16 +313,24 @@ private boolean isDirectAncestor(Measure sourceMeasure, Measure targetMeasure) { == sourceMeasure.getVersion().getRevisionNumber(); } - private void correctGroupIdsAndExpectedValueType( - List groupPopulations, Measure msr) { - if (msr instanceof FhirMeasure fhirMeasure) { - for (int i = 0; i < groupPopulations.size(); i++) { - TestCaseGroupPopulation group = groupPopulations.get(i); - group.setGroupId(fhirMeasure.getGroups().get(i).getId()); - if (group.getPopulationBasis() != null - && group.getPopulationBasis().equalsIgnoreCase("boolean")) { - // adjust FHIR data - for (TestCasePopulationValue populationValue : group.getPopulationValues()) { + private void correctIdsAndExpectedValueType( + List tcGroupPopulations, Measure msr) { + for (int i = 0; i < tcGroupPopulations.size(); i++) { + TestCaseGroupPopulation tcGroup = tcGroupPopulations.get(i); + tcGroup.setGroupId(msr.getGroups().get(i).getId()); + // Correct Stratification IDs + if (CollectionUtils.isNotEmpty(msr.getGroups().get(i).getStratifications())) { + for (int j = 0; j < msr.getGroups().get(i).getStratifications().size(); j++) { + tcGroup + .getStratificationValues() + .get(j) + .setId(msr.getGroups().get(i).getStratifications().get(j).getId()); + } + } + if (msr instanceof FhirMeasure) { + if (tcGroup.getPopulationBasis() != null + && tcGroup.getPopulationBasis().equalsIgnoreCase("boolean")) { + for (TestCasePopulationValue populationValue : tcGroup.getPopulationValues()) { if (populationValue.getExpected() instanceof String originalValue) { if (originalValue.equalsIgnoreCase("1")) { populationValue.setExpected(Boolean.TRUE); @@ -332,20 +340,13 @@ private void correctGroupIdsAndExpectedValueType( } } } - } - } else { - // adjust QDM data - for (int i = 0; i < groupPopulations.size(); i++) { - TestCaseGroupPopulation group = groupPopulations.get(i); - group.setGroupId(msr.getGroups().get(i).getId()); - if (((QdmMeasure) msr).isPatientBasis()) { - for (TestCasePopulationValue populationValue : group.getPopulationValues()) { - if (populationValue.getExpected() instanceof Integer originalValue) { - if (originalValue == 1) { - populationValue.setExpected(Boolean.TRUE); - } else { - populationValue.setExpected(Boolean.FALSE); - } + } else if (((QdmMeasure) msr).isPatientBasis()) { + for (TestCasePopulationValue populationValue : tcGroup.getPopulationValues()) { + if (populationValue.getExpected() instanceof Integer originalValue) { + if (originalValue == 1) { + populationValue.setExpected(Boolean.TRUE); + } else { + populationValue.setExpected(Boolean.FALSE); } } }