Patient patient = new Patient(); pName.setMiddleName("E."); pName.setFamilyName("Patient"); patient.addName(pName); pAddress.setCityVillage("Anywhere city"); pAddress.setCountry("Some Country"); Set<PersonAddress> pAddressList = patient.getAddresses(); pAddressList.add(pAddress); patient.setAddresses(pAddressList); patient.addAddress(pAddress); patient.setBirthdate(new Date()); patient.setBirthdateEstimated(true); patient.setDeathDate(new Date()); patient.setCauseOfDeath(new Concept()); patient.setGender("male"); patient.setDeathdateEstimated(true);
for (PersonAddress newAddress : notPreferred.getAddresses()) { boolean containsAddress = false; for (PersonAddress currentAddress : preferred.getAddresses()) { containsAddress = currentAddress.equalsContent(newAddress); if (containsAddress) { tmpAddress.setPreferred(false); // addresses from non-preferred patient shouldn't be marked as preferred tmpAddress.setUuid(UUID.randomUUID().toString()); preferred.addAddress(tmpAddress); mergedData.addCreatedAddress(tmpAddress.getUuid()); log.debug("Merging address " + newAddress.getPersonAddressId() + " to " + preferred.getPatientId()); for (PersonAttribute attr : notPreferred.getAttributes()) { if (!attr.getVoided()) { PersonAttribute tmpAttr = attr.copy(); tmpAttr.setPerson(null); tmpAttr.setUuid(UUID.randomUUID().toString()); preferred.addAttribute(tmpAttr); mergedData.addCreatedAttribute(tmpAttr.getUuid()); mergedData.setPriorGender(preferred.getGender()); if (!"M".equals(preferred.getGender()) && !"F".equals(preferred.getGender())) { preferred.setGender(notPreferred.getGender()); mergedData.setPriorDateOfBirth(preferred.getBirthdate()); mergedData.setPriorDateOfBirthEstimated(preferred.getBirthdateEstimated()); if (preferred.getBirthdate() == null || (preferred.getBirthdateEstimated() && !notPreferred.getBirthdateEstimated())) { preferred.setBirthdate(notPreferred.getBirthdate()); preferred.setBirthdateEstimated(notPreferred.getBirthdateEstimated());
/** * @see org.openmrs.api.PatientService#savePatient(org.openmrs.Patient) */ @Override public Patient savePatient(Patient patient) throws APIException { requireAppropriatePatientModificationPrivilege(patient); if (!patient.getVoided() && patient.getIdentifiers().size() == 1) { patient.getPatientIdentifier().setPreferred(true); } if (!patient.getVoided()) { checkPatientIdentifiers(patient); } setPreferredPatientIdentifier(patient); setPreferredPatientName(patient); setPreferredPatientAddress(patient); return dao.savePatient(patient); }
private void mergeGenderInformation(Patient preferred, Patient notPreferred, PersonMergeLogData mergedData) { // move all other patient info mergedData.setPriorGender(preferred.getGender()); if (!"M".equals(preferred.getGender()) && !"F".equals(preferred.getGender())) { preferred.setGender(notPreferred.getGender()); } }
private Date getPatientBirthdateAdjustedIfEstimated(Patient patient) { Date birthday = patient.getBirthdate(); if (patient.getBirthdateEstimated()) { Calendar cal = Calendar.getInstance(); cal.setTime(birthday); cal.add(Calendar.YEAR, calculateGracePeriodInYears(patient.getAge())); birthday = cal.getTime(); } return birthday; }
private void requireAppropriatePatientModificationPrivilege(Patient patient) { if (patient.getPatientId() == null) { Context.requirePrivilege(PrivilegeConstants.ADD_PATIENTS); } else { Context.requirePrivilege(PrivilegeConstants.EDIT_PATIENTS); } if (patient.getVoided()) { Context.requirePrivilege(PrivilegeConstants.DELETE_PATIENTS); } }
public void validate_shouldPassValidationIfFieldLengthsAreCorrect() { PatientIdentifierType patientIdentifierType = Context.getPatientService().getAllPatientIdentifierTypes(false).get(0); Patient patient = new Patient(); PersonName pName = new PersonName(); pName.setGivenName("Tom"); pName.setMiddleName("E."); pName.setFamilyName("Patient"); patient.addName(pName); patient.setGender("male"); PersonAddress pAddress = new PersonAddress(); pAddress.setAddress1("123 My street"); pAddress.setCityVillage("Anywhere city"); pAddress.setCountry("Some Country"); Set<PersonAddress> pAddressList = patient.getAddresses(); pAddressList.add(pAddress); patient.setAddresses(pAddressList); patient.addAddress(pAddress); PatientIdentifier patientIdentifier1 = new PatientIdentifier(); patientIdentifier1.setLocation(new Location(1)); patientIdentifier1.setDateCreated(new Date()); patientIdentifier1.setIdentifierType(patientIdentifierType); patient.addIdentifier(patientIdentifier1); patient.setVoidReason("voidReason");
webServicePatient.setPreferredName(patient.getGivenName()); webServicePatient.setLastName(patient.getFamilyName()); webServicePatient.setBirthDate(patient.getBirthdate()); webServicePatient.setSex(GenderTypeConverter.valueOfOpenMRS(patient.getGender())); PatientIdentifier patientId = patient.getPatientIdentifier(MotechConstants.PATIENT_IDENTIFIER_MOTECH_ID); if (patientId != null) { webServicePatient.setMotechId(patientId.getIdentifier()); for (PersonName name : patient.getNames()) { if (!name.isPreferred() && name.getGivenName() != null) { webServicePatient.setFirstName(name.getGivenName()); webServicePatient.setAge(patient.getAge()); PersonAttribute phoneNumberAttr = patient.getAttribute(MotechConstants.PERSON_ATTRIBUTE_PHONE_NUMBER); if (phoneNumberAttr != null) { webServicePatient.setPhoneNumber(phoneNumberAttr.getValue()); PersonAttribute contactNumberType = patient.getAttribute(MotechConstants.PERSON_ATTRIBUTE_PHONE_TYPE); if (contactNumberType != null) { webServicePatient.setContactNumberType(ContactNumberType.valueOf(contactNumberType.getValue())); webServicePatient.setEstimateDueDate(pregnancyObservation.getActivePregnancyDueDate(patient.getPatientId()));
/** * @see PatientService#savePatient(Patient) */ @Test public void savePatient_shouldSetThePreferredNameAddressAndIdentifierIfNoneIsSpecified() throws Exception { Patient patient = new Patient(); patient.setGender("M"); PatientIdentifier identifier = new PatientIdentifier("QWERTY", patientService.getPatientIdentifierType(2), locationService.getLocation(1)); patient.addIdentifier(identifier); PersonName name = new PersonName("givenName", "middleName", "familyName"); patient.addName(name); PersonAddress address = new PersonAddress(); address.setAddress1("some address"); patient.addAddress(address); Context.getPatientService().savePatient(patient); Assert.assertTrue(identifier.getPreferred()); Assert.assertTrue(name.getPreferred()); Assert.assertTrue(address.getPreferred()); }
@Override public void testEditedResults(SubmissionResults results) { Date datePartOnly = ymdToDate(dateAsString(date)); results.assertNoErrors(); results.assertPatient(); Assert.assertEquals("Given", results.getPatient().getPersonName().getGivenName()); Assert.assertEquals("Family", results.getPatient().getPersonName().getFamilyName()); Assert.assertEquals("F", results.getPatient().getGender()); Assert.assertEquals(datePartOnly, results.getPatient().getBirthdate()); Assert.assertEquals(false, results.getPatient().getBirthdateEstimated()); Assert.assertEquals("987654-1", results.getPatient().getPatientIdentifier().getIdentifier()); } }.run();
/** * @see CohortService#getCohortsContainingPatient(Patient) */ @Test public void getCohortsContainingPatient_shouldReturnCohortsThatHaveGivenPatient() { executeDataSet(COHORT_XML); Patient patientToAdd = new Patient(7); service.addPatientToCohort(service.getCohort(2), patientToAdd); assertTrue(service.getCohort(2).contains(patientToAdd.getPatientId())); List<Cohort> cohortsWithGivenPatient = service.getCohortsContainingPatientId(patientToAdd.getId()); assertTrue(cohortsWithGivenPatient.contains(service.getCohort(2))); }
@Test public void patientVoided_shouldVoidMemberships() { executeDataSet(COHORT_XML); Cohort cohort = Context.getCohortService().getCohort(2); Patient voidedPatient = new Patient(7); voidedPatient.setVoided(true); voidedPatient.setDateVoided(new Date()); voidedPatient.setVoidedBy(Context.getAuthenticatedUser()); voidedPatient.setVoidReason("Voided as a result of the associated patient getting voided"); CohortMembership newMemberContainingVoidedPatient = new CohortMembership(voidedPatient.getPatientId()); cohort.addMembership(newMemberContainingVoidedPatient); assertTrue(cohort.contains(voidedPatient.getPatientId())); assertEquals(1, service.getCohortsContainingPatientId(voidedPatient.getId()).size()); service.notifyPatientVoided(voidedPatient); assertTrue(newMemberContainingVoidedPatient.getVoided()); assertEquals(newMemberContainingVoidedPatient.getDateVoided(), voidedPatient.getDateVoided()); assertEquals(newMemberContainingVoidedPatient.getVoidedBy(), voidedPatient.getVoidedBy()); assertEquals(newMemberContainingVoidedPatient.getVoidReason(), voidedPatient.getVoidReason()); }
nameErrorWidget = new ErrorWidget(); createWidgets(context, nameWidget, nameErrorWidget, existingPatient != null && existingPatient.getPersonName() != null ? existingPatient.getPersonName() : null); genderWidget.addOption(new Option(msg.getMessage("Patient.gender.male"), "M", false)); genderWidget.addOption(new Option(msg.getMessage("Patient.gender.female"), "F", false)); createWidgets(context, genderWidget, genderErrorWidget, existingPatient != null ? existingPatient.getGender() : null); createWidgets(context, ageWidget, ageErrorWidget, existingPatient != null ? existingPatient.getAge() : null); createWidgets(context, birthDateWidget, birthDateErrorWidget, existingPatient != null ? existingPatient.getBirthdate() : null); createWidgets(context, ageWidget, ageErrorWidget, existingPatient != null ? existingPatient.getAge() : null); createWidgets(context, birthDateWidget, birthDateErrorWidget, existingPatient != null ? existingPatient.getBirthdate() : null); if (existingPatient != null) { if (idType == null) { if (existingPatient.getPatientIdentifier() != null) { initialValue = existingPatient.getPatientIdentifier().getIdentifier(); if (existingPatient.getPatientIdentifier(idType) != null) { initialValue = existingPatient.getPatientIdentifier(idType).getIdentifier(); existingPatient != null && existingPatient.getPatientIdentifier() != null ? existingPatient.getPatientIdentifier() .getIdentifierType().getId() : null); && existingPatient.getPatientIdentifier() != null ? existingPatient.getPatientIdentifier().getLocation() : null; defaultLocation = defaultLocation == null ? context.getDefaultLocation() : defaultLocation;
@Override public void testEditedResults(SubmissionResults results) { @SuppressWarnings("unused") Date datePartOnly = ymdToDate(dateAsString(date)); results.assertNoErrors(); results.assertPatient(); results.getPatient().getPersonName(); Assert.assertEquals("Mike", results.getPatient().getGivenName()); Assert.assertEquals("Den", results.getPatient().getFamilyName()); Assert.assertEquals("M", results.getPatient().getGender()); results.assertObsCreated(2, 100d); }
String uid = patient.getUuid();
private void mergeIdentifiers(Patient preferred, Patient notPreferred, PersonMergeLogData mergedData) { for (PatientIdentifier pi : notPreferred.getActiveIdentifiers()) { PatientIdentifier tmpIdentifier = new PatientIdentifier(); tmpIdentifier.setIdentifier(pi.getIdentifier()); tmpIdentifier.setPatient(preferred); boolean found = false; for (PatientIdentifier preferredIdentifier : preferred.getIdentifiers()) { if (preferredIdentifier.getIdentifier() != null && preferredIdentifier.getIdentifier().equals(tmpIdentifier.getIdentifier()) preferred.addIdentifier(tmpIdentifier); mergedData.addCreatedIdentifier(tmpIdentifier.getUuid()); log.debug("Merging identifier " + tmpIdentifier.getIdentifier() + " to " + preferred.getPatientId());
@Test public void savePatient_shouldUpdateAnExistingPatient() throws Exception { Patient patient = patientService.getPatient(2); // just some sanity checks assertNotNull("There should be a patient with patient_id of 2", patient); assertTrue("The patient should be listed as male", patient.getGender().equals("M")); patient.setGender("F"); patientService.savePatient(patient); Patient patient2 = patientService.getPatient(patient.getPatientId()); assertTrue("The updated patient and the orig patient should still be equal", patient.equals(patient2)); assertTrue("The gender should be new", patient2.getGender().equals("F")); }
/** * @since 1.5 * @see org.openmrs.OpenmrsObject#getId() */ @Override public Integer getId() { return getPatientId(); }
Patient p = new Patient(); p.setIdentifiers(null); PatientIdentifier pa1 = new PatientIdentifier(); PatientIdentifier pa2 = new PatientIdentifier(); pa3.setPreferred(false); p.addIdentifier(pa1); p.addIdentifier(pa2); p.addIdentifier(pa3); p.getActiveIdentifiers().size() == 2); assertTrue("Preferred identifier should be first in the list", p.getActiveIdentifiers().get(0) == pa2); assertTrue("Non-preferred identifier should be last in the list", p.getActiveIdentifiers().get(1) == pa1);