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 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.EwvDiagnosisCodes;
import gov.va.med.ewv.codes.CodeBase;
import gov.va.med.ewv.codes.DiagnosisCode;
import gov.va.med.ewv.codes.DiagnosisCodesContainer;
import gov.va.med.ewv.service.IEwvDiagnosisCodesInfoService;
import gov.va.med.ewv.util.EwvUtils;
@Service
public class EwvDiagnosisCodeInfoServiceImpl implements IEwvDiagnosisCodesInfoService {
public static final Logger logger = LogManager.getLogger(EwvDiagnosisCodeInfoServiceImpl.class);
@Override
public DiagnosisCodesContainer populateDiagnosisCodes(EwvClaims claim) {
logger.info("Invoked populateDiagnosisCodes() for claim guid "+claim.getGuid());
// Present on Admission notes has multiple versions
//Set<EwvDiagnosisCodes> diagnosisCodes = ewvDiagnosisCodesRepository.getDiagnosisCodesByClaimGuid(claim.getGuid());
String presentOnAdmissionNotesLong = EwvUtils.addLineBreaks(claim.getHccodesPoaNotes());
String presentOnAdmissionNotesShort = EwvUtils.shorten(presentOnAdmissionNotesLong, 10);
boolean usePresentOnAdmissionModalPanel = false;
if (presentOnAdmissionNotesShort.endsWith("...")) {
usePresentOnAdmissionModalPanel = true;
}
String principalDiagnosisMasterCode = claim.getHccodesPrincipalDiagnosis();
// Need to uncomment when the updated schema jar is added
// String principalDiagnosisPoa =
// claim.getHccodesPrincipalDiagnosisPoa();
String principalDiagnosisPoa = "";
String admittingDiagnosisMasterCode = claim.getHccodesAdmittingDiagnosis();
String reasonForVisitMasterCode = claim.getHccodesReasonForVists();
String eCodeMasterCode = claim.getHccodesECode();
// Phase 2 codes do not need to be split into four columnar lists.
List<DiagnosisCode> diagnosisCodesList = createListOfDxCodes(principalDiagnosisMasterCode,
principalDiagnosisPoa, claim.getEwvDiagnosisCodeses());
DiagnosisCodesContainer diagCodes = new DiagnosisCodesContainer(presentOnAdmissionNotesShort,
presentOnAdmissionNotesLong, usePresentOnAdmissionModalPanel, principalDiagnosisMasterCode,
principalDiagnosisPoa, admittingDiagnosisMasterCode, reasonForVisitMasterCode, eCodeMasterCode,
diagnosisCodesList);
logger.info("Exiting populateDiagnosisCodes() for claim guid "+claim.getGuid());
return diagCodes;
}
// This method, new to Phase II, adds in the Principal Diagnosis and does
// not split the codes into four lists, for four columns.
@Override
public List<DiagnosisCode> createListOfDxCodes(String principalDiagnosisMasterCode, String principalDiagnosisPoa,
Set<EwvDiagnosisCodes> codes) {
logger.info("Invoked createListOfDxCodes() ");
List<DiagnosisCode> returnList = new ArrayList<DiagnosisCode>();
// Add in the principal diagnosis
if ( principalDiagnosisMasterCode== null)
{
logger.info("principalDiagnosisMasterCode is null ");
}
if ( principalDiagnosisPoa == null)
{
logger.info("principalDiagnosisPoa is null ");
}
if( principalDiagnosisMasterCode != null)
{
String pdc = principalDiagnosisMasterCode.replaceAll("[^a-zA-Z0-9._-]", "");
returnList.add(new DiagnosisCode(1L, pdc.trim(), principalDiagnosisPoa));
}
logger.info("Going to loop through EwvDiagnosisCodes() ");
for (EwvDiagnosisCodes codeBean : codes) {
// Need to change back to Long
Long sequence = codeBean.getDiagSeq().longValue();
String diagnosisCode = codeBean.getDiagnosisCode().replaceAll("[^a-zA-Z0-9._-]", "");
returnList.add(new DiagnosisCode(sequence, diagnosisCode, codeBean.getPoaIndicator5010()));
}
logger.info("Sort DiagnosisCode List");
// sorting DX codes order by the diagnosis sequence which maintains the order of DX codes appear in the X12 document
Collections.sort(returnList);
logger.info("Exiting createListOfDxCodes() ");
return returnList;
}
}