private void validateVisitStartedBeforePatientBirthdate(Visit visit, Errors errors) { if (visit.getPatient() == null || visit.getPatient().getBirthdate() == null || visit.getStartDatetime() == null) { return; } if (visit.getStartDatetime().before(getPatientBirthdateAdjustedIfEstimated(visit.getPatient()))) { errors.rejectValue("startDatetime", "Visit.startDateCannotFallBeforeTheBirthDateOfTheSamePatient", "This visit has a start date that falls before the birthdate of the same patient."); } }
if (encounter.getVisit() != null && !ObjectUtils.equals(encounter.getVisit().getPatient(), encounter.getPatient())) { errors.rejectValue("visit", "Encounter.visit.patients.dontMatch", "The patient for the encounter and visit should be the same");
/** * @see VisitValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldAcceptAVisitIfStopDateTimeFallsIntoAnotherVoidedVisitOfTheSamePatient() { Calendar calendar = Calendar.getInstance(); calendar.set(2014, Calendar.FEBRUARY, 2); Visit visit = makeVisit(42); visit.setStartDatetime(calendar.getTime()); calendar.set(2014, Calendar.FEBRUARY, 8); visit.setStopDatetime(calendar.getTime()); assertTrue(patientHasVoidedVisit(visit.getPatient(), DATE_TIME_2014_02_05_00_00_00_0, DATE_TIME_2014_02_11_00_00_00_0)); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertFalse(errors.hasFieldErrors("stopDatetime")); }
/** * @see VisitValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldAcceptAVisitIfItContainsAnotherVoidedVisitOfTheSamePatient() { Calendar calendar = Calendar.getInstance(); calendar.set(2014, Calendar.FEBRUARY, 2); Visit visit = makeVisit(42); visit.setStartDatetime(calendar.getTime()); calendar.set(2014, Calendar.FEBRUARY, 12); visit.setStopDatetime(calendar.getTime()); assertTrue(patientHasVoidedVisit(visit.getPatient(), DATE_TIME_2014_02_05_00_00_00_0, DATE_TIME_2014_02_11_00_00_00_0)); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertFalse(errors.hasFieldErrors("stopDatetime")); }
/** * @see VisitValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldAcceptAVisitIfStartDateTimeFallsIntoAnotherVoidedVisitOfTheSamePatient() { Calendar calendar = Calendar.getInstance(); calendar.set(2014, Calendar.FEBRUARY, 6); Visit visit = makeVisit(42); visit.setStartDatetime(calendar.getTime()); assertTrue(patientHasVoidedVisit(visit.getPatient(), DATE_TIME_2014_02_05_00_00_00_0, DATE_TIME_2014_02_11_00_00_00_0)); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertFalse(errors.hasFieldErrors("startDatetime")); }
/** * @see VisitValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldAcceptAVisitIfStartDateTimeIsEqualToStartDateTimeOfAnotherVoidedVisitOfTheSamePatient() { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(DATE_TIME_2014_02_05_00_00_00_0); Visit visit = makeVisit(42); visit.setStartDatetime(calendar.getTime()); assertTrue(patientHasVoidedVisit(visit.getPatient(), DATE_TIME_2014_02_05_00_00_00_0, DATE_TIME_2014_02_11_00_00_00_0)); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertFalse(errors.hasFieldErrors("startDatetime")); }
/** * @see VisitService#saveVisit(Visit) */ @Test(expected = TransientObjectException.class) public void saveVisit_shouldNotPersistNewEncounter() { Visit visit = visitService.getVisit(1); Encounter encounter = new Encounter(); encounter.setEncounterDatetime(new Date()); encounter.setEncounterType(Context.getEncounterService().getEncounterType(1)); encounter.setPatient(visit.getPatient()); encounter.setLocation(visit.getLocation()); visit.addEncounter(encounter); visitService.saveVisit(visit); Context.flushSession(); }
List<Visit> otherVisitList = Context.getVisitService().getVisitsByPatient(visit.getPatient()); for (Visit otherVisit : otherVisitList) { validateStartDatetime(visit, otherVisit, errors);
assertThat(e.getPatient(), is(v.getPatient())); for (Obs o : e.getAllObs(true)) { if (!originalUnvoidedObs.contains(o)) { assertThat(o.getPerson().getId(), is(v.getPatient().getId()));
/** * @see VisitService#saveVisit(Visit) */ @Test public void saveVisit_shouldAssociateEncounterWithVisitOnSaveEncounter() { Visit visit = visitService.getVisit(1); EncounterService es = Context.getEncounterService(); Encounter encounter = new Encounter(); encounter.setEncounterDatetime(new Date()); encounter.setPatient(visit.getPatient()); encounter.setLocation(visit.getLocation()); encounter.setEncounterType(es.getEncounterType(1)); visit.addEncounter(encounter); Context.getEncounterService().saveEncounter(encounter); Integer encounterId = encounter.getEncounterId(); Context.flushSession(); Context.clearSession(); // reload the visit visit = visitService.getVisit(1); assertEquals(1, visit.getEncounters().size()); assertEquals(encounterId, ((Encounter) visit.getEncounters().toArray()[0]).getEncounterId()); }