diff --git a/1.sources/MyHealth/docroot/profile/ChangeFamilyDoctor.xhtml b/1.sources/MyHealth/docroot/profile/ChangeFamilyDoctor.xhtml index 160536f..45e68bb 100644 --- a/1.sources/MyHealth/docroot/profile/ChangeFamilyDoctor.xhtml +++ b/1.sources/MyHealth/docroot/profile/ChangeFamilyDoctor.xhtml @@ -2,7 +2,7 @@ + xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui"> @@ -14,8 +14,8 @@
- Su perfil de usuario no permite que pueda cambiar su Médico de Familia asignado.
Si cree que no debería estar viendo esta página y que se trata de un - error, por favor, contacte con el soporte de la aplicación para obtener asistencia tecnica. + Su perfil de usuario no permite que pueda cambiar su Médico de Familia asignado.
Si cree que no debería estar viendo esta página y que se trata de un error, por + favor, contacte con el soporte de la aplicación para obtener asistencia tecnica.
@@ -35,25 +35,30 @@
- +
- +
- - - - - - - + + + + + + + + + + + +
- +
diff --git a/1.sources/MyHealth/docroot/profile/ChangePrimaryHealthCareCenter.xhtml b/1.sources/MyHealth/docroot/profile/ChangePrimaryHealthCareCenter.xhtml index 1841a57..861dce5 100644 --- a/1.sources/MyHealth/docroot/profile/ChangePrimaryHealthCareCenter.xhtml +++ b/1.sources/MyHealth/docroot/profile/ChangePrimaryHealthCareCenter.xhtml @@ -35,7 +35,7 @@
- +
@@ -43,13 +43,12 @@
- - - + + - +
diff --git a/1.sources/MyHealth/docroot/profile/RegisterUser.xhtml b/1.sources/MyHealth/docroot/profile/RegisterUser.xhtml index 668e6c0..a4fe8f3 100644 --- a/1.sources/MyHealth/docroot/profile/RegisterUser.xhtml +++ b/1.sources/MyHealth/docroot/profile/RegisterUser.xhtml @@ -2,48 +2,49 @@ + xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui"> - -
-
+ + +
+
- -
+ +
-
- Enhorabuena - - , se ha registrado correctamente, el sistema le ha asignado un - - , por favor recuerdelo ya que deberá utilizarlo para logearse en el sistema. +
+ Enhorabuena + + , se ha registrado correctamente, el sistema le ha asignado un + + , por favor recuerdelo ya que deberá utilizarlo para logearse en el sistema. +
+ +
+ + +
+ +
+ +
+ +
+
+ +
+
-
- - -
+ +
+
+ -
- -
- -
-
- -
-
-
- -
-
-
- - - - + + function handleRequest(xhr, status, args) { if(args.specs) { $('#panCentros').slideUp(); @@ -58,134 +59,142 @@ } } - - -
-
- -
-
- - - - -
-
-
-
-
- -
-
- -
-
- -
-
- -
- -
- -
-
- -
-
- -
- -
- -
-
- -
-
- -
- -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
- -
+ + +
- -
-
- - - - #{phc.name} - #{phc.location} - +
- -
-
- -
-
- -
-
- - - - #{ms.name} - #{ms.description} - -
-
- -
-
- -
-
-
- -
-
- + + + + +
-
+ +
+ +
+
+ +
+
+ +
+
+ +
- - +
+ +
+
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ + +
+ +
+
+ + + + + + + + + +
+
+ +
+
+ + +
+ +
+
+ + + + + + + + + +
+
+ +
+
+ +
+
+
+ + +
+
+ +
+
+
+
+
+ + diff --git a/1.sources/MyHealth/docroot/profile/UpdateProfile.xhtml b/1.sources/MyHealth/docroot/profile/UpdateProfile.xhtml index f91349c..c8a553d 100644 --- a/1.sources/MyHealth/docroot/profile/UpdateProfile.xhtml +++ b/1.sources/MyHealth/docroot/profile/UpdateProfile.xhtml @@ -2,7 +2,7 @@ + xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui"> @@ -27,8 +27,8 @@
- - + +
@@ -84,7 +84,7 @@
-
+
@@ -106,42 +106,72 @@
- +
- +
- - - - #{phc.name} - #{phc.location} - + + + + + + + + +
- +
- - - - #{ms.name} - #{ms.description} - + + + + + + + + +
+ +
+ +
+
+ + + + + + + + + + + + +
+
+ +
+
+
diff --git a/1.sources/MyHealth/src/TO/FamilyDoctorTO.java b/1.sources/MyHealth/src/TO/FamilyDoctorTO.java index 30e00cf..258c3b8 100644 --- a/1.sources/MyHealth/src/TO/FamilyDoctorTO.java +++ b/1.sources/MyHealth/src/TO/FamilyDoctorTO.java @@ -26,13 +26,13 @@ public class FamilyDoctorTO implements Serializable { } public FamilyDoctorTO(Integer id, String nif, String name, String surname, String password, String email, PrimaryHealthCareCenterTO phc) { - this.setId(id); - this.setNif(nif); - this.setName(name); - this.setSurname(surname); - this.setPassword(password); - this.setEmail(email); - this.setPrimaryHealthCareCenter(phc); + this.id = id; + this.nif = nif; + this.name = name; + this.surname = surname; + this.password = password; + this.email =email; + this.primaryHealthCareCenter = phc; } public String getEmail() { @@ -83,7 +83,7 @@ public class FamilyDoctorTO implements Serializable { this.id = id; } - public String getDisplayDescription() { + public String getDisplayName() { return String.format("[%d] %s %s", this.id, this.name, this.surname); } diff --git a/1.sources/MyHealth/src/TO/MedicalSpecialtyTO.java b/1.sources/MyHealth/src/TO/MedicalSpecialtyTO.java index 1780adf..40d43a4 100644 --- a/1.sources/MyHealth/src/TO/MedicalSpecialtyTO.java +++ b/1.sources/MyHealth/src/TO/MedicalSpecialtyTO.java @@ -13,7 +13,7 @@ import javax.xml.bind.annotation.XmlRootElement; public class MedicalSpecialtyTO implements Serializable { private static final long serialVersionUID = 1L; - + private Integer id; private String name; private String description; @@ -21,11 +21,20 @@ public class MedicalSpecialtyTO implements Serializable { super(); } - public MedicalSpecialtyTO(String name, String description) { + public MedicalSpecialtyTO(Integer id, String name, String description) { + this.id = id; this.name = name; this.description = description; } + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + public String getName() { return name; } @@ -42,7 +51,7 @@ public class MedicalSpecialtyTO implements Serializable { this.description = description; } - public String getDisplayDescription() { + public String getDisplayName() { return String.format("[%s] %s", this.name, this.description); } diff --git a/1.sources/MyHealth/src/TO/PatientTO.java b/1.sources/MyHealth/src/TO/PatientTO.java index 69c555b..c31bfda 100644 --- a/1.sources/MyHealth/src/TO/PatientTO.java +++ b/1.sources/MyHealth/src/TO/PatientTO.java @@ -31,13 +31,13 @@ public class PatientTO implements Serializable { } public PatientTO(Integer id, String nif, String name, String surname, String password, String email, FamilyDoctorTO familyDoc) { - this.setId(id); - this.setNif(nif); - this.setName(name); - this.setSurname(surname); - this.setPassword(password); - this.setEmail(email); - this.setFamilyDoctor(familyDoc); + this.id = id; + this.nif = nif; + this.name = name; + this.surname = surname; + this.password = password; + this.email =email; + this.familyDoctor = familyDoc; } public String getEmail() { diff --git a/1.sources/MyHealth/src/TO/PrimaryHealthCareCenterTO.java b/1.sources/MyHealth/src/TO/PrimaryHealthCareCenterTO.java index a4b88fa..5160600 100644 --- a/1.sources/MyHealth/src/TO/PrimaryHealthCareCenterTO.java +++ b/1.sources/MyHealth/src/TO/PrimaryHealthCareCenterTO.java @@ -13,20 +13,28 @@ import javax.xml.bind.annotation.XmlRootElement; public class PrimaryHealthCareCenterTO implements Serializable { private static final long serialVersionUID = 1L; - + private Integer id; private String name; private String location; - public PrimaryHealthCareCenterTO() { super(); } - public PrimaryHealthCareCenterTO(String name, String location) { + public PrimaryHealthCareCenterTO(Integer Id, String name, String location) { + this.id = Id; this.name = name; this.location = location; } + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + public String getName() { return name; } @@ -39,16 +47,16 @@ public class PrimaryHealthCareCenterTO implements Serializable { return location; } - public void setLocation(String description) { - this.location = description; + public void setLocation(String value) { + this.location = value; } - - public String getDisplayDescription() { + + public String getDisplayName() { return String.format("[%s] %s", this.name, this.location); } - + @Override public String toString() { - return String.format("%s[name=%s]", getClass().getSimpleName(), this.getName()); + return String.format("%s[name=%s]", getClass().getSimpleName(), this.getName()); } } diff --git a/1.sources/MyHealth/src/TO/SpecialistDoctorTO.java b/1.sources/MyHealth/src/TO/SpecialistDoctorTO.java index 5397814..bee77c4 100644 --- a/1.sources/MyHealth/src/TO/SpecialistDoctorTO.java +++ b/1.sources/MyHealth/src/TO/SpecialistDoctorTO.java @@ -26,13 +26,13 @@ public class SpecialistDoctorTO implements Serializable { } public SpecialistDoctorTO(Integer id, String nif, String name, String surname, String password, String email, MedicalSpecialtyTO medicalSpec) { - this.setId(id); - this.setNif(nif); - this.setName(name); - this.setSurname(surname); - this.setPassword(password); - this.setEmail(email); - this.setMedicalSpecialty(medicalSpec); + this.id = id; + this.nif = nif; + this.name = name; + this.surname = surname; + this.password = password; + this.email =email; + this.medicalSpecialty = medicalSpec; } public String getEmail() { diff --git a/1.sources/MyHealth/src/common/Constants.java b/1.sources/MyHealth/src/common/Constants.java new file mode 100644 index 0000000..a4ff4c0 --- /dev/null +++ b/1.sources/MyHealth/src/common/Constants.java @@ -0,0 +1,5 @@ +package common; + +public class Constants { + public static final int MAX_ITEMS_AUTOCOMPLETE_SEARCH = 200; +} diff --git a/1.sources/MyHealth/src/common/Utils.java b/1.sources/MyHealth/src/common/Utils.java new file mode 100644 index 0000000..7bb7db7 --- /dev/null +++ b/1.sources/MyHealth/src/common/Utils.java @@ -0,0 +1,11 @@ +package common; + +import java.text.Normalizer; + +public class Utils { + public static String stripAccents(String input){ + return input == null ? null : + Normalizer.normalize(input, Normalizer.Form.NFD) + .replaceAll("\\p{InCombiningDiacriticalMarks}+", ""); + } +} diff --git a/1.sources/MyHealth/src/ejb/common/CommonFacadeBean.java b/1.sources/MyHealth/src/ejb/common/CommonFacadeBean.java index 44fdb1e..67e1e22 100644 --- a/1.sources/MyHealth/src/ejb/common/CommonFacadeBean.java +++ b/1.sources/MyHealth/src/ejb/common/CommonFacadeBean.java @@ -2,17 +2,20 @@ package ejb.common; import java.util.ArrayList; import java.util.Collection; +import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; +import javax.persistence.TypedQuery; import TO.FamilyDoctorTO; import TO.MedicalSpecialtyTO; import TO.PatientTO; import TO.PrimaryHealthCareCenterTO; import TO.SpecialistDoctorTO; +import common.Utils; import jpa.FamilyDoctorJPA; import jpa.MedicalSpecialtyJPA; import jpa.PatientJPA; @@ -28,8 +31,8 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal { /** * Metodo que devuelve todas las especialidades medicas */ - public Collection listAllMedicalSpecialities() { - return this.listPagedMedicalSpecialities(0, 0); + public List listAllMedicalSpecialities() { + return this.listMedicalSpecialitiesPaged(0, 0); } /** @@ -39,54 +42,106 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal { * cada página * */ - public Collection listPagedMedicalSpecialities(int pageNumber, int pageSize) { - Query query = entman.createQuery("from MedicalSpecialtyJPA order by name"); + public List listMedicalSpecialitiesPaged(int pageNumber, int pageSize) { + return listMedicalSpecialitiesFiltered(null, pageNumber, pageSize); + } + + public List listMedicalSpecialitiesFiltered(String searchTerm, int pageNumber, int pageSize) { + String strQuery = "SELECT ms from MedicalSpecialtyJPA ms %s order by ms.name, ms.description"; + String strFilter = ""; + if (searchTerm == null) + searchTerm = ""; + else + searchTerm = Utils.stripAccents(searchTerm).toLowerCase(); + + if (searchTerm.length() > 0) { + strFilter = "WHERE lower(ms.name) LIKE :searchTerm OR lower(ms.description) LIKE :searchTerm"; + } + + TypedQuery query = entman.createQuery(String.format(strQuery, strFilter), MedicalSpecialtyJPA.class); + + if (searchTerm.length() > 0) + query.setParameter("searchTerm", "%" + searchTerm + "%"); if (pageSize > 0) { query.setFirstResult(pageNumber * pageSize); query.setMaxResults(pageSize); } - @SuppressWarnings("unchecked") - Collection allJPA = query.getResultList(); - Collection allSpecialities = new ArrayList(); + List allJPA = query.getResultList(); + List allSpecialities = new ArrayList(); - for (MedicalSpecialtyJPA ms : allJPA) { - allSpecialities.add(new MedicalSpecialtyTO(ms.getName(), ms.getDescription())); + for (MedicalSpecialtyJPA cap : allJPA) { + allSpecialities.add(new MedicalSpecialtyTO(cap.getId(), cap.getName(), cap.getDescription())); } return allSpecialities; } - public Collection listAllCAPs() { - return this.listPagedAllCAPs(0, 0); + public List listAllCAPs() { + return this.listCAPsPaged(0, 0); } - public Collection listPagedAllCAPs(int pageNumber, int pageSize) { - Query query = entman.createQuery("from PrimaryHealthCareCenterJPA order by name"); + public List listCAPsPaged(int pageNumber, int pageSize) { + return this.listCAPsFiltered(null, pageNumber, pageSize); + } + + public List listCAPsFiltered(String searchTerm, int pageNumber, int pageSize) { + String strQuery = "SELECT phc from PrimaryHealthCareCenterJPA phc %s order by phc.name, phc.location"; + String strFilter = ""; + if (searchTerm == null) + searchTerm = ""; + else + searchTerm = Utils.stripAccents(searchTerm).toLowerCase(); + + if (searchTerm.length() > 0) { + strFilter = "WHERE lower(phc.name) LIKE :searchTerm OR lower(phc.location) LIKE :searchTerm"; + } + + TypedQuery query = entman.createQuery(String.format(strQuery, strFilter), PrimaryHealthCareCenterJPA.class); + + if (searchTerm.length() > 0) + query.setParameter("searchTerm", "%" + searchTerm + "%"); if (pageSize > 0) { query.setFirstResult(pageNumber * pageSize); query.setMaxResults(pageSize); } - @SuppressWarnings("unchecked") - Collection allJPA = query.getResultList(); - Collection allCAPs = new ArrayList(); + List allJPA = query.getResultList(); + List allCAPs = new ArrayList(); for (PrimaryHealthCareCenterJPA cap : allJPA) { - allCAPs.add(new PrimaryHealthCareCenterTO(cap.getName(), cap.getLocation())); + allCAPs.add(new PrimaryHealthCareCenterTO(cap.getId(), cap.getName(), cap.getLocation())); } return allCAPs; } - public Collection listAllFamilyDoctors() { - return this.listAllFamilyDoctors(0, 0); + public List listAllFamilyDoctors() { + return this.listFamilyDoctorsPaged(0, 0); } - public Collection listAllFamilyDoctors(int pageNumber, int pageSize) { - Query query = entman.createQuery("from FamilyDoctorJPA order by name, surname"); + public List listFamilyDoctorsPaged(int pageNumber, int pageSize) { + return this.listFamilyDoctorsFiltered(null, pageNumber, pageSize); + } + + public List listFamilyDoctorsFiltered(String searchTerm, int pageNumber, int pageSize) { + String strQuery = "SELECT fd FROM FamilyDoctorJPA fd %s order by fd.name, fd.surname"; + String strFilter = ""; + if (searchTerm == null) + searchTerm = ""; + else + searchTerm = Utils.stripAccents(searchTerm).toLowerCase(); + + if (searchTerm.length() > 0) { + strFilter = "WHERE lower(fd.name) LIKE :searchTerm OR lower(fd.surname) LIKE :searchTerm"; + } + + TypedQuery query = entman.createQuery(String.format(strQuery, strFilter), FamilyDoctorJPA.class); + + if (searchTerm.length() > 0) + query.setParameter("searchTerm", "%" + searchTerm + "%"); if (pageSize > 0) { query.setFirstResult(pageNumber * pageSize); @@ -94,14 +149,14 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal { } @SuppressWarnings("unchecked") - Collection allFDsJPA = query.getResultList(); - Collection allFDTOs = new ArrayList(); + List allFDsJPA = query.getResultList(); + List allFDTOs = new ArrayList(); for (FamilyDoctorJPA item : allFDsJPA) { allFDTOs.add(new FamilyDoctorTO(item.getId(), item.getNif(), item.getName(), item.getSurname(), item.getPassword(), item.getEmail(), null)); } - return allFDTOs; + return allFDTOs; } public PatientTO retrievePatient(int patientId) throws Exception { @@ -129,7 +184,7 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal { PrimaryHealthCareCenterTO phc = null; if (fd.getPrimaryHealthCareCenter() != null) - phc = new PrimaryHealthCareCenterTO(fd.getPrimaryHealthCareCenter().getName(), fd.getPrimaryHealthCareCenter().getLocation()); + phc = new PrimaryHealthCareCenterTO(fd.getPrimaryHealthCareCenter().getId(), fd.getPrimaryHealthCareCenter().getName(), fd.getPrimaryHealthCareCenter().getLocation()); FamilyDoctorTO fdTO = new FamilyDoctorTO(fd.getId(), fd.getNif(), fd.getName(), fd.getSurname(), fd.getPassword(), fd.getEmail(), phc); return fdTO; @@ -144,7 +199,7 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal { MedicalSpecialtyTO ms = null; if (sd.getMedicalSpecialty() != null) - ms = new MedicalSpecialtyTO(sd.getMedicalSpecialty().getName(), sd.getMedicalSpecialty().getDescription()); + ms = new MedicalSpecialtyTO(sd.getMedicalSpecialty().getId(), sd.getMedicalSpecialty().getName(), sd.getMedicalSpecialty().getDescription()); SpecialistDoctorTO sdTO = new SpecialistDoctorTO(sd.getId(), sd.getNif(), sd.getName(), sd.getSurname(), sd.getPassword(), sd.getEmail(), ms); return sdTO; diff --git a/1.sources/MyHealth/src/ejb/common/CommonFacadeLocal.java b/1.sources/MyHealth/src/ejb/common/CommonFacadeLocal.java index 3ec40c9..cc71c0e 100644 --- a/1.sources/MyHealth/src/ejb/common/CommonFacadeLocal.java +++ b/1.sources/MyHealth/src/ejb/common/CommonFacadeLocal.java @@ -1,6 +1,7 @@ package ejb.common; import java.util.Collection; +import java.util.List; import javax.ejb.Local; @@ -18,18 +19,24 @@ import TO.SpecialistDoctorTO; @Local public interface CommonFacadeLocal { - public Collection listAllMedicalSpecialities(); + public List listAllMedicalSpecialities(); - public Collection listPagedMedicalSpecialities(int pageNumber, int pageSize); + public List listMedicalSpecialitiesPaged(int pageNumber, int pageSize); - public Collection listAllCAPs(); - - public Collection listPagedAllCAPs(int pageNumber, int pageSize); + public List listMedicalSpecialitiesFiltered(String searchTerm, int pageNumber, int pageSize); + + public List listAllCAPs(); + + public List listCAPsPaged(int pageNumber, int pageSize); + + public List listCAPsFiltered(String searchTerm, int pageNumber, int pageSize); + + public List listAllFamilyDoctors(); + + public List listFamilyDoctorsPaged(int pageNumber, int pageSize); + + public List listFamilyDoctorsFiltered(String searchTerm, int pageNumber, int pageSize); - public Collection listAllFamilyDoctors(); - - public Collection listAllFamilyDoctors(int pageNumber, int pageSize); - public PatientTO retrievePatient(int patientId) throws Exception; public FamilyDoctorTO retrieveFamilyDoctor(int ProfessionalNumberId) throws Exception; diff --git a/1.sources/MyHealth/src/ejb/common/CommonFacadeRemote.java b/1.sources/MyHealth/src/ejb/common/CommonFacadeRemote.java index 6a9732b..d62a870 100644 --- a/1.sources/MyHealth/src/ejb/common/CommonFacadeRemote.java +++ b/1.sources/MyHealth/src/ejb/common/CommonFacadeRemote.java @@ -1,6 +1,7 @@ package ejb.common; import java.util.Collection; +import java.util.List; import javax.ejb.Remote; @@ -18,18 +19,24 @@ import TO.SpecialistDoctorTO; @Remote public interface CommonFacadeRemote { - public Collection listAllMedicalSpecialities(); + public List listAllMedicalSpecialities(); - public Collection listPagedMedicalSpecialities(int pageNumber, int pageSize); + public List listMedicalSpecialitiesPaged(int pageNumber, int pageSize); - public Collection listAllCAPs(); - - public Collection listPagedAllCAPs(int pageNumber, int pageSize); + public List listMedicalSpecialitiesFiltered(String searchTerm, int pageNumber, int pageSize); + + public List listAllCAPs(); + + public List listCAPsPaged(int pageNumber, int pageSize); + + public List listCAPsFiltered(String searchTerm, int pageNumber, int pageSize); + + public List listAllFamilyDoctors(); + + public List listFamilyDoctorsPaged(int pageNumber, int pageSize); + + public List listFamilyDoctorsFiltered(String searchTerm, int pageNumber, int pageSize); - public Collection listAllFamilyDoctors(); - - public Collection listAllFamilyDoctors(int pageNumber, int pageSize); - public PatientTO retrievePatient(int patientId) throws Exception; public FamilyDoctorTO retrieveFamilyDoctor(int ProfessionalNumberId) throws Exception; diff --git a/1.sources/MyHealth/src/ejb/profile/ProfileFacadeBean.java b/1.sources/MyHealth/src/ejb/profile/ProfileFacadeBean.java index e6c34b7..8e28709 100644 --- a/1.sources/MyHealth/src/ejb/profile/ProfileFacadeBean.java +++ b/1.sources/MyHealth/src/ejb/profile/ProfileFacadeBean.java @@ -67,7 +67,7 @@ public class ProfileFacadeBean implements ProfileFacadeRemote { public SpecialistDoctorTO registerSpecialistDoctor(int id, String nif, String name, String surname, String password, String email, MedicalSpecialtyTO specialty) throws Exception { - MedicalSpecialtyJPA ms = entman.find(MedicalSpecialtyJPA.class, specialty.getName()); + MedicalSpecialtyJPA ms = entman.find(MedicalSpecialtyJPA.class, specialty.getId()); if (ms == null) { throw new Exception("No se encuentra la especialidad médica con identificador: " + specialty.getName()); } @@ -84,7 +84,7 @@ public class ProfileFacadeBean implements ProfileFacadeRemote { public FamilyDoctorTO registerFamilyDoctor(int id, String nif, String name, String surname, String password, String email, PrimaryHealthCareCenterTO cap) throws Exception { FamilyDoctorTO fdTO = null; - PrimaryHealthCareCenterJPA phcC = entman.find(PrimaryHealthCareCenterJPA.class, cap.getName()); + PrimaryHealthCareCenterJPA phcC = entman.find(PrimaryHealthCareCenterJPA.class, cap.getId()); if (phcC == null) { throw new Exception("No se encuentra el centro de atención primaria con identificador: " + cap.getName()); } @@ -127,7 +127,7 @@ public class ProfileFacadeBean implements ProfileFacadeRemote { throw new Exception("No se pueden actualizar los datos del médico de familia porque no se encuentra en la base de datos ningún registro con id: " + String.valueOf(id)); } - MedicalSpecialtyJPA ms = entman.find(MedicalSpecialtyJPA.class, specialty.getName()); + MedicalSpecialtyJPA ms = entman.find(MedicalSpecialtyJPA.class, specialty.getId()); if (ms == null) { throw new Exception("No se encuentra la especialidad médica con identificador: " + specialty.getName()); } @@ -155,7 +155,7 @@ public class ProfileFacadeBean implements ProfileFacadeRemote { throw new Exception("No se pueden actualizar los datos del médico de familia porque no se encuentra en la base de datos ningún registro con id: " + String.valueOf(id)); } - PrimaryHealthCareCenterJPA phcC = entman.find(PrimaryHealthCareCenterJPA.class, phcTO.getName()); + PrimaryHealthCareCenterJPA phcC = entman.find(PrimaryHealthCareCenterJPA.class, phcTO.getId()); if (phcC == null) { throw new Exception("No se encuentra el centro de atención primaria con identificador: " + phcTO.getName()); } @@ -185,7 +185,7 @@ public class ProfileFacadeBean implements ProfileFacadeRemote { throw new Exception("No se encuentra en la base de datos ningún médico de familia con id: " + String.valueOf(professionalId)); } - PrimaryHealthCareCenterJPA phcC = entman.find(PrimaryHealthCareCenterJPA.class, newCenter.getName()); + PrimaryHealthCareCenterJPA phcC = entman.find(PrimaryHealthCareCenterJPA.class, newCenter.getId()); if (phcC == null) { throw new Exception("No se encuentra el centro de atención primaria con identificador: " + newCenter.getName()); } diff --git a/1.sources/MyHealth/src/jpa/FamilyDoctorJPA.java b/1.sources/MyHealth/src/jpa/FamilyDoctorJPA.java index dd02336..3d36ead 100644 --- a/1.sources/MyHealth/src/jpa/FamilyDoctorJPA.java +++ b/1.sources/MyHealth/src/jpa/FamilyDoctorJPA.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.util.Collection; import javax.persistence.CascadeType; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; @@ -26,6 +27,7 @@ public class FamilyDoctorJPA implements Serializable { private static final long serialVersionUID = 1L; @Id + @Column(updatable = false) @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; private String nif; diff --git a/1.sources/MyHealth/src/jpa/MedicalSpecialtyJPA.java b/1.sources/MyHealth/src/jpa/MedicalSpecialtyJPA.java index 92bd161..8b15906 100644 --- a/1.sources/MyHealth/src/jpa/MedicalSpecialtyJPA.java +++ b/1.sources/MyHealth/src/jpa/MedicalSpecialtyJPA.java @@ -2,7 +2,10 @@ package jpa; import java.io.Serializable; +import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @@ -18,6 +21,9 @@ public class MedicalSpecialtyJPA implements Serializable { private static final long serialVersionUID = 1L; @Id + @Column(updatable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; private String name; private String description; @@ -33,7 +39,14 @@ public class MedicalSpecialtyJPA implements Serializable { this.description = description; } - @Id + public Integer getId() { + return id; + } + + public void setId(Integer value) { + this.id = value; + } + public String getName() { return name; } diff --git a/1.sources/MyHealth/src/jpa/PatientJPA.java b/1.sources/MyHealth/src/jpa/PatientJPA.java index be58fef..fd4b069 100644 --- a/1.sources/MyHealth/src/jpa/PatientJPA.java +++ b/1.sources/MyHealth/src/jpa/PatientJPA.java @@ -2,6 +2,7 @@ package jpa; import java.io.Serializable; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @@ -22,7 +23,8 @@ public class PatientJPA implements Serializable { private static final long serialVersionUID = 1L; @Id - @GeneratedValue(strategy=GenerationType.IDENTITY) + @Column(updatable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String nif; private String name; @@ -30,7 +32,7 @@ public class PatientJPA implements Serializable { private String password; private String email; @ManyToOne - @JoinColumn (name="FamilyDoctorId") + @JoinColumn(name = "FamilyDoctorId") private FamilyDoctorJPA familyDoctor; /** @@ -96,11 +98,12 @@ public class PatientJPA implements Serializable { public void setEmail(String email) { this.email = email; } - + public FamilyDoctorJPA getFamilyDoctor() { return familyDoctor; } - public void setFamilyDoctor(FamilyDoctorJPA familyDoc) { + + public void setFamilyDoctor(FamilyDoctorJPA familyDoc) { this.familyDoctor = familyDoc; } } diff --git a/1.sources/MyHealth/src/jpa/PrimaryHealthCareCenterJPA.java b/1.sources/MyHealth/src/jpa/PrimaryHealthCareCenterJPA.java index ce81e61..cfbece7 100644 --- a/1.sources/MyHealth/src/jpa/PrimaryHealthCareCenterJPA.java +++ b/1.sources/MyHealth/src/jpa/PrimaryHealthCareCenterJPA.java @@ -2,7 +2,10 @@ package jpa; import java.io.Serializable; +import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @@ -18,6 +21,9 @@ public class PrimaryHealthCareCenterJPA implements Serializable { private static final long serialVersionUID = 1L; @Id + @Column(updatable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; private String name; private String location; @@ -33,6 +39,14 @@ public class PrimaryHealthCareCenterJPA implements Serializable { this.location = location; } + public Integer getId() { + return id; + } + + public void setId(Integer value) { + this.id = value; + } + public String getName() { return name; } diff --git a/1.sources/MyHealth/src/jpa/SpecialistDoctorJPA.java b/1.sources/MyHealth/src/jpa/SpecialistDoctorJPA.java index 7c7e1b5..6ffa8d4 100644 --- a/1.sources/MyHealth/src/jpa/SpecialistDoctorJPA.java +++ b/1.sources/MyHealth/src/jpa/SpecialistDoctorJPA.java @@ -2,6 +2,7 @@ package jpa; import java.io.Serializable; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @@ -22,7 +23,8 @@ public class SpecialistDoctorJPA implements Serializable { private static final long serialVersionUID = 1L; @Id - @GeneratedValue(strategy=GenerationType.IDENTITY) + @Column(updatable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String nif; private String name; @@ -30,7 +32,7 @@ public class SpecialistDoctorJPA implements Serializable { private String password; private String email; @ManyToOne - @JoinColumn(name = "MedicalSpecialtyId") + @JoinColumn(name = "MedicalSpecialtyId") private MedicalSpecialtyJPA medicalSpecialty; /** diff --git a/1.sources/MyHealth/src/jpa/VisitJPA.java b/1.sources/MyHealth/src/jpa/VisitJPA.java index e6e6b36..bb5ef55 100644 --- a/1.sources/MyHealth/src/jpa/VisitJPA.java +++ b/1.sources/MyHealth/src/jpa/VisitJPA.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.sql.Time; import java.util.Date; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @@ -12,7 +13,6 @@ import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; - /** * * @author Marcos García Núñez (mgarcianun@uoc.edu) @@ -25,17 +25,19 @@ public class VisitJPA implements Serializable { private static final long serialVersionUID = 1L; @Id + @Column(updatable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private Date date; private Time time; private String observations; private String result; - @ManyToOne - @JoinColumn (name="FamilyDoctorId") - private FamilyDoctorJPA familyDoctor; - @ManyToOne - @JoinColumn (name="PatientId") - private PatientJPA patient; + @ManyToOne + @JoinColumn(name = "FamilyDoctorId") + private FamilyDoctorJPA familyDoctor; + @ManyToOne + @JoinColumn(name = "PatientId") + private PatientJPA patient; /** * Class constructor methods @@ -46,14 +48,14 @@ public class VisitJPA implements Serializable { public VisitJPA(Integer id, Date date, Time time, String observations, String result) { this.id = id; - this.date=date; + this.date = date; this.time = time; this.observations = observations; this.result = result; } @Id - @GeneratedValue(strategy=GenerationType.IDENTITY) + @GeneratedValue(strategy = GenerationType.IDENTITY) public Integer getId() { return id; } @@ -85,21 +87,23 @@ public class VisitJPA implements Serializable { public void setObservations(String observation) { this.observations = observations; } + /** * Methods get/set persistent relationships */ public FamilyDoctorJPA getFamilyDoctor() { return familyDoctor; } - public void setFamilyDoctor(FamilyDoctorJPA familyDoc) { + + public void setFamilyDoctor(FamilyDoctorJPA familyDoc) { this.familyDoctor = familyDoc; } - + public PatientJPA getPatient() { return patient; } - - public void setPatient (PatientJPA pat) { - this.patient=pat; + + public void setPatient(PatientJPA pat) { + this.patient = pat; } -} +} diff --git a/1.sources/MyHealth/src/managedbean/profile/ChangeFamilyDoctorMBean.java b/1.sources/MyHealth/src/managedbean/profile/ChangeFamilyDoctorMBean.java index 77996c8..2c1d72c 100644 --- a/1.sources/MyHealth/src/managedbean/profile/ChangeFamilyDoctorMBean.java +++ b/1.sources/MyHealth/src/managedbean/profile/ChangeFamilyDoctorMBean.java @@ -1,7 +1,7 @@ package managedbean.profile; import java.io.Serializable; -import java.util.Collection; +import java.util.List; import javax.annotation.PostConstruct; import javax.faces.application.FacesMessage; @@ -11,6 +11,7 @@ import javax.inject.Named; import TO.FamilyDoctorTO; import TO.LoggedUserTO; import TO.PatientTO; +import common.Constants; import common.UserType; import managedbean.common.ManagedBeanBase; import managedbean.common.SessionUtils; @@ -28,7 +29,8 @@ public class ChangeFamilyDoctorMBean extends ManagedBeanBase implements Serializ private int id; private FamilyDoctorTO currentFamilyDoctor; private FamilyDoctorTO newFamilyDoctor; - private Collection familyDoctorList; + private List familyDoctorList; + private String lastUIQuery; public ChangeFamilyDoctorMBean() { @@ -38,6 +40,7 @@ public class ChangeFamilyDoctorMBean extends ManagedBeanBase implements Serializ public void init() { // Recuperamos el usuario logeado actual LoggedUserTO usr = null; + this.lastUIQuery = ""; try { usr = SessionUtils.getloggedOnUser(); @@ -48,7 +51,7 @@ public class ChangeFamilyDoctorMBean extends ManagedBeanBase implements Serializ this.id = Integer.valueOf(usr.getId()); if (usr.getUserType() == UserType.PATIENT) { - this.familyDoctorList = this.getRemoteManagerCommon().listAllFamilyDoctors(); + this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); PatientTO pat = this.getRemoteManagerCommon().retrievePatient(this.id); this.setCurrentFamilyDoctor(pat.getFamilyDoctor()); @@ -60,10 +63,19 @@ public class ChangeFamilyDoctorMBean extends ManagedBeanBase implements Serializ } - public Collection getFamilyDoctorList() { + public List getFamilyDoctorList() { return familyDoctorList; } + public List completeFamilyDoctor(String query) { + if (query != null && query.equals(this.lastUIQuery) == false) { + this.lastUIQuery = query; + // Recuperamos las 200 primeras coincidencias + this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); + } + return this.familyDoctorList; + } + public int getId() { return id; } diff --git a/1.sources/MyHealth/src/managedbean/profile/ChangePrimaryHealthCareCenterMBean.java b/1.sources/MyHealth/src/managedbean/profile/ChangePrimaryHealthCareCenterMBean.java index 7d894a0..1b43f38 100644 --- a/1.sources/MyHealth/src/managedbean/profile/ChangePrimaryHealthCareCenterMBean.java +++ b/1.sources/MyHealth/src/managedbean/profile/ChangePrimaryHealthCareCenterMBean.java @@ -2,6 +2,7 @@ package managedbean.profile; import java.io.Serializable; import java.util.Collection; +import java.util.List; import javax.annotation.PostConstruct; import javax.faces.application.FacesMessage; @@ -11,6 +12,7 @@ import javax.inject.Named; import TO.FamilyDoctorTO; import TO.LoggedUserTO; import TO.PrimaryHealthCareCenterTO; +import common.Constants; import common.UserType; import managedbean.common.ManagedBeanBase; import managedbean.common.SessionUtils; @@ -28,7 +30,8 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen private int id; private PrimaryHealthCareCenterTO currentCenter; private PrimaryHealthCareCenterTO newCenter; - private Collection primaryHealthCareCentersList; + private List primaryHealthCareCentersList; + private String lastUIQuery; public ChangePrimaryHealthCareCenterMBean() { @@ -38,6 +41,8 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen public void init() { // Recuperamos el usuario logeado actual LoggedUserTO usr = null; + this.lastUIQuery = ""; + try { usr = SessionUtils.getloggedOnUser(); @@ -48,7 +53,7 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen this.id = Integer.valueOf(usr.getId()); if (usr.getUserType() == UserType.FAMILY_DOCTOR) { - this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listAllCAPs(); + this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); FamilyDoctorTO fd = this.getRemoteManagerCommon().retrieveFamilyDoctor(this.id); this.setCurrentCenter(fd.getPrimaryHealthCareCenter()); @@ -60,9 +65,18 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen } - public Collection getPhcList() { + public List getPhcList() { return primaryHealthCareCentersList; } + + public List completePrimaryHealCareCenter(String query) { + if (query != null && query.equals(this.lastUIQuery) == false) { + this.lastUIQuery = query; + // Recuperamos las 200 primeras coincidencias + this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); + } + return this.primaryHealthCareCentersList; + } public int getId() { return id; diff --git a/1.sources/MyHealth/src/managedbean/profile/RegisterUserMBean.java b/1.sources/MyHealth/src/managedbean/profile/RegisterUserMBean.java index 331f6eb..158ac99 100644 --- a/1.sources/MyHealth/src/managedbean/profile/RegisterUserMBean.java +++ b/1.sources/MyHealth/src/managedbean/profile/RegisterUserMBean.java @@ -19,6 +19,7 @@ import TO.MedicalSpecialtyTO; import TO.PatientTO; import TO.PrimaryHealthCareCenterTO; import TO.SpecialistDoctorTO; +import common.Constants; import common.UserType; import managedbean.common.ManagedBeanBase; import managedbean.common.ValidationUtils; @@ -44,14 +45,16 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable { private String password; private String email; private boolean registered; + private String lastUIQueryPH; + private String lastUIQueryMS; // private HashMap userTypes; private List userTypes; private String userType; private PrimaryHealthCareCenterTO primaryHealthCareCenter; private MedicalSpecialtyTO medicalSpecialty; - private Collection medicalSpecialitiesList; - private Collection primaryHealthCareCentersList; + private List medicalSpecialitiesList; + private List primaryHealthCareCentersList; public RegisterUserMBean() { @@ -64,11 +67,13 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable { this.userTypes.add(UserType.FAMILY_DOCTOR); this.userTypes.add(UserType.SPECIALIST_DOCTOR); this.registered = false; + this.lastUIQueryPH = ""; + this.lastUIQueryMS = ""; this.userType = UserType.PATIENT.name(); - this.medicalSpecialitiesList = this.getRemoteManagerCommon().listAllMedicalSpecialities(); - this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listAllCAPs(); + this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); + this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); } public List getUserTypes() { @@ -98,14 +103,32 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable { } } - public Collection getMedicalSpecialtiesList() { + public List getMedicalSpecialtiesList() { return medicalSpecialitiesList; } - public Collection getPhcList() { + public List getPhcList() { return primaryHealthCareCentersList; } + public List completePrimaryHealCareCenter(String query) { + if (query != null && query.equals(this.lastUIQueryPH) == false) { + this.lastUIQueryPH = query; + // Recuperamos las 200 primeras coincidencias + this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); + } + return this.primaryHealthCareCentersList; + } + + public List completeMedicalSpecialty(String query) { + if (query != null && query.equals(this.lastUIQueryMS) == false) { + this.lastUIQueryMS = query; + // Recuperamos las 200 primeras coincidencias + this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); + } + return this.medicalSpecialitiesList; + } + public boolean isPatient() { return (UserType.valueOf(this.userType) == UserType.PATIENT); } diff --git a/1.sources/MyHealth/src/managedbean/profile/UpdateProfileMBean.java b/1.sources/MyHealth/src/managedbean/profile/UpdateProfileMBean.java index 6bd252f..5cb372b 100644 --- a/1.sources/MyHealth/src/managedbean/profile/UpdateProfileMBean.java +++ b/1.sources/MyHealth/src/managedbean/profile/UpdateProfileMBean.java @@ -4,18 +4,11 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Properties; import javax.annotation.PostConstruct; import javax.faces.application.FacesMessage; -import javax.faces.context.ExternalContext; -import javax.faces.context.FacesContext; import javax.faces.view.ViewScoped; import javax.inject.Named; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; -import javax.print.attribute.standard.Severity; import javax.resource.NotSupportedException; import org.primefaces.PrimeFaces; @@ -26,9 +19,9 @@ import TO.MedicalSpecialtyTO; import TO.PatientTO; import TO.PrimaryHealthCareCenterTO; import TO.SpecialistDoctorTO; +import common.Constants; import common.HashUtils; import common.UserType; -import ejb.systemAdmin.SystemAdminFacadeRemote; import managedbean.common.ManagedBeanBase; import managedbean.common.SessionUtils; import managedbean.common.ValidationUtils; @@ -54,13 +47,18 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable private String oldPassword; private String password; private String email; + private String lastUIQueryPH; + private String lastUIQueryMS; + private String lastUIQueryFD; private List userTypes; private String userType; private PrimaryHealthCareCenterTO primaryHealthCareCenter; private MedicalSpecialtyTO medicalSpecialty; - private Collection medicalSpecialitiesList; - private Collection primaryHealthCareCentersList; + private List medicalSpecialitiesList; + private List primaryHealthCareCentersList; + private FamilyDoctorTO familyDoctor; + private List familyDoctorList; public UpdateProfileMBean() { @@ -72,6 +70,8 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable this.userTypes.add(UserType.PATIENT); this.userTypes.add(UserType.FAMILY_DOCTOR); this.userTypes.add(UserType.SPECIALIST_DOCTOR); + this.lastUIQueryPH = ""; + this.lastUIQueryMS = ""; // Recuperamos el usuario logeado actual LoggedUserTO usr = null; @@ -87,6 +87,7 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable switch (usr.getUserType()) { case PATIENT: + this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); PatientTO pat = this.getRemoteManagerCommon().retrievePatient(this.id); this.name = pat.getName(); @@ -96,7 +97,7 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable this.currentPassword = pat.getPassword(); break; case SPECIALIST_DOCTOR: - this.medicalSpecialitiesList = this.getRemoteManagerCommon().listAllMedicalSpecialities(); + this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); SpecialistDoctorTO sd = this.getRemoteManagerCommon().retrieveSpecialistDoctor(this.id); this.name = sd.getName(); @@ -107,7 +108,7 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable this.medicalSpecialty = sd.getMedicalSpecialty(); break; case FAMILY_DOCTOR: - this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listAllCAPs(); + this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); FamilyDoctorTO fd = this.getRemoteManagerCommon().retrieveFamilyDoctor(this.id); this.name = fd.getName(); @@ -156,28 +157,59 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable } } - public Collection getMedicalSpecialtiesList() { + public List getMedicalSpecialtiesList() { return medicalSpecialitiesList; } - public Collection getPhcList() { + public List getPhcList() { return primaryHealthCareCentersList; } - public boolean isPatient() { + public List completePrimaryHealCareCenter(String query) { + if (query != null && query.equals(this.lastUIQueryPH) == false) { + this.lastUIQueryPH = query; + // Recuperamos las 200 primeras coincidencias + this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); + } + return this.primaryHealthCareCentersList; + } + + public List completeMedicalSpecialty(String query) { + if (query != null && query.equals(this.lastUIQueryMS) == false) { + this.lastUIQueryMS = query; + // Recuperamos las 200 primeras coincidencias + this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); + } + return this.medicalSpecialitiesList; + } + + public List getFamilyDoctorList() { + return familyDoctorList; + } + + public List completeFamilyDoctor(String query) { + if (query != null && query.equals(this.lastUIQueryFD) == false) { + this.lastUIQueryFD = query; + // Recuperamos las 200 primeras coincidencias + this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); + } + return this.familyDoctorList; + } + + public boolean isUserTypePatient() { return (UserType.valueOf(this.userType) == UserType.PATIENT); } - public boolean isFamilyDoctor() { + public boolean isUserTypeFamilyDoctor() { return (UserType.valueOf(this.userType) == UserType.FAMILY_DOCTOR); } - public boolean isSpecialistDoctor() { + public boolean isUserTypeSpecialistDoctor() { return (UserType.valueOf(this.userType) == UserType.SPECIALIST_DOCTOR); } - public boolean isDoctor() { - return (isFamilyDoctor() || isSpecialistDoctor()); + public boolean isUserTypeDoctor() { + return (isUserTypeFamilyDoctor() || isUserTypeSpecialistDoctor()); } public String getEmail() { @@ -228,11 +260,11 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable int error = 0; boolean changePassword = (this.oldPassword != null && this.oldPassword.equals("") == false) || (this.password != null && this.password.equals("") == false); - if (this.isFamilyDoctor() && this.primaryHealthCareCenter == null) { + if (this.isUserTypeFamilyDoctor() && this.primaryHealthCareCenter == null) { this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado", "Por favor, especifique un centro de atención primaria."); error++; } - if (this.isSpecialistDoctor() && this.medicalSpecialty == null) { + if (this.isUserTypeSpecialistDoctor() && this.medicalSpecialty == null) { this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Especialidad médica no seleccionada", "Por favor, especifique una especialidad médica."); error++; } @@ -320,4 +352,12 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable this.oldPassword = oldPassword; } + public FamilyDoctorTO getFamilyDoctor() { + return familyDoctor; + } + + public void setFamilyDoctor(FamilyDoctorTO familyDoctor) { + this.familyDoctor = familyDoctor; + } + }