Merge branch 'master' into rorden

# Conflicts:
#	1.sources/MyHealth/src/ejb/common/CommonFacadeBean.java
This commit is contained in:
Roberto Orden Erena
2019-12-29 13:21:34 +01:00
27 changed files with 954 additions and 214 deletions
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
+1 -1
View File
@@ -60,7 +60,7 @@
<p:menubar model="#{menuView.model}">
<f:facet name="options">
<ui:fragment rendered="#{home.logedIn}">
<h:outputText value="logeado como #{home.userName} (#{home.userType}) " />
<h:outputText value="Bienvenido, #{home.userDisplayName} (#{home.userType}) " />
<p:commandButton value="Logout" icon="pi pi-sign-out" action="#{loginView.logout}" />
</ui:fragment>
<ui:fragment rendered="#{not home.logedIn}">
+3 -26
View File
@@ -8,6 +8,9 @@
<h:form>
<p:panel header="Pagina principal">
<div class="ui-g ui-fluid">
<div class="ui-g-12 ui-md-12">
Logeado como: <h:outputLabel value="#{home.userDisplayName}" style="font-weight: bold;" />
</div>
<div class="ui-g-2 ui-md-2">
<p:outputLabel for="selectorTema" value="Cambio de tema" />
</div>
@@ -22,32 +25,6 @@
<p:commandButton value="Usar tema" update="messages" action="#{sessionPreferences.updateCurrentTheme}" icon="pi pi-save" />
</div>
<div class="ui-g-5 ui-md-5" />
<div class="ui-g-2 ui-md-2">
<div class="ui-inputgroup">
<p:calendar pattern="dd/MM/yyyy" showButtonPanel="true" autocomplete="true" />
<p:commandButton value="Fecha" />
</div>
</div>
<div class="ui-g-10 ui-md-10" />
<div class="ui-g-2 ui-md-2">
<h:outputLabel value="Fecha" />
<p:calendar pattern="dd/MM/yyyy" showButtonPanel="true" autocomplete="true" />
</div>
<div class="ui-g-10 ui-md-10" />
<div class="ui-g-12">
<h:outputLabel value="Rich Text Editor" />
</div>
<div class="ui-g-12 ui-md-12">
<p:editor />
</div>
<div class="ui-g-12 ui-md-12">
<h:outputLabel value="Logeado como:" />
<p:inputText readonly="true" value="#{home.userName}" />
</div>
</div>
</p:panel>
</h:form>
@@ -67,7 +67,7 @@
<div class="ui-g-4 ui-md-4">
<div class="ui-inputgroup">
<p:inputText id="nif" value="#{RegisterUser.nif}" validator="nifValidator" maxlength="20" required="true" requiredMessage="Por favor, indque su NIF">
<p:ajax event="blur" update="nifmsg" listener="#{RegisterUser.hadleNIFValueChange}" oncomplete="handleNIFResponse(xhr, status, args)" />
<p:ajax event="blur" update="nifmsg" listener="#{RegisterUser.handleNIFValueChange}" oncomplete="handleNIFResponse(xhr, status, args)" />
</p:inputText>
<p:commandButton widgetVar="nifButton" icon="pi pi-times" styleClass="red-button" />
</div>
@@ -42,7 +42,7 @@
<div class="ui-g-4 ui-md-4">
<div class="ui-inputgroup">
<p:inputText id="nif" value="#{UpdateProfile.nif}" validator="nifValidator" maxlength="20" required="true" requiredMessage="Por favor, indque su NIF">
<p:ajax event="blur" update="nifmsg" listener="#{UpdateProfile.hadleNIFValueChange}" oncomplete="handleNIFResponse(xhr, status, args)" />
<p:ajax event="blur" update="nifmsg" listener="#{UpdateProfile.handleNIFValueChange}" oncomplete="handleNIFResponse(xhr, status, args)" />
</p:inputText>
<p:commandButton widgetVar="nifButton" icon="pi pi-check" styleClass="green-button" />
</div>
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui">
<ui:composition template="../header.xhtml">
<ui:define name="content">
<h:form id="frmListCAPs">
<p:growl id="mesgsList" showDetail="true" closable="true" autoupdate="true" />
<p:panel id="PanelCAPList" style="margin-bottom: 10px;" header="Gestión de Centros de Atención Primaria">
<div class="ui-g ui-fluid">
<p:dataTable widgetVar="dtCAP" var="cap" value="#{ManageHealthCareCenters.lazyDataModelCAPsList}" editable="true" lazy="true" paginator="true" rows="10" paginatorPosition="bottom" paginatorAlwaysVisible="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="10,20,30,40">
<p:ajax event="rowEdit" listener="#{ManageHealthCareCenters.onRowEdit}" update=":frmListCAPs:mesgsList" />
<p:ajax event="rowEditCancel" listener="#{ManageHealthCareCenters.onRowCancel}" update=":frmListCAPs:mesgsList" />
<p:column headerText="Nombre">
<p:cellEditor>
<f:facet name="output"><h:outputText value="#{cap.name}" /></f:facet>
<f:facet name="input"><p:inputText value="#{cap.name}" style="width:100%" label="Nombre"/></f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Localización">
<p:cellEditor>
<f:facet name="output"><h:outputText value="#{cap.location}" /></f:facet>
<f:facet name="input"><p:inputText value="#{cap.location}" style="width:100%" label="Localización"/></f:facet>
</p:cellEditor>
</p:column>
<p:column style="width:80px; text-align: center;" headerText="Editar">
<p:rowEditor />
</p:column>
<p:column style="width:80px; text-align: center;" headerText="Eliminar">
<p:commandLink onclick="if (! confirm('¿Seguro que quiere borrar el CAP?')) return false" ajax="true" action="#{ManageHealthCareCenters.deleteDataById(cap.id)}" update=":frmListCAPs:mesgsList frmListCAPs" process="frmListCAPs">
<span title="Borrar" class="fa fa-remove"/>
</p:commandLink>
</p:column>
<f:facet name="paginatorBottomLeft">
<p:commandButton type="button" icon="pi pi-refresh" onclick="PF('dtCAP').getPaginator().setPage(0);" />
</f:facet>
</p:dataTable>
</div>
</p:panel>
</h:form>
<h:form id="frmAddCAPs">
<p:growl id="mesgsAdd" showDetail="true" closable="true" autoupdate="true" />
<p:panel id="PanelNewCAP" header="Alta de Centros de Atención Primaria">
<div class="ui-g ui-fluid">
<div class="ui-g-1 ui-md-1">
<p:outputLabel value="Nombre: " for="nameNew" />
</div>
<div class="ui-g-2 ui-md-2">
<p:inputText id="nameNew" value="#{ManageHealthCareCenters.name}" readonly="false" required="ManageHealthCareCenters.medicalSpecialty.name eq null"
requiredMessage="Es necesario un nombre" />
</div>
<div class="ui-g-1 ui-md-1">
<p:outputLabel value="Localización: " for="locationNew" />
</div>
<div class="ui-g-6 ui-md-6">
<p:inputText id="locationNew" value="#{ManageHealthCareCenters.location}" readonly="false" required="ManageHealthCareCenters.medicalSpecialty.location eq null"
requiredMessage="Es necesaria una localización" />
</div>
<div class="ui-g-2 ui-md-2 ">
<p:commandButton validateClient="true" value="Crear" update="mesgsAdd frmListCAPs frmAddCAPs" action="#{ManageHealthCareCenters.insertData}" icon="pi pi-check" />
</div>
</div>
</p:panel>
</h:form>
</ui:define>
</ui:composition>
</html>
@@ -43,7 +43,7 @@
</div>
<div class="ui-g-1 ui-md-1 ">
<p:commandButton validateClient="true" value="Borrar" update="frmEditSpecialties" action="#{ManageSpecialities.deleteData}" icon="fa fa-remove">
<p:confirm header="Confirme la eliminación" message="¿Esta seguro de que desea eliminar la especialidad?" icon="pi pi-exclamation-triangle" />
<p:confirm header="Confirme la eliminación" message="¿Está seguro de que desea eliminar la especialidad?" icon="pi pi-exclamation-triangle" />
</p:commandButton>
</div>
</div>
@@ -62,7 +62,7 @@
<p:outputLabel for="observaciones" value="Observaciones:" />
</div>
<div class="ui-g-8">
<p:inputTextarea id="observaciones" value="#{UpdateVisit.observations}" readonly="true" />
<p:inputTextarea id="observaciones" value="#{UpdateVisit.observations}" readonly="#{UpdateVisit.onlyResult}" />
</div>
<div class="ui-g-2">
<p:message for="observaciones" display="text" />
@@ -245,10 +245,26 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
return allFDTOs;
}
/**
* Método que devuelve una lista con todos los pacientes registrados en el sistema de forma paginada.
*
* Si pageSize == 0 no se realiza paginación y se devuelven todos los resultados.
*
* @return Devuelve una Lista de PatientTO (Transfer Objects).
*/
public List<PatientTO> listPatientsPaged(int pageNumber, int pageSize) {
return this.listPatientsFiltered(null, pageNumber, pageSize);
}
/**
* Método que devuelve una lista de pacientes que tienen una coincidencia parcial en el nombre o en los apellidos con el termino de búsqueda (searchTerm) especificado.
*
* Además permite la paginacción de datos. Si pageSize == 0 no se realiza paginación y se devuelven todos los resultados.
*
* Si serachTerm es nulo o cadena vacía entonces no se tiene en cuenta el parámetro y devuelven todos los registros existentes.
*
* @return Devuelve una Lista de PatientTO (Transfer Objects).
*/
public List<PatientTO> listPatientsFiltered(String searchTerm, int pageNumber, int pageSize) {
String strQuery = "SELECT p FROM PatientJPA p %s order by p.name, p.surname";
String strFilter = "";
@@ -532,8 +548,7 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
/**
* Método que recupera un médico especialista a partir de su NIF
*
* @return SpecialistDoctorTO (Transfer Object del objeto recuperado) o null si
* no se encuentra el objeto buscado
* @return SpecialistDoctorTO (Transfer Object del objeto recuperado) o null si el objeto JPA es nulo
*/
public SpecialistDoctorTO findSpecialistDoctorByNif(String searchedNIF) {
TypedQuery<SpecialistDoctorJPA> query = entman.createQuery("from SpecialistDoctorJPA d where d.nif=:nif",
@@ -552,14 +567,10 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
* Método que convierte un objecto de tipo QuestionJPA (JPA) a su equivalente
* QuestionTO (Tranfer Object)
*
* El parámetro nestedProps es un valor entero que indica a que nivel de
* profundidad se debe navegar a través de las propiedades relacionadas para
* convertirlas de JPA a TO. Un valor 0 indica que no se convertirá ninguna
* propiedad que tenga un entidad JPA relacionada (tendrá valor null en el
* objeto TO).
* El parámetro nestedProps es un valor entero que indica a que nivel de profundidad se debe navegar a través de las propiedades relacionadas para convertirlas de JPA a TO. Un
* valor 0 indica que no se convertirá ninguna propiedad que tenga un entidad JPA relacionada (tendrá valor null en el objeto TO).
*
* @return QuestionTO (Transfer Object del objeto recuperado) o null si no se
* encuentra el objeto buscado
* @return QuestionTO (Transfer Object del objeto recuperado) o null si el objeto JPA es nulo
*/
public QuestionTO getPOJOforQuestionJPA(QuestionJPA qs, int nestedProps) {
QuestionTO qsTO = null;
@@ -581,6 +592,14 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
return qsTO;
}
/**
* Método que converite un objeto de tipo VisitJPA a su equivalente VisitTO (Transfer Object)
*
* El parámetro nestedProps es un valor entero que indica a que nivel de profundidad se debe navegar a través de las propiedades relacionadas para convertirlas de JPA a TO. Un
* valor 0 indica que no se convertirá ninguna propiedad que tenga un entidad JPA relacionada (tendrá valor null en el objeto TO).
*
* @return VisitTO (Transfer Object del objeto recuperado) o null si el objeto JPA es nulo
*/
public VisitTO getPOJOforVisitJPA(VisitJPA vi, int nestedProps) {
VisitTO qsTO = null;
@@ -1,5 +1,6 @@
package ejb.systemAdmin;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
@@ -12,6 +13,7 @@ import TO.FamilyDoctorTO;
import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO;
import TO.PatientTO;
import TO.PrimaryHealthCareCenterTO;
import TO.SpecialistDoctorTO;
import common.Constants;
import common.HashUtils;
@@ -19,6 +21,7 @@ import common.UserType;
import ejb.common.CommonFacadeLocal;
import jpa.AdministratorJPA;
import jpa.MedicalSpecialtyJPA;
import jpa.PrimaryHealthCareCenterJPA;
/**
*
@@ -148,10 +151,81 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote {
@Override
public MedicalSpecialtyTO insertSpecialty(String name, String description) throws Exception {
MedicalSpecialtyJPA ms = new MedicalSpecialtyJPA(name, description);
entman.persist(ms);
return this.commonServices.getPOJOforMedicalSpecialtyJPA(ms);
}
@Override
public PrimaryHealthCareCenterTO updateHealthCareCenter(int id, String name, String location) throws Exception {
PrimaryHealthCareCenterJPA ms = entman.find(PrimaryHealthCareCenterJPA.class, id);
if (ms == null) {
throw new Exception("No se pueden actualizar los datos del CAP porque no se encuentra en la base de datos ningún registro con id: " + String.valueOf(id));
}
ms.setName(name);
ms.setLocation(location);
entman.persist(ms);
return this.commonServices.getPOJOforPrimaryHealthCareCenterJPA(ms);
}
public PrimaryHealthCareCenterTO findHealthCareCenterByName(String searchedName) {
TypedQuery<PrimaryHealthCareCenterJPA> query = entman.createQuery("from PrimaryHealthCareCenterJPA cap where cap.name=:name", PrimaryHealthCareCenterJPA.class);
query.setMaxResults(1);
query.setParameter("name", searchedName);
List<PrimaryHealthCareCenterJPA> results = query.getResultList();
if (results.size() > 0)
return this.commonServices.getPOJOforPrimaryHealthCareCenterJPA(results.get(0));
else
return null;
}
@Override
public void deleteHealthCareCenter(int id) throws Exception {
PrimaryHealthCareCenterJPA cap = entman.find(PrimaryHealthCareCenterJPA.class, id);
if (cap == null) {
throw new Exception("No se puede borrar el CAP porque no se encuentra en la base de datos ningún registro con id: " + String.valueOf(id));
}
entman.remove(cap);
}
@Override
public PrimaryHealthCareCenterTO insertHealthCareCenter(String name, String location) throws Exception {
PrimaryHealthCareCenterJPA cap = new PrimaryHealthCareCenterJPA(name, location);
entman.persist(cap);
return this.commonServices.getPOJOforPrimaryHealthCareCenterJPA(cap);
}
public Long getCAPCount() {
TypedQuery<Long> query = entman.createQuery("SELECT count(1) from PrimaryHealthCareCenterJPA", Long.class);
return query.getSingleResult();
}
public List<PrimaryHealthCareCenterTO> listCAPsPaged(int pageNumber, int pageSize) {
TypedQuery<PrimaryHealthCareCenterJPA> query = entman.createQuery("SELECT c from PrimaryHealthCareCenterJPA c order by c.name", PrimaryHealthCareCenterJPA.class);
if (pageSize > 0) {
query.setFirstResult(pageNumber * pageSize);
query.setMaxResults(pageSize);
}
List<PrimaryHealthCareCenterJPA> allJPA = query.getResultList();
List<PrimaryHealthCareCenterTO> caps = new ArrayList<PrimaryHealthCareCenterTO>();
for (PrimaryHealthCareCenterJPA item : allJPA) {
caps.add(commonServices.getPOJOforPrimaryHealthCareCenterJPA(item));
}
return caps;
}
}
@@ -1,9 +1,12 @@
package ejb.systemAdmin;
import java.util.List;
import javax.ejb.Remote;
import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO;
import TO.PrimaryHealthCareCenterTO;
/**
*
@@ -25,4 +28,16 @@ public interface SystemAdminFacadeRemote {
public void deleteSpecialty(int id) throws Exception;
public MedicalSpecialtyTO insertSpecialty(String name, String description) throws Exception;
public PrimaryHealthCareCenterTO updateHealthCareCenter(int id, String name, String location) throws Exception;
public PrimaryHealthCareCenterTO findHealthCareCenterByName(String name);
public void deleteHealthCareCenter(int id) throws Exception;
public PrimaryHealthCareCenterTO insertHealthCareCenter(String name, String location) throws Exception;
public Long getCAPCount();
public List<PrimaryHealthCareCenterTO> listCAPsPaged(int pageNumber, int pageSize);
}
@@ -2,6 +2,7 @@ package ejb.visit;
import java.util.ArrayList;
import java.util.Date;
import java.time.LocalTime;
import java.util.List;
import javax.ejb.EJB;
@@ -12,11 +13,13 @@ import javax.persistence.TypedQuery;
import TO.VisitTO;
import ejb.common.CommonFacadeLocal;
import jpa.PatientJPA;
import jpa.VisitJPA;
/**
* EJB Session Bean Class para la Practica 2, Ejercicio 1 (ISCSD) Implementa los métodos de la capa de negocio que implementan la logica de negocio y la interacción con la capa de
* persistencia.
* EJB Session Bean Class para la Practica 2, Ejercicio 1 (ISCSD) Implementa los
* métodos de la capa de negocio que implementan la logica de negocio y la
* interacción con la capa de persistencia.
*
* @author mark
*
@@ -31,7 +34,8 @@ public class VisitFacadeBean implements VisitFacadeRemote {
CommonFacadeLocal commonServices;
public Long getScheduledVisitsCount(int familyDoctorId, Date date) {
TypedQuery<Long> query = entman.createQuery("SELECT count(1) from VisitJPA v where v.date=:date and v.familyDoctor.id=:docId", Long.class);
TypedQuery<Long> query = entman.createQuery(
"SELECT count(1) from VisitJPA v where v.date=:date and v.familyDoctor.id=:docId", Long.class);
query.setParameter("date", date);
query.setParameter("docId", familyDoctorId);
@@ -39,7 +43,9 @@ public class VisitFacadeBean implements VisitFacadeRemote {
}
public List<VisitTO> listAllScheduledVisitsPaged(int familyDoctorId, Date date, int pageNumber, int pageSize) {
TypedQuery<VisitJPA> query = entman.createQuery("SELECT v from VisitJPA v where v.date=:date and v.familyDoctor.id=:docId order by v.date, v.time", VisitJPA.class);
TypedQuery<VisitJPA> query = entman.createQuery(
"SELECT v from VisitJPA v where v.date=:date and v.familyDoctor.id=:docId order by v.date, v.time",
VisitJPA.class);
query.setParameter("date", date);
query.setParameter("docId", familyDoctorId);
@@ -116,7 +122,6 @@ public class VisitFacadeBean implements VisitFacadeRemote {
return listTO;
}
public VisitTO getVisit(int id) throws Exception {
VisitJPA vi = entman.find(VisitJPA.class, id);
if (vi == null) {
@@ -125,4 +130,33 @@ public class VisitFacadeBean implements VisitFacadeRemote {
return this.commonServices.getPOJOforVisitJPA(vi, 1);
}
public void addResultToVisit(int id, String result) {
VisitJPA vi = entman.find(VisitJPA.class, id);
vi.setResult(result);
entman.persist(vi);
}
public void removeVisit(int id) {
VisitJPA vi = entman.find(VisitJPA.class, id);
entman.remove(vi);
}
public void updateVisit(int id, Date date, LocalTime time) {
VisitJPA vi = entman.find(VisitJPA.class, id);
vi.setDate(date);
vi.setTime(time);
entman.persist(vi);
}
public VisitTO addVisit(int patientId, Date date, LocalTime time, String observations) {
PatientJPA pat = entman.find(PatientJPA.class, patientId);
VisitJPA vi = new VisitJPA(date, time, observations, "", pat, pat.getFamilyDoctor());
entman.persist(vi);
return this.commonServices.getPOJOforVisitJPA(vi, 1);
}
}
@@ -1,5 +1,6 @@
package ejb.visit;
import java.time.LocalTime;
import java.util.Date;
import java.util.List;
@@ -8,9 +9,10 @@ import javax.ejb.Remote;
import TO.VisitTO;
/**
* Interfaz remota del EJB Definimos los métodos que estarán disponibles para los clientes del EJB
* Interfaz remota del EJB Definimos los métodos que estarán disponibles para
* los clientes del EJB
*
* @author mark
* @author alina
*
*/
@Remote
@@ -28,4 +30,13 @@ public interface VisitFacadeRemote {
public List<VisitTO> listVisitsPaged(Integer patientId, Date date, int pageNumber, int pageSize);
public VisitTO getVisit(int id) throws Exception;
public void addResultToVisit(int id, String result);
public void removeVisit(int id);
public void updateVisit(int id, Date date, LocalTime time);
public VisitTO addVisit(int patientId, Date date, LocalTime time, String observations);
}
+1 -2
View File
@@ -49,8 +49,7 @@ public class VisitJPA implements Serializable {
super();
}
public VisitJPA(Integer id, Date date, LocalTime time, String observations, String result, PatientJPA patient, FamilyDoctorJPA familydoctor) {
this.id = id;
public VisitJPA(Date date, LocalTime time, String observations, String result, PatientJPA patient, FamilyDoctorJPA familydoctor) {
this.date = date;
this.time = time;
this.observations = observations;
@@ -42,7 +42,7 @@ public class MenuMBean implements Serializable {
subMenu = new DefaultSubMenu("Administración del sistema", "fa fa-wrench");
subMenu.addElement(createMenuItem("Gestionar especialidades", "fa fa-file-text-o", "/systemAdmin/ManageSpecialties", null));
subMenu.addElement(createMenuItem("Centros At. Primaria", "fa fa-hospital-o", "/systemAdmin/ManageSpecialties", null));
subMenu.addElement(createMenuItem("Centros At. Primaria", "fa fa-hospital-o", "/systemAdmin/ManageHealthCareCenters", null));
subMenu.addElement(new DefaultSeparator());
subMenu.addElement(createMenuItem("Ver médicos de un CAP", "fa fa-medkit", "/systemAdmin/ManageSpecialties", null));
subMenu.addElement(new DefaultSeparator());
@@ -4,8 +4,8 @@ import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
import common.UserType;
@@ -16,22 +16,23 @@ import common.UserType;
*
*/
@Named("home")
@RequestScoped
@ViewScoped
public class homeMBean extends ManagedBeanBase implements Serializable {
private static final long serialVersionUID = 1L;
private boolean isLogedIn;
private String userId;
private String userName;
private String userDisplayName;
private UserType userType;
private int refresh;
@PostConstruct
public void init() {
isLogedIn = SessionUtils.isLogedIn();
userName = SessionUtils.getUserName();
userId = SessionUtils.getUserId();
userType = SessionUtils.getUserType();
this.isLogedIn = SessionUtils.isLogedIn();
this.userName = SessionUtils.getUserName();
this.userDisplayName = SessionUtils.getUserDisplayName();
this.userId = SessionUtils.getUserId();
this.userType = SessionUtils.getUserType();
FacesMessage message = SessionUtils.getMessage();
@@ -55,6 +56,13 @@ public class homeMBean extends ManagedBeanBase implements Serializable {
return this.userName;
}
public String getUserDisplayName() {
if (this.isLogedIn == false)
return "Invitado";
else
return this.userDisplayName;
}
public String getUserId() {
return this.userId;
}
@@ -63,14 +71,6 @@ public class homeMBean extends ManagedBeanBase implements Serializable {
return this.userType.getUserTypename();
}
public int getRefresh() {
return refresh;
}
public void setRefresh(int refresh) {
this.refresh = refresh;
}
public boolean isPatient() {
return (this.userType == UserType.PATIENT);
}
@@ -17,6 +17,7 @@ import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils;
/***
* ManageBean que gestiona la vista para el cambio de médico de familia para un paciente
*
* @author Marcos García Núñez ([email protected])
*
@@ -36,6 +37,14 @@ public class ChangeFamilyDoctorMBean extends ManagedBeanBase implements Serializ
}
/**
* Inicializa el managed Bean
*
* Si el usuario logeado es nulo devuelve un error indicando que la sesión actual no es válida.
*
* Recupera el id del usuario actual desde la sesión. Dado que solo los pacientes pueden seleccionar un médico de familia, si el usuario es de otro tipo se muestra un mensaje
* de error.
*/
@PostConstruct
public void init() {
// Recuperamos el usuario logeado actual
@@ -54,8 +63,9 @@ public class ChangeFamilyDoctorMBean extends ManagedBeanBase implements Serializ
this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
PatientTO pat = this.getRemoteManagerCommon().findPatientById(this.id);
this.setCurrentFamilyDoctor(pat.getFamilyDoctor());
}
this.currentFamilyDoctor = pat.getFamilyDoctor();
} else
this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Perfil no válido", "Su tipo de usuario no permite que pueda tener acceso a esta página.");
}
} catch (Exception e) {
this.manageException(e);
@@ -63,23 +73,47 @@ public class ChangeFamilyDoctorMBean extends ManagedBeanBase implements Serializ
}
/**
* Devuelve la lista de médicos de familia para el combo de selección.
*
* @return Lista de médicos de familia.
*/
public List<FamilyDoctorTO> getFamilyDoctorList() {
return familyDoctorList;
}
/**
* Método que permite relizar búsqueda de tipo "typeAhead" en la lista de selección de médico.
*
* Recibe como parámetro el testo tecleado por el usuario
*
* @param query Texto tecleado por el usuario
* @return Retorna la lista de médicos de familia coincidentes con el termino buscado.
*/
public List<FamilyDoctorTO> completeFamilyDoctor(String query) {
if (query != null && query.equals(this.lastUIQuery) == false) {
this.lastUIQuery = query;
// Recuperamos las 200 primeras coincidencias
// Recuperamos las primeras ~30 coincidencias, según constante
this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
}
return this.familyDoctorList;
}
// Id del usuario actual, obtenido de la sessión del usuario logeado.
public int getId() {
return id;
}
/**
* Método que realiza la persistencia del cambio de médico de familia. a través de la invocación al método EJB correspondiente.
*
* Se realizan 2 comprobaciones adicionales:
*
* 1. Se ha seleccionado un nuevo médico de familia
*
* 2. El médico de familia nuevo es diferente al actual
*
*/
public void saveData() {
int error = 0;
@@ -17,6 +17,7 @@ import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils;
/***
* ManagedBean que gestiona la vista para el cambio del centro de atención primaria para los médicos de familia
*
* @author Marcos García Núñez ([email protected])
*
@@ -36,6 +37,12 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen
}
/**
* Inicializa el managed Bean.
*
* Si el usuario atual no se puede recupear de la sesión o si no es un perfil de tipo médicos de familia se muestra un mensaje de error.
*
*/
@PostConstruct
public void init() {
// Recuperamos el usuario logeado actual
@@ -52,11 +59,13 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen
this.id = Integer.valueOf(usr.getId());
if (usr.getUserType() == UserType.FAMILY_DOCTOR) {
// Recupera la lista de CAPs inicial desde el EJB.
this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
FamilyDoctorTO fd = this.getRemoteManagerCommon().findFamilyDoctorById(this.id);
this.setCurrentCenter(fd.getPrimaryHealthCareCenter());
}
} else
this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Perfil no válido", "Su tipo de usuario no permite que pueda tener acceso a esta página.");
}
} catch (Exception e) {
this.manageException(e);
@@ -68,6 +77,12 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen
return primaryHealthCareCentersList;
}
/**
* Método que implementa la búsqueda de un CAP a través del termino tecleado por el usuario en la lista de selección
*
* @param query Termino tecleado por el usuario
* @return Lista de CAPs que coinciden con el termino búscado por el usuario.
*/
public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
if (query != null && query.equals(this.lastUIQuery) == false) {
this.lastUIQuery = query;
@@ -81,16 +96,24 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen
return id;
}
/**
* Método que realiza el guardado de los cambios a través de la invocación del método del EJB correspondiente.
*
* El método realiza dos verificaciones previas: Que se haya seleccionado un CAP y que este sea diferente del asignado actualmente.
*
*/
public void saveData() {
int error = 0;
if (this.getNewCenter() == null) {
this.addFacesMessage("frmChangePHCC:newCenter", FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado", "Por favor, especifique un nuevvo centro de atención primaria.");
this.addFacesMessage("frmChangePHCC:newCenter", FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado",
"Por favor, especifique un nuevvo centro de atención primaria.");
error++;
}
if (this.getNewCenter().getName().equals(this.getCurrentCenter().getName())) {
this.addFacesMessage("frmChangePHCC:newCenter", FacesMessage.SEVERITY_WARN, "El centro de atención primeria debe ser diferente", "Por favor, seleccione un centro de atención primaria diferente al cual está actualmente asignado.");
this.addFacesMessage("frmChangePHCC:newCenter", FacesMessage.SEVERITY_WARN, "El centro de atención primeria debe ser diferente",
"Por favor, seleccione un centro de atención primaria diferente al cual está actualmente asignado.");
error++;
}
@@ -24,8 +24,7 @@ import managedbean.common.ManagedBeanBase;
import managedbean.common.ValidationUtils;
/**
* ManagedBEan que gestiona el registro de usuarios: Usuarios de tipo "Paciente"
* Usuarios de tipo "Médico de Familia" usuarios de tipo "Médico especialista"
* ManagedBEan que gestiona el registro de usuarios: Usuarios de tipo "Paciente" Usuarios de tipo "Médico de Familia" usuarios de tipo "Médico especialista"
*
* @author Marcos García Núñez ([email protected])
*
@@ -59,6 +58,11 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
}
/**
* Inicializa el managedBean actual.
*
* Carga los tipos de usuario disponibles. Carga la lista de CAPs. Carga la lista de especialidades médicas.
*/
@PostConstruct
public void init() {
this.availableUserTypes = new ArrayList<UserType>();
@@ -79,10 +83,17 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
return availableUserTypes;
}
/**
* Gestiona el evento de cambio de tipo de usuario. El usuario que está intentando registrarse en el sistema ha cambiado el tipo de perfil (usuario) con el cual desea
* registrarse.
*
*/
public void onUserTypeChange() {
switch (this.userType) {
case SPECIALIST_DOCTOR:
try {
// El usuario queire registrarse como médico especialista, lanzamos un evento AJAX de cliente para que la interfaz refleje el cambio en el tipo de usuario
// seleccionado: Se muestra la lista de especialidades médicas para obligar a seleccionar una.
PrimeFaces.current().ajax().addCallbackParam("specs", true);
} catch (Exception e) {
this.manageException(e);
@@ -90,6 +101,8 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
break;
case FAMILY_DOCTOR:
try {
// El usuario queire registrarse como médico especialista, lanzamos un evento AJAX de cliente para que la interfaz refleje el cambio en el tipo de usuario
// seleccionado: Se muestra la lista de CAPs para obligar a seleccionar uno.
PrimeFaces.current().ajax().addCallbackParam("caps", true);
} catch (Exception e) {
this.manageException(e);
@@ -97,6 +110,8 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
break;
case ADMINISTRATOR:
case PATIENT:
// El usuario queire registrarse como médico especialista, lanzamos un evento AJAX de cliente para que la interfaz refleje el cambio en el tipo de usuario
// seleccionado: Se ocultará la lista de selección de CAP o Especialidad médica
PrimeFaces.current().ajax().addCallbackParam("pats", true);
break;
}
@@ -110,6 +125,12 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
return primaryHealthCareCentersList;
}
/**
* Método que implementa la búsqueda de un CAP a través del termino tecleado por el usuario en la lista de selección
*
* @param query Termino tecleado por el usuario
* @return Lista de CAPs que coinciden con el termino búscado por el usuario.
*/
public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
if (query != null && query.equals(this.lastUIQueryPH) == false) {
this.lastUIQueryPH = query;
@@ -119,6 +140,12 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
return this.primaryHealthCareCentersList;
}
/**
* Método que implementa la búsqueda de una especialidad a través del termino tecleado por el usuario en la lista de selección
*
* @param query Termino tecleado por el usuario
* @return Lista de especialidades que coinciden con el termino búscado por el usuario.
*/
public List<MedicalSpecialtyTO> completeMedicalSpecialty(String query) {
if (query != null && query.equals(this.lastUIQueryMS) == false) {
this.lastUIQueryMS = query;
@@ -128,7 +155,13 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
return this.medicalSpecialitiesList;
}
public void hadleNIFValueChange() {
/**
* Gestióna el evento de modficación del NIF del usuario actual. Búsca si el NIF ya está en uso para otro usuario. Solo se permite que el mismo NIF se refistro como paciente y
* como médico (especialista o de familia, pero no como ambos).
*
* Un Médico puede estar registrado como paciente con el mismo NIF, pero como médico de familia y especialista al mismo tiempo.
*/
public void handleNIFValueChange() {
boolean isDupe = false;
if (ValidationUtils.checkIfNifAlreadyRegistered(this.getRemoteManagerCommon(), this.userType, this.nif, null) == true) {
isDupe = true;
@@ -194,11 +227,27 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
this.nif = nif;
}
/**
* Método que realiza la persistencia de los datos en la base de datos a través de la invocación de los métodos del EJB correspondiente.
*
* Se realizan comprobaciones adicionales para asegurar que:
*
* Si el tipo de usuario que se está registrando es un méidco de familia, obliga a seleccionar un CAP para el usuario.
*
* Si el tipo de usuario que está registrando es un médico especialista, obliga a seleccionar una especialidad médica al usuario.
*
* Si el tipo de usuario que está registrando es un paciente, no obliga a seleccionar un médicos de familia (puede ser nulo) será necesario que el usuario lo seleccione a
* posteriori, una vez logeado en el sistema, a través de la opción de menú correspondiente.
*
* No se permite el registro de administradores a través de la página de registro pública.
*
*/
public void addNewUser() {
int error = 0;
if (this.isFamilyDoctor() && this.primaryHealthCareCenter == null) {
this.addFacesMessage("frmRegisterUser:selPHC", FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado", "Por favor, especifique un centro de atención primaria.");
this.addFacesMessage("frmRegisterUser:selPHC", FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado",
"Por favor, especifique un centro de atención primaria.");
error++;
}
if (this.isSpecialistDoctor() && this.medicalSpecialty == null) {
@@ -63,6 +63,12 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
}
/**
* Inicializa el Bean:
*
* Carga la lsita de tipos de usuario (perfiles) Recupera los datos del usuario logeado actualmente, y los asigna a las propiedades del managedBean.
*
*/
@PostConstruct
public void init() {
this.userTypes = new ArrayList<UserType>();
@@ -109,6 +115,11 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
}
}
/**
* Establece los valores de las propiedades del managedBean a partir de los datos de un Transfer Object de un paciente
*
* @param pat Paciente que está editando su perfil, y cuyos datos deben mostrarse en la vista.
*/
private void setPatientData(PatientTO pat) {
this.id = pat.getId();
this.cipCode = pat.getPersonalIdentificationCode();
@@ -120,6 +131,11 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
this.familyDoctor = pat.getFamilyDoctor();
}
/**
* Establece los valores de las propiedades del managedBean a partir de los datos de un Transfer Object de un médico de familia
*
* @param fd FamilyDoctor que está editando su perfil, y cuyos datos deben mostrarse en la vista.
*/
private void setFamilyDoctorData(FamilyDoctorTO fd) {
this.id = fd.getId();
this.cipCode = fd.getProfessionalNumber();
@@ -131,6 +147,11 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
this.primaryHealthCareCenter = fd.getPrimaryHealthCareCenter();
}
/**
* Establece los valores de las propiedades del managedBean a partir de los datos de un Transfer Object de un médico especialista
*
* @param sd SpecialistDoctor que está editando su perfil, y cuyos datos deben mostrarse en la vista.
*/
private void setSpecialistDoctorData(SpecialistDoctorTO sd) {
this.id = sd.getId();
this.cipCode = sd.getProfessionalNumber();
@@ -154,25 +175,43 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
return primaryHealthCareCentersList;
}
/**
* Método que implementa la búsqueda de un CAP a través del termino tecleado por el usuario en la lista de selección
*
* @param query Termino tecleado por el usuario
* @return Lista de CAPs que coinciden con el termino búscado por el usuario.
*/
public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
if (query != null && query.equals(this.lastUIQueryPH) == false) {
this.lastUIQueryPH = query;
// Recuperamos las 200 primeras coincidencias
// Recuperamos las XXX primeras coincidencias
this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
}
return this.primaryHealthCareCentersList;
}
/**
* Método que implementa la búsqueda de una especialidad a través del termino tecleado por el usuario en la lista de selección
*
* @param query Termino tecleado por el usuario
* @return Lista de especialidades que coinciden con el termino búscado por el usuario.
*/
public List<MedicalSpecialtyTO> completeMedicalSpecialty(String query) {
if (query != null && query.equals(this.lastUIQueryMS) == false) {
this.lastUIQueryMS = query;
// Recuperamos las 200 primeras coincidencias
// Recuperamos las XXX primeras coincidencias
this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
}
return this.medicalSpecialitiesList;
}
public void hadleNIFValueChange() {
/**
* Gestióna el evento de modficación del NIF del usuario actual. Búsca si el NIF ya está en uso para otro usuario. Solo se permite que el mismo NIF se refistro como paciente y
* como médico (especialista o de familia, pero no como ambos).
*
* Un Médico puede estar registrado como paciente con el mismo NIF, pero como médico de familia y especialista al mismo tiempo.
*/
public void handleNIFValueChange() {
boolean isDupe = false;
if (ValidationUtils.checkIfNifAlreadyRegistered(this.getRemoteManagerCommon(), this.userType, this.nif, this.id) == true) {
isDupe = true;
@@ -186,6 +225,12 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
return familyDoctorList;
}
/**
* Método que implementa la búsqueda de un médico de familia a través del termino tecleado por el usuario en la lista de selección
*
* @param query Termino tecleado por el usuario
* @return Lista de médicos de familia que coinciden con el termino búscado por el usuario.
*/
public List<FamilyDoctorTO> completeFamilyDoctor(String query) {
if (query != null && query.equals(this.lastUIQueryFD) == false) {
this.lastUIQueryFD = query;
@@ -255,6 +300,18 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
return id;
}
/**
* Método que guarda los datos realizados en la modificación del perfil.
* Tiene en cuenta el tipo de usuario que está editando su perfil.
*
* Si el usuario es un médico de familia requiere que se seleccione un CAP para el usuario.
* Si el usuario es un médico especialista requiere que se seleccione una especialidad médica para el usuario.
* Se comprueba que el NIF especificado sea válido y no pertenezca a otro usuario registrado (ver relgas de NIF permitidos para usuarios en el método handleNIFValueChange)
*
* Si se especifica una nueva contraseña, entonces se realiz un cambio de contraseña, y se requiere además: Que la nueva contraseña sea diferente a la anterior.
*
* Después de guardar los datos, se actualizan los datos guardados en la sesión actual para reflejar un posible cambio de nombre y/o apellidos.
*/
public void saveData() {
int error = 0;
@@ -83,7 +83,7 @@ public class LoginMBean extends ManagedBeanBase {
// logout event, invalidate session
public String logout() {
this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Sessión cerrada", "Ha cerrado correctament su ssesión. Hasta la vista");
this.addFacesMessageKeep(FacesMessage.SEVERITY_INFO, "Sessión cerrada", "Ha cerrado correctament su sesión. Hasta la vista");
SessionUtils.DestroySession();
@@ -0,0 +1,173 @@
package managedbean.systemAdmin;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import org.primefaces.event.RowEditEvent;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;
import TO.PrimaryHealthCareCenterTO;
import managedbean.common.ManagedBeanBase;
@Named("ManageHealthCareCenters")
@ViewScoped
public class ManageHealthCareCentersMBean extends ManagedBeanBase implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private String location;
private PrimaryHealthCareCenterTO primaryHealthCareCenter;
private LazyDataModel<PrimaryHealthCareCenterTO> lazyDataModelCAPsList;
public ManageHealthCareCentersMBean() {
}
@PostConstruct
public void init() {
this.lazyDataModelCAPsList = new LazyDataModel<PrimaryHealthCareCenterTO>() {
private static final long serialVersionUID = 1L;
@Override
public List<PrimaryHealthCareCenterTO> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
Long totalRowCount = getRemoteManagerSystemAdmin().getCAPCount();
this.setRowCount(totalRowCount.intValue());
return getRemoteManagerSystemAdmin().listCAPsPaged((first / pageSize), pageSize);
}
};
}
public LazyDataModel<PrimaryHealthCareCenterTO> getlazyDataModelCAPsList() {
return lazyDataModelCAPsList;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
private void showPrimaryHealthCareCenterData(PrimaryHealthCareCenterTO cap) {
this.primaryHealthCareCenter = cap;
if (cap == null) {
this.id = null;
this.name = "";
this.location = "";
} else {
this.id = cap.getId();
this.name = cap.getName();
this.location = cap.getLocation();
}
}
public PrimaryHealthCareCenterTO getPrimaryHealthCareCenter() {
return primaryHealthCareCenter;
}
public void setPrimaryHealthCareCenter(PrimaryHealthCareCenterTO value) {
this.primaryHealthCareCenter = value;
}
public void onRowEdit(RowEditEvent event) {
int error = 0;
if (((PrimaryHealthCareCenterTO) event.getObject()).getName() == null || ((PrimaryHealthCareCenterTO) event.getObject()).getName().trim().length() == 0) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Nombre no relleno", "Por favor, escriba un nombre para el centro.");
error++;
}
if (((PrimaryHealthCareCenterTO) event.getObject()).getLocation() == null || ((PrimaryHealthCareCenterTO) event.getObject()).getLocation().trim().length() == 0) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Localización no rellena", "Por favor, escriba una localización.");
error++;
}
if (error == 0) {
try {
this.getRemoteManagerSystemAdmin().updateHealthCareCenter(((PrimaryHealthCareCenterTO) event.getObject()).getId(), ((PrimaryHealthCareCenterTO) event.getObject()).getName(),
((PrimaryHealthCareCenterTO) event.getObject()).getLocation());
this.showPrimaryHealthCareCenterData(null);
FacesMessage msg = new FacesMessage("CAP editado", ((PrimaryHealthCareCenterTO) event.getObject()).getName());
FacesContext.getCurrentInstance().addMessage(null, msg);
} catch (Exception e) {
this.manageException(e);
}
}
}
public void onRowCancel(RowEditEvent event) {
FacesMessage msg = new FacesMessage("Edición cancelada", ((PrimaryHealthCareCenterTO) event.getObject()).getName());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void deleteDataById(Integer id) throws IOException {
try {
this.getRemoteManagerSystemAdmin().deleteHealthCareCenter(id);
this.showPrimaryHealthCareCenterData(null);
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "El CAP se ha borrado", "Los datos del Centro de Atención Primaria se han borrado correctamente.");
} catch (Exception e) {
this.manageException(e);
}
}
public void insertData() {
int error = 0;
if (name == null || name.trim().length() == 0) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Nombre no relleno", "Por favor, escriba un nombre para el centro.");
error++;
}
if (location == null || location.trim().length() == 0) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Localización no rellena", "Por favor, escriba una localización.");
error++;
}
if (this.getRemoteManagerSystemAdmin().findHealthCareCenterByName(name) != null) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "CAP ya existente", "El CAP ya se encuentra en la base de datos");
error++;
}
if (error == 0) {
try {
this.getRemoteManagerSystemAdmin().insertHealthCareCenter(name, location);
this.showPrimaryHealthCareCenterData(null);
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los datos se han guardado", "Los datos del Centro de Atención Primaria se han guardado correctamente.");
} catch (Exception e) {
this.manageException(e);
}
}
}
}
@@ -10,7 +10,6 @@ import javax.inject.Named;
import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO;
import common.Constants;
import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils;
@@ -51,7 +50,7 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ
}
private void refreshFormData() {
this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
this.medicalSpecialitiesList = this.getRemoteManagerCommon().listAllMedicalSpecialities();
}
public Integer getId() {
@@ -118,9 +117,7 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ
if (error == 0) {
try {
MedicalSpecialtyTO ms = this.getRemoteManagerSystemAdmin().updateSpecialty(this.medicalSpecialty.getId(), this.medicalSpecialty.getName(),
this.medicalSpecialty.getDescription());
this.getRemoteManagerSystemAdmin().updateSpecialty(this.medicalSpecialty.getId(), this.medicalSpecialty.getName(),this.medicalSpecialty.getDescription());
this.showSpecialtyData(null);
this.refreshFormData();
@@ -149,7 +146,7 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ
this.showSpecialtyData(null);
this.refreshFormData();
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los especialidad se ha borrado", "Los datos de la especialidad se han borrado correctamente.");
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "La especialidad se ha borrado", "Los datos de la especialidad se han borrado correctamente.");
} catch (Exception e) {
this.manageException(e);
}
@@ -175,8 +172,7 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ
if (error == 0) {
try {
MedicalSpecialtyTO ms = this.getRemoteManagerSystemAdmin().insertSpecialty(name, description);
this.getRemoteManagerSystemAdmin().insertSpecialty(name, description);
this.showSpecialtyData(null);
this.refreshFormData();
@@ -46,7 +46,7 @@ public class AddVisitMBean extends ManagedBeanBase implements Serializable {
}
public void saveData() {
// TODO: Añadir la nueva visita a la BBDD
this.getRemoteManagerVisit().addVisit(this.patient.getId(), this.date, this.time, this.observations);
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Visita creada", "La nueva visita se ha registrado correctamente en el sistema.");
}
@@ -95,7 +95,7 @@ public class PatientVisitListMBean extends ManagedBeanBase implements Serializab
}
public void removeVisit(Integer visitId) throws IOException {
// TODO: Eliminar visita de la BBDD
this.getRemoteManagerVisit().removeVisit(visitId);
this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Visita eliminada", String.format("La visita con Id: %d se ha eliminado correctamente", visitId));
}
@@ -91,13 +91,13 @@ public class UpdateVisitMBean extends ManagedBeanBase implements Serializable {
case PATIENT:
// Administrador y paciente pueden actualizar la fecha y hora de la visita (excepto esl resultado)
// TODO: Implementar método en EJB
// this.getRemoteManagerVisit().updateVisit(this.id, this.date, this.time);
this.getRemoteManagerVisit().updateVisit(this.id, this.date, this.time);
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Visita actualizada", "La fecha y hora de la visita se ha actualizado correctamente.");
break;
case FAMILY_DOCTOR:
// El médico de familia solo puede actualizar el resultado.
// TODO: implementar método EJB para actualizar el resultado.
// this.getRemoteManagerVisit().addResultToVisit(this.id, this.result);
this.getRemoteManagerVisit().addResultToVisit(this.id, this.result);
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Resultado actualizado", "El resultado de la visita se ha actualizado correctamente.");
break;
case SPECIALIST_DOCTOR:
+310 -110
View File
@@ -150,16 +150,216 @@ insert into MyHealth.MedicalSpecialty(name, description) values
-- Insertar médicos de familia
INSERT INTO myhealth.familydoctor(professionalnumber, password, nif, surname, email, name, primaryhealthcarecenterid) VALUES
('PRO#100','912EC803B2CE49E4A541068D495AB570','95874388S','Moran Ortiz', '[email protected]','Xian', 1)
,('PRO#101','912EC803B2CE49E4A541068D495AB570','59546140Z','Zambrano Rivas', '[email protected]','Belen', 2)
,('PRO#102','912EC803B2CE49E4A541068D495AB570','16354100L','Cuevas Luque', '[email protected]','Fernando', 3)
,('PRO#103','912EC803B2CE49E4A541068D495AB570','32662259M','Becerra Muñiz', '[email protected]','Luis', 4)
,('PRO#104','912EC803B2CE49E4A541068D495AB570','70600712G','Aznar Silva', '[email protected]','Ana', 5)
,('PRO#105','912EC803B2CE49E4A541068D495AB570','08003806J','Galvez Sancho', '[email protected]','Alfonso', 6)
,('PRO#106','912EC803B2CE49E4A541068D495AB570','19567288S','Criado Marti', '[email protected]','Jordi', 7)
,('PRO#107','912EC803B2CE49E4A541068D495AB570','95413653Q','Estevez Mena', '[email protected]','Barbara', 8)
,('PRO#108','912EC803B2CE49E4A541068D495AB570','90914444K','Godoy Alcaide', '[email protected]','Amalia', 9)
,('PRO#109','912EC803B2CE49E4A541068D495AB570','05709869G','Lucas Wang', '[email protected]','Carmelo', 10);
('PRO#100','912EC803B2CE49E4A541068D495AB570','95874388S','Moran Ortiz', '[email protected]','Xian', 1),
('PRO#101','912EC803B2CE49E4A541068D495AB570','59546140Z','Zambrano Rivas', '[email protected]','Belen', 2),
('PRO#102','912EC803B2CE49E4A541068D495AB570','16354100L','Cuevas Luque', '[email protected]','Fernando', 3),
('PRO#103','912EC803B2CE49E4A541068D495AB570','32662259M','Becerra Muñiz', '[email protected]','Luis', 4),
('PRO#104','912EC803B2CE49E4A541068D495AB570','70600712G','Aznar Silva', '[email protected]','Ana', 5),
('PRO#105','912EC803B2CE49E4A541068D495AB570','08003806J','Galvez Sancho', '[email protected]','Alfonso', 6),
('PRO#106','912EC803B2CE49E4A541068D495AB570','19567288S','Criado Marti', '[email protected]','Jordi', 7),
('PRO#107','912EC803B2CE49E4A541068D495AB570','95413653Q','Estevez Mena', '[email protected]','Barbara', 8),
('PRO#108','912EC803B2CE49E4A541068D495AB570','90914444K','Godoy Alcaide', '[email protected]','Amalia', 9),
('PRO#109','912EC803B2CE49E4A541068D495AB570','05709869G','Lucas Wang', '[email protected]','Carmelo', 10),
('PRO#321','912EC803B2CE49E4A541068D495AB570','83450147Y','Zambrano Gonzalez', '[email protected]',' Teodoro', 1),
('PRO#322','912EC803B2CE49E4A541068D495AB570','82460286L','Melero Vaquero', 'Manuel [email protected]',' Manuel Jose', 2),
('PRO#323','912EC803B2CE49E4A541068D495AB570','66027106V','Amaya Juarez', '[email protected]',' Gustavo', 3),
('PRO#324','912EC803B2CE49E4A541068D495AB570','35535426N','Santos Carmona', '[email protected]',' Gemma', 4),
('PRO#325','912EC803B2CE49E4A541068D495AB570','03169193T','Lin Gracia', '[email protected]',' Ramiro', 5),
('PRO#326','912EC803B2CE49E4A541068D495AB570','65718014E','Pacheco Gonzalo', 'Maria [email protected]',' Maria Yolanda', 6),
('PRO#327','912EC803B2CE49E4A541068D495AB570','29571200P','Calero Duarte', '[email protected]',' Rosalia', 7),
('PRO#328','912EC803B2CE49E4A541068D495AB570','73755195Z','Andres Ros', '[email protected]',' Jessica', 8),
('PRO#329','912EC803B2CE49E4A541068D495AB570','71593467X','Sanz Palomo', '[email protected]',' Adolfo', 9),
('PRO#330','912EC803B2CE49E4A541068D495AB570','85689934F','Cabello Molina', '[email protected]',' Mar', 10),
('PRO#331','912EC803B2CE49E4A541068D495AB570','05118688S','Domingo Diez', '[email protected]',' Felicidad', 11),
('PRO#332','912EC803B2CE49E4A541068D495AB570','59057948C','Fernandez Medina', '[email protected]',' Amador', 12),
('PRO#333','912EC803B2CE49E4A541068D495AB570','84861480J','De La Torre Arranz', '[email protected]',' Magdalena', 13),
('PRO#334','912EC803B2CE49E4A541068D495AB570','77743570M','Mohamed Carmona', '[email protected]',' Oscar', 14),
('PRO#335','912EC803B2CE49E4A541068D495AB570','86346483K','Camacho Valle', '[email protected]',' Julio', 15),
('PRO#336','912EC803B2CE49E4A541068D495AB570','56743696M','Gimenez Bartolome', 'Maria [email protected]',' Maria Asuncion', 16),
('PRO#337','912EC803B2CE49E4A541068D495AB570','67594210Q','Carbonell Piñeiro', '[email protected]',' Almudena', 1),
('PRO#338','912EC803B2CE49E4A541068D495AB570','32394018J','Bonet Bermejo', '[email protected]',' Marcelino', 2),
('PRO#339','912EC803B2CE49E4A541068D495AB570','93248168G','Carrera Ortiz', '[email protected]',' Alexandre', 3),
('PRO#340','912EC803B2CE49E4A541068D495AB570','45633960M','Crespo Abad', '[email protected]',' Santos', 4),
('PRO#341','912EC803B2CE49E4A541068D495AB570','44975754J','Ocaña Medina', '[email protected]',' Ines', 5),
('PRO#342','912EC803B2CE49E4A541068D495AB570','66498632C','Suarez Recio', '[email protected]',' Pedro', 6),
('PRO#343','912EC803B2CE49E4A541068D495AB570','83283712E','Saenz Carballo', '[email protected]',' Roser', 7),
('PRO#344','912EC803B2CE49E4A541068D495AB570','22460230V','Menendez Alcantara', 'Carlos [email protected]',' Carlos Alberto', 8),
('PRO#345','912EC803B2CE49E4A541068D495AB570','40900569Z','Jurado Carrion', '[email protected]',' Moises', 9),
('PRO#346','912EC803B2CE49E4A541068D495AB570','47264240E','Alvarez Blasco', '[email protected]',' Adrian', 10),
('PRO#347','912EC803B2CE49E4A541068D495AB570','74061660G','Brito Molina', '[email protected]',' Jesus', 11),
('PRO#348','912EC803B2CE49E4A541068D495AB570','07432923J','Miralles Leal', '[email protected]',' Hector', 12),
('PRO#349','912EC803B2CE49E4A541068D495AB570','56260234A','Chamorro Heras', '[email protected]',' Erik', 13),
('PRO#350','912EC803B2CE49E4A541068D495AB570','37425385S','Arevalo Iglesias', '[email protected]',' Cristian', 14),
('PRO#351','912EC803B2CE49E4A541068D495AB570','38629626E','Polo Moral', '[email protected]',' Ivan', 15),
('PRO#352','912EC803B2CE49E4A541068D495AB570','40325942L','Pozo Gonzalez', '[email protected]',' Gregorio', 16),
('PRO#353','912EC803B2CE49E4A541068D495AB570','48070502L','Salas Lozano', '[email protected]',' Elsa', 1),
('PRO#354','912EC803B2CE49E4A541068D495AB570','22743402J','Rosado Toledo', '[email protected]',' Carolina', 2),
('PRO#355','912EC803B2CE49E4A541068D495AB570','99704244A','Salazar Conde', 'Luis [email protected]',' Luis Angel', 3),
('PRO#356','912EC803B2CE49E4A541068D495AB570','31213766Y','Prado Maldonado', '[email protected]',' Pere', 4),
('PRO#357','912EC803B2CE49E4A541068D495AB570','97558390A','Lin Poveda', '[email protected]',' Isidoro', 5),
('PRO#358','912EC803B2CE49E4A541068D495AB570','20032738Z','Cuadrado Costa', '[email protected]',' Claudia', 6),
('PRO#359','912EC803B2CE49E4A541068D495AB570','01694490B','Melero Castellanos', '[email protected]',' Enric', 7),
('PRO#360','912EC803B2CE49E4A541068D495AB570','59261456R','Domenech Gamez', '[email protected]',' Adriana', 8),
('PRO#361','912EC803B2CE49E4A541068D495AB570','26604091Z','Domingo Singh', 'Luis [email protected]',' Luis Antonio', 9),
('PRO#362','912EC803B2CE49E4A541068D495AB570','81656673A','Sastre Frias', '[email protected]',' Candido', 10),
('PRO#363','912EC803B2CE49E4A541068D495AB570','29212812Y','Palma Mohamed', '[email protected]',' Pilar', 11),
('PRO#364','912EC803B2CE49E4A541068D495AB570','95125089X','Pino Aguilar', '[email protected]',' Adolfo', 12),
('PRO#365','912EC803B2CE49E4A541068D495AB570','38877119N','Martinez Galvan', '[email protected]',' Jimena', 13),
('PRO#366','912EC803B2CE49E4A541068D495AB570','40405748S','Sola Bermejo', '[email protected]',' Eloy', 14),
('PRO#367','912EC803B2CE49E4A541068D495AB570','27910288H','Fuentes Lorenzo', 'Maria [email protected]',' Maria Consuelo', 15),
('PRO#368','912EC803B2CE49E4A541068D495AB570','51584830Q','Aragon Royo', '[email protected]',' Ruth', 16),
('PRO#369','912EC803B2CE49E4A541068D495AB570','06962730D','Alcalde Velez', '[email protected]',' Rafaela', 1),
('PRO#370','912EC803B2CE49E4A541068D495AB570','80990695J','Bermejo Blasco', '[email protected]',' Cristian', 2),
('PRO#371','912EC803B2CE49E4A541068D495AB570','16082754G','Guerrero Santiago', '[email protected]',' Carla', 3),
('PRO#372','912EC803B2CE49E4A541068D495AB570','21789241F','Acosta Trujillo', 'Antonio [email protected]',' Antonio Jesus', 4),
('PRO#373','912EC803B2CE49E4A541068D495AB570','21110391W','Villar Bonet', '[email protected]',' Abraham', 5),
('PRO#374','912EC803B2CE49E4A541068D495AB570','71926018G','Caceres Aznar', '[email protected]',' Africa', 6),
('PRO#375','912EC803B2CE49E4A541068D495AB570','02983300Q','Estevez Marrero', '[email protected]',' Pablo', 7),
('PRO#376','912EC803B2CE49E4A541068D495AB570','79922817W','Carrion Delgado', '[email protected]',' Alba', 8),
('PRO#377','912EC803B2CE49E4A541068D495AB570','63817139M','Miguel Wang', '[email protected]',' Cesar', 9),
('PRO#378','912EC803B2CE49E4A541068D495AB570','26667496P','Serna Godoy', '[email protected]',' Rafael', 10),
('PRO#379','912EC803B2CE49E4A541068D495AB570','34667199N','Iglesias Mateo', 'Carmen [email protected]',' Carmen Maria', 11),
('PRO#380','912EC803B2CE49E4A541068D495AB570','97436006W','Chacon Mohamed', '[email protected]',' Isidro', 12),
('PRO#381','912EC803B2CE49E4A541068D495AB570','72203762T','Cordero Olivares', '[email protected]',' Ramon', 13),
('PRO#382','912EC803B2CE49E4A541068D495AB570','33218652M','Padilla Casas', '[email protected]',' Soledad', 14),
('PRO#383','912EC803B2CE49E4A541068D495AB570','75011128D','Jimenez Burgos', '[email protected]',' Mohammed', 15),
('PRO#384','912EC803B2CE49E4A541068D495AB570','31299876G','Figueroa Naranjo', 'Ana [email protected]',' Ana Belen', 16),
('PRO#385','912EC803B2CE49E4A541068D495AB570','57748477P','Vidal Roldan', '[email protected]',' Josefina', 1),
('PRO#386','912EC803B2CE49E4A541068D495AB570','99198742H','Rosa Andres', '[email protected]',' Aurora', 2),
('PRO#387','912EC803B2CE49E4A541068D495AB570','65340851J','Castellanos Vergara', 'Juan [email protected]',' Juan Jesus', 3),
('PRO#388','912EC803B2CE49E4A541068D495AB570','67858714C','Alcaraz Solano', 'Emilio [email protected]',' Emilio Jose', 4),
('PRO#389','912EC803B2CE49E4A541068D495AB570','34364420M','Huerta Rico', '[email protected]',' Noemi', 5),
('PRO#390','912EC803B2CE49E4A541068D495AB570','47372815Z','Soto Calvo', '[email protected]',' Nicolas', 6),
('PRO#391','912EC803B2CE49E4A541068D495AB570','81695922Z','Saenz Arevalo', 'Ana [email protected]',' Ana Rosa', 7),
('PRO#392','912EC803B2CE49E4A541068D495AB570','20870549G','Navarrete Villalba', '[email protected]',' Natividad', 8),
('PRO#393','912EC803B2CE49E4A541068D495AB570','30140343Q','Gracia Galindo', '[email protected]',' Matias', 9),
('PRO#394','912EC803B2CE49E4A541068D495AB570','57107502C','Piñero Correa', '[email protected]',' Rosario', 10),
('PRO#395','912EC803B2CE49E4A541068D495AB570','31599091N','Clemente Frias', '[email protected]',' Susana', 11),
('PRO#396','912EC803B2CE49E4A541068D495AB570','78191056A','Miguel Aguirre', '[email protected]',' Sergio', 12),
('PRO#397','912EC803B2CE49E4A541068D495AB570','94696539L','Vazquez Toro', '[email protected]',' Mohamed', 13),
('PRO#398','912EC803B2CE49E4A541068D495AB570','74130059R','Ojeda Blasco', 'Francisco [email protected]',' Francisco Javier', 14),
('PRO#399','912EC803B2CE49E4A541068D495AB570','54263073R','Calleja Flores', '[email protected]',' Teodoro', 15),
('PRO#400','912EC803B2CE49E4A541068D495AB570','64905450W','Martinez Olmedo', '[email protected]',' Eloisa', 16),
('PRO#401','912EC803B2CE49E4A541068D495AB570','04669076F','Blasco Melero', '[email protected]',' Leonor', 1),
('PRO#402','912EC803B2CE49E4A541068D495AB570','53157751J','Freire Ferrer', 'Ana [email protected]',' Ana Isabel', 2),
('PRO#403','912EC803B2CE49E4A541068D495AB570','84275316G','Figueroa Salgado', '[email protected]',' Ricardo', 3),
('PRO#404','912EC803B2CE49E4A541068D495AB570','47424325G','Rebollo Pineda', '[email protected]',' Gerardo', 4),
('PRO#405','912EC803B2CE49E4A541068D495AB570','53099713G','Martinez Solis', 'Maria [email protected]',' Maria Purificacion', 5),
('PRO#406','912EC803B2CE49E4A541068D495AB570','09794229R','Flores Guijarro', '[email protected]',' Israel', 6),
('PRO#407','912EC803B2CE49E4A541068D495AB570','74409378P','Bosch Zapata', '[email protected]',' Daniel', 7),
('PRO#408','912EC803B2CE49E4A541068D495AB570','18863538L','Carmona Sastre', '[email protected]',' Margarita', 8),
('PRO#409','912EC803B2CE49E4A541068D495AB570','66477577X','Rovira Cuevas', 'Jose [email protected]',' Jose Carlos', 9),
('PRO#410','912EC803B2CE49E4A541068D495AB570','35967055T','Aranda Valls', '[email protected]',' Florentina', 10),
('PRO#411','912EC803B2CE49E4A541068D495AB570','98404637B','Redondo Peinado', '[email protected]',' Joana', 11),
('PRO#412','912EC803B2CE49E4A541068D495AB570','55337416Z','Robles Ramon', '[email protected]',' Bruno', 12),
('PRO#413','912EC803B2CE49E4A541068D495AB570','39043197F','Campo Asensio', 'Maria [email protected]',' Maria Gracia', 13),
('PRO#414','912EC803B2CE49E4A541068D495AB570','61113485R','Millan Melero', '[email protected]',' Jaime', 14),
('PRO#415','912EC803B2CE49E4A541068D495AB570','88756716S','Gil Pastor', '[email protected]',' Jan', 15),
('PRO#416','912EC803B2CE49E4A541068D495AB570','61608684X','Del Valle Villa', '[email protected]',' Consolacion', 16),
('PRO#417','912EC803B2CE49E4A541068D495AB570','46601056C','Varela Alarcon', '[email protected]',' Felipe', 1),
('PRO#418','912EC803B2CE49E4A541068D495AB570','80611975B','Vega Molina', '[email protected]',' Roberto', 2),
('PRO#419','912EC803B2CE49E4A541068D495AB570','95160642M','Calvo Luis', '[email protected]',' Guillermo', 3),
('PRO#420','912EC803B2CE49E4A541068D495AB570','88511050N','Caballero Duarte', '[email protected]',' Oliver', 4),
('PRO#421','912EC803B2CE49E4A541068D495AB570','41289667K','Davila Blanco', '[email protected]',' Albert', 1),
('PRO#422','912EC803B2CE49E4A541068D495AB570','20430184C','Vives Cordero', 'Jose [email protected]',' Jose Manuel', 2),
('PRO#423','912EC803B2CE49E4A541068D495AB570','85921489K','Mateo Rico', '[email protected]',' Carmelo', 3),
('PRO#424','912EC803B2CE49E4A541068D495AB570','31634396N','Macias Prieto', 'Jose [email protected]',' Jose Antonio', 4),
('PRO#425','912EC803B2CE49E4A541068D495AB570','53781842E','Lazaro Villegas', 'Maria [email protected]',' Maria Purificacion', 5),
('PRO#426','912EC803B2CE49E4A541068D495AB570','03396741D','Frias Abad', 'Juan [email protected]',' Juan Luis', 6),
('PRO#427','912EC803B2CE49E4A541068D495AB570','30561128Q','Carrasco Luis', '[email protected]',' Gregoria', 7),
('PRO#428','912EC803B2CE49E4A541068D495AB570','06994306Y','Mateos Amaya', '[email protected]',' Pedro', 8),
('PRO#429','912EC803B2CE49E4A541068D495AB570','61950502W','Macias Cuevas', 'Juan [email protected]',' Juan Carlos', 9),
('PRO#430','912EC803B2CE49E4A541068D495AB570','07916216F','Fajardo Rodrigo', '[email protected]',' Josep', 10),
('PRO#431','912EC803B2CE49E4A541068D495AB570','56885913J','Leal Soria', '[email protected]',' Juliana', 11),
('PRO#432','912EC803B2CE49E4A541068D495AB570','84206156M','Miranda Luque', '[email protected]',' Vicenta', 12),
('PRO#433','912EC803B2CE49E4A541068D495AB570','37898942W','Sainz Baena', '[email protected]',' Aroa', 13),
('PRO#434','912EC803B2CE49E4A541068D495AB570','19268095Y','Fraile Latorre', 'Isabel [email protected]',' Isabel Maria', 14),
('PRO#435','912EC803B2CE49E4A541068D495AB570','53006303C','Iglesias Padilla', 'Maria [email protected]',' Maria Rosario', 15),
('PRO#436','912EC803B2CE49E4A541068D495AB570','86009326K','Mendez Alfaro', '[email protected]',' Encarnacion', 16),
('PRO#437','912EC803B2CE49E4A541068D495AB570','76519090E','Sole Calderon', 'Jesus [email protected]',' Jesus Angel', 1),
('PRO#438','912EC803B2CE49E4A541068D495AB570','87397882K','Villegas Piñeiro', '[email protected]',' Natalia', 2),
('PRO#439','912EC803B2CE49E4A541068D495AB570','52855443V','Amaya Vela', 'Maria [email protected]',' Maria Nieves', 3),
('PRO#440','912EC803B2CE49E4A541068D495AB570','96626367D','Sevilla Pena', '[email protected]',' Jaume', 4),
('PRO#441','912EC803B2CE49E4A541068D495AB570','08466139T','Bernal Palacios', 'Juan [email protected]',' Juan Jesus', 5),
('PRO#442','912EC803B2CE49E4A541068D495AB570','89892351W','Coll Calleja', '[email protected]',' Natalia', 6),
('PRO#443','912EC803B2CE49E4A541068D495AB570','41130356P','Jorge Salvador', '[email protected]',' Gines', 7),
('PRO#444','912EC803B2CE49E4A541068D495AB570','65624256N','Amaya Prado', '[email protected]',' Eric', 8),
('PRO#445','912EC803B2CE49E4A541068D495AB570','25492168A','Toro Lozano', '[email protected]',' Sebastian', 9),
('PRO#446','912EC803B2CE49E4A541068D495AB570','00150656Y','Campos Araujo', '[email protected]',' Armando', 10),
('PRO#447','912EC803B2CE49E4A541068D495AB570','98059584G','Alcala Sala', '[email protected]',' Gemma', 11),
('PRO#448','912EC803B2CE49E4A541068D495AB570','97579373X','Polo Corrales', '[email protected]',' Jacobo', 12),
('PRO#449','912EC803B2CE49E4A541068D495AB570','69669161E','Merino Vicente', 'Antonio [email protected]',' Antonio Miguel', 13),
('PRO#450','912EC803B2CE49E4A541068D495AB570','86338060Q','Borrego Carballo', '[email protected]',' Sheila', 14),
('PRO#451','912EC803B2CE49E4A541068D495AB570','62730348X','Pineda Rosado', '[email protected]',' Eulalia', 15),
('PRO#452','912EC803B2CE49E4A541068D495AB570','80566269Y','Estevez Izquierdo', '[email protected]',' Victoriano', 16),
('PRO#453','912EC803B2CE49E4A541068D495AB570','78274293A','Cuenca Lorente', '[email protected]',' Isaac', 1),
('PRO#454','912EC803B2CE49E4A541068D495AB570','73356975Q','Rovira Calero', '[email protected]',' Tamara', 2),
('PRO#455','912EC803B2CE49E4A541068D495AB570','79912367V','Mena Bravo', '[email protected]',' Adela', 3),
('PRO#456','912EC803B2CE49E4A541068D495AB570','06382429K','Barragan Sanchez', 'Pedro [email protected]',' Pedro Manuel', 4),
('PRO#457','912EC803B2CE49E4A541068D495AB570','37448458L','Carrion Palomo', '[email protected]',' Alicia', 1),
('PRO#458','912EC803B2CE49E4A541068D495AB570','75923674F','Rodrigo Ramos', '[email protected]',' Paula', 2),
('PRO#459','912EC803B2CE49E4A541068D495AB570','74322757M','Estevez Ventura', '[email protected]',' Gloria', 3),
('PRO#460','912EC803B2CE49E4A541068D495AB570','49838470T','Galvez Amaya', '[email protected]',' Manuel', 4),
('PRO#461','912EC803B2CE49E4A541068D495AB570','63831045L','Pujol Oliver', '[email protected]',' Sheila', 5),
('PRO#462','912EC803B2CE49E4A541068D495AB570','18375822H','Corral Ruano', 'Maria [email protected]',' Maria Esperanza', 6),
('PRO#463','912EC803B2CE49E4A541068D495AB570','73127729B','Iglesias Lobato', '[email protected]',' Enriqueta', 7),
('PRO#464','912EC803B2CE49E4A541068D495AB570','93813178L','Lin Cabrera', '[email protected]',' Nerea', 8),
('PRO#465','912EC803B2CE49E4A541068D495AB570','49476995Q','Barbero Mateu', '[email protected]',' Matias', 9),
('PRO#466','912EC803B2CE49E4A541068D495AB570','46787648J','Dorado Luna', 'Juan [email protected]',' Juan Jesus', 10),
('PRO#467','912EC803B2CE49E4A541068D495AB570','17059489K','Pacheco Solano', '[email protected]',' Isabel', 11),
('PRO#468','912EC803B2CE49E4A541068D495AB570','68753335X','Jurado Herranz', '[email protected]',' Victoriano', 12),
('PRO#469','912EC803B2CE49E4A541068D495AB570','56146157Y','Sanchez Marco', '[email protected]',' Julio', 13),
('PRO#470','912EC803B2CE49E4A541068D495AB570','28895880Z','Ferrero Bermudez', '[email protected]',' Noelia', 14),
('PRO#471','912EC803B2CE49E4A541068D495AB570','95804647X','Morillo Valero', '[email protected]',' Trinidad', 15),
('PRO#472','912EC803B2CE49E4A541068D495AB570','01548835S','Carrion Arranz', '[email protected]',' Itziar', 16),
('PRO#473','912EC803B2CE49E4A541068D495AB570','11620234J','Caballero Arranz', '[email protected]',' Maite', 1),
('PRO#474','912EC803B2CE49E4A541068D495AB570','01205009Q','Gracia Carrion', '[email protected]',' Alfredo', 2),
('PRO#475','912EC803B2CE49E4A541068D495AB570','19652249Z','Suarez Muñiz', '[email protected]',' Avelino', 3),
('PRO#476','912EC803B2CE49E4A541068D495AB570','36983526D','Gimenez Romera', '[email protected]',' Margarita', 4),
('PRO#477','912EC803B2CE49E4A541068D495AB570','13116881G','Guerra Aviles', '[email protected]',' Susana', 5),
('PRO#478','912EC803B2CE49E4A541068D495AB570','00743418N','Ortiz Pizarro', '[email protected]',' Ricardo', 6),
('PRO#479','912EC803B2CE49E4A541068D495AB570','49532302P','Pereira Leon', '[email protected]',' Diana', 7),
('PRO#480','912EC803B2CE49E4A541068D495AB570','29019974T','Barrera Gomez', '[email protected]',' Candido', 8),
('PRO#481','912EC803B2CE49E4A541068D495AB570','54059624X','Aznar Rico', 'Maria [email protected]',' Maria Eugenia', 9),
('PRO#482','912EC803B2CE49E4A541068D495AB570','50099259S','Ocaña Salas', '[email protected]',' Adelaida', 10),
('PRO#483','912EC803B2CE49E4A541068D495AB570','10034450X','Cid Calvo', '[email protected]',' Roger', 11),
('PRO#484','912EC803B2CE49E4A541068D495AB570','39781057G','Silva Piñero', 'Maria [email protected]',' Maria Luisa', 12),
('PRO#485','912EC803B2CE49E4A541068D495AB570','30250717J','Pinto Anton', '[email protected]',' Fatima', 13),
('PRO#486','912EC803B2CE49E4A541068D495AB570','54326793B','Escudero Guerra', 'Jose [email protected]',' Jose Andres', 14),
('PRO#487','912EC803B2CE49E4A541068D495AB570','12077553T','Marin Portillo', '[email protected]',' Ignacio', 15),
('PRO#488','912EC803B2CE49E4A541068D495AB570','81173756V','Singh Agudo', '[email protected]',' Emiliano', 16),
('PRO#489','912EC803B2CE49E4A541068D495AB570','18965821K','Cobos Merino', '[email protected]',' Eloy', 1),
('PRO#490','912EC803B2CE49E4A541068D495AB570','90888158R','Heras Pulido', 'Manuel [email protected]',' Manuel Antonio', 2),
('PRO#491','912EC803B2CE49E4A541068D495AB570','10769780F','Exposito Riera', '[email protected]',' Aleix', 3),
('PRO#492','912EC803B2CE49E4A541068D495AB570','50993180H','Becerra Abad', '[email protected]',' Felisa', 4),
('PRO#493','912EC803B2CE49E4A541068D495AB570','60112400Z','Criado Pizarro', '[email protected]',' Rocio', 1),
('PRO#494','912EC803B2CE49E4A541068D495AB570','24121440Y','Tapia Aznar', 'Maria Begoñ[email protected]',' Maria Begoña', 2),
('PRO#495','912EC803B2CE49E4A541068D495AB570','14182618J','Rojas Ferrero', '[email protected]',' Daniel', 3),
('PRO#496','912EC803B2CE49E4A541068D495AB570','51057632R','Linares Marcos', 'Jose [email protected]',' Jose Andres', 4),
('PRO#497','912EC803B2CE49E4A541068D495AB570','74414073B','Rueda Caceres', '[email protected]',' Isaac', 5),
('PRO#498','912EC803B2CE49E4A541068D495AB570','33474231P','Guerrero Rosa', '[email protected]',' Ruth', 6),
('PRO#499','912EC803B2CE49E4A541068D495AB570','33127256B','Corrales Palacios', '[email protected]',' Irene', 7),
('PRO#500','912EC803B2CE49E4A541068D495AB570','35105963M','Guzman Pinto', '[email protected]',' Aina', 8),
('PRO#501','912EC803B2CE49E4A541068D495AB570','26500674M','Catalan Wang', '[email protected]',' Alexandre', 9),
('PRO#502','912EC803B2CE49E4A541068D495AB570','68092329R','Lago Arce', 'Maria [email protected]',' Maria Cruz', 10),
('PRO#503','912EC803B2CE49E4A541068D495AB570','79438264J','Casanova Gracia', 'Jose [email protected]',' Jose Javier', 11),
('PRO#504','912EC803B2CE49E4A541068D495AB570','09814614P','Velazquez Brito', '[email protected]',' Fidel', 12),
('PRO#505','912EC803B2CE49E4A541068D495AB570','32685364H','Pavon Peña', '[email protected]',' Eloy', 13),
('PRO#506','912EC803B2CE49E4A541068D495AB570','27256245A','De Miguel Mateos', '[email protected]',' Ali', 14),
('PRO#507','912EC803B2CE49E4A541068D495AB570','94699844N','Cebrian Rodriguez', '[email protected]',' Marco', 15),
('PRO#508','912EC803B2CE49E4A541068D495AB570','41767128W','Ros Recio', '[email protected]',' Marco', 16),
('PRO#509','912EC803B2CE49E4A541068D495AB570','77614691H','Moya Mata', '[email protected]',' Felipe', 1),
('PRO#510','912EC803B2CE49E4A541068D495AB570','71675632L','Bonilla Lago', '[email protected]',' Mariana', 2),
('PRO#511','912EC803B2CE49E4A541068D495AB570','76463200E','Real Hernando', '[email protected]',' Simon', 3),
('PRO#512','912EC803B2CE49E4A541068D495AB570','56824919S','Cabezas Brito', '[email protected]',' Gabriela', 4),
('PRO#513','912EC803B2CE49E4A541068D495AB570','41512704G','Rueda Izquierdo', '[email protected]',' Alex', 5),
('PRO#514','912EC803B2CE49E4A541068D495AB570','28007231Q','Menendez Bermejo', '[email protected]',' Carolina', 6),
('PRO#515','912EC803B2CE49E4A541068D495AB570','99792430F','Beltran Caro', '[email protected]',' Joel', 7),
('PRO#516','912EC803B2CE49E4A541068D495AB570','32636037A','Mateu Roman', '[email protected]',' Inmaculada', 8),
('PRO#517','912EC803B2CE49E4A541068D495AB570','00051095N','Mohamed Linares', '[email protected]',' Angel', 9),
('PRO#518','912EC803B2CE49E4A541068D495AB570','34352497L','Fernandez Exposito', '[email protected]',' Judit', 10),
('PRO#519','912EC803B2CE49E4A541068D495AB570','91654122L','Sanchez Rivas', '[email protected]',' Saray', 11),
('PRO#520','912EC803B2CE49E4A541068D495AB570','56772751B','Gomez Galan', 'Maria [email protected]',' Maria Eugenia', 12);
-- Insertar médicos especialistas
INSERT INTO myhealth.specialistdoctor(professionalnumber, password, nif, surname, email, name, medicalspecialtyid) VALUES
@@ -274,106 +474,106 @@ INSERT INTO myhealth.specialistdoctor(professionalnumber, password, nif, surname
('PRO#218','912EC803B2CE49E4A541068D495AB570','25565275Q','Pujol Martos', 'Juan [email protected]',' Juan Carlos', 8),
('PRO#219','912EC803B2CE49E4A541068D495AB570','01595202Z','Rios Caballero', 'Jose [email protected]',' Jose Miguel', 9),
('PRO#220','912EC803B2CE49E4A541068D495AB570','00718730A','Alba Pons', 'Luis [email protected]',' Luis Fernando', 10),
('PRO#221','912EC803B2CE49E4A541068D495AB571','65948971J','Arranz Pizarro', '[email protected]',' Marco', 1),
('PRO#222','912EC803B2CE49E4A541068D495AB572','88780772J','Simon Belmonte', '[email protected]',' Marcelino', 2),
('PRO#223','912EC803B2CE49E4A541068D495AB573','32650799E','Leal Pelaez', '[email protected]',' Herminia', 3),
('PRO#224','912EC803B2CE49E4A541068D495AB574','49117288Y','Clemente Correa', '[email protected]',' Monica', 4),
('PRO#225','912EC803B2CE49E4A541068D495AB575','95122904X','Esteve Herrero', 'Luis [email protected]',' Luis Angel', 5),
('PRO#226','912EC803B2CE49E4A541068D495AB576','10964026H','Casado Cortes', '[email protected]',' Andrea', 6),
('PRO#227','912EC803B2CE49E4A541068D495AB577','07091205Y','Cardona Collado', '[email protected]',' Alexandre', 7),
('PRO#228','912EC803B2CE49E4A541068D495AB578','26701814X','Palacios Llorens', '[email protected]',' Manuel', 8),
('PRO#229','912EC803B2CE49E4A541068D495AB579','20559173W','Blanco Alfonso', '[email protected]',' Susana', 9),
('PRO#230','912EC803B2CE49E4A541068D495AB580','96827228B','Montes Nieto', '[email protected]',' Gabriela', 10),
('PRO#231','912EC803B2CE49E4A541068D495AB581','49564891Y','Valle Velazquez', '[email protected]',' Candida', 11),
('PRO#232','912EC803B2CE49E4A541068D495AB582','68577188C','Ferrero Bonet', '[email protected]',' Cristian', 12),
('PRO#233','912EC803B2CE49E4A541068D495AB583','32618741A','Villanueva Aguilera', 'Jose [email protected]',' Jose Ramon', 13),
('PRO#234','912EC803B2CE49E4A541068D495AB584','05786389A','Carrasco Alcazar', '[email protected]',' Andreu', 14),
('PRO#235','912EC803B2CE49E4A541068D495AB585','11934523F','Sevilla Llorens', '[email protected]',' Paola', 15),
('PRO#236','912EC803B2CE49E4A541068D495AB586','03671173M','Villa Ariza', '[email protected]',' Mariana', 1),
('PRO#237','912EC803B2CE49E4A541068D495AB587','36355996B','Ferreira Correa', 'Maria [email protected]',' Maria Inmaculada', 2),
('PRO#238','912EC803B2CE49E4A541068D495AB588','70144741P','Duque Salcedo', '[email protected]',' Alejandra', 3),
('PRO#239','912EC803B2CE49E4A541068D495AB589','20728375Q','Benito Barbero', 'Maria [email protected]',' Maria Remedios', 4),
('PRO#240','912EC803B2CE49E4A541068D495AB590','58422506E','Domenech Rey', '[email protected]',' Victoriano', 5),
('PRO#241','912EC803B2CE49E4A541068D495AB591','66656308P','Ferreira Maldonado', '[email protected]',' Borja', 6),
('PRO#242','912EC803B2CE49E4A541068D495AB592','03565527K','Galan Noguera', '[email protected]',' Jonathan', 7),
('PRO#243','912EC803B2CE49E4A541068D495AB593','46864009Z','Castilla Carbonell', 'Maria [email protected]',' Maria Magdalena', 8),
('PRO#244','912EC803B2CE49E4A541068D495AB594','42051358K','Cuesta Serrano', '[email protected]',' Ildefonso', 9),
('PRO#245','912EC803B2CE49E4A541068D495AB595','42447337D','Jorge Torres', '[email protected]',' Rogelio', 10),
('PRO#246','912EC803B2CE49E4A541068D495AB596','28652129V','Marquez Santiago', 'Maria [email protected]',' Maria Esther', 11),
('PRO#247','912EC803B2CE49E4A541068D495AB597','73947592Q','Miranda Salvador', '[email protected]',' Florencio', 12),
('PRO#248','912EC803B2CE49E4A541068D495AB598','44582874L','Leon Miranda', '[email protected]',' Barbara', 13),
('PRO#249','912EC803B2CE49E4A541068D495AB599','49952746N','Pino Zamora', '[email protected]',' Nuria', 14),
('PRO#250','912EC803B2CE49E4A541068D495AB600','83786322J','Contreras Sosa', '[email protected]',' Raquel', 15),
('PRO#251','912EC803B2CE49E4A541068D495AB601','04318133K','Ojeda Heredia', '[email protected]',' Fernando', 1),
('PRO#252','912EC803B2CE49E4A541068D495AB602','49063200Z','Galvez Salvador', '[email protected]',' Isidro', 2),
('PRO#253','912EC803B2CE49E4A541068D495AB603','65897164W','Ariza Criado', '[email protected]',' Estrella', 3),
('PRO#254','912EC803B2CE49E4A541068D495AB604','69191544T','Olivares Pazos', 'Luis [email protected]',' Luis Antonio', 4),
('PRO#255','912EC803B2CE49E4A541068D495AB605','89558955Z','Barragan Calvo', '[email protected]',' Carolina', 5),
('PRO#256','912EC803B2CE49E4A541068D495AB606','71426861Q','Lin Lopez', 'Begoñ[email protected]',' Begoña', 6),
('PRO#257','912EC803B2CE49E4A541068D495AB607','30012665B','Cebrian Singh', '[email protected]',' Ezequiel', 7),
('PRO#258','912EC803B2CE49E4A541068D495AB608','16498815H','Lara Sola', '[email protected]',' Alfonso', 8),
('PRO#259','912EC803B2CE49E4A541068D495AB609','15562370H','Arroyo Montes', 'Jose [email protected]',' Jose Andres', 9),
('PRO#260','912EC803B2CE49E4A541068D495AB610','66463342N','Ordoñez Duarte', '[email protected]',' Eugenio', 10),
('PRO#261','912EC803B2CE49E4A541068D495AB611','14744481D','Abad Ochoa', 'Maria [email protected]',' Maria Consuelo', 11),
('PRO#262','912EC803B2CE49E4A541068D495AB612','53480443S','Rebollo Llorente', 'Maria [email protected]',' Maria Mar', 12),
('PRO#263','912EC803B2CE49E4A541068D495AB613','92028592A','Corrales Valls', 'Maria Begoñ[email protected]',' Maria Begoña', 13),
('PRO#264','912EC803B2CE49E4A541068D495AB614','70140762P','Lazaro Olivares', '[email protected]',' Eva', 14),
('PRO#265','912EC803B2CE49E4A541068D495AB615','13666514Y','Barragan Brito', '[email protected]',' Hassan', 15),
('PRO#266','912EC803B2CE49E4A541068D495AB616','91860648M','Sola Cabello', '[email protected]',' Carolina', 1),
('PRO#267','912EC803B2CE49E4A541068D495AB617','81967550N','Brito Castilla', '[email protected]',' Paloma', 2),
('PRO#268','912EC803B2CE49E4A541068D495AB618','12780784Y','Gomez Contreras', 'Francisco [email protected]',' Francisco Jose', 3),
('PRO#269','912EC803B2CE49E4A541068D495AB619','32916744H','Davila Grau', '[email protected]',' Asier', 4),
('PRO#270','912EC803B2CE49E4A541068D495AB620','55885029C','Anton Arranz', 'Jose [email protected]',' Jose Juan', 5),
('PRO#271','912EC803B2CE49E4A541068D495AB621','80583716L','Mateo Saiz', '[email protected]',' Estela', 6),
('PRO#272','912EC803B2CE49E4A541068D495AB622','53325940A','Roldan Madrid', '[email protected]',' Caridad', 7),
('PRO#273','912EC803B2CE49E4A541068D495AB623','06748487B','Vazquez Del Valle', '[email protected]',' Estefania', 8),
('PRO#274','912EC803B2CE49E4A541068D495AB624','09042179M','Aguirre Casas', '[email protected]',' Leo', 9),
('PRO#275','912EC803B2CE49E4A541068D495AB625','31618057A','Agudo Cervera', '[email protected]',' Roger', 10),
('PRO#276','912EC803B2CE49E4A541068D495AB626','91690066Z','Palomo Solis', 'Marco [email protected]',' Marco Antonio', 11),
('PRO#277','912EC803B2CE49E4A541068D495AB627','90043496Z','Quesada Ferreiro', '[email protected]',' Sagrario', 12),
('PRO#278','912EC803B2CE49E4A541068D495AB628','39047783Q','Villa Granados', '[email protected]',' Aranzazu', 13),
('PRO#279','912EC803B2CE49E4A541068D495AB629','38357589Y','Montero Mesa', '[email protected]',' Ian', 14),
('PRO#280','912EC803B2CE49E4A541068D495AB630','59233949W','Valle Galindo', '[email protected]',' Aina', 15),
('PRO#281','912EC803B2CE49E4A541068D495AB631','96370632B','Valverde Marquez', '[email protected]',' Esther', 1),
('PRO#282','912EC803B2CE49E4A541068D495AB632','70570638Z','Roig Gonzalez', '[email protected]',' Leticia', 2),
('PRO#283','912EC803B2CE49E4A541068D495AB633','42627271Z','Molina Alonso', 'Maria [email protected]',' Maria Purificacion', 3),
('PRO#284','912EC803B2CE49E4A541068D495AB634','68067563Y','Alcaide Bonilla', '[email protected]',' Rocio', 4),
('PRO#285','912EC803B2CE49E4A541068D495AB635','57280486K','Gordillo Vives', '[email protected]',' Fidel', 5),
('PRO#286','912EC803B2CE49E4A541068D495AB636','25001934Z','Iglesias Huertas', 'Jose [email protected]',' Jose Javier', 6),
('PRO#287','912EC803B2CE49E4A541068D495AB637','17084953R','Paniagua Arias', '[email protected]',' Ander', 7),
('PRO#288','912EC803B2CE49E4A541068D495AB638','43949222V','Ramos Sosa', 'Maria [email protected]',' Maria Montserrat', 8),
('PRO#289','912EC803B2CE49E4A541068D495AB639','06951384W','Varela Perez', '[email protected]',' Aurelia', 9),
('PRO#290','912EC803B2CE49E4A541068D495AB640','09702609J','Lobato Llorens', 'Maria [email protected]',' Maria Inmaculada', 10),
('PRO#291','912EC803B2CE49E4A541068D495AB641','13463437L','Santana Pereira', '[email protected]',' Nerea', 11),
('PRO#292','912EC803B2CE49E4A541068D495AB642','41872706X','Clemente Ocaña', '[email protected]',' Margarita', 12),
('PRO#293','912EC803B2CE49E4A541068D495AB643','22477540P','Pavon Contreras', 'Jose [email protected]',' Jose Angel', 13),
('PRO#294','912EC803B2CE49E4A541068D495AB644','72650618N','Silva De La Torre', '[email protected]',' Ismael', 14),
('PRO#295','912EC803B2CE49E4A541068D495AB645','31857829T','Wang Bonilla', '[email protected]',' Rosario', 15),
('PRO#296','912EC803B2CE49E4A541068D495AB646','15902914R','Pelaez Barrio', 'Maria [email protected]',' Maria Mar', 1),
('PRO#297','912EC803B2CE49E4A541068D495AB647','79159517A','Correa Casado', '[email protected]',' Iñigo', 2),
('PRO#298','912EC803B2CE49E4A541068D495AB648','22669136Z','Casas Carvajal', '[email protected]',' Raul', 3),
('PRO#299','912EC803B2CE49E4A541068D495AB649','51991129C','Ruiz Garrido', 'Eva [email protected]',' Eva Maria', 4),
('PRO#300','912EC803B2CE49E4A541068D495AB650','22250791Q','Pardo Frias', '[email protected]',' Aranzazu', 5),
('PRO#301','912EC803B2CE49E4A541068D495AB651','49206646D','Domingo Bueno', 'Rosa [email protected]',' Rosa Maria', 6),
('PRO#302','912EC803B2CE49E4A541068D495AB652','80621576K','Burgos Bueno', '[email protected]',' Igor', 7),
('PRO#303','912EC803B2CE49E4A541068D495AB653','73047658A','Gil Pino', '[email protected]',' Benjamin', 8),
('PRO#304','912EC803B2CE49E4A541068D495AB654','72128948M','Duarte Ortiz', '[email protected]',' Adrian', 9),
('PRO#305','912EC803B2CE49E4A541068D495AB655','24282032N','Velasco Moran', '[email protected]',' Lidia', 10),
('PRO#306','912EC803B2CE49E4A541068D495AB656','07606725G','Granados Cardona', '[email protected]',' Vasile', 11),
('PRO#307','912EC803B2CE49E4A541068D495AB657','31186730H','Aragon Arranz', '[email protected]',' Alexandra', 12),
('PRO#308','912EC803B2CE49E4A541068D495AB658','43619490J','Bonilla Lago', '[email protected]',' Alexis', 13),
('PRO#309','912EC803B2CE49E4A541068D495AB659','17935762V','Juan Aznar', '[email protected]',' Elias', 14),
('PRO#310','912EC803B2CE49E4A541068D495AB660','19653102Q','Martin Hurtado', 'Maria [email protected]',' Maria Manuela', 15),
('PRO#311','912EC803B2CE49E4A541068D495AB661','87495503F','Cordero Campos', '[email protected]',' Naiara', 6),
('PRO#312','912EC803B2CE49E4A541068D495AB662','38673770Y','Del Rio Fraile', '[email protected]',' Kevin', 7),
('PRO#313','912EC803B2CE49E4A541068D495AB663','00840863Y','Abad Wang', '[email protected]',' Igor', 8),
('PRO#314','912EC803B2CE49E4A541068D495AB664','92404967Y','Galvez Blasco', '[email protected]',' Alberto', 9),
('PRO#315','912EC803B2CE49E4A541068D495AB665','62521101V','Ramirez Ochoa', '[email protected]',' Albert', 10),
('PRO#316','912EC803B2CE49E4A541068D495AB666','37944035S','Hernando Cordero', 'Maria [email protected]',' Maria Belen', 11),
('PRO#317','912EC803B2CE49E4A541068D495AB667','67045193D','Alfaro Barreiro', '[email protected]',' Samuel', 12),
('PRO#318','912EC803B2CE49E4A541068D495AB668','68481931Y','Cardona Huerta', '[email protected]',' Rafael', 13),
('PRO#319','912EC803B2CE49E4A541068D495AB669','75627578J','Lobato Brito', '[email protected]',' Paulino', 14),
('PRO#320','912EC803B2CE49E4A541068D495AB670','66946733N','Cervera Estrada', '[email protected]',' Aranzazu', 15);
('PRO#221','912EC803B2CE49E4A541068D495AB570','65948971J','Arranz Pizarro', '[email protected]',' Marco', 1),
('PRO#222','912EC803B2CE49E4A541068D495AB570','88780772J','Simon Belmonte', '[email protected]',' Marcelino', 2),
('PRO#223','912EC803B2CE49E4A541068D495AB570','32650799E','Leal Pelaez', '[email protected]',' Herminia', 3),
('PRO#224','912EC803B2CE49E4A541068D495AB570','49117288Y','Clemente Correa', '[email protected]',' Monica', 4),
('PRO#225','912EC803B2CE49E4A541068D495AB570','95122904X','Esteve Herrero', 'Luis [email protected]',' Luis Angel', 5),
('PRO#226','912EC803B2CE49E4A541068D495AB570','10964026H','Casado Cortes', '[email protected]',' Andrea', 6),
('PRO#227','912EC803B2CE49E4A541068D495AB570','07091205Y','Cardona Collado', '[email protected]',' Alexandre', 7),
('PRO#228','912EC803B2CE49E4A541068D495AB570','26701814X','Palacios Llorens', '[email protected]',' Manuel', 8),
('PRO#229','912EC803B2CE49E4A541068D495AB570','20559173W','Blanco Alfonso', '[email protected]',' Susana', 9),
('PRO#230','912EC803B2CE49E4A541068D495AB570','96827228B','Montes Nieto', '[email protected]',' Gabriela', 10),
('PRO#231','912EC803B2CE49E4A541068D495AB570','49564891Y','Valle Velazquez', '[email protected]',' Candida', 11),
('PRO#232','912EC803B2CE49E4A541068D495AB570','68577188C','Ferrero Bonet', '[email protected]',' Cristian', 12),
('PRO#233','912EC803B2CE49E4A541068D495AB570','32618741A','Villanueva Aguilera', 'Jose [email protected]',' Jose Ramon', 13),
('PRO#234','912EC803B2CE49E4A541068D495AB570','05786389A','Carrasco Alcazar', '[email protected]',' Andreu', 14),
('PRO#235','912EC803B2CE49E4A541068D495AB570','11934523F','Sevilla Llorens', '[email protected]',' Paola', 15),
('PRO#236','912EC803B2CE49E4A541068D495AB570','03671173M','Villa Ariza', '[email protected]',' Mariana', 1),
('PRO#237','912EC803B2CE49E4A541068D495AB570','36355996B','Ferreira Correa', 'Maria [email protected]',' Maria Inmaculada', 2),
('PRO#238','912EC803B2CE49E4A541068D495AB570','70144741P','Duque Salcedo', '[email protected]',' Alejandra', 3),
('PRO#239','912EC803B2CE49E4A541068D495AB570','20728375Q','Benito Barbero', 'Maria [email protected]',' Maria Remedios', 4),
('PRO#240','912EC803B2CE49E4A541068D495AB570','58422506E','Domenech Rey', '[email protected]',' Victoriano', 5),
('PRO#241','912EC803B2CE49E4A541068D495AB570','66656308P','Ferreira Maldonado', '[email protected]',' Borja', 6),
('PRO#242','912EC803B2CE49E4A541068D495AB570','03565527K','Galan Noguera', '[email protected]',' Jonathan', 7),
('PRO#243','912EC803B2CE49E4A541068D495AB570','46864009Z','Castilla Carbonell', 'Maria [email protected]',' Maria Magdalena', 8),
('PRO#244','912EC803B2CE49E4A541068D495AB570','42051358K','Cuesta Serrano', '[email protected]',' Ildefonso', 9),
('PRO#245','912EC803B2CE49E4A541068D495AB570','42447337D','Jorge Torres', '[email protected]',' Rogelio', 10),
('PRO#246','912EC803B2CE49E4A541068D495AB570','28652129V','Marquez Santiago', 'Maria [email protected]',' Maria Esther', 11),
('PRO#247','912EC803B2CE49E4A541068D495AB570','73947592Q','Miranda Salvador', '[email protected]',' Florencio', 12),
('PRO#248','912EC803B2CE49E4A541068D495AB570','44582874L','Leon Miranda', '[email protected]',' Barbara', 13),
('PRO#249','912EC803B2CE49E4A541068D495AB570','49952746N','Pino Zamora', '[email protected]',' Nuria', 14),
('PRO#250','912EC803B2CE49E4A541068D495AB570','83786322J','Contreras Sosa', '[email protected]',' Raquel', 15),
('PRO#251','912EC803B2CE49E4A541068D495AB570','04318133K','Ojeda Heredia', '[email protected]',' Fernando', 1),
('PRO#252','912EC803B2CE49E4A541068D495AB570','49063200Z','Galvez Salvador', '[email protected]',' Isidro', 2),
('PRO#253','912EC803B2CE49E4A541068D495AB570','65897164W','Ariza Criado', '[email protected]',' Estrella', 3),
('PRO#254','912EC803B2CE49E4A541068D495AB570','69191544T','Olivares Pazos', 'Luis [email protected]',' Luis Antonio', 4),
('PRO#255','912EC803B2CE49E4A541068D495AB570','89558955Z','Barragan Calvo', '[email protected]',' Carolina', 5),
('PRO#256','912EC803B2CE49E4A541068D495AB570','71426861Q','Lin Lopez', 'Begoñ[email protected]',' Begoña', 6),
('PRO#257','912EC803B2CE49E4A541068D495AB570','30012665B','Cebrian Singh', '[email protected]',' Ezequiel', 7),
('PRO#258','912EC803B2CE49E4A541068D495AB570','16498815H','Lara Sola', '[email protected]',' Alfonso', 8),
('PRO#259','912EC803B2CE49E4A541068D495AB570','15562370H','Arroyo Montes', 'Jose [email protected]',' Jose Andres', 9),
('PRO#260','912EC803B2CE49E4A541068D495AB570','66463342N','Ordoñez Duarte', '[email protected]',' Eugenio', 10),
('PRO#261','912EC803B2CE49E4A541068D495AB570','14744481D','Abad Ochoa', 'Maria [email protected]',' Maria Consuelo', 11),
('PRO#262','912EC803B2CE49E4A541068D495AB570','53480443S','Rebollo Llorente', 'Maria [email protected]',' Maria Mar', 12),
('PRO#263','912EC803B2CE49E4A541068D495AB570','92028592A','Corrales Valls', 'Maria Begoñ[email protected]',' Maria Begoña', 13),
('PRO#264','912EC803B2CE49E4A541068D495AB570','70140762P','Lazaro Olivares', '[email protected]',' Eva', 14),
('PRO#265','912EC803B2CE49E4A541068D495AB570','13666514Y','Barragan Brito', '[email protected]',' Hassan', 15),
('PRO#266','912EC803B2CE49E4A541068D495AB570','91860648M','Sola Cabello', '[email protected]',' Carolina', 1),
('PRO#267','912EC803B2CE49E4A541068D495AB570','81967550N','Brito Castilla', '[email protected]',' Paloma', 2),
('PRO#268','912EC803B2CE49E4A541068D495AB570','12780784Y','Gomez Contreras', 'Francisco [email protected]',' Francisco Jose', 3),
('PRO#269','912EC803B2CE49E4A541068D495AB570','32916744H','Davila Grau', '[email protected]',' Asier', 4),
('PRO#270','912EC803B2CE49E4A541068D495AB570','55885029C','Anton Arranz', 'Jose [email protected]',' Jose Juan', 5),
('PRO#271','912EC803B2CE49E4A541068D495AB570','80583716L','Mateo Saiz', '[email protected]',' Estela', 6),
('PRO#272','912EC803B2CE49E4A541068D495AB570','53325940A','Roldan Madrid', '[email protected]',' Caridad', 7),
('PRO#273','912EC803B2CE49E4A541068D495AB570','06748487B','Vazquez Del Valle', '[email protected]',' Estefania', 8),
('PRO#274','912EC803B2CE49E4A541068D495AB570','09042179M','Aguirre Casas', '[email protected]',' Leo', 9),
('PRO#275','912EC803B2CE49E4A541068D495AB570','31618057A','Agudo Cervera', '[email protected]',' Roger', 10),
('PRO#276','912EC803B2CE49E4A541068D495AB570','91690066Z','Palomo Solis', 'Marco [email protected]',' Marco Antonio', 11),
('PRO#277','912EC803B2CE49E4A541068D495AB570','90043496Z','Quesada Ferreiro', '[email protected]',' Sagrario', 12),
('PRO#278','912EC803B2CE49E4A541068D495AB570','39047783Q','Villa Granados', '[email protected]',' Aranzazu', 13),
('PRO#279','912EC803B2CE49E4A541068D495AB570','38357589Y','Montero Mesa', '[email protected]',' Ian', 14),
('PRO#280','912EC803B2CE49E4A541068D495AB570','59233949W','Valle Galindo', '[email protected]',' Aina', 15),
('PRO#281','912EC803B2CE49E4A541068D495AB570','96370632B','Valverde Marquez', '[email protected]',' Esther', 1),
('PRO#282','912EC803B2CE49E4A541068D495AB570','70570638Z','Roig Gonzalez', '[email protected]',' Leticia', 2),
('PRO#283','912EC803B2CE49E4A541068D495AB570','42627271Z','Molina Alonso', 'Maria [email protected]',' Maria Purificacion', 3),
('PRO#284','912EC803B2CE49E4A541068D495AB570','68067563Y','Alcaide Bonilla', '[email protected]',' Rocio', 4),
('PRO#285','912EC803B2CE49E4A541068D495AB570','57280486K','Gordillo Vives', '[email protected]',' Fidel', 5),
('PRO#286','912EC803B2CE49E4A541068D495AB570','25001934Z','Iglesias Huertas', 'Jose [email protected]',' Jose Javier', 6),
('PRO#287','912EC803B2CE49E4A541068D495AB570','17084953R','Paniagua Arias', '[email protected]',' Ander', 7),
('PRO#288','912EC803B2CE49E4A541068D495AB570','43949222V','Ramos Sosa', 'Maria [email protected]',' Maria Montserrat', 8),
('PRO#289','912EC803B2CE49E4A541068D495AB570','06951384W','Varela Perez', '[email protected]',' Aurelia', 9),
('PRO#290','912EC803B2CE49E4A541068D495AB570','09702609J','Lobato Llorens', 'Maria [email protected]',' Maria Inmaculada', 10),
('PRO#291','912EC803B2CE49E4A541068D495AB570','13463437L','Santana Pereira', '[email protected]',' Nerea', 11),
('PRO#292','912EC803B2CE49E4A541068D495AB570','41872706X','Clemente Ocaña', '[email protected]',' Margarita', 12),
('PRO#293','912EC803B2CE49E4A541068D495AB570','22477540P','Pavon Contreras', 'Jose [email protected]',' Jose Angel', 13),
('PRO#294','912EC803B2CE49E4A541068D495AB570','72650618N','Silva De La Torre', '[email protected]',' Ismael', 14),
('PRO#295','912EC803B2CE49E4A541068D495AB570','31857829T','Wang Bonilla', '[email protected]',' Rosario', 15),
('PRO#296','912EC803B2CE49E4A541068D495AB570','15902914R','Pelaez Barrio', 'Maria [email protected]',' Maria Mar', 1),
('PRO#297','912EC803B2CE49E4A541068D495AB570','79159517A','Correa Casado', '[email protected]',' Iñigo', 2),
('PRO#298','912EC803B2CE49E4A541068D495AB570','22669136Z','Casas Carvajal', '[email protected]',' Raul', 3),
('PRO#299','912EC803B2CE49E4A541068D495AB570','51991129C','Ruiz Garrido', 'Eva [email protected]',' Eva Maria', 4),
('PRO#300','912EC803B2CE49E4A541068D495AB570','22250791Q','Pardo Frias', '[email protected]',' Aranzazu', 5),
('PRO#301','912EC803B2CE49E4A541068D495AB570','49206646D','Domingo Bueno', 'Rosa [email protected]',' Rosa Maria', 6),
('PRO#302','912EC803B2CE49E4A541068D495AB570','80621576K','Burgos Bueno', '[email protected]',' Igor', 7),
('PRO#303','912EC803B2CE49E4A541068D495AB570','73047658A','Gil Pino', '[email protected]',' Benjamin', 8),
('PRO#304','912EC803B2CE49E4A541068D495AB570','72128948M','Duarte Ortiz', '[email protected]',' Adrian', 9),
('PRO#305','912EC803B2CE49E4A541068D495AB570','24282032N','Velasco Moran', '[email protected]',' Lidia', 10),
('PRO#306','912EC803B2CE49E4A541068D495AB570','07606725G','Granados Cardona', '[email protected]',' Vasile', 11),
('PRO#307','912EC803B2CE49E4A541068D495AB570','31186730H','Aragon Arranz', '[email protected]',' Alexandra', 12),
('PRO#308','912EC803B2CE49E4A541068D495AB570','43619490J','Bonilla Lago', '[email protected]',' Alexis', 13),
('PRO#309','912EC803B2CE49E4A541068D495AB570','17935762V','Juan Aznar', '[email protected]',' Elias', 14),
('PRO#310','912EC803B2CE49E4A541068D495AB570','19653102Q','Martin Hurtado', 'Maria [email protected]',' Maria Manuela', 15),
('PRO#311','912EC803B2CE49E4A541068D495AB570','87495503F','Cordero Campos', '[email protected]',' Naiara', 6),
('PRO#312','912EC803B2CE49E4A541068D495AB570','38673770Y','Del Rio Fraile', '[email protected]',' Kevin', 7),
('PRO#313','912EC803B2CE49E4A541068D495AB570','00840863Y','Abad Wang', '[email protected]',' Igor', 8),
('PRO#314','912EC803B2CE49E4A541068D495AB570','92404967Y','Galvez Blasco', '[email protected]',' Alberto', 9),
('PRO#315','912EC803B2CE49E4A541068D495AB570','62521101V','Ramirez Ochoa', '[email protected]',' Albert', 10),
('PRO#316','912EC803B2CE49E4A541068D495AB570','37944035S','Hernando Cordero', 'Maria [email protected]',' Maria Belen', 11),
('PRO#317','912EC803B2CE49E4A541068D495AB570','67045193D','Alfaro Barreiro', '[email protected]',' Samuel', 12),
('PRO#318','912EC803B2CE49E4A541068D495AB570','68481931Y','Cardona Huerta', '[email protected]',' Rafael', 13),
('PRO#319','912EC803B2CE49E4A541068D495AB570','75627578J','Lobato Brito', '[email protected]',' Paulino', 14),
('PRO#320','912EC803B2CE49E4A541068D495AB570','66946733N','Cervera Estrada', '[email protected]',' Aranzazu', 15);
-- Insertar Pacientes
INSERT INTO myhealth.patient(personalidentificationcode, password, nif, surname, email, name, familydoctorid) VALUES