diff --git a/1.sources/MyHealth/docroot/visit/AddVisit.xhtml b/1.sources/MyHealth/docroot/visit/AddVisit.xhtml index 9dace3a..fa31a04 100644 --- a/1.sources/MyHealth/docroot/visit/AddVisit.xhtml +++ b/1.sources/MyHealth/docroot/visit/AddVisit.xhtml @@ -2,7 +2,7 @@ + xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui"> @@ -36,8 +36,10 @@
- + + +
diff --git a/1.sources/MyHealth/docroot/visit/PatientVisitList.xhtml b/1.sources/MyHealth/docroot/visit/PatientVisitList.xhtml index e1f1b0b..9cf3fbb 100644 --- a/1.sources/MyHealth/docroot/visit/PatientVisitList.xhtml +++ b/1.sources/MyHealth/docroot/visit/PatientVisitList.xhtml @@ -17,6 +17,7 @@
+ @@ -50,7 +51,7 @@ - + diff --git a/1.sources/MyHealth/docroot/visit/UpdateVisit.xhtml b/1.sources/MyHealth/docroot/visit/UpdateVisit.xhtml index eb0a8bf..8217929 100644 --- a/1.sources/MyHealth/docroot/visit/UpdateVisit.xhtml +++ b/1.sources/MyHealth/docroot/visit/UpdateVisit.xhtml @@ -2,7 +2,7 @@ + xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui"> @@ -37,8 +37,10 @@
- + + +
@@ -49,9 +51,9 @@
- - +
diff --git a/1.sources/MyHealth/docroot/visit/VisitList.xhtml b/1.sources/MyHealth/docroot/visit/VisitList.xhtml index 5013168..9b9d1f0 100644 --- a/1.sources/MyHealth/docroot/visit/VisitList.xhtml +++ b/1.sources/MyHealth/docroot/visit/VisitList.xhtml @@ -18,6 +18,7 @@
+ @@ -35,7 +36,7 @@ - + diff --git a/1.sources/MyHealth/docroot/visit/VisitView.xhtml b/1.sources/MyHealth/docroot/visit/VisitView.xhtml index b8a71c3..1215e2f 100644 --- a/1.sources/MyHealth/docroot/visit/VisitView.xhtml +++ b/1.sources/MyHealth/docroot/visit/VisitView.xhtml @@ -2,7 +2,7 @@ + xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui"> @@ -37,8 +37,10 @@
- + + +
diff --git a/1.sources/MyHealth/src/TO/VisitTO.java b/1.sources/MyHealth/src/TO/VisitTO.java index 06d35da..2aaaf70 100644 --- a/1.sources/MyHealth/src/TO/VisitTO.java +++ b/1.sources/MyHealth/src/TO/VisitTO.java @@ -1,6 +1,7 @@ package TO; import java.io.Serializable; +import java.time.LocalDate; import java.time.LocalTime; import java.util.Date; @@ -19,7 +20,7 @@ public class VisitTO implements Serializable { private static final long serialVersionUID = 1L; private Integer id; - private Date date; + private LocalDate date; private LocalTime time; private String observations; private String result; @@ -30,7 +31,7 @@ public class VisitTO implements Serializable { super(); } - public VisitTO(Integer Id, Date date, LocalTime time, String observations, String result, FamilyDoctorTO fd, PatientTO pat) { + public VisitTO(Integer Id, LocalDate date, LocalTime time, String observations, String result, FamilyDoctorTO fd, PatientTO pat) { this.id = Id; this.date = date; this.time = time; @@ -48,11 +49,11 @@ public class VisitTO implements Serializable { this.id = id; } - public Date getDate() { + public LocalDate getDate() { return this.date; } - public void setDate(Date date) { + public void setDate(LocalDate date) { this.date = date; } diff --git a/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java b/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java index f819fc1..7f22f41 100644 --- a/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java +++ b/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java @@ -1,8 +1,8 @@ package ejb.visit; -import java.util.ArrayList; -import java.util.Date; +import java.time.LocalDate; import java.time.LocalTime; +import java.util.ArrayList; import java.util.List; import javax.ejb.EJB; @@ -17,9 +17,8 @@ import jpa.PatientJPA; import jpa.VisitJPA; /** - * EJB Session Bean Class para la Practica 2, Ejercicio 1 (ISCSD) Implementa los - * métodos de la capa de negocio que implementan la logica de negocio y la - * interacción con la capa de persistencia. + * EJB Session Bean Class para la Practica 2, Ejercicio 1 (ISCSD) Implementa los métodos de la capa de negocio que implementan la logica de negocio y la interacción con la capa de + * persistencia. * * @author mark * @@ -33,19 +32,16 @@ public class VisitFacadeBean implements VisitFacadeRemote { @EJB CommonFacadeLocal commonServices; - public Long getScheduledVisitsCount(int familyDoctorId, Date date) { - TypedQuery query = entman.createQuery( - "SELECT count(1) from VisitJPA v where v.date=:date and v.familyDoctor.id=:docId", Long.class); + public Long getScheduledVisitsCount(int familyDoctorId, LocalDate date) { + TypedQuery query = entman.createQuery("SELECT count(1) from VisitJPA v where v.date=:date and v.familyDoctor.id=:docId", Long.class); query.setParameter("date", date); query.setParameter("docId", familyDoctorId); return query.getSingleResult(); } - public List listAllScheduledVisitsPaged(int familyDoctorId, Date date, int pageNumber, int pageSize) { - TypedQuery query = entman.createQuery( - "SELECT v from VisitJPA v where v.date=:date and v.familyDoctor.id=:docId order by v.date, v.time", - VisitJPA.class); + public List listAllScheduledVisitsPaged(int familyDoctorId, LocalDate date, int pageNumber, int pageSize) { + TypedQuery query = entman.createQuery("SELECT v from VisitJPA v where v.date=:date and v.familyDoctor.id=:docId order by v.date, v.time", VisitJPA.class); query.setParameter("date", date); query.setParameter("docId", familyDoctorId); @@ -64,7 +60,7 @@ public class VisitFacadeBean implements VisitFacadeRemote { return listTO; } - public Long getVisitsCount(Integer patientId, Date date) { + public Long getVisitsCount(Integer patientId, LocalDate date) { String strQuery = "SELECT count(1) from VisitJPA v %s"; String strFilter = ""; if (patientId != null) @@ -87,7 +83,7 @@ public class VisitFacadeBean implements VisitFacadeRemote { return query.getSingleResult(); } - public List listVisitsPaged(Integer patientId, Date date, int pageNumber, int pageSize) { + public List listVisitsPaged(Integer patientId, LocalDate date, int pageNumber, int pageSize) { String strQuery = "SELECT v from VisitJPA v %s order by v.patient, v.date"; String strFilter = ""; if (patientId != null) @@ -143,14 +139,14 @@ public class VisitFacadeBean implements VisitFacadeRemote { entman.remove(vi); } - public void updateVisit(int id, Date date, LocalTime time) { + public void updateVisit(int id, LocalDate date, LocalTime time) { VisitJPA vi = entman.find(VisitJPA.class, id); vi.setDate(date); vi.setTime(time); entman.persist(vi); } - public VisitTO addVisit(int patientId, Date date, LocalTime time, String observations) { + public VisitTO addVisit(int patientId, LocalDate date, LocalTime time, String observations) { PatientJPA pat = entman.find(PatientJPA.class, patientId); diff --git a/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java b/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java index 15d0f05..9b0f3f2 100644 --- a/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java +++ b/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java @@ -1,7 +1,7 @@ package ejb.visit; +import java.time.LocalDate; import java.time.LocalTime; -import java.util.Date; import java.util.List; import javax.ejb.Remote; @@ -9,8 +9,7 @@ import javax.ejb.Remote; import TO.VisitTO; /** - * Interfaz remota del EJB Definimos los métodos que estarán disponibles para - * los clientes del EJB + * Interfaz remota del EJB Definimos los métodos que estarán disponibles para los clientes del EJB * * @author alina * @@ -21,13 +20,13 @@ public interface VisitFacadeRemote { * Definimos la interfaz remota */ - public Long getScheduledVisitsCount(int familyDoctorId, Date date); + public Long getScheduledVisitsCount(int familyDoctorId, LocalDate date); - public List listAllScheduledVisitsPaged(int familyDoctorId, Date date, int pageNumber, int pageSize); + public List listAllScheduledVisitsPaged(int familyDoctorId, LocalDate date, int pageNumber, int pageSize); - public Long getVisitsCount(Integer patientId, Date date); + public Long getVisitsCount(Integer patientId, LocalDate date); - public List listVisitsPaged(Integer patientId, Date date, int pageNumber, int pageSize); + public List listVisitsPaged(Integer patientId, LocalDate date, int pageNumber, int pageSize); public VisitTO getVisit(int id) throws Exception; @@ -35,8 +34,8 @@ public interface VisitFacadeRemote { public void removeVisit(int id); - public void updateVisit(int id, Date date, LocalTime time); + public void updateVisit(int id, LocalDate date, LocalTime time); - public VisitTO addVisit(int patientId, Date date, LocalTime time, String observations); + public VisitTO addVisit(int patientId, LocalDate date, LocalTime time, String observations); } \ No newline at end of file diff --git a/1.sources/MyHealth/src/jpa/VisitJPA.java b/1.sources/MyHealth/src/jpa/VisitJPA.java index e788f48..0576566 100644 --- a/1.sources/MyHealth/src/jpa/VisitJPA.java +++ b/1.sources/MyHealth/src/jpa/VisitJPA.java @@ -1,9 +1,8 @@ package jpa; import java.io.Serializable; -import java.sql.Time; +import java.time.LocalDate; import java.time.LocalTime; -import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; @@ -29,7 +28,7 @@ public class VisitJPA implements Serializable { @Column(updatable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; - private Date date; + private LocalDate date; private LocalTime time; private String observations; private String result; @@ -49,7 +48,7 @@ public class VisitJPA implements Serializable { super(); } - public VisitJPA(Date date, LocalTime time, String observations, String result, PatientJPA patient, FamilyDoctorJPA familydoctor) { + public VisitJPA(LocalDate date, LocalTime time, String observations, String result, PatientJPA patient, FamilyDoctorJPA familydoctor) { this.date = date; this.time = time; this.observations = observations; @@ -66,11 +65,11 @@ public class VisitJPA implements Serializable { this.id = value; } - public Date getDate() { + public LocalDate getDate() { return date; } - public void setDate(Date value) { + public void setDate(LocalDate value) { this.date = value; } diff --git a/1.sources/MyHealth/src/managedbean/visit/AddVisitMBean.java b/1.sources/MyHealth/src/managedbean/visit/AddVisitMBean.java index 5cf9ba6..c9c84c8 100644 --- a/1.sources/MyHealth/src/managedbean/visit/AddVisitMBean.java +++ b/1.sources/MyHealth/src/managedbean/visit/AddVisitMBean.java @@ -1,11 +1,12 @@ package managedbean.visit; import java.io.Serializable; +import java.time.LocalDate; import java.time.LocalTime; +import java.time.ZoneId; import java.util.Date; import javax.annotation.PostConstruct; -import javax.enterprise.context.RequestScoped; import javax.faces.application.FacesMessage; import javax.faces.view.ViewScoped; import javax.inject.Named; @@ -22,7 +23,7 @@ public class AddVisitMBean extends ManagedBeanBase implements Serializable { private static final long serialVersionUID = 1L; private Integer id; - private Date date; + private LocalDate date; private LocalTime time; private String observations; private String result; @@ -43,43 +44,43 @@ public class AddVisitMBean extends ManagedBeanBase implements Serializable { this.patient = this.getRemoteManagerCommon().findPatientById(patientId); this.familyDoctor = this.patient.getFamilyDoctor(); - this.date = new Date(); - }catch (Exception e) { + this.date = LocalDate.now(); + } catch (Exception e) { this.manageException(e); } - + } public void saveData() { - //Comprobamos que la fecha fijada para la visita no sea anterior a la actual + // Comprobamos que la fecha fijada para la visita no sea anterior a la actual int error = 0; - if (this.date.before( new Date())) { - this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Fecha incorrecta", - "La cita fijada es anterior al momento actual"); + LocalTime midnight = LocalTime.MIDNIGHT; + LocalDate today = LocalDate.now(); + + if (this.date.isBefore(today)) { + this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Fecha incorrecta", "La cita fijada es anterior al momento actual"); error++; } - if (this.date.equals(new Date()) && this.time.isBefore(LocalTime.now())){ - this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Fecha incorrecta", - "La cita fijada es anterior al momento actual"); + if (this.date.equals(today) && this.time.isBefore(LocalTime.now())) { + this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Fecha incorrecta", "La cita fijada es anterior al momento actual"); error++; } - if (error==0) { + if (error == 0) { try { this.getRemoteManagerVisit().addVisit(this.patient.getId(), this.date, this.time, this.observations); this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Visita creada", "La nueva visita se ha registrado correctamente en el sistema."); - }catch (Exception e) { + } catch (Exception e) { this.manageException(e); } } - - + } - public Date getDate() { + public LocalDate getDate() { return date; } - public void setDate(Date date) { + public void setDate(LocalDate date) { this.date = date; } diff --git a/1.sources/MyHealth/src/managedbean/visit/PatientVisitListMBean.java b/1.sources/MyHealth/src/managedbean/visit/PatientVisitListMBean.java index ab15d6e..bfae5e4 100644 --- a/1.sources/MyHealth/src/managedbean/visit/PatientVisitListMBean.java +++ b/1.sources/MyHealth/src/managedbean/visit/PatientVisitListMBean.java @@ -2,6 +2,7 @@ package managedbean.visit; import java.io.IOException; import java.io.Serializable; +import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.Map; @@ -32,7 +33,7 @@ public class PatientVisitListMBean extends ManagedBeanBase implements Serializab private Integer patientId; private LazyDataModel lazyDataModelVisitList; - private Date selectedDate; + private LocalDate selectedDate; private String lastUIQuery; private List patientList; @@ -42,14 +43,14 @@ public class PatientVisitListMBean extends ManagedBeanBase implements Serializab @PostConstruct public void init() { this.lastUIQuery = ""; - + // Si el usuario es un paciente listamos las visitas de ese paciente, si es admnistrador listamos todas. switch (SessionUtils.getUserType()) { case ADMINISTRATOR: this.patientId = null; this.patient = null; - this.selectedDate = new Date(); - + this.selectedDate = LocalDate.now(); + this.patientList = this.getRemoteManagerCommon().listPatientsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); break; case PATIENT: @@ -72,7 +73,7 @@ public class PatientVisitListMBean extends ManagedBeanBase implements Serializab patientId = patient.getId(); else patientId = null; - + Long totalRowCount = getRemoteManagerVisit().getVisitsCount(patientId, selectedDate); this.setRowCount(totalRowCount.intValue()); @@ -111,11 +112,11 @@ public class PatientVisitListMBean extends ManagedBeanBase implements Serializab public void showData() { } - public Date getSelectedDate() { + public LocalDate getSelectedDate() { return selectedDate; } - public void setSelectedDate(Date selectedDate) { + public void setSelectedDate(LocalDate selectedDate) { this.selectedDate = selectedDate; } diff --git a/1.sources/MyHealth/src/managedbean/visit/UpdateVisitMBean.java b/1.sources/MyHealth/src/managedbean/visit/UpdateVisitMBean.java index 7a7ba2c..ab60699 100644 --- a/1.sources/MyHealth/src/managedbean/visit/UpdateVisitMBean.java +++ b/1.sources/MyHealth/src/managedbean/visit/UpdateVisitMBean.java @@ -1,6 +1,7 @@ package managedbean.visit; import java.io.Serializable; +import java.time.LocalDate; import java.time.LocalTime; import java.util.Date; import java.util.Map; @@ -24,7 +25,7 @@ public class UpdateVisitMBean extends ManagedBeanBase implements Serializable { private static final long serialVersionUID = 1L; private Integer id; - private Date date; + private LocalDate date; private LocalTime time; private String observations; private String result; @@ -81,66 +82,55 @@ public class UpdateVisitMBean extends ManagedBeanBase implements Serializable { this.onlyResult = true; break; case SPECIALIST_DOCTOR: - this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Acesso denegado", - "Su perfil de usuario no está autorizado acceder a esta página."); + this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Acesso denegado", "Su perfil de usuario no está autorizado acceder a esta página."); return; } } public void saveData() { - //Comprobamos que la fecha fijada para la visita no sea anterior a la actual - int error = 0; - if (this.date.before( new Date())) { - this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Fecha incorrecta", - "La cita fijada es anterior al momento actual"); - error++; - } - if (this.date.equals(new Date()) && this.time.isBefore(LocalTime.now())){ - this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Fecha incorrecta", - "La cita fijada es anterior al momento actual"); - error++; - } - // Si el usuario es un paciente listamos las visitas de ese paciente, si es - // admnistrador listamos todas. - if(error==0) { - try { - switch (SessionUtils.getUserType()) { - case ADMINISTRATOR: - case PATIENT: - // Administrador y paciente pueden actualizar la fecha y hora de la visita - // (excepto esl resultado) - // TODO: Implementar método en EJB - - this.getRemoteManagerVisit().updateVisit(this.id, this.date, this.time); - this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Visita actualizada", - "La fecha y hora de la visita se ha actualizado correctamente."); - 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."); - break; - case SPECIALIST_DOCTOR: - this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Acesso denegado", - "Su perfil de usuario no está autorizado acceder a esta página."); - return; + try { + switch (SessionUtils.getUserType()) { + 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; + LocalTime midnight = LocalTime.MIDNIGHT; + LocalDate today = LocalDate.now(); + if (this.date.isBefore(today)) { + this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Fecha incorrecta", "La cita fijada es anterior al momento actual"); + error++; } - - }catch(Exception e){ - this.manageException(e); + if (this.date.equals(today) && this.time.isBefore(LocalTime.now())) { + this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Fecha incorrecta", "La cita fijada es anterior al momento actual"); + error++; + } + if (error == 0) { + this.getRemoteManagerVisit().updateVisit(this.id, this.date, this.time); + this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Visita actualizada", "La fecha y hora de la visita se ha actualizado correctamente."); + } + 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."); + break; + case SPECIALIST_DOCTOR: + this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Acesso denegado", "Su perfil de usuario no está autorizado acceder a esta página."); + return; } + } catch (Exception e) { + this.manageException(e); } - } - public Date getDate() { + public LocalDate getDate() { return date; } - public void setDate(Date date) { + public void setDate(LocalDate date) { this.date = date; } diff --git a/1.sources/MyHealth/src/managedbean/visit/VisitListMBean.java b/1.sources/MyHealth/src/managedbean/visit/VisitListMBean.java index 16b3534..e0fcabd 100644 --- a/1.sources/MyHealth/src/managedbean/visit/VisitListMBean.java +++ b/1.sources/MyHealth/src/managedbean/visit/VisitListMBean.java @@ -2,6 +2,7 @@ package managedbean.visit; import java.io.IOException; import java.io.Serializable; +import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.Map; @@ -27,7 +28,7 @@ public class VisitListMBean extends ManagedBeanBase implements Serializable { private int familyDoctorId; private String familyDoctorDisplayName; private LazyDataModel lazyDataModelVisitList; - private Date selectedDate; + private LocalDate selectedDate; public VisitListMBean() { } @@ -38,7 +39,7 @@ public class VisitListMBean extends ManagedBeanBase implements Serializable { this.familyDoctorId = Integer.valueOf(SessionUtils.getUserId()); this.familyDoctorDisplayName = SessionUtils.getUserDisplayName(); - this.selectedDate = new Date(); + this.selectedDate = LocalDate.now(); this.lazyDataModelVisitList = new LazyDataModel() { private static final long serialVersionUID = 1L; @@ -70,11 +71,11 @@ public class VisitListMBean extends ManagedBeanBase implements Serializable { ctx.getExternalContext().redirect(String.format("UpdateVisit.xhtml?id=%d&fromPage=%s", visitId, ctx.getViewRoot().getViewId())); } - public Date getSelectedDate() { + public LocalDate getSelectedDate() { return selectedDate; } - public void setSelectedDate(Date selectedDate) { + public void setSelectedDate(LocalDate selectedDate) { this.selectedDate = selectedDate; } diff --git a/1.sources/MyHealth/src/managedbean/visit/VisitMBean.java b/1.sources/MyHealth/src/managedbean/visit/VisitMBean.java index 69ddced..de533de 100644 --- a/1.sources/MyHealth/src/managedbean/visit/VisitMBean.java +++ b/1.sources/MyHealth/src/managedbean/visit/VisitMBean.java @@ -2,8 +2,8 @@ package managedbean.visit; import java.io.IOException; import java.io.Serializable; +import java.time.LocalDate; import java.time.LocalTime; -import java.util.Date; import java.util.Map; import javax.annotation.PostConstruct; @@ -24,7 +24,7 @@ public class VisitMBean extends ManagedBeanBase implements Serializable { private static final long serialVersionUID = 1L; private Integer id; - private Date date; + private LocalDate date; private LocalTime time; private String observations; private String result; @@ -75,11 +75,11 @@ public class VisitMBean extends ManagedBeanBase implements Serializable { ctx.getExternalContext().redirect(String.format("UpdateVisit.xhtml?id=%d&fromPage=%s", visitId, this.fromPage)); } - public Date getDate() { + public LocalDate getDate() { return date; } - public void setDate(Date date) { + public void setDate(LocalDate date) { this.date = date; }