Skip to content

Commit

Permalink
refactor: remove unnecessary code
Browse files Browse the repository at this point in the history
OCD-4408
  • Loading branch information
tmy1313 committed Dec 12, 2023
1 parent 705e231 commit 8a78a74
Showing 1 changed file with 0 additions and 67 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package gov.healthit.chpl.upload.listing.normalizer;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;
import java.util.Optional;
Expand All @@ -10,17 +9,12 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import gov.healthit.chpl.certificationCriteria.CertificationCriterion;
import gov.healthit.chpl.domain.CertificationResult;
import gov.healthit.chpl.domain.CertifiedProductSearchDetails;
import gov.healthit.chpl.exception.EntityRetrievalException;
import gov.healthit.chpl.standard.CertificationResultStandard;
import gov.healthit.chpl.standard.Standard;
import gov.healthit.chpl.standard.StandardCriteriaMap;
import gov.healthit.chpl.standard.StandardDAO;
import lombok.extern.log4j.Log4j2;

@Log4j2
@Component
public class StandardNormalizer {
private StandardDAO standardDao;
Expand Down Expand Up @@ -49,7 +43,6 @@ private void clearDataForUnattestedCriteria(CertifiedProductSearchDetails listin

private void fillInStandardsData(CertifiedProductSearchDetails listing, CertificationResult certResult) {
populateStandards(listing, certResult, certResult.getStandards());
addMissingStandards(listing.getCertificationDay(), certResult);
}

private void populateStandards(CertifiedProductSearchDetails listing, CertificationResult certResult, List<CertificationResultStandard> standards) {
Expand Down Expand Up @@ -81,64 +74,4 @@ private Standard getStandard(String regulatoryTextCitation, Long criterionId) {
.findAny();
return standardOpt.isPresent() ? standardOpt.get() : null;
}

private CertificationResult addMissingStandards(LocalDate certificationDate, CertificationResult certResult) {
List<Standard> validStandardsForCriterionAndListing = getValidStandardsForCriteriaAndListing(certResult.getCriterion(), certificationDate);

validStandardsForCriterionAndListing
.forEach(std -> {
List<Standard> standardsExistingInCertResult = certResult.getStandards().stream()
.map(crs -> crs.getStandard())
.toList();

if (!isStandardInList(std, standardsExistingInCertResult)) {
certResult.getStandards().add(CertificationResultStandard.builder()
.certificationResultId(certResult.getId())
.standard(std)
.build());
}
});

return certResult;
}

private Boolean isStandardInList(Standard standard, List<Standard> standards) {
return standards.stream()
.filter(std -> standard.getId().equals(std.getId()))
.findAny()
.isPresent();
}

private List<Standard> getValidStandardsForCriteriaAndListing(CertificationCriterion criterion, LocalDate certificationDate) {
try {
List<StandardCriteriaMap> maps = standardDao.getAllStandardCriteriaMap();
maps.removeIf(map -> !map.getCriterion().getId().equals(criterion.getId()));
return maps.stream()
.filter(map -> !isStandardInAGroup(map.getStandard())
&& isStandardEndDateAfterCertificationDate(map.getStandard(), certificationDate)
&& !isStandardRequiredDateBeforeCertificationDate(map.getStandard(), certificationDate))
.map(map -> map.getStandard())
.toList();

} catch (EntityRetrievalException e) {
LOGGER.info("Error retrieving Standards for Criterion");
throw new RuntimeException(e);
}
}

private Boolean isStandardInAGroup(Standard standard) {
return standard.getGroupName() != null;
}

private Boolean isStandardEndDateAfterCertificationDate(Standard standard, LocalDate certificationDate) {
return standard.getEndDay() == null
|| standard.getEndDay().isAfter(certificationDate);
}

private Boolean isStandardRequiredDateBeforeCertificationDate(Standard standard, LocalDate certificationDate) {
return standard.getRequiredDay() == null
|| standard.getRequiredDay().isBefore(certificationDate);
}
}


0 comments on commit 8a78a74

Please sign in to comment.