@Test public void savePatient_shouldUpdateTheDateChangedAndChangedByOnUpdateOfThePersonAddress() throws Exception { Patient patient = patientService.getPatient(2); PersonAddress address = patient.getAddresses().iterator().next(); address.setAddress1("Modified Address"); patientService.savePatient(patient); Context.evictFromSession(patient); patient = patientService.getPatient(2); PersonAddress personAddress = patient.getAddresses().iterator().next(); assertNotNull(personAddress.getDateChanged()); assertNotNull(personAddress.getChangedBy()); }
@Test public void mergePatients_shouldMergePatientNames() throws Exception { executeDataSet(PATIENT_MERGE_XML); Patient preferredPatient = patientService.getPatient(10001); Patient nonPreferredPatient = patientService.getPatient(10000); patientService.mergePatients(preferredPatient, nonPreferredPatient); assertThat(preferredPatient.getAddresses().size(), equalTo(2)); }
private void setPreferredPatientAddress(Patient patient) { PersonAddress preferredAddress = null; PersonAddress possiblePreferredAddress = patient.getPersonAddress(); if (possiblePreferredAddress != null && possiblePreferredAddress.getPreferred() && !possiblePreferredAddress.getVoided()) { preferredAddress = possiblePreferredAddress; } for (PersonAddress address : patient.getAddresses()) { if (preferredAddress == null && !address.getVoided()) { address.setPreferred(true); preferredAddress = address; continue; } if (!address.equals(preferredAddress)) { address.setPreferred(false); } } }
/** * This test verifies that {@link PersonAddress}es are fetched correctly from the hibernate * cache. (Or really, not fetched from the cache but instead are mapped with lazy=false. For * some reason Hibernate isn't able to find objects in the cache if a parent object was the one * that loaded them) * * @throws Exception */ @Test public void shouldFetchAddressesForPersonsThatWereFirstFetchedAsPatients() throws Exception { Person person = Context.getPersonService().getPerson(2); Patient patient = Context.getPatientService().getPatient(2); patient.getAddresses().size(); person.getAddresses().size(); }
/** * @see PatientService#mergePatients(Patient,Patient) */ @Test public void mergePatients_shouldCopyNonvoidedAddressesToPreferredPatient() throws Exception { Patient preferred = patientService.getPatient(7); Patient notPreferred = patientService.getPatient(8); patientService.mergePatients(preferred, notPreferred); // make sure one of their addresses has the city of "Jabali" boolean found = false; for (PersonAddress pa : preferred.getAddresses()) { if (pa.getCityVillage().equals("Jabali")) { found = true; } } Assert.assertTrue("odd, user 7 didn't get user 8's address", found); }
/** * @see PatientService#mergePatients(Patient,Patient) */ @Test public void mergePatients_shouldOnlyMarkAddressesOfPreferredPatientAsPreferred() throws Exception { Patient preferred = patientService.getPatient(7); Patient notPreferred = patientService.getPatient(8); // since the test data has no preferred addresses, we need to mark addresses to preferred to set up the test preferred.getPersonAddress().setPreferred(true); notPreferred.getPersonAddress().setPreferred(true); patientService.savePatient(preferred); patientService.savePatient(notPreferred); patientService.mergePatients(preferred, notPreferred); Assert.assertThat(preferred.getAddresses().size(), is(2)); // make sure only the address from the preferred patient is marked as preferred for (PersonAddress pa : preferred.getAddresses()) { if (pa.getCityVillage().equals("Jabali")) { Assert.assertFalse(pa.getPreferred()); } } }
@Test public void mergePatients_shouldMaintainSimilarButDifferentAddresses() throws Exception { executeDataSet(PATIENT_MERGE_XML); Patient preferredPatient = patientService.getPatient(10000); Patient nonPreferredPatient = patientService.getPatient(10001); patientService.mergePatients(preferredPatient, nonPreferredPatient); Set<PersonAddress> addresses = preferredPatient.getAddresses(); assertThat( addresses, containsAddress("a1:Apartment ABC, a2:123 fake st, cv:Faketown, sp:null, c:null, cd:null, nc:null, pc:1234, lat:null, long:null")); assertThat( addresses, containsAddress("a1:Apartment ABC, a2:123 fake st, cv:Faketown, sp:Fakeland, c:null, cd:null, nc:null, pc:null, lat:null, long:null")); }
for (PersonAddress newAddress : notPreferred.getAddresses()) { boolean containsAddress = false; for (PersonAddress currentAddress : preferred.getAddresses()) { containsAddress = currentAddress.equalsContent(newAddress); if (containsAddress) {
pAddress.setCityVillage("Anywhere city"); pAddress.setCountry("Some Country"); Set<PersonAddress> pAddressList = patient.getAddresses(); pAddressList.add(pAddress); patient.setAddresses(pAddressList);
pAddress.setCityVillage("Anywhere city"); pAddress.setCountry("Some Country"); Set<PersonAddress> pAddressList = patient.getAddresses(); pAddressList.add(pAddress); patient.setAddresses(pAddressList);
for (PersonAddress a : preferred.getAddresses()) { if (a.getAddress1().equals(address.getAddress1())) { addedAddressUuid = a.getUuid();
pAddress.setCityVillage("Anywhere city"); pAddress.setCountry("Some Country"); Set<PersonAddress> pAddressList = patient.getAddresses(); pAddressList.add(pAddress); patient.setAddresses(pAddressList);
pAddress.setCityVillage("Anywhere city"); pAddress.setCountry("Some Country"); Set<PersonAddress> pAddressList = patient.getAddresses(); pAddressList.add(pAddress); patient.setAddresses(pAddressList);
pAddress.setCityVillage("Anywhere city"); pAddress.setCountry("Some Country"); Set<PersonAddress> pAddressList = patient.getAddresses(); pAddressList.add(pAddress); patient.setAddresses(pAddressList);
pAddress.setCityVillage("Anywhere city"); pAddress.setCountry("Some Country"); Set<PersonAddress> pAddressList = patient.getAddresses(); pAddressList.add(pAddress); patient.setAddresses(pAddressList);
Set<PersonAddress> addresses = openMrsPatient.getAddresses(); if (!addresses.isEmpty()) { PersonAddress address = addresses.iterator().next();