Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AC-480 Patient model should extend Person #586

Merged
merged 1 commit into from Jun 6, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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
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
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
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
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