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.pbm.ampl.asset.mock;

import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.Collection;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import gov.va.med.pbm.ampl.constant.MockDataConstants;
import gov.va.med.pbm.ampl.controller.EnvironmentInternalController;
import gov.va.med.pbm.ampl.model.Immunization;
import gov.va.med.pbm.ampl.model.VaccineInfoStatement;
import gov.va.med.pbm.ampl.model.ValueQuantity;
import gov.va.med.pbm.ampl.utility.DateUtility;
import gov.va.med.pbm.ampl.utility.NumberUtility;

/**
* This class generates mock data for the {@link EnvironmentInternalController} end points .
*
* @author Ian Meinert
* @author Pavani Mukthipudi
*
* @since 1.0
*/
public class ImmunizationData {

private String patientId;

/**
* The application logger.
*/
static final Logger LOGGER = LoggerFactory.getLogger(ImmunizationData.class);

/**
* Single parameter constructor.
*
* @param patientId {@link Long}
*/
public ImmunizationData(String patientId) {
this.patientId = patientId;
}

/**
* Generates a {@link Immunization} {@link Collection} used in mock cases.
*
* @param c the count of {@link Immunization} to create
* @return a {@link Collection} of {@link Immunization} with mock data
*/
public Collection<Immunization> testImmunizationsForPatient(int c) {
Collection<Immunization> ic = new ArrayList<Immunization>();
FacilityData f = new FacilityData();

for (int i = 1; i <= c; i++) {
Immunization im = new Immunization();

String s = Immunization.class.getSimpleName().toUpperCase() + i;
int k = NumberUtility.randomBetween(MockDataConstants.ZERO, MockDataConstants.SEVEN);
double d = NumberUtility.randomFloatBetween(MockDataConstants.NINETY_FIVE_ZERO, MockDataConstants.ONE_O_ONE_ZERO);
int is = NumberUtility.randomBetween(MockDataConstants.ONE, MockDataConstants.THREE);

OffsetDateTime dt = DateUtility.randomOffsetDateTime(MockDataConstants.TWO_K, MockDataConstants.TWO_K_EIGHTTEEN);
OffsetDateTime edt = DateUtility.randomOffsetDateTime(MockDataConstants.TWO_K_TWENTY,
MockDataConstants.TWO_K_THIRTY);

im.setAdminBodySite("LA");
im.setAdministered(dt);
im.setAdministeredBy("RN:" + i);
im.setAdminRoute("IM");
im.setComments("A COMMENT: " + i);
im.setContraindicated("Contraindication");
im.setDose(new ValueQuantity(String.format("%.2f", d), "mg"));
im.setExpirationDate(edt);
im.setFacility(f.testFacilityForPatient(k));
im.setFullName(s + " Name");
im.setLocation("Location:" + i);
im.setLotNumber(NumberUtility.randomBetween(MockDataConstants.ONE_K, MockDataConstants.TEN_K - 1) + "");
im.setManufacturer("ACME");
im.setMaxInSeries(MockDataConstants.THREE);
im.setName(s);
im.setNdc("DTP");
im.setOrderedBy("MD:" + i);
im.setPatientId(patientId);
im.setReaction("LOCAL REACTION OR SWELLING");
im.setSeries(is);
im.setVaccineInfoStatement(this.createVis());

ic.add(im);
}

return ic;
}

/**
* creates Mock VaccineInfoStatements
*
* @return mock VaccineInfoStatements
*/
private Collection<VaccineInfoStatement> createVis() {
ArrayList<VaccineInfoStatement> rtn = new ArrayList<VaccineInfoStatement>();
VaccineInfoStatement vis = new VaccineInfoStatement();
String s = VaccineInfoStatement.class.getSimpleName().toUpperCase();

vis.setEditionDate(OffsetDateTime.now());
vis.setEditionLang("English");
vis.setName(s);
rtn.add(vis);

return rtn;
}
}