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; + } + +}