Skip to content

Commit

Permalink
AC:480 Patient model should extend Person (#586)
Browse files Browse the repository at this point in the history
  • Loading branch information
its-snorlax authored and f4ww4z committed Jun 6, 2019
1 parent d23c576 commit b45b731
Show file tree
Hide file tree
Showing 28 changed files with 418 additions and 402 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,14 @@ public void onBindViewHolder(@NonNull VisitViewHolder visitViewHolder, final int
final String display = "#" + patient.getIdentifier().getIdentifier();
visitViewHolder.mIdentifier.setText(display);
}
if (null != patient.getPerson().getName()) {
visitViewHolder.mDisplayName.setText(patient.getPerson().getName().getNameString());
if (null != patient.getName()) {
visitViewHolder.mDisplayName.setText(patient.getName().getNameString());
}
if (null != patient.getPerson().getGender()) {
visitViewHolder.mGender.setText(patient.getPerson().getGender());
if (null != patient.getGender()) {
visitViewHolder.mGender.setText(patient.getGender());
}
try{
visitViewHolder.mBirthDate.setText(DateUtils.convertTime(DateUtils.convertTime(patient.getPerson().getBirthdate())));
visitViewHolder.mBirthDate.setText(DateUtils.convertTime(DateUtils.convertTime(patient.getBirthdate())));
}
catch (Exception e)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import android.app.Activity;
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
Expand Down Expand Up @@ -67,12 +66,10 @@
import org.openmrs.mobile.activities.dialog.CustomFragmentDialog;
import org.openmrs.mobile.activities.patientdashboard.PatientDashboardActivity;
import org.openmrs.mobile.activities.patientdashboard.details.PatientPhotoActivity;
import org.openmrs.mobile.application.OpenMRS;
import org.openmrs.mobile.application.OpenMRSLogger;
import org.openmrs.mobile.bundle.CustomDialogBundle;
import org.openmrs.mobile.listeners.watcher.PatientBirthdateValidatorWatcher;
import org.openmrs.mobile.models.Patient;
import org.openmrs.mobile.models.Person;
import org.openmrs.mobile.models.PersonAddress;
import org.openmrs.mobile.models.PersonName;
import org.openmrs.mobile.utilities.ApplicationConstants;
Expand Down Expand Up @@ -213,8 +210,7 @@ public void scrollToTop() {
}


private Person createPerson() {
Person person = new Person();
private Patient updatePatientWithData(Patient patient) {
String emptyError = getString(R.string.emptyerror);

// Validate address
Expand Down Expand Up @@ -250,7 +246,7 @@ private Person createPerson() {

List<PersonAddress> addresses = new ArrayList<>();
addresses.add(address);
person.setAddresses(addresses);
patient.setAddresses(addresses);

// Validate names
String givenNameEmpty = getString(R.string.fname_empty_error);
Expand Down Expand Up @@ -304,15 +300,15 @@ private Person createPerson() {

List<PersonName> names = new ArrayList<>();
names.add(name);
person.setNames(names);
patient.setNames(names);

// Add gender
String[] genderChoices = {"M", "F"};
int index = gen.indexOfChild(getActivity().findViewById(gen.getCheckedRadioButtonId()));
if (index != -1) {
person.setGender(genderChoices[index]);
patient.setGender(genderChoices[index]);
} else {
person.setGender(null);
patient.setGender(null);
}

// Add birthdate
Expand All @@ -327,7 +323,7 @@ private Person createPerson() {
bdt = now.toDateTimeAtStartOfDay().toDateTime();
bdt = bdt.minusYears(yeardiff);
bdt = bdt.minusMonths(mondiff);
person.setBirthdateEstimated(true);
patient.setBirthdateEstimated(true);
birthdate = dateTimeFormatter.print(bdt);
}
} else {
Expand All @@ -345,24 +341,24 @@ private Person createPerson() {
birthdate = dateTimeFormatter.print(bdt);
}
}
person.setBirthdate(birthdate);
patient.setBirthdate(birthdate);

if (patientPhoto != null)
person.setPhoto(patientPhoto);
patient.setPhoto(patientPhoto);

return person;
return patient;
}


private Patient createPatient() {
final Patient patient = new Patient();
patient.setPerson(createPerson());
Patient patient = new Patient();
updatePatientWithData(patient);
patient.setUuid(" ");
return patient;
}

private Patient updatePatient(Patient patient) {
patient.setPerson(createPerson());
return patient;
return updatePatientWithData(patient);
}

@Override
Expand Down Expand Up @@ -462,42 +458,41 @@ private void resolveViews(View v) {
}

private void fillFields(final Patient patient) {
if (patient != null && patient.getPerson() != null) {
if (patient != null) {
//Change to Update Patient Form
String updatePatientStr = getResources().getString(R.string.action_update_patient_data);
this.getActivity().setTitle(updatePatientStr);

isUpdatePatient = true;
updatedPatient = patient;

Person person = patient.getPerson();
edfname.setText(person.getName().getGivenName());
edmname.setText(person.getName().getMiddleName());
edlname.setText(person.getName().getFamilyName());
edfname.setText(patient.getName().getGivenName());
edmname.setText(patient.getName().getMiddleName());
edlname.setText(patient.getName().getFamilyName());

patientName = person.getName().getNameString();
patientName = patient.getName().getNameString();

if (StringUtils.notNull(person.getBirthdate()) || StringUtils.notEmpty(person.getBirthdate())) {
bdt = DateUtils.convertTimeString(person.getBirthdate());
if (StringUtils.notNull(patient.getBirthdate()) || StringUtils.notEmpty(patient.getBirthdate())) {
bdt = DateUtils.convertTimeString(patient.getBirthdate());
eddob.setText(DateUtils.convertTime(DateUtils.convertTime(bdt.toString(), DateUtils.OPEN_MRS_REQUEST_FORMAT),
DateUtils.DEFAULT_DATE_FORMAT));
}

if (("M").equals(person.getGender())) {
if (("M").equals(patient.getGender())) {
gen.check(R.id.male);
} else if (("F").equals(person.getGender())) {
} else if (("F").equals(patient.getGender())) {
gen.check(R.id.female);
}

edaddr1.setText(person.getAddress().getAddress1());
edaddr2.setText(person.getAddress().getAddress2());
edcity.setText(person.getAddress().getCityVillage());
edstate.setText(person.getAddress().getStateProvince());
edpostal.setText(person.getAddress().getPostalCode());
edaddr1.setText(patient.getAddress().getAddress1());
edaddr2.setText(patient.getAddress().getAddress2());
edcity.setText(patient.getAddress().getCityVillage());
edstate.setText(patient.getAddress().getStateProvince());
edpostal.setText(patient.getAddress().getPostalCode());

if (patient.getPerson().getPhoto() != null) {
patientPhoto = patient.getPerson().getPhoto();
resizedPatientPhoto = patient.getPerson().getResizedPhoto();
if (patient.getPhoto() != null) {
patientPhoto = patient.getPhoto();
resizedPatientPhoto = patient.getResizedPhoto();
patientImageView.setImageBitmap(resizedPatientPhoto);
}
}
Expand Down Expand Up @@ -738,7 +733,6 @@ private Bitmap getResizedPortraitImage(String imagePath) {
return ImageUtils.resizePhoto(portraitImg);
}


@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@

package org.openmrs.mobile.activities.addeditpatient;

import androidx.annotation.NonNull;

import org.openmrs.mobile.activities.BasePresenter;
import org.openmrs.mobile.api.RestApi;
import org.openmrs.mobile.api.RestServiceBuilder;
Expand All @@ -34,7 +36,6 @@

import java.util.List;

import androidx.annotation.NonNull;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
Expand Down Expand Up @@ -128,7 +129,7 @@ private boolean validate(Patient patient) {
mPatientInfoView.setErrorsVisibility(givenNameError, familyNameError, dateOfBirthError, genderError, addressError, countryError, countryNull, stateError, cityError, postalError);

// Validate names
PersonName currentPersonName = patient.getPerson().getName();
PersonName currentPersonName = patient.getName();

if (StringUtils.isBlank(currentPersonName.getGivenName())
|| !ViewUtils.validateText(currentPersonName.getGivenName(), ViewUtils.ILLEGAL_CHARACTERS)) {
Expand All @@ -146,13 +147,13 @@ private boolean validate(Patient patient) {
}

// Validate date of birth
if (StringUtils.isBlank(patient.getPerson().getBirthdate())) {
if (StringUtils.isBlank(patient.getBirthdate())) {
dateOfBirthError = true;
}

// Validate address
String patientAddress1 = patient.getPerson().getAddress().getAddress1();
String patientAddress2 = patient.getPerson().getAddress().getAddress2();
String patientAddress1 = patient.getAddress().getAddress1();
String patientAddress2 = patient.getAddress().getAddress2();

if ((StringUtils.isBlank(patientAddress1)
&& StringUtils.isBlank(patientAddress2)
Expand All @@ -161,24 +162,24 @@ private boolean validate(Patient patient) {
addressError = true;
}

if (!StringUtils.isBlank(patient.getPerson().getAddress().getCountry()) && !mCountries.contains(patient.getPerson().getAddress().getCountry())) {
if (!StringUtils.isBlank(patient.getAddress().getCountry()) && !mCountries.contains(patient.getAddress().getCountry())) {
countryError = true;
}

// Validate gender
if (StringUtils.isBlank(patient.getPerson().getGender())) {
if (StringUtils.isBlank(patient.getGender())) {
genderError = true;
}
if (StringUtils.isBlank(patient.getPerson().getAddress().getCountry())) {
if (StringUtils.isBlank(patient.getAddress().getCountry())) {
countryNull = true;
}
if (StringUtils.isBlank(patient.getPerson().getAddress().getStateProvince())) {
if (StringUtils.isBlank(patient.getAddress().getStateProvince())) {
stateError = true;
}
if (StringUtils.isBlank(patient.getPerson().getAddress().getCityVillage())) {
if (StringUtils.isBlank(patient.getAddress().getCityVillage())) {
cityError = true;
}
if (StringUtils.isBlank(patient.getPerson().getAddress().getPostalCode())) {
if (StringUtils.isBlank(patient.getAddress().getPostalCode())) {
postalError = true;
}

Expand Down Expand Up @@ -260,7 +261,7 @@ public void onFailure(@NonNull Call<Results<Module>> call, @NonNull Throwable t)
}

private void fetchSimilarPatientAndCalculateLocally(final Patient patient) {
Call<Results<Patient>> call = restApi.getPatients(patient.getPerson().getName().getGivenName(), ApplicationConstants.API.FULL);
Call<Results<Patient>> call = restApi.getPatients(patient.getName().getGivenName(), ApplicationConstants.API.FULL);
call.enqueue(new Callback<Results<Patient>>() {
@Override
public void onResponse(@NonNull Call<Results<Patient>> call, @NonNull Response<Results<Patient>> response) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,8 @@ private void downloadPatient(Patient patient) {

private void setBirthdate(PatientViewHolder holder, Patient patient) {
try{
holder.mBirthDate.setText(DateUtils.convertTime(DateUtils.convertTime(patient.getPerson().getBirthdate())));
if (Objects.equal(patient.getPerson().getBirthdate(), newPatient.getPerson().getBirthdate())) {
holder.mBirthDate.setText(DateUtils.convertTime(DateUtils.convertTime(patient.getBirthdate())));
if (Objects.equal(patient.getBirthdate(), newPatient.getBirthdate())) {
setStyleForMatchedPatientFields(holder.mBirthDate);
}
}
Expand All @@ -140,56 +140,56 @@ private void setBirthdate(PatientViewHolder holder, Patient patient) {
}

private void setGender(PatientViewHolder holder, Patient patient) {
if (null != patient.getPerson().getGender()) {
holder.mGender.setText(patient.getPerson().getGender());
if (Objects.equal(patient.getPerson().getGender(), newPatient.getPerson().getGender())) {
if (null != patient.getGender()) {
holder.mGender.setText(patient.getGender());
if (Objects.equal(patient.getGender(), newPatient.getGender())) {
setStyleForMatchedPatientFields(holder.mGender); }
}
}

private void setPatientAdres(PatientViewHolder holder, Patient patient) {
if (null != patient.getPerson().getAddress().getAddress1()) {
holder.mAddres.setText(patient.getPerson().getAddress().getAddress1());
if (Objects.equal(patient.getPerson().getAddress().getAddress1(), newPatient.getPerson().getAddress().getAddress1())) {
if (null != patient.getAddress().getAddress1()) {
holder.mAddres.setText(patient.getAddress().getAddress1());
if (Objects.equal(patient.getAddress().getAddress1(), newPatient.getAddress().getAddress1())) {
setStyleForMatchedPatientFields(holder.mAddres);
}
}
if (null != patient.getPerson().getAddress().getPostalCode()) {
holder.mPostalCode.setText(patient.getPerson().getAddress().getPostalCode());
if (Objects.equal(patient.getPerson().getAddress().getPostalCode(), newPatient.getPerson().getAddress().getPostalCode())) {
if (null != patient.getAddress().getPostalCode()) {
holder.mPostalCode.setText(patient.getAddress().getPostalCode());
if (Objects.equal(patient.getAddress().getPostalCode(), newPatient.getAddress().getPostalCode())) {
setStyleForMatchedPatientFields(holder.mPostalCode);
}
}
if (null != patient.getPerson().getAddress().getCityVillage()) {
holder.mCity.setText(patient.getPerson().getAddress().getCityVillage());
if (Objects.equal(patient.getPerson().getAddress().getCityVillage(), newPatient.getPerson().getAddress().getCityVillage())) {
if (null != patient.getAddress().getCityVillage()) {
holder.mCity.setText(patient.getAddress().getCityVillage());
if (Objects.equal(patient.getAddress().getCityVillage(), newPatient.getAddress().getCityVillage())) {
setStyleForMatchedPatientFields(holder.mCity);
}
}
if (null != patient.getPerson().getAddress().getCountry()) {
holder.mCountry.setText(patient.getPerson().getAddress().getCountry());
if (Objects.equal(patient.getPerson().getAddress().getCountry(), newPatient.getPerson().getAddress().getCountry())) {
if (null != patient.getAddress().getCountry()) {
holder.mCountry.setText(patient.getAddress().getCountry());
if (Objects.equal(patient.getAddress().getCountry(), newPatient.getAddress().getCountry())) {
setStyleForMatchedPatientFields(holder.mCountry);
}
}
}

private void setPatientName(PatientViewHolder holder, Patient patient) {
if (null != patient.getPerson().getName().getGivenName()) {
holder.mGivenName.setText(patient.getPerson().getName().getGivenName());
if (Objects.equal(patient.getPerson().getName().getGivenName(), newPatient.getPerson().getName().getGivenName())) {
if (null != patient.getName().getGivenName()) {
holder.mGivenName.setText(patient.getName().getGivenName());
if (Objects.equal(patient.getName().getGivenName(), newPatient.getName().getGivenName())) {
setStyleForMatchedPatientFields(holder.mGivenName);
}
}
if (null != patient.getPerson().getName().getMiddleName()) {
holder.mMiddleName.setText(patient.getPerson().getName().getMiddleName());
if (Objects.equal(patient.getPerson().getName().getMiddleName(), newPatient.getPerson().getName().getMiddleName())) {
if (null != patient.getName().getMiddleName()) {
holder.mMiddleName.setText(patient.getName().getMiddleName());
if (Objects.equal(patient.getName().getMiddleName(), newPatient.getName().getMiddleName())) {
setStyleForMatchedPatientFields(holder.mMiddleName);
}
}
if (null != patient.getPerson().getName().getFamilyName()) {
holder.mFamilyName.setText(patient.getPerson().getName().getFamilyName());
if (Objects.equal(patient.getPerson().getName().getFamilyName(), newPatient.getPerson().getName().getFamilyName())) {
if (null != patient.getName().getFamilyName()) {
holder.mFamilyName.setText(patient.getName().getFamilyName());
if (Objects.equal(patient.getName().getFamilyName(), newPatient.getName().getFamilyName())) {
setStyleForMatchedPatientFields(holder.mFamilyName);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,14 @@ public void onBindViewHolder(@NonNull PatientViewHolder holder, final int positi
final String display = "#" + patient.getIdentifier().getIdentifier();
holder.mIdentifier.setText(display);
}
if (null != patient.getPerson().getName()) {
holder.mDisplayName.setText(patient.getPerson().getName().getNameString());
if (null != patient.getName()) {
holder.mDisplayName.setText(patient.getName().getNameString());
}
if (null != patient.getPerson().getGender()) {
holder.mGender.setText(patient.getPerson().getGender());
if (null != patient.getGender()) {
holder.mGender.setText(patient.getGender());
}

holder.mBirthDate.setText(DateUtils.convertTime(DateUtils.convertTime(patient.getPerson().getBirthdate())));
holder.mBirthDate.setText(DateUtils.convertTime(DateUtils.convertTime(patient.getBirthdate())));
}

@Override
Expand Down
Loading

0 comments on commit b45b731

Please sign in to comment.