Añadido mensaje de información adicional sobre los datos.

This commit is contained in:
Marcos Garcia Nuñez
2020-01-05 16:04:00 +01:00
parent 2fe3f77c8f
commit 1eed84eed1
2 changed files with 38 additions and 6 deletions

View File

@@ -11,6 +11,9 @@
<p:growl id="mesgs" showDetail="true" closable="true" autoupdate="true" />
<p:panel id="panelVisit" header="Actualizar detalles de la visita">
<div class="ui-g ui-fluid">
<p:outputPanel rendered="#{UpdateVisit.infoMessage != null}" styleClass="ui-g-12">
<p:staticMessage rendered="#{UpdateVisit.infoMessage != null}" summary="Información adicional:" detail="#{UpdateVisit.infoMessage}" severity="info" />
</p:outputPanel>
<div class="ui-g-2">
<p:outputLabel for="paciente" value="Paciente:" />
@@ -37,8 +40,8 @@
</div>
<div class="ui-g-2">
<div class="ui-inputgroup">
<p:datePicker id="fecha" value="#{UpdateVisit.date}" pattern="dd/MM/yyyy" locale="es" disabled="#{UpdateVisit.readOnly}" showIcon="true" showButtonBar="true" autocomplete="true" required="true"
requiredMessage="Especifique la fecha de la visita." readonly="#{UpdateVisit.readOnly}">
<p:datePicker id="fecha" value="#{UpdateVisit.date}" pattern="dd/MM/yyyy" locale="es" disabled="#{UpdateVisit.readOnly}" showIcon="true" showButtonBar="true"
autocomplete="true" required="true" requiredMessage="Especifique la fecha de la visita." readonly="#{UpdateVisit.readOnly}">
<f:convertDateTime type="localDate" pattern="dd/MM/yyyy" timeStyle="short" />
</p:datePicker>
</div>

View File

@@ -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;
}
}