|
|
|
|
@@ -27,7 +27,7 @@ import jpa.PrimaryHealthCareCenterJPA;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @author Marcos García Núñez (mgarcianun@uoc.edu)
|
|
|
|
|
* @author David Álvarez González (dalvarezgon@uoc.edu)
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
@Stateless
|
|
|
|
|
@@ -41,22 +41,22 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote {
|
|
|
|
|
CommonFacadeLocal commonServices;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Si la autenticación no es correcgta devuelve null, sino devuelve un POJO con datos del usuario logeado.
|
|
|
|
|
* Si la autenticación no es correcta devuelve null, sino devuelve un POJO con datos del usuario logeado.
|
|
|
|
|
*
|
|
|
|
|
* La autenticación se realiza en 2 pasos:
|
|
|
|
|
*
|
|
|
|
|
* Paso 1. Se intenta localizar un registro de usuario, por orden:
|
|
|
|
|
*
|
|
|
|
|
* a. Primero Paciente, si el identificador comienza por los caracteres correctos.
|
|
|
|
|
* a. Primero, paciente, si el identificador comienza por los caracteres correctos.
|
|
|
|
|
*
|
|
|
|
|
* b.Después médico de familia, si el identificador es de profesional
|
|
|
|
|
* b. Después, médico de familia, si el identificador es de profesional
|
|
|
|
|
*
|
|
|
|
|
* c. Si no lo localizamos buscamos el identificador en la tabla de médicos especialistas (el identificador es de profesional)
|
|
|
|
|
*
|
|
|
|
|
* d. Si no hemos localizado aún al usuario, lo buscamos en la tabla de administradores, aún cuando el identificador comience por cualquier carácter (podría ser una dirección
|
|
|
|
|
* de email que comienza por caracteres del identificaodr de paciente o profesional)
|
|
|
|
|
* de email que comienza por caracteres del identificador de paciente o profesional)
|
|
|
|
|
*
|
|
|
|
|
* Paso 2. Si hemos localizado un registro de usuario, verificamos si el password recibido coincide con el de la base de datos, en tal caso la autenticación se compelta y es
|
|
|
|
|
* Paso 2. Si hemos localizado un registro de usuario, verificamos si el password recibido coincide con el de la base de datos, en tal caso la autenticación se completa y es
|
|
|
|
|
* correcta.
|
|
|
|
|
*/
|
|
|
|
|
public LoggedUserTO login(String userCode, String pwd) {
|
|
|
|
|
@@ -117,24 +117,6 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote {
|
|
|
|
|
|
|
|
|
|
return usr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<MedicalSpecialtyTO> listSpecialtiesPaged(int pageNumber, int pageSize) {
|
|
|
|
|
TypedQuery<MedicalSpecialtyJPA> query = entman.createQuery("SELECT s from MedicalSpecialtyJPA s order by s.name", MedicalSpecialtyJPA.class);
|
|
|
|
|
|
|
|
|
|
if (pageSize > 0) {
|
|
|
|
|
query.setFirstResult(pageNumber * pageSize);
|
|
|
|
|
query.setMaxResults(pageSize);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<MedicalSpecialtyJPA> allJPA = query.getResultList();
|
|
|
|
|
List<MedicalSpecialtyTO> specialties = new ArrayList<MedicalSpecialtyTO>();
|
|
|
|
|
|
|
|
|
|
for (MedicalSpecialtyJPA item : allJPA) {
|
|
|
|
|
specialties.add(commonServices.getPOJOforMedicalSpecialtyJPA(item));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return specialties;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Long getSpecialtiesCount() {
|
|
|
|
|
TypedQuery<Long> query = entman.createQuery("SELECT count(1) from MedicalSpecialtyJPA", Long.class);
|
|
|
|
|
@@ -236,24 +218,6 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote {
|
|
|
|
|
return query.getSingleResult();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<PrimaryHealthCareCenterTO> listCAPsPaged(int pageNumber, int pageSize) {
|
|
|
|
|
TypedQuery<PrimaryHealthCareCenterJPA> query = entman.createQuery("SELECT c from PrimaryHealthCareCenterJPA c order by c.name", PrimaryHealthCareCenterJPA.class);
|
|
|
|
|
|
|
|
|
|
if (pageSize > 0) {
|
|
|
|
|
query.setFirstResult(pageNumber * pageSize);
|
|
|
|
|
query.setMaxResults(pageSize);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<PrimaryHealthCareCenterJPA> allJPA = query.getResultList();
|
|
|
|
|
List<PrimaryHealthCareCenterTO> caps = new ArrayList<PrimaryHealthCareCenterTO>();
|
|
|
|
|
|
|
|
|
|
for (PrimaryHealthCareCenterJPA item : allJPA) {
|
|
|
|
|
caps.add(commonServices.getPOJOforPrimaryHealthCareCenterJPA(item));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return caps;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Long getFamilyDoctorsByCAPCount(int primaryHealthCareCenterId) {
|
|
|
|
|
TypedQuery<Long> query = entman.createQuery("SELECT count(1) from FamilyDoctorJPA d where d.primaryHealthCareCenter.id=:capId", Long.class);
|
|
|
|
|
query.setParameter("capId", primaryHealthCareCenterId);
|
|
|
|
|
|