From 0e309052ee8f220587e67feec6f56fef8b4c5e53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garcia=20Nu=C3=B1ez?= Date: Tue, 24 Dec 2019 17:53:59 +0100 Subject: [PATCH] Nuevos metodos EJB para componente de visitas. --- .../src/ejb/visit/VisitFacadeBean.java | 72 ++++++++++++++++++- .../src/ejb/visit/VisitFacadeRemote.java | 6 ++ 2 files changed, 77 insertions(+), 1 deletion(-) diff --git a/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java b/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java index 233133b..3a004c9 100644 --- a/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java +++ b/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java @@ -11,9 +11,14 @@ import javax.persistence.PersistenceContext; import javax.persistence.TypedQuery; import TO.VisitTO; +import common.HashUtils; import common.QuestionStatus; +import common.Utils; import ejb.common.CommonFacadeLocal; +import jpa.FamilyDoctorJPA; +import jpa.MedicalSpecialtyJPA; import jpa.QuestionJPA; +import jpa.SpecialistDoctorJPA; import jpa.VisitJPA; /** @@ -39,7 +44,7 @@ public class VisitFacadeBean implements VisitFacadeRemote { 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); query.setParameter("date", date); @@ -59,5 +64,70 @@ public class VisitFacadeBean implements VisitFacadeRemote { return listTO; } + + public Long getVisitsCount(Integer patientId, Date date) { + String strQuery = "SELECT count(1) from VisitJPA v %s"; + String strFilter = ""; + if (patientId != null) + strFilter = " and v.patient.id=:patientId "; + if (date != null) + strFilter += " and v.date=:date "; + if (strFilter.length() > 0) { + strQuery = String.format(strQuery, "WHERE 1=1 " + strFilter); + } + + TypedQuery query = entman.createQuery(strQuery, Long.class); + + if (patientId != null) + query.setParameter("patientId", patientId); + if (date != null) + query.setParameter("date", date); + + return query.getSingleResult(); + } + + public List listVisitsPaged(Integer patientId, Date date, int pageNumber, int pageSize) { + String strQuery = "SELECT v from VisitJPA v %s order by v.patient, v.date"; + String strFilter = ""; + if (patientId != null) + strFilter = " and v.patient.id=:patientId "; + if (date != null) + strFilter += " and v.date=:date "; + + if (strFilter.length() > 0) { + strQuery = String.format(strQuery, "WHERE 1=1 " + strFilter); + } + + TypedQuery query = entman.createQuery(strQuery, VisitJPA.class); + + if (patientId != null) + query.setParameter("patientId", patientId); + if (date != null) + query.setParameter("date", date); + + if (pageSize > 0) { + query.setFirstResult(pageNumber * pageSize); + query.setMaxResults(pageSize); + } + + List allJPA = query.getResultList(); + List listTO = new ArrayList(); + + for (VisitJPA item : allJPA) { + listTO.add(commonServices.getPOJOforVisitJPA(item, 1)); + } + + return listTO; + } + + + public VisitTO getVisit(int id) throws Exception { + VisitJPA vi = entman.find(VisitJPA.class, id); + if (vi == null) { + throw new Exception("No se encuentra la visita con identificador: " + String.valueOf(id)); + } + + return this.commonServices.getPOJOforVisitJPA(vi, 1); + } } diff --git a/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java b/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java index 97f7f32..7ca517b 100644 --- a/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java +++ b/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java @@ -22,4 +22,10 @@ public interface VisitFacadeRemote { public Long getScheduledVisitsCount(int familyDoctorId, Date date); public List listAllScheduledVisitsPaged(int familyDoctorId, Date date, int pageNumber, int pageSize); + + public Long getVisitsCount(Integer patientId, Date date); + + public List listVisitsPaged(Integer patientId, Date date, int pageNumber, int pageSize); + + public VisitTO getVisit(int id) throws Exception; } \ No newline at end of file