diff --git a/1.sources/MyHealth/docroot/medicaltest/SearchSpecialist.xhtml b/1.sources/MyHealth/docroot/medicaltest/SearchSpecialist.xhtml
new file mode 100644
index 0000000..56e0972
--- /dev/null
+++ b/1.sources/MyHealth/docroot/medicaltest/SearchSpecialist.xhtml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #{dd.name} #{dd.surname} <#{dd.email}>
+
+
+
+
+
+
+
+
diff --git a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java
index bad922f..372fe6b 100644
--- a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java
+++ b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java
@@ -13,6 +13,7 @@ import javax.persistence.TypedQuery;
import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO;
import TO.QuestionTO;
+import TO.SpecialistDoctorTO;
import common.MedicalTestType;
import common.QuestionStatus;
import common.UserType;
@@ -20,6 +21,7 @@ import ejb.common.CommonFacadeLocal;
import jpa.FamilyDoctorJPA;
import jpa.PatientJPA;
import jpa.QuestionJPA;
+import jpa.SpecialistDoctorJPA;
import managedbean.common.SessionUtils;
/**
@@ -229,7 +231,21 @@ public class MedicalTestFacadeBean implements MedicalTestFacadeRemote {
* @param speciality
*/
@Override
- public void findSpecialistDoctorByMedicalSpeciality(MedicalSpecialtyTO speciality) {
+ public List findSpecialistDoctorByMedicalSpeciality(MedicalSpecialtyTO speciality) {
+ List pendingQuestions = new ArrayList();
+
+ TypedQuery query = entman.createQuery(
+ "SELECT q from SpecialistDoctorJPA q where q.medicalSpecialty.name=:spec order by q.medicalSpecialty.name asc, q.surname asc",
+ SpecialistDoctorJPA.class);
+ query.setParameter("spec", speciality.getName());
+
+ List allJPA = query.getResultList();
+
+ for (SpecialistDoctorJPA item : allJPA) {
+ pendingQuestions.add(commonServices.getPOJOforSpecialistDoctorJPA(item, 1));
+ }
+
+ return pendingQuestions;
}
}
\ No newline at end of file
diff --git a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java
index e074b64..876b9c4 100644
--- a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java
+++ b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java
@@ -7,6 +7,7 @@ import javax.ejb.Remote;
import TO.MedicalSpecialtyTO;
import TO.QuestionTO;
+import TO.SpecialistDoctorTO;
import common.MedicalTestType;
/**
@@ -114,5 +115,5 @@ public interface MedicalTestFacadeRemote {
*
* @param speciality
*/
- public void findSpecialistDoctorByMedicalSpeciality(MedicalSpecialtyTO speciality);
+ public List findSpecialistDoctorByMedicalSpeciality(MedicalSpecialtyTO speciality);
}
\ No newline at end of file
diff --git a/1.sources/MyHealth/src/managedbean/common/AuthorizationFilter.java b/1.sources/MyHealth/src/managedbean/common/AuthorizationFilter.java
index 54fe9d5..b9b0648 100644
--- a/1.sources/MyHealth/src/managedbean/common/AuthorizationFilter.java
+++ b/1.sources/MyHealth/src/managedbean/common/AuthorizationFilter.java
@@ -125,7 +125,7 @@ public class AuthorizationFilter implements Filter {
authorized = true;
if (reqURI.indexOf("/medicaltest/MedicalTests") > 0)
authorized = true;
- if (reqURI.indexOf("/medicaltest/SearchSpecialistBySpecialty") > 0)
+ if (reqURI.indexOf("/medicaltest/SearchSpecialist") > 0)
authorized = true;
if (reqURI.indexOf("/profile/UpdateProfile") > 0)
authorized = true;
diff --git a/1.sources/MyHealth/src/managedbean/common/MenuMBean.java b/1.sources/MyHealth/src/managedbean/common/MenuMBean.java
index f19e437..675ed59 100644
--- a/1.sources/MyHealth/src/managedbean/common/MenuMBean.java
+++ b/1.sources/MyHealth/src/managedbean/common/MenuMBean.java
@@ -86,7 +86,7 @@ public class MenuMBean implements Serializable {
}
if (tipoUsuario == UserType.PATIENT)
- subMenu.addElement(createMenuItem("Buscar especialista...", "fa fa-heartbeat", "/medicaltest/MedicalTests", null));
+ subMenu.addElement(createMenuItem("Buscar especialista...", "fa fa-heartbeat", "/medicaltest/SearchSpecialist", null));
model.addElement(subMenu);
}
diff --git a/1.sources/MyHealth/src/managedbean/medicalTest/SearchSpecialistMBean.java b/1.sources/MyHealth/src/managedbean/medicalTest/SearchSpecialistMBean.java
new file mode 100644
index 0000000..94f34a1
--- /dev/null
+++ b/1.sources/MyHealth/src/managedbean/medicalTest/SearchSpecialistMBean.java
@@ -0,0 +1,90 @@
+package managedbean.medicalTest;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+import javax.faces.view.ViewScoped;
+import javax.inject.Named;
+
+import org.primefaces.event.SelectEvent;
+
+import TO.MedicalSpecialtyTO;
+import TO.SpecialistDoctorTO;
+import common.Constants;
+import common.UserType;
+import managedbean.common.ManagedBeanBase;
+import managedbean.common.SessionUtils;
+
+@Named("sspec")
+@ViewScoped
+public class SearchSpecialistMBean extends ManagedBeanBase implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private int userID;
+ private UserType userType;
+ private List listDoctors;
+ private List medicalSpecialitiesList;
+ private MedicalSpecialtyTO medicalSpeciality;
+ private String lastUIQueryMS;
+
+ public SearchSpecialistMBean() {
+ }
+
+ @PostConstruct
+ public void init() {
+ // Inicialización de variables y propiedades van aquí.
+ this.userType = SessionUtils.getUserType();
+ this.userID = Integer.valueOf(SessionUtils.getUserId());
+ this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0,
+ Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
+ this.medicalSpeciality = null;
+ this.lastUIQueryMS = "";
+ this.listDoctors = new ArrayList();
+ }
+
+ public void onSelect(SelectEvent event) {
+ System.out.println("onSelect");
+ this.medicalSpeciality = (MedicalSpecialtyTO) event.getObject();
+ System.out.println(this.medicalSpeciality);
+ this.listDoctors = getRemoteManagerMedicalTest()
+ .findSpecialistDoctorByMedicalSpeciality(this.medicalSpeciality);
+ }
+
+ public List completeMedicalSpeciality(String query) {
+ if (query != null && query.equals(this.lastUIQueryMS) == false) {
+ this.lastUIQueryMS = query;
+ // Recuperamos las 200 primeras coincidencias
+ this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesFiltered(query, 0,
+ Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
+ }
+ return this.medicalSpecialitiesList;
+ }
+
+ public List getListDoctors() {
+ return listDoctors;
+ }
+
+ public void setListDoctors(List listDoctors) {
+ this.listDoctors = listDoctors;
+ }
+
+ public List getMedicalSpecialitiesList() {
+ return medicalSpecialitiesList;
+ }
+
+ public void setMedicalSpecialitiesList(List medicalSpecialitiesList) {
+ this.medicalSpecialitiesList = medicalSpecialitiesList;
+ }
+
+ public MedicalSpecialtyTO getMedicalSpeciality() {
+ return medicalSpeciality;
+ }
+
+ public void setMedicalSpeciality(MedicalSpecialtyTO medicalSpecialty) {
+ this.medicalSpeciality = medicalSpecialty;
+ }
+
+}