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() { - } - }