Añadidos comentarios a varios métodos y clases.
Corregido nombre de método.
This commit is contained in:
@@ -67,7 +67,7 @@
|
|||||||
<div class="ui-g-4 ui-md-4">
|
<div class="ui-g-4 ui-md-4">
|
||||||
<div class="ui-inputgroup">
|
<div class="ui-inputgroup">
|
||||||
<p:inputText id="nif" value="#{RegisterUser.nif}" validator="nifValidator" maxlength="20" required="true" requiredMessage="Por favor, indque su NIF">
|
<p:inputText id="nif" value="#{RegisterUser.nif}" validator="nifValidator" maxlength="20" required="true" requiredMessage="Por favor, indque su NIF">
|
||||||
<p:ajax event="blur" update="nifmsg" listener="#{RegisterUser.hadleNIFValueChange}" oncomplete="handleNIFResponse(xhr, status, args)" />
|
<p:ajax event="blur" update="nifmsg" listener="#{RegisterUser.handleNIFValueChange}" oncomplete="handleNIFResponse(xhr, status, args)" />
|
||||||
</p:inputText>
|
</p:inputText>
|
||||||
<p:commandButton widgetVar="nifButton" icon="pi pi-times" styleClass="red-button" />
|
<p:commandButton widgetVar="nifButton" icon="pi pi-times" styleClass="red-button" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
<div class="ui-g-4 ui-md-4">
|
<div class="ui-g-4 ui-md-4">
|
||||||
<div class="ui-inputgroup">
|
<div class="ui-inputgroup">
|
||||||
<p:inputText id="nif" value="#{UpdateProfile.nif}" validator="nifValidator" maxlength="20" required="true" requiredMessage="Por favor, indque su NIF">
|
<p:inputText id="nif" value="#{UpdateProfile.nif}" validator="nifValidator" maxlength="20" required="true" requiredMessage="Por favor, indque su NIF">
|
||||||
<p:ajax event="blur" update="nifmsg" listener="#{UpdateProfile.hadleNIFValueChange}" oncomplete="handleNIFResponse(xhr, status, args)" />
|
<p:ajax event="blur" update="nifmsg" listener="#{UpdateProfile.handleNIFValueChange}" oncomplete="handleNIFResponse(xhr, status, args)" />
|
||||||
</p:inputText>
|
</p:inputText>
|
||||||
<p:commandButton widgetVar="nifButton" icon="pi pi-check" styleClass="green-button" />
|
<p:commandButton widgetVar="nifButton" icon="pi pi-check" styleClass="green-button" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -222,10 +222,26 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
|
|||||||
return allFDTOs;
|
return allFDTOs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que devuelve una lista con todos los pacientes registrados en el sistema de forma paginada.
|
||||||
|
*
|
||||||
|
* Si pageSize == 0 no se realiza paginación y se devuelven todos los resultados.
|
||||||
|
*
|
||||||
|
* @return Devuelve una Lista de PatientTO (Transfer Objects).
|
||||||
|
*/
|
||||||
public List<PatientTO> listPatientsPaged(int pageNumber, int pageSize) {
|
public List<PatientTO> listPatientsPaged(int pageNumber, int pageSize) {
|
||||||
return this.listPatientsFiltered(null, pageNumber, pageSize);
|
return this.listPatientsFiltered(null, pageNumber, pageSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que devuelve una lista de pacientes que tienen una coincidencia parcial en el nombre o en los apellidos con el termino de búsqueda (searchTerm) especificado.
|
||||||
|
*
|
||||||
|
* Además permite la paginacción de datos. Si pageSize == 0 no se realiza paginación y se devuelven todos los resultados.
|
||||||
|
*
|
||||||
|
* Si serachTerm es nulo o cadena vacía entonces no se tiene en cuenta el parámetro y devuelven todos los registros existentes.
|
||||||
|
*
|
||||||
|
* @return Devuelve una Lista de PatientTO (Transfer Objects).
|
||||||
|
*/
|
||||||
public List<PatientTO> listPatientsFiltered(String searchTerm, int pageNumber, int 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 strQuery = "SELECT p FROM PatientJPA p %s order by p.name, p.surname";
|
||||||
String strFilter = "";
|
String strFilter = "";
|
||||||
@@ -476,7 +492,7 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
|
|||||||
/**
|
/**
|
||||||
* Método que recupera un médico especialista a partir de su NIF
|
* Método que recupera un médico especialista a partir de su NIF
|
||||||
*
|
*
|
||||||
* @return SpecialistDoctorTO (Transfer Object del objeto recuperado) o null si no se encuentra el objeto buscado
|
* @return SpecialistDoctorTO (Transfer Object del objeto recuperado) o null si el objeto JPA es nulo
|
||||||
*/
|
*/
|
||||||
public SpecialistDoctorTO findSpecialistDoctorByNif(String searchedNIF) {
|
public SpecialistDoctorTO findSpecialistDoctorByNif(String searchedNIF) {
|
||||||
TypedQuery<SpecialistDoctorJPA> query = entman.createQuery("from SpecialistDoctorJPA d where d.nif=:nif", SpecialistDoctorJPA.class);
|
TypedQuery<SpecialistDoctorJPA> query = entman.createQuery("from SpecialistDoctorJPA d where d.nif=:nif", SpecialistDoctorJPA.class);
|
||||||
@@ -496,7 +512,7 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
|
|||||||
* El parámetro nestedProps es un valor entero que indica a que nivel de profundidad se debe navegar a través de las propiedades relacionadas para convertirlas de JPA a TO. Un
|
* El parámetro nestedProps es un valor entero que indica a que nivel de profundidad se debe navegar a través de las propiedades relacionadas para convertirlas de JPA a TO. Un
|
||||||
* valor 0 indica que no se convertirá ninguna propiedad que tenga un entidad JPA relacionada (tendrá valor null en el objeto TO).
|
* valor 0 indica que no se convertirá ninguna propiedad que tenga un entidad JPA relacionada (tendrá valor null en el objeto TO).
|
||||||
*
|
*
|
||||||
* @return QuestionTO (Transfer Object del objeto recuperado) o null si no se encuentra el objeto buscado
|
* @return QuestionTO (Transfer Object del objeto recuperado) o null si el objeto JPA es nulo
|
||||||
*/
|
*/
|
||||||
public QuestionTO getPOJOforQuestionJPA(QuestionJPA qs, int nestedProps) {
|
public QuestionTO getPOJOforQuestionJPA(QuestionJPA qs, int nestedProps) {
|
||||||
QuestionTO qsTO = null;
|
QuestionTO qsTO = null;
|
||||||
@@ -517,6 +533,14 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
|
|||||||
return qsTO;
|
return qsTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que converite un objeto de tipo VisitJPA a su equivalente VisitTO (Transfer Object)
|
||||||
|
*
|
||||||
|
* El parámetro nestedProps es un valor entero que indica a que nivel de profundidad se debe navegar a través de las propiedades relacionadas para convertirlas de JPA a TO. Un
|
||||||
|
* valor 0 indica que no se convertirá ninguna propiedad que tenga un entidad JPA relacionada (tendrá valor null en el objeto TO).
|
||||||
|
*
|
||||||
|
* @return VisitTO (Transfer Object del objeto recuperado) o null si el objeto JPA es nulo
|
||||||
|
*/
|
||||||
public VisitTO getPOJOforVisitJPA(VisitJPA vi, int nestedProps) {
|
public VisitTO getPOJOforVisitJPA(VisitJPA vi, int nestedProps) {
|
||||||
VisitTO qsTO = null;
|
VisitTO qsTO = null;
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import managedbean.common.ManagedBeanBase;
|
|||||||
import managedbean.common.SessionUtils;
|
import managedbean.common.SessionUtils;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
|
* ManageBean que gestiona la vista para el cambio de médico de familia para un paciente
|
||||||
*
|
*
|
||||||
* @author Marcos García Núñez (mgarcianun@uoc.edu)
|
* @author Marcos García Núñez (mgarcianun@uoc.edu)
|
||||||
*
|
*
|
||||||
@@ -36,6 +37,14 @@ public class ChangeFamilyDoctorMBean extends ManagedBeanBase implements Serializ
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inicializa el managed Bean
|
||||||
|
*
|
||||||
|
* Si el usuario logeado es nulo devuelve un error indicando que la sesión actual no es válida.
|
||||||
|
*
|
||||||
|
* Recupera el id del usuario actual desde la sesión. Dado que solo los pacientes pueden seleccionar un médico de familia, si el usuario es de otro tipo se muestra un mensaje
|
||||||
|
* de error.
|
||||||
|
*/
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
// Recuperamos el usuario logeado actual
|
// Recuperamos el usuario logeado actual
|
||||||
@@ -54,8 +63,9 @@ public class ChangeFamilyDoctorMBean extends ManagedBeanBase implements Serializ
|
|||||||
this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
|
this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
|
||||||
|
|
||||||
PatientTO pat = this.getRemoteManagerCommon().findPatientById(this.id);
|
PatientTO pat = this.getRemoteManagerCommon().findPatientById(this.id);
|
||||||
this.setCurrentFamilyDoctor(pat.getFamilyDoctor());
|
this.currentFamilyDoctor = pat.getFamilyDoctor();
|
||||||
}
|
} else
|
||||||
|
this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Perfil no válido", "Su tipo de usuario no permite que pueda tener acceso a esta página.");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
this.manageException(e);
|
this.manageException(e);
|
||||||
@@ -63,23 +73,47 @@ public class ChangeFamilyDoctorMBean extends ManagedBeanBase implements Serializ
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Devuelve la lista de médicos de familia para el combo de selección.
|
||||||
|
*
|
||||||
|
* @return Lista de médicos de familia.
|
||||||
|
*/
|
||||||
public List<FamilyDoctorTO> getFamilyDoctorList() {
|
public List<FamilyDoctorTO> getFamilyDoctorList() {
|
||||||
return familyDoctorList;
|
return familyDoctorList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que permite relizar búsqueda de tipo "typeAhead" en la lista de selección de médico.
|
||||||
|
*
|
||||||
|
* Recibe como parámetro el testo tecleado por el usuario
|
||||||
|
*
|
||||||
|
* @param query Texto tecleado por el usuario
|
||||||
|
* @return Retorna la lista de médicos de familia coincidentes con el termino buscado.
|
||||||
|
*/
|
||||||
public List<FamilyDoctorTO> completeFamilyDoctor(String query) {
|
public List<FamilyDoctorTO> completeFamilyDoctor(String query) {
|
||||||
if (query != null && query.equals(this.lastUIQuery) == false) {
|
if (query != null && query.equals(this.lastUIQuery) == false) {
|
||||||
this.lastUIQuery = query;
|
this.lastUIQuery = query;
|
||||||
// Recuperamos las 200 primeras coincidencias
|
// Recuperamos las primeras ~30 coincidencias, según constante
|
||||||
this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
|
this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
|
||||||
}
|
}
|
||||||
return this.familyDoctorList;
|
return this.familyDoctorList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Id del usuario actual, obtenido de la sessión del usuario logeado.
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que realiza la persistencia del cambio de médico de familia. a través de la invocación al método EJB correspondiente.
|
||||||
|
*
|
||||||
|
* Se realizan 2 comprobaciones adicionales:
|
||||||
|
*
|
||||||
|
* 1. Se ha seleccionado un nuevo médico de familia
|
||||||
|
*
|
||||||
|
* 2. El médico de familia nuevo es diferente al actual
|
||||||
|
*
|
||||||
|
*/
|
||||||
public void saveData() {
|
public void saveData() {
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import managedbean.common.ManagedBeanBase;
|
|||||||
import managedbean.common.SessionUtils;
|
import managedbean.common.SessionUtils;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
|
* ManagedBean que gestiona la vista para el cambio del centro de atención primaria para los médicos de familia
|
||||||
*
|
*
|
||||||
* @author Marcos García Núñez (mgarcianun@uoc.edu)
|
* @author Marcos García Núñez (mgarcianun@uoc.edu)
|
||||||
*
|
*
|
||||||
@@ -36,6 +37,12 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inicializa el managed Bean.
|
||||||
|
*
|
||||||
|
* Si el usuario atual no se puede recupear de la sesión o si no es un perfil de tipo médicos de familia se muestra un mensaje de error.
|
||||||
|
*
|
||||||
|
*/
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
// Recuperamos el usuario logeado actual
|
// Recuperamos el usuario logeado actual
|
||||||
@@ -52,11 +59,13 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen
|
|||||||
this.id = Integer.valueOf(usr.getId());
|
this.id = Integer.valueOf(usr.getId());
|
||||||
|
|
||||||
if (usr.getUserType() == UserType.FAMILY_DOCTOR) {
|
if (usr.getUserType() == UserType.FAMILY_DOCTOR) {
|
||||||
|
// Recupera la lista de CAPs inicial desde el EJB.
|
||||||
this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
|
this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
|
||||||
|
|
||||||
FamilyDoctorTO fd = this.getRemoteManagerCommon().findFamilyDoctorById(this.id);
|
FamilyDoctorTO fd = this.getRemoteManagerCommon().findFamilyDoctorById(this.id);
|
||||||
this.setCurrentCenter(fd.getPrimaryHealthCareCenter());
|
this.setCurrentCenter(fd.getPrimaryHealthCareCenter());
|
||||||
}
|
} else
|
||||||
|
this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Perfil no válido", "Su tipo de usuario no permite que pueda tener acceso a esta página.");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
this.manageException(e);
|
this.manageException(e);
|
||||||
@@ -68,6 +77,12 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen
|
|||||||
return primaryHealthCareCentersList;
|
return primaryHealthCareCentersList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que implementa la búsqueda de un CAP a través del termino tecleado por el usuario en la lista de selección
|
||||||
|
*
|
||||||
|
* @param query Termino tecleado por el usuario
|
||||||
|
* @return Lista de CAPs que coinciden con el termino búscado por el usuario.
|
||||||
|
*/
|
||||||
public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
|
public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
|
||||||
if (query != null && query.equals(this.lastUIQuery) == false) {
|
if (query != null && query.equals(this.lastUIQuery) == false) {
|
||||||
this.lastUIQuery = query;
|
this.lastUIQuery = query;
|
||||||
@@ -81,16 +96,24 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que realiza el guardado de los cambios a través de la invocación del método del EJB correspondiente.
|
||||||
|
*
|
||||||
|
* El método realiza dos verificaciones previas: Que se haya seleccionado un CAP y que este sea diferente del asignado actualmente.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public void saveData() {
|
public void saveData() {
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
||||||
if (this.getNewCenter() == null) {
|
if (this.getNewCenter() == null) {
|
||||||
this.addFacesMessage("frmChangePHCC:newCenter", FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado", "Por favor, especifique un nuevvo centro de atención primaria.");
|
this.addFacesMessage("frmChangePHCC:newCenter", FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado",
|
||||||
|
"Por favor, especifique un nuevvo centro de atención primaria.");
|
||||||
error++;
|
error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.getNewCenter().getName().equals(this.getCurrentCenter().getName())) {
|
if (this.getNewCenter().getName().equals(this.getCurrentCenter().getName())) {
|
||||||
this.addFacesMessage("frmChangePHCC:newCenter", FacesMessage.SEVERITY_WARN, "El centro de atención primeria debe ser diferente", "Por favor, seleccione un centro de atención primaria diferente al cual está actualmente asignado.");
|
this.addFacesMessage("frmChangePHCC:newCenter", FacesMessage.SEVERITY_WARN, "El centro de atención primeria debe ser diferente",
|
||||||
|
"Por favor, seleccione un centro de atención primaria diferente al cual está actualmente asignado.");
|
||||||
error++;
|
error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,7 @@ import managedbean.common.ManagedBeanBase;
|
|||||||
import managedbean.common.ValidationUtils;
|
import managedbean.common.ValidationUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ManagedBEan que gestiona el registro de usuarios: Usuarios de tipo "Paciente"
|
* ManagedBEan que gestiona el registro de usuarios: Usuarios de tipo "Paciente" Usuarios de tipo "Médico de Familia" usuarios de tipo "Médico especialista"
|
||||||
* Usuarios de tipo "Médico de Familia" usuarios de tipo "Médico especialista"
|
|
||||||
*
|
*
|
||||||
* @author Marcos García Núñez (mgarcianun@uoc.edu)
|
* @author Marcos García Núñez (mgarcianun@uoc.edu)
|
||||||
*
|
*
|
||||||
@@ -59,6 +58,11 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inicializa el managedBean actual.
|
||||||
|
*
|
||||||
|
* Carga los tipos de usuario disponibles. Carga la lista de CAPs. Carga la lista de especialidades médicas.
|
||||||
|
*/
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
this.availableUserTypes = new ArrayList<UserType>();
|
this.availableUserTypes = new ArrayList<UserType>();
|
||||||
@@ -79,10 +83,17 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
|
|||||||
return availableUserTypes;
|
return availableUserTypes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gestiona el evento de cambio de tipo de usuario. El usuario que está intentando registrarse en el sistema ha cambiado el tipo de perfil (usuario) con el cual desea
|
||||||
|
* registrarse.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public void onUserTypeChange() {
|
public void onUserTypeChange() {
|
||||||
switch (this.userType) {
|
switch (this.userType) {
|
||||||
case SPECIALIST_DOCTOR:
|
case SPECIALIST_DOCTOR:
|
||||||
try {
|
try {
|
||||||
|
// El usuario queire registrarse como médico especialista, lanzamos un evento AJAX de cliente para que la interfaz refleje el cambio en el tipo de usuario
|
||||||
|
// seleccionado: Se muestra la lista de especialidades médicas para obligar a seleccionar una.
|
||||||
PrimeFaces.current().ajax().addCallbackParam("specs", true);
|
PrimeFaces.current().ajax().addCallbackParam("specs", true);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
this.manageException(e);
|
this.manageException(e);
|
||||||
@@ -90,6 +101,8 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
|
|||||||
break;
|
break;
|
||||||
case FAMILY_DOCTOR:
|
case FAMILY_DOCTOR:
|
||||||
try {
|
try {
|
||||||
|
// El usuario queire registrarse como médico especialista, lanzamos un evento AJAX de cliente para que la interfaz refleje el cambio en el tipo de usuario
|
||||||
|
// seleccionado: Se muestra la lista de CAPs para obligar a seleccionar uno.
|
||||||
PrimeFaces.current().ajax().addCallbackParam("caps", true);
|
PrimeFaces.current().ajax().addCallbackParam("caps", true);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
this.manageException(e);
|
this.manageException(e);
|
||||||
@@ -97,6 +110,8 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
|
|||||||
break;
|
break;
|
||||||
case ADMINISTRATOR:
|
case ADMINISTRATOR:
|
||||||
case PATIENT:
|
case PATIENT:
|
||||||
|
// El usuario queire registrarse como médico especialista, lanzamos un evento AJAX de cliente para que la interfaz refleje el cambio en el tipo de usuario
|
||||||
|
// seleccionado: Se ocultará la lista de selección de CAP o Especialidad médica
|
||||||
PrimeFaces.current().ajax().addCallbackParam("pats", true);
|
PrimeFaces.current().ajax().addCallbackParam("pats", true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -110,6 +125,12 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
|
|||||||
return primaryHealthCareCentersList;
|
return primaryHealthCareCentersList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que implementa la búsqueda de un CAP a través del termino tecleado por el usuario en la lista de selección
|
||||||
|
*
|
||||||
|
* @param query Termino tecleado por el usuario
|
||||||
|
* @return Lista de CAPs que coinciden con el termino búscado por el usuario.
|
||||||
|
*/
|
||||||
public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
|
public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
|
||||||
if (query != null && query.equals(this.lastUIQueryPH) == false) {
|
if (query != null && query.equals(this.lastUIQueryPH) == false) {
|
||||||
this.lastUIQueryPH = query;
|
this.lastUIQueryPH = query;
|
||||||
@@ -119,6 +140,12 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
|
|||||||
return this.primaryHealthCareCentersList;
|
return this.primaryHealthCareCentersList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que implementa la búsqueda de una especialidad a través del termino tecleado por el usuario en la lista de selección
|
||||||
|
*
|
||||||
|
* @param query Termino tecleado por el usuario
|
||||||
|
* @return Lista de especialidades que coinciden con el termino búscado por el usuario.
|
||||||
|
*/
|
||||||
public List<MedicalSpecialtyTO> completeMedicalSpecialty(String query) {
|
public List<MedicalSpecialtyTO> completeMedicalSpecialty(String query) {
|
||||||
if (query != null && query.equals(this.lastUIQueryMS) == false) {
|
if (query != null && query.equals(this.lastUIQueryMS) == false) {
|
||||||
this.lastUIQueryMS = query;
|
this.lastUIQueryMS = query;
|
||||||
@@ -128,7 +155,13 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
|
|||||||
return this.medicalSpecialitiesList;
|
return this.medicalSpecialitiesList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hadleNIFValueChange() {
|
/**
|
||||||
|
* Gestióna el evento de modficación del NIF del usuario actual. Búsca si el NIF ya está en uso para otro usuario. Solo se permite que el mismo NIF se refistro como paciente y
|
||||||
|
* como médico (especialista o de familia, pero no como ambos).
|
||||||
|
*
|
||||||
|
* Un Médico puede estar registrado como paciente con el mismo NIF, pero como médico de familia y especialista al mismo tiempo.
|
||||||
|
*/
|
||||||
|
public void handleNIFValueChange() {
|
||||||
boolean isDupe = false;
|
boolean isDupe = false;
|
||||||
if (ValidationUtils.checkIfNifAlreadyRegistered(this.getRemoteManagerCommon(), this.userType, this.nif, null) == true) {
|
if (ValidationUtils.checkIfNifAlreadyRegistered(this.getRemoteManagerCommon(), this.userType, this.nif, null) == true) {
|
||||||
isDupe = true;
|
isDupe = true;
|
||||||
@@ -194,11 +227,27 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
|
|||||||
this.nif = nif;
|
this.nif = nif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que realiza la persistencia de los datos en la base de datos a través de la invocación de los métodos del EJB correspondiente.
|
||||||
|
*
|
||||||
|
* Se realizan comprobaciones adicionales para asegurar que:
|
||||||
|
*
|
||||||
|
* Si el tipo de usuario que se está registrando es un méidco de familia, obliga a seleccionar un CAP para el usuario.
|
||||||
|
*
|
||||||
|
* Si el tipo de usuario que está registrando es un médico especialista, obliga a seleccionar una especialidad médica al usuario.
|
||||||
|
*
|
||||||
|
* Si el tipo de usuario que está registrando es un paciente, no obliga a seleccionar un médicos de familia (puede ser nulo) será necesario que el usuario lo seleccione a
|
||||||
|
* posteriori, una vez logeado en el sistema, a través de la opción de menú correspondiente.
|
||||||
|
*
|
||||||
|
* No se permite el registro de administradores a través de la página de registro pública.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public void addNewUser() {
|
public void addNewUser() {
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
||||||
if (this.isFamilyDoctor() && this.primaryHealthCareCenter == null) {
|
if (this.isFamilyDoctor() && this.primaryHealthCareCenter == null) {
|
||||||
this.addFacesMessage("frmRegisterUser:selPHC", FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado", "Por favor, especifique un centro de atención primaria.");
|
this.addFacesMessage("frmRegisterUser:selPHC", FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado",
|
||||||
|
"Por favor, especifique un centro de atención primaria.");
|
||||||
error++;
|
error++;
|
||||||
}
|
}
|
||||||
if (this.isSpecialistDoctor() && this.medicalSpecialty == null) {
|
if (this.isSpecialistDoctor() && this.medicalSpecialty == null) {
|
||||||
|
|||||||
@@ -63,6 +63,12 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inicializa el Bean:
|
||||||
|
*
|
||||||
|
* Carga la lsita de tipos de usuario (perfiles) Recupera los datos del usuario logeado actualmente, y los asigna a las propiedades del managedBean.
|
||||||
|
*
|
||||||
|
*/
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
this.userTypes = new ArrayList<UserType>();
|
this.userTypes = new ArrayList<UserType>();
|
||||||
@@ -109,6 +115,11 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Establece los valores de las propiedades del managedBean a partir de los datos de un Transfer Object de un paciente
|
||||||
|
*
|
||||||
|
* @param pat Paciente que está editando su perfil, y cuyos datos deben mostrarse en la vista.
|
||||||
|
*/
|
||||||
private void setPatientData(PatientTO pat) {
|
private void setPatientData(PatientTO pat) {
|
||||||
this.id = pat.getId();
|
this.id = pat.getId();
|
||||||
this.cipCode = pat.getPersonalIdentificationCode();
|
this.cipCode = pat.getPersonalIdentificationCode();
|
||||||
@@ -120,6 +131,11 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
|
|||||||
this.familyDoctor = pat.getFamilyDoctor();
|
this.familyDoctor = pat.getFamilyDoctor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Establece los valores de las propiedades del managedBean a partir de los datos de un Transfer Object de un médico de familia
|
||||||
|
*
|
||||||
|
* @param fd FamilyDoctor que está editando su perfil, y cuyos datos deben mostrarse en la vista.
|
||||||
|
*/
|
||||||
private void setFamilyDoctorData(FamilyDoctorTO fd) {
|
private void setFamilyDoctorData(FamilyDoctorTO fd) {
|
||||||
this.id = fd.getId();
|
this.id = fd.getId();
|
||||||
this.cipCode = fd.getProfessionalNumber();
|
this.cipCode = fd.getProfessionalNumber();
|
||||||
@@ -131,6 +147,11 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
|
|||||||
this.primaryHealthCareCenter = fd.getPrimaryHealthCareCenter();
|
this.primaryHealthCareCenter = fd.getPrimaryHealthCareCenter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Establece los valores de las propiedades del managedBean a partir de los datos de un Transfer Object de un médico especialista
|
||||||
|
*
|
||||||
|
* @param sd SpecialistDoctor que está editando su perfil, y cuyos datos deben mostrarse en la vista.
|
||||||
|
*/
|
||||||
private void setSpecialistDoctorData(SpecialistDoctorTO sd) {
|
private void setSpecialistDoctorData(SpecialistDoctorTO sd) {
|
||||||
this.id = sd.getId();
|
this.id = sd.getId();
|
||||||
this.cipCode = sd.getProfessionalNumber();
|
this.cipCode = sd.getProfessionalNumber();
|
||||||
@@ -154,25 +175,43 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
|
|||||||
return primaryHealthCareCentersList;
|
return primaryHealthCareCentersList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que implementa la búsqueda de un CAP a través del termino tecleado por el usuario en la lista de selección
|
||||||
|
*
|
||||||
|
* @param query Termino tecleado por el usuario
|
||||||
|
* @return Lista de CAPs que coinciden con el termino búscado por el usuario.
|
||||||
|
*/
|
||||||
public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
|
public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
|
||||||
if (query != null && query.equals(this.lastUIQueryPH) == false) {
|
if (query != null && query.equals(this.lastUIQueryPH) == false) {
|
||||||
this.lastUIQueryPH = query;
|
this.lastUIQueryPH = query;
|
||||||
// Recuperamos las 200 primeras coincidencias
|
// Recuperamos las XXX primeras coincidencias
|
||||||
this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
|
this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
|
||||||
}
|
}
|
||||||
return this.primaryHealthCareCentersList;
|
return this.primaryHealthCareCentersList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que implementa la búsqueda de una especialidad a través del termino tecleado por el usuario en la lista de selección
|
||||||
|
*
|
||||||
|
* @param query Termino tecleado por el usuario
|
||||||
|
* @return Lista de especialidades que coinciden con el termino búscado por el usuario.
|
||||||
|
*/
|
||||||
public List<MedicalSpecialtyTO> completeMedicalSpecialty(String query) {
|
public List<MedicalSpecialtyTO> completeMedicalSpecialty(String query) {
|
||||||
if (query != null && query.equals(this.lastUIQueryMS) == false) {
|
if (query != null && query.equals(this.lastUIQueryMS) == false) {
|
||||||
this.lastUIQueryMS = query;
|
this.lastUIQueryMS = query;
|
||||||
// Recuperamos las 200 primeras coincidencias
|
// Recuperamos las XXX primeras coincidencias
|
||||||
this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
|
this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
|
||||||
}
|
}
|
||||||
return this.medicalSpecialitiesList;
|
return this.medicalSpecialitiesList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hadleNIFValueChange() {
|
/**
|
||||||
|
* Gestióna el evento de modficación del NIF del usuario actual. Búsca si el NIF ya está en uso para otro usuario. Solo se permite que el mismo NIF se refistro como paciente y
|
||||||
|
* como médico (especialista o de familia, pero no como ambos).
|
||||||
|
*
|
||||||
|
* Un Médico puede estar registrado como paciente con el mismo NIF, pero como médico de familia y especialista al mismo tiempo.
|
||||||
|
*/
|
||||||
|
public void handleNIFValueChange() {
|
||||||
boolean isDupe = false;
|
boolean isDupe = false;
|
||||||
if (ValidationUtils.checkIfNifAlreadyRegistered(this.getRemoteManagerCommon(), this.userType, this.nif, this.id) == true) {
|
if (ValidationUtils.checkIfNifAlreadyRegistered(this.getRemoteManagerCommon(), this.userType, this.nif, this.id) == true) {
|
||||||
isDupe = true;
|
isDupe = true;
|
||||||
@@ -186,6 +225,12 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
|
|||||||
return familyDoctorList;
|
return familyDoctorList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que implementa la búsqueda de un médico de familia a través del termino tecleado por el usuario en la lista de selección
|
||||||
|
*
|
||||||
|
* @param query Termino tecleado por el usuario
|
||||||
|
* @return Lista de médicos de familia que coinciden con el termino búscado por el usuario.
|
||||||
|
*/
|
||||||
public List<FamilyDoctorTO> completeFamilyDoctor(String query) {
|
public List<FamilyDoctorTO> completeFamilyDoctor(String query) {
|
||||||
if (query != null && query.equals(this.lastUIQueryFD) == false) {
|
if (query != null && query.equals(this.lastUIQueryFD) == false) {
|
||||||
this.lastUIQueryFD = query;
|
this.lastUIQueryFD = query;
|
||||||
@@ -255,6 +300,18 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Método que guarda los datos realizados en la modificación del perfil.
|
||||||
|
* Tiene en cuenta el tipo de usuario que está editando su perfil.
|
||||||
|
*
|
||||||
|
* Si el usuario es un médico de familia requiere que se seleccione un CAP para el usuario.
|
||||||
|
* Si el usuario es un médico especialista requiere que se seleccione una especialidad médica para el usuario.
|
||||||
|
* Se comprueba que el NIF especificado sea válido y no pertenezca a otro usuario registrado (ver relgas de NIF permitidos para usuarios en el método handleNIFValueChange)
|
||||||
|
*
|
||||||
|
* Si se especifica una nueva contraseña, entonces se realiz un cambio de contraseña, y se requiere además: Que la nueva contraseña sea diferente a la anterior.
|
||||||
|
*
|
||||||
|
* Después de guardar los datos, se actualizan los datos guardados en la sesión actual para reflejar un posible cambio de nombre y/o apellidos.
|
||||||
|
*/
|
||||||
public void saveData() {
|
public void saveData() {
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user