This commit is contained in:
Alejandro Linares Amado
2019-12-28 20:59:14 +01:00
11 changed files with 539 additions and 175 deletions

View File

@@ -60,7 +60,7 @@
<p:menubar model="#{menuView.model}"> <p:menubar model="#{menuView.model}">
<f:facet name="options"> <f:facet name="options">
<ui:fragment rendered="#{home.logedIn}"> <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}" /> <p:commandButton value="Logout" icon="pi pi-sign-out" action="#{loginView.logout}" />
</ui:fragment> </ui:fragment>
<ui:fragment rendered="#{not home.logedIn}"> <ui:fragment rendered="#{not home.logedIn}">

View File

@@ -8,6 +8,9 @@
<h:form> <h:form>
<p:panel header="Pagina principal"> <p:panel header="Pagina principal">
<div class="ui-g ui-fluid"> <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"> <div class="ui-g-2 ui-md-2">
<p:outputLabel for="selectorTema" value="Cambio de tema" /> <p:outputLabel for="selectorTema" value="Cambio de tema" />
</div> </div>
@@ -22,32 +25,6 @@
<p:commandButton value="Usar tema" update="messages" action="#{sessionPreferences.updateCurrentTheme}" icon="pi pi-save" /> <p:commandButton value="Usar tema" update="messages" action="#{sessionPreferences.updateCurrentTheme}" icon="pi pi-save" />
</div> </div>
<div class="ui-g-5 ui-md-5" /> <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> </div>
</p:panel> </p:panel>
</h:form> </h:form>

View File

@@ -67,7 +67,7 @@
<div class="ui-g-4 ui-md-4"> <div class="ui-g-4 ui-md-4">
<div class="ui-inputgroup"> <div class="ui-inputgroup">
<p:inputText id="nif" value="#{RegisterUser.nif}" validator="nifValidator" maxlength="20" required="true" requiredMessage="Por favor, indque su NIF"> <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:inputText>
<p:commandButton widgetVar="nifButton" icon="pi pi-times" styleClass="red-button" /> <p:commandButton widgetVar="nifButton" icon="pi pi-times" styleClass="red-button" />
</div> </div>

View File

@@ -42,7 +42,7 @@
<div class="ui-g-4 ui-md-4"> <div class="ui-g-4 ui-md-4">
<div class="ui-inputgroup"> <div class="ui-inputgroup">
<p:inputText id="nif" value="#{UpdateProfile.nif}" validator="nifValidator" maxlength="20" required="true" requiredMessage="Por favor, indque su NIF"> <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:inputText>
<p:commandButton widgetVar="nifButton" icon="pi pi-check" styleClass="green-button" /> <p:commandButton widgetVar="nifButton" icon="pi pi-check" styleClass="green-button" />
</div> </div>

View File

@@ -222,10 +222,26 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
return allFDTOs; 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) { public List<PatientTO> listPatientsPaged(int pageNumber, int pageSize) {
return this.listPatientsFiltered(null, pageNumber, 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) { 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 strQuery = "SELECT p FROM PatientJPA p %s order by p.name, p.surname";
String strFilter = ""; String strFilter = "";
@@ -476,7 +492,7 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
/** /**
* Método que recupera un médico especialista a partir de su NIF * 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) { public SpecialistDoctorTO findSpecialistDoctorByNif(String searchedNIF) {
TypedQuery<SpecialistDoctorJPA> query = entman.createQuery("from SpecialistDoctorJPA d where d.nif=:nif", SpecialistDoctorJPA.class); TypedQuery<SpecialistDoctorJPA> query = entman.createQuery("from SpecialistDoctorJPA d where d.nif=:nif", SpecialistDoctorJPA.class);
@@ -496,7 +512,7 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
* 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 * 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). * 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) { public QuestionTO getPOJOforQuestionJPA(QuestionJPA qs, int nestedProps) {
QuestionTO qsTO = null; QuestionTO qsTO = null;
@@ -517,6 +533,14 @@ public class CommonFacadeBean implements CommonFacadeRemote, CommonFacadeLocal {
return qsTO; 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) { public VisitTO getPOJOforVisitJPA(VisitJPA vi, int nestedProps) {
VisitTO qsTO = null; VisitTO qsTO = null;

View File

@@ -4,8 +4,8 @@ import java.io.Serializable;
import java.util.List; import java.util.List;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage;
import javax.faces.view.ViewScoped;
import javax.inject.Named; import javax.inject.Named;
import common.UserType; import common.UserType;
@@ -16,22 +16,23 @@ import common.UserType;
* *
*/ */
@Named("home") @Named("home")
@RequestScoped @ViewScoped
public class homeMBean extends ManagedBeanBase implements Serializable { public class homeMBean extends ManagedBeanBase implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private boolean isLogedIn; private boolean isLogedIn;
private String userId; private String userId;
private String userName; private String userName;
private String userDisplayName;
private UserType userType; private UserType userType;
private int refresh;
@PostConstruct @PostConstruct
public void init() { public void init() {
isLogedIn = SessionUtils.isLogedIn(); this.isLogedIn = SessionUtils.isLogedIn();
userName = SessionUtils.getUserName(); this.userName = SessionUtils.getUserName();
userId = SessionUtils.getUserId(); this.userDisplayName = SessionUtils.getUserDisplayName();
userType = SessionUtils.getUserType(); this.userId = SessionUtils.getUserId();
this.userType = SessionUtils.getUserType();
FacesMessage message = SessionUtils.getMessage(); FacesMessage message = SessionUtils.getMessage();
@@ -54,6 +55,13 @@ public class homeMBean extends ManagedBeanBase implements Serializable {
else else
return this.userName; return this.userName;
} }
public String getUserDisplayName() {
if (this.isLogedIn == false)
return "Invitado";
else
return this.userDisplayName;
}
public String getUserId() { public String getUserId() {
return this.userId; return this.userId;
@@ -63,14 +71,6 @@ public class homeMBean extends ManagedBeanBase implements Serializable {
return this.userType.getUserTypename(); return this.userType.getUserTypename();
} }
public int getRefresh() {
return refresh;
}
public void setRefresh(int refresh) {
this.refresh = refresh;
}
public boolean isPatient() { public boolean isPatient() {
return (this.userType == UserType.PATIENT); return (this.userType == UserType.PATIENT);
} }

View File

@@ -17,6 +17,7 @@ import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils; 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 (mgarcianun@uoc.edu) * @author Marcos García Núñez (mgarcianun@uoc.edu)
* *
@@ -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 @PostConstruct
public void init() { public void init() {
// Recuperamos el usuario logeado actual // 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); this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
PatientTO pat = this.getRemoteManagerCommon().findPatientById(this.id); 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) { } catch (Exception e) {
this.manageException(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() { public List<FamilyDoctorTO> getFamilyDoctorList() {
return familyDoctorList; 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) { public List<FamilyDoctorTO> completeFamilyDoctor(String query) {
if (query != null && query.equals(this.lastUIQuery) == false) { if (query != null && query.equals(this.lastUIQuery) == false) {
this.lastUIQuery = query; 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); this.familyDoctorList = this.getRemoteManagerCommon().listFamilyDoctorsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
} }
return this.familyDoctorList; return this.familyDoctorList;
} }
// Id del usuario actual, obtenido de la sessión del usuario logeado.
public int getId() { public int getId() {
return id; 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() { public void saveData() {
int error = 0; int error = 0;

View File

@@ -17,6 +17,7 @@ import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils; 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 (mgarcianun@uoc.edu) * @author Marcos García Núñez (mgarcianun@uoc.edu)
* *
@@ -36,12 +37,18 @@ 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 @PostConstruct
public void init() { public void init() {
// Recuperamos el usuario logeado actual // Recuperamos el usuario logeado actual
LoggedUserTO usr = null; LoggedUserTO usr = null;
this.lastUIQuery = ""; this.lastUIQuery = "";
try { try {
usr = SessionUtils.getloggedOnUser(); usr = SessionUtils.getloggedOnUser();
@@ -52,11 +59,13 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen
this.id = Integer.valueOf(usr.getId()); this.id = Integer.valueOf(usr.getId());
if (usr.getUserType() == UserType.FAMILY_DOCTOR) { 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); this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
FamilyDoctorTO fd = this.getRemoteManagerCommon().findFamilyDoctorById(this.id); FamilyDoctorTO fd = this.getRemoteManagerCommon().findFamilyDoctorById(this.id);
this.setCurrentCenter(fd.getPrimaryHealthCareCenter()); 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) { } catch (Exception e) {
this.manageException(e); this.manageException(e);
@@ -67,7 +76,13 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen
public List<PrimaryHealthCareCenterTO> getPhcList() { public List<PrimaryHealthCareCenterTO> getPhcList() {
return primaryHealthCareCentersList; 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) { public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
if (query != null && query.equals(this.lastUIQuery) == false) { if (query != null && query.equals(this.lastUIQuery) == false) {
this.lastUIQuery = query; this.lastUIQuery = query;
@@ -75,22 +90,30 @@ public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implemen
this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
} }
return this.primaryHealthCareCentersList; return this.primaryHealthCareCentersList;
} }
public int getId() { public int getId() {
return id; 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() { public void saveData() {
int error = 0; int error = 0;
if (this.getNewCenter() == null) { 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++; error++;
} }
if (this.getNewCenter().getName().equals(this.getCurrentCenter().getName())) { 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++; error++;
} }

View File

@@ -24,8 +24,7 @@ import managedbean.common.ManagedBeanBase;
import managedbean.common.ValidationUtils; import managedbean.common.ValidationUtils;
/** /**
* ManagedBEan que gestiona el registro de usuarios: Usuarios de tipo "Paciente" * ManagedBEan que gestiona el registro de usuarios: Usuarios de tipo "Paciente" Usuarios de tipo "Médico de Familia" usuarios de tipo "Médico especialista"
* Usuarios de tipo "Médico de Familia" usuarios de tipo "Médico especialista"
* *
* @author Marcos García Núñez (mgarcianun@uoc.edu) * @author Marcos García Núñez (mgarcianun@uoc.edu)
* *
@@ -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 @PostConstruct
public void init() { public void init() {
this.availableUserTypes = new ArrayList<UserType>(); this.availableUserTypes = new ArrayList<UserType>();
@@ -79,10 +83,17 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
return availableUserTypes; 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() { public void onUserTypeChange() {
switch (this.userType) { switch (this.userType) {
case SPECIALIST_DOCTOR: case SPECIALIST_DOCTOR:
try { 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); PrimeFaces.current().ajax().addCallbackParam("specs", true);
} catch (Exception e) { } catch (Exception e) {
this.manageException(e); this.manageException(e);
@@ -90,6 +101,8 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
break; break;
case FAMILY_DOCTOR: case FAMILY_DOCTOR:
try { 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); PrimeFaces.current().ajax().addCallbackParam("caps", true);
} catch (Exception e) { } catch (Exception e) {
this.manageException(e); this.manageException(e);
@@ -97,6 +110,8 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
break; break;
case ADMINISTRATOR: case ADMINISTRATOR:
case PATIENT: 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); PrimeFaces.current().ajax().addCallbackParam("pats", true);
break; break;
} }
@@ -110,6 +125,12 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
return primaryHealthCareCentersList; 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) { public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
if (query != null && query.equals(this.lastUIQueryPH) == false) { if (query != null && query.equals(this.lastUIQueryPH) == false) {
this.lastUIQueryPH = query; this.lastUIQueryPH = query;
@@ -119,6 +140,12 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
return this.primaryHealthCareCentersList; 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) { public List<MedicalSpecialtyTO> completeMedicalSpecialty(String query) {
if (query != null && query.equals(this.lastUIQueryMS) == false) { if (query != null && query.equals(this.lastUIQueryMS) == false) {
this.lastUIQueryMS = query; this.lastUIQueryMS = query;
@@ -127,14 +154,20 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
} }
return this.medicalSpecialitiesList; 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; boolean isDupe = false;
if (ValidationUtils.checkIfNifAlreadyRegistered(this.getRemoteManagerCommon(), this.userType, this.nif, null) == true) { if (ValidationUtils.checkIfNifAlreadyRegistered(this.getRemoteManagerCommon(), this.userType, this.nif, null) == true) {
isDupe = true; isDupe = true;
this.addFacesMessage("frmRegisterUser:nif", FacesMessage.SEVERITY_WARN, "NIF duplicado", "El nif indicado pertenece a otro usuario previamente registrado"); this.addFacesMessage("frmRegisterUser:nif", FacesMessage.SEVERITY_WARN, "NIF duplicado", "El nif indicado pertenece a otro usuario previamente registrado");
} }
PrimeFaces.current().ajax().addCallbackParam("NIFisDupe", isDupe); PrimeFaces.current().ajax().addCallbackParam("NIFisDupe", isDupe);
} }
@@ -194,11 +227,27 @@ public class RegisterUserMBean extends ManagedBeanBase implements Serializable {
this.nif = nif; 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() { public void addNewUser() {
int error = 0; int error = 0;
if (this.isFamilyDoctor() && this.primaryHealthCareCenter == null) { 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++; error++;
} }
if (this.isSpecialistDoctor() && this.medicalSpecialty == null) { if (this.isSpecialistDoctor() && this.medicalSpecialty == null) {

View File

@@ -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 @PostConstruct
public void init() { public void init() {
this.userTypes = new ArrayList<UserType>(); 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) { private void setPatientData(PatientTO pat) {
this.id = pat.getId(); this.id = pat.getId();
this.cipCode = pat.getPersonalIdentificationCode(); this.cipCode = pat.getPersonalIdentificationCode();
@@ -120,6 +131,11 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
this.familyDoctor = pat.getFamilyDoctor(); 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) { private void setFamilyDoctorData(FamilyDoctorTO fd) {
this.id = fd.getId(); this.id = fd.getId();
this.cipCode = fd.getProfessionalNumber(); this.cipCode = fd.getProfessionalNumber();
@@ -131,6 +147,11 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
this.primaryHealthCareCenter = fd.getPrimaryHealthCareCenter(); 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) { private void setSpecialistDoctorData(SpecialistDoctorTO sd) {
this.id = sd.getId(); this.id = sd.getId();
this.cipCode = sd.getProfessionalNumber(); this.cipCode = sd.getProfessionalNumber();
@@ -154,25 +175,43 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
return primaryHealthCareCentersList; 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) { public List<PrimaryHealthCareCenterTO> completePrimaryHealCareCenter(String query) {
if (query != null && query.equals(this.lastUIQueryPH) == false) { if (query != null && query.equals(this.lastUIQueryPH) == false) {
this.lastUIQueryPH = query; 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); this.primaryHealthCareCentersList = this.getRemoteManagerCommon().listCAPsFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
} }
return this.primaryHealthCareCentersList; 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) { public List<MedicalSpecialtyTO> completeMedicalSpecialty(String query) {
if (query != null && query.equals(this.lastUIQueryMS) == false) { if (query != null && query.equals(this.lastUIQueryMS) == false) {
this.lastUIQueryMS = query; 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); this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesFiltered(query, 0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
} }
return this.medicalSpecialitiesList; 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; boolean isDupe = false;
if (ValidationUtils.checkIfNifAlreadyRegistered(this.getRemoteManagerCommon(), this.userType, this.nif, this.id) == true) { if (ValidationUtils.checkIfNifAlreadyRegistered(this.getRemoteManagerCommon(), this.userType, this.nif, this.id) == true) {
isDupe = true; isDupe = true;
@@ -186,6 +225,12 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
return familyDoctorList; 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) { public List<FamilyDoctorTO> completeFamilyDoctor(String query) {
if (query != null && query.equals(this.lastUIQueryFD) == false) { if (query != null && query.equals(this.lastUIQueryFD) == false) {
this.lastUIQueryFD = query; this.lastUIQueryFD = query;
@@ -255,6 +300,18 @@ public class UpdateProfileMBean extends ManagedBeanBase implements Serializable
return id; 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() { public void saveData() {
int error = 0; int error = 0;

View File

@@ -150,16 +150,216 @@ insert into MyHealth.MedicalSpecialty(name, description) values
-- Insertar médicos de familia -- Insertar médicos de familia
INSERT INTO myhealth.familydoctor(professionalnumber, password, nif, surname, email, name, primaryhealthcarecenterid) VALUES INSERT INTO myhealth.familydoctor(professionalnumber, password, nif, surname, email, name, primaryhealthcarecenterid) VALUES
('PRO#100','912EC803B2CE49E4A541068D495AB570','95874388S','Moran Ortiz', 'Xian@example.com','Xian', 1) ('PRO#100','912EC803B2CE49E4A541068D495AB570','95874388S','Moran Ortiz', 'Xian@example.com','Xian', 1),
,('PRO#101','912EC803B2CE49E4A541068D495AB570','59546140Z','Zambrano Rivas', 'Belen@example.com','Belen', 2) ('PRO#101','912EC803B2CE49E4A541068D495AB570','59546140Z','Zambrano Rivas', 'Belen@example.com','Belen', 2),
,('PRO#102','912EC803B2CE49E4A541068D495AB570','16354100L','Cuevas Luque', 'Fernando@example.com','Fernando', 3) ('PRO#102','912EC803B2CE49E4A541068D495AB570','16354100L','Cuevas Luque', 'Fernando@example.com','Fernando', 3),
,('PRO#103','912EC803B2CE49E4A541068D495AB570','32662259M','Becerra Muñiz', 'Luis@example.com','Luis', 4) ('PRO#103','912EC803B2CE49E4A541068D495AB570','32662259M','Becerra Muñiz', 'Luis@example.com','Luis', 4),
,('PRO#104','912EC803B2CE49E4A541068D495AB570','70600712G','Aznar Silva', 'Ana@example.com','Ana', 5) ('PRO#104','912EC803B2CE49E4A541068D495AB570','70600712G','Aznar Silva', 'Ana@example.com','Ana', 5),
,('PRO#105','912EC803B2CE49E4A541068D495AB570','08003806J','Galvez Sancho', 'Alfonso@example.com','Alfonso', 6) ('PRO#105','912EC803B2CE49E4A541068D495AB570','08003806J','Galvez Sancho', 'Alfonso@example.com','Alfonso', 6),
,('PRO#106','912EC803B2CE49E4A541068D495AB570','19567288S','Criado Marti', 'Jordi@example.com','Jordi', 7) ('PRO#106','912EC803B2CE49E4A541068D495AB570','19567288S','Criado Marti', 'Jordi@example.com','Jordi', 7),
,('PRO#107','912EC803B2CE49E4A541068D495AB570','95413653Q','Estevez Mena', 'Barbara@example.com','Barbara', 8) ('PRO#107','912EC803B2CE49E4A541068D495AB570','95413653Q','Estevez Mena', 'Barbara@example.com','Barbara', 8),
,('PRO#108','912EC803B2CE49E4A541068D495AB570','90914444K','Godoy Alcaide', 'Amalia@example.com','Amalia', 9) ('PRO#108','912EC803B2CE49E4A541068D495AB570','90914444K','Godoy Alcaide', 'Amalia@example.com','Amalia', 9),
,('PRO#109','912EC803B2CE49E4A541068D495AB570','05709869G','Lucas Wang', 'Carmelo@example.com','Carmelo', 10); ('PRO#109','912EC803B2CE49E4A541068D495AB570','05709869G','Lucas Wang', 'Carmelo@example.com','Carmelo', 10),
('PRO#321','912EC803B2CE49E4A541068D495AB570','83450147Y','Zambrano Gonzalez', 'Teodoro@example.com',' Teodoro', 1),
('PRO#322','912EC803B2CE49E4A541068D495AB570','82460286L','Melero Vaquero', 'Manuel Jose@example.com',' Manuel Jose', 2),
('PRO#323','912EC803B2CE49E4A541068D495AB570','66027106V','Amaya Juarez', 'Gustavo@example.com',' Gustavo', 3),
('PRO#324','912EC803B2CE49E4A541068D495AB570','35535426N','Santos Carmona', 'Gemma@example.com',' Gemma', 4),
('PRO#325','912EC803B2CE49E4A541068D495AB570','03169193T','Lin Gracia', 'Ramiro@example.com',' Ramiro', 5),
('PRO#326','912EC803B2CE49E4A541068D495AB570','65718014E','Pacheco Gonzalo', 'Maria Yolanda@example.com',' Maria Yolanda', 6),
('PRO#327','912EC803B2CE49E4A541068D495AB570','29571200P','Calero Duarte', 'Rosalia@example.com',' Rosalia', 7),
('PRO#328','912EC803B2CE49E4A541068D495AB570','73755195Z','Andres Ros', 'Jessica@example.com',' Jessica', 8),
('PRO#329','912EC803B2CE49E4A541068D495AB570','71593467X','Sanz Palomo', 'Adolfo@example.com',' Adolfo', 9),
('PRO#330','912EC803B2CE49E4A541068D495AB570','85689934F','Cabello Molina', 'Mar@example.com',' Mar', 10),
('PRO#331','912EC803B2CE49E4A541068D495AB570','05118688S','Domingo Diez', 'Felicidad@example.com',' Felicidad', 11),
('PRO#332','912EC803B2CE49E4A541068D495AB570','59057948C','Fernandez Medina', 'Amador@example.com',' Amador', 12),
('PRO#333','912EC803B2CE49E4A541068D495AB570','84861480J','De La Torre Arranz', 'Magdalena@example.com',' Magdalena', 13),
('PRO#334','912EC803B2CE49E4A541068D495AB570','77743570M','Mohamed Carmona', 'Oscar@example.com',' Oscar', 14),
('PRO#335','912EC803B2CE49E4A541068D495AB570','86346483K','Camacho Valle', 'Julio@example.com',' Julio', 15),
('PRO#336','912EC803B2CE49E4A541068D495AB570','56743696M','Gimenez Bartolome', 'Maria Asuncion@example.com',' Maria Asuncion', 16),
('PRO#337','912EC803B2CE49E4A541068D495AB570','67594210Q','Carbonell Piñeiro', 'Almudena@example.com',' Almudena', 1),
('PRO#338','912EC803B2CE49E4A541068D495AB570','32394018J','Bonet Bermejo', 'Marcelino@example.com',' Marcelino', 2),
('PRO#339','912EC803B2CE49E4A541068D495AB570','93248168G','Carrera Ortiz', 'Alexandre@example.com',' Alexandre', 3),
('PRO#340','912EC803B2CE49E4A541068D495AB570','45633960M','Crespo Abad', 'Santos@example.com',' Santos', 4),
('PRO#341','912EC803B2CE49E4A541068D495AB570','44975754J','Ocaña Medina', 'Ines@example.com',' Ines', 5),
('PRO#342','912EC803B2CE49E4A541068D495AB570','66498632C','Suarez Recio', 'Pedro@example.com',' Pedro', 6),
('PRO#343','912EC803B2CE49E4A541068D495AB570','83283712E','Saenz Carballo', 'Roser@example.com',' Roser', 7),
('PRO#344','912EC803B2CE49E4A541068D495AB570','22460230V','Menendez Alcantara', 'Carlos Alberto@example.com',' Carlos Alberto', 8),
('PRO#345','912EC803B2CE49E4A541068D495AB570','40900569Z','Jurado Carrion', 'Moises@example.com',' Moises', 9),
('PRO#346','912EC803B2CE49E4A541068D495AB570','47264240E','Alvarez Blasco', 'Adrian@example.com',' Adrian', 10),
('PRO#347','912EC803B2CE49E4A541068D495AB570','74061660G','Brito Molina', 'Jesus@example.com',' Jesus', 11),
('PRO#348','912EC803B2CE49E4A541068D495AB570','07432923J','Miralles Leal', 'Hector@example.com',' Hector', 12),
('PRO#349','912EC803B2CE49E4A541068D495AB570','56260234A','Chamorro Heras', 'Erik@example.com',' Erik', 13),
('PRO#350','912EC803B2CE49E4A541068D495AB570','37425385S','Arevalo Iglesias', 'Cristian@example.com',' Cristian', 14),
('PRO#351','912EC803B2CE49E4A541068D495AB570','38629626E','Polo Moral', 'Ivan@example.com',' Ivan', 15),
('PRO#352','912EC803B2CE49E4A541068D495AB570','40325942L','Pozo Gonzalez', 'Gregorio@example.com',' Gregorio', 16),
('PRO#353','912EC803B2CE49E4A541068D495AB570','48070502L','Salas Lozano', 'Elsa@example.com',' Elsa', 1),
('PRO#354','912EC803B2CE49E4A541068D495AB570','22743402J','Rosado Toledo', 'Carolina@example.com',' Carolina', 2),
('PRO#355','912EC803B2CE49E4A541068D495AB570','99704244A','Salazar Conde', 'Luis Angel@example.com',' Luis Angel', 3),
('PRO#356','912EC803B2CE49E4A541068D495AB570','31213766Y','Prado Maldonado', 'Pere@example.com',' Pere', 4),
('PRO#357','912EC803B2CE49E4A541068D495AB570','97558390A','Lin Poveda', 'Isidoro@example.com',' Isidoro', 5),
('PRO#358','912EC803B2CE49E4A541068D495AB570','20032738Z','Cuadrado Costa', 'Claudia@example.com',' Claudia', 6),
('PRO#359','912EC803B2CE49E4A541068D495AB570','01694490B','Melero Castellanos', 'Enric@example.com',' Enric', 7),
('PRO#360','912EC803B2CE49E4A541068D495AB570','59261456R','Domenech Gamez', 'Adriana@example.com',' Adriana', 8),
('PRO#361','912EC803B2CE49E4A541068D495AB570','26604091Z','Domingo Singh', 'Luis Antonio@example.com',' Luis Antonio', 9),
('PRO#362','912EC803B2CE49E4A541068D495AB570','81656673A','Sastre Frias', 'Candido@example.com',' Candido', 10),
('PRO#363','912EC803B2CE49E4A541068D495AB570','29212812Y','Palma Mohamed', 'Pilar@example.com',' Pilar', 11),
('PRO#364','912EC803B2CE49E4A541068D495AB570','95125089X','Pino Aguilar', 'Adolfo@example.com',' Adolfo', 12),
('PRO#365','912EC803B2CE49E4A541068D495AB570','38877119N','Martinez Galvan', 'Jimena@example.com',' Jimena', 13),
('PRO#366','912EC803B2CE49E4A541068D495AB570','40405748S','Sola Bermejo', 'Eloy@example.com',' Eloy', 14),
('PRO#367','912EC803B2CE49E4A541068D495AB570','27910288H','Fuentes Lorenzo', 'Maria Consuelo@example.com',' Maria Consuelo', 15),
('PRO#368','912EC803B2CE49E4A541068D495AB570','51584830Q','Aragon Royo', 'Ruth@example.com',' Ruth', 16),
('PRO#369','912EC803B2CE49E4A541068D495AB570','06962730D','Alcalde Velez', 'Rafaela@example.com',' Rafaela', 1),
('PRO#370','912EC803B2CE49E4A541068D495AB570','80990695J','Bermejo Blasco', 'Cristian@example.com',' Cristian', 2),
('PRO#371','912EC803B2CE49E4A541068D495AB570','16082754G','Guerrero Santiago', 'Carla@example.com',' Carla', 3),
('PRO#372','912EC803B2CE49E4A541068D495AB570','21789241F','Acosta Trujillo', 'Antonio Jesus@example.com',' Antonio Jesus', 4),
('PRO#373','912EC803B2CE49E4A541068D495AB570','21110391W','Villar Bonet', 'Abraham@example.com',' Abraham', 5),
('PRO#374','912EC803B2CE49E4A541068D495AB570','71926018G','Caceres Aznar', 'Africa@example.com',' Africa', 6),
('PRO#375','912EC803B2CE49E4A541068D495AB570','02983300Q','Estevez Marrero', 'Pablo@example.com',' Pablo', 7),
('PRO#376','912EC803B2CE49E4A541068D495AB570','79922817W','Carrion Delgado', 'Alba@example.com',' Alba', 8),
('PRO#377','912EC803B2CE49E4A541068D495AB570','63817139M','Miguel Wang', 'Cesar@example.com',' Cesar', 9),
('PRO#378','912EC803B2CE49E4A541068D495AB570','26667496P','Serna Godoy', 'Rafael@example.com',' Rafael', 10),
('PRO#379','912EC803B2CE49E4A541068D495AB570','34667199N','Iglesias Mateo', 'Carmen Maria@example.com',' Carmen Maria', 11),
('PRO#380','912EC803B2CE49E4A541068D495AB570','97436006W','Chacon Mohamed', 'Isidro@example.com',' Isidro', 12),
('PRO#381','912EC803B2CE49E4A541068D495AB570','72203762T','Cordero Olivares', 'Ramon@example.com',' Ramon', 13),
('PRO#382','912EC803B2CE49E4A541068D495AB570','33218652M','Padilla Casas', 'Soledad@example.com',' Soledad', 14),
('PRO#383','912EC803B2CE49E4A541068D495AB570','75011128D','Jimenez Burgos', 'Mohammed@example.com',' Mohammed', 15),
('PRO#384','912EC803B2CE49E4A541068D495AB570','31299876G','Figueroa Naranjo', 'Ana Belen@example.com',' Ana Belen', 16),
('PRO#385','912EC803B2CE49E4A541068D495AB570','57748477P','Vidal Roldan', 'Josefina@example.com',' Josefina', 1),
('PRO#386','912EC803B2CE49E4A541068D495AB570','99198742H','Rosa Andres', 'Aurora@example.com',' Aurora', 2),
('PRO#387','912EC803B2CE49E4A541068D495AB570','65340851J','Castellanos Vergara', 'Juan Jesus@example.com',' Juan Jesus', 3),
('PRO#388','912EC803B2CE49E4A541068D495AB570','67858714C','Alcaraz Solano', 'Emilio Jose@example.com',' Emilio Jose', 4),
('PRO#389','912EC803B2CE49E4A541068D495AB570','34364420M','Huerta Rico', 'Noemi@example.com',' Noemi', 5),
('PRO#390','912EC803B2CE49E4A541068D495AB570','47372815Z','Soto Calvo', 'Nicolas@example.com',' Nicolas', 6),
('PRO#391','912EC803B2CE49E4A541068D495AB570','81695922Z','Saenz Arevalo', 'Ana Rosa@example.com',' Ana Rosa', 7),
('PRO#392','912EC803B2CE49E4A541068D495AB570','20870549G','Navarrete Villalba', 'Natividad@example.com',' Natividad', 8),
('PRO#393','912EC803B2CE49E4A541068D495AB570','30140343Q','Gracia Galindo', 'Matias@example.com',' Matias', 9),
('PRO#394','912EC803B2CE49E4A541068D495AB570','57107502C','Piñero Correa', 'Rosario@example.com',' Rosario', 10),
('PRO#395','912EC803B2CE49E4A541068D495AB570','31599091N','Clemente Frias', 'Susana@example.com',' Susana', 11),
('PRO#396','912EC803B2CE49E4A541068D495AB570','78191056A','Miguel Aguirre', 'Sergio@example.com',' Sergio', 12),
('PRO#397','912EC803B2CE49E4A541068D495AB570','94696539L','Vazquez Toro', 'Mohamed@example.com',' Mohamed', 13),
('PRO#398','912EC803B2CE49E4A541068D495AB570','74130059R','Ojeda Blasco', 'Francisco Javier@example.com',' Francisco Javier', 14),
('PRO#399','912EC803B2CE49E4A541068D495AB570','54263073R','Calleja Flores', 'Teodoro@example.com',' Teodoro', 15),
('PRO#400','912EC803B2CE49E4A541068D495AB570','64905450W','Martinez Olmedo', 'Eloisa@example.com',' Eloisa', 16),
('PRO#401','912EC803B2CE49E4A541068D495AB570','04669076F','Blasco Melero', 'Leonor@example.com',' Leonor', 1),
('PRO#402','912EC803B2CE49E4A541068D495AB570','53157751J','Freire Ferrer', 'Ana Isabel@example.com',' Ana Isabel', 2),
('PRO#403','912EC803B2CE49E4A541068D495AB570','84275316G','Figueroa Salgado', 'Ricardo@example.com',' Ricardo', 3),
('PRO#404','912EC803B2CE49E4A541068D495AB570','47424325G','Rebollo Pineda', 'Gerardo@example.com',' Gerardo', 4),
('PRO#405','912EC803B2CE49E4A541068D495AB570','53099713G','Martinez Solis', 'Maria Purificacion@example.com',' Maria Purificacion', 5),
('PRO#406','912EC803B2CE49E4A541068D495AB570','09794229R','Flores Guijarro', 'Israel@example.com',' Israel', 6),
('PRO#407','912EC803B2CE49E4A541068D495AB570','74409378P','Bosch Zapata', 'Daniel@example.com',' Daniel', 7),
('PRO#408','912EC803B2CE49E4A541068D495AB570','18863538L','Carmona Sastre', 'Margarita@example.com',' Margarita', 8),
('PRO#409','912EC803B2CE49E4A541068D495AB570','66477577X','Rovira Cuevas', 'Jose Carlos@example.com',' Jose Carlos', 9),
('PRO#410','912EC803B2CE49E4A541068D495AB570','35967055T','Aranda Valls', 'Florentina@example.com',' Florentina', 10),
('PRO#411','912EC803B2CE49E4A541068D495AB570','98404637B','Redondo Peinado', 'Joana@example.com',' Joana', 11),
('PRO#412','912EC803B2CE49E4A541068D495AB570','55337416Z','Robles Ramon', 'Bruno@example.com',' Bruno', 12),
('PRO#413','912EC803B2CE49E4A541068D495AB570','39043197F','Campo Asensio', 'Maria Gracia@example.com',' Maria Gracia', 13),
('PRO#414','912EC803B2CE49E4A541068D495AB570','61113485R','Millan Melero', 'Jaime@example.com',' Jaime', 14),
('PRO#415','912EC803B2CE49E4A541068D495AB570','88756716S','Gil Pastor', 'Jan@example.com',' Jan', 15),
('PRO#416','912EC803B2CE49E4A541068D495AB570','61608684X','Del Valle Villa', 'Consolacion@example.com',' Consolacion', 16),
('PRO#417','912EC803B2CE49E4A541068D495AB570','46601056C','Varela Alarcon', 'Felipe@example.com',' Felipe', 1),
('PRO#418','912EC803B2CE49E4A541068D495AB570','80611975B','Vega Molina', 'Roberto@example.com',' Roberto', 2),
('PRO#419','912EC803B2CE49E4A541068D495AB570','95160642M','Calvo Luis', 'Guillermo@example.com',' Guillermo', 3),
('PRO#420','912EC803B2CE49E4A541068D495AB570','88511050N','Caballero Duarte', 'Oliver@example.com',' Oliver', 4),
('PRO#421','912EC803B2CE49E4A541068D495AB570','41289667K','Davila Blanco', 'Albert@example.com',' Albert', 1),
('PRO#422','912EC803B2CE49E4A541068D495AB570','20430184C','Vives Cordero', 'Jose Manuel@example.com',' Jose Manuel', 2),
('PRO#423','912EC803B2CE49E4A541068D495AB570','85921489K','Mateo Rico', 'Carmelo@example.com',' Carmelo', 3),
('PRO#424','912EC803B2CE49E4A541068D495AB570','31634396N','Macias Prieto', 'Jose Antonio@example.com',' Jose Antonio', 4),
('PRO#425','912EC803B2CE49E4A541068D495AB570','53781842E','Lazaro Villegas', 'Maria Purificacion@example.com',' Maria Purificacion', 5),
('PRO#426','912EC803B2CE49E4A541068D495AB570','03396741D','Frias Abad', 'Juan Luis@example.com',' Juan Luis', 6),
('PRO#427','912EC803B2CE49E4A541068D495AB570','30561128Q','Carrasco Luis', 'Gregoria@example.com',' Gregoria', 7),
('PRO#428','912EC803B2CE49E4A541068D495AB570','06994306Y','Mateos Amaya', 'Pedro@example.com',' Pedro', 8),
('PRO#429','912EC803B2CE49E4A541068D495AB570','61950502W','Macias Cuevas', 'Juan Carlos@example.com',' Juan Carlos', 9),
('PRO#430','912EC803B2CE49E4A541068D495AB570','07916216F','Fajardo Rodrigo', 'Josep@example.com',' Josep', 10),
('PRO#431','912EC803B2CE49E4A541068D495AB570','56885913J','Leal Soria', 'Juliana@example.com',' Juliana', 11),
('PRO#432','912EC803B2CE49E4A541068D495AB570','84206156M','Miranda Luque', 'Vicenta@example.com',' Vicenta', 12),
('PRO#433','912EC803B2CE49E4A541068D495AB570','37898942W','Sainz Baena', 'Aroa@example.com',' Aroa', 13),
('PRO#434','912EC803B2CE49E4A541068D495AB570','19268095Y','Fraile Latorre', 'Isabel Maria@example.com',' Isabel Maria', 14),
('PRO#435','912EC803B2CE49E4A541068D495AB570','53006303C','Iglesias Padilla', 'Maria Rosario@example.com',' Maria Rosario', 15),
('PRO#436','912EC803B2CE49E4A541068D495AB570','86009326K','Mendez Alfaro', 'Encarnacion@example.com',' Encarnacion', 16),
('PRO#437','912EC803B2CE49E4A541068D495AB570','76519090E','Sole Calderon', 'Jesus Angel@example.com',' Jesus Angel', 1),
('PRO#438','912EC803B2CE49E4A541068D495AB570','87397882K','Villegas Piñeiro', 'Natalia@example.com',' Natalia', 2),
('PRO#439','912EC803B2CE49E4A541068D495AB570','52855443V','Amaya Vela', 'Maria Nieves@example.com',' Maria Nieves', 3),
('PRO#440','912EC803B2CE49E4A541068D495AB570','96626367D','Sevilla Pena', 'Jaume@example.com',' Jaume', 4),
('PRO#441','912EC803B2CE49E4A541068D495AB570','08466139T','Bernal Palacios', 'Juan Jesus@example.com',' Juan Jesus', 5),
('PRO#442','912EC803B2CE49E4A541068D495AB570','89892351W','Coll Calleja', 'Natalia@example.com',' Natalia', 6),
('PRO#443','912EC803B2CE49E4A541068D495AB570','41130356P','Jorge Salvador', 'Gines@example.com',' Gines', 7),
('PRO#444','912EC803B2CE49E4A541068D495AB570','65624256N','Amaya Prado', 'Eric@example.com',' Eric', 8),
('PRO#445','912EC803B2CE49E4A541068D495AB570','25492168A','Toro Lozano', 'Sebastian@example.com',' Sebastian', 9),
('PRO#446','912EC803B2CE49E4A541068D495AB570','00150656Y','Campos Araujo', 'Armando@example.com',' Armando', 10),
('PRO#447','912EC803B2CE49E4A541068D495AB570','98059584G','Alcala Sala', 'Gemma@example.com',' Gemma', 11),
('PRO#448','912EC803B2CE49E4A541068D495AB570','97579373X','Polo Corrales', 'Jacobo@example.com',' Jacobo', 12),
('PRO#449','912EC803B2CE49E4A541068D495AB570','69669161E','Merino Vicente', 'Antonio Miguel@example.com',' Antonio Miguel', 13),
('PRO#450','912EC803B2CE49E4A541068D495AB570','86338060Q','Borrego Carballo', 'Sheila@example.com',' Sheila', 14),
('PRO#451','912EC803B2CE49E4A541068D495AB570','62730348X','Pineda Rosado', 'Eulalia@example.com',' Eulalia', 15),
('PRO#452','912EC803B2CE49E4A541068D495AB570','80566269Y','Estevez Izquierdo', 'Victoriano@example.com',' Victoriano', 16),
('PRO#453','912EC803B2CE49E4A541068D495AB570','78274293A','Cuenca Lorente', 'Isaac@example.com',' Isaac', 1),
('PRO#454','912EC803B2CE49E4A541068D495AB570','73356975Q','Rovira Calero', 'Tamara@example.com',' Tamara', 2),
('PRO#455','912EC803B2CE49E4A541068D495AB570','79912367V','Mena Bravo', 'Adela@example.com',' Adela', 3),
('PRO#456','912EC803B2CE49E4A541068D495AB570','06382429K','Barragan Sanchez', 'Pedro Manuel@example.com',' Pedro Manuel', 4),
('PRO#457','912EC803B2CE49E4A541068D495AB570','37448458L','Carrion Palomo', 'Alicia@example.com',' Alicia', 1),
('PRO#458','912EC803B2CE49E4A541068D495AB570','75923674F','Rodrigo Ramos', 'Paula@example.com',' Paula', 2),
('PRO#459','912EC803B2CE49E4A541068D495AB570','74322757M','Estevez Ventura', 'Gloria@example.com',' Gloria', 3),
('PRO#460','912EC803B2CE49E4A541068D495AB570','49838470T','Galvez Amaya', 'Manuel@example.com',' Manuel', 4),
('PRO#461','912EC803B2CE49E4A541068D495AB570','63831045L','Pujol Oliver', 'Sheila@example.com',' Sheila', 5),
('PRO#462','912EC803B2CE49E4A541068D495AB570','18375822H','Corral Ruano', 'Maria Esperanza@example.com',' Maria Esperanza', 6),
('PRO#463','912EC803B2CE49E4A541068D495AB570','73127729B','Iglesias Lobato', 'Enriqueta@example.com',' Enriqueta', 7),
('PRO#464','912EC803B2CE49E4A541068D495AB570','93813178L','Lin Cabrera', 'Nerea@example.com',' Nerea', 8),
('PRO#465','912EC803B2CE49E4A541068D495AB570','49476995Q','Barbero Mateu', 'Matias@example.com',' Matias', 9),
('PRO#466','912EC803B2CE49E4A541068D495AB570','46787648J','Dorado Luna', 'Juan Jesus@example.com',' Juan Jesus', 10),
('PRO#467','912EC803B2CE49E4A541068D495AB570','17059489K','Pacheco Solano', 'Isabel@example.com',' Isabel', 11),
('PRO#468','912EC803B2CE49E4A541068D495AB570','68753335X','Jurado Herranz', 'Victoriano@example.com',' Victoriano', 12),
('PRO#469','912EC803B2CE49E4A541068D495AB570','56146157Y','Sanchez Marco', 'Julio@example.com',' Julio', 13),
('PRO#470','912EC803B2CE49E4A541068D495AB570','28895880Z','Ferrero Bermudez', 'Noelia@example.com',' Noelia', 14),
('PRO#471','912EC803B2CE49E4A541068D495AB570','95804647X','Morillo Valero', 'Trinidad@example.com',' Trinidad', 15),
('PRO#472','912EC803B2CE49E4A541068D495AB570','01548835S','Carrion Arranz', 'Itziar@example.com',' Itziar', 16),
('PRO#473','912EC803B2CE49E4A541068D495AB570','11620234J','Caballero Arranz', 'Maite@example.com',' Maite', 1),
('PRO#474','912EC803B2CE49E4A541068D495AB570','01205009Q','Gracia Carrion', 'Alfredo@example.com',' Alfredo', 2),
('PRO#475','912EC803B2CE49E4A541068D495AB570','19652249Z','Suarez Muñiz', 'Avelino@example.com',' Avelino', 3),
('PRO#476','912EC803B2CE49E4A541068D495AB570','36983526D','Gimenez Romera', 'Margarita@example.com',' Margarita', 4),
('PRO#477','912EC803B2CE49E4A541068D495AB570','13116881G','Guerra Aviles', 'Susana@example.com',' Susana', 5),
('PRO#478','912EC803B2CE49E4A541068D495AB570','00743418N','Ortiz Pizarro', 'Ricardo@example.com',' Ricardo', 6),
('PRO#479','912EC803B2CE49E4A541068D495AB570','49532302P','Pereira Leon', 'Diana@example.com',' Diana', 7),
('PRO#480','912EC803B2CE49E4A541068D495AB570','29019974T','Barrera Gomez', 'Candido@example.com',' Candido', 8),
('PRO#481','912EC803B2CE49E4A541068D495AB570','54059624X','Aznar Rico', 'Maria Eugenia@example.com',' Maria Eugenia', 9),
('PRO#482','912EC803B2CE49E4A541068D495AB570','50099259S','Ocaña Salas', 'Adelaida@example.com',' Adelaida', 10),
('PRO#483','912EC803B2CE49E4A541068D495AB570','10034450X','Cid Calvo', 'Roger@example.com',' Roger', 11),
('PRO#484','912EC803B2CE49E4A541068D495AB570','39781057G','Silva Piñero', 'Maria Luisa@example.com',' Maria Luisa', 12),
('PRO#485','912EC803B2CE49E4A541068D495AB570','30250717J','Pinto Anton', 'Fatima@example.com',' Fatima', 13),
('PRO#486','912EC803B2CE49E4A541068D495AB570','54326793B','Escudero Guerra', 'Jose Andres@example.com',' Jose Andres', 14),
('PRO#487','912EC803B2CE49E4A541068D495AB570','12077553T','Marin Portillo', 'Ignacio@example.com',' Ignacio', 15),
('PRO#488','912EC803B2CE49E4A541068D495AB570','81173756V','Singh Agudo', 'Emiliano@example.com',' Emiliano', 16),
('PRO#489','912EC803B2CE49E4A541068D495AB570','18965821K','Cobos Merino', 'Eloy@example.com',' Eloy', 1),
('PRO#490','912EC803B2CE49E4A541068D495AB570','90888158R','Heras Pulido', 'Manuel Antonio@example.com',' Manuel Antonio', 2),
('PRO#491','912EC803B2CE49E4A541068D495AB570','10769780F','Exposito Riera', 'Aleix@example.com',' Aleix', 3),
('PRO#492','912EC803B2CE49E4A541068D495AB570','50993180H','Becerra Abad', 'Felisa@example.com',' Felisa', 4),
('PRO#493','912EC803B2CE49E4A541068D495AB570','60112400Z','Criado Pizarro', 'Rocio@example.com',' Rocio', 1),
('PRO#494','912EC803B2CE49E4A541068D495AB570','24121440Y','Tapia Aznar', 'Maria Begoña@example.com',' Maria Begoña', 2),
('PRO#495','912EC803B2CE49E4A541068D495AB570','14182618J','Rojas Ferrero', 'Daniel@example.com',' Daniel', 3),
('PRO#496','912EC803B2CE49E4A541068D495AB570','51057632R','Linares Marcos', 'Jose Andres@example.com',' Jose Andres', 4),
('PRO#497','912EC803B2CE49E4A541068D495AB570','74414073B','Rueda Caceres', 'Isaac@example.com',' Isaac', 5),
('PRO#498','912EC803B2CE49E4A541068D495AB570','33474231P','Guerrero Rosa', 'Ruth@example.com',' Ruth', 6),
('PRO#499','912EC803B2CE49E4A541068D495AB570','33127256B','Corrales Palacios', 'Irene@example.com',' Irene', 7),
('PRO#500','912EC803B2CE49E4A541068D495AB570','35105963M','Guzman Pinto', 'Aina@example.com',' Aina', 8),
('PRO#501','912EC803B2CE49E4A541068D495AB570','26500674M','Catalan Wang', 'Alexandre@example.com',' Alexandre', 9),
('PRO#502','912EC803B2CE49E4A541068D495AB570','68092329R','Lago Arce', 'Maria Cruz@example.com',' Maria Cruz', 10),
('PRO#503','912EC803B2CE49E4A541068D495AB570','79438264J','Casanova Gracia', 'Jose Javier@example.com',' Jose Javier', 11),
('PRO#504','912EC803B2CE49E4A541068D495AB570','09814614P','Velazquez Brito', 'Fidel@example.com',' Fidel', 12),
('PRO#505','912EC803B2CE49E4A541068D495AB570','32685364H','Pavon Peña', 'Eloy@example.com',' Eloy', 13),
('PRO#506','912EC803B2CE49E4A541068D495AB570','27256245A','De Miguel Mateos', 'Ali@example.com',' Ali', 14),
('PRO#507','912EC803B2CE49E4A541068D495AB570','94699844N','Cebrian Rodriguez', 'Marco@example.com',' Marco', 15),
('PRO#508','912EC803B2CE49E4A541068D495AB570','41767128W','Ros Recio', 'Marco@example.com',' Marco', 16),
('PRO#509','912EC803B2CE49E4A541068D495AB570','77614691H','Moya Mata', 'Felipe@example.com',' Felipe', 1),
('PRO#510','912EC803B2CE49E4A541068D495AB570','71675632L','Bonilla Lago', 'Mariana@example.com',' Mariana', 2),
('PRO#511','912EC803B2CE49E4A541068D495AB570','76463200E','Real Hernando', 'Simon@example.com',' Simon', 3),
('PRO#512','912EC803B2CE49E4A541068D495AB570','56824919S','Cabezas Brito', 'Gabriela@example.com',' Gabriela', 4),
('PRO#513','912EC803B2CE49E4A541068D495AB570','41512704G','Rueda Izquierdo', 'Alex@example.com',' Alex', 5),
('PRO#514','912EC803B2CE49E4A541068D495AB570','28007231Q','Menendez Bermejo', 'Carolina@example.com',' Carolina', 6),
('PRO#515','912EC803B2CE49E4A541068D495AB570','99792430F','Beltran Caro', 'Joel@example.com',' Joel', 7),
('PRO#516','912EC803B2CE49E4A541068D495AB570','32636037A','Mateu Roman', 'Inmaculada@example.com',' Inmaculada', 8),
('PRO#517','912EC803B2CE49E4A541068D495AB570','00051095N','Mohamed Linares', 'Angel@example.com',' Angel', 9),
('PRO#518','912EC803B2CE49E4A541068D495AB570','34352497L','Fernandez Exposito', 'Judit@example.com',' Judit', 10),
('PRO#519','912EC803B2CE49E4A541068D495AB570','91654122L','Sanchez Rivas', 'Saray@example.com',' Saray', 11),
('PRO#520','912EC803B2CE49E4A541068D495AB570','56772751B','Gomez Galan', 'Maria Eugenia@example.com',' Maria Eugenia', 12);
-- Insertar médicos especialistas -- Insertar médicos especialistas
INSERT INTO myhealth.specialistdoctor(professionalnumber, password, nif, surname, email, name, medicalspecialtyid) VALUES 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 Carlos@example.com',' Juan Carlos', 8), ('PRO#218','912EC803B2CE49E4A541068D495AB570','25565275Q','Pujol Martos', 'Juan Carlos@example.com',' Juan Carlos', 8),
('PRO#219','912EC803B2CE49E4A541068D495AB570','01595202Z','Rios Caballero', 'Jose Miguel@example.com',' Jose Miguel', 9), ('PRO#219','912EC803B2CE49E4A541068D495AB570','01595202Z','Rios Caballero', 'Jose Miguel@example.com',' Jose Miguel', 9),
('PRO#220','912EC803B2CE49E4A541068D495AB570','00718730A','Alba Pons', 'Luis Fernando@example.com',' Luis Fernando', 10), ('PRO#220','912EC803B2CE49E4A541068D495AB570','00718730A','Alba Pons', 'Luis Fernando@example.com',' Luis Fernando', 10),
('PRO#221','912EC803B2CE49E4A541068D495AB571','65948971J','Arranz Pizarro', 'Marco@example.com',' Marco', 1), ('PRO#221','912EC803B2CE49E4A541068D495AB570','65948971J','Arranz Pizarro', 'Marco@example.com',' Marco', 1),
('PRO#222','912EC803B2CE49E4A541068D495AB572','88780772J','Simon Belmonte', 'Marcelino@example.com',' Marcelino', 2), ('PRO#222','912EC803B2CE49E4A541068D495AB570','88780772J','Simon Belmonte', 'Marcelino@example.com',' Marcelino', 2),
('PRO#223','912EC803B2CE49E4A541068D495AB573','32650799E','Leal Pelaez', 'Herminia@example.com',' Herminia', 3), ('PRO#223','912EC803B2CE49E4A541068D495AB570','32650799E','Leal Pelaez', 'Herminia@example.com',' Herminia', 3),
('PRO#224','912EC803B2CE49E4A541068D495AB574','49117288Y','Clemente Correa', 'Monica@example.com',' Monica', 4), ('PRO#224','912EC803B2CE49E4A541068D495AB570','49117288Y','Clemente Correa', 'Monica@example.com',' Monica', 4),
('PRO#225','912EC803B2CE49E4A541068D495AB575','95122904X','Esteve Herrero', 'Luis Angel@example.com',' Luis Angel', 5), ('PRO#225','912EC803B2CE49E4A541068D495AB570','95122904X','Esteve Herrero', 'Luis Angel@example.com',' Luis Angel', 5),
('PRO#226','912EC803B2CE49E4A541068D495AB576','10964026H','Casado Cortes', 'Andrea@example.com',' Andrea', 6), ('PRO#226','912EC803B2CE49E4A541068D495AB570','10964026H','Casado Cortes', 'Andrea@example.com',' Andrea', 6),
('PRO#227','912EC803B2CE49E4A541068D495AB577','07091205Y','Cardona Collado', 'Alexandre@example.com',' Alexandre', 7), ('PRO#227','912EC803B2CE49E4A541068D495AB570','07091205Y','Cardona Collado', 'Alexandre@example.com',' Alexandre', 7),
('PRO#228','912EC803B2CE49E4A541068D495AB578','26701814X','Palacios Llorens', 'Manuel@example.com',' Manuel', 8), ('PRO#228','912EC803B2CE49E4A541068D495AB570','26701814X','Palacios Llorens', 'Manuel@example.com',' Manuel', 8),
('PRO#229','912EC803B2CE49E4A541068D495AB579','20559173W','Blanco Alfonso', 'Susana@example.com',' Susana', 9), ('PRO#229','912EC803B2CE49E4A541068D495AB570','20559173W','Blanco Alfonso', 'Susana@example.com',' Susana', 9),
('PRO#230','912EC803B2CE49E4A541068D495AB580','96827228B','Montes Nieto', 'Gabriela@example.com',' Gabriela', 10), ('PRO#230','912EC803B2CE49E4A541068D495AB570','96827228B','Montes Nieto', 'Gabriela@example.com',' Gabriela', 10),
('PRO#231','912EC803B2CE49E4A541068D495AB581','49564891Y','Valle Velazquez', 'Candida@example.com',' Candida', 11), ('PRO#231','912EC803B2CE49E4A541068D495AB570','49564891Y','Valle Velazquez', 'Candida@example.com',' Candida', 11),
('PRO#232','912EC803B2CE49E4A541068D495AB582','68577188C','Ferrero Bonet', 'Cristian@example.com',' Cristian', 12), ('PRO#232','912EC803B2CE49E4A541068D495AB570','68577188C','Ferrero Bonet', 'Cristian@example.com',' Cristian', 12),
('PRO#233','912EC803B2CE49E4A541068D495AB583','32618741A','Villanueva Aguilera', 'Jose Ramon@example.com',' Jose Ramon', 13), ('PRO#233','912EC803B2CE49E4A541068D495AB570','32618741A','Villanueva Aguilera', 'Jose Ramon@example.com',' Jose Ramon', 13),
('PRO#234','912EC803B2CE49E4A541068D495AB584','05786389A','Carrasco Alcazar', 'Andreu@example.com',' Andreu', 14), ('PRO#234','912EC803B2CE49E4A541068D495AB570','05786389A','Carrasco Alcazar', 'Andreu@example.com',' Andreu', 14),
('PRO#235','912EC803B2CE49E4A541068D495AB585','11934523F','Sevilla Llorens', 'Paola@example.com',' Paola', 15), ('PRO#235','912EC803B2CE49E4A541068D495AB570','11934523F','Sevilla Llorens', 'Paola@example.com',' Paola', 15),
('PRO#236','912EC803B2CE49E4A541068D495AB586','03671173M','Villa Ariza', 'Mariana@example.com',' Mariana', 1), ('PRO#236','912EC803B2CE49E4A541068D495AB570','03671173M','Villa Ariza', 'Mariana@example.com',' Mariana', 1),
('PRO#237','912EC803B2CE49E4A541068D495AB587','36355996B','Ferreira Correa', 'Maria Inmaculada@example.com',' Maria Inmaculada', 2), ('PRO#237','912EC803B2CE49E4A541068D495AB570','36355996B','Ferreira Correa', 'Maria Inmaculada@example.com',' Maria Inmaculada', 2),
('PRO#238','912EC803B2CE49E4A541068D495AB588','70144741P','Duque Salcedo', 'Alejandra@example.com',' Alejandra', 3), ('PRO#238','912EC803B2CE49E4A541068D495AB570','70144741P','Duque Salcedo', 'Alejandra@example.com',' Alejandra', 3),
('PRO#239','912EC803B2CE49E4A541068D495AB589','20728375Q','Benito Barbero', 'Maria Remedios@example.com',' Maria Remedios', 4), ('PRO#239','912EC803B2CE49E4A541068D495AB570','20728375Q','Benito Barbero', 'Maria Remedios@example.com',' Maria Remedios', 4),
('PRO#240','912EC803B2CE49E4A541068D495AB590','58422506E','Domenech Rey', 'Victoriano@example.com',' Victoriano', 5), ('PRO#240','912EC803B2CE49E4A541068D495AB570','58422506E','Domenech Rey', 'Victoriano@example.com',' Victoriano', 5),
('PRO#241','912EC803B2CE49E4A541068D495AB591','66656308P','Ferreira Maldonado', 'Borja@example.com',' Borja', 6), ('PRO#241','912EC803B2CE49E4A541068D495AB570','66656308P','Ferreira Maldonado', 'Borja@example.com',' Borja', 6),
('PRO#242','912EC803B2CE49E4A541068D495AB592','03565527K','Galan Noguera', 'Jonathan@example.com',' Jonathan', 7), ('PRO#242','912EC803B2CE49E4A541068D495AB570','03565527K','Galan Noguera', 'Jonathan@example.com',' Jonathan', 7),
('PRO#243','912EC803B2CE49E4A541068D495AB593','46864009Z','Castilla Carbonell', 'Maria Magdalena@example.com',' Maria Magdalena', 8), ('PRO#243','912EC803B2CE49E4A541068D495AB570','46864009Z','Castilla Carbonell', 'Maria Magdalena@example.com',' Maria Magdalena', 8),
('PRO#244','912EC803B2CE49E4A541068D495AB594','42051358K','Cuesta Serrano', 'Ildefonso@example.com',' Ildefonso', 9), ('PRO#244','912EC803B2CE49E4A541068D495AB570','42051358K','Cuesta Serrano', 'Ildefonso@example.com',' Ildefonso', 9),
('PRO#245','912EC803B2CE49E4A541068D495AB595','42447337D','Jorge Torres', 'Rogelio@example.com',' Rogelio', 10), ('PRO#245','912EC803B2CE49E4A541068D495AB570','42447337D','Jorge Torres', 'Rogelio@example.com',' Rogelio', 10),
('PRO#246','912EC803B2CE49E4A541068D495AB596','28652129V','Marquez Santiago', 'Maria Esther@example.com',' Maria Esther', 11), ('PRO#246','912EC803B2CE49E4A541068D495AB570','28652129V','Marquez Santiago', 'Maria Esther@example.com',' Maria Esther', 11),
('PRO#247','912EC803B2CE49E4A541068D495AB597','73947592Q','Miranda Salvador', 'Florencio@example.com',' Florencio', 12), ('PRO#247','912EC803B2CE49E4A541068D495AB570','73947592Q','Miranda Salvador', 'Florencio@example.com',' Florencio', 12),
('PRO#248','912EC803B2CE49E4A541068D495AB598','44582874L','Leon Miranda', 'Barbara@example.com',' Barbara', 13), ('PRO#248','912EC803B2CE49E4A541068D495AB570','44582874L','Leon Miranda', 'Barbara@example.com',' Barbara', 13),
('PRO#249','912EC803B2CE49E4A541068D495AB599','49952746N','Pino Zamora', 'Nuria@example.com',' Nuria', 14), ('PRO#249','912EC803B2CE49E4A541068D495AB570','49952746N','Pino Zamora', 'Nuria@example.com',' Nuria', 14),
('PRO#250','912EC803B2CE49E4A541068D495AB600','83786322J','Contreras Sosa', 'Raquel@example.com',' Raquel', 15), ('PRO#250','912EC803B2CE49E4A541068D495AB570','83786322J','Contreras Sosa', 'Raquel@example.com',' Raquel', 15),
('PRO#251','912EC803B2CE49E4A541068D495AB601','04318133K','Ojeda Heredia', 'Fernando@example.com',' Fernando', 1), ('PRO#251','912EC803B2CE49E4A541068D495AB570','04318133K','Ojeda Heredia', 'Fernando@example.com',' Fernando', 1),
('PRO#252','912EC803B2CE49E4A541068D495AB602','49063200Z','Galvez Salvador', 'Isidro@example.com',' Isidro', 2), ('PRO#252','912EC803B2CE49E4A541068D495AB570','49063200Z','Galvez Salvador', 'Isidro@example.com',' Isidro', 2),
('PRO#253','912EC803B2CE49E4A541068D495AB603','65897164W','Ariza Criado', 'Estrella@example.com',' Estrella', 3), ('PRO#253','912EC803B2CE49E4A541068D495AB570','65897164W','Ariza Criado', 'Estrella@example.com',' Estrella', 3),
('PRO#254','912EC803B2CE49E4A541068D495AB604','69191544T','Olivares Pazos', 'Luis Antonio@example.com',' Luis Antonio', 4), ('PRO#254','912EC803B2CE49E4A541068D495AB570','69191544T','Olivares Pazos', 'Luis Antonio@example.com',' Luis Antonio', 4),
('PRO#255','912EC803B2CE49E4A541068D495AB605','89558955Z','Barragan Calvo', 'Carolina@example.com',' Carolina', 5), ('PRO#255','912EC803B2CE49E4A541068D495AB570','89558955Z','Barragan Calvo', 'Carolina@example.com',' Carolina', 5),
('PRO#256','912EC803B2CE49E4A541068D495AB606','71426861Q','Lin Lopez', 'Begoña@example.com',' Begoña', 6), ('PRO#256','912EC803B2CE49E4A541068D495AB570','71426861Q','Lin Lopez', 'Begoña@example.com',' Begoña', 6),
('PRO#257','912EC803B2CE49E4A541068D495AB607','30012665B','Cebrian Singh', 'Ezequiel@example.com',' Ezequiel', 7), ('PRO#257','912EC803B2CE49E4A541068D495AB570','30012665B','Cebrian Singh', 'Ezequiel@example.com',' Ezequiel', 7),
('PRO#258','912EC803B2CE49E4A541068D495AB608','16498815H','Lara Sola', 'Alfonso@example.com',' Alfonso', 8), ('PRO#258','912EC803B2CE49E4A541068D495AB570','16498815H','Lara Sola', 'Alfonso@example.com',' Alfonso', 8),
('PRO#259','912EC803B2CE49E4A541068D495AB609','15562370H','Arroyo Montes', 'Jose Andres@example.com',' Jose Andres', 9), ('PRO#259','912EC803B2CE49E4A541068D495AB570','15562370H','Arroyo Montes', 'Jose Andres@example.com',' Jose Andres', 9),
('PRO#260','912EC803B2CE49E4A541068D495AB610','66463342N','Ordoñez Duarte', 'Eugenio@example.com',' Eugenio', 10), ('PRO#260','912EC803B2CE49E4A541068D495AB570','66463342N','Ordoñez Duarte', 'Eugenio@example.com',' Eugenio', 10),
('PRO#261','912EC803B2CE49E4A541068D495AB611','14744481D','Abad Ochoa', 'Maria Consuelo@example.com',' Maria Consuelo', 11), ('PRO#261','912EC803B2CE49E4A541068D495AB570','14744481D','Abad Ochoa', 'Maria Consuelo@example.com',' Maria Consuelo', 11),
('PRO#262','912EC803B2CE49E4A541068D495AB612','53480443S','Rebollo Llorente', 'Maria Mar@example.com',' Maria Mar', 12), ('PRO#262','912EC803B2CE49E4A541068D495AB570','53480443S','Rebollo Llorente', 'Maria Mar@example.com',' Maria Mar', 12),
('PRO#263','912EC803B2CE49E4A541068D495AB613','92028592A','Corrales Valls', 'Maria Begoña@example.com',' Maria Begoña', 13), ('PRO#263','912EC803B2CE49E4A541068D495AB570','92028592A','Corrales Valls', 'Maria Begoña@example.com',' Maria Begoña', 13),
('PRO#264','912EC803B2CE49E4A541068D495AB614','70140762P','Lazaro Olivares', 'Eva@example.com',' Eva', 14), ('PRO#264','912EC803B2CE49E4A541068D495AB570','70140762P','Lazaro Olivares', 'Eva@example.com',' Eva', 14),
('PRO#265','912EC803B2CE49E4A541068D495AB615','13666514Y','Barragan Brito', 'Hassan@example.com',' Hassan', 15), ('PRO#265','912EC803B2CE49E4A541068D495AB570','13666514Y','Barragan Brito', 'Hassan@example.com',' Hassan', 15),
('PRO#266','912EC803B2CE49E4A541068D495AB616','91860648M','Sola Cabello', 'Carolina@example.com',' Carolina', 1), ('PRO#266','912EC803B2CE49E4A541068D495AB570','91860648M','Sola Cabello', 'Carolina@example.com',' Carolina', 1),
('PRO#267','912EC803B2CE49E4A541068D495AB617','81967550N','Brito Castilla', 'Paloma@example.com',' Paloma', 2), ('PRO#267','912EC803B2CE49E4A541068D495AB570','81967550N','Brito Castilla', 'Paloma@example.com',' Paloma', 2),
('PRO#268','912EC803B2CE49E4A541068D495AB618','12780784Y','Gomez Contreras', 'Francisco Jose@example.com',' Francisco Jose', 3), ('PRO#268','912EC803B2CE49E4A541068D495AB570','12780784Y','Gomez Contreras', 'Francisco Jose@example.com',' Francisco Jose', 3),
('PRO#269','912EC803B2CE49E4A541068D495AB619','32916744H','Davila Grau', 'Asier@example.com',' Asier', 4), ('PRO#269','912EC803B2CE49E4A541068D495AB570','32916744H','Davila Grau', 'Asier@example.com',' Asier', 4),
('PRO#270','912EC803B2CE49E4A541068D495AB620','55885029C','Anton Arranz', 'Jose Juan@example.com',' Jose Juan', 5), ('PRO#270','912EC803B2CE49E4A541068D495AB570','55885029C','Anton Arranz', 'Jose Juan@example.com',' Jose Juan', 5),
('PRO#271','912EC803B2CE49E4A541068D495AB621','80583716L','Mateo Saiz', 'Estela@example.com',' Estela', 6), ('PRO#271','912EC803B2CE49E4A541068D495AB570','80583716L','Mateo Saiz', 'Estela@example.com',' Estela', 6),
('PRO#272','912EC803B2CE49E4A541068D495AB622','53325940A','Roldan Madrid', 'Caridad@example.com',' Caridad', 7), ('PRO#272','912EC803B2CE49E4A541068D495AB570','53325940A','Roldan Madrid', 'Caridad@example.com',' Caridad', 7),
('PRO#273','912EC803B2CE49E4A541068D495AB623','06748487B','Vazquez Del Valle', 'Estefania@example.com',' Estefania', 8), ('PRO#273','912EC803B2CE49E4A541068D495AB570','06748487B','Vazquez Del Valle', 'Estefania@example.com',' Estefania', 8),
('PRO#274','912EC803B2CE49E4A541068D495AB624','09042179M','Aguirre Casas', 'Leo@example.com',' Leo', 9), ('PRO#274','912EC803B2CE49E4A541068D495AB570','09042179M','Aguirre Casas', 'Leo@example.com',' Leo', 9),
('PRO#275','912EC803B2CE49E4A541068D495AB625','31618057A','Agudo Cervera', 'Roger@example.com',' Roger', 10), ('PRO#275','912EC803B2CE49E4A541068D495AB570','31618057A','Agudo Cervera', 'Roger@example.com',' Roger', 10),
('PRO#276','912EC803B2CE49E4A541068D495AB626','91690066Z','Palomo Solis', 'Marco Antonio@example.com',' Marco Antonio', 11), ('PRO#276','912EC803B2CE49E4A541068D495AB570','91690066Z','Palomo Solis', 'Marco Antonio@example.com',' Marco Antonio', 11),
('PRO#277','912EC803B2CE49E4A541068D495AB627','90043496Z','Quesada Ferreiro', 'Sagrario@example.com',' Sagrario', 12), ('PRO#277','912EC803B2CE49E4A541068D495AB570','90043496Z','Quesada Ferreiro', 'Sagrario@example.com',' Sagrario', 12),
('PRO#278','912EC803B2CE49E4A541068D495AB628','39047783Q','Villa Granados', 'Aranzazu@example.com',' Aranzazu', 13), ('PRO#278','912EC803B2CE49E4A541068D495AB570','39047783Q','Villa Granados', 'Aranzazu@example.com',' Aranzazu', 13),
('PRO#279','912EC803B2CE49E4A541068D495AB629','38357589Y','Montero Mesa', 'Ian@example.com',' Ian', 14), ('PRO#279','912EC803B2CE49E4A541068D495AB570','38357589Y','Montero Mesa', 'Ian@example.com',' Ian', 14),
('PRO#280','912EC803B2CE49E4A541068D495AB630','59233949W','Valle Galindo', 'Aina@example.com',' Aina', 15), ('PRO#280','912EC803B2CE49E4A541068D495AB570','59233949W','Valle Galindo', 'Aina@example.com',' Aina', 15),
('PRO#281','912EC803B2CE49E4A541068D495AB631','96370632B','Valverde Marquez', 'Esther@example.com',' Esther', 1), ('PRO#281','912EC803B2CE49E4A541068D495AB570','96370632B','Valverde Marquez', 'Esther@example.com',' Esther', 1),
('PRO#282','912EC803B2CE49E4A541068D495AB632','70570638Z','Roig Gonzalez', 'Leticia@example.com',' Leticia', 2), ('PRO#282','912EC803B2CE49E4A541068D495AB570','70570638Z','Roig Gonzalez', 'Leticia@example.com',' Leticia', 2),
('PRO#283','912EC803B2CE49E4A541068D495AB633','42627271Z','Molina Alonso', 'Maria Purificacion@example.com',' Maria Purificacion', 3), ('PRO#283','912EC803B2CE49E4A541068D495AB570','42627271Z','Molina Alonso', 'Maria Purificacion@example.com',' Maria Purificacion', 3),
('PRO#284','912EC803B2CE49E4A541068D495AB634','68067563Y','Alcaide Bonilla', 'Rocio@example.com',' Rocio', 4), ('PRO#284','912EC803B2CE49E4A541068D495AB570','68067563Y','Alcaide Bonilla', 'Rocio@example.com',' Rocio', 4),
('PRO#285','912EC803B2CE49E4A541068D495AB635','57280486K','Gordillo Vives', 'Fidel@example.com',' Fidel', 5), ('PRO#285','912EC803B2CE49E4A541068D495AB570','57280486K','Gordillo Vives', 'Fidel@example.com',' Fidel', 5),
('PRO#286','912EC803B2CE49E4A541068D495AB636','25001934Z','Iglesias Huertas', 'Jose Javier@example.com',' Jose Javier', 6), ('PRO#286','912EC803B2CE49E4A541068D495AB570','25001934Z','Iglesias Huertas', 'Jose Javier@example.com',' Jose Javier', 6),
('PRO#287','912EC803B2CE49E4A541068D495AB637','17084953R','Paniagua Arias', 'Ander@example.com',' Ander', 7), ('PRO#287','912EC803B2CE49E4A541068D495AB570','17084953R','Paniagua Arias', 'Ander@example.com',' Ander', 7),
('PRO#288','912EC803B2CE49E4A541068D495AB638','43949222V','Ramos Sosa', 'Maria Montserrat@example.com',' Maria Montserrat', 8), ('PRO#288','912EC803B2CE49E4A541068D495AB570','43949222V','Ramos Sosa', 'Maria Montserrat@example.com',' Maria Montserrat', 8),
('PRO#289','912EC803B2CE49E4A541068D495AB639','06951384W','Varela Perez', 'Aurelia@example.com',' Aurelia', 9), ('PRO#289','912EC803B2CE49E4A541068D495AB570','06951384W','Varela Perez', 'Aurelia@example.com',' Aurelia', 9),
('PRO#290','912EC803B2CE49E4A541068D495AB640','09702609J','Lobato Llorens', 'Maria Inmaculada@example.com',' Maria Inmaculada', 10), ('PRO#290','912EC803B2CE49E4A541068D495AB570','09702609J','Lobato Llorens', 'Maria Inmaculada@example.com',' Maria Inmaculada', 10),
('PRO#291','912EC803B2CE49E4A541068D495AB641','13463437L','Santana Pereira', 'Nerea@example.com',' Nerea', 11), ('PRO#291','912EC803B2CE49E4A541068D495AB570','13463437L','Santana Pereira', 'Nerea@example.com',' Nerea', 11),
('PRO#292','912EC803B2CE49E4A541068D495AB642','41872706X','Clemente Ocaña', 'Margarita@example.com',' Margarita', 12), ('PRO#292','912EC803B2CE49E4A541068D495AB570','41872706X','Clemente Ocaña', 'Margarita@example.com',' Margarita', 12),
('PRO#293','912EC803B2CE49E4A541068D495AB643','22477540P','Pavon Contreras', 'Jose Angel@example.com',' Jose Angel', 13), ('PRO#293','912EC803B2CE49E4A541068D495AB570','22477540P','Pavon Contreras', 'Jose Angel@example.com',' Jose Angel', 13),
('PRO#294','912EC803B2CE49E4A541068D495AB644','72650618N','Silva De La Torre', 'Ismael@example.com',' Ismael', 14), ('PRO#294','912EC803B2CE49E4A541068D495AB570','72650618N','Silva De La Torre', 'Ismael@example.com',' Ismael', 14),
('PRO#295','912EC803B2CE49E4A541068D495AB645','31857829T','Wang Bonilla', 'Rosario@example.com',' Rosario', 15), ('PRO#295','912EC803B2CE49E4A541068D495AB570','31857829T','Wang Bonilla', 'Rosario@example.com',' Rosario', 15),
('PRO#296','912EC803B2CE49E4A541068D495AB646','15902914R','Pelaez Barrio', 'Maria Mar@example.com',' Maria Mar', 1), ('PRO#296','912EC803B2CE49E4A541068D495AB570','15902914R','Pelaez Barrio', 'Maria Mar@example.com',' Maria Mar', 1),
('PRO#297','912EC803B2CE49E4A541068D495AB647','79159517A','Correa Casado', 'Iñigo@example.com',' Iñigo', 2), ('PRO#297','912EC803B2CE49E4A541068D495AB570','79159517A','Correa Casado', 'Iñigo@example.com',' Iñigo', 2),
('PRO#298','912EC803B2CE49E4A541068D495AB648','22669136Z','Casas Carvajal', 'Raul@example.com',' Raul', 3), ('PRO#298','912EC803B2CE49E4A541068D495AB570','22669136Z','Casas Carvajal', 'Raul@example.com',' Raul', 3),
('PRO#299','912EC803B2CE49E4A541068D495AB649','51991129C','Ruiz Garrido', 'Eva Maria@example.com',' Eva Maria', 4), ('PRO#299','912EC803B2CE49E4A541068D495AB570','51991129C','Ruiz Garrido', 'Eva Maria@example.com',' Eva Maria', 4),
('PRO#300','912EC803B2CE49E4A541068D495AB650','22250791Q','Pardo Frias', 'Aranzazu@example.com',' Aranzazu', 5), ('PRO#300','912EC803B2CE49E4A541068D495AB570','22250791Q','Pardo Frias', 'Aranzazu@example.com',' Aranzazu', 5),
('PRO#301','912EC803B2CE49E4A541068D495AB651','49206646D','Domingo Bueno', 'Rosa Maria@example.com',' Rosa Maria', 6), ('PRO#301','912EC803B2CE49E4A541068D495AB570','49206646D','Domingo Bueno', 'Rosa Maria@example.com',' Rosa Maria', 6),
('PRO#302','912EC803B2CE49E4A541068D495AB652','80621576K','Burgos Bueno', 'Igor@example.com',' Igor', 7), ('PRO#302','912EC803B2CE49E4A541068D495AB570','80621576K','Burgos Bueno', 'Igor@example.com',' Igor', 7),
('PRO#303','912EC803B2CE49E4A541068D495AB653','73047658A','Gil Pino', 'Benjamin@example.com',' Benjamin', 8), ('PRO#303','912EC803B2CE49E4A541068D495AB570','73047658A','Gil Pino', 'Benjamin@example.com',' Benjamin', 8),
('PRO#304','912EC803B2CE49E4A541068D495AB654','72128948M','Duarte Ortiz', 'Adrian@example.com',' Adrian', 9), ('PRO#304','912EC803B2CE49E4A541068D495AB570','72128948M','Duarte Ortiz', 'Adrian@example.com',' Adrian', 9),
('PRO#305','912EC803B2CE49E4A541068D495AB655','24282032N','Velasco Moran', 'Lidia@example.com',' Lidia', 10), ('PRO#305','912EC803B2CE49E4A541068D495AB570','24282032N','Velasco Moran', 'Lidia@example.com',' Lidia', 10),
('PRO#306','912EC803B2CE49E4A541068D495AB656','07606725G','Granados Cardona', 'Vasile@example.com',' Vasile', 11), ('PRO#306','912EC803B2CE49E4A541068D495AB570','07606725G','Granados Cardona', 'Vasile@example.com',' Vasile', 11),
('PRO#307','912EC803B2CE49E4A541068D495AB657','31186730H','Aragon Arranz', 'Alexandra@example.com',' Alexandra', 12), ('PRO#307','912EC803B2CE49E4A541068D495AB570','31186730H','Aragon Arranz', 'Alexandra@example.com',' Alexandra', 12),
('PRO#308','912EC803B2CE49E4A541068D495AB658','43619490J','Bonilla Lago', 'Alexis@example.com',' Alexis', 13), ('PRO#308','912EC803B2CE49E4A541068D495AB570','43619490J','Bonilla Lago', 'Alexis@example.com',' Alexis', 13),
('PRO#309','912EC803B2CE49E4A541068D495AB659','17935762V','Juan Aznar', 'Elias@example.com',' Elias', 14), ('PRO#309','912EC803B2CE49E4A541068D495AB570','17935762V','Juan Aznar', 'Elias@example.com',' Elias', 14),
('PRO#310','912EC803B2CE49E4A541068D495AB660','19653102Q','Martin Hurtado', 'Maria Manuela@example.com',' Maria Manuela', 15), ('PRO#310','912EC803B2CE49E4A541068D495AB570','19653102Q','Martin Hurtado', 'Maria Manuela@example.com',' Maria Manuela', 15),
('PRO#311','912EC803B2CE49E4A541068D495AB661','87495503F','Cordero Campos', 'Naiara@example.com',' Naiara', 6), ('PRO#311','912EC803B2CE49E4A541068D495AB570','87495503F','Cordero Campos', 'Naiara@example.com',' Naiara', 6),
('PRO#312','912EC803B2CE49E4A541068D495AB662','38673770Y','Del Rio Fraile', 'Kevin@example.com',' Kevin', 7), ('PRO#312','912EC803B2CE49E4A541068D495AB570','38673770Y','Del Rio Fraile', 'Kevin@example.com',' Kevin', 7),
('PRO#313','912EC803B2CE49E4A541068D495AB663','00840863Y','Abad Wang', 'Igor@example.com',' Igor', 8), ('PRO#313','912EC803B2CE49E4A541068D495AB570','00840863Y','Abad Wang', 'Igor@example.com',' Igor', 8),
('PRO#314','912EC803B2CE49E4A541068D495AB664','92404967Y','Galvez Blasco', 'Alberto@example.com',' Alberto', 9), ('PRO#314','912EC803B2CE49E4A541068D495AB570','92404967Y','Galvez Blasco', 'Alberto@example.com',' Alberto', 9),
('PRO#315','912EC803B2CE49E4A541068D495AB665','62521101V','Ramirez Ochoa', 'Albert@example.com',' Albert', 10), ('PRO#315','912EC803B2CE49E4A541068D495AB570','62521101V','Ramirez Ochoa', 'Albert@example.com',' Albert', 10),
('PRO#316','912EC803B2CE49E4A541068D495AB666','37944035S','Hernando Cordero', 'Maria Belen@example.com',' Maria Belen', 11), ('PRO#316','912EC803B2CE49E4A541068D495AB570','37944035S','Hernando Cordero', 'Maria Belen@example.com',' Maria Belen', 11),
('PRO#317','912EC803B2CE49E4A541068D495AB667','67045193D','Alfaro Barreiro', 'Samuel@example.com',' Samuel', 12), ('PRO#317','912EC803B2CE49E4A541068D495AB570','67045193D','Alfaro Barreiro', 'Samuel@example.com',' Samuel', 12),
('PRO#318','912EC803B2CE49E4A541068D495AB668','68481931Y','Cardona Huerta', 'Rafael@example.com',' Rafael', 13), ('PRO#318','912EC803B2CE49E4A541068D495AB570','68481931Y','Cardona Huerta', 'Rafael@example.com',' Rafael', 13),
('PRO#319','912EC803B2CE49E4A541068D495AB669','75627578J','Lobato Brito', 'Paulino@example.com',' Paulino', 14), ('PRO#319','912EC803B2CE49E4A541068D495AB570','75627578J','Lobato Brito', 'Paulino@example.com',' Paulino', 14),
('PRO#320','912EC803B2CE49E4A541068D495AB670','66946733N','Cervera Estrada', 'Aranzazu@example.com',' Aranzazu', 15); ('PRO#320','912EC803B2CE49E4A541068D495AB570','66946733N','Cervera Estrada', 'Aranzazu@example.com',' Aranzazu', 15);
-- Insertar Pacientes -- Insertar Pacientes
INSERT INTO myhealth.patient(personalidentificationcode, password, nif, surname, email, name, familydoctorid) VALUES INSERT INTO myhealth.patient(personalidentificationcode, password, nif, surname, email, name, familydoctorid) VALUES