Metodos para busqueda y filtrado de pacientes de forma paginada.

This commit is contained in:
Marcos Garcia Nuñez
2019-12-27 01:40:43 +01:00
parent e8df59352f
commit 1d0118bcc8
3 changed files with 46 additions and 2 deletions

View File

@@ -222,6 +222,42 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
return allFDTOs; return allFDTOs;
} }
public List<PatientTO> listPatientsPaged(int pageNumber, int pageSize) {
return this.listPatientsFiltered(null, pageNumber, pageSize);
}
public List<PatientTO> 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<PatientJPA> 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<PatientJPA> allPAsJPA = query.getResultList();
List<PatientTO> allPATOs = new ArrayList<PatientTO>();
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) * Método que convierte un objecto de tipo MedicalSpecialtyJPA (JPA) a su equivalente MedicalSpecialtyTO (Tranfer Object)
* *

View File

@@ -45,6 +45,10 @@ public interface CommonFacadeLocal {
public List<FamilyDoctorTO> listFamilyDoctorsFiltered(String searchTerm, int pageNumber, int pageSize); public List<FamilyDoctorTO> listFamilyDoctorsFiltered(String searchTerm, int pageNumber, int pageSize);
public List<PatientTO> listPatientsPaged(int pageNumber, int pageSize);
public List<PatientTO> listPatientsFiltered(String searchTerm, int pageNumber, int pageSize);
public PatientTO findPatientById(int patientId); public PatientTO findPatientById(int patientId);
public PatientTO findPatientByCode(String code); public PatientTO findPatientByCode(String code);

View File

@@ -36,6 +36,10 @@ public interface CommonFacadeRemote {
public List<FamilyDoctorTO> listFamilyDoctorsFiltered(String searchTerm, int pageNumber, int pageSize); public List<FamilyDoctorTO> listFamilyDoctorsFiltered(String searchTerm, int pageNumber, int pageSize);
public List<PatientTO> listPatientsPaged(int pageNumber, int pageSize);
public List<PatientTO> listPatientsFiltered(String searchTerm, int pageNumber, int pageSize);
public PatientTO findPatientById(int patientId); public PatientTO findPatientById(int patientId);
public PatientTO findPatientByCode(String code); public PatientTO findPatientByCode(String code);