diff --git a/1.sources/MyHealth/src/ejb/common/CommonFacadeBean.java b/1.sources/MyHealth/src/ejb/common/CommonFacadeBean.java index ff821e9..80c1a8e 100644 --- a/1.sources/MyHealth/src/ejb/common/CommonFacadeBean.java +++ b/1.sources/MyHealth/src/ejb/common/CommonFacadeBean.java @@ -221,6 +221,42 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal { return allFDTOs; } + + public List listPatientsPaged(int pageNumber, int pageSize) { + return this.listPatientsFiltered(null, pageNumber, pageSize); + } + + public List listPatientsFiltered(String searchTerm, int pageNumber, int pageSize) { + String strQuery = "SELECT p FROM PatientJPA p %s order by p.name, p.surname"; + String strFilter = ""; + if (searchTerm == null) + searchTerm = ""; + else + searchTerm = Utils.normalizeTerm(searchTerm); + + if (searchTerm.length() > 0) { + strFilter = "WHERE lower(p.name) LIKE :searchTerm OR lower(p.surname) LIKE :searchTerm"; + } + + TypedQuery query = entman.createQuery(String.format(strQuery, strFilter), PatientJPA.class); + + if (searchTerm.length() > 0) + query.setParameter("searchTerm", "%" + searchTerm + "%"); + + if (pageSize > 0) { + query.setFirstResult(pageNumber * pageSize); + query.setMaxResults(pageSize); + } + + List allPAsJPA = query.getResultList(); + List allPATOs = new ArrayList(); + + for (PatientJPA item : allPAsJPA) { + allPATOs.add(this.getPOJOforPatientJPA(item, 0)); + } + + return allPATOs; + } /** * Método que convierte un objecto de tipo MedicalSpecialtyJPA (JPA) a su equivalente MedicalSpecialtyTO (Tranfer Object) diff --git a/1.sources/MyHealth/src/ejb/common/CommonFacadeLocal.java b/1.sources/MyHealth/src/ejb/common/CommonFacadeLocal.java index b28b794..f3e0281 100644 --- a/1.sources/MyHealth/src/ejb/common/CommonFacadeLocal.java +++ b/1.sources/MyHealth/src/ejb/common/CommonFacadeLocal.java @@ -45,6 +45,10 @@ public interface CommonFacadeLocal { public List listFamilyDoctorsFiltered(String searchTerm, int pageNumber, int pageSize); + public List listPatientsPaged(int pageNumber, int pageSize); + + public List listPatientsFiltered(String searchTerm, int pageNumber, int pageSize); + public PatientTO findPatientById(int patientId); public PatientTO findPatientByCode(String code); diff --git a/1.sources/MyHealth/src/ejb/common/CommonFacadeRemote.java b/1.sources/MyHealth/src/ejb/common/CommonFacadeRemote.java index 533669e..6918f5c 100644 --- a/1.sources/MyHealth/src/ejb/common/CommonFacadeRemote.java +++ b/1.sources/MyHealth/src/ejb/common/CommonFacadeRemote.java @@ -36,6 +36,10 @@ public interface CommonFacadeRemote { public List listFamilyDoctorsFiltered(String searchTerm, int pageNumber, int pageSize); + public List listPatientsPaged(int pageNumber, int pageSize); + + public List listPatientsFiltered(String searchTerm, int pageNumber, int pageSize); + public PatientTO findPatientById(int patientId); public PatientTO findPatientByCode(String code); @@ -45,13 +49,13 @@ public interface CommonFacadeRemote { public FamilyDoctorTO findFamilyDoctorById(int ProfessionalNumberId); public FamilyDoctorTO findFamilyDoctorByCode(String code); - + public FamilyDoctorTO findFamilyDoctorByNif(String searchValue); public SpecialistDoctorTO findSpecialistDoctorById(int ProfessionalNumberId); public SpecialistDoctorTO findSpecialistDoctorByCode(String code); - + public SpecialistDoctorTO findSpecialistDoctorByNif(String searchValue); }