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 static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import gov.va.med.ars.exceptions.GenericException;
import gov.va.med.domain.ewv.EwvClaims;
import gov.va.med.domain.ewv.EwvServiceLines;
import gov.va.med.domain.ewv.EwvServiceLinesDrugs;
import gov.va.med.ewv.exceptions.NonUniqueRecordsException;
import gov.va.med.ewv.model.response.AmbulanceCert;
import gov.va.med.ewv.model.response.AmbulanceInfo;
import gov.va.med.ewv.model.response.BillingAndAdmissionInfo;
import gov.va.med.ewv.model.response.DrugLine;
import gov.va.med.ewv.model.response.MedicalEquipmentLine;
import gov.va.med.ewv.model.response.Provider;
import gov.va.med.ewv.model.response.ServiceLineOhiAdjustment;
import gov.va.med.ewv.model.response.ToothLine;
import gov.va.med.ewv.service.IEwvAmbulanceAndServiceLinesInfoService;
import gov.va.med.ewv.service.IEwvBillingMiscInfoService;
import gov.va.med.ewv.util.ClaimFormat;
import gov.va.med.ewv.util.ClaimType;
import gov.va.med.ewv.util.DrugCategory_5010;
import gov.va.med.ewv.util.EwvUtils;
import gov.va.med.ewv.util.ProviderType;
import gov.va.med.ewv.util.ServiceLine;
@RunWith(MockitoJUnitRunner.class)
public class EwvAmbulanceAndServiceLinesInfoServiceImplTest {
@Mock
IEwvAmbulanceAndServiceLinesInfoService ewvBillingAndServiceLinesInfoService;
String pdi = "201736500000002";
EwvClaims ewvClaim;
BillingAndAdmissionInfo billingMiscellanous;
ClaimType claimType = ClaimType.DENTAL;
List<ServiceLine> serviceLinesInfo;
AmbulanceInfo serviceLineLevelAmbulanceInfo ;
@Before
public void init() throws Exception {
Long guid = 3L;
String ediClaimKey = "681A4FD0-CE88-7F6C-E053-4A10BF0A3038";
ClaimFormat claimFormat = ClaimFormat.FORMAT4010;
//ClaimType claimType = ClaimType.DENTAL;
String memberId = "666666661";
String medicareCrossover = "Y";
String pos = "21";
// Patient info
String patientName = "RODGERS-CROMARTIE, DOMINIQUE";
String patientIdNumber = "1234567890";
String patientDob = "01/01/1935";
String patientGender = "M";
String patientAddressLine1 = "1122 Maple Street";
String patientAddressLine2 = "Apt. B";
String patientCity = "NEW YORK";
String patientState = "NY";
String patientPostalCode = "12345";
String patientCountry = "USA";
// Vendor info
String serviceVendorName = "GENERAL DIAGNOSTIC HOSPITAL";
String serviceVendorTaxIdNum = "1234567890";
String serviceVendorNpi = "1234567890";;
String serviceVendorAddressLine1 = "2000 SOUTH US HIGHWAY 1";
String serviceVendorAddressLine2 = "SUITE 100";
String serviceVendorCity = "NEW YORK";
String serviceVendorState = "NY";
String serviceVendorPostalCode = "12345";
String billingVendorName = "GENERAL MEMORIAL HOSPITAL";
String billingVendorTaxIdNum = "1234567890";
String billingVendorNpi = "1234567890";;
String billingVendorAddressLine1 = "1212 SOUTH US HIGHWAY 1";;
String billingVendorAddressLine2 = null;
String billingVendorCity = "NEW YORK";;
String billingVendorState = "NY";
String billingVendorPostalCode = "12345";
// Billing info
String invoicePatientAccountNum= "1721590-2";
String invoiceTypeOfBill= "21";
String invoiceFrequency= "1";
String invoiceStatementFromDate= "01/01/2017";
String invoiceStatementToDate= "02/01/2017";
String invoicePreviousPdi= "1234567890123";
String invoicePatientPaidAmt= "999.99";
String invoicePatientSignature= "B";
String invoicePatientStatus= "UNK";
String invoicePriorAuthorization1= "12345678901234567890";
String invoicePriorAuthorization2= "";
String invoiceAdmissionType= "UNK";
String invoiceAdmissionSource= "UNK";
String invoiceAdmissionDate = "01/01/2017";
String invoiceAdmissionHour = "15:00";
String invoiceAccidentDate= "01/01/2017";
String invoiceAccidentIndicator= "123456";
String invoiceProvAcceptsAssignmt= "A"; //which field?
String invoiceAssignmentOfBenefits= "Y";
String invoiceDischargeDateHour= "02/01/2017 15:00";
String invoiceAdmissionDateHour = "01/01/2017 15:00";
String svcLineTotalClaimCharges = "999.99";
String pcn = invoicePatientAccountNum;
String pcnShort = EwvUtils.shorten(pcn, 20);
String hccodesPoaNotes = "123456789012345678901234567890";
String hccodesPrincipalDiagnosis = "998";
String hccodesAdmittingDiagnosis = "998";
String hccodesReasonForVists = "998";
String hccodesECode = "998";
String hccodesPrincipalProcedure = "998";
String hccodesPrincipalProcDate = "03/01/2017";
String admittingDiagnosis = hccodesAdmittingDiagnosis;
String reasonForVisit = hccodesReasonForVists;
String eCode = hccodesECode;
String poaNotesPlain = hccodesPoaNotes;
String poaNotesLong = EwvUtils.addLineBreaks(poaNotesPlain);
String poaNotesShort = EwvUtils.shorten(poaNotesLong, 15);
boolean usePoaNotesModelPanel = false;
if (poaNotesShort.endsWith("...")) {
usePoaNotesModelPanel = true;
}
String priorAuthorizationReferralShort = EwvUtils.shorten(invoicePriorAuthorization1, 20);
String renderingPrvdName = "";
String renderingPrvdNpi = "";
String renderingPrvdTaxonomyCode = "";
String dischargeDateOrHour = "02/01/17";
String reasonForVisit2_5010 = "";
String reasonForVisit3_5010 = "";
String referralShort_5010 = "";
String referralLong_5010 = "";
String beginDateOfService = "03/11/17";
String endDateOfService = "03/11/17";
String dateOfService = null; // Not sure this is used
String revCode = null;
String procedureCode = null;
String ndcCode = null;
String modifiers = null;
String quantityOrType = null;
// Ohi Stuff
String primaryPayerPaidAmount = null;
List<ServiceLineOhiAdjustment> primaryOhiServiceLineAdjustments = null;
String secondaryPayerPaidAmount = null;
List<ServiceLineOhiAdjustment> secondaryOhiServiceLineAdjustments = null;
// Added quantity and type for Phase II, when they should be separate
String quantity = null;
String type = null;
String serviceTax = null;
String facilityTax = null;
String charge = null;
String lineNumber = null;
List<DrugLine> listOfDrugLines = null;
List<ToothLine> listOfTeeth = null;
List<MedicalEquipmentLine> listOfEquipment = null;
String dxDtPointers = null;
String salesTax = null;
List<Provider> listOfProviderInfo = new ArrayList<>();
listOfProviderInfo.add(new Provider(ProviderType.ATTENDING, "00023", "12345", "Goul, John", "12345","582N00000X"));
String pickupAddressLine1 ="54321 Maple Street" ;
String pickupAddressLine2 ="Apt. 303";
String pickupCity ="Springfield";
String pickupState = "OH";
String pickupZip = "54321";
String dropoffAddressLine1 ="12345 Maple Street";
String dropoffAddressLine2 =null;
String dropoffCity="Springfield";
String dropoffState = "OH";
String dropoffZip= "54321";
String transportReasonCode = "A";
String transportDistance = "14";
String roundTripPurpose ="Medical care";
String roundTripPurposeShort =null;
boolean useRoundTripPurposeModalPanel= false;
String stretcherPurpose ="Lorem ipsum dolor sit amet";
String stretcherPurposeShort=null;
boolean useStretcherPurposeModalPanel= false;
List<AmbulanceCert> certs = new ArrayList<>();
AmbulanceCert amb = new AmbulanceCert("N","N");
certs.add(amb);
serviceLineLevelAmbulanceInfo = new AmbulanceInfo(pickupAddressLine1, pickupAddressLine2,
pickupCity, pickupState, pickupZip, dropoffAddressLine1, dropoffAddressLine2, dropoffCity, dropoffState,
dropoffZip, transportReasonCode, transportDistance, roundTripPurpose, roundTripPurposeShort,
useRoundTripPurposeModalPanel, stretcherPurpose, stretcherPurposeShort, useStretcherPurposeModalPanel,
certs);
listOfDrugLines = new ArrayList<>();
listOfDrugLines.add(new DrugLine(null,"55513028301",".08 ML",".08","ML","", DrugCategory_5010.VY));
listOfDrugLines.add(new DrugLine(null,"55513028301",".72 ML",".72","ML","", DrugCategory_5010.VY));
ServiceLine sl = new ServiceLine(dateOfService, beginDateOfService, endDateOfService, revCode, procedureCode,
ndcCode, modifiers, quantityOrType, quantity, type, primaryPayerPaidAmount,
primaryOhiServiceLineAdjustments, secondaryPayerPaidAmount, secondaryOhiServiceLineAdjustments,
serviceTax, facilityTax, charge, lineNumber, listOfDrugLines, listOfTeeth, listOfEquipment,
dxDtPointers, salesTax, "", "", listOfProviderInfo, pos, serviceLineLevelAmbulanceInfo);
serviceLinesInfo = new ArrayList<>();
serviceLinesInfo.add(sl);
BigDecimal ewvClaim_guid = new BigDecimal(guid);
ewvClaim = new EwvClaims();
ewvClaim.setBillingVendorName(billingVendorName);
ewvClaim.setBillingVendorNpi(billingVendorNpi);
ewvClaim.setBillingVendorAddressLine1(billingVendorAddressLine1);
ewvClaim.setBillingVendorAddressLine2(billingVendorAddressLine2);
ewvClaim.setBillingVendorCity(billingVendorCity);
ewvClaim.setBillingVendorState(billingVendorState);
ewvClaim.setBillingVendorPostalCode(billingVendorPostalCode);
ewvClaim.setBillingVendorTaxIdNum(billingVendorTaxIdNum);
ewvClaim.setClaimType(claimType.getValueOf());
ewvClaim.setEdiClaimKey(ediClaimKey);
ewvClaim.setGuid(ewvClaim_guid);
ewvClaim.setInvoiceAccidentDate(invoiceAccidentDate);
ewvClaim.setInvoiceAccidentIndicator(invoiceAccidentIndicator);
ewvClaim.setInvoiceAdmissionDateHour(invoiceAdmissionDateHour);
ewvClaim.setInvoiceAdmissionSource(invoiceAdmissionSource);
ewvClaim.setInvoiceAdmissionType(invoiceAdmissionType);
ewvClaim.setInvoiceAssignmentOfBenefits(invoiceAssignmentOfBenefits);
ewvClaim.setInvoiceDischargeDateHour(invoiceDischargeDateHour);
ewvClaim.setInvoiceFrequency(invoiceFrequency);
ewvClaim.setInvoicePatientAccountNum(invoicePatientAccountNum);
ewvClaim.setInvoicePatientPaidAmt(invoicePatientPaidAmt);
ewvClaim.setInvoicePatientSignature(invoicePatientSignature);
ewvClaim.setInvoicePatientStatus(invoicePatientStatus);
ewvClaim.setInvoicePreviousPdi(invoicePreviousPdi);
ewvClaim.setInvoicePriorAuthorization1(invoicePriorAuthorization1);
ewvClaim.setInvoicePriorAuthorization2(invoicePriorAuthorization2);
ewvClaim.setInvoiceProvAcceptsAssignmt(invoiceProvAcceptsAssignmt);
ewvClaim.setInvoiceStatementFromDate(invoiceStatementFromDate);
ewvClaim.setInvoiceStatementToDate(invoiceStatementToDate);
ewvClaim.setInvoiceTypeOfBill(invoiceTypeOfBill);
ewvClaim.setMedicareCrossover(medicareCrossover);
ewvClaim.setMemberId(memberId);
ewvClaim.setPcn(pcn);
ewvClaim.setPdi(pdi);
ewvClaim.setPos(pos);
ewvClaim.setPatientAddressLine1(patientAddressLine1);
ewvClaim.setPatientAddressLine2(patientAddressLine2);
ewvClaim.setPatientCity(patientCity);
ewvClaim.setPatientCountry(patientCountry);
ewvClaim.setPatientDob(patientDob);
ewvClaim.setPatientGender(patientGender);
ewvClaim.setPatientIdNumber(patientIdNumber);
ewvClaim.setPatientName(patientName);
ewvClaim.setPatientState(patientState);
ewvClaim.setPatientPostalCode(patientPostalCode);
ewvClaim.setPatientState(patientState);
ewvClaim.setServiceVendorName(serviceVendorName);
ewvClaim.setServiceVendorNpi(serviceVendorNpi);
ewvClaim.setServiceVendorAddressLine1(serviceVendorAddressLine1);
ewvClaim.setServiceVendorAddressLine2(serviceVendorAddressLine2);
ewvClaim.setServiceVendorCity(serviceVendorCity);
ewvClaim.setServiceVendorState(serviceVendorState);
ewvClaim.setServiceVendorPostalCode(serviceVendorPostalCode);
ewvClaim.setServiceVendorTaxIdNum(serviceVendorTaxIdNum);
ewvClaim.setSvcLineTotalClaimCharges(svcLineTotalClaimCharges);
ewvClaim.setHccodesAdmittingDiagnosis(hccodesAdmittingDiagnosis);
ewvClaim.setHccodesReasonForVists(hccodesReasonForVists);
ewvClaim.setHccodesECode(hccodesECode);
ewvClaim.setHccodesPoaNotes(hccodesPoaNotes);
Set<EwvServiceLines> ewvServiceLineses = new HashSet<EwvServiceLines>(0);
EwvServiceLines svl = new EwvServiceLines(new BigDecimal(guid), ewvClaim, 28L);
Set<EwvServiceLinesDrugs> ewvServiceLinesDrugses = new HashSet<EwvServiceLinesDrugs>(0);
EwvServiceLinesDrugs d1 = new EwvServiceLinesDrugs(new BigDecimal(1), svl, "", "55513028301",
".72","ML","", DrugCategory_5010.VY.name());
ewvServiceLinesDrugses.add(d1);
svl.setEwvServiceLinesDrugses(ewvServiceLinesDrugses);
ewvServiceLineses.add(svl);
ewvClaim.setEwvServiceLineses(ewvServiceLineses);
}
@Test
public void populateEwvBillingAndServiceLinesInfoService_success() throws GenericException {
try {
when(ewvBillingAndServiceLinesInfoService.populateServiceLines(ewvClaim)).thenReturn(serviceLinesInfo);
List<ServiceLine> info = ewvBillingAndServiceLinesInfoService.populateServiceLines(ewvClaim);
assertEquals(info, serviceLinesInfo);
} catch (NonUniqueRecordsException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}