From c7de5401adf9612032b0c3b5da9ed917dd259208 Mon Sep 17 00:00:00 2001 From: Roberto Orden Erena Date: Thu, 26 Dec 2019 17:10:10 +0100 Subject: [PATCH 1/5] Usando las firmas del MagicDraw --- .../docroot/medicaltest/Questions.xhtml | 3 +- .../medicalTest/MedicalTestFacadeBean.java | 42 +++----- .../medicalTest/MedicalTestFacadeRemote.java | 4 +- .../medicalTest/QuestionsMBean.java | 98 ++++++++++++------- 4 files changed, 80 insertions(+), 67 deletions(-) diff --git a/1.sources/MyHealth/docroot/medicaltest/Questions.xhtml b/1.sources/MyHealth/docroot/medicaltest/Questions.xhtml index f5bbd65..c4e2be5 100644 --- a/1.sources/MyHealth/docroot/medicaltest/Questions.xhtml +++ b/1.sources/MyHealth/docroot/medicaltest/Questions.xhtml @@ -49,7 +49,8 @@
- + + diff --git a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java index 18a9f76..bad922f 100644 --- a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java +++ b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java @@ -53,16 +53,18 @@ public class MedicalTestFacadeBean implements MedicalTestFacadeRemote { * @param message */ @Override - public void askQuestion(int professionalNumber, String title, String message) { - LoggedUserTO user = SessionUtils.getloggedOnUser(); - // 0. Conseguir el paciente en sesión - PatientJPA patient = entman.find(PatientJPA.class, user.getId()); - // 1. Buscar el médico de familia con ese professionalNumber - FamilyDoctorJPA fdoctor = entman.find(FamilyDoctorJPA.class, professionalNumber); - // 2. Crear un objeto de Question para ese médico desde el paciente en sesión - QuestionJPA question = new QuestionJPA(0, title, message, QuestionStatus.PENDING, patient, fdoctor, null); - // 3. Guardar - entman.persist(question); + public void askQuestion(int userId, String title, String message) { + QuestionJPA qjpa = new QuestionJPA(); + qjpa.setId(0); + qjpa.setTitle(title); + qjpa.setMessage(message); + qjpa.setStatus(QuestionStatus.PENDING); + + PatientJPA pat = entman.find(PatientJPA.class, userId); + qjpa.setPatient(pat); + qjpa.setFamilyDoctor(pat.getFamilyDoctor()); + + entman.persist(qjpa); } /** @@ -72,23 +74,11 @@ public class MedicalTestFacadeBean implements MedicalTestFacadeRemote { * @param response */ @Override - public void answerQuestion(QuestionTO q) { + public void answerQuestion(int questionId, String response) { QuestionJPA qjpa; - if(q.getId() >= 0) { - qjpa = entman.find(QuestionJPA.class, q.getId()); - qjpa.setResponse(q.getResponse()); - qjpa.setStatus(QuestionStatus.ANSWERED); - } else { - qjpa = new QuestionJPA(); - qjpa.setId(0); - qjpa.setTitle(q.getTitle()); - qjpa.setMessage(q.getMessage()); - qjpa.setStatus(QuestionStatus.PENDING); - } - - PatientJPA pat = entman.find(PatientJPA.class, q.getPatient().getId()); - qjpa.setPatient(pat); - qjpa.setFamilyDoctor(pat.getFamilyDoctor()); + qjpa = entman.find(QuestionJPA.class, questionId); + qjpa.setResponse(response); + qjpa.setStatus(QuestionStatus.ANSWERED); entman.persist(qjpa); } diff --git a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java index 199aadb..e074b64 100644 --- a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java +++ b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java @@ -29,7 +29,7 @@ public interface MedicalTestFacadeRemote { * @param title * @param message */ - public void askQuestion(int professionalNumber, String title, String message); + public void askQuestion(int userID, String title, String message); /** * El médico responde a una pregunta @@ -37,7 +37,7 @@ public interface MedicalTestFacadeRemote { * @param question * @param response */ - public void answerQuestion(QuestionTO question); + public void answerQuestion(int questionId, String response); /** * Recuperar las preguntas sin respuesta para un médico diff --git a/1.sources/MyHealth/src/managedbean/medicalTest/QuestionsMBean.java b/1.sources/MyHealth/src/managedbean/medicalTest/QuestionsMBean.java index 84d64e0..32ce835 100644 --- a/1.sources/MyHealth/src/managedbean/medicalTest/QuestionsMBean.java +++ b/1.sources/MyHealth/src/managedbean/medicalTest/QuestionsMBean.java @@ -23,10 +23,7 @@ public class QuestionsMBean extends ManagedBeanBase implements Serializable { private int userID; private UserType userType; - private List pendingQuestions; - protected String title; - protected String message; - protected String response; + private List allQuestions; protected QuestionTO selected; public QuestionsMBean() { @@ -40,36 +37,41 @@ public class QuestionsMBean extends ManagedBeanBase implements Serializable { this.selected = null; this.loadQuestions(); - this.printSelected(); } - - private void printSelected() { - System.out.println("Selected: "); + + private void printSelected(String asd) { + if(asd!=null) { + asd = "'" + asd + "'"; + }else { + asd = ""; + } + System.out.println("Selected " + asd + ": "); System.out.println(this.selected); } public List getPendingQuestions() { - return pendingQuestions; + return allQuestions; } public void setPendingQuestions(List value) { - this.pendingQuestions = value; + this.allQuestions = value; } + /** * Cargará las preguntas enviadas al médico o escritas por el paciente, esto irá * en función del tipo de usuario en sesión */ private void loadQuestions() { - this.printSelected(); + this.printSelected(""); if (userType == UserType.FAMILY_DOCTOR) { // Listar las preguntas destinadas a él // El método disponible del API básico es referente al doctor - this.pendingQuestions = getRemoteManagerMedicalTest().listAllPendingQuestions(userID); + this.allQuestions = getRemoteManagerMedicalTest().listAllPendingQuestions(userID); } else if (userType == UserType.PATIENT) { // Listar las preguntas realiadas por él // Para reutilizar la misma view, necesitaremos nuevos métodos para el API de // cara a recoger sus preguntas realizadas. - this.pendingQuestions = getRemoteManagerMedicalTest().listAllMyQuestions(userID); + this.allQuestions = getRemoteManagerMedicalTest().listAllMyQuestions(userID); } } @@ -84,61 +86,57 @@ public class QuestionsMBean extends ManagedBeanBase implements Serializable { public void setShowCreate() { // } - + public boolean getDisabledMessage() { - if(this.selected != null) { + if (this.selected != null) { return this.selected.getStatus() != QuestionStatus.NEW; } return false; } - + public boolean isDisabledMessage() { return this.getDisabledMessage(); } - + public void setDisabledMessage(boolean bval) { // Nothing to do } public void onSelect(SelectEvent event) { - this.printSelected(); + this.printSelected("onSelect antes"); this.selected = (QuestionTO) event.getObject(); - this.printSelected(); + this.printSelected("onSelect despues"); } public void onUnSelect(SelectEvent event) { this.selected = null; } - + public void setSelected(QuestionTO selected) { - this.printSelected(); + this.printSelected("setSelected antes"); this.selected = selected; + this.printSelected("setSelected despues"); } - + public QuestionTO getSelected() { return this.selected; } - public void setTitle(String title) { - this.title = title; + public void answerQuestion() { + // Es un selected recuperado de la lista + getRemoteManagerMedicalTest().answerQuestion(this.selected.getId(), this.selected.getResponse()); + this.init(); } - public void setMessage(String message) { - this.message = message; - } - - public void setResponse(String response) { - this.response = response; - } - - public void save() { - this.printSelected(); - getRemoteManagerMedicalTest().answerQuestion(this.selected); + public void askQuestion() { + // Es un question nuevo + QuestionTO q = this.selected; + getRemoteManagerMedicalTest().askQuestion(q.getPatient().getId(), q.getTitle(), q.getMessage()); this.init(); } - + public void create() { - this.printSelected(); + this.printSelected("create start"); String template = ""; this.selected = new QuestionTO(); this.selected.setId(-1); @@ -148,7 +146,7 @@ public class QuestionsMBean extends ManagedBeanBase implements Serializable { this.selected.setStatus(QuestionStatus.NEW); this.selected.getPatient().setId(Integer.parseInt(SessionUtils.getloggedOnUser().getId())); this.selected.getPatient().setName(SessionUtils.getloggedOnUser().getName()); - this.printSelected(); + this.printSelected("create end"); } public boolean getShowPanelDetail() { @@ -163,4 +161,28 @@ public class QuestionsMBean extends ManagedBeanBase implements Serializable { // } + public boolean getAskButton() { + return this.selected == null ? (userType == UserType.PATIENT) + : (userType == UserType.PATIENT && this.selected.getStatus() == QuestionStatus.NEW); + } + + public boolean isAskButton() { + return this.getAskButton(); + } + + public void setAskButton() { + } + + public boolean getAnswerButton() { + return this.selected == null ? (userType == UserType.FAMILY_DOCTOR) + : (userType == UserType.FAMILY_DOCTOR && this.selected.getStatus() == QuestionStatus.PENDING); + } + + public boolean isAnswerButton() { + return this.getAnswerButton(); + } + + public void setAnswerButton() { + } + } From 87da9ccbf1f89dc13da146325ce25a35dbbfe6a9 Mon Sep 17 00:00:00 2001 From: Roberto Orden Erena Date: Thu, 26 Dec 2019 18:43:16 +0100 Subject: [PATCH 2/5] =?UTF-8?q?B=C3=BAsqueda=20de=20especialista=20por=20e?= =?UTF-8?q?specialidad?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../medicaltest/SearchSpecialist.xhtml | 56 ++++++++++++ .../medicalTest/MedicalTestFacadeBean.java | 18 +++- .../medicalTest/MedicalTestFacadeRemote.java | 3 +- .../common/AuthorizationFilter.java | 2 +- .../src/managedbean/common/MenuMBean.java | 2 +- .../medicalTest/SearchSpecialistMBean.java | 90 +++++++++++++++++++ 6 files changed, 167 insertions(+), 4 deletions(-) create mode 100644 1.sources/MyHealth/docroot/medicaltest/SearchSpecialist.xhtml create mode 100644 1.sources/MyHealth/src/managedbean/medicalTest/SearchSpecialistMBean.java 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; + } + +} From 85f6cf9644b5acba13052d1c6074039bd25180dc Mon Sep 17 00:00:00 2001 From: Roberto Orden Erena Date: Thu, 26 Dec 2019 19:13:17 +0100 Subject: [PATCH 3/5] =?UTF-8?q?Revisi=C3=B3n=20de=20c=C3=B3digo=20y=20limp?= =?UTF-8?q?ieza?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../medicaltest/SearchSpecialist.xhtml | 1 - .../medicalTest/MedicalTestFacadeBean.java | 46 ++++++------------- .../medicalTest/MedicalTestFacadeRemote.java | 6 +-- 3 files changed, 14 insertions(+), 39 deletions(-) diff --git a/1.sources/MyHealth/docroot/medicaltest/SearchSpecialist.xhtml b/1.sources/MyHealth/docroot/medicaltest/SearchSpecialist.xhtml index 56e0972..1ab2a88 100644 --- a/1.sources/MyHealth/docroot/medicaltest/SearchSpecialist.xhtml +++ b/1.sources/MyHealth/docroot/medicaltest/SearchSpecialist.xhtml @@ -43,7 +43,6 @@
- #{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 372fe6b..b88abf7 100644 --- a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java +++ b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java @@ -126,44 +126,24 @@ public class MedicalTestFacadeBean implements MedicalTestFacadeRemote { return pendingQuestions; } - public Long getPendingQuestionsCount(int familyDoctorId) { - TypedQuery query = entman.createQuery( - "SELECT count(1) from QuestionJPA q where q.status=:status and q.familyDoctor.id=:docId", Long.class); - query.setParameter("status", QuestionStatus.PENDING); - query.setParameter("docId", familyDoctorId); - - return query.getSingleResult(); - } - - public List listPendingQuestionsPaged(int familyDoctorId, int pageNumber, int pageSize) { - TypedQuery query = entman.createQuery( - "SELECT q from QuestionJPA q where q.status=:status and q.familyDoctor.id=:docId order by q.title", - QuestionJPA.class); - query.setParameter("status", QuestionStatus.PENDING); - query.setParameter("docId", familyDoctorId); - - if (pageSize > 0) { - query.setFirstResult(pageNumber * pageSize); - query.setMaxResults(pageSize); - } - - List allJPA = query.getResultList(); - List pendingQuestions = new ArrayList(); - - for (QuestionJPA item : allJPA) { - pendingQuestions.add(commonServices.getPOJOforQuestionJPA(item, 1)); - } - - return pendingQuestions; - } - /** - * Recuperar una pregunta por su String + * Recuperar una pregunta por su identificador * * @param question */ @Override - public void getQuestion(String question) { + public QuestionTO getQuestion(int idQuestion) { + QuestionTO resp = new QuestionTO(); + + TypedQuery query = entman.createQuery( + "SELECT q from QuestionJPA q where q.id=:idquestion", + QuestionJPA.class); + + query.setParameter("idquestion", idQuestion); + + resp = commonServices.getPOJOforQuestionJPA(query.getSingleResult(),1); + + return resp; } // ********************************************************************* diff --git a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java index 876b9c4..e1c67de 100644 --- a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java +++ b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java @@ -53,17 +53,13 @@ public interface MedicalTestFacadeRemote { * Recuperar las preguntas hechas por un paciente */ public List listAllMyQuestions(int userId); - - public Long getPendingQuestionsCount(int familyDoctorId); - - public List listPendingQuestionsPaged(int familyDoctorId, int pageNumber, int pageSize); /** * Recuperar una pregunta por su String * * @param question */ - public void getQuestion(String question); + public QuestionTO getQuestion(int idQuestion); // ********************************************************************* MEDICAL // TEST From 6fd9e7ca6c90fe0bccd5e34e74486275cae7b70d Mon Sep 17 00:00:00 2001 From: Roberto Orden Erena Date: Thu, 26 Dec 2019 21:10:40 +0100 Subject: [PATCH 4/5] =?UTF-8?q?Integradas=20sugerencias=20de=20la=20vista?= =?UTF-8?q?=20recibidas=20de=20Marcos,=20se=20ha=20tenido=20que=20integrar?= =?UTF-8?q?=20con=20el=20uso=20de=20las=20firmas=20de=20EJB=20de=20MagicDr?= =?UTF-8?q?w,=20adem=C3=A1s=20de=20eliminar=20el=20uso=20de=20propiedades?= =?UTF-8?q?=20sueltas=20en=20pro=20del=20objeto=20seleccionado,=20y=20tamb?= =?UTF-8?q?i=C3=A9n=20se=20ha=20hecho=20alg=C3=BAn=20cambio=20extra=20para?= =?UTF-8?q?=20que=20la=20botonera=20de=20la=20interfaz=20quede=20m=C3=A1s?= =?UTF-8?q?=20integrada.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docroot/medicaltest/Questions.xhtml | 114 ++++++++------ .../medicalTest/QuestionsMBean.java | 146 ++++++------------ 2 files changed, 116 insertions(+), 144 deletions(-) diff --git a/1.sources/MyHealth/docroot/medicaltest/Questions.xhtml b/1.sources/MyHealth/docroot/medicaltest/Questions.xhtml index c4e2be5..8e709c6 100644 --- a/1.sources/MyHealth/docroot/medicaltest/Questions.xhtml +++ b/1.sources/MyHealth/docroot/medicaltest/Questions.xhtml @@ -1,57 +1,85 @@ - - + +
-
- - - - - - - - - - - - +
+ + + + + + + + + + + + + + + + +
-
-
- - - - - - - #{Questions.selected.title} - - -

Respuesta:

- - -
-
- - -
+
+ +
+
+

Título:

+
+
+ +
+
+

Pregunta:

+
+
+ +
+
+
+ +
+
+
+ + + +
+
+

Título:

+
+
+ +
+
+

Pregunta:

+
+
+ +
+
+

Respuesta:

+
+
+ +
+
+
+ +
+
+
+
diff --git a/1.sources/MyHealth/src/managedbean/medicalTest/QuestionsMBean.java b/1.sources/MyHealth/src/managedbean/medicalTest/QuestionsMBean.java index 32ce835..dc36577 100644 --- a/1.sources/MyHealth/src/managedbean/medicalTest/QuestionsMBean.java +++ b/1.sources/MyHealth/src/managedbean/medicalTest/QuestionsMBean.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.util.List; import javax.annotation.PostConstruct; +import javax.faces.application.FacesMessage; import javax.faces.view.ViewScoped; import javax.inject.Named; @@ -23,8 +24,10 @@ public class QuestionsMBean extends ManagedBeanBase implements Serializable { private int userID; private UserType userType; - private List allQuestions; - protected QuestionTO selected; + private List pendingQuestions; + private Integer id; + private QuestionTO selected; + private boolean addNewMode; public QuestionsMBean() { } @@ -34,155 +37,96 @@ public class QuestionsMBean extends ManagedBeanBase implements Serializable { // Inicialización de variables y propiedades van aquí. this.userType = SessionUtils.getUserType(); this.userID = Integer.valueOf(SessionUtils.getUserId()); + + this.addNewMode = false; this.selected = null; this.loadQuestions(); } - private void printSelected(String asd) { - if(asd!=null) { - asd = "'" + asd + "'"; - }else { - asd = ""; - } - System.out.println("Selected " + asd + ": "); - System.out.println(this.selected); - } - public List getPendingQuestions() { - return allQuestions; + return pendingQuestions; } public void setPendingQuestions(List value) { - this.allQuestions = value; + this.pendingQuestions = value; } - /** * Cargará las preguntas enviadas al médico o escritas por el paciente, esto irá * en función del tipo de usuario en sesión */ private void loadQuestions() { - this.printSelected(""); - if (userType == UserType.FAMILY_DOCTOR) { + if (this.userType == UserType.FAMILY_DOCTOR) { // Listar las preguntas destinadas a él // El método disponible del API básico es referente al doctor - this.allQuestions = getRemoteManagerMedicalTest().listAllPendingQuestions(userID); - } else if (userType == UserType.PATIENT) { + this.pendingQuestions = getRemoteManagerMedicalTest().listAllPendingQuestions(userID); + } else if (this.userType == UserType.PATIENT) { // Listar las preguntas realiadas por él // Para reutilizar la misma view, necesitaremos nuevos métodos para el API de // cara a recoger sus preguntas realizadas. - this.allQuestions = getRemoteManagerMedicalTest().listAllMyQuestions(userID); + this.pendingQuestions = getRemoteManagerMedicalTest().listAllMyQuestions(userID); } } - public boolean getShowCreate() { - return userType == UserType.PATIENT; - } - - public boolean isShowCreate() { - return this.getShowCreate(); - } - - public void setShowCreate() { - // - } - - public boolean getDisabledMessage() { - if (this.selected != null) { - return this.selected.getStatus() != QuestionStatus.NEW; - } - return false; - } - - public boolean isDisabledMessage() { - return this.getDisabledMessage(); - } - - public void setDisabledMessage(boolean bval) { - // Nothing to do - } - public void onSelect(SelectEvent event) { - this.printSelected("onSelect antes"); + this.addNewMode = false; this.selected = (QuestionTO) event.getObject(); - this.printSelected("onSelect despues"); } public void onUnSelect(SelectEvent event) { this.selected = null; } - + public void setSelected(QuestionTO selected) { - this.printSelected("setSelected antes"); this.selected = selected; - this.printSelected("setSelected despues"); } - + public QuestionTO getSelected() { return this.selected; } - - public void answerQuestion() { - // Es un selected recuperado de la lista + + public void save() { getRemoteManagerMedicalTest().answerQuestion(this.selected.getId(), this.selected.getResponse()); - this.init(); + this.loadQuestions(); + this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Datos guardados", "La respuesta se registrado correctamente en el sistema."); + this.selected = null; } - - public void askQuestion() { - // Es un question nuevo - QuestionTO q = this.selected; - getRemoteManagerMedicalTest().askQuestion(q.getPatient().getId(), q.getTitle(), q.getMessage()); - this.init(); - } - + public void create() { - this.printSelected("create start"); - String template = ""; + this.addNewMode = true; this.selected = new QuestionTO(); this.selected.setId(-1); - this.selected.setTitle(template); - this.selected.setMessage(template); - this.selected.setResponse(template); - this.selected.setStatus(QuestionStatus.NEW); - this.selected.getPatient().setId(Integer.parseInt(SessionUtils.getloggedOnUser().getId())); - this.selected.getPatient().setName(SessionUtils.getloggedOnUser().getName()); - this.printSelected("create end"); + this.selected.setTitle(""); + this.selected.setMessage(""); } - - public boolean getShowPanelDetail() { - return this.selected != null; + + public void addNewQuestion() { + getRemoteManagerMedicalTest().askQuestion(userID, this.selected.getTitle(), this.selected.getMessage()); + this.loadQuestions(); + this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Datos guardados", "La pregunta se registrado correctamente en el sistema."); } public boolean isShowPanelDetail() { - return this.getShowPanelDetail(); + return this.selected != null && this.addNewMode == false; } - public void setShowPanelDetail() { - // + public boolean isPatient() { + return (this.userType == UserType.PATIENT); } - public boolean getAskButton() { - return this.selected == null ? (userType == UserType.PATIENT) - : (userType == UserType.PATIENT && this.selected.getStatus() == QuestionStatus.NEW); + public boolean isFamilyDoctor() { + return (this.userType == UserType.FAMILY_DOCTOR); + } + + public boolean isAddNewMode() { + return addNewMode; + } + + public boolean isRespuestaEditable() { + return (this.userType == UserType.FAMILY_DOCTOR && this.selected != null && this.selected.getStatus() == QuestionStatus.PENDING); } - public boolean isAskButton() { - return this.getAskButton(); + public void setAddNewMode(boolean addNewMode) { + this.addNewMode = addNewMode; } - - public void setAskButton() { - } - - public boolean getAnswerButton() { - return this.selected == null ? (userType == UserType.FAMILY_DOCTOR) - : (userType == UserType.FAMILY_DOCTOR && this.selected.getStatus() == QuestionStatus.PENDING); - } - - public boolean isAnswerButton() { - return this.getAnswerButton(); - } - - public void setAnswerButton() { - } - } From 0a9b2180cb02e38df8f0cf9518432c63f0a38710 Mon Sep 17 00:00:00 2001 From: Roberto Orden Erena Date: Thu, 26 Dec 2019 21:23:25 +0100 Subject: [PATCH 5/5] Incluyo en pm2 el lanzamiento de WildFly --- 1.sources/MyHealth/ecosystem.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/1.sources/MyHealth/ecosystem.json b/1.sources/MyHealth/ecosystem.json index e590ff6..ccb1896 100644 --- a/1.sources/MyHealth/ecosystem.json +++ b/1.sources/MyHealth/ecosystem.json @@ -3,7 +3,11 @@ "name": "ANT", "script": "start.sh", "cwd": "./", - "ignore_watch": ["*.ear", "*.jar", "*.war", "./build/*", "./dist/*"], + "ignore_watch": ["*.ear", "*.jar", "*.war", "./build/*", "./dist/*", "ecosystem.json"], "watch": true + },{ + "name": "Widlfly", + "script": "standalone.sh", + "cwd": "/opt/wildfly/bin/" }] }