Especialidades médicas editables

This commit is contained in:
dalvarezgon
2019-12-19 13:15:11 +01:00
parent 492ddad057
commit 1e3886cc54
6 changed files with 163 additions and 85 deletions

View File

@@ -11,17 +11,28 @@
<p:panel id="PanelMS" header="Página Gestión de Especialidades"> <p:panel id="PanelMS" header="Página Gestión de Especialidades">
<div class="ui-g ui-fluid"> <div class="ui-g ui-fluid">
<div class="ui-g-2 ui-md-2"> <div class="ui-g-2 ui-md-2">
<p:autoComplete id="specialty" dropdown="true" required="true" <p:outputLabel for="ms"/>
value="#{SystemAdmin.medicalSpecialty}" completeMethod="#{SystemAdmin.completeMedicalSpecialty}" var="ms" <p:selectOneMenu id="ms" value="#{ManageSpecialities.medicalSpecialty}" converter="omnifaces.SelectItemsIndexConverter"
placeholder="----- Selecciona una especialidad -----" itemLabel="#{ms.name}" itemValue="#{ms.name}" forceSelection="true"> effect="fold" editable="true" filter="true" filterMatchMode="startsWith"
<o:converter converterId="omnifaces.ListConverter" list="#{RegisterUser.medicalSpecialtiesList}" /> placeholder="- Selecciona una especialidad -">
<p:column> <f:selectItems value="#{ManageSpecialities.medicalSpecialtiesList}" var="ms" itemValue="#{ms}" itemLabel="#{ms.name}" />
<h:outputText value="#{ms.name}" /> <f:ajax render="name description" />
</p:column> </p:selectOneMenu>
</p:autoComplete> </div>
<div class="ui-g-1 ui-md-1" >
<p:outputLabel value="Editar nombre" for="name"/>
</div>
<div class="ui-g-2 ui-md-2">
<p:inputText id="name" value="#{ManageSpecialities.medicalSpecialty.name}" readonly="false" required="true" requiredMessage="Es necesario un nombre" />
</div>
<div class="ui-g-1 ui-md-1">
<p:outputLabel value="Editar descripción" for="description" />
</div> </div>
<div class="ui-g-4 ui-md-4"> <div class="ui-g-4 ui-md-4">
<p:message for="specialty" /> <p:inputText id="description" value="#{ManageSpecialities.medicalSpecialty.description}" readonly="false" required="true" requiredMessage="Es necesaria una descripción" />
</div>
<div class="ui-g-2 ui-md-2 ">
<p:commandButton validateClient="true" value="Guardar" update="frmManageSpecialties" action="#{ManageSpecialities.saveData}" icon="pi pi-check" />
</div> </div>
</div> </div>
</p:panel> </p:panel>

View File

@@ -9,7 +9,7 @@ import javax.xml.bind.annotation.XmlRootElement;
* @author Marcos García Núñez (mgarcianun@uoc.edu) * @author Marcos García Núñez (mgarcianun@uoc.edu)
* *
*/ */
@XmlRootElement(name = "medicalspeciality") @XmlRootElement(name = "medicalSpecialty")
public class MedicalSpecialtyTO implements Serializable { public class MedicalSpecialtyTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -7,6 +7,7 @@ import javax.persistence.PersistenceContext;
import TO.FamilyDoctorTO; import TO.FamilyDoctorTO;
import TO.LoggedUserTO; import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO;
import TO.PatientTO; import TO.PatientTO;
import TO.SpecialistDoctorTO; import TO.SpecialistDoctorTO;
import common.Constants; import common.Constants;
@@ -14,6 +15,8 @@ import common.HashUtils;
import common.UserType; import common.UserType;
import ejb.common.CommonFacadeLocal; import ejb.common.CommonFacadeLocal;
import jpa.AdministratorJPA; import jpa.AdministratorJPA;
import jpa.MedicalSpecialtyJPA;
import jpa.PatientJPA;
/** /**
* *
@@ -107,4 +110,20 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote {
return usr; return usr;
} }
@Override
public MedicalSpecialtyTO updateSpecialtyData(int id, String name, String description) throws Exception {
MedicalSpecialtyJPA ms = entman.find(MedicalSpecialtyJPA.class, id);
if (ms == null) {
throw new Exception("No se pueden actualizar los datos de la especialidad porque no se encuentra en la base de datos ningún registro con id: " + String.valueOf(id));
}
ms.setName(name);
ms.setDescription(description);
entman.persist(ms);
return this.commonServices.getPOJOforMedicalSpecialtyJPA(ms);
}
} }

View File

@@ -6,6 +6,7 @@ import javax.ejb.Remote;
import TO.LoggedUserTO; import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO; import TO.MedicalSpecialtyTO;
import TO.PatientTO;
import TO.PrimaryHealthCareCenterTO; import TO.PrimaryHealthCareCenterTO;
/** /**
@@ -19,6 +20,7 @@ public interface SystemAdminFacadeRemote {
* Definimos la interfaz remota * Definimos la interfaz remota
*/ */
public LoggedUserTO login(String id, String pwd); public LoggedUserTO login(String id, String pwd);
public MedicalSpecialtyTO updateSpecialtyData(int id, String name, String description) throws Exception;
} }

View File

@@ -0,0 +1,117 @@
package managedbean.systemAdmin;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.inject.Named;
import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO;
import common.Constants;
import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils;
@Named("ManageSpecialities")
@RequestScoped
public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private String description;
private MedicalSpecialtyTO medicalSpecialty;
private List<MedicalSpecialtyTO> medicalSpecialitiesList;
public ManageSpecialitiesMBean() {
}
@PostConstruct
public void init() {
if (this.medicalSpecialty == null) {
this.medicalSpecialty = new MedicalSpecialtyTO();
}
// 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.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
}
} catch (Exception e) {
this.manageException(e);
}
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
private void setSpecialtyData(MedicalSpecialtyTO ms) {
this.id = ms.getId();
this.name = ms.getName();
this.description = ms.getDescription();
}
public List<MedicalSpecialtyTO> getMedicalSpecialtiesList() {
return medicalSpecialitiesList;
}
public MedicalSpecialtyTO getMedicalSpecialty() {
return medicalSpecialty;
}
public void setMedicalSpecialty(MedicalSpecialtyTO value) {
this.medicalSpecialty = value;
}
public void saveData() {
int error = 0;
if (this.medicalSpecialty.getName() == null) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Nombre no relleno", "Por favor, escriba un nombre de especialidad.");
error++;
}
if (this.medicalSpecialty.getDescription() == null) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Descripción no rellena", "Por favor, escriba una descripción.");
error++;
}
if (error == 0) {
try {
MedicalSpecialtyTO ms = this.getRemoteManagerSystemAdmin().updateSpecialtyData(this.medicalSpecialty.getId(), this.medicalSpecialty.getName(), this.medicalSpecialty.getDescription());
this.setSpecialtyData(ms);
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los datos se han guardado", "Los datos de la especialidad se han guardado correctamente.");
} catch (Exception e) {
this.manageException(e);
}
}
}
}

View File

@@ -1,71 +0,0 @@
package managedbean.systemAdmin;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.inject.Named;
import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO;
import common.Constants;
import common.UserType;
import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils;
@Named("SystemAdmin")
@RequestScoped
public class SystemAdminMBean extends ManagedBeanBase implements Serializable {
private static final long serialVersionUID = 1L;
private String lastUIQuery;
private MedicalSpecialtyTO medicalSpecialty;
private List<MedicalSpecialtyTO> medicalSpecialitiesList;
public SystemAdminMBean() {
}
@PostConstruct
public void init() {
// Recuperamos el usuario logeado actual
LoggedUserTO usr = null;
this.lastUIQuery = "";
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.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
}
} catch (Exception e) {
this.manageException(e);
}
}
public List<MedicalSpecialtyTO> getMedicalSpecialtiesList() {
return medicalSpecialitiesList;
}
public List<MedicalSpecialtyTO> completeMedicalSpecialty(String query) {
if (query != null && query.equals(this.lastUIQuery) == false) {
this.lastUIQuery = query;
// Recuperamos las 200 primeras coincidencias
this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
}
return this.medicalSpecialitiesList;
}
public MedicalSpecialtyTO getMedicalSpecialty() {
return medicalSpecialty;
}
public void setMedicalSpecialty(MedicalSpecialtyTO value) {
this.medicalSpecialty = value;
}
}