TrizRis/src/main/java/com/triz/trizservice/modeles/Patient.java
2026-09-04 10:45:31 +01:00

311 lines
8.9 KiB
Java

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package com.triz.trizservice.modeles;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author FORCE TECH
*/
@Entity
@Table(name = "patient")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Patient.findAll", query = "SELECT p FROM Patient p"),
@NamedQuery(name = "Patient.findByNom", query = "SELECT p FROM Patient p WHERE p.nom = :nom"),
@NamedQuery(name = "Patient.findByPrenom", query = "SELECT p FROM Patient p WHERE p.prenom = :prenom"),
@NamedQuery(name = "Patient.findByDateNaissance", query = "SELECT p FROM Patient p WHERE p.dateNaissance = :dateNaissance"),
@NamedQuery(name = "Patient.findByTelephone", query = "SELECT p FROM Patient p WHERE p.telephone = :telephone"),
@NamedQuery(name = "Patient.findByTelephoneRelative", query = "SELECT p FROM Patient p WHERE p.telephoneRelative = :telephoneRelative"),
@NamedQuery(name = "Patient.findByEmail", query = "SELECT p FROM Patient p WHERE p.email = :email"),
@NamedQuery(name = "Patient.findBySexe", query = "SELECT p FROM Patient p WHERE p.sexe = :sexe"),
@NamedQuery(name = "Patient.findByNin", query = "SELECT p FROM Patient p WHERE p.nin = :nin"),
@NamedQuery(name = "Patient.findByAdresse", query = "SELECT p FROM Patient p WHERE p.adresse = :adresse"),
@NamedQuery(name = "Patient.findByGroupage", query = "SELECT p FROM Patient p WHERE p.groupage = :groupage"),
@NamedQuery(name = "Patient.findByCreeLe", query = "SELECT p FROM Patient p WHERE p.creeLe = :creeLe")})
public class Patient implements Serializable {
@Size(max = 2147483647)
@Column(name = "nom")
private String nom;
@Size(max = 2147483647)
@Column(name = "prenom")
private String prenom;
@Size(max = 2147483647)
@Column(name = "telephone")
private String telephone;
@Size(max = 2147483647)
@Column(name = "telephone_relative")
private String telephoneRelative;
// @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="Invalid email")//if the field contains email address consider using this annotation to enforce field validation
@Size(max = 2147483647)
@Column(name = "email")
private String email;
@Size(max = 2147483647)
@Column(name = "sexe")
private String sexe;
@Size(max = 2147483647)
@Column(name = "nin")
private String nin;
// @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="Invalid email")//if the field contains email address consider using this annotation to enforce field validation
@Size(max = 2147483647)
@Column(name = "adresse")
private String adresse;
@Size(max = 2147483647)
@Column(name = "groupage")
private String groupage;
@OneToMany(mappedBy = "fkPatient")
private List<Consultation> consultationList;
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@GeneratedValue
@Column(name = "id")
private UUID id;
@Column(name = "date_naissance")
@Temporal(TemporalType.DATE)
private Date dateNaissance;
@Column(name = "cree_le")
@Temporal(TemporalType.DATE)
private Date creeLe;
@OneToMany(mappedBy = "fkPatient")
private List<Rdv> rdvList;
@OneToMany(mappedBy = "fkDossierMedical")
private List<FichierDossier> fichierDossierList;
@JoinColumn(name = "fk_centre", referencedColumnName = "id")
@ManyToOne
private Centre fkCentre;
@OneToMany(mappedBy = "fkPatient")
private List<TypeExamen> typeExamenList;
@OneToMany(mappedBy = "fkPatient")
private List<AlertesMedicales> alertesMedicalesList;
@OneToMany(mappedBy = "fkPatient")
private List<Queue> queueList;
@Column(name = "code_patient", unique = true, length = 10)
private String codePatient;
public Patient() {
}
public Patient(UUID id) {
this.id = id;
}
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
public Date getDateNaissance() {
return dateNaissance;
}
public void setDateNaissance(Date dateNaissance) {
this.dateNaissance = dateNaissance;
}
public String getTelephoneRelative() {
return telephoneRelative;
}
public void setTelephoneRelative(String telephoneRelative) {
this.telephoneRelative = telephoneRelative;
}
public Date getCreeLe() {
return creeLe;
}
public void setCreeLe(Date creeLe) {
this.creeLe = creeLe;
}
@XmlTransient
public List<Rdv> getRdvList() {
return rdvList;
}
public void setRdvList(List<Rdv> rdvList) {
this.rdvList = rdvList;
}
@XmlTransient
public List<FichierDossier> getFichierDossierList() {
return fichierDossierList;
}
public void setFichierDossierList(List<FichierDossier> fichierDossierList) {
this.fichierDossierList = fichierDossierList;
}
public Centre getFkCentre() {
return fkCentre;
}
public void setFkCentre(Centre fkCentre) {
this.fkCentre = fkCentre;
}
@XmlTransient
public List<TypeExamen> getTypeExamenList() {
return typeExamenList;
}
public void setTypeExamenList(List<TypeExamen> typeExamenList) {
this.typeExamenList = typeExamenList;
}
@XmlTransient
public List<AlertesMedicales> getAlertesMedicalesList() {
return alertesMedicalesList;
}
public void setAlertesMedicalesList(List<AlertesMedicales> alertesMedicalesList) {
this.alertesMedicalesList = alertesMedicalesList;
}
@XmlTransient
public List<Queue> getQueueList() {
return queueList;
}
public void setQueueList(List<Queue> queueList) {
this.queueList = queueList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Patient)) {
return false;
}
Patient other = (Patient) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "com.triz.trizservice.modeles.Patient[ id=" + id + " ]";
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getSexe() {
return sexe;
}
public void setSexe(String sexe) {
this.sexe = sexe;
}
public String getNin() {
return nin;
}
public void setNin(String nin) {
this.nin = nin;
}
public String getAdresse() {
return adresse;
}
public void setAdresse(String adresse) {
this.adresse = adresse;
}
public String getGroupage() {
return groupage;
}
public void setGroupage(String groupage) {
this.groupage = groupage;
}
@XmlTransient
public List<Consultation> getConsultationList() {
return consultationList;
}
public void setConsultationList(List<Consultation> consultationList) {
this.consultationList = consultationList;
}
public String getCodePatient() {
return codePatient;
}
public void setCodePatient(String codePatient) {
this.codePatient = codePatient;
}
}