From d9ddc207797a653fb39c1e6d04f46389d8b163da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garcia=20Nu=C3=B1ez?= Date: Thu, 2 Jan 2020 16:57:30 +0100 Subject: [PATCH] =?UTF-8?q?Comprobaci=C3=B3n=20de=20m=C3=A9dicos=20de=20fa?= =?UTF-8?q?milia=20asignados=20a=20centros=20al=20liminar=20un=20CAP.=20Co?= =?UTF-8?q?rregido=20error=20al=20obtener=20la=20cuenta=20de=20m=C3=A9dico?= =?UTF-8?q?s=20de=20familia=20por=20CAP.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../systemAdmin/SystemAdminFacadeBean.java | 7 +++ .../systemAdmin/SystemAdminFacadeRemote.java | 30 +++++++------ .../systemAdmin/ListDoctorsByCenterMBean.java | 2 +- .../ManageHealthCareCentersMBean.java | 43 +++++++++++-------- 4 files changed, 50 insertions(+), 32 deletions(-) diff --git a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java index 2b276de..b792ff6 100644 --- a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java +++ b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java @@ -230,6 +230,13 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote { return caps; } + public Long getFamilyDoctorsByCAPCount(int primaryHealthCareCenterId) { + TypedQuery query = entman.createQuery("SELECT count(1) from FamilyDoctorJPA d where d.primaryHealthCareCenter.id=:capId", Long.class); + query.setParameter("capId", primaryHealthCareCenterId); + + return query.getSingleResult(); + } + public List listAllFamilyDoctorsByCAPPaged(int primaryHealthCareCenterId, int pageNumber, int pageSize) { List familyDoctorsByCAP = new ArrayList(); diff --git a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java index bc430f5..9085480 100644 --- a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java +++ b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java @@ -22,32 +22,34 @@ public interface SystemAdminFacadeRemote { */ public LoggedUserTO login(String id, String pwd); - + public MedicalSpecialtyTO updateSpecialty(int id, String name, String description) throws Exception; - + public MedicalSpecialtyTO findSpecialtyByName(String name); - + 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 listCAPsPaged(int pageNumber, int pageSize); - + + public Long getFamilyDoctorsByCAPCount(int primaryHealthCareCenterId); + public List listAllFamilyDoctorsByCAPPaged(int primaryHealthCareCenterId, int pageNumber, int pageSize); - + public Long getPatientCount(int familyDoctorId); - + public SystemAdminTO findAdminByEmail(String email); - + public SystemAdminTO insertAdmin(String email, String password) throws Exception; } \ No newline at end of file diff --git a/1.sources/MyHealth/src/managedbean/systemAdmin/ListDoctorsByCenterMBean.java b/1.sources/MyHealth/src/managedbean/systemAdmin/ListDoctorsByCenterMBean.java index d3440e7..d154d55 100644 --- a/1.sources/MyHealth/src/managedbean/systemAdmin/ListDoctorsByCenterMBean.java +++ b/1.sources/MyHealth/src/managedbean/systemAdmin/ListDoctorsByCenterMBean.java @@ -45,7 +45,7 @@ public class ListDoctorsByCenterMBean extends ManagedBeanBase implements Seriali this.setRowCount(0); return null; } else { - Long totalRowCount = getRemoteManagerMedicalTest().getSpecialistDoctorByMedicalSpecialtyCount(primaryHealthCareCenter.getId()); + Long totalRowCount = getRemoteManagerSystemAdmin().getFamilyDoctorsByCAPCount(primaryHealthCareCenter.getId()); this.setRowCount(totalRowCount.intValue()); return getRemoteManagerSystemAdmin().listAllFamilyDoctorsByCAPPaged(primaryHealthCareCenter.getId(), (first / pageSize), pageSize); diff --git a/1.sources/MyHealth/src/managedbean/systemAdmin/ManageHealthCareCentersMBean.java b/1.sources/MyHealth/src/managedbean/systemAdmin/ManageHealthCareCentersMBean.java index 3b6d33e..6eb6cd4 100644 --- a/1.sources/MyHealth/src/managedbean/systemAdmin/ManageHealthCareCentersMBean.java +++ b/1.sources/MyHealth/src/managedbean/systemAdmin/ManageHealthCareCentersMBean.java @@ -98,8 +98,8 @@ public class ManageHealthCareCentersMBean extends ManagedBeanBase implements Ser public void setPrimaryHealthCareCenter(PrimaryHealthCareCenterTO value) { this.primaryHealthCareCenter = value; } - - public void onRowEdit(RowEditEvent event) { + + public void onRowEdit(RowEditEvent event) { int error = 0; if (((PrimaryHealthCareCenterTO) event.getObject()).getName() == null || ((PrimaryHealthCareCenterTO) event.getObject()).getName().trim().length() == 0) { @@ -113,35 +113,44 @@ public class ManageHealthCareCentersMBean extends ManagedBeanBase implements Ser if (error == 0) { try { - this.getRemoteManagerSystemAdmin().updateHealthCareCenter(((PrimaryHealthCareCenterTO) event.getObject()).getId(), ((PrimaryHealthCareCenterTO) event.getObject()).getName(), - ((PrimaryHealthCareCenterTO) event.getObject()).getLocation()); + 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); + 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 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 { + int error = 0; 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."); + if (this.getRemoteManagerSystemAdmin().getFamilyDoctorsByCAPCount(id) > 0) { + this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "No se puede eliminar este CAP", + "Existen médicos de familia asignados a este CPA, por lo cual no se puede eliminar. Asigne los médicos a otro CAP para proceder a eliminar el CAP a continuación."); + error++; + } + + if (error == 0) { + 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;