Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

package gov.va.med.ewv.service.impl;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Service;

import gov.va.med.domain.ewv.EwvClaims;
import gov.va.med.domain.ewv.EwvECodes5010;
import gov.va.med.ewv.codes.CodeBase;
import gov.va.med.ewv.codes.ECode;
import gov.va.med.ewv.codes.ECodesContainer;
import gov.va.med.ewv.service.IEwvE_CodesInfoService;

@Service
public class EwvEcodesInfoServiceImpl implements IEwvE_CodesInfoService {
public static final Logger logger = LogManager.getLogger(EwvEcodesInfoServiceImpl.class);
@Override
public ECodesContainer populateECodesContainer(EwvClaims claimBean) {
logger.debug("Invoked populateECodesContainer() for claim guid : " + claimBean.getGuid());
//Set<EwvECodes5010> codes = eCodesRepository.getEwvECodes5010ByClaimGuid(claimBean.getGuid());
List<ECode> eCodes = createListOfECodes(claimBean.getEwvECodes5010s());

ECodesContainer ret = new ECodesContainer(eCodes);

//boolean okToRender = EwvUtils.okToRender(eCodes);
// ret.setShouldRender(ok);
logger.debug("Exiting populateECodesContainer() for claim guid : " + claimBean.getGuid());
return ret;
}

@Override
public List<ECode> createListOfECodes(Set<EwvECodes5010> eCodes) {
logger.debug("Invoked createListOfECodes()");

List<ECode> returnList = eCodes.stream()
.map(codeBean -> {
Long sequence = codeBean.getSequenceNum().longValue();
String code = codeBean.getECode().replaceAll("[^a-zA-Z0-9_-]", "");
return new ECode(sequence, code, codeBean.getPoaIndicator5010());
})
.collect(Collectors.toList());

// List<ECode> returnList = new ArrayList<>();
//
// for (EwvECodes5010 codeBean : eCodes) {
// Long sequence = codeBean.getSequenceNum().longValue();
// String code = codeBean.getECode().replaceAll("[^a-zA-Z0-9_-]", "");
// returnList.add(new ECode(sequence, code, codeBean.getPoaIndicator5010()));
// }
//
// Collections.sort(returnList); // natural sort is by sequenceNumber

// Experience shows that the codes in the database include sequence
// numbers that sometimes start with 1, and sometimes with 2.
returnList = CodeBase.renumber(returnList);
logger.debug("Exiting createListOfECodes()");
return returnList;
}
}