PersonName newName = new PersonName(pn.getPersonNameId()); if (pn.getGivenName() != null) { newName.setGivenName(String.valueOf(pn.getGivenName())); if (pn.getMiddleName() != null) { newName.setMiddleName(String.valueOf(pn.getMiddleName())); if (pn.getFamilyName() != null) { newName.setFamilyName(String.valueOf(pn.getFamilyName())); if (pn.getFamilyName2() != null) { newName.setFamilyName2(String.valueOf(pn.getFamilyName2())); if (pn.getFamilyNamePrefix() != null) { newName.setFamilyNamePrefix(String.valueOf(pn.getFamilyNamePrefix())); if (pn.getFamilyNameSuffix() != null) { newName.setFamilyNameSuffix(String.valueOf(pn.getFamilyNameSuffix())); if (pn.getPrefix() != null) { newName.setPrefix(String.valueOf(pn.getPrefix())); if (pn.getDegree() != null) { newName.setDegree(String.valueOf(pn.getDegree())); if (pn.getVoidReason() != null) { newName.setVoidReason(String.valueOf(pn.getVoidReason())); if (pn.getDateChanged() != null) {
@Test public void getFullName_shouldNotReturnShortIfPersonNameFormatIsLong() { PersonName pn = new PersonName(); PersonName.setFormat(OpenmrsConstants.PERSON_NAME_FORMAT_LONG); pn.setPrefix("Sr."); pn.setGivenName("Taylor"); pn.setMiddleName("Bob"); pn.setFamilyNamePrefix("Wilson"); pn.setFamilyName("Mark"); pn.setFamilyName2("Jones"); pn.setFamilyNameSuffix("jr."); pn.setDegree("3"); Assert.assertEquals(pn.getFullName(), "Sr. Taylor Bob Wilson Mark Jones jr. 3"); }
private PersonName constructTemporaryName(PersonName newName) { PersonName tmpName = PersonName.newInstance(newName); tmpName.setPersonNameId(null); tmpName.setVoided(false); tmpName.setVoidedBy(null); tmpName.setVoidReason(null); // we don't want to change the preferred name of the preferred patient tmpName.setPreferred(false); tmpName.setUuid(UUID.randomUUID().toString()); return tmpName; }
/** * @see org.openmrs.api.handler.SaveHandler#handle(org.openmrs.OpenmrsObject, org.openmrs.User, * java.util.Date, java.lang.String) */ @Override public void handle(PersonName personName, User creator, Date dateCreated, String other) { if (personName.getGivenName() != null) { personName.setGivenName(personName.getGivenName().trim()); } if (personName.getMiddleName() != null) { personName.setMiddleName(personName.getMiddleName().trim()); } if (personName.getFamilyName() != null) { personName.setFamilyName(personName.getFamilyName().trim()); } if (personName.getFamilyName2() != null) { personName.setFamilyName2(personName.getFamilyName2().trim()); } }
private void setPreferredPersonName(Person person) { PersonName preferredName = null; PersonName possiblePreferredName = person.getPersonName(); if (possiblePreferredName != null && possiblePreferredName.getPreferred() && !possiblePreferredName.getVoided()) { preferredName = possiblePreferredName; } for (PersonName name : person.getNames()) { if (preferredName == null && !name.getVoided()) { name.setPreferred(true); preferredName = name; continue; } if (!name.equals(preferredName)) { name.setPreferred(false); } } }
PersonName pn = new PersonName(personNameId); pn.setPreferred(preferred); pn.setPrefix(prefix); pn.setPerson(person); pn.setGivenName(givenName); pn.setMiddleName(middleName); pn.setFamilyNamePrefix(familyNamePrefix); pn.setFamilyName(familyName); pn.setFamilyName2(familyName2); pn.setFamilyNameSuffix(familyNameSuffix); pn.setDegree(degree); pn.setVoided(voided); pn.setVoidedBy(voidedBy); pn.setVoidReason(voidReason); PersonName copy = PersonName.newInstance(pn); Assert.assertEquals(personNameId, copy.getPersonNameId()); Assert.assertEquals(preferred, copy.getPreferred()); Assert.assertEquals(prefix, copy.getPrefix()); Assert.assertEquals(person, copy.getPerson()); Assert.assertEquals(givenName, copy.getGivenName()); Assert.assertEquals(middleName, copy.getMiddleName()); Assert.assertEquals(familyNamePrefix, copy.getFamilyNamePrefix()); Assert.assertEquals(familyName, copy.getFamilyName()); Assert.assertEquals(familyName2, copy.getFamilyName2()); Assert.assertEquals(familyNameSuffix, copy.getFamilyNameSuffix()); Assert.assertEquals(degree, copy.getDegree()); Assert.assertEquals(voided, copy.getVoided());
/** * Compares this PersonName object to the given otherName. This method differs from * {@link #equals(Object)} in that this method compares the inner fields of each name for * equality. Note: Null/empty fields on <code>otherName</code> /will not/ cause a false value to * be returned * * @param otherName PersonName with which to compare * @return boolean true/false whether or not they are the same names * @should return true if given middle and family name are equal */ public boolean equalsContent(PersonName otherName) { return new EqualsBuilder().append(defaultString(otherName.getPrefix()), defaultString(prefix)).append( defaultString(otherName.getGivenName()), defaultString(givenName)).append( defaultString(otherName.getMiddleName()), defaultString(middleName)).append( defaultString(otherName.getFamilyNamePrefix()), defaultString(familyNamePrefix)).append( defaultString(otherName.getDegree()), defaultString(degree)).append(defaultString(otherName.getFamilyName()), defaultString(familyName)).append(defaultString(otherName.getFamilyName2()), defaultString(familyName2)).append( defaultString(otherName.getFamilyNameSuffix()), defaultString(familyNameSuffix)).isEquals(); }
private static void copyNameFields(PersonName existingName, PersonName personName) { existingName.setPreferred(personName.getPreferred()); existingName.setPrefix(personName.getPrefix()); existingName.setGivenName(personName.getGivenName()); existingName.setMiddleName(personName.getMiddleName()); existingName.setFamilyNamePrefix(personName.getFamilyNamePrefix()); existingName.setFamilyName(personName.getFamilyName()); existingName.setFamilyName2(personName.getFamilyName2()); existingName.setFamilyNameSuffix(personName.getFamilyNameSuffix()); existingName.setDegree(personName.getDegree()); }
PersonName pn = new PersonName(1); pn.setPrefix("Count"); pn.setGivenName("Adam"); pn.setMiddleName("Alex"); pn.setFamilyNamePrefix("family prefix"); pn.setFamilyName("Jones"); pn.setFamilyName2("Howard"); pn.setFamilyNameSuffix("Jr."); pn.setDegree("Dr."); pn.setPreferred(true); pn.setPerson(new Person(999)); PersonName other = new PersonName(2); other.setPrefix("Count"); other.setGivenName("Adam"); other.setMiddleName("Alex"); other.setFamilyNamePrefix("family prefix"); other.setFamilyName("Jones"); other.setFamilyName2("Howard"); other.setFamilyNameSuffix("Jr."); other.setDegree("Dr."); other.setPreferred(false); other.setPerson(new Person(111)); assertThat(pn.equalsContent(other), is(true));
/** * @see PersonNameValidator#validate(Object,Errors) */ @Test public void validate_shouldFailValidationIfFieldLengthsAreNotCorrect() { personName.setPrefix(STRING_OF_51); personName.setGivenName(STRING_OF_51); personName.setMiddleName(STRING_OF_51); personName.setFamilyName(STRING_OF_51); personName.setFamilyNamePrefix(STRING_OF_51); personName.setFamilyName(STRING_OF_51); personName.setFamilyName2(STRING_OF_51); personName.setFamilyNameSuffix(STRING_OF_51); personName.setDegree(STRING_OF_51); personName.setVoidReason(STRING_OF_256); validator.validate(personName, errors); Stream.of("prefix", "givenName", "familyNamePrefix", "familyName", "familyName2", "familyNameSuffix", "degree", "middleName", "voidReason") .forEach(f -> assertThat(errors, hasFieldErrors(f, "error.exceededMaxLengthOfField"))); }
@Override public int compare(PersonName pn1, PersonName pn2) { int ret = pn1.getVoided().compareTo(pn2.getVoided()); if (ret == 0) { ret = pn2.getPreferred().compareTo(pn1.getPreferred()); ret = OpenmrsUtil.compareWithNullAsGreatest(pn1.getFamilyName(), pn2.getFamilyName()); ret = OpenmrsUtil.compareWithNullAsGreatest(pn1.getFamilyName2(), pn2.getFamilyName2()); ret = OpenmrsUtil.compareWithNullAsGreatest(pn1.getGivenName(), pn2.getGivenName()); ret = OpenmrsUtil.compareWithNullAsGreatest(pn1.getMiddleName(), pn2.getMiddleName()); ret = OpenmrsUtil.compareWithNullAsGreatest(pn1.getFamilyNamePrefix(), pn2.getFamilyNamePrefix()); ret = OpenmrsUtil.compareWithNullAsGreatest(pn1.getFamilyNameSuffix(), pn2.getFamilyNameSuffix()); if (ret == 0 && pn1.getDateCreated() != null) { ret = OpenmrsUtil.compareWithNullAsLatest(pn1.getDateCreated(), pn2.getDateCreated()); if (ret == 0 && !pn1.equalsContent(pn2)) { ret = 1;
if (StringUtils.isBlank(personName.getGivenName()) || StringUtils.isBlank(personName.getGivenName().replaceAll("\"", ""))) { errors.rejectValue(getFieldKey("givenName", arrayInd, testInd), "Patient.names.required.given.family"); OpenmrsConstants.GLOBAL_PROPERTY_PATIENT_NAME_REGEX); if (StringUtils.isNotBlank(namePattern)) { if (StringUtils.isNotBlank(personName.getGivenName()) && !personName.getGivenName().matches(namePattern)) { errors.rejectValue(getFieldKey("givenName", arrayInd, testInd), "GivenName.invalid"); if (StringUtils.isNotBlank(personName.getMiddleName()) && !personName.getMiddleName().matches(namePattern)) { errors.rejectValue(getFieldKey("middleName", arrayInd, testInd), "MiddleName.invalid"); if (StringUtils.isNotBlank(personName.getFamilyName()) && !personName.getFamilyName().matches(namePattern)) { errors.rejectValue(getFieldKey("familyName", arrayInd, testInd), "FamilyName.invalid"); if (StringUtils.isNotBlank(personName.getFamilyName2()) && !personName.getFamilyName2().matches(namePattern)) { errors.rejectValue(getFieldKey("familyName2", arrayInd, testInd), "FamilyName2.invalid");
/** * @see PersonName#getFullName() */ @Test public void getFullName_shouldNotPutSpacesAroundAnEmptyMiddleName() { PersonName pn = new PersonName(); pn.setGivenName("Bob"); pn.setMiddleName(""); pn.setFamilyName("Jones"); Assert.assertEquals("Bob Jones", pn.getFullName()); }
PersonName pa1 = new PersonName(); pa1.setGivenName("firsttest"); pa1.setFamilyName("firsttest2"); pa1.setDateCreated(new Date()); pa1.setVoided(false); p.addName(pa1); PersonName pa2 = new PersonName(); pa2.setGivenName("secondtest"); pa2.setFamilyName("secondtest2"); pa2.setVoided(false); PersonName pa3 = new PersonName(); pa3.setGivenName(pa1.getGivenName()); pa3.setFamilyName(pa1.getFamilyName()); pa3.setDateCreated(pa1.getDateCreated()); pa3.setVoided(false); PersonName pa4 = new PersonName(); pa4.setGivenName(pa1.getGivenName() + "string to change the .equals method"); pa4.setFamilyName(pa1.getFamilyName()); pa4.setDateCreated(pa1.getDateCreated()); pa4.setVoided(false); pa4.setVoided(true); p.addName(pa4); pa3.setDateCreated(new Date(pa1.getDateCreated().getTime() + 1)); p.addName(pa3);
private void updateName(PersonName fromName, PersonName toName) { toName.setGivenName(fromName.getGivenName()); toName.setMiddleName(fromName.getMiddleName()); toName.setFamilyName(fromName.getFamilyName()); }
PersonName name2 = person2.getPersonName(); int ret = OpenmrsUtil.compareWithNullAsGreatest(name1.getFamilyName() != null ? name1.getFamilyName().toLowerCase() : null, name2.getFamilyName() != null ? name2.getFamilyName().toLowerCase() : null); ret = OpenmrsUtil.compareWithNullAsGreatest(name1.getFamilyName2() != null ? name1.getFamilyName().toLowerCase() : null, name2.getFamilyName2() != null ? name2.getFamilyName2().toLowerCase() : null); ret = OpenmrsUtil.compareWithNullAsGreatest(name1.getGivenName() != null ? name1.getGivenName().toLowerCase() : null, name2.getGivenName() != null ? name2.getGivenName().toLowerCase() : null); ret = OpenmrsUtil.compareWithNullAsGreatest(name1.getMiddleName() != null ? name1.getMiddleName().toLowerCase() : null, name2.getMiddleName() != null ? name2.getMiddleName().toLowerCase() : null); ret = OpenmrsUtil.compareWithNullAsGreatest(name1.getFamilyNamePrefix() != null ? name1.getFamilyNamePrefix() .toLowerCase() : null, name2.getFamilyNamePrefix() != null ? name2.getFamilyNamePrefix().toLowerCase() : null); ret = OpenmrsUtil.compareWithNullAsGreatest(name1.getFamilyNameSuffix() != null ? name1.getFamilyNameSuffix() .toLowerCase() : null, name2.getFamilyNameSuffix() != null ? name2.getFamilyNameSuffix().toLowerCase() : null);
/** * @see PersonNameValidator#validatePersonName(PersonName,Errors,null,null) */ @Test public void validatePersonName_shouldNotValidateAgainstRegexForBlankNames() { personName.setGivenName("given"); personName.setFamilyName("family"); personName.setMiddleName(""); personName.setFamilyName2(""); validator.validatePersonName(personName, errors, false, true); Assert.assertFalse(errors.hasErrors()); }
/** * @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()); }
/** * @see PatientNameValidator#validatePersonName(java.lang.Object, org.springframework.validation.Errors, boolean, boolean) */ @Test public void validate_shouldPassValidationIfPersonNameGivenNameIsExactlyMaxLength() { personName.setGivenName(STRING_OF_50); validator.validatePersonName(personName, errors, false, true); assertThat(errors, not(hasFieldErrors("givenName"))); }
private Person newPerson(String name) { Person person = new Person(); Set<PersonName> personNames = new TreeSet<>(); PersonName personName = new PersonName(); personName.setFamilyName(name); personNames.add(personName); person.setNames(personNames); return person; } }