org.patientview.model.Patient.java Source code

Java tutorial

Introduction

Here is the source code for org.patientview.model.Patient.java

Source

/*
 * PatientView
 *
 * Copyright (c) Worth Solutions Limited 2004-2013
 *
 * This file is part of PatientView.
 *
 * PatientView is free software: you can redistribute it and/or modify it under the terms of the
 * GNU General Public License as published by the Free Software Foundation, either version 3 of the License,
 * or (at your option) any later version.
 * PatientView is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License along with PatientView in a file
 * titled COPYING. If not, see <http://www.gnu.org/licenses/>.
 *
 * @package PatientView
 * @link http://www.patientview.org
 * @author PatientView <info@patientview.org>
 * @copyright Copyright (c) 2004-2013, Worth Solutions Limited
 * @license http://www.gnu.org/licenses/gpl-3.0.html The GNU General Public License V3.0
 */

package org.patientview.model;

import org.joda.time.DateTime;
import org.joda.time.Years;
import org.patientview.model.enums.NhsNumberType;
import org.patientview.model.generic.DiseaseGroup;
import org.patientview.model.generic.GenericDiagnosis;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Transient;
import java.text.SimpleDateFormat;
import java.util.Date;

@Entity
public class Patient extends BaseModel {

    @Transient
    private static final SimpleDateFormat UK_DATE_FORMAT = new SimpleDateFormat("dd-MM-yyyy");

    @Column(nullable = false)
    private String nhsno;
    @Column
    private String surname;
    @Column
    private String forename;
    @Column
    private Date dateofbirth;
    @Column
    private String sex;
    @Column
    private String address1;
    @Column
    private String address2;
    @Column
    private String address3;
    @Column
    private String address4;
    @Column
    private String postcode;
    @Column
    private String telephone1;
    @Column
    private String telephone2;
    @Column
    private String mobile;
    @Column(nullable = false)
    private String unitcode;
    @Column
    private String diagnosis;
    @Column
    private Date diagnosisDate;
    @Column
    private String treatment;
    @Column
    private String transplantstatus;
    @Column
    private String hospitalnumber;
    @Column
    private String gpname;
    @Column
    private String gpaddress1;
    @Column
    private String gpaddress2;
    @Column
    private String gpaddress3;
    @Column
    private String gppostcode;
    @Column
    private String gptelephone;
    @Column
    private String gpemail;
    @Column
    private Date bmdexam;
    @Column
    private String bloodgroup;

    @Column(nullable = true, columnDefinition = "TEXT")
    // Note: this is used at the moment for IBD only.  The patient details view shows a separate "Other Conditions"
    // which is pulling in through DiagnosisManager.getOtherDiagnoses()
    private String otherConditions;

    private static final Logger LOGGER = LoggerFactory.getLogger(Patient.class);

    @Column
    private Long radarNo;

    @Column
    private String rrNo;

    @Column
    private Date dateReg;

    @Column
    private String nhsNoType;

    @Column
    private String uktNo;

    @Column
    private String surnameAlias;

    @Column(nullable = true)
    private Integer age;

    @Column
    private String ethnicGp;

    @Column
    private String postcodeOld;

    @Column
    private Boolean consent;

    @Column
    private Date dateBapnReg;

    @Column
    private String consNeph;

    @Column
    private Long status;

    @Column
    private String emailAddress;

    @Column(nullable = true)
    private Integer rrtModality;

    @Column
    private String otherClinicianAndContactInfo;

    @Column
    private String comments;

    @Column
    private String republicOfIrelandId;

    @Column
    private String isleOfManId;

    @Column
    private String channelIslandsId;

    @Column
    private String indiaId;

    @Column
    private Boolean generic;

    @Column
    private String genericDiagnosis;

    @Column
    private Date dateOfGenericDiagnosis;

    @Column(nullable = true)
    private Long radarConsentConfirmedByUserId;

    @Column
    private Date mostRecentTestResultDateRangeStopDate;

    @Column
    private String sourceType;

    @Column(nullable = true)
    private Long patientLinkId;

    @Transient
    private String patientLinkUnitCode;

    @Transient
    private Clinician clinician;

    @Transient
    private Centre renalUnit;

    @Transient
    private GenericDiagnosis genericDiagnosisModel;

    @Transient
    private Sex sexModel;

    @Transient
    private Centre renalUnitAuthorised;

    @Transient
    private Ethnicity ethnicity;

    @Transient
    private NhsNumberType nhsNumberType;

    @Transient
    private DiseaseGroup diseaseGroup;

    @Transient
    private RRTModality rrtModalityEunm;

    @Transient
    private Status statusModel;

    @Transient
    private Boolean diagnosisDateSelect;

    @Transient
    private boolean linked;

    public enum RRTModality {
        HD(1), PD(2), Tx(3), NONE(-1);

        private int id;

        RRTModality(int id) {
            this.id = id;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }
    }

    public Patient() {
    }

    public Patient(String nhsno, String unitCode) {
        this.nhsno = nhsno;
        this.unitcode = unitCode;
    }

    public String getAddress1() {
        return address1;
    }

    public void setAddress1(String address1) {
        this.address1 = address1;
    }

    public String getAddress2() {
        return address2;
    }

    public void setAddress2(String address2) {
        this.address2 = address2;
    }

    public String getAddress3() {
        return address3;
    }

    public void setAddress3(String address3) {
        this.address3 = address3;
    }

    public String getAddress4() {
        return address4;
    }

    public void setAddress4(String address4) {
        this.address4 = address4;
    }

    public String getUnitcode() {
        return unitcode;
    }

    public void setUnitcode(String unitCode) {
        this.unitcode = (unitCode != null) ? unitCode.toUpperCase() : unitCode;
    }

    public Date getDateofbirth() {
        return dateofbirth;
    }

    public String getFormatedDateOfBirth() {

        if (dateofbirth != null) {
            return UK_DATE_FORMAT.format(dateofbirth);
        } else {
            return null;
        }

    }

    public String getDateOfBirthStr() {

        return dateofbirth != null ? UK_DATE_FORMAT.format(dateofbirth) : null;
    }

    public void setDateofbirth(Date dateofbirth) {
        this.dateofbirth = dateofbirth;
    }

    public String getForename() {
        return forename;
    }

    public void setForename(String forename) {
        this.forename = forename;
    }

    public String getNhsno() {
        return nhsno;
    }

    public void setNhsno(String nhsno) {
        this.nhsno = nhsno;
    }

    public String getPostcode() {
        return postcode;
    }

    public void setPostcode(String postcode) {
        this.postcode = postcode;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public String getTelephone1() {
        return telephone1;
    }

    public void setTelephone1(String telephone1) {
        this.telephone1 = telephone1;
    }

    public String getTelephone2() {
        return telephone2;
    }

    public void setTelephone2(String telephone2) {
        this.telephone2 = telephone2;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getDiagnosis() {
        return diagnosis;
    }

    public void setDiagnosis(String diagnosis) {
        this.diagnosis = diagnosis;
    }

    public Date getDiagnosisDate() {
        return diagnosisDate;
    }

    public void setDiagnosisDate(Date diagnosisDate) {
        this.diagnosisDate = diagnosisDate;
    }

    public String getTreatment() {
        return treatment;
    }

    public void setTreatment(String treatment) {
        this.treatment = treatment;
    }

    public String getHospitalnumber() {
        return hospitalnumber;
    }

    public void setHospitalnumber(String hospitalnumber) {
        this.hospitalnumber = hospitalnumber;
    }

    public String getTransplantstatus() {
        return transplantstatus;
    }

    public void setTransplantstatus(String transplantstatus) {
        this.transplantstatus = transplantstatus;
    }

    public String getGpaddress1() {
        return gpaddress1;
    }

    public void setGpaddress1(String gpaddress1) {
        this.gpaddress1 = gpaddress1;
    }

    public String getGpaddress2() {
        return gpaddress2;
    }

    public void setGpaddress2(String gpaddress2) {
        this.gpaddress2 = gpaddress2;
    }

    public String getGpaddress3() {
        return gpaddress3;
    }

    public void setGpaddress3(String gpaddress3) {
        this.gpaddress3 = gpaddress3;
    }

    public String getGpname() {
        return gpname;
    }

    public void setGpname(String gpname) {
        this.gpname = gpname;
    }

    public String getGppostcode() {
        return gppostcode;
    }

    public void setGppostcode(String gppostcode) {
        this.gppostcode = gppostcode;
    }

    public String getGptelephone() {
        return gptelephone;
    }

    public void setGptelephone(String gptelephone) {
        this.gptelephone = gptelephone;
    }

    public String getGpemail() {
        return gpemail;
    }

    public void setGpemail(String gpemail) {
        this.gpemail = gpemail;
    }

    public String getOtherConditions() {
        return otherConditions;
    }

    public void setOtherConditions(String otherConditions) {
        this.otherConditions = otherConditions;
    }

    public Date getBmdexam() {
        return bmdexam;
    }

    public void setBmdexam(Date bmdexam) {
        this.bmdexam = bmdexam;
    }

    public String getBloodgroup() {
        return bloodgroup;
    }

    public void setBloodgroup(String bloodgroup) {
        this.bloodgroup = bloodgroup;
    }

    public Integer getAge() {
        // Return the difference between now and the date of birth
        if (dateofbirth != null) {
            return Years.yearsBetween(new DateTime(dateofbirth), new DateTime(new Date())).getYears();
        }
        return null;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Boolean isConsent() {
        return consent;
    }

    public void setConsent(Boolean consent) {
        this.consent = consent;
    }

    public Long getStatus() {
        return status;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public String getEmailAddress() {
        return emailAddress;
    }

    public void setEmailAddress(String emailAddress) {
        this.emailAddress = emailAddress;
    }

    public String getOtherClinicianAndContactInfo() {
        return otherClinicianAndContactInfo;
    }

    public void setOtherClinicianAndContactInfo(String otherClinicianAndContactInfo) {
        this.otherClinicianAndContactInfo = otherClinicianAndContactInfo;
    }

    public String getComments() {
        return comments;
    }

    public void setComments(String comments) {
        this.comments = comments;
    }

    public String getRepublicOfIrelandId() {
        return republicOfIrelandId;
    }

    public void setRepublicOfIrelandId(String republicOfIrelandId) {
        this.republicOfIrelandId = republicOfIrelandId;
    }

    public String getIsleOfManId() {
        return isleOfManId;
    }

    public void setIsleOfManId(String isleOfManId) {
        this.isleOfManId = isleOfManId;
    }

    public String getChannelIslandsId() {
        return channelIslandsId;
    }

    public void setChannelIslandsId(String channelIslandsId) {
        this.channelIslandsId = channelIslandsId;
    }

    public String getIndiaId() {
        return indiaId;
    }

    public void setIndiaId(String indiaId) {
        this.indiaId = indiaId;
    }

    public Boolean isGeneric() {
        return generic;
    }

    public void setGeneric(Boolean generic) {
        this.generic = generic;
    }

    public String getGenericDiagnosis() {
        return genericDiagnosis;
    }

    public void setGenericDiagnosis(String genericDiagnosis) {
        this.genericDiagnosis = genericDiagnosis;
    }

    public Date getDateOfGenericDiagnosis() {
        return dateOfGenericDiagnosis;
    }

    public void setDateOfGenericDiagnosis(Date dateOfGenericDiagnosis) {
        this.dateOfGenericDiagnosis = dateOfGenericDiagnosis;
    }

    public Clinician getClinician() {
        return clinician;
    }

    public void setClinician(Clinician clinician) {
        this.clinician = clinician;
    }

    public Centre getRenalUnit() {
        return renalUnit;
    }

    public void setRenalUnit(Centre renalUnit) {
        this.renalUnit = renalUnit;
    }

    public GenericDiagnosis getGenericDiagnosisModel() {
        return genericDiagnosisModel;
    }

    public void setGenericDiagnosisModel(GenericDiagnosis genericDiagnosisModel) {
        this.genericDiagnosisModel = genericDiagnosisModel;
    }

    public Sex getSexModel() {
        return sexModel;
    }

    public void setSexModel(Sex sexModel) {
        this.sexModel = sexModel;
    }

    public Centre getRenalUnitAuthorised() {
        return renalUnitAuthorised;
    }

    public void setRenalUnitAuthorised(Centre renalUnitAuthorised) {
        this.renalUnitAuthorised = renalUnitAuthorised;
    }

    public Ethnicity getEthnicity() {
        return ethnicity;
    }

    public void setEthnicity(Ethnicity ethnicity) {
        this.ethnicity = ethnicity;
    }

    public Long getRadarNo() {
        return radarNo;
    }

    public void setRadarNo(Long radarNo) {
        this.radarNo = radarNo;
    }

    public String getRrNo() {
        return rrNo;
    }

    public void setRrNo(String rrNo) {
        this.rrNo = rrNo;
    }

    public Date getDateReg() {
        return dateReg;
    }

    public void setDateReg(Date dateReg) {
        this.dateReg = dateReg;
    }

    public String getNhsNoType() {
        return nhsNoType;
    }

    public void setNhsNoType(String nhsNoType) {
        this.nhsNoType = nhsNoType;
    }

    public String getUktNo() {
        return uktNo;
    }

    public void setUktNo(String uktNo) {
        this.uktNo = uktNo;
    }

    public String getSurnameAlias() {
        return surnameAlias;
    }

    public void setSurnameAlias(String snameAlias) {
        this.surnameAlias = snameAlias;
    }

    public String getEthnicGp() {
        return ethnicGp;
    }

    public void setEthnicGp(String ethnicGp) {
        this.ethnicGp = ethnicGp;
    }

    public String getPostcodeOld() {
        return postcodeOld;
    }

    public void setPostcodeOld(String postcodeOld) {
        this.postcodeOld = postcodeOld;
    }

    public Date getDateBapnReg() {
        return dateBapnReg;
    }

    public void setDateBapnReg(Date dateBapnReg) {
        this.dateBapnReg = dateBapnReg;
    }

    public String getConsNeph() {
        return consNeph;
    }

    public void setConsNeph(String consNeph) {
        this.consNeph = consNeph;
    }

    public NhsNumberType getNhsNumberType() {
        return nhsNumberType;
    }

    public void setNhsNumberType(NhsNumberType nhsNumberType) {
        this.nhsNumberType = nhsNumberType;
    }

    public DiseaseGroup getDiseaseGroup() {
        return diseaseGroup;
    }

    public void setDiseaseGroup(DiseaseGroup diseaseGroup) {
        this.diseaseGroup = diseaseGroup;
    }

    public Status getStatusModel() {
        return statusModel;
    }

    public void setStatusModel(Status statusModel) {
        this.statusModel = statusModel;
    }

    public Integer getRrtModality() {
        return rrtModality;
    }

    public void setRrtModality(Integer rrtModality) {
        this.rrtModality = rrtModality;
    }

    public RRTModality getRrtModalityEunm() {
        return rrtModalityEunm;
    }

    public void setRrtModalityEunm(RRTModality rrtModalityEunm) {
        this.rrtModalityEunm = rrtModalityEunm;
    }

    public Date getDob() {
        return getDateofbirth();
    }

    public void setDob(Date dob) {
        setDateofbirth(dob);
    }

    public Boolean getDiagnosisDateSelect() {
        return diagnosisDateSelect;
    }

    public void setDiagnosisDateSelect(Boolean diagnosisDateSelect) {
        this.diagnosisDateSelect = diagnosisDateSelect;
    }

    public Long getRadarConsentConfirmedByUserId() {
        return radarConsentConfirmedByUserId;
    }

    public void setRadarConsentConfirmedByUserId(Long radarConsentConfirmedByUserId) {
        this.radarConsentConfirmedByUserId = radarConsentConfirmedByUserId;
    }

    public Date getMostRecentTestResultDateRangeStopDate() {
        return mostRecentTestResultDateRangeStopDate;
    }

    public void setMostRecentTestResultDateRangeStopDate(Date mostRecentTestResultDateRangeStopDate) {
        this.mostRecentTestResultDateRangeStopDate = mostRecentTestResultDateRangeStopDate;
    }

    public String getSourceType() {
        return sourceType;
    }

    public void setSourceType(String sourceType) {
        this.sourceType = sourceType;
    }

    public Long getPatientLinkId() {
        return patientLinkId;
    }

    public void setPatientLinkId(Long patientLinkId) {
        this.patientLinkId = patientLinkId;
    }

    public boolean isLinked() {
        return patientLinkId != null && patientLinkId > 0;
    }

    public String getPatientLinkUnitCode() {
        return patientLinkUnitCode;
    }

    public void setPatientLinkUnitCode(String patientLinkUnitCode) {
        this.patientLinkUnitCode = patientLinkUnitCode;
    }

}