diff --git a/1.sources/MyHealth/src/managedbean/visit/UpdateVisitMBean.java b/1.sources/MyHealth/src/managedbean/visit/UpdateVisitMBean.java
index b79086e..64549fc 100644
--- a/1.sources/MyHealth/src/managedbean/visit/UpdateVisitMBean.java
+++ b/1.sources/MyHealth/src/managedbean/visit/UpdateVisitMBean.java
@@ -35,6 +35,7 @@ public class UpdateVisitMBean extends ManagedBeanBase implements Serializable {
private boolean readOnly;
private UserType userType;
private String fromPage;
+ private String infoMessage;
public UpdateVisitMBean() {
}
@@ -70,20 +71,40 @@ public class UpdateVisitMBean extends ManagedBeanBase implements Serializable {
this.result = vi.getResult();
this.patient = vi.getPatient();
this.familyDoctor = vi.getFamilyDoctor();
+
+ this.setInfoMessage();
} else {
this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Identificador de visita no válido",
"No se ha podido recuperar el identificador de visita especificado. Por favor, vuelva a intentarlo seleccionando de nuevo la visita.");
}
}
+ private void setInfoMessage() {
+ switch (this.userType) {
+ case ADMINISTRATOR:
+ case PATIENT:
+ if (this.result != null && this.result.trim().equals("") == false)
+ this.infoMessage = "La cita ya tiene un resultado y no es editable.";
+ break;
+ case FAMILY_DOCTOR:
+ // El médico de familia solo puede actualizar el resultado.
+ if (this.date.isAfter(LocalDate.now()))
+ this.infoMessage = "La cita es posterior a la fecha actual y no se puede actualizar el resultado.";
+ break;
+ default:
+ break;
+ }
+ }
+
public void saveData() {
+ int error = 0;
+
try {
switch (this.userType) {
case ADMINISTRATOR:
case PATIENT:
// Administrador y paciente pueden actualizar la fecha y hora de la visita (excepto el resultado)
// Comprobamos que la fecha fijada para la visita no sea anterior a la actual
- int error = 0;
LocalDate today = LocalDate.now();
if (this.date.isBefore(today)) {
@@ -101,9 +122,14 @@ public class UpdateVisitMBean extends ManagedBeanBase implements Serializable {
break;
case FAMILY_DOCTOR:
// El médico de familia solo puede actualizar el resultado.
- // TODO: implementar método EJB para actualizar el resultado.
- this.getRemoteManagerVisit().addResultToVisit(this.id, this.result);
- this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Resultado actualizado", "El resultado de la visita se ha actualizado correctamente.");
+ if (this.date.isAfter(LocalDate.now())) {
+ this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Fecha incorrecta", "La cita fijada es posterior a la fecha actual y no se puede actualizar el resultado.");
+ error++;
+ }
+ if (error == 0) {
+ this.getRemoteManagerVisit().addResultToVisit(this.id, this.result);
+ this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Resultado actualizado", "El resultado de la visita se ha actualizado correctamente.");
+ }
break;
case SPECIALIST_DOCTOR:
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Acesso denegado", "Su perfil de usuario no está autorizado acceder a esta página.");
@@ -204,4 +230,7 @@ public class UpdateVisitMBean extends ManagedBeanBase implements Serializable {
this.fromPage = fromPage;
}
+ public String getInfoMessage() {
+ return infoMessage;
+ }
}