diff --git a/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java b/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java index 4312d72..f819fc1 100644 --- a/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java +++ b/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java @@ -2,6 +2,7 @@ package ejb.visit; import java.util.ArrayList; import java.util.Date; +import java.time.LocalTime; import java.util.List; import javax.ejb.EJB; @@ -12,11 +13,13 @@ import javax.persistence.TypedQuery; import TO.VisitTO; import ejb.common.CommonFacadeLocal; +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 * @@ -31,7 +34,8 @@ public class VisitFacadeBean implements VisitFacadeRemote { 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); + 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); @@ -39,7 +43,9 @@ public class VisitFacadeBean implements VisitFacadeRemote { } 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); + 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); @@ -57,7 +63,7 @@ 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 = ""; @@ -80,7 +86,7 @@ public class VisitFacadeBean implements VisitFacadeRemote { 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 = ""; @@ -93,7 +99,7 @@ public class VisitFacadeBean implements VisitFacadeRemote { strFilter = "WHERE 1=1 " + strFilter; } strQuery = String.format(strQuery, strFilter); - + TypedQuery query = entman.createQuery(strQuery, VisitJPA.class); if (patientId != null) @@ -105,7 +111,7 @@ public class VisitFacadeBean implements VisitFacadeRemote { query.setFirstResult(pageNumber * pageSize); query.setMaxResults(pageSize); } - + List allJPA = query.getResultList(); List listTO = new ArrayList(); @@ -116,7 +122,6 @@ public class VisitFacadeBean implements VisitFacadeRemote { return listTO; } - public VisitTO getVisit(int id) throws Exception { VisitJPA vi = entman.find(VisitJPA.class, id); if (vi == null) { @@ -125,4 +130,33 @@ public class VisitFacadeBean implements VisitFacadeRemote { return this.commonServices.getPOJOforVisitJPA(vi, 1); } + + public void addResultToVisit(int id, String result) { + VisitJPA vi = entman.find(VisitJPA.class, id); + + vi.setResult(result); + entman.persist(vi); + } + + public void removeVisit(int id) { + VisitJPA vi = entman.find(VisitJPA.class, id); + entman.remove(vi); + } + + public void updateVisit(int id, Date 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) { + + PatientJPA pat = entman.find(PatientJPA.class, patientId); + + VisitJPA vi = new VisitJPA(date, time, observations, "", pat, pat.getFamilyDoctor()); + entman.persist(vi); + + 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 7ca517b..15d0f05 100644 --- a/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java +++ b/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java @@ -1,5 +1,6 @@ package ejb.visit; +import java.time.LocalTime; import java.util.Date; import java.util.List; @@ -8,9 +9,10 @@ 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 mark + * @author alina * */ @Remote @@ -28,4 +30,13 @@ public interface VisitFacadeRemote { public List listVisitsPaged(Integer patientId, Date date, int pageNumber, int pageSize); public VisitTO getVisit(int id) throws Exception; + + public void addResultToVisit(int id, String result); + + public void removeVisit(int id); + + public void updateVisit(int id, Date date, LocalTime time); + + public VisitTO addVisit(int patientId, Date date, LocalTime time, String observations); + } \ No newline at end of file