private void mergeEncounters(Patient preferred, Patient notPreferred, PersonMergeLogData mergedData) { // change all encounters. This will cascade to obs and orders contained in those encounters // TODO: this should be a copy, not a move EncounterService es = Context.getEncounterService(); EncounterSearchCriteria notPreferredPatientEncounterSearchCriteria = new EncounterSearchCriteriaBuilder() .setIncludeVoided(true) .setPatient(notPreferred) .createEncounterSearchCriteria(); for (Encounter e : es.getEncounters(notPreferredPatientEncounterSearchCriteria)) { e.setPatient(preferred); log.debug("Merging encounter " + e.getEncounterId() + " to " + preferred.getPatientId()); Encounter persisted = es.saveEncounter(e); mergedData.addMovedEncounter(persisted.getUuid()); } }
/** * @see EncounterValidator#validate(Object,Errors) */ @Test public void validate_shouldPassValidationIfFieldLengthsAreCorrect() { encounter.setEncounterType(new EncounterType()); encounter.setPatient(new Patient()); encounter.setEncounterDatetime(new Date()); encounter.setVoidReason("voidReason"); encounterValidator.validate(encounter, errors); Assert.assertFalse(errors.hasErrors()); }
/** * @see EncounterValidator#validate(Object,Errors) */ @Test public void validate_shouldFailValidationIfFieldLengthsAreNotCorrect() { encounter.setEncounterType(new EncounterType()); encounter.setPatient(new Patient()); encounter.setEncounterDatetime(new Date()); encounter .setVoidReason("too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text"); encounterValidator.validate(encounter, errors); Assert.assertTrue(errors.hasFieldErrors("voidReason")); } }
/** * @see EncounterValidator#validate(Object,Errors) */ @Test public void validate_shouldFailIfTheVisitHasNoPatient() { encounter.setPatient(new Patient(2)); Visit visit = new Visit(); encounter.setVisit(visit); encounterValidator.validate(encounter, errors); Assert.assertEquals("Encounter.visit.patients.dontMatch", errors.getFieldError("visit").getCode()); }
/** * @see EncounterValidator#validate(Object,Errors) */ @Test public void validate_shouldFailIfThePatientsForTheVisitAndTheEncounterDontMatch() { encounter.setPatient(new Patient(2)); Visit visit = new Visit(); visit.setPatient(new Patient(3)); encounter.setVisit(visit); encounterValidator.validate(encounter, errors); Assert.assertEquals("Encounter.visit.patients.dontMatch", errors.getFieldError("visit").getCode()); }
/** * @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(); }
private Encounter buildEncounter() { // First, create a new Encounter Encounter enc = new Encounter(); enc.setLocation(Context.getLocationService().getLocation(1)); enc.setEncounterType(Context.getEncounterService().getEncounterType(1)); enc.setEncounterDatetime(new Date()); enc.setPatient(Context.getPatientService().getPatient(3)); enc.addProvider(Context.getEncounterService().getEncounterRole(1), Context.getProviderService().getProvider(1)); return enc; }
/** * @see Encounter#addObs(Obs) */ @Test public void addObs_shouldAddEncounterAttrsToObsIfAttributesAreNull() { /// an encounter that will hav the date/location/patient on it Encounter encounter = new Encounter(); Date date = new Date(); encounter.setEncounterDatetime(date); Location location = new Location(1); encounter.setLocation(location); Patient patient = new Patient(1); encounter.setPatient(patient); // add an obs that doesn't have date/location/patient set on it. Obs obs = new Obs(123); encounter.addObs(obs); // make sure it was added assertEquals(1, encounter.getAllObs(true).size()); // check the values of the obs attrs to see if they were added assertTrue(obs.getObsDatetime().equals(date)); assertTrue(obs.getLocation().equals(location)); assertTrue(obs.getPerson().equals(patient)); }
/** * @see OrderValidator#validate(Object,Errors) */ @Test public void validate_shouldPassValidationIfAllFieldsAreCorrect() { Order order = new DrugOrder(); Encounter encounter = new Encounter(); order.setConcept(Context.getConceptService().getConcept(88)); order.setOrderer(Context.getProviderService().getProvider(1)); Patient patient = Context.getPatientService().getPatient(2); encounter.setPatient(patient); order.setPatient(patient); Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH) - 1); order.setDateActivated(cal.getTime()); order.setAutoExpireDate(new Date()); order.setCareSetting(new CareSetting()); order.setEncounter(encounter); order.setUrgency(Order.Urgency.ROUTINE); order.setAction(Order.Action.NEW); order.setOrderType(Context.getOrderService().getOrderTypeByName("Drug order")); Errors errors = new BindException(order, "order"); new OrderValidator().validate(order, errors); Assert.assertFalse(errors.hasErrors()); }
encounter.setEncounterType(new EncounterType(1)); encounter.setEncounterDatetime(new Date()); encounter.setPatient(new Patient(2)); encounter.setCreator(new User(4));
/** * @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()); }
/** * @see OrderValidator#validate(Object,Errors) */ @Test public void validate_shouldPassValidationIfFieldLengthsAreCorrect() { Order order = new Order(); Encounter encounter = new Encounter(); order.setConcept(Context.getConceptService().getConcept(88)); order.setOrderer(Context.getProviderService().getProvider(1)); Patient patient = Context.getPatientService().getPatient(2); encounter.setPatient(patient); order.setPatient(patient); Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH) - 1); order.setDateActivated(cal.getTime()); order.setAutoExpireDate(new Date()); order.setCareSetting(new CareSetting()); order.setEncounter(encounter); order.setUrgency(Order.Urgency.ROUTINE); order.setAction(Order.Action.NEW); order.setOrderReasonNonCoded("orderReasonNonCoded"); order.setAccessionNumber("accessionNumber"); order.setCommentToFulfiller("commentToFulfiller"); order.setVoidReason("voidReason"); Errors errors = new BindException(order, "order"); new OrderValidator().validate(order, errors); Assert.assertFalse(errors.hasErrors()); }
encounter.setLocation(new Location(1)); encounter.setEncounterDatetime(new Date()); encounter.setPatient(Context.getPatientService().getPatient(3)); EncounterType encounterType = new EncounterType(1);
order.setOrderer(Context.getProviderService().getProvider(1)); Patient patient = Context.getPatientService().getPatient(2); encounter.setPatient(patient); order.setPatient(patient); Calendar cal = Calendar.getInstance();
order.setInstructions("Instructions"); order.setPatient(patient); encounter.setPatient(patient); order.setEncounter(encounter); Calendar cal = Calendar.getInstance();
encounter.setEncounterType(new EncounterType(1)); encounter.setEncounterDatetime(new Date()); encounter.setPatient(new Patient(3));
order.setDosingInstructions("Test Instruction"); order.setPatient(patient); encounter.setPatient(patient); order.setEncounter(encounter); Calendar cal = Calendar.getInstance();
encounter.setPatient(patient);
/** * @see TestOrderValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldFailValidationIfTheSpecimenSourceIsInvalid() { ConceptService conceptService = Context.getConceptService(); Concept specimenSource = conceptService.getConcept(3); OrderService orderService = Context.getOrderService(); assertThat(specimenSource, not(isIn(orderService.getDrugRoutes()))); TestOrder order = new TestOrder(); Patient patient = new Patient(8); order.setPatient(patient); order.setOrderType(orderService.getOrderTypeByName("Test order")); order.setConcept(conceptService.getConcept(5497)); order.setOrderer(new Provider()); order.setCareSetting(new CareSetting()); Encounter encounter = new Encounter(); encounter.setPatient(patient); order.setEncounter(encounter); order.setDateActivated(new Date()); order.setSpecimenSource(specimenSource); Errors errors = new BindException(order, "order"); new TestOrderValidator().validate(order, errors); Assert.assertTrue(errors.hasFieldErrors("specimenSource")); Assert.assertEquals("TestOrder.error.specimenSourceNotAmongAllowedConcepts", errors.getFieldError("specimenSource") .getCode()); }
/** * @see TestOrderValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldPassValidationIfTheSpecimenSourceIsValid() { ConceptService conceptService = Context.getConceptService(); Concept specimenSource = conceptService.getConcept(22); OrderService orderService = Context.getOrderService(); assertThat(specimenSource, isIn(orderService.getDrugRoutes())); TestOrder order = new TestOrder(); Patient patient = new Patient(8); order.setPatient(patient); order.setOrderType(orderService.getOrderTypeByName("Test order")); order.setConcept(conceptService.getConcept(5497)); order.setOrderer(Context.getProviderService().getProvider(1)); order.setCareSetting(new CareSetting()); Encounter encounter = new Encounter(); encounter.setPatient(patient); order.setEncounter(encounter); order.setDateActivated(new Date()); order.setSpecimenSource(specimenSource); Errors errors = new BindException(order, "order"); new TestOrderValidator().validate(order, errors); Assert.assertFalse(errors.hasFieldErrors()); } }