Gestión Centros de Atención Primaria

This commit is contained in:
dalvarezgon
2019-12-29 00:48:29 +01:00
parent d889bdbd6c
commit 8dc561f876
8 changed files with 347 additions and 12 deletions

View File

@@ -1,5 +1,6 @@
package ejb.systemAdmin;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
@@ -12,6 +13,7 @@ import TO.FamilyDoctorTO;
import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO;
import TO.PatientTO;
import TO.PrimaryHealthCareCenterTO;
import TO.SpecialistDoctorTO;
import common.Constants;
import common.HashUtils;
@@ -19,6 +21,7 @@ import common.UserType;
import ejb.common.CommonFacadeLocal;
import jpa.AdministratorJPA;
import jpa.MedicalSpecialtyJPA;
import jpa.PrimaryHealthCareCenterJPA;
/**
*
@@ -148,10 +151,81 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote {
@Override
public MedicalSpecialtyTO insertSpecialty(String name, String description) throws Exception {
MedicalSpecialtyJPA ms = new MedicalSpecialtyJPA(name, description);
entman.persist(ms);
return this.commonServices.getPOJOforMedicalSpecialtyJPA(ms);
}
@Override
public PrimaryHealthCareCenterTO updateHealthCareCenter(int id, String name, String location) throws Exception {
PrimaryHealthCareCenterJPA ms = entman.find(PrimaryHealthCareCenterJPA.class, id);
if (ms == null) {
throw new Exception("No se pueden actualizar los datos del CAP porque no se encuentra en la base de datos ningún registro con id: " + String.valueOf(id));
}
ms.setName(name);
ms.setLocation(location);
entman.persist(ms);
return this.commonServices.getPOJOforPrimaryHealthCareCenterJPA(ms);
}
public PrimaryHealthCareCenterTO findHealthCareCenterByName(String searchedName) {
TypedQuery<PrimaryHealthCareCenterJPA> query = entman.createQuery("from PrimaryHealthCareCenterJPA cap where cap.name=:name", PrimaryHealthCareCenterJPA.class);
query.setMaxResults(1);
query.setParameter("name", searchedName);
List<PrimaryHealthCareCenterJPA> results = query.getResultList();
if (results.size() > 0)
return this.commonServices.getPOJOforPrimaryHealthCareCenterJPA(results.get(0));
else
return null;
}
@Override
public void deleteHealthCareCenter(int id) throws Exception {
PrimaryHealthCareCenterJPA cap = entman.find(PrimaryHealthCareCenterJPA.class, id);
if (cap == null) {
throw new Exception("No se puede borrar el CAP porque no se encuentra en la base de datos ningún registro con id: " + String.valueOf(id));
}
entman.remove(cap);
}
@Override
public PrimaryHealthCareCenterTO insertHealthCareCenter(String name, String location) throws Exception {
PrimaryHealthCareCenterJPA cap = new PrimaryHealthCareCenterJPA(name, location);
entman.persist(cap);
return this.commonServices.getPOJOforPrimaryHealthCareCenterJPA(cap);
}
public Long getCAPCount() {
TypedQuery<Long> query = entman.createQuery("SELECT count(1) from PrimaryHealthCareCenterJPA", Long.class);
return query.getSingleResult();
}
public List<PrimaryHealthCareCenterTO> listCAPsPaged(int pageNumber, int pageSize) {
TypedQuery<PrimaryHealthCareCenterJPA> query = entman.createQuery("SELECT c from PrimaryHealthCareCenterJPA c order by c.name", PrimaryHealthCareCenterJPA.class);
if (pageSize > 0) {
query.setFirstResult(pageNumber * pageSize);
query.setMaxResults(pageSize);
}
List<PrimaryHealthCareCenterJPA> allJPA = query.getResultList();
List<PrimaryHealthCareCenterTO> caps = new ArrayList<PrimaryHealthCareCenterTO>();
for (PrimaryHealthCareCenterJPA item : allJPA) {
caps.add(commonServices.getPOJOforPrimaryHealthCareCenterJPA(item));
}
return caps;
}
}

View File

@@ -1,9 +1,12 @@
package ejb.systemAdmin;
import java.util.List;
import javax.ejb.Remote;
import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO;
import TO.PrimaryHealthCareCenterTO;
/**
*
@@ -25,4 +28,16 @@ public interface SystemAdminFacadeRemote {
public void deleteSpecialty(int id) throws Exception;
public MedicalSpecialtyTO insertSpecialty(String name, String description) throws Exception;
public PrimaryHealthCareCenterTO updateHealthCareCenter(int id, String name, String location) throws Exception;
public PrimaryHealthCareCenterTO findHealthCareCenterByName(String name);
public void deleteHealthCareCenter(int id) throws Exception;
public PrimaryHealthCareCenterTO insertHealthCareCenter(String name, String location) throws Exception;
public Long getCAPCount();
public List<PrimaryHealthCareCenterTO> listCAPsPaged(int pageNumber, int pageSize);
}

View File

@@ -42,7 +42,7 @@ public class MenuMBean implements Serializable {
subMenu = new DefaultSubMenu("Administración del sistema", "fa fa-wrench");
subMenu.addElement(createMenuItem("Gestionar especialidades", "fa fa-file-text-o", "/systemAdmin/ManageSpecialties", null));
subMenu.addElement(createMenuItem("Centros At. Primaria", "fa fa-hospital-o", "/systemAdmin/ManageSpecialties", null));
subMenu.addElement(createMenuItem("Centros At. Primaria", "fa fa-hospital-o", "/systemAdmin/ManageHealthCareCenters", null));
subMenu.addElement(new DefaultSeparator());
subMenu.addElement(createMenuItem("Ver médicos de un CAP", "fa fa-medkit", "/systemAdmin/ManageSpecialties", null));
subMenu.addElement(new DefaultSeparator());

View File

@@ -83,7 +83,7 @@ public class LoginMBean extends ManagedBeanBase {
// logout event, invalidate session
public String logout() {
this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Sessión cerrada", "Ha cerrado correctament su ssesión. Hasta la vista");
this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Sessión cerrada", "Ha cerrado correctament su sesión. Hasta la vista");
SessionUtils.DestroySession();

View File

@@ -0,0 +1,173 @@
package managedbean.systemAdmin;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import org.primefaces.event.RowEditEvent;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;
import TO.PrimaryHealthCareCenterTO;
import managedbean.common.ManagedBeanBase;
@Named("ManageHealthCareCenters")
@ViewScoped
public class ManageHealthCareCentersMBean extends ManagedBeanBase implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private String location;
private PrimaryHealthCareCenterTO primaryHealthCareCenter;
private LazyDataModel<PrimaryHealthCareCenterTO> lazyDataModelCAPsList;
public ManageHealthCareCentersMBean() {
}
@PostConstruct
public void init() {
this.lazyDataModelCAPsList = new LazyDataModel<PrimaryHealthCareCenterTO>() {
private static final long serialVersionUID = 1L;
@Override
public List<PrimaryHealthCareCenterTO> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
Long totalRowCount = getRemoteManagerSystemAdmin().getCAPCount();
this.setRowCount(totalRowCount.intValue());
return getRemoteManagerSystemAdmin().listCAPsPaged((first / pageSize), pageSize);
}
};
}
public LazyDataModel<PrimaryHealthCareCenterTO> getlazyDataModelCAPsList() {
return lazyDataModelCAPsList;
}
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 getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
private void showPrimaryHealthCareCenterData(PrimaryHealthCareCenterTO cap) {
this.primaryHealthCareCenter = cap;
if (cap == null) {
this.id = null;
this.name = "";
this.location = "";
} else {
this.id = cap.getId();
this.name = cap.getName();
this.location = cap.getLocation();
}
}
public PrimaryHealthCareCenterTO getPrimaryHealthCareCenter() {
return primaryHealthCareCenter;
}
public void setPrimaryHealthCareCenter(PrimaryHealthCareCenterTO value) {
this.primaryHealthCareCenter = value;
}
public void onRowEdit(RowEditEvent event) {
int error = 0;
if (((PrimaryHealthCareCenterTO) event.getObject()).getName() == null || ((PrimaryHealthCareCenterTO) event.getObject()).getName().trim().length() == 0) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Nombre no relleno", "Por favor, escriba un nombre para el centro.");
error++;
}
if (((PrimaryHealthCareCenterTO) event.getObject()).getLocation() == null || ((PrimaryHealthCareCenterTO) event.getObject()).getLocation().trim().length() == 0) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Localización no rellena", "Por favor, escriba una localización.");
error++;
}
if (error == 0) {
try {
this.getRemoteManagerSystemAdmin().updateHealthCareCenter(((PrimaryHealthCareCenterTO) event.getObject()).getId(), ((PrimaryHealthCareCenterTO) event.getObject()).getName(),
((PrimaryHealthCareCenterTO) event.getObject()).getLocation());
this.showPrimaryHealthCareCenterData(null);
FacesMessage msg = new FacesMessage("CAP editado", ((PrimaryHealthCareCenterTO) event.getObject()).getName());
FacesContext.getCurrentInstance().addMessage(null, msg);
} catch (Exception e) {
this.manageException(e);
}
}
}
public void onRowCancel(RowEditEvent event) {
FacesMessage msg = new FacesMessage("Edición cancelada", ((PrimaryHealthCareCenterTO) event.getObject()).getName());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void deleteDataById(Integer id) throws IOException {
try {
this.getRemoteManagerSystemAdmin().deleteHealthCareCenter(id);
this.showPrimaryHealthCareCenterData(null);
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "El CAP se ha borrado", "Los datos del Centro de Atención Primaria se han borrado correctamente.");
} catch (Exception e) {
this.manageException(e);
}
}
public void insertData() {
int error = 0;
if (name == null || name.trim().length() == 0) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Nombre no relleno", "Por favor, escriba un nombre para el centro.");
error++;
}
if (location == null || location.trim().length() == 0) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Localización no rellena", "Por favor, escriba una localización.");
error++;
}
if (this.getRemoteManagerSystemAdmin().findHealthCareCenterByName(name) != null) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "CAP ya existente", "El CAP ya se encuentra en la base de datos");
error++;
}
if (error == 0) {
try {
this.getRemoteManagerSystemAdmin().insertHealthCareCenter(name, location);
this.showPrimaryHealthCareCenterData(null);
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los datos se han guardado", "Los datos del Centro de Atención Primaria se han guardado correctamente.");
} catch (Exception e) {
this.manageException(e);
}
}
}
}

View File

@@ -10,7 +10,6 @@ import javax.inject.Named;
import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO;
import common.Constants;
import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils;
@@ -51,7 +50,7 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ
}
private void refreshFormData() {
this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
this.medicalSpecialitiesList = this.getRemoteManagerCommon().listAllMedicalSpecialities();
}
public Integer getId() {
@@ -118,9 +117,7 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ
if (error == 0) {
try {
MedicalSpecialtyTO ms = this.getRemoteManagerSystemAdmin().updateSpecialty(this.medicalSpecialty.getId(), this.medicalSpecialty.getName(),
this.medicalSpecialty.getDescription());
this.getRemoteManagerSystemAdmin().updateSpecialty(this.medicalSpecialty.getId(), this.medicalSpecialty.getName(),this.medicalSpecialty.getDescription());
this.showSpecialtyData(null);
this.refreshFormData();
@@ -149,7 +146,7 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ
this.showSpecialtyData(null);
this.refreshFormData();
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los especialidad se ha borrado", "Los datos de la especialidad se han borrado correctamente.");
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "La especialidad se ha borrado", "Los datos de la especialidad se han borrado correctamente.");
} catch (Exception e) {
this.manageException(e);
}
@@ -175,8 +172,7 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ
if (error == 0) {
try {
MedicalSpecialtyTO ms = this.getRemoteManagerSystemAdmin().insertSpecialty(name, description);
this.getRemoteManagerSystemAdmin().insertSpecialty(name, description);
this.showSpecialtyData(null);
this.refreshFormData();