209 lines
7.3 KiB
Java
209 lines
7.3 KiB
Java
package managedbean.common;
|
|
|
|
import java.io.Serializable;
|
|
|
|
import javax.annotation.PostConstruct;
|
|
import javax.enterprise.context.RequestScoped;
|
|
import javax.faces.application.FacesMessage;
|
|
import javax.faces.context.FacesContext;
|
|
import javax.inject.Named;
|
|
|
|
import org.primefaces.model.menu.DefaultMenuItem;
|
|
import org.primefaces.model.menu.DefaultMenuModel;
|
|
import org.primefaces.model.menu.DefaultSeparator;
|
|
import org.primefaces.model.menu.DefaultSubMenu;
|
|
import org.primefaces.model.menu.MenuModel;
|
|
|
|
import common.UserType;
|
|
|
|
/**
|
|
*
|
|
* @author Marcos García Núñez (mgarcianun@uoc.edu)
|
|
*
|
|
*/
|
|
@Named("menuView")
|
|
@RequestScoped
|
|
public class MenuMBean implements Serializable {
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
private MenuModel model;
|
|
|
|
@PostConstruct
|
|
public void init() {
|
|
model = new DefaultMenuModel();
|
|
DefaultMenuItem item;
|
|
DefaultSubMenu subMenu;
|
|
UserType tipoUsuario = null;
|
|
|
|
model.addElement(createMenuItem("Home", "pi pi-home", "/home", null));
|
|
|
|
if (SessionUtils.isLogedIn() == true) {
|
|
tipoUsuario = SessionUtils.getUserType();
|
|
|
|
// Administracion Sistema
|
|
if (tipoUsuario == UserType.ADMINISTRATOR) {
|
|
subMenu = new DefaultSubMenu("Administración del sistema", "pi pi-cog");
|
|
|
|
subMenu.addElement(createMenuItem("Gestionar especialidades", "pi pi-calendar", "/systemAdmin/ManageSpecialties", null));
|
|
subMenu.addElement(createMenuItem("Centros At. Primaria", "pi pi-briefcase", "/systemAdmin/ManageSpecialties", null));
|
|
subMenu.addElement(new DefaultSeparator());
|
|
subMenu.addElement(createMenuItem("Ver médicos de un CAP", "pi pi-calendar", "/systemAdmin/ManageSpecialties", null));
|
|
subMenu.addElement(new DefaultSeparator());
|
|
subMenu.addElement(createMenuItem("Añadir usuario Admin", "pi pi-calendar", "/systemAdmin/ManageSpecialties", null));
|
|
|
|
model.addElement(subMenu);
|
|
}
|
|
|
|
// Visitas
|
|
if (tipoUsuario == UserType.PATIENT || tipoUsuario == UserType.ADMINISTRATOR || tipoUsuario == UserType.FAMILY_DOCTOR) {
|
|
subMenu = new DefaultSubMenu("Visitas", "pi pi-calendar");
|
|
|
|
if (tipoUsuario == UserType.PATIENT)
|
|
subMenu.addElement(createMenuItem("Solicitar nueva", "pi pi-calendar", "/visit/VisitView", null));
|
|
if (tipoUsuario == UserType.PATIENT || tipoUsuario == UserType.ADMINISTRATOR)
|
|
subMenu.addElement(createMenuItem("Modificar fecha/hora", "pi pi-calendar", "/visit/VisitView", null));
|
|
if (tipoUsuario == UserType.PATIENT)
|
|
subMenu.addElement(createMenuItem("Anular visita", "pi pi-calendar", "/visit/VisitView", null));
|
|
if (tipoUsuario == UserType.FAMILY_DOCTOR)
|
|
subMenu.addElement(createMenuItem("Añadir resultado", "pi pi-briefcase", "/visit/VisitView", null));
|
|
if (tipoUsuario == UserType.FAMILY_DOCTOR)
|
|
subMenu.addElement(createMenuItem("Ver agenda del día", "pi pi-calendar", "/visit/VisitView", null));
|
|
|
|
model.addElement(subMenu);
|
|
}
|
|
|
|
// Pruebas médicas
|
|
if (tipoUsuario == UserType.PATIENT || tipoUsuario == UserType.SPECIALIST_DOCTOR || tipoUsuario == UserType.FAMILY_DOCTOR) {
|
|
subMenu = new DefaultSubMenu("Especialista", "pi pi-clone");
|
|
|
|
if (tipoUsuario == UserType.SPECIALIST_DOCTOR)
|
|
subMenu.addElement(createMenuItem("Añadir prueba", "pi pi-clone", "/medicaltest/MedicalTests", null));
|
|
|
|
// Todos pueden consultar (P S F)
|
|
subMenu.addElement(createMenuItem("Consultar prueba", "pi pi-briefcase", "/medicaltest/MedicalTests", null));
|
|
subMenu.addElement(new DefaultSeparator());
|
|
|
|
if (tipoUsuario == UserType.SPECIALIST_DOCTOR) {
|
|
subMenu.addElement(new DefaultSeparator());
|
|
subMenu.addElement(createMenuItem("Gestionar imagen de una prueba", "pi pi-search", "/medicaltest/MedicalTests", null));
|
|
}
|
|
|
|
if (tipoUsuario == UserType.PATIENT)
|
|
subMenu.addElement(createMenuItem("Buscar especialista...", "pi pi-list", "/medicaltest/MedicalTests", null));
|
|
|
|
model.addElement(subMenu);
|
|
}
|
|
|
|
// Preguntas médicas
|
|
if (tipoUsuario == UserType.PATIENT || tipoUsuario == UserType.FAMILY_DOCTOR) {
|
|
subMenu = new DefaultSubMenu("Preguntas", "pi pi-clone");
|
|
|
|
if (tipoUsuario == UserType.PATIENT)
|
|
subMenu.addElement(createMenuItem("Hacer pregunta", "pi pi-clone", "/medicaltest/MedicalTests", null));
|
|
|
|
if (tipoUsuario == UserType.FAMILY_DOCTOR)
|
|
subMenu.addElement(createMenuItem("Responder pregunta", "pi pi-question", "/medicaltest/MedicalTests", null));
|
|
|
|
if (tipoUsuario == UserType.FAMILY_DOCTOR)
|
|
subMenu.addElement(createMenuItem("Ver preguntas pendientes", "pi pi-question", "/medicaltest/MedicalTests", null));
|
|
|
|
model.addElement(subMenu);
|
|
}
|
|
}
|
|
|
|
// Perfil
|
|
subMenu = new DefaultSubMenu("Gestionar perfil", "pi pi-id-card");
|
|
if (SessionUtils.isLogedIn() == false) {
|
|
subMenu.addElement(createMenuItem("Registro de usuario", "pi pi-users", "/profile/RegisterUser", null));
|
|
subMenu.addElement(createMenuItem("Registro de paciente", "pi pi-user-plus", "/profile/AddPatient", null));
|
|
subMenu.addElement(createMenuItem("Registro de médico", "pi pi-user-plus", "/profile/AddFamilyDoctor", null));
|
|
subMenu.addElement(createMenuItem("Registro de especialista", "pi pi-user-plus", "/profile/AddSpecialistDoctor", null));
|
|
|
|
model.addElement(subMenu);
|
|
} else {
|
|
if (tipoUsuario != UserType.ADMINISTRATOR) {
|
|
subMenu.addElement(createMenuItem("Modificar datos personales", "pi pi-user-edit", "/profile/UpdateProfile", null));
|
|
subMenu.addElement(new DefaultSeparator());
|
|
|
|
if (tipoUsuario == UserType.PATIENT) {
|
|
subMenu.addElement(createMenuItem("Cambiar médico de familia", "pi pi-chevron-circle-right", "/profile/ChangeFamilyDoctor", null));
|
|
subMenu.addElement(new DefaultSeparator());
|
|
}
|
|
|
|
if (tipoUsuario == UserType.FAMILY_DOCTOR) {
|
|
subMenu.addElement(createMenuItem("Cambiar CAP", "fa fa-h-square", "/profile/ChangePrimaryHealthCareCenter", null));
|
|
}
|
|
|
|
model.addElement(subMenu);
|
|
}
|
|
}
|
|
}
|
|
|
|
private DefaultMenuItem createMenuItem(String name, String icon, String outcome, String command) {
|
|
DefaultMenuItem item = new DefaultMenuItem(name, icon);
|
|
if (outcome != null)
|
|
item.setOutcome(outcome);
|
|
if (command != null)
|
|
item.setCommand(command);
|
|
|
|
return item;
|
|
}
|
|
|
|
public MenuModel getModel() {
|
|
return model;
|
|
}
|
|
|
|
public void save() {
|
|
addMessage("Success", "Data saved");
|
|
}
|
|
|
|
public void update() {
|
|
addMessage("Success", "Data updated");
|
|
}
|
|
|
|
public void delete() {
|
|
addMessage("Success", "Data deleted");
|
|
}
|
|
|
|
public String goManageSpecialties() {
|
|
|
|
return "ManageSpecialties";
|
|
}
|
|
|
|
public String goVisit() {
|
|
return "VisitView";
|
|
}
|
|
|
|
public String goMedicalTests() {
|
|
return "MedicalTests";
|
|
}
|
|
|
|
public String goListSpecialistDoctors() {
|
|
return "header";
|
|
}
|
|
|
|
public String goListSpecialistDoctorsBySpecialty() {
|
|
return "header";
|
|
}
|
|
|
|
public String goListaFamilyDoctors() {
|
|
return "header";
|
|
}
|
|
|
|
public String goChangeDoctor() {
|
|
return "header";
|
|
}
|
|
|
|
public String goChangeCAP() {
|
|
return "header";
|
|
}
|
|
|
|
public String goAddPatient() {
|
|
return "profile/AddPaciente";
|
|
}
|
|
|
|
public void addMessage(String summary, String detail) {
|
|
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
|
|
FacesContext.getCurrentInstance().addMessage(null, message);
|
|
}
|
|
} |