From 95a22317e4d561ebb26bd425c741c9ee4926746e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garcia=20Nu=C3=B1ez?= Date: Mon, 9 Dec 2019 21:21:18 +0100 Subject: [PATCH] =?UTF-8?q?Implementada=20nueva=20funcionalidad=20para=20c?= =?UTF-8?q?ambiar=20el=20centro=20de=20antenci=C3=B3n=20primaria=20"Change?= =?UTF-8?q?PrimaryHealthCareCenterMBean".?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChangePrimaryHealthCareCenter.xhtml | 56 +++++++-- .../ChangePrimaryHealthCareCenterMBean.java | 119 +++++++++++++----- 2 files changed, 137 insertions(+), 38 deletions(-) diff --git a/1.sources/MyHealth/docroot/profile/ChangePrimaryHealthCareCenter.xhtml b/1.sources/MyHealth/docroot/profile/ChangePrimaryHealthCareCenter.xhtml index 138dbaf..ecd68a5 100644 --- a/1.sources/MyHealth/docroot/profile/ChangePrimaryHealthCareCenter.xhtml +++ b/1.sources/MyHealth/docroot/profile/ChangePrimaryHealthCareCenter.xhtml @@ -6,31 +6,67 @@ - + + +
+
+ +
+
+ Su perfil de usuario no permite que pueda cambiar su Centro de Atención Primaria asignado.
Si cree que no debería estar viendo esta página y que se trata de un + error, por favor, contacte con el soporte de la aplicación para obtener asistencia tecnica. +
+
+
+ +
+
+
+
+
+
+ - +
-
- + +
+
- +
-
- +
+ +
+
+
+ + + + + + +
+
+ +
+
-
+
- +
-
+
+ diff --git a/1.sources/MyHealth/src/managedbean/profile/ChangePrimaryHealthCareCenterMBean.java b/1.sources/MyHealth/src/managedbean/profile/ChangePrimaryHealthCareCenterMBean.java index cea6081..d45b95a 100644 --- a/1.sources/MyHealth/src/managedbean/profile/ChangePrimaryHealthCareCenterMBean.java +++ b/1.sources/MyHealth/src/managedbean/profile/ChangePrimaryHealthCareCenterMBean.java @@ -1,50 +1,113 @@ package managedbean.profile; import java.io.Serializable; -import java.util.Properties; +import java.util.Collection; -import javax.ejb.EJB; -import javax.enterprise.context.RequestScoped; +import javax.annotation.PostConstruct; +import javax.faces.application.FacesMessage; +import javax.faces.view.ViewScoped; import javax.inject.Named; -import javax.naming.Context; -import javax.naming.InitialContext; -import ejb.profile.ProfileFacadeRemote; +import TO.FamilyDoctorTO; +import TO.LoggedUserTO; +import TO.PrimaryHealthCareCenterTO; +import common.UserType; import managedbean.common.ManagedBeanBase; +import managedbean.common.SessionUtils; /*** * * @author Marcos García Núñez (mgarcianun@uoc.edu) * */ -@Named( "ChangePrimaryHealthCareCenterMBean") -@RequestScoped +@Named("ChangeCAP") +@ViewScoped public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implements Serializable { - private static final long serialVersionUID = 1L; - @EJB - private ProfileFacadeRemote remoteManager; + private int id; + private PrimaryHealthCareCenterTO currentCenter; + private PrimaryHealthCareCenterTO newCenter; + private Collection primaryHealthCareCentersList; + + public ChangePrimaryHealthCareCenterMBean() { - /** - * Constructor. Inicializa la conexión con el EJB Remoto - * - * @throws Exception - */ - public ChangePrimaryHealthCareCenterMBean() throws Exception { - initializeAdminFacadeRemote(); } - /** - * Inicializa la conexión con el EJB Remoto - * - * @throws Exception - */ - private void initializeAdminFacadeRemote() throws Exception { - Properties props = System.getProperties(); - Context ctx = new InitialContext(props); - remoteManager = (ProfileFacadeRemote) ctx - .lookup("java:app/myHealth.jar/ProfileFacadeBean!ejb.component.ProfileFacadeRemote"); + @PostConstruct + public void init() { + // Recuperamos el usuario logeado actual + LoggedUserTO usr = null; + try { + usr = SessionUtils.getloggedOnUser(); + + if (usr == null) + this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Sesión no válida", + "Su sesión actual no es válida, por favor cierre su sesión y vuelva a logearse en el sistema."); + else { + this.id = Integer.valueOf(usr.getId()); + + if (usr.getUserType() == UserType.FAMILY_DOCTOR) { + this.primaryHealthCareCentersList = this.getRemoteManagerSystemAdmin().listAllCAPs(); + + FamilyDoctorTO fd = this.getRemoteManagerProfile().retrieveFamilyDoctor(this.id); + this.setCurrentCenter(fd.getPrimaryHealthCareCenter()); + } + } + } catch (Exception e) { + this.manageException(e); + } + + } + + public Collection getPhcList() { + return primaryHealthCareCentersList; + } + + public int getId() { + return id; + } + + public void saveData() { + int error = 0; + + if (this.getNewCenter() == null) { + this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado", "Por favor, especifique un nuevvo centro de atención primaria."); + error++; + } + + if (this.getNewCenter().getName().equals(this.getCurrentCenter().getName())) { + this.addFacesMessage(FacesMessage.SEVERITY_WARN, "El centro de atención primeria debe ser diferente", "Por favor, seleccione un centro de atención primaria diferente al cual está actualmente asignado."); + error++; + } + + if (error == 0) { + try { + FamilyDoctorTO fd = this.getRemoteManagerProfile().changePrimaryHealthCareCenter(this.id, this.getNewCenter()); + this.currentCenter = fd.getPrimaryHealthCareCenter(); + this.newCenter = null; + + this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los datos se han guardado", "Su centro de atención primaria asignado se ha cambiado correctamente."); + } catch (Exception e) { + this.manageException(e); + } + } + } + + public PrimaryHealthCareCenterTO getCurrentCenter() { + return currentCenter; + } + + public void setCurrentCenter(PrimaryHealthCareCenterTO currentCenter) { + this.currentCenter = currentCenter; + } + + public PrimaryHealthCareCenterTO getNewCenter() { + return newCenter; + } + + public void setNewCenter(PrimaryHealthCareCenterTO newCenter) { + this.newCenter = newCenter; } }