diff --git a/1.sources/MyHealth/docroot/systemAdmin/ListDoctorsByCenter.xhtml b/1.sources/MyHealth/docroot/systemAdmin/ListDoctorsByCenter.xhtml
new file mode 100644
index 0000000..a3520e8
--- /dev/null
+++ b/1.sources/MyHealth/docroot/systemAdmin/ListDoctorsByCenter.xhtml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java
index bc3c636..7a8225b 100644
--- a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java
+++ b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java
@@ -20,6 +20,7 @@ import common.HashUtils;
import common.UserType;
import ejb.common.CommonFacadeLocal;
import jpa.AdministratorJPA;
+import jpa.FamilyDoctorJPA;
import jpa.MedicalSpecialtyJPA;
import jpa.PrimaryHealthCareCenterJPA;
@@ -228,4 +229,31 @@ 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();
+
+ TypedQuery query = entman.createQuery("SELECT d from FamilyDoctorJPA d where d.primaryHealthCareCenter.id=:capId order by d.name asc, d.surname asc",
+ FamilyDoctorJPA.class);
+ query.setParameter("capId", primaryHealthCareCenterId);
+
+ if (pageSize > 0) {
+ query.setFirstResult(pageNumber * pageSize);
+ query.setMaxResults(pageSize);
+ }
+
+ List allJPA = query.getResultList();
+
+ for (FamilyDoctorJPA item : allJPA) {
+ familyDoctorsByCAP.add(commonServices.getPOJOforFamilyDoctorJPA(item, 1));
+ }
+
+ return familyDoctorsByCAP;
+ }
}
diff --git a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java
index 7ee27dd..d8f5133 100644
--- a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java
+++ b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java
@@ -4,6 +4,7 @@ import java.util.List;
import javax.ejb.Remote;
+import TO.FamilyDoctorTO;
import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO;
import TO.PrimaryHealthCareCenterTO;
@@ -40,4 +41,8 @@ public interface SystemAdminFacadeRemote {
public Long getCAPCount();
public List listCAPsPaged(int pageNumber, int pageSize);
+
+ public Long getFamilyDoctorsByCAPCount(int primaryHealthCareCenterId);
+
+ public List listAllFamilyDoctorsByCAPPaged(int primaryHealthCareCenterId, int pageNumber, int pageSize);
}
\ No newline at end of file
diff --git a/1.sources/MyHealth/src/managedbean/common/MenuMBean.java b/1.sources/MyHealth/src/managedbean/common/MenuMBean.java
index eba96f5..973ad2c 100644
--- a/1.sources/MyHealth/src/managedbean/common/MenuMBean.java
+++ b/1.sources/MyHealth/src/managedbean/common/MenuMBean.java
@@ -44,7 +44,7 @@ public class MenuMBean implements Serializable {
subMenu.addElement(createMenuItem("Gestionar especialidades", "fa fa-file-text-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(createMenuItem("Ver médicos de un CAP", "fa fa-medkit", "/systemAdmin/ListDoctorsByCenter", null));
subMenu.addElement(new DefaultSeparator());
subMenu.addElement(createMenuItem("Añadir usuario Admin", "fa fa-user-secret", "/systemAdmin/ManageSpecialties", null));
diff --git a/1.sources/MyHealth/src/managedbean/systemAdmin/ListDoctorsByCenterMBean.java b/1.sources/MyHealth/src/managedbean/systemAdmin/ListDoctorsByCenterMBean.java
new file mode 100644
index 0000000..28c209a
--- /dev/null
+++ b/1.sources/MyHealth/src/managedbean/systemAdmin/ListDoctorsByCenterMBean.java
@@ -0,0 +1,85 @@
+package managedbean.systemAdmin;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.faces.view.ViewScoped;
+import javax.inject.Named;
+
+import org.primefaces.model.LazyDataModel;
+import org.primefaces.model.SortOrder;
+
+import TO.FamilyDoctorTO;
+import TO.PrimaryHealthCareCenterTO;
+import common.Constants;
+import managedbean.common.ManagedBeanBase;
+
+@Named("listDoctors")
+@ViewScoped
+public class ListDoctorsByCenterMBean extends ManagedBeanBase implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private List primaryHealthCareCenterList;
+ private PrimaryHealthCareCenterTO primaryHealthCareCenter;
+ private String lastUIQueryPH;
+ private LazyDataModel lazyDataModelDoctorList;
+
+ public ListDoctorsByCenterMBean() {
+ }
+
+ @PostConstruct
+ public void init() {
+ this.primaryHealthCareCenterList = this.getRemoteManagerCommon().listCAPsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
+ this.primaryHealthCareCenter = null;
+ this.lastUIQueryPH = "";
+
+ this.lazyDataModelDoctorList = new LazyDataModel() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public List load(int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) {
+ if (primaryHealthCareCenter == null) {
+ this.setRowCount(0);
+ return null;
+ } else {
+ Long totalRowCount = getRemoteManagerMedicalTest().getSpecialistDoctorByMedicalSpecialityCount(primaryHealthCareCenter.getId());
+ this.setRowCount(totalRowCount.intValue());
+
+ return getRemoteManagerSystemAdmin().listAllFamilyDoctorsByCAPPaged(primaryHealthCareCenter.getId(), (first / pageSize), pageSize);
+ }
+ }
+ };
+ }
+
+ public LazyDataModel getLazyDataModelDoctorList() {
+ return lazyDataModelDoctorList;
+ }
+
+ public List completePrimaryHealCareCenter(String query) {
+ if (query != null && query.equals(this.lastUIQueryPH) == false) {
+ this.lastUIQueryPH = query;
+ this.primaryHealthCareCenterList = this.getRemoteManagerCommon().listCAPsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
+ }
+ return this.primaryHealthCareCenterList;
+ }
+
+ public List getPrimaryHealthCareCenterList() {
+ return primaryHealthCareCenterList;
+ }
+
+ public void setPrimaryHealthCareCenterList(List value) {
+ this.primaryHealthCareCenterList = value;
+ }
+
+ public PrimaryHealthCareCenterTO getPrimaryHealthCareCenter() {
+ return primaryHealthCareCenter;
+ }
+
+ public void setPrimaryHealthCareCenter(PrimaryHealthCareCenterTO value) {
+ this.primaryHealthCareCenter = value;
+ }
+
+}