Implementada nueva funcionalidad para cambiar el centro de antención
primaria "ChangePrimaryHealthCareCenterMBean".
This commit is contained in:
@@ -6,31 +6,67 @@
|
|||||||
|
|
||||||
<ui:composition template="../header.xhtml">
|
<ui:composition template="../header.xhtml">
|
||||||
<ui:define name="content">
|
<ui:define name="content">
|
||||||
<h:form id="frmRegisterUser">
|
<h:form id="frmChangePHCC">
|
||||||
<p:messages id="mesgs" showDetail="true" closable="true" autoupdate="true" />
|
<p:messages id="mesgs" showDetail="true" closable="true" autoupdate="true" />
|
||||||
|
<p:panel id="badProfile" rendered="#{not home.familyDoctor}">
|
||||||
<p:panel id="DatosPersonales" header="Cambiar el Centro de Atención Primaria">
|
<div class="ui-g-3 ui-md-3" />
|
||||||
|
<div class="ui-g-6 ui-md-6">
|
||||||
|
<p:panel id="badProfileInfo" header="Perfil de usuario incorrecto para realizar acción">
|
||||||
<div class="ui-g ui-fluid">
|
<div class="ui-g ui-fluid">
|
||||||
<div class="ui-g-2 ui-md-2">
|
<div class="ui-g-12">
|
||||||
<p:outputLabel value="Campo1:" for="campo1" />
|
Su perfil de usuario no permite que pueda cambiar su Centro de Atención Primaria asignado.<br /> 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.
|
||||||
|
</div>
|
||||||
|
<div class="ui-g-3"></div>
|
||||||
|
<div class="ui-g-6">
|
||||||
|
<p:button value="Ir a la página principal" outcome="/home" icon="pi pi-home" />
|
||||||
|
</div>
|
||||||
|
<div class="ui-g-3"></div>
|
||||||
|
</div>
|
||||||
|
</p:panel>
|
||||||
|
</div>
|
||||||
|
<div class="ui-g-3 ui-md-3" />
|
||||||
|
</p:panel>
|
||||||
|
|
||||||
|
<p:panel id="PanelPHC" header="Cambiar centro de antención primaria asignado" rendered="#{home.familyDoctor}">
|
||||||
|
<div class="ui-g ui-fluid">
|
||||||
|
|
||||||
|
<div class="ui-g-4 ui-md-4">
|
||||||
|
<p:outputLabel value="Centro de antención primaria actualmente asignado:" />
|
||||||
</div>
|
</div>
|
||||||
<div class="ui-g-4 ui-md-4">
|
<div class="ui-g-4 ui-md-4">
|
||||||
<p:inputText id="campo1" value="123 asdf 123" required="true" requiredMessage="Por favor, indque el campo 1" />
|
<p:outputLabel id="lblCurrentCenter" value="#{ChangeCAP.currentCenter.displayDescription}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="ui-g-6 ui-md-6">
|
<div class="ui-g-4 ui-md-4" />
|
||||||
<p:message for="campo1" display="text" />
|
|
||||||
|
<div class="ui-g-4 ui-md-4">
|
||||||
|
<p:outputLabel value="Nuevo centro de atención primaria:" for="newCenter" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="ui-g-4 ui-md-4">
|
||||||
|
<p:selectOneMenu id="newCenter" value="#{ChangeCAP.newCenter}" converter="omnifaces.SelectItemsConverter" required="true"
|
||||||
|
requiredMessage="Por favor, selecciona un nuevo centro de antención primaria">
|
||||||
|
<f:selectItem itemLabel="Seleccione un nuevo centro de antención primario..." itemValue="" noSelectionOption="true" />
|
||||||
|
<f:selectItems value="#{ChangeCAP.phcList}" var="phc" itemLabel="#{phc.displayDescription}" itemValue="#{phc}" />
|
||||||
|
<p:column headerText="Nombre"><h:outputText value="#{phc.name}" /></p:column>
|
||||||
|
<p:column headerText="Localización"><h:outputText value="#{phc.location}" /></p:column>
|
||||||
|
</p:selectOneMenu>
|
||||||
|
</div>
|
||||||
|
<div class="ui-g-4 ui-md-4">
|
||||||
|
<p:message for="newCenter" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="ui-g-12 ui-g-nopad">
|
<div class="ui-g-12 ui-g-nopad">
|
||||||
<div class="ui-g-4 ui-md-4"></div>
|
<div class="ui-g-4 ui-md-4" />
|
||||||
<div class="ui-g-2 ui-md-2 ">
|
<div class="ui-g-2 ui-md-2 ">
|
||||||
<p:commandButton validateClient="true" value="Guardar" update="mesgs" icon="pi pi-check" />
|
<p:commandButton validateClient="true" value="Guardar" update="frmChangePHCC" action="#{ChangeCAP.saveData}" icon="pi pi-check" />
|
||||||
</div>
|
</div>
|
||||||
<div class="ui-g-2 ui-md-2">
|
<div class="ui-g-2 ui-md-2">
|
||||||
<p:button value="Volver" outcome="/home" icon="pi pi-home" />
|
<p:button value="Volver" outcome="/home" icon="pi pi-home" />
|
||||||
</div>
|
</div>
|
||||||
<div class="ui-g-4 ui-md-4"></div>
|
<div class="ui-g-4 ui-md-4" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</p:panel>
|
</p:panel>
|
||||||
</h:form>
|
</h:form>
|
||||||
</ui:define>
|
</ui:define>
|
||||||
|
|||||||
@@ -1,50 +1,113 @@
|
|||||||
package managedbean.profile;
|
package managedbean.profile;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Properties;
|
import java.util.Collection;
|
||||||
|
|
||||||
import javax.ejb.EJB;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.faces.application.FacesMessage;
|
||||||
|
import javax.faces.view.ViewScoped;
|
||||||
import javax.inject.Named;
|
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.ManagedBeanBase;
|
||||||
|
import managedbean.common.SessionUtils;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
*
|
*
|
||||||
* @author Marcos García Núñez (mgarcianun@uoc.edu)
|
* @author Marcos García Núñez (mgarcianun@uoc.edu)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Named( "ChangePrimaryHealthCareCenterMBean")
|
@Named("ChangeCAP")
|
||||||
@RequestScoped
|
@ViewScoped
|
||||||
public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implements Serializable {
|
public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
@EJB
|
private int id;
|
||||||
private ProfileFacadeRemote remoteManager;
|
private PrimaryHealthCareCenterTO currentCenter;
|
||||||
|
private PrimaryHealthCareCenterTO newCenter;
|
||||||
|
private Collection<PrimaryHealthCareCenterTO> primaryHealthCareCentersList;
|
||||||
|
|
||||||
|
public ChangePrimaryHealthCareCenterMBean() {
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor. Inicializa la conexión con el EJB Remoto
|
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public ChangePrimaryHealthCareCenterMBean() throws Exception {
|
|
||||||
initializeAdminFacadeRemote();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@PostConstruct
|
||||||
* Inicializa la conexión con el EJB Remoto
|
public void init() {
|
||||||
*
|
// Recuperamos el usuario logeado actual
|
||||||
* @throws Exception
|
LoggedUserTO usr = null;
|
||||||
*/
|
try {
|
||||||
private void initializeAdminFacadeRemote() throws Exception {
|
usr = SessionUtils.getloggedOnUser();
|
||||||
Properties props = System.getProperties();
|
|
||||||
Context ctx = new InitialContext(props);
|
if (usr == null)
|
||||||
remoteManager = (ProfileFacadeRemote) ctx
|
this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Sesión no válida",
|
||||||
.lookup("java:app/myHealth.jar/ProfileFacadeBean!ejb.component.ProfileFacadeRemote");
|
"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<PrimaryHealthCareCenterTO> 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user