public PersonAddressBuilder withPreferred(boolean preferred) { personAddress.setPreferred(preferred); return this; }
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); } } }
private void setPreferredPersonAddress(Person person) { PersonAddress preferredAddress = null; PersonAddress possiblePreferredAddress = person.getPersonAddress(); if (possiblePreferredAddress != null && possiblePreferredAddress.getPreferred() && !possiblePreferredAddress.getVoided()) { preferredAddress = possiblePreferredAddress; } for (PersonAddress address : person.getAddresses()) { if (preferredAddress == null && !address.getVoided()) { address.setPreferred(true); preferredAddress = address; continue; } if (!address.equals(preferredAddress)) { address.setPreferred(false); } } }
/** * @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()); } } }
private static void setFirstAddressAsPreferred(List<PersonAddress> addresses) { boolean hasPreferred = false; for (PersonAddress address : addresses) { if (address.isPreferred()) { if (!hasPreferred) { hasPreferred = true; } else { address.setPreferred(false); } } } if (!hasPreferred) { addresses.iterator().next().setPreferred(true); } }
tmpAddress.setVoidedBy(null); tmpAddress.setVoidReason(null); tmpAddress.setPreferred(false); // addresses from non-preferred patient shouldn't be marked as preferred tmpAddress.setUuid(UUID.randomUUID().toString()); preferred.addAddress(tmpAddress);
/** * Sets the preferred address for a person. If no address exists new address is set as * preferred. * * @param instance * @param address * @throws ResourceDoesNotSupportOperationException */ @PropertySetter("preferredAddress") public static void setPreferredAddress(Person instance, PersonAddress address) throws ResourceDoesNotSupportOperationException { if (address.getPersonAddressId() == null) { throw new ResourceDoesNotSupportOperationException("Only an existing address can be marked as preferred!"); } //un mark the current preferred address as preferred if any for (PersonAddress existing : instance.getAddresses()) { if (existing.isPreferred() && !OpenmrsUtil.nullSafeEquals(existing, address)) existing.setPreferred(false); } address.setPreferred(true); }
/** * @see PersonService#savePerson(Person) */ @Test public void savePerson_shouldNotSetThePreferredNameAndAddressIfTheyAlreadyExist() throws Exception { Person person = new Person(); person.setGender("M"); PersonName name = new PersonName("givenName", "middleName", "familyName"); PersonName preferredName = new PersonName("givenName", "middleName", "familyName"); preferredName.setPreferred(true); person.addName(name); person.addName(preferredName); PersonAddress address = new PersonAddress(); address.setAddress1("some address"); PersonAddress preferredAddress = new PersonAddress(); preferredAddress.setAddress1("another address"); preferredAddress.setPreferred(true); person.addAddress(address); person.addAddress(preferredAddress); personService.savePerson(person); assertTrue(preferredName.getPreferred()); assertTrue(preferredAddress.getPreferred()); Assert.assertFalse(name.getPreferred()); Assert.assertFalse(address.getPreferred()); }
/** * @see PersonService#savePerson(Person) */ @Test public void savePerson_shouldNotSetAVoidedNameOrAddressAsPreferred() throws Exception { Person person = new Person(); person.setGender("M"); PersonName name = new PersonName("givenName", "middleName", "familyName"); PersonName preferredName = new PersonName("givenName", "middleName", "familyName"); preferredName.setPreferred(true); preferredName.setVoided(true); person.addName(name); person.addName(preferredName); PersonAddress address = new PersonAddress(); address.setAddress1("some address"); PersonAddress preferredAddress = new PersonAddress(); preferredAddress.setAddress1("another address"); preferredAddress.setPreferred(true); preferredAddress.setVoided(true); person.addAddress(address); person.addAddress(preferredAddress); personService.savePerson(person); Assert.assertFalse(preferredName.getPreferred()); Assert.assertFalse(preferredAddress.getPreferred()); assertTrue(name.getPreferred()); assertTrue(address.getPreferred()); }
PersonAddress preferredAddress = new PersonAddress(); preferredAddress.setAddress1("another address"); preferredAddress.setPreferred(true); patient.addAddress(address); patient.addAddress(preferredAddress);
/** * Sets addresses and marks the first one as preferred if none is marked. It also makes sure * that only one address is marked as preferred and changes the rest to non-preferred. * <p/> * It takes the list so that the order is preserved. * * @param instance * @param addresses */ @PropertySetter("addresses") public static void setAddresses(Person instance, List<PersonAddress> addresses) { for (PersonAddress existingAddress : instance.getAddresses()) { existingAddress.setPreferred(false); } setFirstAddressAsPreferred(addresses); for (PersonAddress address : addresses) { PersonAddress existingAddress = getMatchingAddress(address, instance.getAddresses()); if (existingAddress != null) { copyAddressFields(existingAddress, address); } else { instance.addAddress(address); } } }
PersonAddress preferredAddress = new PersonAddress(); preferredAddress.setAddress1("another address"); preferredAddress.setPreferred(true); preferredAddress.setVoided(true); patient.addAddress(address);
if (!personAddress.isPreferred()) { PersonAddress currentPreferredAddress = context.getExistingPatient().getPersonAddress(); currentPreferredAddress.setPreferred(false); currentPreferredAddress.setVoided(true); personAddress.setPreferred(true); patient.addAddress(personAddress);
for (PersonAddress pa : newAddress.getPerson().getAddresses()) { if (!pa.equals(newAddress)) { pa.setPreferred(false);
preferred.setPreferred(true); person.addAddress(preferred);
private static void copyAddressFields(PersonAddress existingAddress, PersonAddress address) { existingAddress.setPreferred(address.getPreferred()); existingAddress.setAddress1(address.getAddress1()); existingAddress.setAddress2(address.getAddress2()); existingAddress.setAddress3(address.getAddress3()); existingAddress.setAddress4(address.getAddress4()); existingAddress.setAddress5(address.getAddress5()); existingAddress.setAddress6(address.getAddress6()); existingAddress.setCityVillage(address.getCityVillage()); existingAddress.setCountry(address.getCountry()); existingAddress.setStateProvince(address.getStateProvince()); existingAddress.setCountyDistrict(address.getCountyDistrict()); existingAddress.setPostalCode(address.getPostalCode()); existingAddress.setLatitude(address.getLatitude()); existingAddress.setLongitude(address.getLongitude()); existingAddress.setDateCreated(address.getDateCreated()); }