CHAPTER 3 INTERACTION MINING MOBILE APPS
3.2 ERICA: Interaction Mining for Android Apps
3.2.2 Implementation
Para el modelado de gestión de la Aplicación Web se generó los requerimientos, a través de las encuestas realizadas a los pacientes de Consultorio de Especialidades MediReuma y son los siguientes:
Requerimiento REQ001 Tipo Funcional
Nombre Datos de los usuarios.
Descripción La aplicación web permita registrar los datos de los usuarios.
Prioridad Alta Adjunto /REQ013
Tabla 16. Requerimiento 001 Fuente: La Autora.
Requerimiento REQ002 Tipo Funcional
Nombre Registrar fichas medicas
Descripción Permita registrar las fichas médicas de cada paciente.
Prioridad Alta Adjunto REQ001 / REQ003
Tabla 17. Requerimiento 002 Fuente: La Autora.
Requerimiento REQ003 Tipo Funcional
Nombre Visualización de fichas médicas.
Descripción Visualizar las fichas medicas mediante el número de la cedula de los pacientes del consultorio de especialidades MediReuma.
Prioridad Alta Adjunto REQ001-REQ002/
Tabla 18. Requerimiento 003 Fuente: La Autora.
51
Requerimiento REQ004 Tipo Funcional
Nombre Reservación de citas medicas
Descripción Reservar las citas médicas a los pacientes.
Prioridad Alta Adjunto REQ001 / REQ005
Tabla 19. Requerimiento 004 Fuente: La Autora
Requerimiento REQ005 Tipo Funcional
Nombre Cancelación de citas medicas
Descripción Permita cancelar las citas médicas de los pacientes.
Prioridad Alta Adjunto REQ001-REQ004/
Tabla 20. Requerimiento 005 Fuente: La Autora.
Requerimiento REQ006 Tipo Funcional
Nombre Asignación de Horarios de los médicos
Descripción Permitirá asignar a cada médico su horario de atención
Prioridad Alta Adjunto REQ001 / REQ004
Tabla 21. Requerimiento 006 Fuente: La Autora.
Requerimiento REQ007 Tipo Funcional
Nombre Registrar los datos de los historiales clínicos.
Descripción La aplicación web debe permitir registrar los datos de los historiales clínicos de cada paciente.
Prioridad Alta Adjunto REQ001-REQ002-
REQ003/ REQ008 Tabla 22. Requerimiento 007
52
Requerimiento REQ008 Tipo Funcional
Nombre Registro de las recetas medicas
Descripción Registrar los datos de las recetas médicas de cada paciente.
Prioridad Alta Adjunto REQ001-REQ002-
REQ003/ REQ009 Tabla 23. Requerimiento 008
Fuente: La Autora.
Requerimiento REQ009 Tipo Funcional
Nombre Visualización de los historiales clínicos.
Descripción Permita visualizar los historiales clínicos de cada paciente.
Prioridad Alta Adjunto REQ001-REQ002-
REQ007 / REQ011 Tabla 24. Requerimiento 009
Fuente: La Autora.
Requerimiento REQ010 Tipo Funcional
Nombre Visualización de las recetas medicas
Descripción Permita visualizar las recetas médicas de cada paciente.
Prioridad Alta Adjunto REQ001-REQ002-
REQ008 / REQ012 Tabla 25. Requerimiento 010
Fuente: La Autora.
Requerimiento REQ011 Tipo Funcional
Nombre Impresión de los historiales clínicos
Descripción Permitirá la impresión de los historiales clínicos.
Prioridad Media Adjunto REQ001- REQ002-
REQ007- REQ009/ Tabla 26. Requerimiento 011
53
Requerimiento REQ012 Tipo Funcional
Nombre Impresión de las recetas medicas
Descripción Permitirá la impresión de las recetas médicas.
Prioridad Media Adjunto REQ001- REQ002-
REQ008- REQ010/ Tabla 27. Requerimiento 012
Fuente: La Autora.
Requerimiento REQ013 Tipo Funcional
Nombre Validar el registro de cada usuario.
Descripción La aplicación web permitirá validar el registro de cada usuario.
Prioridad Alta Adjunto REQ001/
Tabla 28. Requerimiento 013 Fuente: La Autora.
Requerimiento REQ014 Tipo No Funcional
Nombre Utilizar el logotipo de la institución.
Descripción La aplicación web debe usar el logotipo del Consultorio de Especialidades MediReuma.
Prioridad Baja Adjunto
Tabla 29. Requerimiento 014 Fuente: La Autora.
Requerimiento REQ015 Tipo No Funcional
Nombre Utilizar los colores de la institución.
Descripción La aplicación web debe usar los colores del Consultorio de Especialidades MediReuma.
Prioridad Baja Adjunto
Tabla 30. Requerimiento 015 Fuente: La Autora.
54
Modelado de Datos.- en la realización de este modelo se generó los siguientes diagramas el diagrama relacional, el diagrama lógico y el diagrama físico que se encuentra en los anexos A y B respectivamente, el diccionario de datos y el script de la base de datos.
Modelo relacional de la base de datos de la Aplicación Web del Consultorio de Especialidades MediReuma.
Ilustración 6. Modelo relacional de la base de datos de la Aplicación Web. Fuente: La Autora
55 Diccionario de Datos.
cita_medica
Columna Tipo Nulo Predeterminado
ID_CITA varchar(6) No NULL
ID_MEDICO varchar(6) Sí NULL
ID_PACIENTE varchar(8) Sí NULL
CIT_FECHA Date Sí NULL
CIT_HORA Time Sí NULL
CIT_ESTADO
varchar(20) Sí
NULL
Tabla 31. Tabla cita_medica de la base de datos de la Aplicación Web. Fuente: La Autora.
Índices Nombre de la
clave Tipo Único Empaquetado Columna Cotejamiento Nulo
PRIMARY BTREE Sí No ID_CITA A No
FK_RELATION
SHIP_5 BTREE No No ID_MEDICO A Sí
FK_RELATION
SHIP_6 BTREE No No
ID_PACIEN
TE A Sí
Tabla 32. Índices de la tabla cita_medica. Fuente: La Autora.
historial_medico
Columna Tipo Nulo Predeterminado
ID_HISTORIAL_MEDICO varchar(20) No NULL
ID_CITA varchar(20) No NULL
ID_PACIENTE varchar(20) Sí NULL
ID_MEDICO varchar(20) Sí NULL
PRESION varchar(8) Sí NULL
PESO decimal(10,0) Sí NULL
RESPIRACION int(11) Sí NULL
PULSO int(11) Sí NULL
TEMPERATURA decimal(10,0) Sí NULL
SINTOMAS varchar(250) Sí NULL
DIAGNOSTICO varchar(200) Sí NULL
56
OBSERVACIONES varchar(200) Sí NULL INDICACIONES varchar(200) Sí NULL
FECHA_INHIST Datetime No CURRENT_TIMESTAMP
Tabla 33. Tabla historial_medico de la base de datos de la Aplicación Web. Fuente: La Autora.
Índices Nombre de
la clave Tipo Único Empaquetado Columna Cotejamiento Nulo
PRIMARY BTREE Sí No ID_HISTORIAL
_MEDICO A No
FK_RELATI
ONSHIP_1 BTREE No No ID_PACIENTE A Sí
FK_RELATI
ONSHIP_3 BTREE No No ID_MEDICO A Sí
Tabla 34. Índices de la tabla historial_medico. Fuente: La Autora.
medico
Columna Tipo Nulo Predeterminado
ID_MEDICO varchar(6) No NULL
ID_USUARIO varchar(20) Sí NULL
MED_CEDULA varchar(10) Sí NULL
MED_APELLI varchar(50) Sí NULL
MED_NOMBRE varchar(50) Sí NULL
MED_DIRECC varchar(50) Sí NULL
MED_TELEFO varchar(10) Sí NULL
MED_EMAIL varchar(50) Sí NULL
MED_CLAVE varchar(50) No NULL
MED_ESPECI varchar(50) Sí NULL
MED_HORAIN Time Sí NULL
MED_HORAFI Time Sí NULL
STATUS varchar(20) No NULL
Tabla 35. Tabla medico de la base de datos de la Aplicación Web. Fuente: La Autora.
57 Índices Nombre de
la clave Tipo Único Empaquetado Columna Cotejamiento Nulo
PRIMARY BTREE Sí No ID_MEDICO A No
FK_RELATI
ONSHIP_7 BTREE No No ID_USUARIO A Sí
Tabla 36. Índices de la tabla medico. Fuente: La Autora.
paciente
Columna Tipo Nulo Predeterminado
ID_PACIENTE varchar(8) No NULL
ID_USUARIO varchar(20) Sí NULL
PAC_CEDULA varchar(10) Sí NULL
PAC_APELLI varchar(50) Sí NULL
PAC_NOMBRE varchar(50) Sí NULL
PAC_CLAVE varchar(50) No NULL
PAC_SEXO varchar(20) Sí NULL
PAC_ESTCIV varchar(10) Sí NULL
PAC_DIRECC varchar(50) Sí NULL
PAC_TELEFO varchar(10) Sí NULL
PAC_FECNAC Date Sí NULL
PAC_EMAIL varchar(100) Sí NULL
PAC_ESTADO varchar(20) Sí NULL
PAC_URTELF varchar(10) Sí NULL
Tabla 37. Tabla paciente de la base de datos de la Aplicación Web. Fuente: La Autora.
Índices Nombre de la
clave Tipo Único Empaquetado Columna Cotejamiento Nulo
PRIMARY BTREE Sí No ID_PACIENTE A No
FK_RELATI
ONSHIP_4 BTREE No No ID_USUARIO A Sí
Tabla 38. Índices de la tabla paciente. Fuente: La Autora.
58 secretaria
Columna Tipo Nulo Predeterminado
ID_SECRETARIA varchar(20) No NULL
ID_USUARIO varchar(20) No NULL
SEC_CEDULA varchar(10) No NULL
SEC_APELLI varchar(50) No NULL
SEC_NOMBRE varchar(50) No NULL
SEC_CLAVE varchar(50) No NULL
SEC_EMAIL varchar(100) No NULL
SEC_NIVEL varchar(10) No NULL
SEC_DIRECC varchar(50) No NULL
SEC_TELEFO varchar(10) No NULL
SEC_ESTADO varchar(20) No NULL
Tabla 39. Tabla secretaria de la base de datos de la Aplicación Web. Fuente: La Autora.
Índices Nombre de la
clave Tipo Único Empaquetado Columna Cotejamiento Nulo
PRIMARY BTREE Sí No ID_SECRETARIA A No
Tabla 40. Índices de la tabla secretaria. Fuente: La Autora.
usuarios
Columna Tipo Nulo Predeterminado
ID_USUARIO varchar(10) No NULL
USU_CEDULA varchar(10) Sí NULL
USU_APELLI varchar(50) Sí NULL
USU_NOMBRE varchar(50) Sí NULL
USU_CLAVE varchar(50) No NULL
USU_DIRECC varchar(50) Sí NULL
USU_TELEFO varchar(10) Sí NULL
USU_EMAIL varchar(100) Sí NULL
USU_NIVEL varchar(20) Sí NULL
FECHA_REGISTRO Datetime No CURRENT_TIMESTAMP
USU_ESTADO varchar(30) No NULL
Tabla 41. Tabla usuarios de la base de datos de la Aplicación Web. Fuente: La Autora.
59 Índices Nombre de la
clave Tipo Único Empaquetado Columna Cotejamiento Nulo
PRIMARY
BTREE Sí
No
ID_USUARIO A
No
Tabla 42. Índices de la tabla usuarios. Fuente: La Autora.
Script de la base de datos de la Aplicación Web.
/*==============================================================*/ /* DBMS name: MySQL 5.0 */
/* Created on: 15/08/2016 19:18:20 */
/*==============================================================*/ drop table if exists cita_medica;
drop table if exists historial_medico; drop table if exists medico;
drop table if exists paciente; drop table if exists secretaria; drop table if exists usuarios;
/*==============================================================*/ /* Table: cita_medica */
/*==============================================================*/ create table cita_medica
(
ID_CITA varchar(6) not null,
ID_MEDICO varchar(6) default NULL, ID_PACIENTE varchar(8) default NULL, CIT_FECHA date default NULL,
CIT_HORA time default NULL,
CIT_ESTADO varchar(20) default NULL, primary key (ID_CITA),
key FK_RELATIONSHIP_5 (ID_MEDICO), key FK_RELATIONSHIP_6 (ID_PACIENTE) )
ENGINE=INNODB DEFAULT CHARSET=latin1;
/*==============================================================*/ /* Table: historial_medico */
/*==============================================================*/ create table historial_medico (
60 ID_HISTORIAL_MEDICO varchar(20) not null, PAC_ID_PACIENTE varchar(8),
MED_ID_MEDICO varchar(6), CIT_ID_CITA varchar(6), PAC_ID_PACIENTE2 varchar(8), ID_CITA varchar(20) not null,
ID_PACIENTE varchar(20) default NULL, ID_MEDICO varchar(20) default NULL, PRESION varchar(8) default NULL, PESO decimal(10,0) default NULL, RESPIRACION int(11) default NULL, PULSO int(11) default NULL,
TEMPERATURA decimal(10,0) default NULL, SINTOMAS varchar(250) default NULL, DIAGNOSTICO varchar(200) default NULL, TRATAMIENTO varchar(200) default NULL, OBSERVACIONES varchar(200) default NULL, INDICACIONES varchar(200) default NULL,
FECHA_INHIST datetime not null default CURRENT_TIMESTAMP, primary key (ID_HISTORIAL_MEDICO),
key FK_RELATIONSHIP_1 (ID_PACIENTE), key FK_RELATIONSHIP_3 (ID_MEDICO) )
ENGINE=INNODB DEFAULT CHARSET=latin1;
/*==============================================================*/ /* Table: medico */
/*==============================================================*/ create table medico
(
ID_MEDICO varchar(6) not null, ID_PACIENTE varchar(8),
ID_CITA varchar(6),
ID_USUARIO varchar(20) default NULL, MED_CEDULA varchar(10) default NULL, MED_APELLI varchar(50) default NULL, MED_NOMBRE varchar(50) default NULL, MED_DIRECC varchar(50) default NULL, MED_TELEFO varchar(10) default NULL, MED_EMAIL varchar(50) default NULL, MED_CLAVE varchar(50) not null, MED_ESPECI varchar(50) default NULL, MED_HORAIN time default NULL, MED_HORAFI time default NULL, STATUS varchar(20) not null, primary key (ID_MEDICO),
key FK_RELATIONSHIP_7 (ID_USUARIO) )
ENGINE=INNODB DEFAULT CHARSET=latin1;
61 /* Table: paciente */
/*==============================================================*/ create table paciente
(
ID_PACIENTE varchar(8) not null, ID_CITA varchar(6),
ID_USUARIO varchar(20) default NULL, PAC_CEDULA varchar(10) default NULL, PAC_APELLI varchar(50) default NULL, PAC_NOMBRE varchar(50) default NULL, PAC_CLAVE varchar(50) not null,
PAC_SEXO varchar(20) default NULL, PAC_ESTCIV varchar(10) default NULL, PAC_DIRECC varchar(50) default NULL, PAC_TELEFO varchar(10) default NULL, PAC_FECNAC date default NULL,
PAC_EMAIL varchar(100) default NULL, PAC_ESTADO varchar(20) default NULL, PAC_URTELF varchar(10) default NULL, primary key (ID_PACIENTE),
key FK_RELATIONSHIP_4 (ID_USUARIO) )
ENGINE=INNODB DEFAULT CHARSET=latin1;
/*==============================================================*/ /* Table: secretaria */
/*==============================================================*/ create table secretaria
(
ID_SECRETARIA varchar(20) not null, ID_PACIENTE varchar(8),
ID_USUARIO varchar(20) not null, SEC_CEDULA varchar(10) not null, SEC_APELLI varchar(50) not null, SEC_NOMBRE varchar(50) not null, SEC_CLAVE varchar(50) not null, SEC_EMAIL varchar(100) not null, SEC_NIVEL varchar(10) not null, SEC_DIRECC varchar(50) not null, SEC_TELEFO varchar(10) not null, SEC_ESTADO varchar(20) not null, primary key (ID_SECRETARIA)
)
ENGINE=INNODB DEFAULT CHARSET=latin1;
/*==============================================================*/ /* Table: usuarios */
/*==============================================================*/ create table usuarios (
ID_USUARIO varchar(10) not null, ID_PACIENTE varchar(8),
62 ID_SECRETARIA varchar(20),
ID_MEDICO varchar(6),
USU_CEDULA varchar(10) default NULL, USU_APELLI varchar(50) default NULL, USU_NOMBRE varchar(50) default NULL, USU_CLAVE varchar(50) not null,
USU_DIRECC varchar(50) default NULL, USU_TELEFO varchar(10) default NULL, USU_EMAIL varchar(100) default NULL, USU_NIVEL varchar(20) default NULL,
FECHA_REGISTRO datetime not null default CURRENT_TIMESTAMP, USU_ESTADO varchar(30) not null,
primary key (ID_USUARIO) )
ENGINE=INNODB DEFAULT CHARSET=latin1;
alter table historial_medico add constraint FK_REFERENCE_10 foreign key (CIT_ID_CITA) references cita_medica (ID_CITA) on delete restrict on update restrict; alter table historial_medico add constraint FK_REFERENCE_11 foreign key (PAC_ID_PACIENTE2) references paciente (ID_PACIENTE) on delete restrict on update restrict;
alter table historial_medico add constraint FK_REFERENCE_4 foreign key (PAC_ID_PACIENTE) references paciente (ID_PACIENTE) on delete restrict on update restrict;
alter table historial_medico add constraint FK_REFERENCE_5 foreign key (MED_ID_MEDICO) references medico (ID_MEDICO) on delete restrict on update restrict;
alter table medico add constraint FK_REFERENCE_7 foreign key (ID_PACIENTE) references paciente (ID_PACIENTE) on delete restrict on update restrict;
alter table medico add constraint FK_REFERENCE_8 foreign key (ID_CITA) references cita_medica (ID_CITA) on delete restrict on update restrict;
alter table paciente add constraint FK_REFERENCE_6 foreign key (ID_CITA) references cita_medica (ID_CITA) on delete restrict on update restrict;
alter table secretaria add constraint FK_REFERENCE_9 foreign key (ID_PACIENTE) references paciente (ID_PACIENTE) on delete restrict on update restrict;
alter table usuarios add constraint FK_REFERENCE_1 foreign key (ID_PACIENTE) references paciente (ID_PACIENTE) on delete restrict on update restrict;
alter table usuarios add constraint FK_REFERENCE_2 foreign key (ID_SECRETARIA) references secretaria (ID_SECRETARIA) on delete restrict on update restrict;
63
alter table usuarios add constraint FK_REFERENCE_3 foreign key (ID_MEDICO) references medico (ID_MEDICO) on delete restrict on update restrict;
Modelado de Procesos.
Mediante la identificación de los procesos, se diseñó los diagramas de casos de usos de la Aplicación Web del Consultorio de Especialidades MediReuma:
Ilustración 7. Casos de Uso de los Usuarios Fuente: La Autora
Ilustración 8. Casos de Uso del Administrador. Fuente: La Autora. <Extend> usuario Abrir la aplicacion Ingresa usuario y clave Ingresa como Secretaria Verifica como ingresa el usuario, secretaria, paciente o Administrador sistema <include> <include> Paciente <Include> administrador
Abir aplicacion ingresa usuario y clave
Ingresa datos de usuarios <Extend> Gestiona datos de usuarios Verifica datos y los guarda en una base de datos <Include> Sistema
64
Ilustración 9. Casos de Uso del Usuario Secretaria. Fuente: La Autora.
Ilustración 10. Casos de Uso del Usuario Médico. Fuente: La Autora.
secretaria sistema.
Abrir aplicacion Ingresa usuario y clave. Ingresa datos de pacientes Actualiza datos de pacientes Asigna citas medicas Reporte de citas medicas Verifica datos de los
pacientes y los guarda en una bd Consulta citas medicas <Extend> <Extend> <Include> medico Sistema. Abrir aplicacion. Ingresa Usuario
y clave. Listar reservaciones asignadas Consulta historial medico de pacientes Actualiza datos del paciente Asigna receta medica Verifica datos de los pacientes y los guarda en una Bd <Extend> <Extend> <Extend> <Include> Reporte de Historiales Medicos
65
Ilustración 11. Casos de Uso del Usuario Paciente. Fuente: La Autora.
abrir aplicacion ingresa usuario
y clave. ingresa datos actualiza datos reserva cita Verifica los datos y los guarda en una Bd <Extend> <Extend> <Extend> visualiza historial medico paciente sistema.. visualiza receta medica cancela cita imprime historial medico imprime receta medica <Extend> Genera reportes historiales medicos recetas medicas <Extend>
66 Diagrama de Aplicación
Para la creación del sistema se realizó el diagrama de navegación y el diseño de interfaz. Diagrama de Navegación.
Ilustración 12. Diagrama de Navegación de la Aplicación Web. Fuente: La Autora.
INICIO
ADMINISTRADOR MEDICO SECRETARIA PACIENTE
Buscar Usuario s Actualizar datos de Usuarios Ingreso de Usuarios Reportes Citas Buscar citas Citas atendidas y no atendidas Pacientes Médicos Secretarias Ingresar Paciente Actualizar datos de pacientes Reportes Citas Médicas Buscar Paciente Atender Paciente Registrar historial medico Ver datos de la última cita Citas Asignadas Citas Revisar Historial Reservar Imprimir Receta Imprimir Historia Clínica Cancelar Historial Medico
67
Diseño de interfaz de la Aplicación Web del Consultorio de especialidades MediReuma. Página Principal de la Aplicación Web
Ilustración 13. Interfaz de inicio de la Aplicación Web. Fuente: La Autora. 1. Logotipo 2. Imagen de la Empresa 3. Datos de la Empresa 4. Nombre de la Empresa 5. Login 6. formulario de Registro 7. Pie de página 7 4 3 2 1 5 6
68
Página del Administrador
Ilustración 14. Interfaz de inicio del usuario administrador. Fuente: La Autora.
1. Menú
2. Botón Editar mis datos.
3. Campo de búsqueda de usuario por tipo (paciente, médico o secretaria) Página del Médico
Ilustración 15. Interfaz de inicio del usuario médico. Fuente: La Autora
1. Menú
2. Citas Asignadas según el médico. 1
2
3 1
69
Ilustración 16. Interfaz de ingreso de datos del historial médico de los pacientes. Fuente: La Autora.
1. Menú
2. Formulario de Registro del Historial Médico del Paciente 3. Botón Guardar Datos
Página de la Secretaria
Ilustración 17. Interfaz de inicio del usuario secretaria. Fuente: La Autora.
1. Menú
2. Datos del usuario secretaria 2 1
1
2
70
Página del Paciente
Ilustración 18. Interfaz de ingreso del usuario paciente. Fuente: La Autora.
1. Menú
2. Datos del usuario Paciente Pruebas e Implementación. Script de la conexión con mysqli.
<?php $c_host="localhost"; $c_user="medireuma"; $c_pass="medireuma1"; $c_db="medireuma_db"; $mysqli=mysqli_connect($c_host,$c_user,$c_pass,$c_db); ?> 2 1
71