diff --git a/1.sources/MyHealth/docroot/visit/UpdateVisit.xhtml b/1.sources/MyHealth/docroot/visit/UpdateVisit.xhtml index 7b99049..26af73e 100644 --- a/1.sources/MyHealth/docroot/visit/UpdateVisit.xhtml +++ b/1.sources/MyHealth/docroot/visit/UpdateVisit.xhtml @@ -11,6 +11,9 @@
+ + +
@@ -37,8 +40,8 @@
- +
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; + } }