autor: tutor - repositorio digital: página de inicio · 4.5 funcionamiento de la aplicación ......

154
UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA CARRERA DE INGENIERÍA INFORMÁTICA DIGITALIZACIÓN Y AUTOMATIZACIÓN DE LA GESTIÓN DE HISTORIAS CLÍNICAS PEDIÁTRICAS EN EL HOSPITAL DEL DÍA DE LA UNIVERSIDAD CENTRAL DEL ECUADOR MEDIANTE EL DISEÑO Y CONSTRUCCIÓN DE UNA APLICACIÓN WEBTRABAJO DE GRADUACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO INFORMÁTICO. AUTOR: NELSON WLADIMIR TRUJILLO GUERRÓN. TUTOR: ING. RENÉ ALFONSO CARRILLO FLORES, MSC. QUITO ECUADOR 2016

Upload: haquynh

Post on 19-Oct-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA

CARRERA DE INGENIERÍA INFORMÁTICA

“DIGITALIZACIÓN Y AUTOMATIZACIÓN DE LA GESTIÓN DE HISTORIAS

CLÍNICAS PEDIÁTRICAS EN EL HOSPITAL DEL DÍA DE LA UNIVERSIDAD

CENTRAL DEL ECUADOR MEDIANTE EL DISEÑO Y CONSTRUCCIÓN DE

UNA APLICACIÓN WEB”

TRABAJO DE GRADUACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE

INGENIERO INFORMÁTICO.

AUTOR: NELSON WLADIMIR TRUJILLO GUERRÓN.

TUTOR: ING. RENÉ ALFONSO CARRILLO FLORES, MSC.

QUITO – ECUADOR

2016

ii

DEDICATORIA

A Dios por la salud y permitirme realizar el presente trabajo de graduación, a mis

padres y a mi familia por su apoyo y palabras de aliento, a mis maestros y a mis

amigos por brindarme su conocimiento y ayuda en todo momento.

iii

AGRADECIMIENTO

A mi familia por la compresión y por sus consejos de continuar siempre mejorando y

logrando nuevos objetivos.

A mi tutor de tesis por su compresión y guía para culminar con éxito el presente

trabajo de graduación.

A mis padres por su empeño y esfuerzo diario, y el amor que me brindan que ha sido

pilar fundamental en mi vida.

iv

AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL

Yo, NELSON WLADIMIR TRUJILLO GUERRÓN, en calidad de autor de la tesis

realizada sobre “DIGITALIZACIÓN Y AUTOMATIZACIÓN DE LA GESTIÓN

DE HISTORIAS CLÍNICAS PEDIÁTRICAS EN EL HOSPITAL DEL DÍA DE LA

UNIVERSIDAD CENTRAL DEL ECUADOR MEDIANTE EL DISEÑO Y

CONSTRUCCIÓN DE UNA APLICACIÓN WEB”, por la presente autorizo a la

UNIVERSIDAD CENTRAL DEL ECUADOR, hacer uso de todos los casos de

contenidos que me pertenecen o de parte de los que contienen esta obra, con fines

estrictamente académicos o de investigación.

Los derechos que como autor me corresponden, con excepción de la presente

autorización, seguirán vigentes a mi favor, de conformidad con lo establecido en los

artículos 5, 6, 8, 19 y demás pendientes de la ley de la Propiedad Intelectual y su

reglamento.

Quito, 1 de Diciembre de 2015

NELSON WLADIMIR TRUJILLO GUERRÓN

C.C.: 1719004218

v

vi

vii

viii

ix

x

Contenido

CAPITULO 1 ............................................................................................................... 1

1.1 Introducción ................................................................................................... 1

1.2 Planteamiento del problema .......................................................................... 2

1.3 Justificación ................................................................................................... 3

1.4 Hipótesis ........................................................................................................ 4

1.5 Objetivos ....................................................................................................... 4

1.5.1 Objetivo General .................................................................................... 4

1.5.2 Objetivos Específicos ............................................................................. 4

1.6 Alcance .......................................................................................................... 5

CAPITULO 2 ............................................................................................................... 6

2.1 Aplicaciones de una sola Página (SPA) ........................................................ 6

2.2 REST ............................................................................................................. 8

2.2.1 Servicios Web RESTful ........................................................................... 10

2.2.2 URIs ..................................................................................................... 10

2.2.2.1 URIs CRUD ..................................................................................... 11

2.2.2.2 URIs Relacionales ............................................................................ 11

2.2.2.3 URIs No CRUD ................................................................................ 12

2.2.2.4 URIs para filtros ............................................................................... 12

2.2.2.5 URIs para ordenamiento ................................................................... 13

2.2.2.6 URIs para búsqueda .......................................................................... 13

2.2.2.7 URIs alias ......................................................................................... 13

2.2.2.8 URIs para recupera por campos ....................................................... 14

2.2.2.9 URIs para paginación ....................................................................... 14

2.3 Autenticación basada en Tokens ................................................................. 15

2.4 JSON Web Tokens (JWT) ........................................................................... 16

2.5 El Stack Spring MVC - AngularJS .............................................................. 18

2.5.1 Frontend - AngularJS ............................................................................... 18

2.5.2 Backend – Spring MVC ........................................................................... 19

CAPITULO 3 ............................................................................................................. 20

1.1 Metodología de Desarrollo .......................................................................... 20

1.1.1 Ventajas del modelo espiral ................................................................. 22

1.1.2 Desventajas del modelo espiral ............................................................ 22

CAPITULO 4 ............................................................................................................. 23

xi

Análisis y descripción de la aplicación ...................................................................... 23

4.1 Actores ......................................................................................................... 23

4.2 Casos de uso ................................................................................................ 23

4.2.1 Caso de uso Identificarse ......................................................................... 24

4.2.2 Caso de uso Buscar Historia Clínica........................................................ 24

4.2.3 Caso de uso Ver Citas Agendadas ........................................................... 25

4.2.4 Caso de uso Ver Historial Clínico ........................................................... 25

4.2.5 Caso de uso Ver Información Personal.................................................... 26

4.2.6 Caso de uso Ver Antecedentes Familiares ............................................... 26

4.2.7 Caso de uso Ver Antecedentes Personales .............................................. 26

4.2.8 Caso de uso Ver Formulario Historia Clínica .......................................... 27

4.2.9 Caso de uso Imprimir Historia Clínica .................................................... 27

4.2.10 Caso de uso Crear Episodio ..................................................................... 28

4.2.11 Caso de uso Buscar Episodio ................................................................... 28

4.2.12 Caso de uso Ver Episodio ........................................................................ 29

4.2.13 Caso de uso Ingresar Motivo de Consulta ............................................... 30

4.2.14 Caso de uso Ingresar Enfermedad Actual ................................................ 30

4.2.15 Caso de uso Ingresar Revisión Actual ..................................................... 31

4.2.16 Caso de uso Ingresar Examen Físico ....................................................... 31

4.2.17 Caso de uso Ingresar Diagnósticos .......................................................... 32

4.2.18 Caso de uso Ingresar Planes..................................................................... 32

4.2.19 Caso de uso Ingresar Evolución y Prescripciones: .................................. 33

4.2.20 Caso de uso Ver Gráficas......................................................................... 33

4.2.21 Caso de uso Crear Usuario....................................................................... 34

4.2.22 Caso de uso Gestionar Catálogos............................................................. 35

4.2.23 Caso de uso Ver Registros Auditoria ....................................................... 35

4.3 Diagramas de Secuencia .............................................................................. 36

4.3.1 Diagrama de secuencia Crear Usuario ..................................................... 36

4.3.2 Diagrama de secuencia Identificarse ....................................................... 36

4.3.3 Diagrama de secuencia Buscar Historia Clínica ...................................... 37

4.3.4 Diagrama de secuencia Gestionar Formulario Historia Clínica .............. 38

4.3.5 Diagrama de secuencia Historial Clínico ................................................. 39

4.3.6 Diagrama de secuencia Gestionar Catálogos ........................................... 40

4.4 Arquitectura de la aplicación ....................................................................... 41

4.4.1 Servicios RESTful ................................................................................... 45

xii

4.5 Funcionamiento de la aplicación ................................................................. 52

4.5.1 Ingreso a la aplicación: ............................................................................ 52

4.5.2 Pantalla de inicio:..................................................................................... 52

4.5.3 Menú Citas ............................................................................................... 53

4.5.3.1 Buscar Historia: ................................................................................ 53

4.5.3.2 Citas Agendadas ............................................................................... 53

4.5.4 Información Personal ............................................................................... 54

4.5.5 Antecedentes Familiares: ......................................................................... 55

4.5.6 Antecedentes Personales: ......................................................................... 57

4.5.7 Formulario Historial Clínico:................................................................... 58

4.5.8 Gráficas de Crecimiento .......................................................................... 64

4.5.8.1 Circunferencia Cefálica (Puntaje Z) ................................................. 64

4.5.8.2 Circunferencia Cefálica (Percentiles) ............................................... 65

4.5.8.3 Longitud / Estatura (Puntaje Z) ........................................................ 65

4.5.8.4 Longitud / Estatura (Percentiles) ...................................................... 66

4.5.8.5 Peso (Puntaje Z) ............................................................................... 66

4.5.8.6 Peso (Percentiles) ............................................................................. 66

4.5.9 Menú Entidades ....................................................................................... 67

4.5.9.1 Personas ............................................................................................ 68

4.5.9.2 Historia Clínica ................................................................................. 68

4.5.9.3 Países ................................................................................................ 69

4.5.9.4 Provincias ......................................................................................... 69

4.5.9.5 Cantones ........................................................................................... 69

4.5.9.6 Catálogos .......................................................................................... 70

4.5.10 Menú Administración .............................................................................. 74

4.5.11 Menú Cuenta ............................................................................................ 74

4.5.11.1 Ajustes .............................................................................................. 74

4.5.11.2 Contraseña ........................................................................................ 75

4.5.11.3 Cerrar Sesión .................................................................................... 75

4.5.12 Idioma ...................................................................................................... 75

CAPITULO 5 ............................................................................................................. 76

Conclusiones y recomendaciones ........................................................................... 76

Conclusiones .......................................................................................................... 76

Recomendaciones ................................................................................................... 78

GLOSARIO DE TÉRMINOS .................................................................................... 80

xiii

BIBLIOGRAFÍA ....................................................................................................... 83

Libros ...................................................................................................................... 83

Páginas Web ........................................................................................................... 83

ANEXOS ................................................................................................................... 84

Anexo 1. Manual Técnico .......................................................................................... 85

Modelo Entidad Relación ....................................................................................... 85

Persona y Reservaciones ..................................................................................... 85

Historial Clínico .................................................................................................. 86

Episodios ............................................................................................................. 87

Catálogos ............................................................................................................ 88

Auditoria ............................................................................................................. 89

Seguridades y Permisos ...................................................................................... 89

DICCIONARIO DE DATOS ................................................................................. 90

GN_PERSONA .................................................................................................. 90

TN_RESERVACION ......................................................................................... 91

HS_HISTORIA_CLINICA ................................................................................ 91

FAMILYHISTORY ............................................................................................ 91

PERSONALHISTORY ...................................................................................... 92

VITALSIGN ....................................................................................................... 92

CLINICHISTORYADDINF ............................................................................... 92

EPISODE ............................................................................................................ 93

CURRENTILLNESS .......................................................................................... 93

CURRENTREVISION ....................................................................................... 93

DIAGNOSTIC .................................................................................................... 94

EVOLUTIONPRESCRIPTION ......................................................................... 94

PHYSICALEXAM ............................................................................................. 94

PLANS ................................................................................................................ 95

REASON ............................................................................................................ 95

TABLA ............................................................................................................... 95

CATALOG ......................................................................................................... 95

ICD10.................................................................................................................. 96

COUNTRY ......................................................................................................... 96

PROVINCIA ....................................................................................................... 96

CANTON ............................................................................................................ 96

JHI_AUTHORITY ............................................................................................. 96

xiv

JHI_USER .......................................................................................................... 97

JHI_USER_AUTHORITY ................................................................................. 97

JHI_PERSISTENT_AUDIT_EVENT ................................................................ 97

JHI_PERSISTENT_AUDIT_EVT_DATA ........................................................ 98

Anexo 2. Manual de Instalación ................................................................................ 99

Instalación de SQL SERVER 2008 R2 .................................................................. 99

Crear la base de datos fimeped ......................................................................... 104

Firewall de Windows ........................................................................................ 105

Instalar JDK (Java Development Kit) .................................................................. 108

Configuración de variables de entorno ............................................................. 110

Instalar Git ............................................................................................................ 112

Instalar NodeJS: .................................................................................................. 113

Instalar Bower: ..................................................................................................... 114

Configurar Maven ................................................................................................ 115

Configurar IDE Eclipse ........................................................................................ 117

Configurar JDK en el IDE eclipse .................................................................... 118

Confingurar maven en el IDE Eclipse .............................................................. 120

Anexo 3. Manual de Ejecución en modo Desarrollo ............................................... 122

Anexo 4. Manual de Ejecución en modo Producción .............................................. 128

xv

Lista de Figuras

Ilustración 1: Aplicaciones SPA .................................................................................. 7

Ilustración 2: Aplicaciones SPA Capas........................................................................ 8

Ilustración 3: Arquitectura REST................................................................................. 9

Ilustración 4: Autenticación basada en Tokens .......................................................... 16

Ilustración 5: Token ................................................................................................... 18

Ilustración 6: Spring MVC - AngularJS..................................................................... 18

Ilustración 7: Modelo en Espiral ................................................................................ 21

Ilustración 8: Casos de Uso ........................................................................................ 23

Ilustración 9: Crear Usuario ....................................................................................... 36

Ilustración 10: Identificarse........................................................................................ 37

Ilustración 11: Buscar Historia Clínica ...................................................................... 38

Ilustración 12: Gestionar Formulario Historia Clínica............................................... 39

Ilustración 13: Historial Clínico ................................................................................. 40

Ilustración 14: Gestionar Catálogos ........................................................................... 41

Ilustración 15: Arquitectura de la Aplicación ............................................................ 42

Ilustración 16: Template HTML5 .............................................................................. 43

Ilustración 17: Controlador AngularJS ...................................................................... 43

Ilustración 18: Servicio AngularJS ............................................................................ 44

Ilustración 19: Servicio RESTful ............................................................................... 45

Ilustración 20: JpaRepository ..................................................................................... 45

Ilustración 21: Ingreso a la aplicación ....................................................................... 52

Ilustración 22: Pantalla Inicio .................................................................................... 52

Ilustración 23: Menú Citas ......................................................................................... 53

Ilustración 24: Búsqueda de Historias Clínicas ......................................................... 53

Ilustración 25: Citas Agendadas ................................................................................ 53

Ilustración 26: Información Personal ......................................................................... 54

Ilustración 27: Antecedentes Familiares .................................................................... 55

Ilustración 28: Crear Antecedente Familiar ............................................................... 55

Ilustración 29: Editar Antecedente Familiar .............................................................. 56

Ilustración 30: Eliminar Antecedente Familiar .......................................................... 56

Ilustración 31: Antecedentes Personales .................................................................... 57

Ilustración 32: Crear Antecedente Personal ............................................................... 57

Ilustración 33: Editar Antecedente Personal .............................................................. 57

Ilustración 34: Eliminar Antecedente Personal .......................................................... 58

Ilustración 35: Formulario Historial Clínico .............................................................. 58

Ilustración 36: Menú Formulario Historial Clínico ................................................... 59

Ilustración 37: Buscar Episodio ................................................................................. 59

Ilustración 38: Crear Episodio ................................................................................... 59

Ilustración 39: Reporte Historial Clínico ................................................................... 60

Ilustración 40: Motivo de Consulta ............................................................................ 61

Ilustración 41: Enfermedad Actual ............................................................................ 61

Ilustración 42: Revisión Actual .................................................................................. 61

Ilustración 43: Examen Físico .................................................................................... 62

Ilustración 44: Diagnósticos ....................................................................................... 62

xvi

Ilustración 45: CIE 10 ................................................................................................ 63

Ilustración 46: Planes ................................................................................................. 63

Ilustración 47: Evolución y Prescripciones ................................................................ 64

Ilustración 48: Gráfica Circunferencia Cefálica Puntaje Z ........................................ 64

Ilustración 49: Gráfica Circunferencia Cefálica Percentiles ...................................... 65

Ilustración 50: Gráfica Longitud/Estatura Puntaje Z ................................................. 65

Ilustración 51: Gráfica Longitud/Estatura Percentiles ............................................... 66

Ilustración 52: Gráfica Peso Puntaje Z....................................................................... 66

Ilustración 53: Gráfica Peso Percentiles .................................................................... 67

Ilustración 54: Entidades ............................................................................................ 67

Ilustración 55: Personas ............................................................................................. 68

Ilustración 56: Historiales Clínicos ............................................................................ 68

Ilustración 57: Catálogo Países .................................................................................. 69

Ilustración 58: Catálogo Provincias ........................................................................... 69

Ilustración 59: Catálogo Cantones ............................................................................. 69

Ilustración 60: Catálogos............................................................................................ 70

Ilustración 61: Catálogo Diagnósticos ....................................................................... 70

Ilustración 62: Catálogo Antecedente Personales Actividades .................................. 70

Ilustración 63: Catálogo Antecedentes Familiares Enfermedades ............................. 71

Ilustración 64: Catálogo Revisión Actual Con Evidencia Sin Evidencia .................. 71

Ilustración 65: Catálogo Revisión Actual Órganos .................................................... 72

Ilustración 66: Catálogo Examen Físico Partes Del Cuerpo ...................................... 72

Ilustración 67: Catálogo Género ................................................................................ 73

Ilustración 68: Catálogo Nivel de Educación ............................................................ 73

Ilustración 69: Catálogo Estado Civil ........................................................................ 73

Ilustración 70: Menú Administración ........................................................................ 74

Ilustración 71: Menú Cuenta ...................................................................................... 74

Ilustración 72: Ajustes de Usuario ............................................................................. 74

Ilustración 73: Cambiar Contraseña ........................................................................... 75

Ilustración 74: Menú Lenguaje .................................................................................. 75

Ilustración 75: Entidad Relación Personas y Reservaciones...................................... 85

Ilustración 76: Entidad Relación Historial Clínico .................................................... 86

Ilustración 77: Entidad Relación Episodios ............................................................... 87

Ilustración 78: Entidad Relación Catálogo Países ..................................................... 88

Ilustración 79: Entidad Relación Catálogos ............................................................... 88

Ilustración 80: Entidad Relación Auditoria................................................................ 89

Ilustración 81: Entidad Relación Seguridades y Permisos ......................................... 89

Ilustración 82: Nueva instalación SQL Server ........................................................... 99

Ilustración 83: Reglas de Instalación SQL Server ..................................................... 99

Ilustración 84: Selección de Características ............................................................. 100

Ilustración 85: Requisitos de espacio en disco ......................................................... 100

Ilustración 86: Configuración del servidor .............................................................. 101

Ilustración 87: Configuración del motor de base de datos ....................................... 101

Ilustración 88: Inicio de la instalación ..................................................................... 102

Ilustración 89: Instalación Completada .................................................................... 102

Ilustración 90: Ubicación del administrador de SQL Server ................................... 103

Ilustración 91: Iniciar sesión SQL Server ................................................................ 103

xvii

Ilustración 92: Menú contextual crear base de datos ............................................... 104

Ilustración 93: Nueva base de datos ......................................................................... 104

Ilustración 94: Firewall de Windows ....................................................................... 105

Ilustración 95: Reglas del Firewall de Windows ..................................................... 105

Ilustración 96: Elección de puerto en la regla de firewall ........................................ 105

Ilustración 97: Selección protocolo en regla de firewall .......................................... 106

Ilustración 98: Selección tipo de conexión en regla de firewall .............................. 106

Ilustración 99: Selección cuando se aplica la regla en firewall ............................... 107

Ilustración 100: Nombre de la regla ......................................................................... 107

Ilustración 101: Instalar JDK ................................................................................... 108

Ilustración 102: Instalar JRE .................................................................................... 108

Ilustración 103: Instalación de JDK y JRE exitosa .................................................. 109

Ilustración 104: Directorio de instalación del JDK y JRE ....................................... 109

Ilustración 105: Ventana de propiedades del sistema .............................................. 110

Ilustración 106: Variable de entorno ........................................................................ 110

Ilustración 107: Variable de entorno JAVA_HOME ............................................... 111

Ilustración 108: Variable de entorno JRE_HOME .................................................. 111

Ilustración 109: Variable de entorno Path ................................................................ 111

Ilustración 110: Instalación Git ................................................................................ 112

Ilustración 111: Ubicación de Git en el menú .......................................................... 112

Ilustración 112: Instalación NodeJS......................................................................... 113

Ilustración 113: Verificar versión de NodeJS y npm instaladas .............................. 113

Ilustración 114: Instalar Bower ................................................................................ 114

Ilustración 115: Instalar Karma ................................................................................ 114

Ilustración 116: Instalar karma-coverage ................................................................. 114

Ilustración 117: Instalar jasmine-core ...................................................................... 114

Ilustración 118: Crear directorio para ubicación de herramientas ........................... 115

Ilustración 119: Copiar Eclipse a directorio de herramientas .................................. 115

Ilustración 120: Configurar ubicación de Maven en variable de entorno Path ........ 115

Ilustración 121: Ubicación de archivo settings.xml de Maven ................................ 116

Ilustración 122: Repositorio local de Maven ........................................................... 116

Ilustración 123: Verificación versión de Maven instalada ....................................... 116

Ilustración 124: Copiar Maven a directorio de herramientas ................................... 117

Ilustración 125: Iniciar Eclipse ................................................................................ 117

Ilustración 126: Ubicación de workspace ................................................................ 118

Ilustración 127: JRE instalados ................................................................................ 118

Ilustración 128: Tipo de JRE ................................................................................... 119

Ilustración 129: Seleccionar ubicación del JDK ...................................................... 119

Ilustración 130: Marcar jdk como predeterminado .................................................. 120

Ilustración 131: Configuraciones de usuario de Maven ........................................... 120

Ilustración 132: Seleccionar ubicación del archivo setting.xml de Maven .............. 121

Ilustración 133: Aplicar configuraciones de Maven ................................................ 121

Ilustración 134: Copiar código fuente al area de trabajo ......................................... 122

Ilustración 135: Instalación manual de sqljdbc41.jar en el repositorio local de Maven

.................................................................................................................................. 122

Ilustración 136: Instalación de sqljdb41.jar exitosa ................................................ 123

Ilustración 137: Instalación de dependencias java ................................................... 123

xviii

Ilustración 138: Instalación de dependencias java exitosa ....................................... 124

Ilustración 139: Instalación de dependencias JavaScript ......................................... 124

Ilustración 140: Instalación de dependencias JavaScript exitosa ............................. 124

Ilustración 141: Instalación de dependencias JavaScript para el Frontend .............. 125

Ilustración 142: Instalación de dependencias JavaScript para el Frontend exitosa . 125

Ilustración 143: Importación de proyecto ................................................................ 125

Ilustración 144: Configuración de acceso a la Base de datos .................................. 126

Ilustración 145: Ejecución de la aplicación en modo desarrollo.............................. 126

Ilustración 146: Ejecución de aplicación en modo desarrollo exitosa ..................... 127

Ilustración 147: Ingreso a la aplicación en modo desarrollo.................................... 127

Ilustración 148: Ubicación de proyecto apache-tomcat ........................................... 128

Ilustración 149: Configurar variables de entorno para apache-tomcat .................... 128

Ilustración 150: Variable de entorno CATALINA_HOME..................................... 129

Ilustración 151: Configurar variable de entorno Path para apache-tomcat .............. 129

Ilustración 152: Inicio de servidor apache-tomcat ................................................... 129

Ilustración 153: Inicio de servidor apache-tomcat exitoso ...................................... 130

Ilustración 154: Pantalla de bienvenida del servidor apache-tomcat ....................... 130

Ilustración 155: Ubicación del archivo war del proyecto en el servidor apache-tomcat

.................................................................................................................................. 130

Ilustración 156: Configuración de acceso a la base de datos en modo producción . 131

Ilustración 157: Archivo de configuración de la aplicación .................................... 131

Ilustración 158: Ingreso a la aplicación en modo producción.................................. 132

xix

Lista de Tablas

Tabla 1: URIs CRUD ................................................................................................. 11

Tabla 2: URIs Relacionales ........................................................................................ 12

Tabla 3: URIs No CRUD ........................................................................................... 12

Tabla 4: URIs Filtros .................................................................................................. 12

Tabla 5: URIs Ordenamiento ..................................................................................... 13

Tabla 6: URIs Búsqueda ............................................................................................ 13

Tabla 7: URIs Alias .................................................................................................... 14

Tabla 8: URIs Campos ............................................................................................... 14

Tabla 9: URIs Paginación .......................................................................................... 14

Tabla 10: Identificarse................................................................................................ 24

Tabla 11: Buscar Historia Clínica .............................................................................. 25

Tabla 12: Ver Citas Agendadas ................................................................................. 25

Tabla 13: Ver Historial Clínico .................................................................................. 26

Tabla 14: Ver Información Personal .......................................................................... 26

Tabla 15: Ver Antecedentes Familiares ..................................................................... 26

Tabla 16: Ver Antecedentes Personales ..................................................................... 27

Tabla 17: Ver Formulario Historia Clínica ................................................................ 27

Tabla 18: Imprimir Historia Clínica ........................................................................... 28

Tabla 19: Crear Episodio ........................................................................................... 28

Tabla 20: Buscar Episodio ......................................................................................... 29

Tabla 21: Ver Episodio .............................................................................................. 30

Tabla 22: Ingresar Motivo de Consulta ...................................................................... 30

Tabla 23: Ingresar Enfermedad Actual ...................................................................... 31

Tabla 24: Ingresar Revisión Actual ........................................................................... 31

Tabla 25: Ingresar Examen Físico.............................................................................. 32

Tabla 26: Ingresar Diagnósticos................................................................................. 32

Tabla 27: Ingresar Planes ........................................................................................... 33

Tabla 28: Ingresar Evolución y Prescripciones .......................................................... 33

Tabla 29: Ver Gráficas ............................................................................................... 34

Tabla 30: Crear Usuario ............................................................................................. 35

Tabla 31: Gestionar Catálogos ................................................................................... 35

Tabla 32: Ver Registros Auditoria ............................................................................. 36

Tabla 33: RESTful Cuentas ....................................................................................... 46

Tabla 34: RESTful Usuarios ..................................................................................... 46

Tabla 35: RESTful Tablas ......................................................................................... 46

Tabla 36: RESTful Catálogos ................................................................................... 47

Tabla 37: RESTful Cantones .................................................................................... 47

Tabla 38: RESTful Provincias .................................................................................. 47

Tabla 39: RESTful Países .......................................................................................... 47

Tabla 40: RESTful Personas ..................................................................................... 48

Tabla 41: RESTful Historias Clínicas ....................................................................... 48

Tabla 42: RESTful Episodios ................................................................................... 48

Tabla 43: RESTful Antecedentes Personales ............................................................ 49

Tabla 44: RESTful Antecedentes Familiares ............................................................. 49

xx

Tabla 45: RESTful Signos Vitales ............................................................................ 49

Tabla 46: RESTful Motvos de Consulta ................................................................... 50

Tabla 47: RESTful Enfermedad o Problema Actual ................................................. 50

Tabla 48: RESTful Revisión Actual de Órganos y Sistemas .................................... 50

Tabla 49: RESTful Examen Físico ........................................................................... 50

Tabla 50: RESTful Diagnósticos ............................................................................... 51

Tabla 51: RESTful Planes ......................................................................................... 51

Tabla 52: RESTful Evolución y Prescripciones........................................................ 51

Tabla 53: GN_PERSONA.......................................................................................... 91

Tabla 54: TN_RESERVACION ................................................................................ 91

Tabla 55: HS_HISTORIA_CLINICA ....................................................................... 91

Tabla 56: FAMILYHISTORY ................................................................................... 91

Tabla 57: PERSONALHISTORY.............................................................................. 92

Tabla 58: VITALSIGN .............................................................................................. 92

Tabla 59: CLINICHISTORIADDINF ....................................................................... 93

Tabla 60: EPISODE ................................................................................................... 93

Tabla 61: CURRENTILLNESS ................................................................................. 93

Tabla 62: CURRENTREVISION .............................................................................. 93

Tabla 63: DIAGNOSTIC ........................................................................................... 94

Tabla 64: EVOLUTIONPRESCRIPTION ................................................................ 94

Tabla 65: PHYSICALEXAM .................................................................................... 94

Tabla 66: PLANS ....................................................................................................... 95

Tabla 67: REASON ................................................................................................... 95

Tabla 68: TABLA ...................................................................................................... 95

Tabla 69: CATALOG ................................................................................................ 95

Tabla 70: ICD10 ......................................................................................................... 96

Tabla 71: COUNTRY ................................................................................................ 96

Tabla 72: PROVINCIA .............................................................................................. 96

Tabla 73: CANTON ................................................................................................... 96

Tabla 74: JHI_AUTHORITY .................................................................................... 96

Tabla 75: JHI_USER ................................................................................................. 97

Tabla 76: JHI_USER_AUTHORITY ........................................................................ 97

Tabla 77: JHI_PERSISTENT_AUDIT_EVENT ....................................................... 97

Tabla 78: JHI_PERSISTENT_AUDIT_EVT_DATA ............................................... 98

xxi

RESUMEN

DIGITALIZACIÓN Y AUTOMATIZACIÓN DE LA GESTIÓN DE HISTORIAS

CLÍNICAS PEDIÁTRICAS EN EL HOSPITAL DEL DÍA DE LA UNIVERSIDAD

CENTRAL DEL ECUADOR MEDIANTE EL DISEÑO Y CONSTRUCCIÓN DE

UNA APLICACIÓN WEB

El presente trabajo de graduación muestra el desarrollo de una aplicación web SPA

(Aplicación de una sola página) con un diseño responsivo, permitiendo que los

componentes visuales se adapten a diferentes tamaños de pantalla de distintos

dispositivos. El Backend consiste de una API RESTful con autenticación basada en

Tokens lo que facilita la escalabilidad de la aplicación.

El sistema permite la gestión de fichas médicas pediátricas en formato digital

facilitando tareas como búsqueda, almacenamiento y portabilidad. Permite llevar el

control de los antecedentes personales y antecedentes familiares, el control de

gráficas de crecimiento: circunferencia cefálica, longitud/altura y peso tanto en

percentiles como en puntaje Z para niños y niñas desde el nacimiento hasta los cinco

años de edad y el almacenamiento ordenado por episodios de la información

requerida para la elaboración del historial clínico.

Para el desarrollo de la aplicación web se han utilizado todos los conocimientos

adquiridos a lo largo de la carrera de Ingeniería Informática en desarrollo de

software, patrones de diseño, arquitectura de software, bases de datos, además de

haber realizado un estudio de la arquitectura REST, un estilo de arquitectura de

software que se fundamente en las especificaciones del protocolo HTTP.

DESCRIPTORES:

GESTIÓN DE HISTORIAS CLÍNICAS PEDIATRICAS / JAVA / SPRING / REST

/ JAVASCRIPT / ANGULARJS / BOOTSTRAP / SPA / SQL SERVER /

AUTENTICACIÓN BASADA EN TOKEN

xxii

ABSTRACT

SCANNING AND AUTOMATION OF MEDICAL RECORDS MANAGEMENT

IN PEDIATRIC HOSPITAL DAY CENTRAL UNIVERSITY OF ECUADOR

THROUGH THE DESIGN AND CONSTRUCTION OF A WEB APPLICATION

This graduation work shows the development of a SPA web application (Single Page

Application) with a responsive design, visual components adapt to different screen

sizes of different devices. The backend is a RESTful API with token-based

authentication which facilitates application scalability.

The system allows management of pediatric medical records in digital format

facilitating tasks such as search, storage and portability. It lets keep track of personal

history and family history, controlling growth charts: head circumference, length /

height and weight percentiles and both Z score for children from birth to five years of

age and storage ordered by episodes of the information required for the development

of the clinical history.

For the development of the Web application are used all the knowledge acquired

throughout the career of Engineering in software development, design patterns,

software architecture, databases, in addition to a study of REST a style of software

architecture that is based on the specifications of the HTTP protocol.

KEYWORDS:

MEDICAL RECORDS MANAGEMENT PEDIATRIC / JAVA / SPRING / REST /

JAVASCRIPT / ANGULARJS / BOOTSTRAP / SPA / SQL SERVER / TOKEN

BASED AUTHENTICATION

1

CAPITULO 1

1.1 Introducción

En la actualidad el desarrollo de las tecnologías de información y comunicaciones

brindan muy sorprendentes mejoras en los diferentes campos en los que pueden ser

aplicadas. En distintos campos profesionales los avances tecnológicos continúan

estableciendo puntos que marcan el antes y después del cómo se llevaba a cabo algún

proceso. Uno de estos avances es el que la información sea producida y almacenada

en la actualidad mayoritariamente en formato digital. Con el uso de diferentes

programas y accesorios diseñados para tal efecto, la información puede ser creada y

revisada rápida, dinámica y fácilmente, adicionalmente gracias al Internet puede ser

transmitida y distribuida a cualquier parte del mundo. La ininterrumpida mejora y

crecimiento en la capacidad de los dispositivos para almacenamiento en formato

digital ponen hoy en día al alcance de las personas la capacidad de almacenar miles

de millones de bytes de información de todo tipo: textos, imágenes, videos, música,

etcétera, todo a un costo económico bajo, siempre con tendencia a disminuir más, y

en un espacio mucho más reducido al que se utilizaría si se lo llevara a cabo de otra

forma.

En lo que se refiere al campo médico una de las fundamentales prácticas que se

realizan para la atención de un paciente es la manipulación del Registro Médico o

Historial Clínico que es de suma importancia para el correcto cuidado del mismo. El

Historial Clínico para efectos operativos, se entiende como el conjunto de los

formularios en los cuales se registran en forma detallada y ordenada todos los datos

relativos a la salud de una persona.

Considerando que nos encontramos en la era digital el manejo de las Historias

Clínicas de forma manual presenta muchos inconvenientes que pueden ser

minimizados y procesos que pueden ser automatizados si se lo lleva a cabo en

formato digital, significando esto la traducción o representación de un documento

físico impreso a un formato de dígitos, específicamente en sistema binario, y que

puede ser almacenado de esta forma en dispositivos diseñados para tal efecto,

2

facilitando de esta manera su almacenamiento y preservación en el tiempo, además

de poder realizar la automatización y optimización de procesos para efectos tales

como: ordenamiento, búsqueda, transmisión y demás características relacionadas con

su gestión.

1.2 Planteamiento del problema

El “Hospital del Día” de la Universidad Central del Ecuador es una institución

médica al servicio de la comunidad y se encuentra ubicado en las instalaciones del

edificio de la ex residencia universitaria, brinda atención tanto a estudiantes

matriculados, docentes, empleados y público en general.

Entre las distintas especialidades médicas que ofrece esta institución se encuentra la

especialidad de pediatría, dentro de esta área el manejo de ciertas actividades

relacionadas con la atención del paciente se las realiza de forma manual lo que

implica inconvenientes que pueden ser minimizados.

Entre las distintas actividades que se realizan de forma manual se pueden mencionar

las siguientes:

Asignación de Turnos

Manipulación de las Historias Clínicas en papel y cajones haciendo difícil su

manipulación en grandes volúmenes.

Ordenamiento de las fichas de los pacientes.

Gráficas de evolución de crecimiento en niños y adolescentes.

Búsqueda y actualización de Historias Clínicas lo que implica dificultad y

retraso de tiempo.

En el área de pediatría las Historias Clínicas son un recurso que adquiere una muy

alta importancia para el ejercicio médico pediátrico al ser un conjunto de soportes

que sirven para la recolección, transmisión y conservación de la información relativa

al estado de salud o de enfermedad del niño o adolecente atendido en el centro de

salud. Constituye además el eje principal y una herramienta fundamental para el

médico en el seguimiento del crecimiento y desarrollo de un paciente en edad

pediátrica.

3

Es un documento que tiene que cumplir con múltiples requisitos: registro

secuencial, permitir la docencia y comunicación, ser fuente de control de calidad,

proporcionar recursos para realizar investigación clínica, por citar estos entre los más

importantes.

Para esto se requiere que los diferentes formularios que componen la Historia Clínica

tengan un formato preestablecido de acuerdo a estudios previos que aseguren el

correcto registro de la información y que cuente con un estándar unificado que se

maneje entre los médicos de una región.

Citando estos antecedentes se puede mencionar que la realización de ciertas

actividades para atención al paciente y el manejo del Historial Clínico de forma

manual y en papel en el área de pediatría del “Hospital del Día” implica procesos que

pueden ser optimizados y automatizados contribuyendo a mejorar el servicio que allí

se brinda.

1.3 Justificación

Al realizarse la supervisión de salud a un niño o adolecente en un espacio de tiempo

limitado, el pediatra enfrenta el desafío de formular un diagnóstico del niño y su

familia lo más certero posible. El historial clínico pediátrico no es ni debe ser un

acumulo de datos sin conexión, debe ser una fuente de información disponible de

forma ordenada y accesible en cualquier momento y lugar con las respectivas

seguridades de acceso al mismo.

Es un documento de suma importancia para el registro de la experiencia entre el

médico y el paciente, mucho más aun con pacientes en edad pediátrica, por lo que se

requiere de un apropiado manejo del mismo mediante una metodología de registro y

análisis que reúna la información dentro de un contexto médico legal.

El manejo de Historias Clínicas de los pacientes de forma manual es ineficiente

desde muchos puntos de vista, estas pueden ser almacenadas en formato digital

facilitando su localización y ordenamiento, favoreciendo el uso adecuado de

recursos, contribuyendo a un ahorro de tiempo y espacio significativamente grande,

así como el mejoramiento continuo en la atención a los pacientes.

4

La progresiva complejidad en la gestión de servicios de salud y los avances en la

informática exigen también la implantación de nuevos modelos de atención y gestión

que se apoyen en sistemas documentales de información y registros que permitan un

monitoreo y evaluación dinámicos de las actividades de salud utilizando los datos

obtenidos de la práctica clínica.

El desarrollo de un sistema informático para el manejo de Historias Clínicas brinda

este dinamismo en la monitorización y evaluación de los pacientes, contribuye al

manejo eficiente de recursos, asegura mejor precisión en la obtención y generación

de información y conocimiento sobre el cuidado de los pacientes y facilita el

intercambio de esta información brindando mejor calidad en la atención médica.

El desarrollo del presente proyecto beneficia de forma directa al área de pediatría del

hospital del día en su labor diaria de servicio, como también a los estudiantes,

docentes y pacientes en general que reciben atención médica en este sitio.

1.4 Hipótesis

El área de pediatría del Hospital Del Día de la Universidad Central del Ecuador

requiere de la digitalización, actualización y automatización del manejo de Historias

Clínicas Pediátricas considerando las más recientes especificaciones establecidas por

el ministerio de salud pública del Ecuador.

1.5 Objetivos

1.5.1 Objetivo General

Diseñar una aplicación web para la gestión y administración de Historias Clínicas

Pediátricas en el “Hospital del Día” de la Universidad Central del Ecuador.

1.5.2 Objetivos Específicos

5

Construir una interfaz gráfica, dinámica y amigable para el usuario accesible

a través de la web para el manejo de Historias Clínicas Pediátricas.

Diseñar un programa para la construcción de gráficas de curvas de evolución

comparativas mediante percentiles y desviación estándar para niños

diferenciando su sexo y edad. Se detalla en el alcance del proyecto las

gráficas a considerarse.

Implementar el registro de las Historias Clínicas Pediátricas en formato

digital de acuerdo a las más recientes especificaciones del ministerio de salud

pública del Ecuador respecto al marco conceptual y formularios básicos

rediseñados de la Historia Clínica única.

Diseñar la base de datos para el almacenamiento de la información que

asegure integridad, eficiencia y eficacia en el manejo de datos.

1.6 Alcance

El alcance del presente proyecto contempla los siguientes puntos:

La realización de un sistema informático web que implemente la

funcionalidad para la gestión de Historias Clínicas Pediátricas.

Para la implementación de la funcionalidad del sistema se considerará la guía

para análisis y discusión de un caso médico, detallada en el Expediente Único

para la Historia Clínica elaborado por el ministerio de salud Aprobado

mediante Resolución del Directorio del Consejo Nacional de Salud del

Ecuador del 25 de octubre del 2006.

Para estos efectos se realizará la digitalización del formulario que conforma

el historial clínico y que se encuentra descrito en el documento ya citado.

Gráficas de curvas de evolución de niños en puntaje Z y Percentiles de

acuerdo a edad y género.

Para este punto se considerará las gráficas referenciadas por la Organización

Mundial de la Salud y se listan a continuación:

6

1. Peso según edad niñas desde el nacimiento hasta los 5 años (Puntaje

Z).

2. Peso según edad niñas desde el nacimiento hasta los 5 años

(Percentiles).

3. Peso según edad niños desde el nacimiento hasta los 5 años (Puntaje

Z).

4. Peso según edad niños desde el nacimiento hasta los 5 años

(Percentiles).

5. Longitud y talla según edad niñas desde el nacimiento hasta los 5 años

(Puntaje Z).

6. Longitud y talla según edad niñas desde el nacimiento hasta los 5 años

(Percentiles).

7. Longitud y talla según edad niños desde el nacimiento hasta los 5

años (Puntaje Z).

8. Longitud y talla según edad niños desde el nacimiento hasta los 5

años (Percentiles).

9. Circunferencia cefálica según edad niñas desde el nacimiento hasta

los 5 años (Puntaje Z)

10. Circunferencia cefálica según edad niñas desde el nacimiento hasta

los 5 años (Percentiles)

11. Circunferencia cefálica según edad niños desde el nacimiento hasta

los 5 años (Puntaje Z)

12. Circunferencia cefálica según edad niños desde el nacimiento hasta

los 5 años (Percentiles)

CAPITULO 2

2.1 Aplicaciones de una sola Página (SPA)

Las aplicaciones de una sola página son aplicaciones web en las que todos los

recursos tales como HTML, archivos JavaScript, CSS, etcétera, se envían al cliente

en la carga inicial, luego de ello el intercambio de información que se realiza entre

cliente y servidor son únicamente tramas de información en algún formato especifico

7

como por ejemplo JSON o XML enviadas a través de peticiones asincrónicas, esto

brinda al usuario un escenario amigable semejante al de una aplicación de escritorio,

las páginas no se recargan completamente sino que la página principal o página de

inicio actualiza determinadas porciones de sí misma, esto es posible realizarlo hoy en

días gracias a nuevas tecnologías que han ido evolucionando a través del tiempo

tales como HTML5, el lenguaje de programación JavaScript, AJAX, Frameworks de

programación como AngularJS entre otras.

Visto desde otro sentido una SPA es la interfaz de una aplicación Web que se

encuentra implementada íntegramente en el lado del cliente o dicho de otra manera

en el browser, todas las vistas de la aplicación están contenidas dentro de una página

principal cargadas en una sola petición al servidor, esto reduce por completo el ancho

de banda y tiempo de proceso ya que se gestiona el estado de la aplicación desde el

lado del cliente.

En una aplicación de este tipo el tiempo de respuesta es mucho más rápido que el de

una aplicación web tradicional, esto debido entre otros aspectos a que al recargar una

página no se envía todo el archivo HTML sino únicamente la información necesaria

para actualizar el contenido.

Ilustración 1: Aplicaciones SPA

Fuente: Web

En las aplicaciones SPA se transporta algunas de las responsabilidades que en una

aplicación web tradicional se encuentran en el servidor hacia el cliente, el código en

el servidor se usa básicamente para proveer de una API RESTful, esto implica menor

8

carga de trabajo en el lado del servidor permitiendo atender a más clientes en menos

tiempo, adicionalmente se tiene una mejor experiencia de usuario evitando recargas

innecesarias y una interacción con la web en tiempo real.

Ilustración 2: Aplicaciones SPA Capas

Fuente: Web

Sin embargo aunque en este tipo de aplicaciones se cuenta con muchas ventajas

también se tienen desventajas entre ellas el que la lógica de negocio sea transportada

al lado del cliente permitiendo que cualquier persona pueda tener acceso al código

fuente, por lo que es necesario reforzar la seguridad además de realizar la

minificación y ofuscación de código, también se debe tener en cuenta que de esta

manera va a trabajar mayormente el browser ocupando gran cantidad de memoria

RAM y procesamiento de la máquina cliente.

2.2 REST

REST son las siglas en inglés de Representational State Transfer, es un tipo de

arquitectura de desarrollo web que se apoya en el estándar HTTP. El término se

originó en el año 2000 al ser mencionado en una tesis doctoral escrita por Roy

Fielding quien además es uno de los principales autores de la especificación del

protocolo HTTP.

REST permite crear servicios que pueden ser consumidos por cualquier aplicación o

dispositivo, esta arquitectura cumple con los siguientes principios:

9

Arquitectura cliente/servidor.- La separación entre el cliente y el servidor

debe ser clara y concisa, el cliente realiza peticiones al servidor y éste

responde ninguno de los dos debe mantener información que dependa del

otro.

Stateless.- Cada petición realizada por el cliente es independiente una de otra,

el servidor no almacena ningún tipo de información concerniente al estado.

Cache.- Esta norma implica que el servidor debe definir alguna forma de

cachear las peticiones que realizan los clientes, para aumentar el rendimiento,

escalabilidad, etc.

Arquitectura en capas.- El sistema debe estar segmentado en capas bien

definidas que permitan que la capa cliente sea completamente independiente.

Interfaz uniforme.- Todos los servicios REST compartirán un forma de

invocación y métodos uniformes entendidos tanto por el cliente como por el

servidor.

Ilustración 3: Arquitectura REST

Fuente: Web

Para la lograr esta arquitectura se podría construir un protocolo que cumpla los

principios descritos anteriormente, sin embargo no es necesario construirlo puesto

que ya existe, este protocolo es HTTP por sus siglas en inglés Hipetertext Transfer

Protocol, REST logra satisfacer los 5 principios listados anteriormente basándose en

el estándar HTTP aplicando cuatro restricciones:

Identificación de recursos.- Las aplicaciones REST deben poder identificar

sus recursos de manera uniforme, HTTP implementa esto usando las llamadas

URIs. Esta identificación del recurso no incluye la representación del mismo.

Recursos y representaciones.- HTTP define distintas cabeceras de tipos, y un

contenido en la respuesta, por lo que las aplicaciones pueden enviar el

contenido en el formato que deseen tales como XML, JSON, etcétera.

10

Mensajes auto descriptivos.- HTTP implementa esto a través del estado y una

serie de cabeceras, el cómo se usen estos estados y cabeceras depende de la

implementación del sistema.

Hipermedia.- El servidor debe incluir en sus respuestas toda aquella

información que requiere el cliente para seguir operando.

2.2.1 Servicios Web RESTful

Un servicio web RESTful hace referencia a un servicio web que implementa la

arquitectura REST y debe contener lo siguiente:

URI del recurso.- La URI del recurso al que se va hacer referencia. Ejemplo:

/api/recurso

El tipo de representación.- Se especifica en el Header de la respuesta HTTP

por ejemplo Content-type:application/json indicaría que la representación del

recurso es en formato JSON.

Operaciones soportadas.- HTTP define varias operaciones entre las más

usadas: GET, POST, PUT, DELETE que generalmente se usan para realizar

operaciones CRUD con un recurso.

Hipervínculos.- En la respuesta del servidor se puede incluir hipervínculos

hacia otras acciones que se puedan realizar sobre el recurso, normalmente se

incluyen en el mismo contenido de la respuesta, por ejemplo, si la respuesta

está representada en formato JSON, se puede agregar una propiedad con los

hipervínculos a las demás acciones que se pueden realizar con el recurso.

2.2.2 URIs

Se diferencian dos tipos de URI las URI RESTful y las URI no RESTful. Una URI

RESTful se usa para identificar un recurso de dominio (como un libro, un cliente o

cualquier entidad en una aplicación) a diferencia de una URI no RESTful que

identifica un recurso de aplicación (como una página web o una imagen de la

aplicación). Algunas consideraciones que se deben tener en cuenta al crear una URI

RESTful se listan a continuación:

11

Cortas.- Deben ser en lo posible no muy extensas, deben ser fáciles de

escribir y de recordar.

Predictivas.- Deben describir fácilmente al recurso que identifican.

Sustantivos.- No deben contener verbos como: editar, crear, eliminar,

etcétera, la acción que realiza se especifica usando el estándar HTTP.

Minúsculas.- En lo posible deben estar escritas en minúsculas y evitar

caracteres especiales.

Plural.- En lo posible deben estar escritas en plural.

Stateless.- No deben contener información de estado.

Argumentos.- Argumentos generalmente usados en consultas son colocados

después del signo “?”.

2.2.2.1 URIs CRUD

Se usan para la especificación de acciones CRUD de un recurso.

Ejemplo:

URI Método

HTTP

Resultado

/api/personas GET Todos los pacientes

/api/personas/132580 GET Paciente con id 132580

/api/personas POST Crear paciente

/api/personas PUT Actualizar paciente

/api/personas/132580 DELETE Borrar paciente con id 132580

Tabla 1: URIs CRUD

2.2.2.2 URIs Relacionales

Se usan para acciones CRUD de recursos relacionados.

Ejemplo:

URI Método

HTTP

Resultado

/api/personas /555250/historias GET Todas las historias clínicas del

paciente con id 555250

/api/personas /555250/ historias/2560 GET La historia clínica con id 2560 del

12

paciente con id 555250

/api/personas /555250/ historias POST Crear historia clínica para el paciente

con id 555250

/api/personas /555250/ historias PUT Actualizar historia clínica para el

paciente con id 555250

/api/personas /555250/ historias/2560 DELETE Borrar historia clínica 2560 del

paciente con id 555250

Tabla 2: URIs Relacionales

2.2.2.3 URIs No CRUD

Se usan para acciones que no están relacionadas directamente con la persistencia de

un recurso.

Ejemplo:

URI Método

HTTP

Resultado

/api/personas/{id}/estado PUT Poner el estado de un paciente activo

/api/personas/{id}/estado DELETE Poner el estado de un paciente

inactivo

Tabla 3: URIs No CRUD

2.2.2.4 URIs para filtros

Se usan para realizar consultas con filtro, el estándar recomienda enviar una lista de

parámetros con los atributos y valores por los que se desea filtrar.

Ejemplo:

URI Método

HTTP

Resultado

/api/personas?estado=activo GET Todos los pacientes con estado

activo

/api/personas?estado=activo&categoría=1 GET Todos los pacientes con estado

activo y categoría igual a 1

Tabla 4: URIs Filtros

13

2.2.2.5 URIs para ordenamiento

Se usan para realizar consultas y retornar el resultado ordenado ascendente o

descendentemente, para esto el estándar recomienda enviar un parámetro sort con

una lista separada por comas de los atributos por los cuales se desea realizar el

ordenamiento, para especificar el orden descendente se antepone un signo - al

nombre del atributo, el orden ascendente se lo puede especificar implícitamente

únicamente con el nombre del atributo o explícitamente anteponiendo un signo + al

atributo.

Ejemplo:

URI Método HTTP Resultado

/api/personas?sort=-nombre,apellido GET Todos los pacientes ordenados en

forma descendente por nombre y

ascendente por apellido

/api/personas?estado=activo&sort=+nombre GET Todos los pacientes con estado

activo y ordenados por nombre

ascendentemente

Tabla 5: URIs Ordenamiento

2.2.2.6 URIs para búsqueda

Se usan para realizar búsquedas generales para ello el estándar recomienda enviar un

parámetro q con la cadena que se desea buscar.

Ejemplo:

URL Método HTTP Resultado

/api/personas?q=mora GET Todos los pacientes en los que

cualquier atributo coincida con la

cadena “mora”

Tabla 6: URIs Búsqueda

2.2.2.7 URIs alias

Se usan para asignar un alias a una consulta y no enviar parámetros.

Ejemplo:

14

URI Método HTTP Resultado

/api/personas?estado=inactivo GET Todos los pacientes con estado

inactivo

/api/personas/inactivos GET Todos los pacientes con estado

inactivo

Tabla 7: URIs Alias

2.2.2.8 URIs para recupera por campos

Se usan para especificar la lista de atributos que se desea recuperar de la entidad,

para ello el estándar recomienda enviar un parámetro fields con una lista separada

por comas de los atributos.

Ejemplo:

URI Método HTTP Resultado

/api/personas?fields=id,apellido GET Todos los pacientes pero únicamente

el id y apellido

Tabla 8: URIs Campos

2.2.2.9 URIs para paginación

Se usan para realizar consultas con paginación en el lado del servidor, el estándar

recomienda enviar dos parámetros: page que indica la página que se desea recuperar

y per_page que indica cuantos registros por página se van a recuperar,

adicionalmente el cliente web puede requerir el número total de registros existentes

en la base de datos para esto en la cabecera HTTP de respuesta se envía el atributo

XTotalCount con el número total de registros almacenados en la base de datos.

Ejemplo:

URI Método HTTP Resultado

/api/personas?page=1&per_page=50 GET Los primeros 50 pacientes, el total de

pacientes en la base de datos se envía

como un valor en la cabecera de la

respuesta HTTP

Tabla 9: URIs Paginación

15

HEADER > XTotalCount = 100

2.3 Autenticación basada en Tokens

El protocolo HTTP es un protocolo orientado a la conexión pero sin estado, esto

significa que cuando un cliente web realiza una petición al servidor éste atiende la

misma y responde al cliente sin saber nada acerca de quien hizo la petición, esto

brinda cierto grado de anonimato en las comunicaciones que se realizan en el

internet, sin embargo, también es necesario realizar algún tipo de autenticación para

que el servidor pueda obtener cierta información de quien hace la petición, esto para

poder por ejemplo responder información específica para un cliente o también para

saber si el cliente tiene o no permisos para poder recibir esa información.

Un tipo de autenticación que se ha venido desarrollando a lo largo del tiempo es la

autenticación con sesiones. Una sesión permite agrupar un grupo de peticiones

pertenecientes a un mismo cliente, el servidor otorga una sesión al cliente web y éste

le envía esta sesión en todas las demás peticiones que haga, de esta manera el

servidor puede determinar que cliente le está enviando la petición y si tiene una

sesión activa.

En este tipo de autenticación el servidor debe almacenar un registro por cada cliente

autenticado en el sistema, la lógica de autenticación está del lado del servidor,

haciendo perder cierto grado de escalabilidad en la aplicación. Por ejemplo en el caso

de contar con una aplicación web ya desarrollada y querer construirla como una

aplicación móvil habría que desarrollar un nuevo Backend, no pudiendo reutilizar el

ya existente.

Una nueva tendencia en cuanto a la autenticación en el desarrollo web es la

autenticación basada en Tokens. En este tipo de autenticación el cliente se autentica

16

en el sistema ingresando sus credenciales como usuario y contraseña o bien a través

de un proveedor como Facebook, Twitter, etcétera, desde ese momento cada nueva

petición HTTP que el cliente haga al servidor ira acompañada de un Token en el

Header. Este Token es una firma cifrada que permitirá identificar al cliente, el mismo

es almacenado en el lado del cliente como por ejemplo en localStorage o

sessionStorage. Como el Token es almacenado en el lado del cliente, en el servidor

no hay información de estado y la aplicación se vuelve totalmente escalable, se

puede consumir el mismo backend para diferentes aplicaciones tanto web como

móviles, solo hay que preocuparse por generar y descifrar Tokens en las peticiones

HTTP a través de un middleware.

Agrega también más seguridad al no utilizar cookies además podemos configurar la

autenticación para que el Token expire dentro de un lapso de tiempo y enviar un

nuevo Token o enviar un nuevo Token después de cada petición HTTP que el cliente

web realice, esto para evitar posibles clonaciones de un Token.

Como se visualiza en la siguiente imagen con la autenticación basada en Tokens no

se guarda ningún estado entre las diferentes peticiones de la aplicación y la

información puede ser consumida desde diferentes tipos de clientes:

Ilustración 4: Autenticación basada en Tokens

Fuente: Web

2.4 JSON Web Tokens (JWT)

Para la autenticación basada en Token se suele usar un objeto en formato JSON que

contiene información referente al cliente y además información del tipo de

17

encriptación que se va a usar. A éste tipo de Tokens se los conoce como JSON Web

Tokens o JWT. La definición de JSON Web Token es la siguiente:

JWT es un estándar abierto que define una manera compacta y autónoma para

asegurar la transmisión de información a través de un objeto en formato JSON.

Tomado de: www.jwt.io

Consiste de tres partes que estarán separadas por punto:

Header.- Consiste de dos partes el tipo que será JWT y el algoritmo hash que

se va a usar. Ejemplo:

{

“alg” : “HS256”,

“typ”: ”JWT”

}

Payload .- Contiene las peticiones, las mismas son sentencias sobre una

entidad y metada adicional. Hay tres tipos: reservadas, públicas y privadas.

Reservadas: Conjunto de peticiones predefinidas, no son mandatarias,

algunas son: Exp (expiración), sub(asunto), aud(audiencia) entre otras

Publicas: Son definidas por quien usa JWT.

Privadas: Peticiones personalizadas creadas para compartir información entre

las partes que están de acuerdo en usarlas.

Ejemplo:

{

"exp": "50000",

"name": "NTG",

"admin": true

}

Signature: La firma está formada por el header codificado y el payload

codificado

El Token está formado por las tres partes: Header, Payload y Signature separadas por

punto, este puede ser fácilmente transmitido. Ejemplo:

18

Ilustración 5: Token

2.5 El Stack Spring MVC - AngularJS

El stack para desarrollo de software Spring MVC – AngularJS se basa en el uso de

éstas tecnologías con el lenguaje Java en el Backend haciendo uso del framework

Spring MVC y JavaScript en el Frontend haciendo uso del framework AngularJS.

Ilustración 6: Spring MVC - AngularJS

Fuente: Web

2.5.1 Frontend - AngularJS

19

El Frontend sigue el patrón MVC se encuentra separado en capas y contiene toda la

lógica de presentación la cual está separada en la capa vista, la capa controlador y la

capa de servicios, siguiendo la arquitectura de una aplicación SPA una vez iniciada

la aplicación se cargan todos sus recursos, luego de esto únicamente tramas JSON

viajan entre el cliente y el servidor.

La capa vista, está compuesta de los diferentes archivos HTML, CSS, JavaScript y

directivas de AngularJS que representan los diferentes componentes de la interfaz

gráfica.

La capa controlador, está construida con AngularJS mediante el uso de controladores

que permiten la unión de los datos recuperados desde el Backend con la capa vista.

Una de las principales responsabilidades que recaen en la capa controlador es el de

realizar validaciones en la vista, tales como campos obligatorios, tipos de datos,

etcétera, cualquier validación realizada en la capa controlador del Frontend debe ser

replicada en la capa de servicios del Backend debido a razones de seguridad ya que

las validaciones en el Frontend pueden ser fácilmente vulneradas por personal con

algún grado de conocimiento en programación.

La capa de servicios, contiene un conjunto de servicios que permiten interactuar con

el Backend y que pueden ser inyectados en los controladores.

2.5.2 Backend – Spring MVC

El Backend consiste de una API RESTful construida mediante el uso de Spring

MVC, consiste de tres capas: capa de ruteo, capa de servicios y capa de persistencia.

La capa de ruteo, define qué servicios corresponden al URI que solicita el cliente,

también verifica que parámetros han sido enviados en la URI. Las anotaciones de

Spring MVC facilitan en gran medida la construcción del API RESTful.

Adicionalmente complementando Spring MVC con la librería Jackson se pude

retornar directamente objetos convertidos al formato JSON si futuras

configuraciones.

La capa de servicios, contiene la lógica de negocio tal como transacciones y

validaciones, escrito con el lenguaje de programación Java.

La capa de persistencia, mapea el esquema orientado a objetos con el esquema

relacional de la base de datos.

20

CAPITULO 3

1.1 Metodología de Desarrollo

Para el desarrollo de la presente aplicación web se realizó la selección de una

metodología de desarrollo de software que permita el análisis inicial de los

requerimientos funcionales y los objetivos que se quieren cumplir, análisis y

mitigación de riesgos en la construcción de la aplicación y brinde un escenario que

facilite la escalabilidad y extensibilidad del aplicativo.

El modelo en espiral se acopla a estas necesidades de desarrollo, puesto que se

distinguen cuatro fases principales:

1. Determinar o fijar los objetivos. En este paso se definen los objetivos

específicos para posteriormente identifica las limitaciones del proceso y del

sistema de software, además se diseña una planificación detallada de gestión

y se identifican los riesgos.

2. Análisis del riesgo. En este paso se efectúa un análisis detallado para cada

uno de los riesgos identificados del proyecto, se definen los pasos a seguir

para reducir los riesgos y luego del análisis de estos riesgos se planean

estrategias alternativas.

3. Desarrollar, verificar y validar. En este tercer paso, después del análisis de

riesgo, se eligen un paradigma para el desarrollo del sistema de software y se

lo desarrolla.

4. Planificar. En este último paso es donde el proyecto se revisa y se toma la

decisión si se debe continuar con un ciclo posterior al de la espiral. Si se

decide continuar, se desarrollan los planes para la siguiente fase del proyecto.

Ver fig1 anexos Con cada iteración alrededor de la espiral, se crean sucesivas

versiones del software, cada vez más completas y, al final, el sistema de

software ya queda totalmente funcional.

21

Ilustración 7: Modelo en Espiral

Fuente: Web

El modelo en espiral es considerado como un modelo evolutivo ya que combina el

modelo clásico con el diseño de prototipos. Contiene una nueva etapa que es el

análisis de riesgos, no incluida en otros modelos de desarrollo de software. Este

modelo es el indicado para desarrollar software con diferentes versiones actualizadas

como se hace con los programas modernos de PC.

El modelo en espiral es un enfoque realista del desarrollo de sistemas y de software a

gran escala. Como el software evoluciona, a medida que progresa el desarrollo

programador y cliente comprenden y reaccionan mejor ante riesgos en cada uno de

los niveles evolutivos.

Este modelo demanda una consideración directa de los riesgos técnicos en todas las

etapas del proyecto, y si se aplica adecuadamente, debe reducir los riesgos antes de

que se conviertan en problemáticos.

El modelo en espiral esta compartido en varias actividades estructurales, también

llamadas regiones de tareas:

Comunicación con el cliente: esta es una tarea requerida para establecer

comunicación entre el desarrollador y el cliente.

Planificación: esta tarea es necesaria aplicarla para poder definir los recursos,

el tiempo y otras informaciones relacionadas con el proyecto, es decir, son

todos los requerimientos.

Análisis de riesgos: esta es una de las tareas principales por lo que se aplica el

modelo en espiral, es requerida para evaluar los riesgos técnicos y otras

informaciones relacionadas con el proyecto.

22

Ingeniería: esta es una tarea necesaria ya que se requiere construir una o más

representaciones de la aplicación.

Construcción y adaptación: esta tarea es requerida en el modelo espiral

porque se necesita construir, probar, instalar y proporcionar soporte al

usuario.

Evaluación el cliente: esta también es una tarea principal, necesaria para

adquirir la reacción del cliente según la evaluación de las representaciones del

software creadas durante la etapa de ingeniería y la de implementación creada

durante la etapa de instalación.

1.1.1 Ventajas del modelo espiral

No requiere una definición completa de los requerimientos del software a desarrollar

para comenzar su funcionalidad.

En la terminación de un producto desde el final de la primera iteración es muy

factible aprobar los requisitos.

Sufrir retrasos corre un riesgo menor, porque se comprueban los conflictos

presentados tempranamente y existe la forma de poder corregirlos a tiempo.

1.1.2 Desventajas del modelo espiral

Existe complicación cuando se evalúa los riesgos.

Se requiere la participación continua por parte del cliente.

Se pierde tiempo al volver producir inicialmente una especificación completa de los

requerimientos cuando se modifica o mejora el software.

23

CAPITULO 4

Análisis y descripción de la aplicación

4.1 Actores

Para el desarrollo de la presente aplicación se identificaron los siguientes actores:

Usuario: Profesional médico que accede a la aplicación para la gestión del

historial clínico de un paciente.

Administrador: Persona que administra la aplicación tiene acceso al

mantenimiento de catálogos, creación de nuevos usuarios, revisión de

registros de auditoria así como también a la consulta y modificación de

historias clínicas.

4.2 Casos de uso

A continuación se describen los casos de uso para la aplicación:

Ilustración 8: Casos de Uso

24

4.2.1 Caso de uso Identificarse

1. Caso de uso Identificarse:

1.1 Actor principal: Usuario, Administrador

1.2 Precondición: Ninguna

1.3 Postcondición: El Usuario está autenticado

1.4 Casos de uso relacionados:

2. Escenario Principal:

2.1 El usuario ingresa su código de usuario y contraseña.

2.2 El sistema valida las credenciales.

3. Flujos Alternativos:

3.1 Si el usuario no existe se muestra mensaje de error que el usuario no

existe.

3.2 Si las credenciales no son correctas muestra mensaje de error indicando

que vuelva a digitar usuario y contraseña.

Tabla 10: Identificarse

4.2.2 Caso de uso Buscar Historia Clínica

1. Caso de uso Buscar Historia Clínica:

1.1 Actor Principal: Usuario

1.2 Precondición: El usuario se ha autenticado.

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Ver Historial Clínico

2. Escenario Principal:

2.1 El usuario ingresa los criterios de búsqueda y presiona enter o tab

2.2 El sistema muestra las coincidencias de Historias Clínicas según los

criterios de búsqueda indicados

2.3 El usuario hace clic en el identificador de la Historia Clínica que desea

visualizar

2.4 El sistema ejecuta el caso de uso Ver Historial Clínico

3. Flujos Alternativos:

3.1 Si no existe ninguna coincidencia con los criterios de búsqueda

25

ingresados se muestra una lista vacía, el usuario puede volver a realizar

la búsqueda con otros criterios.

Tabla 11: Buscar Historia Clínica

4.2.3 Caso de uso Ver Citas Agendadas

1. Caso de uso Ver Citas Agendadas:

1.1 Actor Principal: Usuario

1.2 Precondición: El usuario se ha autenticado

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Ver Historial Clínico

2. Escenario Principal:

2.1 El usuario visualiza las citas agendadas para la fecha actual ordenadas

por turno

2.2 El usuario hace clic en la cita que desea seleccionar, el sistema busca la

historia clínica asociada al paciente que reservó la cita

2.3 El sistema ejecuta el caso de uso Ver Historial Clínico

3. Flujos Alternativos: Ninguno

Tabla 12: Ver Citas Agendadas

4.2.4 Caso de uso Ver Historial Clínico

1. Caso de uso Ver Historial Clínico:

1.1 Actor Principal: Usuario

1.2 Precondición: Ninguna

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Ver Información Personal, Ver

Antecedentes Familiares, Ver Antecedentes Personales, Ver Formulario

Historia Clínica, Ver Gráficas

2. Escenario Principal:

2.1 El usuario visualiza el nombre del paciente asociado a la Historia

Clínica y el número de Historia Clínica

2.2 El usuario visualiza un menú con opciones del Historial Clínico

3. Flujos Alternativos: Ninguno

26

Tabla 13: Ver Historial Clínico

4.2.5 Caso de uso Ver Información Personal

1. Caso de uso Ver Información Personal:

1.1 Actor Principal: Usuario

1.2 Precondición: Ninguna

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Ver Historial Clínico

2. Escenario Principal:

2.1 El usuario puede visualizar la información personal del paciente

asociado a la Historia Clínica

3. Flujos Alternativos: Ninguno

Tabla 14: Ver Información Personal

4.2.6 Caso de uso Ver Antecedentes Familiares

1. Caso de uso Ver Antecedentes Familiares:

1.1 Actor Principal: Usuario

1.2 Precondición: Ninguna

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Ver Historial Clínico

2. Escenario Principal:

2.1 El usuario puede visualizar los Antecedentes Familiares del paciente

asociado a la Historia Clínica

2.2 El usuario puede crear nuevos Antecedentes Familiares

2.3 El usuario puede eliminar Antecedentes Familiares

2.4 El usuario puede editar Antecedentes Familiares

3. Flujos Alternativos: Ninguno

Tabla 15: Ver Antecedentes Familiares

4.2.7 Caso de uso Ver Antecedentes Personales

27

1. Caso de uso Ver Antecedentes Personales:

1.1 Actor Principal: Usuario

1.2 Precondición: Ninguna

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Ver Historial Clínico

2. Escenario Principal:

2.1 El usuario puede visualizar los Antecedentes Personales del paciente

asociado a la Historia Clínica

2.2 El usuario puede crear nuevos Antecedentes Personales

2.3 El usuario puede eliminar Antecedentes Personales

2.4 El usuario puede editar Antecedentes Personales

3. Flujos Alternativos: Ninguno

Tabla 16: Ver Antecedentes Personales

4.2.8 Caso de uso Ver Formulario Historia Clínica

1. Caso de uso Ver Formulario Historia Clínica:

1.1 Actor Principal: Usuario

1.2 Precondición: Ninguna

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Imprimir Historia Clínica, Buscar Episodio,

Crear Episodio

2. Escenario Principal:

2.1 El usuario puede visualizar el formulario de Historia Clínica

2.2 El usuario visualiza el menú de campos del formulario deshabilitado

primer debe crear un episodio o buscar un episodio ya existente para

modificarlo.

2.3 El usuario luego de crear o buscar un episodio navega a través del

menú de campos del formulario de Historia Clínica

3. Flujos Alternativos: Ninguno

Tabla 17: Ver Formulario Historia Clínica

4.2.9 Caso de uso Imprimir Historia Clínica

1. Caso de uso Imprimir Historia Clínica:

28

1.1 Actor Principal: Usuario

1.2 Precondición: La historia clínica debe existir en la BDD

1.3 Postcondición: Se obtiene el formulario de Historia Clínica en formato

PDF

1.4 Casos de uso relacionados: Ver Formulario Historia Clínica

2. Escenario Principal:

2.1 El usuario presiona el botón imprimir

2.2 El sistema muestra la impresión del formulario en formato PDF en una

nueva pestaña del navegador

3. Flujos Alternativos:

3.1 En caso que la Historia Clínica no tenga registrado ningún campo se

mostrará la impresión vacía.

Tabla 18: Imprimir Historia Clínica

4.2.10 Caso de uso Crear Episodio

1. Caso de uso Crear Episodio:

1.1 Actor Principal: Usuario

1.2 Precondición: Ninguna

1.3 Postcondición: Se crea un nuevo episodio asociado a la Historia Clínica

1.4 Casos de uso relacionados: Ver Formulario Historia Clínica

2. Escenario Principal:

2.1 El usuario presiona el botón Nuevo Episodio

2.2 El sistema crea un nuevo episodio asociado a la historia clínica

seleccionada

2.3 El nuevo episodio se crea con la fecha actual

2.4 El sistema ejecuta el caso de uso Ver Episodio

3. Flujos Alternativos:

3.1 Si existe error al crear el registro se muestra mensaje indicando que la

operación no pudo ser realizada.

Tabla 19: Crear Episodio

4.2.11 Caso de uso Buscar Episodio

29

1. Caso de uso Buscar Episodio:

1.1 Actor Principal: Usuario

1.2 Precondición: Ninguna

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Ver Formulario Historia Clínica

2. Escenario Principal:

2.1 El usuario presiona el botón Buscar Episodio

2.2 El sistema muestra una ventana emergente para realizar la búsqueda

2.3 El usuario ingresa fecha inicial y fecha final como criterios de

búsqueda

2.4 El sistema muestra los episodios asociado a la Historia Clínica que

coincidan con los criterios de búsqueda ingresados

2.5 El usuario selecciona la fecha del episodio que desea visualizar

2.6 El sistema ejecuta el caso de uso Ver Episodio

3. Flujos Alternativos:

3.1 Si el usuario no ingresa fecha inicial o fecha final como criterios de

búsqueda el sistema recupera todos los episodios asociados a la Historia

Clínica

Tabla 20: Buscar Episodio

4.2.12 Caso de uso Ver Episodio

1. Caso de uso Ver Episodio:

1.1 Actor Principal: Usuario

1.2 Precondición: Deber haberse seleccionado un episodio o creado uno

nuevo

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Crear Episodio, Ver Episodio, Ingresar

Motivo de Consulta, Ingresar Enfermedad Actual, Ingresar Revisión

Actual, Ingresar Examen Físico, Ingresar Diagnósticos, Ingresar Planes,

Ingresar Evolución y Prescripciones

2. Escenario Principal:

2.1 El sistema habilita el menú de campos de la Historia Clínica

2.2 El usuario navega por el menú de campos de la Historia Clínica

30

3. Flujos Alternativos:

3.1 Si no se ha seleccionado un Episodio Anterior o creado uno nuevo el

menú de campos de la Historia Clínica aparece deshabilitado

Tabla 21: Ver Episodio

4.2.13 Caso de uso Ingresar Motivo de Consulta

1. Caso de uso Ingresar Motivo de Consulta:

1.1 Actor Principal: Usuario

1.2 Precondición: Episodio existente

1.3 Postcondición: Crear un nuevo Motivo de Consulta

1.4 Casos de uso relacionados: Ver Episodio

2. Escenario Principal:

2.1 El usuario ingresa la descripción del motivo de consulta

2.2 El sistema habilita el botón de guardar

2.3 El sistema crea un nuevo motivo de consulta

2.4 El usuario puede editar un motivo de consulta

2.5 El usuario puede eliminar un motivo de consulta

3. Flujos Alternativos: Ninguno

Tabla 22: Ingresar Motivo de Consulta

4.2.14 Caso de uso Ingresar Enfermedad Actual

1. Caso de uso Ingresar Enfermedad Actual:

1.1 Actor Principal: Usuario

1.2 Precondición: Episodio existente

1.3 Postcondición: Se crea un nuevo registro enfermedad actual

1.4 Casos de uso relacionados: Ver Episodio

2. Escenario Principal:

2.1 El usuario ingresa la descripción de la enfermedad actual

2.2 El sistema habilita el botón de guardar

2.3 El sistema crea un nuevo registro de enfermedad actual

2.4 El usuario puede editar un registro de enfermedad actual

31

Tabla 23: Ingresar Enfermedad Actual

4.2.15 Caso de uso Ingresar Revisión Actual

1. Caso de uso Ingresar Revisión Actual:

1.1 Actor Principal: Usuario

1.2 Precondición: Episodio existente

1.3 Postcondición: Se crea un nuevo registro Revisión Actual

1.4 Casos de uso relacionados: Ver Episodio

2. Escenario Principal:

2.1 El usuario selecciona un registro del catálogo: órganos

2.2 El usuario selecciona un registro del catálogo: evidencia o sin evidencia

de patología

2.3 El sistema habilita el botón de guardar

2.4 El usuario puede opcionalmente ingresar una descripción de Revisión

Actual

2.5 El sistema crea un nuevo registro de Revisión Actual

2.6 El usuario puede editar un registro de Revisión Actual

2.7 El usuario puede eliminar un registro de Revisión Actual

3. Flujos Alternativos: Ninguno

Tabla 24: Ingresar Revisión Actual

4.2.16 Caso de uso Ingresar Examen Físico

1. Caso de uso Ingresar Examen Físico:

1.1 Actor Principal: Usuario

1.2 Precondición: Episodio existente

1.3 Postcondición: Se crea un nuevo registro Examen Físico

1.4 Casos de uso relacionados: Ver Episodio

2. Escenario Principal:

2.1 El usuario selecciona un registro del catálogo: partes del cuerpo

2.2 El usuario selecciona un registro del catálogo: con evidencia o sin

2.5 Se usuario puede eliminar un registro de enfermedad actual

3. Flujos Alternativos: Ninguno

32

evidencia de patología

2.3 El sistema habilita el botón de guardar

2.4 El usuario puede opcionalmente ingresar una descripción de Examen

Físico

2.5 El sistema crea un nuevo registro de Examen Físico

2.6 El usuario puede editar un registro de Examen Físico

2.7 El usuario puede eliminar un registro de Examen Físico

3. Flujos Alternativos: Ninguno

Tabla 25: Ingresar Examen Físico

4.2.17 Caso de uso Ingresar Diagnósticos

1. Caso de uso Ingresar Diagnósticos:

1.1 Actor Principal: Usuario

1.2 Precondición: Episodio existente

1.3 Postcondición: Se crea un nuevo Diagnóstico

1.4 Casos de uso relacionados: Ver Episodio

2. Escenario Principal:

2.1 El usuario selecciona un registro del catálogo: Presuntivo / Definitivo

2.2 El usuario selecciona un registro del catálogo : CIE-10 (Clasificación

Internacional de Enfermedades versión 10)

2.3 El sistema habilita el botón de guardar

2.4 El usuario puede opcionalmente ingresar una descripción del

Diagnóstico

2.5 El sistema crea un nuevo Diagnóstico

2.6 El usuario puede editar un Diagnóstico

2.7 El usuario puede eliminar un Diagnóstico

3. Flujos Alternativos: Ninguno

Tabla 26: Ingresar Diagnósticos

4.2.18 Caso de uso Ingresar Planes

1. Caso de uso Ingresar Planes:

33

1.1 Actor Principal: Usuario

1.2 Precondición: Episodio existente

1.3 Postcondición: Se crea un nuevo Plan

1.4 Casos de uso relacionados: Ver Episodio

2. Escenario Principal:

2.1 El usuario ingresa una descripción del plan de tratamiento

2.2 El sistema habilita el botón de guardar

2.3 El sistema crea un nuevo registro de plan

2.4 El usuario puede editar un Plan

2.5 El usuario puede eliminar un Plan

3. Flujos Alternativos: Ninguno

Tabla 27: Ingresar Planes

4.2.19 Caso de uso Ingresar Evolución y Prescripciones:

1. Caso de uso Ingresar Evolución y Prescripciones:

1.1 Actor Principal: Usuario

1.2 Precondición: Episodio existente

1.3 Postcondición: Se crea un nuevo registro Evolución y Prescripción

1.4 Casos de uso relacionados: Ver Episodio

2. Escenario Principal:

2.1 El usuario ingresa una descripción de evolución

2.2 El usuario ingresa una descripción de prescripción

2.3 El usuario ingresa una descripción de medicinas

2.4 El sistema crea un nuevo registro de Evolución y Prescripciones

2.5 El usuario puede editar un registro Evolución y Prescripciones

2.6 El usuario puede eliminar un registro Evolución y Prescripciones

3. Flujos Alternativos: Ninguno

Tabla 28: Ingresar Evolución y Prescripciones

4.2.20 Caso de uso Ver Gráficas

1. Caso de uso Ver Gráficas:

1.1 Actor Principal: Usuario

34

1.2 Precondición: La persona asociada a la Historia Clínica debe tener

registrada obligatoriamente información de género y fecha de

nacimiento

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Ver Formulario Historia Clínica

2. Escenario Principal:

2.1 El usuario ingresa los datos de peso en kilogramos, talla en centímetros

y circunferencia cefálica en centímetros

2.2 El sistema toma la información registrada de la persona asociada a la

Historia Clínica para calcular la edad actual en meses

2.3 El sistema crea un nuevo registro de Signos Vitales

2.4 El usuario selecciona del menú de gráficas la gráfica que desea

visualizar

2.5 El sistema muestra en una ventana emergente la gráfica seleccionada

con opciones de Percentiles o Puntaje Z, el sistema toma la información

registrada de la persona asociada a la Historia Clínica para mostrar la

gráfica de acuerdo al género.

3. Flujos Alternativos: Ninguno

Tabla 29: Ver Gráficas

4.2.21 Caso de uso Crear Usuario

1. Caso de uso Crear Usuario:

1.1 Actor Principal: Administrador

1.2 Precondición: Usuario se ha autenticado

1.3 Postcondición: Se crea un nuevo usuario

1.4 Casos de uso relacionados: Ninguno

2. Escenario Principal:

2.1 El usuario ingresa el código de usuario

2.2 El usuario ingresa el correo electrónico del nuevo usuario

2.3 El usuario digita una contraseña

2.4 El usuario confirma la contraseña

2.5 El sistema habilita el botón de crear nueva cuenta

2.6 El sistema crea una nueva cuenta

35

3. Flujos Alternativos:

3.1 En caso que no se ingrese todos los campos se muestra advertencia de

campos requeridos

3.2 Si la contraseña tiene menos de 5 dígitos se emite mensaje de error

debe tener más de 5 dígitos

3.3 Si el nuevo usuario ya existe se emite mensaje de error

Tabla 30: Crear Usuario

4.2.22 Caso de uso Gestionar Catálogos

1. Caso de uso Gestionar Catálogos:

1.1 Actor Principal: Administrador

1.2 Precondición: Usuario se ha autenticado

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Ninguno

2. Escenario Principal:

2.1 El usuario consulta los catálogos existentes

2.2 El usuario consulta los registros asociados a cada catálogo existente

2.3 El usuario puede agregar nuevos registros a un catálogo existente

2.4 El usuario puede editar un registro de un catálogo existente

2.5 El usuario puede eliminar un registro de un catálogo existente

3. Flujos Alternativos: Ninguno

Tabla 31: Gestionar Catálogos

4.2.23 Caso de uso Ver Registros Auditoria

1. Caso de uso Ver Registros Auditoria:

1.1 Actor Principal: Administrador

1.2 Precondición: Usuario se ha autenticado

36

1.3 Postcondición: Ninguna

1.4 Casos de uso relacionados: Ninguno

2. Escenario Principal:

2.1 El usuario consulta los registros de auditorio del sistema

3. Flujos Alternativos: Ninguno

Tabla 32: Ver Registros Auditoria

4.3 Diagramas de Secuencia

4.3.1 Diagrama de secuencia Crear Usuario

Ilustración 9: Crear Usuario

4.3.2 Diagrama de secuencia Identificarse

Diagrama de secuencia Crear Usuario

mostrar mensaje

enviar respuesta

mostrar mensajeenviar mensaje

petición HTTP

registrar

ok

grabarUsuario()

usuario existente

buscarUsuario()

Registrar Usuario

Adminstrador

Pantalla Registro Servicio RESTful Base de datosControlador Usuario

mostrar mensaje

enviar respuesta

mostrar mensajeenviar mensaje

petición HTTP

registrar

ok

grabarUsuario()

usuario existente

buscarUsuario()

Registrar Usuario

37

Ilustración 10: Identificarse

4.3.3 Diagrama de secuencia Buscar Historia Clínica

Diagrama de Secuencia Identificarse

renderizar pantalla de inicio

enviar respuesta

mostrar mensajeenviar mensaje

peticion HTTP

autenticar

error

ok

autenticar()

Ingresar Credenciales

Pantalla Login Servicio RESTful Base de Datos

Usuario

Contralador Cuentas

renderizar pantalla de inicio

enviar respuesta

mostrar mensajeenviar mensaje

peticion HTTP

autenticar

error

ok

autenticar()

Ingresar Credenciales

38

Ilustración 11: Buscar Historia Clínica

4.3.4 Diagrama de secuencia Gestionar Formulario Historia Clínica

Diagrama de Secuencia Buscar Historia Clínica

enviar respuesta

renderizar pantalla

petición HTTP

realizar busqueda

recuperar

consultar()

ingresa criterios búsqueda

Usuario

Pantalla Búsqueda Servicio RESTful Base de datosControlador Búsqueda

enviar respuesta

renderizar pantalla

petición HTTP

realizar busqueda

recuperar

consultar()

ingresa criterios búsqueda

39

Ilustración 12: Gestionar Formulario Historia Clínica

4.3.5 Diagrama de secuencia Historial Clínico

Diagrama de Secuencia Gestionar Formulario Historia Clínica

enviar respuesta

enviar respuesta

enviar respuesta

enviar respuesta

enviar respuesta

enviar respuesta

petición HTTP

petición HTTP

petición HTTP

petición HTTP

petición HTTP

petición HTTP

renderizar pantalla

renderizar pantalla

renderizar pantalla

renderizar pantalla

renderizar pantalla

renderizar pantalla

Ingresar Evolución Prescripcines

Ingresar Planes

Ingresar Diagnósticos

Ingresar Examen Físico

Ingresar Revisión Actual

Ingresar Enfermedad Actual

renderizar pantallaenviar respuesta

petición HTTPIngresar motivo de consulta

habilitar/deshabilitar menu

enviar respuesta

petición HTTPCrear/Buscar Episodio

CRUD Evolución Prescripciones

CRUD Planes

CRUD Diagnósticos

CRUD Examen Físico

CRUD Revisión Actual

Seleccionar Historia

CRUD Enfermedad Actual

CRUD Motivo Consulta

CRUD Episodio

Usuario

Servicio RESTful Base de datosFormulario Historia Clínica Controlador Historia Clínica

enviar respuesta

enviar respuesta

enviar respuesta

enviar respuesta

enviar respuesta

enviar respuesta

petición HTTP

petición HTTP

petición HTTP

petición HTTP

petición HTTP

petición HTTP

renderizar pantalla

renderizar pantalla

renderizar pantalla

renderizar pantalla

renderizar pantalla

renderizar pantalla

Ingresar Evolución Prescripcines

Ingresar Planes

Ingresar Diagnósticos

Ingresar Examen Físico

Ingresar Revisión Actual

Ingresar Enfermedad Actual

renderizar pantallaenviar respuesta

petición HTTPIngresar motivo de consulta

habilitar/deshabilitar menu

enviar respuesta

petición HTTPCrear/Buscar Episodio

CRUD Evolución Prescripciones

CRUD Planes

CRUD Diagnósticos

CRUD Examen Físico

CRUD Revisión Actual

Seleccionar Historia

CRUD Enfermedad Actual

CRUD Motivo Consulta

CRUD Episodio

40

Ilustración 13: Historial Clínico

4.3.6 Diagrama de secuencia Gestionar Catálogos

Diagrama de Secuencia Historial Clínico

CRUD Signos Vitales

enviar respuesta

petición HTTP

renderizar pantalla

ver gráficas

renderizar pantalla

renderizar pantalla

renderizar pantalla

renderizar pantalla

ver formulario historia clínica

enviar respuesta

enviar respuesta

enviar respuesta

petición HTTPver antecedentes familiares

petición HTTPver antecedentes familiares

petición HTTP

ver información personal

CRUD Antecedentes Personales

CRUD Antecedentes Famliares

consultar()

consultar historial

Usuario

Pantalla Historial Clínico Servicio RESTful Base de datosControlador Historial Clínico

CRUD Signos Vitales

enviar respuesta

petición HTTP

renderizar pantalla

ver gráficas

renderizar pantalla

renderizar pantalla

renderizar pantalla

renderizar pantalla

ver formulario historia clínica

enviar respuesta

enviar respuesta

enviar respuesta

petición HTTPver antecedentes familiares

petición HTTPver antecedentes familiares

petición HTTP

ver información personal

CRUD Antecedentes Personales

CRUD Antecedentes Famliares

consultar()

consultar historial

41

Ilustración 14: Gestionar Catálogos

4.4 Arquitectura de la aplicación

Diagrama de Secuencia Gestionar Catálogos

renderizar pantallaenviar respuesta

CRUD Catálogo

petición HTTPseleccionar registro

renderizar pantalla

enviar respuesta

CRUD Tablapetición HTTP

seleccionar catálogo

gestionar catálogos

Adminstrador

Pantalla Catálogos Controlador Catálogos Servicio RESTful Base de datos

renderizar pantallaenviar respuesta

CRUD Catálogo

petición HTTPseleccionar registro

renderizar pantalla

enviar respuesta

CRUD Tablapetición HTTP

seleccionar catálogo

gestionar catálogos

42

La aplicación desarrollada se basa en el estilo de una aplicación de una sola página o

SPA por sus siglas en inglés, todos los componentes de FRONTEND tales como

archivos HTML, JavaScript, CSS, etcétera son enviado en la carga inicial o primera

llamada o petición al servidor, a partir de ese momento el intercambio de

información entre el cliente y servidor serán únicamente representaciones objetos en

algún formato como JSON o XML. A continuación se muestra la arquitectura de la

aplicación que se basa en el estilo SPA con un stack Spring MVC - AngularJS:

Ilustración 15: Arquitectura de la Aplicación

Se evidencian el FrontEnd y Backend completamente independientes uno del otro, el

FrontEnd escrito en lenguaje JavaScript haciendo uso del patrón MVC con el

framework de programación AngularJS, el Backend construido con el lenguaje Java

consiste de una API RESTful con el framework de programación Spring MVC.

El FrontEnd consta de tres capas:

1. Capa de Vista: compuesta por templates html, CSS y directivas de AngularJS

que se cargan dentro de la página principal o inicial de la aplicación. Las

etiquetas HTML permiten definir componentes que serán renderizados en el

43

browser y mostrados al usuario, las directivas AngularJS permiten la

definición de comportamiento dinámico que tendrá la página y el enlace de la

vista con el modelo y posterior envío de información hacia el Backend.

Ilustración 16: Template HTML5

2. Capa de Control: Cada una de las vistas tiene asociado un controlador mismo

que se identifica con un nombre y se asocia a un módulo de AngularJS.

Los controladores escritos en lenguaje JavaScript permiten definir la lógica

de negocio de la aplicación en el lado del cliente y liberar de carga de trabajo

al servidor.

Ilustración 17: Controlador AngularJS

3. Capa de servicios: Un conjunto de servicios que permiten interactuar con el

BACKEND y pueden ser inyectados en los controladores de AngularJS. En la

44

definición de los servicios se especifican la URI del API REST a la que hace

referencia y el método a ejecutar para cada acción.

Ilustración 18: Servicio AngularJS

El BACKEND consiste de una API REST, está constituido por tres capas:

1. Capa de Ruteo.- define qué servicios corresponden a una URI HTTP y como

los parámetros son leídos desde la petición HTTP.

45

Ilustración 19: Servicio RESTful

2. Capa de Servicio.- Contiene toda la lógica de negocio como validaciones y

manejo de transacciones.

3. Capa de Persistencia.- Construida con el uso del módulo Spring Data JPA el

cual brinda la implementación de una interfaz que reduce la cantidad de

código repetido en la construcción de la capa de persistencia.

Ilustración 20: JpaRepository

4.4.1 Servicios RESTful

A continuación se especifican los servicios RESTful usados en la construcción de la

aplicación.

46

Cuentas

URI Método

HTTP

POST

Body

Result

/api/register POST JSON Crear usuario

/api/account GET Recuperar usuario

autenticado

/api/account POST JSON Actualizar usuario

autenticado

/api/account/change_password POST JSON Cambiar contraseña

usuario autenticado

/api/authenticate POST Autenticar usuario

Tabla 33: RESTful Cuentas

Usuarios

URI Método

HTTP

POST

Body

Result

/api/users GET Recuperar todos

/api/users/{login} GET Recuperar por id

Tabla 34: RESTful Usuarios

Tablas (Para Catálogos)

URI Método

HTTP

POST

Body

Result

/api/tablas GET Recuperar todos

/api/tablas/{id} GET Recuperar por id

/api/tablas POST JSON Crear registro

/api/tablas PUT JSON Actualizar registro

/api/tablas/{id} DELETE Borrar registro

Tabla 35: RESTful Tablas

Catálogos

URI Método

HTTP

POST

Body

Result

/api/tablas/{tab_id}/catalogs GET Recuperar todos

/api/tablas/{tab_id}/catalogs/{id} GET Recuperar por id

47

/api/tablas/{tab_id}/catalogs POST JSON Crear registro

/api/tablas/{tab_id}/catalogs PUT JSON Actualizar registro

/api/tablas/{tab_id}/catalogs DELETE Borrar registro

Tabla 36: RESTful Catálogos

Cantones

URI Método

HTTP

POST

Body

Result

/api/cantons GET Recuperar todos

/api/cantons/{id} GET Recuperar por id

/api/cantons POST JSON Crear registro

/api/cantons PUT JSON Actualizar registro

/api/cantons/{id} DELETE Borrar registro

Tabla 37: RESTful Cantones

Provincias

URI Método

HTTP

POST

Body

Result

/api/provincias GET Recuperar todos

/api/provincias /{id} GET Recuperar por id

/api/provincias POST JSON Crear registro

/api/provincias PUT JSON Actualizar registro

/api/provincias/{id} DELETE Borrar registro

Tabla 38: RESTful Provincias

Países

URI Método

HTTP

POST

Body

Result

/api/countries GET Recuperar todos

/api/countries/{id} GET Recuperar por id

/api/countries POST JSON Crear registro

/api/countries PUT JSON Actualizar registro

/api/countries DELETE Borrar registro

Tabla 39: RESTful Países

48

Personas

URI Método

HTTP

POST

Body

Result

/api/persons GET Recuperar todos

/api/persons/{id} GET Recuperar por id

/api/persons POST JSON Crear registro

/api/persons PUT JSON Actualizar registro

/api/persons/{id} DELETE Borrar registro

Tabla 40: RESTful Personas

Historias Clínicas

URI Método

HTTP

POST

Body

Result

/api/clinicHistories GET Recuperar todos

/api/clinicHistories /{id} GET Recuperar por id

/api/clinicHistories POST Crear registro

/api/clinicHistories PUT Actualizar registro

/api/clinicHistories/{id} DELETE Borrar registro

Tabla 41: RESTful Historias Clínicas

Episodios

URI Método

HTTP

POST

Body

Result

/api/clinicHistories /{history_id}/episodes GET Recuperar todos

/api/clinicHistories /{history_id}/episodes/{id} GET Recuperar por id

/api/clinicHistories /{history_id}/episodes POST JSON Crear registro

/api/clinicHistories /{history_id}/episodes PUT JSON Actualizar registro

/api/clinicHistories /{history_id}/episodes/{id} DELETE Borrar registro

Tabla 42: RESTful Episodios

49

Antecedentes Personales

URI Método

HTTP

POST

Body

Result

/api/clinicHistories /{history_id}/episodes GET Recuperar todos

/api/clinicHistories /{history_id}/episodes/{id} GET Recuperar por id

/api/clinicHistories /{history_id}/episodes POST JSON Crear registro

/api/clinicHistories /{history_id}/episodes PUT JSON Actualizar registro

/api/clinicHistories /{history_id}/episodes/{id} DELETE Borrar registro

Tabla 43: RESTful Antecedentes Personales

Antecedentes Familiares

URI Método

HTTP

POST

Body

Result

/api/clinicHistories /{history_id}/episodes GET Recuperar todos

/api/clinicHistories /{history_id}/episodes/{id} GET Recuperar por id

/api/clinicHistories /{history_id}/episodes POST JSON Crear registro

/api/clinicHistories /{history_id}/episodes PUT JSON Actualizar registro

/api/clinicHistories /{history_id}/episodes/{id} DELETE Borrar registro

Tabla 44: RESTful Antecedentes Familiares

Signos Vitales

URI Método

HTTP

POST

Body

Result

/api/clinicHistories /{history_id}/vitalSigns GET Recuperar todos

/api/clinicHistories /{history_id}/ vitalSigns /{id} GET Recuperar por id

/api/clinicHistories /{history_id}/ vitalSigns POST JSON Crear registro

/api/clinicHistories /{history_id}/ vitalSigns PUT JSON Actualizar registro

/api/clinicHistories /{history_id}/ vitalSigns/{id} DELETE Borrar registro

Tabla 45: RESTful Signos Vitales

Motivos de Consulta

URI Método

HTTP

POST

Body

Result

/api/episodes/{episode_id}/reasons GET Recuperar todos

/api/episodes/{episode _id}/reasons /{id} GET Recuperar por id

/api/episodes/{episode _id}/reasons POST JSON Crear registro

50

/api/episodes/{episode tory_id}/reasons PUT JSON Actualizar registro

/api/episodes/{episode _id}/reasons/{id} DELETE Borrar registro

Tabla 46: RESTful Motvos de Consulta

Enfermedad o Problema Actual

URI Método

HTTP

POST

Body

Result

/api/episodes/{episode_id}/currentIllnes GET Recuperar todos

/api/episodes/{episode_id}/currentIllnes/{id} GET Recuperar por id

/api/episodes/{episode_id}/currentIllnes POST JSON Crear registro

/api/episodes/{episode_id}/currentIllnes PUT JSON Actualizar registro

/api/episodes/{episode_id}/currentIllnes/{id} DELETE Borrar registro

Tabla 47: RESTful Enfermedad o Problema Actual

Revisión Actual de Órganos Y Sistemas

URI Método

HTTP

POST

Body

Result

/api/episodes/{episode_id}/currentRevision GET Recuperar todos

/api/episodes/{episode_id}/currentRevision /{id} GET Recuperar por id

/api/episodes/{episode_id}/currentRevision POST JSON Crear registro

/api/episodes/{episode_id}/currentRevision PUT JSON Actualizar registro

/api/episodes/{episode_id}/currentRevision/{id} DELETE Borrar registro

Tabla 48: RESTful Revisión Actual de Órganos y Sistemas

Examen Físico

URI Método

HTTP

POST

Body

Result

/api/episodes/{episode_id}/physicalExam GET Recuperar todos

/api/episodes/{episode_id}/physicalExam/{id} GET Recuperar por id

/api/episodes/{episode_id}/physicalExam POST JSON Crear registro

/api/episodes/{episode_id}/physicalExam PUT JSON Actualizar registro

/api/episodes/{episode_id}/physicalExam/{id} DELETE Borrar registro

Tabla 49: RESTful Examen Físico

51

Diagnósticos

URI Método

HTTP

POST

Body

Result

/api/episodes/{episode_id}/diagnostics GET Recuperar todos

/api/episodes/{episode_id}/diagnostics /{ id} GET Recuperar por id

/api/episodes/{episode_id}/diagnostics POST JSON Crear registro

/api/episodes/{episode_id}/diagnostics PUT JSON Actualizar registro

/api/episodes/{episode_id}/diagnostics/{id} DELETE Borrar registro

Tabla 50: RESTful Diagnósticos

Planes

URI Método

HTTP

POST

Body

Result

/api/episodes/{episode_id}/plans GET Recuperar todos

/api/episodes/{episode_id}/plans /{ id} GET Recuperar por id

/api/episodes/{episode_id}/plans POST JSON Crear registro

/api/episodes/{episode_id}/plans PUT JSON Actualizar registro

/api/episodes/{episode_id}/plans/{id} DELETE Borrar registro

Tabla 51: RESTful Planes

Evolución y Prescripciones

URI Método

HTTP

POST

Body

Result

/api/episodes/{episode_id}/evolutionPrescriptions GET Recuperar todos

/api/episodes/{episode_id}/evolutionPrescriptions/{id} GET Recuperar por id

/api/episodes/{episode_id}/evolutionPrescriptions POST JSON Crear registro

/api/episodes/{episode_id}/evolutionPrescriptions PUT JSON Actualizar registro

/api/episodes/{episode_id}/evolutionPrescriptions/{id} DELETE Borrar registro

Tabla 52: RESTful Evolución y Prescripciones

52

4.5 Funcionamiento de la aplicación

4.5.1 Ingreso a la aplicación:

Ilustración 21: Ingreso a la aplicación

4.5.2 Pantalla de inicio:

Ilustración 22: Pantalla Inicio

53

4.5.3 Menú Citas

En el menú Citas se cuenta con dos submenús:

Ilustración 23: Menú Citas

4.5.3.1 Buscar Historia:

Permite la búsqueda de historias Clínicas:

Ilustración 24: Búsqueda de Historias Clínicas

4.5.3.2 Citas Agendadas

Citas Agenda das Permite la consulta de citas que han sido previamente registradas:

Ilustración 25: Citas Agendadas

54

Desde la opción Citas Agendas con un clic en turno o desde Búsqueda De Historias

Clínicas con un clic en id se puede acceder a la opción Historial Clínico para la

persona seleccionada, y se muestran cinco opciones:

Información Personal

Antecedentes Familiares

Antecedentes Personales

Historia Clínica

Gráficas

4.5.4 Información Personal

Se muestra la información personal del paciente asociado al Historial Clínico

seleccionado:

Ilustración 26: Información Personal

55

4.5.5 Antecedentes Familiares:

Muestra los Antecedentes Familiares del Historial Clínico:

Ilustración 27: Antecedentes Familiares

Crear Antecedente Familiar:

Ingresar la Fecha, Enfermedad, Descripción del Antecedente Familiar y presionar el

botón Guardar:

Ilustración 28: Crear Antecedente Familiar

56

Editar Antecedente Familiar:

Presionar el botón editar y se mostrará una ventana emergente para la modificación:

Ilustración 29: Editar Antecedente Familiar

Eliminar Antecedente Familiar:

Presionar el botón Eliminar y confirmar la eliminación:

Ilustración 30: Eliminar Antecedente Familiar

57

4.5.6 Antecedentes Personales:

Muestra los Antecedentes Personales del Historial Clínico:

Ilustración 31: Antecedentes Personales

Crear Antecedente Personal:

Ingresar la Fecha, Enfermedad, Descripción del Antecedente Personal y presionar el

botón Guardar:

Ilustración 32: Crear Antecedente Personal

Editar Antecedente Personal:

Presionar el botón editar y se mostrará una ventana emergente para la modificación:

Ilustración 33: Editar Antecedente Personal

58

Eliminar Antecedente Personal:

Presionar el botón Eliminar y confirmar la eliminación:

Ilustración 34: Eliminar Antecedente Personal

4.5.7 Formulario Historial Clínico:

Ilustración 35: Formulario Historial Clínico

Muestra el formato de Historial Clínico contiene 7 campos:

Motivo de Consulta

Enfermedad Actual

Revisión Actual

Diagnósticos

Planes

Evolución y Prescripciones

59

Inicialmente los campos se muestran deshabilitados pues es necesario primero crear

un nuevo Episodio o Buscar un Episodio Anterior:

Ilustración 36: Menú Formulario Historial Clínico

Buscar Episodio:

Ilustración 37: Buscar Episodio

Permite buscar y seleccionar un episodio anterior, la lista muestra los episodios que

ha tenido el paciente los mismos se muestran ordenados por fecha en orden

descendente.

Nuevo Episodio:

Permite crear un Episodio Nuevo

Se visualiza la fecha de creación, secuencial y se habilitan los campos para edición

Ilustración 38: Crear Episodio

60

Imprimir:

Permite realizar la Impresión del Historial Clínico.

Ilustración 39: Reporte Historial Clínico

61

Motivo de Consulta

Permite el registro del motivo de la consulta

Ilustración 40: Motivo de Consulta

Enfermedad Actual

Permite el registro de la enfermedad actual

Ilustración 41: Enfermedad Actual

Revisión Actual

Registra la revisión actual del paciente, seleccionar el Órgano de Revisión y si existe

evidencia o no de patología adicionalmente se puede registrar una descripción.

Ilustración 42: Revisión Actual

62

Examen Físico

Registra el Examen Físico del paciente, seleccionar la parte del cuerpo que se revisa

y si tiene evidencia o no de patología, adicionalmente se puede registrar una

descripción.

Ilustración 43: Examen Físico

Diagnósticos

Registra el diagnóstico, seleccionar si es presuntivo o definitivo, el código CIE de la

enfermedad diagnosticada, adicionalmente se puede registrar una descripción

Ilustración 44: Diagnósticos

Selección de CIE (Clasificación Internacional de Enfermedades)

Se puede realizar búsqueda por Código o Descripción, seleccionar haciendo clic en el

código de la enfermedad.

63

Ilustración 45: CIE 10

Planes

Permite registra los planes a seguir en el tratamiento del paciente.

Ilustración 46: Planes

64

Evolución y Prescripciones

Permite registrar la evolución y prescripciones del paciente.

Ilustración 47: Evolución y Prescripciones

4.5.8 Gráficas de Crecimiento

4.5.8.1 Circunferencia Cefálica (Puntaje Z)

Circunferencia Cefálica en centímetros vs Edad en meses

Se muestran cinco curvas, Serie corresponde a los datos del paciente

Ilustración 48: Gráfica Circunferencia Cefálica Puntaje Z

65

4.5.8.2 Circunferencia Cefálica (Percentiles)

Circunferencia Cefálica en centímetros vs Edad en meses

Se muestran cinco curvas, Serie corresponde a los datos del paciente

Ilustración 49: Gráfica Circunferencia Cefálica Percentiles

4.5.8.3 Longitud / Estatura (Puntaje Z)

Longitud / Estatura en cm vs Edad en meses

Se muestran cinco curvas, Serie corresponde a los datos del paciente

Ilustración 50: Gráfica Longitud/Estatura Puntaje Z

66

4.5.8.4 Longitud / Estatura (Percentiles)

Longitud / Estatura en cm vs Edad en meses

Se muestran cinco curvas, Serie corresponde a los datos del paciente

Ilustración 51: Gráfica Longitud/Estatura Percentiles

4.5.8.5 Peso (Puntaje Z)

Peso en Kg vs Edad en meses

Se muestran cinco curvas, Serie corresponde a los datos del paciente

Ilustración 52: Gráfica Peso Puntaje Z

4.5.8.6 Peso (Percentiles)

Peso en Kg vs Edad en meses

67

Se muestran cinco curvas, Serie corresponde a los datos del paciente

Ilustración 53: Gráfica Peso Percentiles

4.5.9 Menú Entidades

Permite el mantenimiento de entidades, este menú se muestra únicamente para el rol

Administrador.

Ilustración 54: Entidades

68

4.5.9.1 Personas

Permite administrar los Pacientes.

Ilustración 55: Personas

4.5.9.2 Historia Clínica

Permite administras las Historias Clínicas

Ilustración 56: Historiales Clínicos

69

4.5.9.3 Países

Permite administrar al catálogo de Países

Ilustración 57: Catálogo Países

4.5.9.4 Provincias

Permite administrar el catálogo de Provincias

Ilustración 58: Catálogo Provincias

4.5.9.5 Cantones

Permite administrar el catálogo de Cantones

Ilustración 59: Catálogo Cantones

70

4.5.9.6 Catálogos

Permite administrar los distintos catálogos mostrados en el historial Clínico,

presionar el botón de vista para visualizar los registros asociados al catálogo.

Ilustración 60: Catálogos

Catálogo diagnósticos presuntivos definitivo

Ilustración 61: Catálogo Diagnósticos

Catálogo antecedentes personales lista actividades

Ilustración 62: Catálogo Antecedente Personales Actividades

71

Catálogo antecedentes familiares lista enfermedades

Ilustración 63: Catálogo Antecedentes Familiares Enfermedades

Catálogo revisión actual con evidencia sin evidencia

Ilustración 64: Catálogo Revisión Actual Con Evidencia Sin Evidencia

72

Catálogo revisión actual lista órganos

Ilustración 65: Catálogo Revisión Actual Órganos

Catálogo examen físico lista partes del cuerpo

Ilustración 66: Catálogo Examen Físico Partes Del Cuerpo

73

Catálogo género

Ilustración 67: Catálogo Género

Catálogo nivel de educación

Ilustración 68: Catálogo Nivel de Educación

Catálogo estado civil

Ilustración 69: Catálogo Estado Civil

74

4.5.10 Menú Administración

Este menú está activo únicamente para el rol Administrador

Ilustración 70: Menú Administración

4.5.11 Menú Cuenta

Este menú permite realizar configuraciones de la cuenta y cerrar la sesión actual.

Ilustración 71: Menú Cuenta

4.5.11.1 Ajustes

Permite cambiar el nombre de usuario, correo electrónico e idioma de visualización

preferido.

Ilustración 72: Ajustes de Usuario

75

4.5.11.2 Contraseña

Permite la actualización de contraseña

Ilustración 73: Cambiar Contraseña

4.5.11.3 Cerrar Sesión

Permite el cierre de sesión

4.5.12 Idioma

Permite la visualización tanto en idioma español como en inglés.

Ilustración 74: Menú Lenguaje

76

CAPITULO 5

Conclusiones y recomendaciones

A continuación se detalla de manera general las conclusiones y recomendaciones que

surgieron en el desarrollo del presente proyecto.

Conclusiones

1. La colaboración del personal del área de Pediatría del Hospital del Día de la

Universidad Central del Ecuador, fue de vital importancia para la

construcción de la presente aplicación web, ya que a través de la

determinación de los requerimientos se realizó la automatización del proceso

de gestión de historias clínicas pediátricas.

2. El uso de la Metodología de Desarrollo de Software, en Espiral, permitió el

análisis y mitigación de riesgos en el desarrollo de la presente aplicación web

permitiendo obtener un producto final más apegado a las especificaciones del

usuario final.

3. La presente aplicación web contribuye a la conservación del medio ambiente

disminuyendo el uso de papel y eliminando las actividades manuales

realizadas anteriormente en el Hospital del Día, en el área de pediatría;

permitiendo de esta manera mantener la información digitalizada, integra y

disponible para el usuario final.

4. El presente proyecto brinda las facilidades para realizar un correcto y

eficiente control del historial clínico de niños y niñas en edad pediátrica; el

uso de las gráficas de crecimiento permite detectar tempranamente problemas

relacionados con su salud.

5. El diseño de esta aplicación, basado en una Arquitectura REST, define un

conjunto de principios con los cuales se pueden diseñar servicios web que

77

pueden ser consumidos por una muy amplia gama de clientes de distintas

plataformas y lenguajes; lo que permitió la construcción de una aplicación

web independiente de la plataforma, escalable, extensible y confiable.

6. La presente aplicación web, definida como aplicación SPA o de una sola

página, permite el ahorro de ancho de banda y tiempo de proceso de cálculo

en el lado del servidor al delegar al cliente cierta lógica de negocio y

creación de contenido dinámico de las vistas; convirtiéndola en una

aplicación de alto rendimiento, eficiente y que brinda una mejor experiencia

al usuario final.

7. En la construcción de aplicaciones web de este estilo se transfiere lógica de

negocio que en una aplicación típica se encuentra en el servidor hacia el lado

del cliente esto permite que cualquier persona con ciertos conocimientos de

programación y el uso de herramientas informáticas para desarrollo de

software pueda manipular el código, por ello es necesario la replicación de

validaciones y control de seguridad en el servidor.

78

Recomendaciones

1. Una de las creencias que se presentan con la implementación de un sistema

de software es que la mejora vendrá únicamente con la implementación del

mismo sin considerar que el éxito o fracaso de la implementación dependerá

también de que los usuarios se muestren interesados en el uso y la

automatización de los procesos. Es por ello la necesidad de fomentar el uso

del sistema desarrollado y dar un seguimiento minucioso para validar

mejoras, detectar posibles falencias y realizar una mejora continua.

2. Los avances tecnológicos hacen que las empresas u organizaciones que no

tienen una visión de crecimiento tecnológico tiendan a ser desplazadas por la

competencia que apuesta por los sistemas de información, por este motivo se

recomienda la automatización de procesos también en otras áreas que

conforman el Hospital Del Día con la finalidad de obtener un sistema de

información integrado que abarque la gran mayoría de procesos que se llevan

a cabo en esta institución.

3. El desarrollo de presente proyecto de software es el punto inicial de un

sistema informático para la gestión de fichas médicas se recomienda para

futuros desarrolladores o estudiantes que consideren la ampliación del

proyecto incorporando los diferentes formularios que contemplan el Historial

Clínico para las distintas especialidades médicas cada uno con su respectivo

formato, continuando con la utilización de los estándares que fueron usados

en el desarrollo de la presente aplicación y fomentando el uso de

herramientas de desarrollo de software libre.

4. La información generada en el sistema de gestión de Fichas Médicas debe ser

manipulada de forma reservada respetando la confidencialidad e intimidad

del paciente ninguna persona no autorizada debe tener acceso a esta

79

información, para ello se recomienda tener un control estricto de usuarios

autorizados y registrados, se debe acceder al Historial Clínico únicamente

por razones asistenciales por parte del profesional médico, de investigación o

docente, en estos últimos casos garantizando el anonimato del paciente.

5. En vista de la gran importancia que conlleva el manejo del historial clínico de

los pacientes es necesario y se recomienda la administración del sistema por

parte de personal capacitado con conocimientos en el área de informática para

la adecuada gestión de la base de datos y administración general del sistema.

6. Se recomienda implementar la presente aplicación web haciendo uso de las

tecnologías de software libre definidas para el mismo, permitiendo

aprovechar las futuras liberaciones de versiones que ayudarán a mejorar su

rendimiento y experiencia hacia el usuario final.

80

GLOSARIO DE TÉRMINOS

A

API.- Por sus siglas en inglés Aplication Programing Interface, interfaz de

programación de aplicaciones, es un conjunto de funciones y/o procedimientos de

programación que se ofrecen de manera que puedan ser reutilizados.

Actor.- Usado en el lenguaje de modelado UML para representar a un usuario o

aplicación externa que interactúa con el sistema.

B

Backend.- es la parte de una aplicación o sistema de software que interactúa con la

capa de acceso a datos.

BDD.- gestor de datos o base de datos donde se almacena información en forma

organizada para su fácil acceso y preservación en el tiempo.

C

Cacheable.- Que implementa algún tipo de mecanismo para el almacenamiento

temporal en memoria cache para mejorar el rendimiento.

CRUD.- Por sus siglas en inglés commit, retrieve, update, delete abreviatura usada

para representar las cuatro operaciones básicas que se pueden realizar con una

entidad.

D

Digitalización.- Representación de documentos, imágenes, sonidos, etcétera

mediante el uso de números o dígitos para su posterior tratamiento mediante el uso

de dispositivos construidos para tal efecto.

E

Entidad.- El término entidad en el área de la informática hace referencia a la

representación de un objeto de la vida real mediante el uso de un lenguaje de

programación orientado a objetos y que puede ser almacenado en una base datos.

Episodio.- Visita que realiza un paciente al profesional médico en una determinada

fecha.

F

Frontend.- Es la parte de una aplicación o sistema de software que permite la

interacción con el usuario.

81

Framework.- Conjunto de asunciones, conceptos, valores y prácticas que facilitan o

sirven de base para enfrentar y resolver problemas que se dan en la construcción de

software con algún lenguaje de programación.

FIMEPED.- Acrónimo con que se designa al proyecto Fichas Médicas Pediátricas.

H

HTML.- Por sus siglas en inglés Hipertext Markup Languaje, es un lenguaje de

etiquetado para el diseño de páginas web.

HTTP.- Por sus siglas en inglés Hipertext Transfer Protocol es un conjunto de

especificaciones que permiten la comunicación a través del internet.

I

IDE.- Por sus siglas en inglés Integrated Develoment Enviorment, es una aplicación

informática que proporciona servicios integrales y facilita el desarrollo de software.

J

JSON.- Por sus siglas en inglés JavaScript Object Notation define un conjunto de

reglas para representar a un objeto o entidad con sus atributos.

JWT.- Por sus siglas en inglés JSON Web Token es un token en formato JSON

usado para la autenticación basada en Tokens.

R

REST.- Por sus siglas en inglés Representational State Transfer es un estilo de

arquitectura de software que se fundamenta en las especificaciones del protocolo

HTTP.

RESTful.- Hace referencia a un servicio en la web que implementa la arquitectura

REST.

S

Stateless.- Que no mantiene ningún tipo de información acerca del estado.

SPA.- Por sus siglas en ingles Single Page Application, Aplicación de una sola

página, se usa para distinguir a las aplicaciones que usan un estilo de realizar una

carga inicial de todas las vistas de la aplicación y mediante el uso de un lenguaje de

programación en el lado del cliente realizar la navegación de vistas únicamente

cambiando o actualizando ciertas porciones de una página inicial o página principal.

82

T

Token.- Objeto que contiene las credenciales de seguridad e identifica un usuario

para el uso de una aplicación o sistema en la web.

U

URI.- Por sus siglas en inglés Uniform Resource Identifier es una cadena de

caracteres que se usan para identificar un recurso en la web.

URL.- Por sus siglas en inglés Uniform Resource Locator es una cadena de

caracteres que se usa para especificar la ubicación de un recurso en un computador

en la red.

W

WEB.- También conocida con las siglas www (World Wide Web), espacio de uso

libre donde documentos, archivos y otros recursos son identificados por URIs y

pueden ser accedidos a través del internet.

X

XML.- Por sus siglas en inglés Extensible Markup Languaje define un conjunto de

reglas para codificar documentos en un formato en el cual humanos y máquina

puedan entenderlo, se usa también para representar un objeto o entidad.

83

BIBLIOGRAFÍA

Libros

1. Álvarez Caula Cecilio. Sun Certified Enterprise Architect. Arquitectura Java

Sólida

2. Joseph Schmuller. Prentice Hall. Aprendiendo UML en 24 Horas

3. Carlos Azaustre. Desarrollo Web Ágil con AngularJS

4. O’Reilly - Eric Freeman & Elisabeth Robson. Head First Design Patterns

5. O’Reilly - Eric Freeman & Elisabeth Robson. Head First HTML5

Programming

6. Craig Walls. Spring in Action Third Edition

7. Mike Keith, Merrick Schincariol. Pro JPA 2: Mastering the Java™

Persistence API: Mastering the Java™ Persistence API (Expert's Voice in

Java Technology)

Páginas Web

https://www.angularjs.org/

http://bower.io/

http://yeoman.io/

http://gruntjs.com/

https://www.npmjs.com/

https://nodejs.org/en/

https://git-scm.com/

http://spring.io/

http://jwt.io/

http://blog.jhades.org/developing-a-modern-java-8-web-app-with-spring-mvc-and-

angularjs/

84

ANEXOS

85

Anexo 1. Manual Técnico

Modelo Entidad Relación

Persona y Reservaciones

Ilustración 75: Entidad Relación Personas y Reservaciones

86

Historial Clínico

Ilustración 76: Entidad Relación Historial Clínico

87

Episodios

Ilustración 77: Entidad Relación Episodios

88

Catálogos

Ilustración 78: Entidad Relación Catálogo Países

Ilustración 79: Entidad Relación Catálogos

89

Auditoria

Ilustración 80: Entidad Relación Auditoria

Seguridades y Permisos

Ilustración 81: Entidad Relación Seguridades y Permisos

90

DICCIONARIO DE DATOS

GN_PERSONA

Almacena datos de los pacientes.

Nombre Tipo de Dato Nullable PK Serial

CODIGO_PER bigint NO SI SI

INSTITUCION_SISTEMA_PER varchar(255) SI NO NO

UNIDAD_OPERATIVA_PER varchar(255) SI NO NO

COD_UO_PER int SI NO NO

TIPO_PER varchar(255) SI NO NO

FACULTAD_PER varchar(255) SI NO NO

CARRERA_PER varchar(255) SI NO NO

SEMESTRE_PER int SI NO NO

PRIMER_NOMBRE_PER varchar(255) SI NO NO

SEGUNDO_NOMBRE_PER varchar(255) SI NO NO

APELLIDO_PATERNO_PER varchar(255) SI NO NO

APELLIDO_MATERNO_PER varchar(255) SI NO NO

CEDULA_PER varchar(255) SI NO NO

DIRECCION_PER varchar(255) SI NO NO

TELEFONO_PER varchar(255) SI NO NO

FECHA_NACIMIENTO_PER date SI NO NO

LUGAR_NACIMIENTO_PER varchar(255) SI NO NO

NACIONALIDAD_PER varchar(255) SI NO NO

EDAD_PER int SI NO NO

SEXO_PER varchar(255) SI NO NO

ESTADO_CIVIL_PER varchar(255) SI NO NO

INSTRUCCION_ANIO_APROBADO_PER varchar(255) SI NO NO

FECHA_ADMISION_PER date SI NO NO

OCUPACION_PER varchar(255) SI NO NO

EMPRESA_TRABAJA_PER varchar(255) SI NO NO

TIPO_SEGURO_PER varchar(255) SI NO NO

REFERIDO_PER varchar(255) SI NO NO

PARENTESCO_NOMBRE_PER varchar(255) SI NO NO

PARENTESCO_PER varchar(255) SI NO NO

DIRECCION_PARENTESCO_PER varchar(255) SI NO NO

TELEFONO_PARENTESCO_PER varchar(255) SI NO NO

BARRIO_PER varchar(255) SI NO NO

PARROQUIA_PER varchar(255) SI NO NO

CANTON_PER varchar(255) SI NO NO

91

PROVINCIA_PER varchar(255) SI NO NO

ZONA_PER varchar(255) SI NO NO

GRUPO_CULTURAL_PER varchar(255) SI NO NO

Tabla 53: GN_PERSONA

TN_RESERVACION

Almacena datos de las reservaciones de citas médicas.

Nombre Tipo de Dato Nullable PK Serial

CODIGO_RES bigint NO SI SI

CODIGO_PER bigint SI NO NO

CODIGO_USW int SI NO NO

CODIGO_ESP int SI NO NO

CODIGO_ETR int SI NO NO

FECHA_RES date SI NO NO

NUM_TURNO_RES int SI NO NO

Tabla 54: TN_RESERVACION

HS_HISTORIA_CLINICA

Almacena datos de la historia clínica.

Nombre Tipo de Dato Nullable PK Serial

CODIGO_HIS bigint NO SI SI

FECHA_CRE_HIS date SI NO NO

CODIGO_PER bigint SI NO NO

Tabla 55: HS_HISTORIA_CLINICA

FAMILYHISTORY

Almacena los antecedentes familiares del paciente.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

date date SI NO NO

description varchar(255) SI NO NO

illness varchar(255) SI NO NO

codigo_his bigint SI NO NO

Tabla 56: FAMILYHISTORY

92

PERSONALHISTORY

Almacena los antecedentes personales del paciente.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

date date SI NO NO

description varchar(255) SI NO NO

illness varchar(255) SI NO NO

codigo_his bigint SI NO NO

Tabla 57: PERSONALHISTORY

VITALSIGN

Almacena signos vitales del paciente.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI NO

blood_pressure varchar(255) SI NO NO

heart_rate int SI NO NO

breathing_frecuency int SI NO NO

oral_temperature float SI NO NO

axillary_temperature float SI NO NO

weight float SI NO NO

size int SI NO NO

head_circumference float SI NO NO

body_mass float SI NO NO

date date SI NO NO

age int SI NO NO

codigo_his bigint SI NO NO

Tabla 58: VITALSIGN

CLINICHISTORYADDINF

Almacena información adicional de la historia clínica.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

menarche_age int SI NO NO

menopause_age int SI NO NO

cycles int SI NO NO

sexually_active varchar(255) SI NO NO

feat int SI NO NO

deliveries int SI NO NO

abortions int SI NO NO

93

caesareans int SI NO NO

living_children int SI NO NO

last_menarche date SI NO NO

last_delivery date SI NO NO

last_citology date SI NO NO

biopsy varchar(255) SI NO NO

protection_method varchar(255) SI NO NO

hormone_terapy varchar(255) SI NO NO

colposcopy varchar(255) SI NO NO

mammografhy varchar(255) SI NO NO

codigo_his bigint SI NO NO

Tabla 59: CLINICHISTORIADDINF

EPISODE

Almacena datos de cada visita o episodio realizado por el paciente.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

epi_date date SI NO NO

epi_description varchar(255) SI NO NO

codigo_his bigint SI NO NO

epi_user varchar(255) SI NO NO

Tabla 60: EPISODE

CURRENTILLNESS

Almacena la enfermedad actual del paciente.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

description varchar(255) SI NO NO

episode_id bigint SI NO NO

Tabla 61: CURRENTILLNESS

CURRENTREVISION

Almacena datos de la revisión realizada al paciente.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

description varchar(255) SI NO NO

organ varchar(255) SI NO NO

we_ne varchar(255) SI NO NO

episode_id bigint SI NO NO

Tabla 62: CURRENTREVISION

94

DIAGNOSTIC

Almacena datos del diagnóstico realizado al paciente.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

description varchar(255) SI NO NO

cie varchar(255) SI NO NO

pre_def varchar(255) SI NO NO

episode_id bigint SI NO NO

Tabla 63: DIAGNOSTIC

EVOLUTIONPRESCRIPTION

Almacena datos de evolución y prescripciones realizadas al paciente.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

evolution varchar(255) SI NO NO

prescription varchar(255) SI NO NO

medicines varchar(255) SI NO NO

episode_id bigint SI NO NO

Tabla 64: EVOLUTIONPRESCRIPTION

PHYSICALEXAM

Almacena datos del examen físico realizado al paciente

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

description varchar(255) SI NO NO

body_part varchar(255) SI NO NO

we_ne varchar(255) SI NO NO

episode_id bigint SI NO NO

Tabla 65: PHYSICALEXAM

95

PLANS

Almacena los planes a realizar para el tratamiento del paciente.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

description varchar(255) SI NO NO

episode_id bigint SI NO NO

Tabla 66: PLANS

REASON

Almacena el motivo de consulta del paciente.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

description varchar(255) SI NO NO

episode_id bigint SI NO NO

Tabla 67: REASON

TABLA

Almacena los nombres de catálogos usados en el historial clínico.

Nombre Tipo de Dato Nullable PK Serial

tab_id varchar(255) NO SI NO

description varchar(255) SI NO NO

Tabla 68: TABLA

CATALOG

Almacena los registros de catálogos usados en el historial clínico.

Nombre Tipo de Dato Nullable PK Serial

tab_id varchar(255) NO SI NO

cat_id varchar(255) NO SI NO

value varchar(255) SI NO NO

Tabla 69: CATALOG

96

ICD10

Catálogo de la clasificación internacional de enfermedades versión 10

Nombre Tipo de Dato Nullable PK Serial

code varchar(255) NO SI NO

description varchar(255) NO NO NO

parent varchar(255) SI NO NO

Tabla 70: ICD10

COUNTRY

Catálogo de Países

Nombre Tipo de Dato Nullable PK Serial

id varchar(255) NO SI NO

name varchar(255) NO NO NO

nacionality varchar(255) SI NO NO

Tabla 71: COUNTRY

PROVINCIA

Catálogo de Provincias

Nombre Tipo de Dato Nullable PK Serial

id varchar(255) NO SI NO

name varchar(255) NO NO NO

country_id varchar(255) SI NO NO

Tabla 72: PROVINCIA

CANTON

Catálogo de Cantones

Nombre Tipo de Dato Nullable PK Serial

id varchar(255) NO SI NO

name varchar(255) NO NO NO

provincia_id varchar(255) SI NO NO

Tabla 73: CANTON

JHI_AUTHORITY

Almacena los roles para los usuarios de la aplicación.

Nombre Tipo de Dato Nullable PK Serial

name varchar(50) NO SI NO

Tabla 74: JHI_AUTHORITY

97

JHI_USER

Almacena los usuarios de la aplicación.

Nombre Tipo de Dato Nullable PK Serial

id bigint NO SI SI

login varchar(50) NO SI NO

PASSWORD varchar(60) SI NO NO

first_name varchar(50) SI NO NO

last_name varchar(50) SI NO NO

email varchar(100) SI NO NO

activated bit NO NO NO

lang_key varchar(5) SI NO NO

activation_key varchar(20) SI NO NO

reset_key varchar(20) SI NO NO

created_by varchar(50) NO NO NO

created_date datetime NO NO NO

reset_date datetime SI NO NO

last_modified_by varchar(50) SI NO NO

last_modified_date datetime SI NO NO

Tabla 75: JHI_USER

JHI_USER_AUTHORITY

Tabla de unión entre JHI_USER y JHI_AUTHORITY

Nombre Tipo de Dato Nullable PK Serial

user_id bigint NO SI NO

authority_name varchar(50) NO SI NO

Tabla 76: JHI_USER_AUTHORITY

JHI_PERSISTENT_AUDIT_EVENT

Cabecera para eventos de auditoria

Nombre Tipo de Dato Nullable PK Serial

event_id bigint NO SI SI

principal varchar(255) NO NO NO

event_date datetime SI NO NO

event_type varchar(255) SI NO NO

Tabla 77: JHI_PERSISTENT_AUDIT_EVENT

98

JHI_PERSISTENT_AUDIT_EVT_DATA

Detalle para eventos de auditoria

Nombre Tipo de Dato Nullable PK Serial

event_id bigint NO SI NO

name varchar(255) NO NO NO

value varchar(255) SI NO NO

Tabla 78: JHI_PERSISTENT_AUDIT_EVT_DATA

99

Anexo 2. Manual de Instalación

Instalación de SQL SERVER 2008 R2

Elegir la opción Instalación, Nueva instalación o agregar características a una

instalación existente:

Ilustración 82: Nueva instalación SQL Server

El programa de instalación verifica que se cumplan ciertas reglas verificar que todas

estén en estado Correcto o Advertencia esto permitirá continuar con la instalación.

La advertencia obtenida sobre el Firewall de Windows se solventará más adelante:

Ilustración 83: Reglas de Instalación SQL Server

100

Las caracteristicas seleccionadas como se muestran en la figura son suficientes para

la aplicación desarrollada:

Ilustración 84: Selección de Características

Se realiza la verificación de espacio para las características seleccionadas:

Ilustración 85: Requisitos de espacio en disco

101

Configurar como se muestra en la figura:

Ilustración 86: Configuración del servidor

Seleccionar Modo mixto digitar la contraseña para el usuario sa y agregar el usuario

actual:

Ilustración 87: Configuración del motor de base de datos

102

Iniciar la instalación presionando el botón Instalar:

Ilustración 88: Inicio de la instalación

Ilustración 89: Instalación Completada

103

Iniciar el administrador de la base de datos en Inicio/Todos Los Programas/Microsoft

SQL Server 2008 R2

Ilustración 90: Ubicación del administrador de SQL Server

Iniciar sesión para el usuario sa:

Ilustración 91: Iniciar sesión SQL Server

104

Crear la base de datos fimeped

En el menú Base de datos hacer clic derecho y en el menú contextual que se

despliega seleccionar Nueva base de datos:

Ilustración 92: Menú contextual crear base de datos

Ingresar el nombre de la base de datos fimeped y presionar el botón aceptar:

Ilustración 93: Nueva base de datos

105

Firewall de Windows

Habilitar el Firewall de Windows para permitir conexiones TCP al puerto 1433.

Dirigirse a panel de control Firewall de Windows:

Ilustración 94: Firewall de Windows

Seleccionar Reglas de Entrada y crear una nueva regla:

Ilustración 95: Reglas del Firewall de Windows

Seleccionar tipo de regla Puerto:

Ilustración 96: Elección de puerto en la regla de firewall

106

Seleccionar TCP y Puerto locales especificos:1433

Ilustración 97: Selección protocolo en regla de firewall

Permitir la conexión:

Ilustración 98: Selección tipo de conexión en regla de firewall

107

Seleccionar todas las opciones:

Ilustración 99: Selección cuando se aplica la regla en firewall

Digitar un nombre para le nueva regla de entrada:

Ilustración 100: Nombre de la regla

108

Instalar JDK (Java Development Kit)

Ejecutar el instalador del JDK, continuar con el asistente de instalación con las

opciones por defecto:

Ilustración 101: Instalar JDK

Automáticamente se dará inicio a la instalación del JRE, continuar con el asistente de

instalación con las opciones por defecto:

Ilustración 102: Instalar JRE

109

La instalación se lleva a cabo exitosamente:

Ilustración 103: Instalación de JDK y JRE exitosa

Verificar que se hayan creado los siguientes directorios en la dirección

C:\ProgramFiles\Java:

Ilustración 104: Directorio de instalación del JDK y JRE

110

Configuración de variables de entorno

Dirigirse a las propiedades del sistema y en la pestaña avanzadas presionar el botón

Variables de Entorno:

Ilustración 105: Ventana de propiedades del sistema

En la ventana que se muestra verificar buscar las variables JAVA_HOME y

JRE_HOME en caso de no existir agregarlas presionando el botón Nuevo:

Ilustración 106: Variable de entorno

111

Crear la variable JAVA_HOME y configurar el valor con la dirección del JDK:

Ilustración 107: Variable de entorno JAVA_HOME

Crear la variable JRE_HOME y configurar el valor con la dirección del JRE:

Ilustración 108: Variable de entorno JRE_HOME

Adicionalmente modificar el valor de la variable Path agregando al final la cadena

mostrada en la siguiente figura:

Ilustración 109: Variable de entorno Path

112

Instalar Git

Ejecutar el instalador de Git para Windows y continuar con el asistente de instalación

con las opciones por defecto:

Ilustración 110: Instalación Git

Verificar que se haya agregado en Inicio – Todos los Programas el siguiente

directorio:

Ilustración 111: Ubicación de Git en el menú

113

Instalar NodeJS:

Ejecutar el instalador de NodeJS para Windows y continuar con el asistente de

instalación con las opciones por defecto, esto instalará NodeJS y npm:

Ilustración 112: Instalación NodeJS

Verificar versiones de NodeJS y npm instaladas ejecutar Git CMD en modo

administrador (Clic derecho Ejecutar como administrador) y ejecutar los siguientes

comandos:

Ilustración 113: Verificar versión de NodeJS y npm instaladas

114

Instalar Bower:

Ejecutar Git CMD como Administrador (Clic derecho ejecutar como administrador)

y ejecutar el siguiente comando, tener en cuenta no ubicarse en la unidad raíz pues se

podrían presentar advertencias por temas de permisos:

Ilustración 114: Instalar Bower

Instalar karma ejecutar los siguientes comandos:

Ilustración 115: Instalar Karma

Ilustración 116: Instalar karma-coverage

Ilustración 117: Instalar jasmine-core

115

Configurar Maven

Crear una carpeta en la unidad preferida en este caso D:\java para copiar Maven:

Ilustración 118: Crear directorio para ubicación de herramientas

Copiar dentro de esta carpeta apache-maven-3.3.9:

Ilustración 119: Copiar Eclipse a directorio de herramientas

Agregar en la variable de entorno Path la dirección de maven que se copió en el

directorio D:\java:

Ilustración 120: Configurar ubicación de Maven en variable de entorno Path

116

En caso que se desee especificar un directorio personalizado para el repositorio local

de maven descomentar en el archivo settings la propiedad localRepository:

Ilustración 121: Ubicación de archivo settings.xml de Maven

Para el caso de este manual se usa la configuración por default del repositorio local

de Maven, por lo que se deja el archivo setting.xml de Maven sin modificaciones:

Ilustración 122: Repositorio local de Maven

Verificar que al ejecutar el comando mvn –v se obtenga la versión de Maven

instalada y de JDK:

Ilustración 123: Verificación versión de Maven instalada

117

Configurar IDE Eclipse

Copiar eclipse dentro de la carpeta java creada anteriormente:

Ilustración 124: Copiar Maven a directorio de herramientas

Doble clic en el ejecutable:

Ilustración 125: Iniciar Eclipse

118

Presionar el botón Browser y crear el área de trabajo por ejemplo D:\workspace:

Ilustración 126: Ubicación de workspace

Configurar JDK en el IDE eclipse

Dirigirse en el menú de eclipse a Windows/Preferences buscar JRE´s instalados:

Ilustración 127: JRE instalados

119

Agregar aquí el JDK7, presionar siguiente y buscar la ruta del JDK:

Ilustración 128: Tipo de JRE

Buscar la dirección del JDK instalado:

Ilustración 129: Seleccionar ubicación del JDK

120

Seleccionar el registro agregado como predeterminado:

Ilustración 130: Marcar jdk como predeterminado

Confingurar maven en el IDE Eclipse

Ubicarse en preferences y buscar la opción Maven – User Settings, en el campo User

Settings presionar el botón de buscar:

Ilustración 131: Configuraciones de usuario de Maven

121

Buscar el archivo settings.xml de maven configurado anteriormente:

Ilustración 132: Seleccionar ubicación del archivo setting.xml de Maven

Confirmar los cambios:

Ilustración 133: Aplicar configuraciones de Maven

122

Anexo 3. Manual de Ejecución en modo Desarrollo

Crear un directorio como área de trabajo, para el efecto del presente manual se usa

D:\workspace copiar la carpeta del proyecto fimeped dentro del directorio área de

trabajo:

Ilustración 134: Copiar código fuente al area de trabajo

Para la conexión a la base de datos SQL SERVER se utiliza el sqljdbc proveído por

MICROSOFT, este jar no se encuentra en los repositorios centrales de maven por lo

que hay que realizar una instalación en el repositorio local de manera manual, para

ello copiar el sqljdbc41.jar en algún directorio y ejecutar el siguiente comando

(considerar que la opción –Dfile debe contener el path donde se encuentra el jar a

instalar en este caso el mismo directorio donde se ejecuta la instrucción):

Ilustración 135: Instalación manual de sqljdbc41.jar en el repositorio local de

Maven

123

Si la instalación del jar en el repositorio local se efectua exitosamente se obtendrá los

siguientes mensajes:

Ilustración 136: Instalación de sqljdb41.jar exitosa

Ubicarse en el directorio del proyecto fimeped e instalar todas las dependencias de

java ejecutando la siguiente instrucción:

Ilustración 137: Instalación de dependencias java

124

Si la instalación de dependencias de java se efectúa exitosamente se obtendrá los

siguientes mensajes:

Ilustración 138: Instalación de dependencias java exitosa

Realizar la instalación de dependencias JavaScript requeridas para el proyecto,

ubicándose en el directorio del proyecto ejecutar el siguiente comando:

Ilustración 139: Instalación de dependencias JavaScript

Verificar que dentro del directorio del proyecto se haya creado el directorio

node_modules con todas las dependencias JavaScript:

Ilustración 140: Instalación de dependencias JavaScript exitosa

125

Realizar la instalación de dependencias JavaScript para el FrontEnd, ubicándose en

el directorio del proyecto ejecutar la siguiente instrucción:

Ilustración 141: Instalación de dependencias JavaScript para el Frontend

Verificar que dentro del directorio del proyecto en la ruta src/main/webapp se haya

creado la carpeta bower_components con las dependencias JavaScript para el

FrontEnd:

Ilustración 142: Instalación de dependencias JavaScript para el Frontend exitosa

Ejecutar el IDE Eclipse

Importar el proyecto fimeped:

Dirigirse en el menu del IDE Eclipse a File – Importar elegir la siguiente opción:

Ilustración 143: Importación de proyecto

126

Una vez importado el proyecto dentro del directorio src/main/resource modificar el

archivo application-dev.yml donde se encuentran las configuraciones de acceso a la

base de datos, ingresar la información que corresponda:

Ilustración 144: Configuración de acceso a la Base de datos

Como siguiente paso dentro del directorio src/main/java ubicar el paquete de clases

org.uce.fimeped y ejecutar la clase Application.java la misma cuenta con un método

main que levanta la aplicación con una configuración básica del servidor apache –

tomcat:

Ilustración 145: Ejecución de la aplicación en modo desarrollo

127

Si todo se realizó exitosamente se obtendrá el siguiente mensaje en la consola de

eclipse:

Ilustración 146: Ejecución de aplicación en modo desarrollo exitosa

Ingresar a un browser con las urls especificadas:

Ilustración 147: Ingreso a la aplicación en modo desarrollo

128

Anexo 4. Manual de Ejecución en modo Producción

Copiar apache-tomcat en la unidad que se desee:

Ilustración 148: Ubicación de proyecto apache-tomcat

Desde el apartado Variables del sistema crear la variable CATALINA_HOME,

para esto hacemos click en el botón Nueva:

Ilustración 149: Configurar variables de entorno para apache-tomcat

En el campo Nombre de la variable ingresamos el texto CATALINA_HOME, y

sobre el campo Valor de la variable ingresamos la ruta donde copiamos apache-

tomcat y presionamos el botón Aceptar:

129

Ilustración 150: Variable de entorno CATALINA_HOME

Modificar el valor de la variable Path, aquí nos ubicaremos sobre el campo Valor de

la variable, nos desplazaremos hasta el final del valor y colocaremos un punto y

coma he ingresaremos el texto%CATALINA_HOME%\bin. Note que al final del

valor de la variable Path quedo sin punto y coma. Damos click en el botón Aceptar.

Ilustración 151: Configurar variable de entorno Path para apache-tomcat

Hasta aquí han quedado configuradas las variables necesarias para ejecutar apache-

tomcat.

Abrir un pantalla de comandos de Windows a la ruta donde copiamos apache-tomcat

y ejecutamos el comando startup.bat. La primera vez nos preguntara el Firewall de

Windows si deseamos darle acceso al Tomcat, le decimos que permita el acceso.

Ilustración 152: Inicio de servidor apache-tomcat

130

Se despliega la ventana llamada Tomcat, donde nos informa que el servidor Tomcat

ha iniciado correctamente.

Ilustración 153: Inicio de servidor apache-tomcat exitoso

Podemos verificar que el servidor haya iniciado correctamente ingresando al browser

de preferencia e ingresando la url http://localhost:8080 y se mostrara la

ventana Apache Tomcat la cual nos muestra la pantalla de bienvenida de Apache

Tomcat, esto quiere decir que todo se ha configurado exitosamente.

Ilustración 154: Pantalla de bienvenida del servidor apache-tomcat

Como siguiente paso copiar el archivo fimeped-0.0.1-SNAPSHOT.war dentro del

directorio webapps de apache-tomcat:

Ilustración 155: Ubicación del archivo war del proyecto en el servidor apache-

tomcat

131

El archivo war se descomprime, dentro del directorio del proyecto dirigirse a la ruta

WEB-INF/clases/config y buscar el archivo application-dev.yml:

Ilustración 156: Configuración de acceso a la base de datos en modo producción

Configurar la información correspondiente a la conexión con la base de datos:

Ilustración 157: Archivo de configuración de la aplicación

132

Volver a iniciar el servidor e ingresar a la url http://ipservidor:8080/fimeped-

0.0.1.SNAPSHOT/index.html:

Ilustración 158: Ingreso a la aplicación en modo producción