Está en la página 1de 87

TELEMEDICINA Y

e-SALUD (e-HEALTH)

Dra. Liliana Gavidia Ceballos

MÁSTER UNIVERSITARIO EN INGENIERÍA BIOMÉDICA


Módulo II. Optativas
Este material es de uso exclusivo para los alumnos
de la Universidad Internacional de Valencia. No
Internacional está permitida la reproducción total o parcial de su
contenido ni su tratamiento por cualquier método
de Valencia por aquellas personas que no acrediten su relación
con la Universidad Internacional de Valencia, sin
autorización expresa de la misma.

Edita
Universidad Internacional de Valencia
Máster Universitario en
Ingeniería Biomédica

Telemedicina y e-salud (e-health)


Módulo II. Optativas
4 ECTS

Dra. Liliana Gavidia Ceballos


Leyendas

Enlace de interés Ejemplo Importante Descarga de archivo

Los términos resaltados a lo largo del contenido en color naranja se recogen en el apartado GLOSARIO.
Índice

CAPÍTULO 1. INTRODUCCIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.1. Definición de telemedicina y salud digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2. Áreas de aplicación de la telemedicina. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.2.1. Teleconsulta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.2. Atención domiciliaria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.3. Telediagnóstico / Exploraciones complementarias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.4. Teleurgencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.5. Discusión interactiva entre profesionales alejados físicamente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.6. Investigación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.7. Salud pública y medicina de desastres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.8. Teleeducación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3. Naturaleza de los datos a transmitir en telemedicina. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3.1. Datos alfanuméricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3.2. Señales fisiológicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3.3. Imágenes estáticas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3.4. Imágenes en movimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.4. Tecnologías de comunicación inalámbricas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4.1. WLAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4.2. RFID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4.3. Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.4.4. Redes de comunicación celular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.4.5. Redes de sensores corporales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

CAPÍTULO 2. SISTEMAS DE INFORMACIÓN MÉDICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.1. Registro electrónico de salud. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2. Registro médico electrónico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3. Registro de salud personal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.4. Sistemas de prescripción y medicación electrónica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.5. Servidores de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.6. Sistemas de información radiológica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5
Índice
Internacional
de Valencia

CAPÍTULO 3. INTEROPERABILIDAD Y ESTANDARIZACIÓN DE DATOS E INFORMACIÓN CLÍNICA. . . . . . . . . 22

3.1. Interoperabilidad de dispositivos médicos en el entorno usuario/paciente (ISO/IEEE11073). . . . . . . . 22

3.2. Interoperabilidad para el intercambio, la integración y la recuperación de información


electrónica de salud: Health Level 7 (HL7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.3. Interoperabilidad de intercambio de historia clínica electrónica (HCE): EN13606. . . . . . . . . . . . . . . . . . . . 24

3.4. Códigos de diagnósticos médicos: SNOMED-CT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.5. Estándar para el intercambio de imágenes médicas e integración con sistemas de información
radiológica: DICOM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

CAPÍTULO 4. SISTEMAS DE MONITORIZACIÓN Y SERVICIOS DE E-SALUD (E-HEALTH).


ESTUDIO DE CASOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.1. Plataforma de salud digital desarrollada para el Departamento de Servicios a Veteranos


de Estados Unidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.2. Sistema de seguimiento digital de los pacientes quirúrgicos


del Hospital Vall d’Hebron de Barcelona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

CAPÍTULO 5. SISTEMAS Y APLICACIONES EN SALUD SOPORTADOS POR DISPOSITIVOS MÓVILES


(M-HEALTH) Y APLICACIONES DE SISTEMAS DE SALUD PERSONALIZADA (P-HEALTH). . . 31
5.1. Health de Apple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.2. Patientslikeme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.3. Samsung Health con pulsera inteligente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

CAPÍTULO 6. MONITORIZACIÓN DEL PACIENTE CRÓNICO Y DE EDAD AVANZADA. . . . . . . . . . . . . . . . . . . . . . . . . 34

6.1. Sistemas de localización de personas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

6.2. Servicios y tecnologías de apoyo a la vida independiente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

6.3. Tecnologías de monitorización del paciente crónico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

6.4. Paradigma salud 2.0 (health 2.0). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

CAPÍTULO 7. ALMACENAMIENTO Y MODELAJE DE DATOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

7.1. Diseño de una base de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

7.2. Tipos de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

7.3. Creación de una base de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

7.4. Creación de una tabla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

7.5. Jupyter Notebook como herramienta de familiarización con el lenguaje SQL . . . . . . . . . . . . . . . . . . . . . . . . 41

6
Telemedicina y e-salud (e-health)
Internacional
de Valencia

CAPÍTULO 8. CÓMO MANIPULAR DATOS CON EL LENGUAJE SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43


8.1. Lenguaje de definición de datos (DDL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

8.1.1. CREATE(DATABASE, TABLE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

8.1.2. DROP(DATABASE, TABLE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

8.2. Lenguaje de manipulación de datos (DML). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

8.2.1. SELECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

8.2.2. INSERT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

8.2.3. UPDATE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

8.2.4. DELETE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

8.3. Lenguaje de control de datos (DCL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

8.3.1. GRANT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

8.3.2. REVOKE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

8.4. Expresiones de búsquedas selectivas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

8.4.1. LIKE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

8.5. Expresiones avanzadas SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

8.5.1. Índices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

8.5.2. Restricciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

CAPÍTULO 9. DESARROLLO DE APLICACIONES BAJO ENTORNO WEB, CON EL USO DE BASES


DE DATOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
9.1. Programación orientada a objetos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

9.2. Modelo vista controlador (MVC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

9.3. ORM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

9.4. SQLALCHEMY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

9.5. Procesador de plantillas (template engine). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

9.6. Framework de desarrollo Flask. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

9.6.1. Estructura de una aplicación de Flask. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

9.6.2. Formularios web con Flask como framework. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

CAPÍTULO 10. INTEGRACIÓN ENTRE APLICACIONES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68


10.1. REST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

10.2. API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

10.3. JSON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

10.4. Endpoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

7
Índice
Internacional
de Valencia

10.5. CRUD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

10.6. NoSQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

10.6.1. MongoDB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

10.6.2. Instalación de MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

CAPÍTULO 11. NUEVAS TENDENCIAS: BIG DATA, INTERNET DE LAS COSAS


Y EL PROCESAMIENTO ANALÍTICO EN LA NUBE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
11.1. Big data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

11.2. Internet de las cosas (IdC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

GLOSARIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

ENLACES DE INTERÉS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

BIBLIOGRAFÍA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

8
Capítulo 1

Introducción

Desde hace más de 30 años, en todo el mundo se realizan esfuerzos para incorporar nuevas tecno-
logías en todos los campos de la medicina, con la intención de satisfacer diversas necesidades del
sector salud y poder brindar a la población servicios de salud al alcance de todos y con la mejor calidad
posible. De este esfuerzo surge la telemedicina, la cual requiere la participación activa de operadores
de telecomunicaciones y profesionales de la medicina para su correcta implementación.

Es indudable que las tecnologías de información y la comunicación (TIC) están potenciando aún más el
desarrollo de la telemedicina y de los sistemas de informática médica. Diversos factores han contri-
buido a ello:

•• La reducción en los costos de los servicios de telecomunicaciones y el aumento en el uso de las


tecnologías inalámbricas, los teléfonos móviles y otros dispositivos portátiles.

•• La cultura de conectividad permanente gracias a las poderosas herramientas web 2.0 y web 3.0
disponibles (big data, machine learning, etc.).

•• El crecimiento de la computación en la nube con servicios en línea y sus variantes de software


como servicio (SaaS) y plataforma como servicio (PaaS).

•• La reducción de costos gracias al uso de tecnologías de software de código abierto (open sour-
ce software).

9
Capítulo 1. Introducción
Internacional
de Valencia

•• El auge de los sistemas de apoyo a las decisiones clínicas basadas en captura y análisis de datos
e información.
•• El desarrollo de nuevos dispositivos que permiten a los individuos monitorear su salud.
•• El uso de nuevas tecnologías que permiten que se tenga acceso al registro médico electrónico
de manera universal.

1.1. Definición de telemedicina y salud digital

La telemedicina consiste en la prestación de servicios de salud y asistencia médica utili-


zando plataformas de telecomunicaciones y tecnologías de información y comunicación,
que permitan el intercambio de múltiples medios, tales como voz, datos, vídeo e imágenes
asociadas a un paciente y reduzcan las limitaciones de tiempo, distancia y acceso a lugares
remotos.

La salud digital (e-health), según el emprendedor social de salud digital Paul Sonnier,
fundador del grupo Salud Digital en LinkedIn, puede definirse como el resultado de la revo-
lución digital y genómica sobre la salud, el cuidado de la salud, la vida y la sociedad. La salud
digital permite al paciente hacer un mejor seguimiento y gestión y, en definitiva, tomar
mayor control sobre la salud de su familia, vivir mejor, tener una vida más productiva y
tener una mejor sociedad. Asimismo, también ayuda a reducir ineficiencias en la prestación
de servicios de atención médica, aumentar su rango de acción, reducir costos, aumentar la
calidad y hacer que la medicina sea más personalizada y precisa.

La Figura 1 muestra las diversas áreas que comprende la salud digital:

Salud digital

Telemedicina digital m-health

Ponibles Sistemas de Procesamiento


Telecuidados Telesalud Aplicaciones
(wearables) salud digital analítico

Monitorización Monitoreo de Medicina Registro


Salud pública
enfermedades de salud
Gestión crónicas Salud, personal
remota de bienestar y (PHR) Genómica
medicamentos Consulta nutrición
médica por Registro Personalización
vídeo remoto médico de la medicina
electrónico
(EMR) Salud
inteligente

Figura 1. Áreas de la salud digital.

10
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Otra definición de salud digital ampliamente usada es la prestación de servicios de salud apoyada
por procesos electrónicos y el uso de las TIC, introduciendo dichas tecnologías en la vida de los
pacientes, y haciendo que participen de forma activa en el cuidado de su salud. Comprende una serie
de productos y servicios para la salud, como aplicaciones móviles, la telemedicina, los sistemas de
informática médica (como el Registro de salud personal y el Registro médico electrónico), los dispo-
sitivos ponibles (wearables) —para la monitorización que se integran en ropa y accesorios—, el big
data (grandes cantidades de datos), los sistemas de apoyo a la decisión clínica, el Internet de las
cosas (IdC) o Internet of Things (IoT), etc.

1.2. Áreas de aplicación de la telemedicina


Las aplicaciones de telemedicina permiten que el paciente envíe, de forma más o menos automática,
datos clínicos al médico. Esto se puede llevar a cabo de dos formas: 1) El paciente realiza la medición
de los parámetros y, posteriormente, envía los datos al médico. 2) Una aplicación va enviando, en
tiempo real, datos al médico sin que el paciente haga nada o sea consciente de ello. A su vez, algunas
aplicaciones de mobile health (m-health) posibilitan un diálogo fluido entre el paciente y el médico sin
tener que concertar visitas. La Figura 2 muestra algunos de los servicios que pueden ser ofrecidos a
través de la telemedicina y los tipos de servidores y dispositivos a usar para su implementación.

Telesalud Ponibles Aplicaciones


(wearables) móviles
Monitorización
de enfermedades Punto de acceso
crónicas

Internet banda ancha

Telecuidados

Servidor de Monitorización
señales posquirúrgica

Servidor de
imágenes
Servidor de bases
de datos
Servidor web

Figura 2. Áreas de la salud digital.

A continuación, se mencionan brevemente las principales áreas de aplicación (Cardier et al., 2016,
p. 841).

11
Capítulo 1. Introducción
Internacional
de Valencia

1.2.1. Teleconsulta

Este servicio es especialmente útil para pacientes alejados físicamente y para pacientes en situa-
ciones especiales, como por ejemplo grandes compañías (como petroleras y constructoras) con
personal en zonas aisladas y personal apostado en islas y zonas de difícil acceso.

1.2.2. Atención domiciliaria

Esta se refiere a los servicios de telecuidados, como por ejemplo el monitoreo de la tercera edad, y
telemonitoreo, que incluye el monitoreo de pacientes crónicos, en rehabilitación y en recuperación
postquirúrgica.

1.2.3. Telediagnóstico / Exploraciones complementarias

Este incluye la revisión remota y la generación de informes de los estudios provenientes de las
unidades de Imagenología, Laboratorio clínico y Anatomía patológica.

1.2.4. Teleurgencias

Este incluye el telemonitoreo de datos vitales (electrocardiograma, frecuencia cardiaca, presión


sanguínea, respiración, saturación de oxígeno (SpO2), temperatura, peso, sonidos del corazón, espiro-
metría, glucosa en sangre, etc.)

1.2.5. Discusión interactiva entre profesionales alejados físicamente

Esto incluye consulta de segunda opinión y atención médica integral, es decir, entre especialistas en
diversas áreas de la medicina.

1.2.6. Investigación

Esta incluye el intercambio científico nacional e internacional.

1.2.7. Salud pública y medicina de desastres

Esta área incluye servicios como los brindados por los centros de llamadas (call centers) de apoyo, y
los de control epidemiológico, y de colección y análisis para la generación de los índices de natalidad,
morbilidad y mortalidad.

1.2.8. Teleeducación

Este servicio puede prestarse a nivel de universidades, hospitales y servicios de salud. Incluye las
funcionalidades de capacitación interactiva, entrenamiento a distancia, como por ejemplo segui-
miento a intervenciones quirúrgicas a través de videoconferencia, y todo lo referente a cursos en
línea y multimedia.

12
Telemedicina y e-salud (e-health)
Internacional
de Valencia

1.3. Naturaleza de los datos a transmitir en telemedicina


1.3.1. Datos alfanuméricos

Entre ellos podemos mencionar los datos personales del paciente, nombre del médico, diagnóstico, etc.

1.3.2. Señales fisiológicas

Entre ellas cabe destacar el electrocardiograma (ECG), el electroencefalograma (EEG), el electromio-


grama, etc.

1.3.3. Imágenes estáticas

Entre ellas podemos destacar las imágenes de rayos X, tomografía computarizada, resonancia
magnética, etc.

1.3.4. Imágenes en movimiento

Entre ellas cabe destacar las imágenes de ecocardiografía, ultrasonido, angiografía cerebral y coro-
naria, etc.

A continuación, se muestra un esquema con los principales tipos de información a transmitir de los
pacientes.

Informes
Narrativa y texto Medicaciones y tratamiento

Notas, progreso y remisiones

Admisión e identificación
Administración Facturación y seguro médico

Agendamiento de citas

Resultados de laboratorio
Números
Signos vitales
discretos
Medidas

Anotaciones

Señales Eventos

Mediciones

Descripciones

Imágenes Dibujos y bocetos

Mediciones

Figura 3. Características de la información a transmitir de los pacientes. Adaptado de Curso de Health Informa-
tion Management, por F. Mora, 2015.

13
Capítulo 1. Introducción
Internacional
de Valencia

1.4. Tecnologías de comunicación inalámbricas

Las tecnologías de comunicación inalámbricas que son usadas en el área de la salud


comprenden el espectro de redes de comunicaciones que pueden capturar e intercambiar
información en torno a la salud y el bienestar de una persona.

1.4.1. WLAN

Una red de área local inalámbrica (wireless local area network o WLAN) es una red inalámbrica que
conecta equipos sin utilizar cables de red. Los equipos envían señales de radio para transmitir datos
entre ellos. Puede comunicarse directamente con los demás equipos inalámbricos o conectarse a una
red existente a través de un punto de acceso inalámbrico. A estas redes inalámbricas se conectan
sensores de pequeño tamaño y de muy bajo consumo, pegados al cuerpo de la persona, interconec-
tados entre sí a través de una red y, a su vez, conectados a un sistema central encargado de monito-
rear y/o recopilar la información recogida por cada uno de los sensores.

A continuación, se describen brevemente las tecnologías inalámbricas más comúnmente usadas en el


área médica.

1.4.2. RFID

La tecnología de identificación por radiofrecuencia (radio frequency identification o RFID) es un


sistema de intercambio de datos remoto, que usa diminutas etiquetas embebidas en una microtar-
jeta, que contienen datos sobre un artículo y su localización.

También contiene una antena que transmite señales de radio sobre distancias cortas hacia lectoras
especiales de RFID, que a su vez transmiten los datos a través de la red a una computadora para su
procesamiento.

Cuando los costes de tecnologías como los sistemas de identificación por radio frecuencia se redu-
jeron, el uso de Internet se popularizó y comenzaron a producirse sensores más pequeños, más
baratos y con menor consumo de energía, se incrementó el interés por conectar objetos entre sí para
manejarlos de forma remota, dando origen a lo que hoy en día se conoce como el Internet de las cosas.

RFID asigna un identificador único al objeto, lo cual hace posible hacer seguimiento en todo momento
de su localización.

Los dispositivos RFID activos tienen su propia batería, lo cual le brinda mayor autonomía al no nece-
sitar que el lector le envíe una señal para “despertar” al dispositivo e indicarle que envíe la informa-
ción, sino que puede enviarla automáticamente. Los dispositivos RFID pasivos tienen un rango de
alcance menor, son más económicos y para activarlos se necesita la energía de la señal de radiofre-
cuencia proveniente del lector.

14
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Aplicaciones típicas de esta tecnología en el área médica incluyen:

•• Identificación única del paciente, mediante el uso de brazaletes con etiquetas de


RFID en la muñeca del paciente.

•• Lector RFID conectado en red a la cama del hospital, para leer la etiqueta del pacien-
te para realizar búsquedas en su registro electrónico de salud y verificar si hay aler-
gias y posibles reacciones adversas a medicamentos, a fin de reducir posibles
errores médicos.

•• Verificación de si los medicamentos coinciden con la prescripción electrónica, etc.

1.4.3. Bluetooth

El Bluetooth es un tipo de red inalámbrica de área personal (WPAN) que permite la transmisión de
voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda de 2,4
GHz. Entre las ventajas de su uso figuran la de eliminar cables y conectores entre dispositivos y faci-
litar la sincronización entre equipos personales. La tecnología ofrece comunicación simplificada y
sincronización entre dispositivos sin necesidad de cables.

1.4.4. Redes de comunicación celular

Son redes de celdas que cada una cuenta con su propio transmisor, conocidas como estación base.
Estas celdas son usadas con el fin de cubrir diferentes áreas para proveer cobertura de radio sobre un
área más grande que el de una celda. Las más usadas actualmente son las de 3G y 4G.

Las redes 3G permiten la transmisión inalámbrica de datos hasta 2 Mbps e integra datos, voz y video.

Las redes 4G permiten la transmisión inalámbrica de datos a velocidades aún mayores a las de 3G,
alcanzando hasta 20 Mbps. Las más usadas son LTE y WiMAX y están basadas en el protocolo IP. La
cuarta generación brinda mayor calidad de servicio, seguridad y velocidades superiores a las de 3G.

1.4.5. Redes de sensores corporales

Las redes de sensores corporales (body area networks) son las que emplean dispositivos, sensores
y equipos interconectados que se llevan en la ropa o sobre el cuerpo de la persona. Su finalidad
es la monitorización, diagnóstico y detección de emergencias. El uso de estas redes permite una
supervisión continua. Actualmente, las redes de área corporal han logrado una especial relevancia,
en particular por las tendencias que muestran su uso en la medicina, en aplicaciones de monitoreo
y emergencia. Las redes de área corporal son sistemas de comunicaciones de pequeña escala. Las
transmisiones se realizan dentro, alrededor o sobre el cuerpo humano. Por consiguiente, las transmi-
siones de área corporal tienen características evidentes.

15
Capítulo 1. Introducción
Internacional
de Valencia

Una de las primeras es que la cobertura se encuentra confinada a distancias no superiores a los 2 o
3 metros y, en segundo lugar, las emisiones de energía de este tipo de tecnologías son muy bajas, lo
que contribuye a la larga vida de las baterías de los dispositivos, la reducción de los niveles de inter-
ferencia para la coexistencia con otras tecnologías, y la operación con potencias por debajo de los
niveles que pueden ser dañinos para el ser humano.

Las principales aplicaciones de las redes de área corporal se encuentran en medicina y entre-
tenimiento. Las aplicaciones médicas se centran en el monitoreo de variables del cuerpo
humano para el diagnóstico de enfermedades, gestión y control de tratamientos, prótesis
inteligentes y mecanismos que mejoran la calidad de vida de los pacientes, como por ejemplo
mejorar la interacción de personas que tienen limitaciones físicas o problemas con órganos
internos o de los sentidos, asistencia en cirugías y diagnóstico de enfermedades, etc. En el
segundo caso, las aplicaciones de entretenimiento y de intercambio de información se centran
en la transferencia de ráfagas de información multimedia, audio, video y datos para disposi-
tivos como reproductores de música y video, así como aplicaciones para la automatización de
las oficinas, la industria y el hogar, en donde el posicionamiento, el automatismo y las alterna-
tivas de conectividad a Internet brindan sus principales beneficios.

16
Capítulo 2

Sistemas de información médica

El uso de los sistemas de información en el entorno de la salud experimentó un gran avance con la
evolución del internet y las telecomunicaciones, lo que permitió por un lado hacer mayor énfasis en
la medicina preventiva y por el otro una visión más holística de la práctica de la medicina al permitir
que los diversos especialistas, proveedores de salud tuvieran acceso a los registros de salud desde
prácticamente cualquier lugar en cualquier momento. A continuación, se hace un breve repaso de los
principales sistemas de información en salud.

2.1. Registro electrónico de salud


El registro electrónico de salud (electronic health record o EHR) es una colección de información
médica electrónica de pacientes individuales o de poblaciones, y que usualmente provienen de una
variedad de proveedores de salud.

Entre los principales componentes del registro electrónico de salud cabe destacar:

•• Módulo de laboratorio: contiene todas las órdenes de exámenes de laboratorio prescritos y sus
resultados usualmente codificados usando diccionarios ontológicos (LOINC, etc.) para su alma-
cenamiento.

•• Módulo de radiología: almacena los informes de estudios realizados.

17
Capítulo 2. Sistemas de información médica
Internacional
de Valencia

•• Módulo de farmacia: provee la lista de medicamentos usados actualmente, la lista inactiva de


medicamentos y cuándo fue la última vez que fueron recetados o entregados al paciente.

•• Módulo de facturación: contiene entre otras cosas la lista de códigos diagnósticos usados para
facturación al seguro médico (ICD9, CPT, etc.).

•• Módulo de registro de pacientes: contiene los nombres, información de contacto, información


personal, etc., de los pacientes.

2.2. Registro médico electrónico


El registro médico electrónico (electronic medical record o EMR) Es un registro de pacientes creados
por los proveedores de salud por encuentros o visitas específica en hospitales y centros ambulato-
rios, y que sirven como fuente de información para en registro electrónico de salud.

2.3. Registro de salud personal


El Registro de salud personal (personal health record o PHR) es una aplicación electrónica para regis-
trar datos médicos personales que el propio paciente controla y puede enviar al proveedor de salud
en forma privada, segura y confidencial.

2.4. Sistemas de prescripción y medicación electrónica


Los sistemas de prescripción y medicación electrónica (domputerized physician order entry o CPOE)
son sistemas informáticos usados para la transmisión y el llenado electrónico de recetas médicas
mediante una computadora, lo cual sustituye el uso tradicional de papel y tinta, facilitando así que
médicos, dentistas, farmacéuticos, enfermeras, y demás personal de este ramo, puedan llenar una
prescripción nueva y enviarla directamente a la farmacia. Esto posibilita que un responsable de la
salud envíe, electrónicamente, a una farmacia, recetas claras y precisas. El objetivo de esta moda-
lidad de prescripción es la reducción de errores respecto a la prescripción tradicional en papel por
problemas de ilegibilidad de los medicamentos y sus dosis, y de órdenes de exámenes.

El 60 % de los errores médicos son debidos en gran parte a errores en la interpretación o lectura
manual de la receta médica, errores al interpretar las unidades o la vía de administración, administra-
ción errada de un medicamento a otro paciente, etc. Para atender esta necesidad se buscó automa-
tizar el flujo de trabajo del proceso de prescripción y medicación electrónica a través de este tipo de
sistema de información.

Por lo tanto, el CPOE incluye:

•• Entrada electrónica de la receta médica y la orden de estudios por parte del médico en el siste-
ma computarizado.

•• Recepción de las órdenes a través de la red de computadoras del CPOE, por parte de los res-
ponsables de ejecutar las órdenes y de notificaciones para alertarlos de que hay una nueva or-
den pendiente.

18
Telemedicina y e-salud (e-health)
Internacional
de Valencia

•• Recomendaciones sobre las dosis de los fármacos y medicamentos a administrar a los pacien-
tes.

•• Notificaciones de posibles reacciones adversas al suministrar ciertas combinaciones de medi-


camentos o por ciertas características.

•• Despliegue de la historia médica del paciente.

•• Búsqueda en los fármacos de alergógenos a los que se conoce que el paciente es sensible.

•• Interacciones farmacocinéticas, dosis sugeridas por defecto, unidades de sus componentes,


dosis máximas, vía de administración, alertas por alergias a medicamentos, entre otros.

•• Preparación en farmacia, validación desde el punto de vista farmacéutico, conciliación al alta


médica para que la prescripción electrónica coincida con el tratamiento indicado en el informe
médico.

•• Entrega al paciente del medicamento.

2.5. Servidores de imágenes


Los servidores de imágenes médicas, más conocidos como sistemas de comunicaciones y almace-
namientos de imágenes (picture archiving and communication systems in medicine) contienen: esta-
ciones de revisión y diagnóstico radiológico, almacenamiento en línea de largo plazo y distribución
bajo entorno web.

Entre los requerimientos de estos sistemas figuran:

•• Escalabilidad de uso simultáneo de cientos de usuarios.

•• Garantía: 99,9 % del tiempo del sistema de funcionamiento.

•• Escalabilidad entre los sitios de implementación.

•• Requerimiento de entrenamiento mínimo.

•• Plan de recuperación de desastres.

•• Imágenes de calidad para diagnóstico confiable.

Para integrar una plataforma PACS con el registro médico electrónico normalmente se cuenta con
una herramienta de desarrollo de software (software development toolkit o SDK), que permite hacer
un enlace directo a imágenes del estudio desde el registro medico electrónico usando un hipervínculo
desde el informe médico del paciente.

19
Capítulo 2. Sistemas de información médica
Internacional
de Valencia

2.6. Sistemas de información radiológica


Los sistemas de información radiológica (Radiology Information Systems o RIS) son en realidad
la automatización del control de citas de una unidad de Imagenología, y comprenden los siguientes
componentes:

1. Cronograma para agendar citas.

2. Lista de trabajo del técnico radiólogo.

3. Lista de trabajo de la transcriptora.

4. Matriz del tiempo para el seguimiento de estudio.

5. Acceso remoto al especialista para la generación de reportes y agendamiento de citas.

6. Conectividad RIS – PACS (HL7).

7. Distribución automática de informes.

8. Dictado digital y reconocimiento de voz.

9. Formularios digitales que debe cumplimentar el paciente.

Para automatizar todo el proceso, es necesario conocer el flujo de trabajo de un departamento de


imagenología, que a grandes rasgos es el siguiente:

1. El paciente solicita una cita para realizarse un estudio.

2. La recepcionista agenda la visita e indica en qué equipo se hará. Esto generará una lista de tra-
bajo en la estación del técnico radiólogo.

3. El día de la cita el paciente llega al departamento de Imagenología para realizarse el estudio.

4. El estudio pendiente aparece en la lista de trabajo en la consola del técnico radiólogo.

5. El técnico radiólogo realiza el estudio.

6. El médico radiólogo dicta el informe.

7. La transcriptora escucha el audio del informe radiológico dictado por el médico radiólogo y lo
transcribe.

8. El médico radiólogo recibe el informe transcrito y realiza la verificación de que el informe trans-
crito coincide con el dictado por el radiólogo.

9. La recepcionista entrega el estudio al paciente.

20
Telemedicina y e-salud (e-health)
Internacional
de Valencia

La descripción esquemática de este proceso se muestra a continuación:

Solicitud de Llegada a la unidad


Paciente
examen radiológico de imagen

Recepcionista Agenda y cita

Técnico Examen radiológico


radiólogo realizado

Dictado de informe Verificación de


Radiólogo
radiológico informe radiológico

Transcripción de
Transcriptor
informe radiológico

Entrega de informe
Recepcionista
radiológico

Figura 4. Flujo de trabajo de un departamento de radiología.

21
Capítulo 3

Interoperabilidad y estandarización de datos e información


clínica

3.1. Interoperabilidad de dispositivos médicos en el entorno


usuario/paciente (ISO/IEEE11073)
La interoperabilidad de los dispositivos médicos (usuario/paciente) está dada por la ISO/IEEE 11073.

Los dispositivos médicos se agrupan en tres categorías, sobre las que se puede utilizar esta
especificación:

•• Control y gestión de enfermedades: termómetro, oxímetro de pulso, báscula, glucó-


metro, presión arterial, pulsómetro, etc.
•• Pacientes de avanzada edad, y con cuidado independiente: dispositivos de control de
enfermedades y monitoreo de actividades cotidianas, recordatorio y dispensador de
alimentos.
•• Salud y fitness: equipo de entrenamiento cardiovascular y monitor de actividad, bás-
cula, pulsómetro, termómetro.

22
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Los principales objetivos de las normas ISO/IEEE 11073 son:

•• Proporcionar conectividad en tiempo real y reproducir la interoperabilidad de los individuos en


relación a los productos de atención médica, la salud y el bienestar.
•• Facilitar el intercambio eficiente de datos de los dispositivos de atención, adquiridos en el pun-
to de atención, en todos los entornos de atención.

La idea también es la de permitir que los dispositivos médicos puedan interconectarse y operar
entre sí con otros dispositivos médicos, para proporcionar interoperabilidad ubicua y en tiempo real
para los diferentes dispositivos médicos que necesite el paciente y facilitar el intercambio eficiente
de los signos vitales y de la información asociada a los dispositivos en diferentes entornos clínicos.
Para ello, utilizan especificaciones como Bluetooth o WLAN o incluso 3G o 4G en las capas más bajas
del modelo OSI.

Los datos médicos son intercambiados entre un dispositivo de salud personal, que actúa como
agente, y un sistema central de registro, que actúa como manager. Estos datos pueden ser enviados
a un centro remoto de control para su almacenamiento en la historia clínica electrónica (HCE) y su
posterior consulta, conforme al estándar EN13606. Así, se permite construir soluciones globales
basadas en estándares extremo-a-extremo.

El estándar nació enfocado a su implantación en unidades de cuidados intensivos (point-of-care,


X73PoC) y, en los últimos años, ha experimentado diversas evoluciones no contempladas inicialmente
(nuevos casos de uso, nuevos perfiles, etc.). En esta línea, el Comité Europeo de Normalización se ha
adaptado a esta realidad tecnológica con una la versión para entornos de salud personal (personal
health device, X73PHD).

Enlace de interés
Este enlace permite acceder a la norma ISO/IEEE 11073.
https://www.iso.org/standard/61897.htmlhttps://www.iso.org/standard/61897.html

3.2. Interoperabilidad para el intercambio, la integración


y la recuperación de información electrónica de salud:
Health Level 7 (HL7)
Health Level 7 (HL7) introdujo su nuevo estándar de intercambio de datos médicos llamado Fast
Healthcare Interoperability Resources (FHIR) que aprovecha la misma tecnología moderna basada
en web de interface de programación de aplicaciones, usadas por otras aplicaciones como Twitter y
Facebook (incluyendo el protocolo RESTful, json/xml, oauth). Esta versión surgió para adaptarse a
los retos que suponen las nuevas tendencias como la salud digital m-health, el intercambio de regis-
tros de salud personales (PHR), la historia clínica electrónica (EHR), las comunicaciones en la nube o el
IdC. El estándar está diseñado específicamente para la web. La información se intercambia en base a
estructura XML o JSON que utilizan un protocolo REST basado en HTTP (Braunstein, 2016, p. 117).

FHIR se basa en lo que denominan recursos. Un recurso es la unidad básica de interoperabilidad, la


unidad más pequeña que tiene sentido intercambiar. Los recursos son representaciones de conceptos
del área clínica, y administrativa, como, por ejemplo, paciente, especialista clínico, procedimiento o cita.

23
Capítulo 3. Interoperabilidad y estandarización de datos e información clínica
Internacional
de Valencia

Los recursos tienen una serie de elementos comunes:

•• Un identificador a través de la cual puede ser registrado, localizado y recuperado.


•• El contenido, formado por una serie de campos de información, definidos en la estruc-
tura del propio recurso.
•• Un mecanismo de extensión que permite a los implementadores añadir nuevas pro-
piedades de manera sencilla.

•• Un componente denominado elemento narrativo, que permite una visión legible de


los datos almacenados en el recurso.

Mediante el uso de un API estándar, FHIR permite a los desarrolladores crear aplicaciones que se
pueden conectar a una HCE e introducir información directamente en el flujo de trabajo del proveedor,
evitando incomodidades de otros estándares que a menudo requieren que el proveedor acceda a los
datos por separado.

Enlace de interés
Consulta la página web oficial de HL7Spain.
http://www.hl7spain.org/

3.3. Interoperabilidad de intercambio de historia clínica electrónica


(HCE): EN13606
La norma EN13606 tiene como objetivo fundamental la representación y comunicación de parte o
toda la historia clínica electrónica entre sistemas de historia clínica electrónica (HCE) diferentes.
Cabe destacar que la norma es independiente de los detalles particulares de implementación.

Esta norma asegura la interoperabilidad semántica de la información transmitida entre


centros de salud y asistencia médica diferentes y facilita la definición de las estructuras de
información que se desean utilizar, a las que se les da el nombre de arquetipos.

La norma está formada por cinco partes:

•• Modelo de referencia.
•• Especificación para el intercambio de arquetipos.
•• Referencia de arquetipos y lista de términos.
•• Características de seguridad.
•• Modelos de intercambio.

24
Telemedicina y e-salud (e-health)
Internacional
de Valencia

La norma se basa en el uso de dos modelos: de referencia y de arquetipos. El modelo de referencia


representa las estructuras que se utilizan para albergar la información, mientras que el modelo
de arquetipos se utiliza para generar las estructuras que guardan el conocimiento del dominio, que
son los arquetipos. El modelo de referencia define las estructuras para organizar la información. La
estructura más general es el extracto, que contiene la parte seleccionada de la HCE de un paciente
para ser transferida a otro sistema. Los extractos forman parte de los mensajes, que son estructuras
de nivel superior definidas en la parte 5 del estándar. Los extractos incluyen información demográ-
fica para reconocer al paciente y a todos los agentes involucrados, información sobre las políticas de
acceso, información clínica y otros tipos de información auxiliar como auditorías o firmas.

Enlace de interés
Consulta la norma europea EN13606:
https://www.une.org/encuentra-tu-norma/busca-tu-norma/norma/?c=N0051032

3.4. Códigos de diagnósticos médicos: SNOMED-CT


SNOMED-CT (Systematic Nomenclature of Medicine – Clinical Terms) es un diccionario ontológico
que establece códigos y sus relaciones para nombres de microorganismos, síntomas y patologías.

Tiene como propósito ayudar a estructurar y computarizar el registro médico, al reducir


la variabilidad con la que los datos son capturados, codificados y usados para el cuidado
médico del paciente y en investigación médica (Braunstein, 2016, p. 114).

Contiene alrededor de 311.000 conceptos únicos del área de cuidado de la salud, 800.000 descrip-
ciones y por encima de 1,36 millones de relaciones entre los conceptos. Por ejemplo, Diabetes mellitus
es un trastorno de regulación de la glucosa. En las tres figuras que se muestran a continuación, se
presenta un ejemplo que ilustra cómo se usan los conceptos y se establecen las diversas relaciones,
tomando como ejemplo de patología la neumonía.

SNOMED CT Concepto
Es un Es un
Es un
Estructura del cuerpo Organismo
Hallazgo clínico

Es un
Es una Es un
en Neumonía
ntra
cue
n
Se e Es una
Se encuentra en
Estructura del pulmón Neumonía infecciosa
Se e
ncu
entr Es una
a en
Agente causal
Neumonía bacterial Bacteria

Figura 5. Ilustración de conceptos en SNOMED-CT y sus relaciones. Adaptado de “3.1.3. Relationships”, en Technical
Implementation Guide. Recuperado de https://confluence.ihtsdotools.org/display/DOCTIG/3.1.3.+Relationships

25
Capítulo 3. Interoperabilidad y estandarización de datos e información clínica
Internacional
de Valencia

Todos estos diccionarios ontológicos suelen tener un navegador de acceso gratuito para facilitar la
familiarización con su uso, y está disponible en diversos idiomas.

Figura 6. Ejemplo de uso del navegador de SNOMED-CT. Resumen del concepto de neumonía bacterial. Recupe-
rado de http://browser.ihtsdotools.org

Figura 7. Ejemplo de uso del navegador de SNOMED-CT. Diagrama del concepto de neumonía bacterial. Recupe-
rado de http://browser.ihtsdotools.org

Enlace de interés
Consulta la página de SNOMED International, la organización que desarrolla el diccionario.
http://www.snomed.org/

26
Telemedicina y e-salud (e-health)
Internacional
de Valencia

3.5. Estándar para el intercambio de imágenes médicas e


integración con sistemas de información radiológica: DICOM
DICOM es el estándar más utilizado para transmitir y almacenar imágenes de diagnóstico médico. Se
definen una serie de recursos (entidades o clases de objetos: paciente, estudio, serie, instancia), los
cuales se ilustran en la Figura 8.

Estudio 1 Serie 1 Instancia 1


Paciente

Instancia z

Serie y

Estudio x

Figura 8. FHIR en el intercambio de imágenes DICOM. Adaptado de ftp://medical.nema.org/MEDICAL/Dicom/


Workshop-Chengdu/Presentations-English/1005-Genereaux-DICOMweb.pptx

Por medio de hipervínculos desde aplicaciones desarrolladas bajo entorno web para el manejo
de imágenes, se puede hacer intercambio de imágenes entre aplicaciones, almacenarlas,
ubicarlas para analizarlas, imprimirlas, enviarlas a un sistema PACS de archivo de imágenes,
visualizarlas desde una ventana en la aplicación de registro de salud del paciente, etc.

A continuación, se mencionan brevemente las funcionalidades DICOM estándar:

•• DICOM PRINT: permite el envío de imágenes para su impresión en una Impresora DICOM.

•• DICOM SEND o STORE o DICOM IMAGE EXPORT: permite el envío de imágenes al PACS para su
almacenamiento.

Y las funcionalidades DICOM avanzadas:

•• DICOM MODALITY WORKLIST (MWL): permite que la información demográfica del paciente
sea transferida desde el Sistema de Control de Citas (RIS) al equipo en el cual se realizará el
estudio. Desde el RIS se asigna el equipo a usar para cada estudio. La consola del equipo mues-
tra una lista de trabajo con los estudios pendientes que han sido asignados desde el RIS.

27
Capítulo 3. Interoperabilidad y estandarización de datos e información clínica
Internacional
de Valencia

•• STORAGE COMMITMENT (SC): permite al PACS notificar de manera automatizada cuando las
imágenes han sido almacenadas de manera segura y pueden ser por tanto borradas en el equipo
desde el cual fueron transferidas.

•• QUERY/RETRIEVE (Q/R): permite a una estación de trabajo DICOM conectarse al PACS para
ubicar estudios de pacientes y transferirlos para su posterior visualización y manipulación en
dicha estación de trabajo.

28
Capítulo 4

Sistemas de monitorización y servicios de e-salud


(e-health). Estudio de casos

4.1. Plataforma de salud digital desarrollada para el Departamento


de Servicios a Veteranos de Estados Unidos
El Departamento de Servicios a Veteranos de Estados Unidos cuenta con una plataforma de salud
digital, con tecnología basada en la nube, que permitirá a su red de clínicas y hospitales, a regis-
tros electrónicos de salud militar y comercial, a diversos dispositivos como las pulseras ponibles, y
a diversos proveedores de salud y empresas aseguradoras, acceso en tiempo real a la información
médica de su personal.

Esto facilitará la interoperabilidad y el intercambio de información de manera acertada


y oportuna cuando el paciente acuda a diversos centros de salud para su pronta atención
médica, disminuyendo la posibilidad de errores y permitiendo una atención mucho más efec-
tiva y personalizada (Monica, 2017).

Esta plataforma emplea especificaciones como HL7 y tecnologías basadas en la nube para poder
brindar una visión holística del registro electrónico de salud de los veteranos.

29
Capítulo 4. Sistemas de monitorización y servicios de eSalud (e-health). Estudio de casos
Internacional
de Valencia

La plataforma digital de salud está haciendo uso de interfaces de programación de aplicaciones


(application programming interface o API) a fin de consolidar información de salud médica prove-
niente de diversos sistemas informáticos de salud militar y comercial, conectar pacientes y provee-
dores de salud de manera instantánea, aceptar información proveniente de una amplia gama de
dispositivos médicos de nueva generación, y mejorar el cuidado y la atención de salud de los pacientes
de la red de veteranos.

Enlace de interés
Este enlace permite acceder al Departamento de Servicios a Veteranos de Estados Unidos:
https://www.va.gov/

4.2. Sistema de seguimiento digital de los pacientes quirúrgicos


del Hospital Vall d’Hebron de Barcelona
El hospital Vall d’Hebron de Barcelona, en colaboración con la empresa de telecomunicaciones Telefó-
nica, ha implementado un sistema de trazabilidad de los pacientes en el área quirúrgica, que permite
conocer en tiempo real la ubicación y en qué etapa del proceso de realización de intervenciones
quirúrgicas se encuentra cada caso, lo cual se traduce en su realización de manera más eficaz, óptima
y segura, pues se elimina la posibilidad del error humano en el traslado del paciente de un lugar a otro
(Telefónica, Nota de prensa sobre Hospital Vall d’Hebron, 2018).

El paciente porta un brazalete con una etiqueta (tag) con identificación única, que se comu-
nica vía Bluetooth de baja energía con un sistema de balizas (beacons), repartidas por toda
el área de cirugía. Con ello, es posible desplegar en los diversos monitores repartidos por
toda el área, información de identificación y localización del paciente en tiempo real, así
como información del quirófano asignado, cirujanos y anestesiólogos que participarán, tipo
de intervención y etapa en la que se encuentra (preparación, cirugía, recuperación, recupera-
ción para salir).

El sistema se encuentra integrado con el sistema de información de la institución, con lo cual es


posible acceder a la historia clínica del paciente, para ubicar de manera eficaz cualquier información
pertinente del paciente, como, alergias a fármacos y medicamentos, controles de tensión arterial,
condiciones patológicas existentes, tratamiento médico que está siguiendo actualmente, etc.

También cuenta con una aplicación móvil que pueden descargar los familiares del paciente para
conocer en todo momento en qué etapa del proceso quirúrgico se encuentra el paciente. Esta infor-
mación está cifrada, para garantizar la seguridad y confidencialidad del paciente en el envío.

Enlace de interés
Consulta la información sobre el sistema implementado en el siguiente enlace:
https://www.telefonica.com/es/web/sala-de-prensa/-/vall-d-hebron-y-telefonica-presentan-
un-nuevo-sistema-de-seguimiento-digital-de-los-pacientes-quirurgicos

30
Capítulo 5

Sistemas y aplicaciones en salud soportados por


dispositivos móviles (m-health) y aplicaciones de sistemas
de salud personalizada (p-health)

5.1. Health de Apple

La aplicación Health de Apple fue creada para mantener informado al usuario sobre su salud y
encontrar la motivación necesaria para alcanzar sus objetivos de entrenamiento físico.

Esta aplicación recopila los datos de salud del iPhone y del brazalete Apple Watch, con el fin de que
el usuario pueda ver todo su progreso en un mismo lugar de manera integral. Esto les permite cuidar
de su propio bienestar de una forma mucho más sencilla, dando lugar a los nuevos paradigmas de
cuidados centrados en el paciente, que se traducen en un cuidado planificado, manejado, entregado y
mejorado de forma continua con la activa participación de los pacientes y sus familias.

La aplicación distingue cuatro categorías: actividad, sueño, conciencia plena y nutrición. La infor-
mación que cree o recopile el usuario sobre sí mismo está bajo su control y se cifra con el código de
acceso cuando el usuario bloquea el iPhone.

31
Capítulo 5. Sistemas y aplicaciones en salud soportados por dispositivos móviles (m-health)
Internacional
y aplicaciones de sistemas de salud personalizada (p-health) de Valencia

Según ha informado Apple, el objetivo es que la nueva actualización haga más fácil a los consumidores
ver su información médica disponible desde los distintos centros médicos que la proveen.

Precisamente, los expedientes médicos de la app se ordenarán en categorías como alergias, condi-
ciones, medicinas, procedimientos y resultados de exámenes de laboratorio. Toda la información
estará protegida por la misma contraseña del móvil, para evitar intromisiones a la intimidad.

Enlace de interés
Enlace en el que acceder a la página oficial de la app Health (Salud) en castellano:
https://www.apple.com/es/ios/health/

5.2. Patientslikeme
Jamie y Ben Heywood son cofundadores de la página Patientslikeme, motivados por la condición de
su hermano Stephen, quien sufría de esclerosis amiotrófica lateral. Él era un individuo saludable pero,
a la edad de 29 años, comenzó a padecer esta enfermedad. No podía moverse, ni practicar deportes, ni
respirar adecuadamente.

Ante esta situación los dos hermanos decidieron impulsar esta idea de desarrollar la página
Patientslikeme, con el fin de ayudar a los pacientes a obtener el mejor resultado posible que
ellos pudieran lograr en relación a su salud y su condición.

A través de ella, podían tener comunicación con otras personas con su misma enfermedad, intercam-
biar sus diversas impresiones y compartir experiencias en torno a su condición, experiencias de trata-
mientos, síntomas, cuáles fueron los resultados de un determinado tratamiento, si fue bueno o no, si
empeoró los síntomas o no, y esto es aplicable en general a cualquier condición, como diabetes, escle-
rosis amiotrófica lateral, Parkinson, etc.

Está concebida como una plataforma de apoyo al paciente, para ir de la mano con el paciente, y para
ayudarlo a aliviar el estrés y la ansiedad que le causa su propia condición. También es usada para
recoger información de los pacientes en forma colectiva y usarla en investigación para mejorar la
forma en que se practica la medicina, al permitir ser mucho más personalizada. En la actualidad, la
plataforma posee alrededor de 600.000 usuarios y más de 2.800 condiciones de salud.

5.3. Samsung Health con pulsera inteligente


La aplicación S-Health de Samsung es una de las más completas en el mercado. A su vez, Gear Fit 2
es una pulsera inteligente con GPS ofrecida por Samsung que junto a la aplicación S-Health permite
registrar la actividad física asociada a hacer deporte, como salir a correr o hacer una sesión de
fitness. Es resistente al agua y el polvo, por lo que permite seguir registrando datos incluso ante
presencia de sudor, polvo o lluvia. Posee acelerómetro, barómetro, giroscopio y sensor de frecuencia
cardiaca, y su peso es de aproximadamente 30 gramos.

32
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Registra datos básicos como edad peso y estatura, y otros datos como la frecuencia
cardiaca, el máximo de pulsaciones y las calorías quemadas en cada rutina, además de la
ruta, la distancia y la velocidad del recorrido caminando, corriendo o montando bicicleta. A
su vez, permite llevar el control de la ingesta y la cantidad de calorías ingeridas.

Enlace de interés
En el siguiente enlace podéis consultar las características de la aplicación y acceder a la
descarga para iOS y Android.
https://www.samsung.com/es/apps/samsung-health/

33
Capítulo 6

Monitorización del paciente crónico y de edad avanzada

El incremento de la población de tercera edad y el aumento de patologías crónicas en pacientes de


todos los países se traduce automáticamente en el incremento en la demanda de los servicios de
asistencia médica (Yáñez, 2016).

Según informe de la Organización Mundial de la Salud (OMS), entre los años 2000 y 2015 la esperanza
de vida media en el mundo registró un aumento de cinco años, y según las predicciones del Instituto
Nacional de Estadística (INE) en 2050 la cifra de personas mayores se duplicará hasta los 16 millones
en España, la mitad serán mayores de 80 años y casi 200.000 personas superarán los 100 años. Esto
ha generado un creciente aumento en las soluciones diseñadas para mejorar la atención del paciente
crónico y de edad avanzada. Algunas de las herramientas y consideraciones a tomar en cuenta se
mencionan a continuación.

6.1. Sistemas de localización de personas


Actualmente la sociedad demanda servicios nuevos para adaptarse a las nuevas necesidades que
surgen debido a los cambios. Uno de esos servicios demandados es la localización y seguimiento de
personas. Este servicio es particularmente útil sobre todo en pacientes que sufren condiciones como
el Alzheimer. Es conocido que el 95 % de los enfermos de Alzheimer fallecen si pasan una sola noche a
la intemperie.

34
Telemedicina y e-salud (e-health)
Internacional
de Valencia

El sistema normalmente cuenta con un GPS para la obtención de las coordenadas de


latitud y longitud de ubicación del paciente. Los familiares pueden seguir la posición del
enfermo en cualquier momento mediante una pequeña pantalla. Esto permite un segui-
miento de la localización del paciente en todo momento, mejorando así su calidad de vida
y la de sus cuidadores.

El localizador puede instalarse en un reloj, un cinturón, llavero colgante, cartera o un zapato. Adicio-
nalmente, sistemas como este permiten delimitar espacios de seguridad configurables para cada
persona según su entorno, y evitar zonas de peligro concretos como ríos o vías de ferrocarril. De este
modo, la web facilita tener a los enfermos controlados en todo momento e, incluso, lanzar avisos a los
organismos de protección ciudadana cuando sobrepasen los espacios de seguridad o se desorienten.
Asimismo, también ofrecen la posibilidad de establecer una comunicación bidireccional entre la
persona desorientada y aquella que recibe el mensaje de auxilio en la web o en su teléfono móvil.

Enlace de interés
En esta página de la Fundación Alzheimer España se explica el funcionamiento de un locali-
zador GPS de enfermos:
http://www.alzfae.org/fundacion/448/como-localizar-a-su-familiar-con-alzheimer-por-gps

6.2. Servicios y tecnologías de apoyo a la vida independiente

La vida independiente es un derecho humano fundamental para todas las personas con
discapacidad, dependencia y vulnerabilidad social, sean cuales sean sus necesidades, carac-
terísticas y limitaciones funcionales. Y en este sentido, la tecnología es un instrumento
básico para conseguir un mayor nivel de autonomía en la realización de las actividades de la
vida diaria y es especialmente útil para las personas con limitaciones funcionales, permitién-
doles una vida más independiente.

En el pasado, esta se centró fundamentalmente en las tecnologías asistidas y los dispositivos de


telecuidados, diseñados para detectar movimiento, reducir riesgos y monitorizar a los pacientes.
Estos sistemas son ahora ampliamente usados y las nuevas tecnologías ofrecen ahora mayores
posibilidades a un bajo costo. Por ejemplo, dispositivos inteligentes en el hogar proveen diversas
funciones a un costo relativamente bajo, usando sensores para detectar movimiento, medir humedad
y temperatura, así como controlar remotamente los niveles de frío o calor, la iluminación, los cerrojos
y los equipos de video.

Se cuenta también con dispositivos para conocer la ubicación de los pacientes, juegos de video para
ejercitar el cerebro y la memoria, y equipos y aplicaciones para lidiar con la pérdida de memoria y faci-
litar la orientación y la comunicación.

35
Capítulo 6. Monitorización del paciente crónico y de edad avanzada
Internacional
de Valencia

Esto puede traducirse en una tablet o teléfono inteligente que emita notificaciones y recordatorios; o
en un sensor de movimiento que reproduzca un mensaje grabado que le recuerde al usuario que tome
sus llaves y asegure la puerta.

Los dispositivos inteligentes en el hogar pueden usarse conjuntamente con tecnologías como Echo de
Amazon o Siri de Apple para que sean controlados por mensajes de voz, lo que puede ser de gran utilidad
a personas con problemas de movilidad o que se sienten confundidas por tener múltiples controles.

Se puede reproducir música y escuchar libros de audio, y el sistema les puede responder preguntas básicas
como ¿qué día es hoy? o ¿qué hora es?, así como contar chistes. Adicionalmente, se le puede hacer las
mismas preguntas mil veces sin que se vean afectadas las emociones y la sensibilidad del paciente.

Finalmente, la tecnología puede proveer acceso a redes sociales y fuentes de información tanto a
pacientes como a sus cuidadores.

Enlace de interés
Artículo sobre la llegada de los dispositivos Echo de Amazon a España:
https://www.xataka.com/accesorios/amazon-echo-resto-altavoces-familia-alexa-llegan-a-
espana-precio-disponibilidad

6.3. Tecnologías de monitorización del paciente crónico


Las tecnologías de gestión de información procesan los datos que envían los instrumentos de moni-
torización u otros dispositivos. Para ello, utilizan reglas y lógicas para comparar información con los
objetivos y estándares establecidos. Esto permite a los profesionales de salud realizar un segui-
miento de los avances y enviar alertas, si es necesario. Algunos programas procesan la información de
forma continua para proporcionar ideas y recomendaciones para cada paciente de forma automática
sin intervención directa del profesional de salud.

La monitorización remota y apoyo al tratamiento permite una mayor participación en el cuidado


continuo de pacientes. En entornos de recursos y limitaciones en la disponibilidad de camas, la
cultura de supervisión remota permite a los profesionales de la salud mejorar las condiciones de vida
del paciente, el cumplimiento de la toma de medicamentos ordenados por el médico y el seguimiento
de la evolución del paciente.

Tecnologías inalámbricas como el Bluetooth permiten a los pacientes, junto con sus médicos, realizar
una monitorización de los signos vitales. Diversos equipos permiten supervisar a distancia pacientes
con enfermedades crónicas como la enfermedad pulmonar obstructiva crónica (EPOC), la insufi-
ciencia cardiaca congestiva (ICC), la diabetes, la obesidad o el asma. También proporciona una cone-
xión segura para el intercambio de información vital, lo que brinda elevada versatilidad, ya que se
conecta fácilmente a diferentes dispositivos como teléfonos móviles, teléfonos inteligentes, etc.

Enlace de interés
Artículo sobre la aplicación de Bluetooth para permitir el seguimiento en tiempo real de los
pacientes quirúrgicos que lleva a cabo el Sistema de Salud de La Rioja:
https://logrono24horas.com/un-sistema-bluetooth-permitira-el-seguimiento-en-tiempo-re-
al-de-los-pacientes-quirurgicos-riojanos/

36
Telemedicina y e-salud (e-health)
Internacional
de Valencia

6.4. Paradigma salud 2.0 (health 2.0)


Los paradigmas son modelos de explicación integral de los procesos de salud y enfermedades que
establecen lo que es normal o legítimo como conocimiento o intervención, mientras sean coherentes
con el paradigma vigente.

Salud 2.0, así como el concepto medicina 2.0, representan las posibilidades entre el cuidado de la
salud y la web 2.0. Una definición concisa de la salud 2.0 es la de uso específico de un conjunto espe-
cífico de herramientas web (web, blog, podcast, tagging, búsqueda web, wikis, etc.) por parte de los
profesionales de la salud y demás participantes de ese entorno, incluyendo médicos, pacientes e
investigadores utilizando los principios de código abierto y la generación de contenidos por los usua-
rios, potenciado por la conectividad de las redes, con la finalidad de personalizar la atención médica,
colaborar y promover la educación para la salud.

La salud 2.0 es un proceso participativo entre el paciente y el médico. Es una combinación


de datos de salud e información de salud del paciente, la experiencia a través del uso de las
TIC, que permiten al individuo convertirse en un participante activo responsable en su propia
salud. Es una medicina participativa habilitada por la información, software y la comunidad.
Los pacientes se convierten en participantes en la gestión de su propia salud.

Descarga de archivo
En Campus Virtual > Aula de la asignatura > Recursos y materiales podrás consultar el
estudio de Doctoralia Los españoles y la medicina 2.0, que analiza los hábitos y las conductas
de los pacientes españoles respecto a las herramientas de eSalud disponibles en la actualidad
(archivo Doctoralia_Estudio_Usos_Tecnologia_Pacientes).

37
Capítulo 7

Almacenamiento y modelaje de datos

7.1. Diseño de una base de datos


Se requiere aplicar una serie de principios en el diseño de bases de datos para su correcto funciona-
miento y su efectividad, a la hora de realizar búsquedas y manipulación de los datos almacenados en
ella.

El punto de entrada es la creación de un modelo de datos que permita:

•• Eliminar los datos redundantes, evitando consumos innecesarios de espacio en disco.

•• Mantener la integridad de los datos almacenados.

•• Permitir un acceso rápido y eficiente a la información sensible.

Una base de datos se descompone en tablas que contienen datos relacionados entre sí.
Las variables de la tabla se conocen como campos o atributos, y los nombres de los campos
encabezan las columnas de la tabla. Las columnas de los campos contienen un solo tipo de
información.

38
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Los registros de la base de datos se corresponden con las filas de las tablas. Un registro viene a ser
una ocurrencia de los campos de las tablas.

Ejemplo

A continuación se muestra una Tabla vuelos (Figura 9), que contiene 7 registros con los
campos: id, nro-vuelo, origen, destino, aerolinea, hora-salida, hora-llegada.

Figura 9. Ejemplo de una tabla en una base de datos.

En cada columna se asigna un tipo de datos que garantice consistencia.

El tipo de datos de cada campo (entero, decimal, texto, fecha, etc.) se define en el esquema de la base
de datos, al cual nos referiremos de ahora en adelante como schema.

7.2. Tipos de datos


Los datos que se almacenan en una base de datos tienen que ser de un determinado tipo. A continua-
ción, se mencionan los tipos de datos más comúnmente usados:

•• INTEGER: usado cuando se quiere almacenar un número entero, es decir, que no contiene ningún
decimal.
•• DECIMAL: usado cuando se quiere almacenar un número que típicamente contiene algún decimal.
•• SERIAL: también un entero, pero con la particularidad que se va incrementando automática-
mente, es decir, cada vez que se añade un nuevo registro, incrementa su valor en una unidad de
manera automática.
•• VARCHAR: cadena de caracteres de longitud variable. Este sería el tipo a usar si se quiere alma-
cenar algún texto, frase o palabra
•• TIMESTAMP: usado cuando se quiere almacenar fecha y hora.
•• BOOLEAN: usado para almacenar valores verdadero o falso de una variable.
•• ENUM: usado para almacenar uno de varios posibles valores discretos que puede tomar una
variable.

39
Capítulo 7. Almacenamiento y modelaje de dato
Internacional
de Valencia

7.3. Creación de una base de datos


Para crear una base de datos sistema-reservas, mostramos a continuación la sintaxis de SQL corres-
pondiente.

Figura 10. Creación de una base de datos.

7.4. Creación de una tabla


Para crear una tabla vuelos, con los campos: id, origen, destino, duración, mostramos a continuación la
sintaxis de SQL correspondiente:

Figura 11. Creación de una tabla.

En este caso, “vuelos” es el nombre de la tabla, y luego se especifica qué tipo de información va a
contener la tabla:

•• id es la referencia de cada vuelo individual.


•• El atributo SERIAL indica que la referencia id es un entero que se va incrementando uno a uno de
manera automática. El primer vuelo sería el número 1, el segundo el número 2 y así sucesivamente.
•• El atributo PRIMARY KEY indica que id es la referencia principal y que además identifica a cada
vuelo de manera única. La referencia hace más fácil ubicar un vuelo. Por ejemplo, se ubica el
vuelo por la referencia 2734 y se obtienen todos los detalles asociados a él. De no tenerla, ten-
dría que indicarse un vuelo cuyo origen es tal y cual y cuyo destino es tal y cual, que sería mucho
más engorroso. Tener una referencia en cada tabla permite ubicar los registros de manera más
práctica y eficiente.
•• Tanto el parámetro origen como destino son de tipo VARCHAR, y corresponden a la ciudad en la
que se origina el vuelo y la ciudad de destino, respectivamente.
•• El atributo duración es de tipo ENTERO y representa la duración del vuelo en minutos.
•• El atributo NOT NULL indica que el parámetro siempre debe tomar un valor, no puede ser vacío.
Un vuelo siempre tiene que tener un origen, un destino y una duración, por eso se le añade el
atributo NOT NULL. Si se trata de ingresar un vuelo sin indicar un origen o destino, o la duración,
el sistema lo va a rechazar. Esta es una manera de asignar restricciones (constraints) sobre la
base de datos.

40
Telemedicina y e-salud (e-health)
Internacional
de Valencia

7.5. Jupyter Notebook como herramienta de familiarización


con el lenguaje SQL
Jupyter Notebook es una aplicación web que te permite crear y compartir documentos que contienen
código que corre en vivo, ecuaciones, gráficos y notas del código, trabaja con un amplio número de
lenguajes de programación y es ideal para el análisis de datos (Ingargiola, 2015).

Enlace de interés
Página web oficial de la aplicación Jupyter Notebook:
https://jupyter.org/

Algunas de sus características son:

•• Puede trabajar con bases de datos no relacionales y relacionales.

•• Al poder combinar texto, códigos y resultados, es ideal para documentar sobre el código y sobre
el análisis de datos con una interfaz sencilla.

•• Puedes importar una gran cantidad de paquetes para trabajar con diversas aplicaciones.

•• Tiene opciones para ocultar códigos y resultados que no deseas mostrar, por ejemplo, si tienes
una abrumadora cantidad de código o quieres mostrar solo los resultados en gráficos para ha-
cer un reporte más limpio del código.

•• Puedes guardar la página en múltiples formatos, incluyendo HTML y PDF.

Entre los lenguajes usados por Jupyter Notebook se incluye Python, que junto con el ORM
SQL Alchemy nos facilitará la familiarización de con el Lenguaje SQL, que incluye soporte
para SQLite, MySQL, PostgreSQL, Oracle, MS SQL, entre otros.

Para mayor información acerca de cómo ejecutar e iniciar el servidor de Jupyter Notebook, consultar
su documentación oficial (Jupyter Documentation, 2018).

SQLAlchemy presenta un método para asociar clases de Python definidas por el usuario con tablas de
bases de datos, e instancias de esas clases (objetos) con filas en sus tablas correspondientes. Incluye
un sistema que sincroniza de forma transparente todos los cambios de estado entre objetos y sus filas
relacionadas, llamada unidad de trabajo (work unit), así como un sistema para expresar consultas de
bases de datos en términos de las clases definidas por el usuario y sus relaciones definidas entre sí.

Enlace de interés
Página web oficial del método SQLAlchemy:
https://www.sqlalchemy.org/

41
Capítulo 7. Almacenamiento y modelaje de dato
Internacional
de Valencia

Existen otras librerías adicionales, como Pandas, disponible en Python para el análisis y manipula-
ción de datos. En Pandas, los DataFrames son unidades básicas, junto con las Series. Las series son
arreglos de una dimensión mientras que los Dataframes son estructuras de datos bidimensionales,
con columnas de diversos tipos. Están basadas también en conceptos de vectores, así que se pueden
realizar operaciones vectoriales. Los Dataframes en general pueden usarse para importar archivos de
datos y luego con otras librerías como numpy y matplotlib para manipular los datos, y realizar gráficas
y visualizaciones de los mismos. La librería Pandas hace posible llevar a cabo todo el proceso (lectura
de datos, depuración, análisis y modelización) sin necesidad de cambiar a un lenguaje más específico.

Algunas de las funcionalidades de Pandas son las siguientes:

•• Un rápido y eficiente uso del objeto DataFrame para manipular datos con indexación integrada.

•• Herramientas para la lectura y escritura de datos de forma rápida y eficiente manejadas en memo-
ria, como el DataFrame, y con posibilidad de trasladarlos a la mayoría de los formatos conocidos
para el manejo de datos, entre ellos: CSV y archivos de texto, Excel, bases de datos SQL, etc.

•• Proporciona una alineación inteligente de datos y un manejo integrado de los datos faltantes;
con estas funciones podemos obtener una ganancia de desempeño en los cálculos entre Data-
Frames y una fácil manipulación y ordenamiento de los datos de la colección de datos usada.

•• Flexibilidad para manipular y redimensionar las colecciones de datos, facilidad para construir
tablas pivote.

•• La posibilidad de filtrar los datos, agregar o eliminar columnas.

•• Indexación jerárquica que proporciona una forma intuitiva de trabajar con datos de alta dimen-
sión en una estructura de datos de menor dimensión.

•• Posibilidad de realizar cálculos agregados o transformaciones de datos.

•• Flexibles en la manipulación de datos de las hojas de cálculo y bases de datos relacionales como
SQL.

•• Gran número de funcionalidades para el manejo de series de tiempo ideales para el análisis fi-
nanciero.

Todas sus funciones y estructuras de datos están optimizadas para el alto rendimiento, con las partes
críticas del código escritas en Python o C.

En algunas sesiones prácticas del presente curso, mostraremos algunos ejemplos de su uso.

42
Capítulo 8

Cómo manipular datos con el lenguaje SQL

El SQL es un lenguaje sencillo, versátil y poderoso, que permite crear, consultar y manipular datos y
estructuras en una base de datos.

8.1. Lenguaje de definición de datos (DDL)


El lenguaje de definición de datos (DDL) es utilizado en la definición del schema.

Los comandos asociados a la definición del schema se indican a continuación (“SQL Tutorial”, 2018b):

8.1.1. CREATE(DATABASE, TABLE)


La sintaxis para crear una nueva tabla es la siguiente:

Figura 12. Sintaxis de creación de tabla en SQL.

43
Capítulo 8. Cómo manipular datos con el lenguaje SQL
Internacional
de Valencia

A continuación, mostramos un ejemplo de creación de una tabla en SQL.

Ejemplo

Figura 13. Creación de una tabla en SQL.

8.1.2. DROP(DATABASE, TABLE)

La sintaxis para eliminar completamente una tabla con todos sus datos es la siguiente:

Figura 14. Sintaxis para eliminar por completo una tabla en SQL.

Ejemplo

Figura 15. Eliminación por completo de una tabla en SQL.

Si por el contrario se desea eliminar la base de datos completa, el comando es el siguiente:

Figura 16. Sintaxis para eliminar por completo una base de datos en SQL.

En la expresión anterior, nombre_basedatos es el nombre de la base de datos.

44
Telemedicina y e-salud (e-health)
Internacional
de Valencia

8.2. Lenguaje de manipulación de datos (DML)

Una vez definido el schema, y después de introducir los valores de los campos, se puede
proceder a realizar búsquedas y consultas sobre la base de datos.

Para ello, se utiliza el lenguaje de consulta o manipulación de datos (DML), que es el usado en las
consultas y modificación de los datos. Sus comandos se mencionan a continuación (Stanford CS145
Fall 2017, 2017, lecture 10, p. 10):

8.2.1. SELECT

El comando SELECT se usa para consultar y obtener los datos de una tabla. Podemos realizar
consultas para obtener los datos de la tabla completa, o podemos obtener parte de los resultados al
especificar condiciones de búsqueda usando la cláusula WHERE.

La sintaxis es la siguiente:

Figura 17. Sintaxis para consultar datos en una tabla en SQL.

Ejemplo

Figura 18. Selección de todos los registros y columnas en una


tabla en SQL

A continuación, se muestra la sintaxis para mostrar el valor de algunos parámetros seleccionados a


partir de una tabla:

Figura 19. Selección de sólo las columnas indicadas (id, aero-


línea) de todos los registros en la tabla vuelos en SQL.

45
Capítulo 8. Cómo manipular datos con el lenguaje SQL
Internacional
de Valencia

Ejemplo

Figura 20. Selección de solo las columnas indicadas (id, aero-


línea) de los registros cuyo origen sea caracas y cuyo destino sea
Madrid en la tabla vuelos en SQL.

8.2.2. INSERT

El comando INSERT se usa para crear nuevos registros (llenar una fila en la tabla)

La sintaxis es la siguiente:

Figura 21. Sintaxis para añadir datos en una tabla en SQL.

Ejemplo

Figura 22. Inserción de datos en una tabla en SQL.

También es posible crear un nuevo registro en el que se insertan selectivamente valores en algunos
campos (no en todos):

Figura 23. Inserción selectiva de datos en una tabla en SQL.

46
Telemedicina y e-salud (e-health)
Internacional
de Valencia

8.2.3. UPDATE

El comando UPDATE es utilizado para actualizar cualquier valor en el registro de una tabla.

La sintaxis es la siguiente:

Figura 24. Sintaxis para actualizar datos en una columna en una tabla en SQL.

Ejemplo

Supongamos que en el registro del vuelo en la tabla vuelos se cometió un error en el campo
aerolínea y hora-salida para el vuelo IB6674:

Figura 25. Ejemplo de una tabla en una base de datos con errores en los valores de los
campos aerolínea y hora-salida en un registro.

Si solo queremos corregir el error en la aerolínea:

Figura 26. Corrección del valor de un dato en una tabla en SQL.

Si queremos corregir ambos errores en una misma línea de comandos:

Figura 27. Corrección del valor de varios datos en una tabla en


SQL.

47
Capítulo 8. Cómo manipular datos con el lenguaje SQL
Internacional
de Valencia

8.2.4. DELETE

El comando DELETE se usa para eliminar datos de una tabla. La sintaxis es la siguiente:

Figura 28. Sintaxis para eliminar datos en una tabla en SQL.

Figura 29. Eliminación de todos los registros en una tabla en SQL.

A continuación, se muestra un ejemplo de eliminación de registros de una tabla que cumplen una
determinada condición.

Ejemplo

Figura 30. Eliminación de un solo registro en una tabla en SQL.

Este registro es el único que cumple con la condición dada en la cláusula WHERE.

8.3. Lenguaje de control de datos (DCL)

Los comandos DCL se usan para proveer seguridad de la base de datos en un ambiente
multiusuarios.

Se utiliza para otorgar o revocar privilegios a un usuario sobre un objeto de la base de datos. En otras
palabras, es lo que permite controlar los privilegios en la DB.

8.3.1. GRANT

El comando GRANT es usado para otorgar al usuario privilegios de acceso u otro tipo de privilegios
sobre la base de datos.

48
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Ejemplo

Figura 31. Sintaxis SQL para permitir a un usuario crear una tabla.

Figura 32. Sintaxis SQL para permitir a un usuario eliminar una tabla.

8.3.2. REVOKE
El comando REVOKE es usado para quitar privilegios de acceso u otro tipo de privilegios al usuario
sobre la base de datos. Seguidamente se muestra la sintaxis del comando.

Figura 33. Sintaxis SQL para quitar al usuario el privilegio que le permite crear tablas.

8.4. Expresiones de búsquedas selectivas


8.4.1. LIKE

La cláusula LIKE se usa en las consultas de SQL conjuntamente con la cláusula WHERE como parte de
la condición a cumplir, comparando datos extraídos de la tabla con una expresión que contiene como-
dines o caracteres especiales (como ‘%’ y ‘_’) (“SQL Tutorial”, 2018a). En ella:

•• El símbolo de porcentaje (%) representa ninguno, uno o más caracteres.


•• El símbolo de guion bajo (_) representa un solo carácter.

Considere los siguientes datos de la tabla pasajeros:

Figura 34. Ejemplo de una tabla pasajeros en una base de datos.

49
Capítulo 8. Cómo manipular datos con el lenguaje SQL
Internacional
de Valencia

Ejemplo

Figura 35. Selección de todos los registros en la tabla pasajeros en


SQL cuyo nombre empieza por ‘j’.

Resultado:

Figura 36. Resultado de la consulta de todos los registros en la


tabla pasajeros en SQL cuyo nombre empieza por ‘j’.

Ejemplo

Figura 37. Selección de todos los registros en la tabla pasajeros en


SQL cuyo nombre finaliza con una ‘a’.

Resultado:

Figura 38. Resultado de la consulta de todos los registros en la


tabla pasajeros en SQL cuyo nombre finaliza con una ‘a’.

50
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Ejemplo

Figura 39. Selección de todos los registros en la tabla pasajeros


en SQL cuyo nombre tiene una ‘o’ en la segunda posición de los
caracteres.

Resultado:

Figura 40. Resultado de la consulta de todos los


registros en la tabla pasajeros en SQL cuyo nombre
tiene una ‘o’ en la segunda posición de los caracteres.

8.5. Expresiones avanzadas SQL


8.5.1. Índices
Un índice acelera las búsquedas por un subconjunto de campos de interés y probablemente no incluye
la clave primaria (índice primario) (Elmasri y Navathe, 2017, pp. 631-633). La tabla vuelos mostrada a
continuación nos sirve de base para mostrar varios ejemplos de su uso.

Figura 41. Ejemplo de una tabla vuelos en una base de datos.

Registros ordenados según índice hora-salida:

Figura 42. Registros de una tabla vuelos en una base de datos


ordenados según índice hora-salida.

51
Capítulo 8. Cómo manipular datos con el lenguaje SQL
Internacional
de Valencia

El mismo ejemplo pero con los registros ordenados según índice aerolínea:

Figura 43. Registros de una tabla vuelos en una base de datos ordenados según índice aerolínea.

8.5.2. Restricciones

Las restricciones son reglas para limitar el tipo de datos que puede ingresarse en una tabla, a fin de
mantener la integridad de los datos en la tabla.

A continuación, mencionamos las principales restricciones que pueden ser añadidas a la tabla (“DBMS
and SQL Tutorial”, 2018):

NOT NULL, la cual establece que la columna siempre debe tener un valor adecuado, que no puede ser
nulo. A continuación se muestra un ejemplo de su uso.

Ejemplo

Figura 44. Ejemplo de restricción NOT NULL.

En este caso, los atributos origen, destino y aerolínea no pueden tomar el valor NULL.

UNIQUE asegura que la columna solo tomará valores únicos y que no habrá valores repetidos. A conti-
nuación se muestra un ejemplo de su uso.

52
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Ejemplo

Figura 45. Ejemplo de restricción UNIQUE.

En este caso, el atributo id de la tabla vuelos toma valores únicos y no puede tomar el valor NULL.

Ejemplo

Figura 46. Modificación de tabla para restricción UNIQUE.

En este caso, se especifica que el atributo id de la tabla vuelos toma valores únicos.

PRIMARY KEY, que asegura que cada registro pueda ser identificado de manera única. La clave
primaria debe tomar un valor único y no puede tomar el valor NULL. A continuación, se muestra un
ejemplo de su uso.

Ejemplo

Figura 47. Ejemplo de restricción PRIMARY KEY.

En este caso, se crea el atributo id de la tabla vuelos como clave primaria.

53
Capítulo 8. Cómo manipular datos con el lenguaje SQL
Internacional
de Valencia

Ejemplo

Figura 48. Modificación de tabla para restricción


PRIMARY KEY.

En este caso, se crea el atributo id de la tabla vuelos como clave primaria.

FOREIGN KEY, que se usa para relacionar dos tablas.

Ejemplo

Figura 49. Ejemplo de uso de claves foráneas (id-pasajero e


id-vuelo) en una tabla tarjeta-embarque. Ambas claves son claves
primarias en otras tablas.

En la tabla tarjeta-embarque, id-pasajero es clave foránea (FOREIGN KEY), puesto que


id-pasajero es clave primaria en otra tabla. Lo mismo ocurre con id-vuelo, que es clave
foránea, debido a que id-vuelo es clave primaria en otra tabla. Esto impide que se inserten
datos inválidos en las columnas id-vuelo e id-pasajero de la tabla tarjeta-embarque.

54
Telemedicina y e-salud (e-health)
Internacional
de Valencia

DEFAULT, usada para asignar un valor por defecto en una columna de la tabla. A continuación, se
muestra un ejemplo de su uso.

Ejemplo

Figura 50. Ejemplo de restricción DEFAULT.

En este caso, asigna el valor por defecto Madrid en el atributo destino en la tabla vuelos.

55
Capítulo 9

Desarrollo de aplicaciones bajo entorno web, con el uso de


bases de datos

9.1. Programación orientada a objetos

Este es un método de programación, de gran adopción a través de toda la industria de tecno-


logías de información. Este esquema para programar está basado en objetos en lugar de
acciones y datos en lugar de lógica. Un objeto es un conjunto de datos que forma parte de
una estructura definida por reglas determinadas, bien sean: estáticos, no estáticos, públicos
o privados, etc.

Dentro de los objetos se definen diferentes propiedades que afectan a los mismos, como por ejemplo
las relaciones. Por otra parte, a las propiedades se les puede aplicar la encapsulación, que se utiliza
para ocultar información al usuario por medio de un procedimiento lógico que toma los datos de
entrada, los procesa, y produce datos de salida, de manera de poder controlar el flujo de información
entre usuario y aplicación.

Otra de las características con las que cuenta un objeto es la herencia, según la cual las propiedades
de un objeto padre pueden ser asumidas por un objeto hijo.

56
Telemedicina y e-salud (e-health)
Internacional
de Valencia

La última propiedad que vale la pena resaltar son los métodos, los cuales hacen referencia a las opera-
ciones a las que se someten los objetos para alterar o modificar sus datos. Una característica resal-
tante de los métodos es el concepto de polimorfismo, donde existen versiones del mismo método,
pero con variables y resultados distintos.

Las clases son el modelo a partir del cual se define un objeto. Un objeto es una instancia de una clase.
De este concepto surge la idea de reciclar código, el cual permite utilizar métodos genéricos que apli-
quen a objetos de diferentes instancias.

9.2. Modelo vista controlador (MVC)


Para comenzar la programación, es necesario partir de un patrón de arquitectura de software. Este
patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación original fue
realizada en Smalltalk en los laboratorios Xerox.

El modelo vista controlador es un patrón de arquitectura desarrollado por Microsoft, cuyo


objetivo principal es la simplificación de la programación dirigida por eventos de las interfaces.

Este patrón propone la separación en un modelo de tres capas:

•• El modelo: es la representación de la información con la cual el sistema opera, y por tanto ges-
tiona todos los accesos a dicha información, incluyendo consultas y actualizaciones. En él se
gestionan los datos del sistema y las operaciones asociadas a esos datos.
•• La vista: comprende los componentes que se muestran en la interfaz al usuario. Los datos son
manipulados por el controlador, y se muestran al usuario de forma visual. El usuario interactúa
con la vista y realiza otras peticiones que se enviarán al controlador.
•• El controlador: es la interfaz entre la vista y el modelo, y se encarga de responder a eventos e
invocar peticiones al modelo cuando se hace alguna solicitud e interactúa con son su vista aso-
ciada para cambiar la presentación de un modelo.

La idea detrás del patrón MVC es mantener separados el modelo, la vista y el controlador para
hacerlos lo más independientes posible de los otros. En otras palabras, esta arquitectura permite
separar las diferentes capas del programa, de manera que se pueda trabajar en paralelo e imple-
mentar el código para que sea reusable en otras aplicaciones con el mismo contexto. En este sentido
también sirve para separar las tareas, y que varias personas puedan trabajar en equipo para lograr el
mismo fin sin solapar las tareas.

El modelo es la estructura de los objetos, de los datos del programa. La vista maneja la información
que se muestra en las pantallas de la aplicación desarrollada. Y el controlador interpreta los datos
introducidos por el usuario de manera de cambiar la vista y el modelo en forma acorde con lo recibido.

Enlace de interés
Página de Microsoft con información sobre este modelo:
https://docs.microsoft.com/es-es/aspnet/mvc/overview/older-versions-1/getting-started-
with-mvc/

57
Capítulo 9. Desarrollo de aplicaciones bajo entorno web, con el uso de bases de datos
Internacional
de Valencia

9.3. ORM
Un ORM (object relational mapper) o trazador de objetos relacionales es un modelo de programación
que consiste en la transformación de las tablas de una base de datos, en una serie de entidades que
simplifiquen las tareas básicas de acceso a los datos para el programador.

Un ORM facilita las labores básicas de cualquier acceso a datos, el CRUD (Create, Read,
Update y Delete), realizando todas estas labores a través de un lenguaje de alto nivel orien-
tado a objetos.

Como ejemplo de ORM, trabajaremos con Eloquent, el ORM desarrollado para el entorno de trabajo
Laravel.

Laravel

Es un framework de código abierto para el desarrollo de aplicaciones web en PHP, que utiliza la
filosofía de desarrollo de aplicaciones web bajo el concepto de Modelo Vista Controlador. Permite
la gestión de bases de datos y la manipulación de tablas desde código, manteniendo un control de
versiones de las mismas mediante su sistema de Migraciones.

Utiliza un sistema de plantillas para las vistas llamado Blade, el cual hace uso de la cache para darle
mayor velocidad. Blade facilita la creación de vistas mediante el uso de layouts, herencia y secciones.

Facilita la extensión de funcionalidad mediante paquetes o librerías externas. De esta forma es muy sencillo
añadir paquetes que faciliten el desarrollo de una aplicación y disminuyan tiempo de programación.

Incorpora un intérprete de línea de comandos llamado Artisan que facilita la realización de tareas
rutinarias como la creación de distintos componentes de código, trabajo con la base de datos y migra-
ciones, gestión de rutas, cachés, colas, tareas programadas, etc.

Laravel soporta conexiones con diversas bases de datos, a saber:

•• MySQL
•• PostgreSQL
•• SQLite3
•• SQL Server

La instalación de Laravel requiere en primer lugar tener instalado un servidor web con PHP >= 5.5.9,
MySQL y en algunos casos, la extensión MCrypt de PHP. Se recomienda instalar XAMPP de Apache-
Friends, que puede ser descargado de su página web https://www.apachefriends.org. Este aplicativo
contiene el servidor web, el servidor de base de datos MySQL, y maneja PHP.

Enlace de interés
Página web para descargar e instalar XAMPP de ApacheFriends.
https://www.apachefriends.org

58
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Seguidamente hay que acceder a la aplicación de Panel de Control de XAMPP, a fin de iniciar Apache y
MySQL.

Para comprobar que el servidor se ha instalado correctamente, abrimos el siguiente enlace en el nave-
gador: http: //localhost o http: //127.0.0.1

Esto mostrará la página por defecto de XAMPP.

En segundo lugar, se requiere instalar Composer, que es una herramienta para administración de
dependencias en PHP. Permite declarar las librerías requeridas por la aplicación y éste las instala en el
proyecto en forma automática, según se indican en un archivo llamado composer.json.

Composer puede ser descargado desde su página web http://getcomposer.org, y luego se procede a
instalarlo siguiendo las instrucciones del instalador. Lo que sí es relevante mencionar es que la insta-
lación solicita colocar la ruta y el aplicativo PHP que se desea usar. Para el caso de instalar XAMPP, la
ruta sería:

C:\xampp\php\php.exe

Enlace de interés
Página web para descargar e instalar Composer.
http://getcomposer.org,

Por último, procedemos a instalar un nuevo proyecto de Laravel mediante Composer. Para ello, abrir
una interfaz de línea de comando, y ubicándose en el directorio raíz del servidor web que va a contener
la aplicación (por ejemplo: /xampp/htdocs/appdir), ejecutamos el siguiente comando:

composer create-project laravel/laravel myapp

Composer creará diversos directorios a partir del directorio raíz, pero en particular creará el direc-
torio public, y la aplicación web a desarrollar realmente existirá a partir de ese directorio.

En la configuración inicial de Laravel, debemos crear la clave (key) de la aplicación, para garantizar que
la aplicación sea segura. Para ello, se ejecuta en la interfaz de línea de comandos la siguiente instruc-
ción: php artisan key generate

Para comprobar que todo está funcionando correctamente escribimos: http://127.0.0.1/<nom-


bre-del-proyecto>/public/

Que en nuestro caso particular corresponde a: http://127.0.0.1/myapp/public/

Esta acción mostrará una página web en blanco, que incluye además el texto Laravel 5.

59
Capítulo 9. Desarrollo de aplicaciones bajo entorno web, con el uso de bases de datos
Internacional
de Valencia

Al crear un nuevo proyecto se genera también una estructura de directorios y subdirectorios. Los más
relevantes se describen brevemente a continuación:

•• app: contiene el código principal de la aplicación y consta de diversos subdirectorios adiciona-


les, rutas, controladores y modelo de datos. Este directorio incluye el subdirectorio http, que
contiene lo siguiente:
•• app/Http/Controllers: contiene los archivos que permiten manejar la lógica de la aplicación, es
decir, los controladores y sus clases.
•• app/Http/Middleware: contiene los archivos que permiten realizar la autenticación de los usua-
rios. En general permite filtrar las peticiones HTTP que se realizan a una aplicación. Permitirá el
acceso a una ruta si el usuario ingresó al sistema de manera satisfactoria y además tiene la per-
misología necesaria al recurso en cuestión.
•• app/Http/routes: este documento define todas las rutas del sitio web, asociando un enlace del
navegador con un método de un controlador.
•• config: incluye los archivos de configuración de la base de datos, sesiones y caché entre otros.
•• database: contiene los archivos necesarios para especificar y caracterizar la base de datos del
proyecto. Incluye los subdirectorios migration y seeds.
•• public: es el único directorio visible en nuestra aplicación, y que contiene las páginas html de la
misma.
•• resources: consta de tres subdirectorios: assets, que contiene archivos tipo Less o Sass usados
para compilar archivos de estilo; views, que contiene las vistas de nuestra aplicación, que son
invocadas por los controladores para mostrar la información; y lang. que puede contener en
arreglos todos los textos usados por nuestra aplicación en diversos idiomas.
•• vendor: contiene las librerías y dependencias usadas por Laravel para poder funcionar correctamente.

El funcionamiento básico que sigue Laravel tras una petición web a un enlace de nuestro sitio es el
siguiente:

Todas las peticiones se reciben a través del archivo public/index.php; la ruta de enlace que se intro-
duce se compara con las indicadas en el archivo de rutas (app/Http/routes.php), y si allí se aparece el
controlador ejecuta el método asignado para dicha ruta, que usualmente suele acceder a la base de
datos (si así está programado) a través del modelo para añadir, modificar o eliminar datos en la base
de datos y procederá a pasarlos a la vista para ser desplegados en la aplicación a fin de ser mostrados
al usuario.

Utilizando Eloquent podemos trabajar con modelos, que son clases que representan nuestras tablas
en la base de datos y nos proveen de métodos con los que podemos interactuar en una interfaz más
“elocuente” y orientada a objetos.

Usando la herramienta php Artisan, crearemos un modelo (Palacios, 2017 y Ochoa, 2015). Cabe
destacar que no es obligatorio especificar el nombre de la tabla si seguimos las convenciones de
Eloquent. Por ejemplo si utilizamos como nombre de modelo Product, Laravel hará las consultas a la
tabla products. Si utilizamos User, Laravel hará las consultas a la tabla users.

60
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Luego procedemos a ejecutar las migraciones.

Las migraciones son una serie de archivos y clases en PHP que actúan como un control de versiones
de base de datos, tanto para crear las tablas al inicio del desarrollo de la aplicación, como para realizar
cambios como agregar o eliminar una tabla, agregar o eliminar una columna y así sucesivamente, a
medida que se va desarrollando el proyecto.

Las migraciones permiten definir las tablas con programación orientada a objetos en vez de SQL, lo
cual nos da portabilidad a los diferentes motores que soporta Laravel: MySQL, Postgres, SQLite, y
SQL Server.

Cuando se ejecuta la migración por primera vez, se crean las tablas de la base de datos. Hay dos
migraciones que se crean por defecto, siendo una de ellas la de create_users_table, que crea la tabla
de usuarios del sistema. En ella se crea la tabla users_table como tal, y se le asocia el objeto user.

Los Seeders por otra parte son archivos que nos van a permitir poblar la base de datos evitando tener
que escribir de forma manual todos los datos.

Esto facilita enormemente desde el punto de vista del programador y del administrador de bases de
datos la ejecución de migraciones de la aplicación web a sitios diferentes y/o la realización de modi-
ficaciones en la estructura de la base de datos sin tener que necesariamente importar y exportar la
base de datos.

A manera de ejemplo, se tomará una aplicación sencilla de Farmacia en Línea, a la cual se desea modi-
ficar su estructura de base de datos, a fin de incorporar la variable Cantidad de cada producto, para el
adecuado manejo de inventario.

Allí crearemos un modelo llamado Product, donde se especifican los atributos de cada producto ofre-
cido en la página, usando el siguiente comando: php artisan make:model Product –m

Esta instrucción generará dos archivos:

•• Product.php en el directorio app

•• create_products_table.php en el directorio database/migrations,

Los tres puntos (…) representan una cadena de caracteres del tipo fecha (en formato yyyy_mm_dd,
es decir año, mes y día) seguido de una numeración adicional que representa un control del número de
versión.

Si el modelo fuera creado el 19 de septiembre de 2018, el archivo podría ser generado automática-
mente con un nombre como el indicado a continuación: 2018_09_19_172732_create_products_table.php

Este archivo contendrá el esquema de la tabla, es decir, atributos como el identificador del producto,
la ruta del directorio que contiene las imágenes del producto, el título del producto, su descripción y
precio.

Luego, con la siguiente instrucción: php artisan make:seed ProductTableSeeder

61
Capítulo 9. Desarrollo de aplicaciones bajo entorno web, con el uso de bases de datos
Internacional
de Valencia

Que generará el archivo: ProductTableSeeder.php en el directorio database/seeds

En el cual se colocarán los datos de cada artículo ofrecido.

Cada vez que se indiquen los datos de un producto, para guardar los valores indicados para cada
producto, hay que agregar la instrucción: $product->save();

Por otra parte, en el archivo: DatabaseSeeder.php en el directorio database/sedes, vinculamos


nuestro archivo semilla ProductTableSeeder.php

Ejecutamos el comando: php artisan migrate

Así, se crea la tabla Product, según se indica en el archivo 2018_09_19_172732_create_products_table.php

Y ejecutamos el comando: php artisan db:seed

Así se incorporam los productos que estaban guardados en ProductTableSeeder.php.

Se puede trabajar también con datos autogenerados, usando un Componente llamado Faker, que se
encargará de generar estos datos.

En el caso que haya que producir cambios en la estructura de una tabla en la base de datos, y queramos
actualizarla, se usarán los siguientes comandos: php artisan make:migration create_products_table

En ella se incorporan los nuevos atributos y luego se generan las nuevas tablas mediante la instruc-
ción: php artisan make: migration update

9.4. SQLALCHEMY

Este conjunto de herramientas desarrolladas en Python para interactuar con bases de datos
es un ORM, y se encarga de realizar solicitudes a las bases de datos y manipular los datos
obtenidos usando la programación orientada a objetos.

Esto, de manera general, permite interactuar de manera eficiente con las bases de datos usando el
lenguaje de programación Python, en vez de usar un dialecto específico para bases de datos SQL. El
procedimiento general para utilizar SQLAlchemy consiste en definir las tablas de las bases de datos
con las que se interactuará, luego se definen las clases que serán asociadas con las tablas anteriores y
por último se realiza la asociación correspondiente.

El proceso de definición de las tablas y las clases se realiza en SQLAlchemy utilizando el método
declarativo que presenta el ORM, que permite definir en las clases algunas directivas que describirán
la tabla de la base de datos a las que se asociará. Posteriormente, este proceso generará la meta-
data que será usada en el resto de la configuración. Con la metadata de las tablas de la base de datos,
se procede a generar las declaraciones SQL para interactuar con la base de datos y crear las tablas
respectivas, mediante el uso de las herramientas del ORM.

62
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Posterior a esto se necesita crear el objeto que permite la interacción con la base de datos selec-
cionada, para luego asociar dicho objeto con una sesión, que guardará un registro de las operaciones
pendientes por realizar en la base de datos. Al hacer esto se pueden crear instancias de las clases
asociadas a las tablas definidas anteriormente, agregar datos a las mismas, hacer búsquedas o actua-
lizar información y agregarlos a la sesión.

Cabe destacar que la sesión no ejecutará los comandos directamente en la base de datos, sino hasta
tanto se indique que deben ejecutarse los comandos pendientes.

9.5. Procesador de plantillas (template engine)

Un template engine, template processor o procesador de plantillas es una herramienta que


permite combinar la información proveniente de un modelo de datos con una plantilla
definida previamente, con la finalidad de producir un documento completo que tenga todas
las características de la plantilla y toda la información del modelo.

Esto es muy relevante para el contexto de las aplicaciones web debido a que proporciona una manera
de combinar la información proveniente del servidor final con una plantilla de HTML, para generar el
documento HTML completo que será enviado al cliente como respuesta a una de sus solicitudes. Las
plantillas están escritas usando sintaxis de la herramienta, que por lo general tiene la capacidad de
utilizar estructuras semánticas de lenguajes de programación tales como los bucles y las estructuras
condicionales.

Los procesadores de plantillas están escritos en una gran variedad de lenguajes de programación
por lo cual hay gran cantidad de ellos. Entre los más conocidos se tiene: Amber, Casper, Jinja2, Genshi,
entre otros.

9.6. Framework de desarrollo Flask


Flask es un entorno de trabajo (framework) utilizado para el desarrollo web. Se encuentra escrito en
Python y está basado en el conjunto de herramientas de Werkzeug y Jinja2. El primero es un conjunto
de herramientas para la creación de aplicaciones WGSI (web server gateway interface) escritas en
Python y la segunda es un procesador de plantillas muy popular para el renderizado de archivos.

Se le conoce como un microframework, debido a que carece de herramientas particulares o librerías


específicas para realizar una tarea, pero proporciona un conjunto de extensiones que pueden agregar
funcionalidades en el entorno de trabajo tal y como si fueran creadas nativamente en él. Esto evita el
problema de tener una cantidad extensiva de módulos innecesarios dentro de la aplicación.

Flask tiene extensiones para el manejo de las bases de datos, la creación de formularios en las aplica-
ciones web, diferentes sistemas de autenticaciones, administradores para el uso de otros protocolos
diferentes al HTTP y muchos otros módulos que le han permitido obtener una gran popularidad.

63
Capítulo 9. Desarrollo de aplicaciones bajo entorno web, con el uso de bases de datos
Internacional
de Valencia

Una aplicación en Flask básicamente consiste en crear una instancia de la clase Flask y escribir una
serie de funciones en Python que se encargan de ejecutar alguna tarea necesaria para el desarro-
llador. Sobre dichas funciones se utiliza un decorador proveniente de la instancia de Flask llamado
route (), al cual se le pasa como parámetro un URL que le indica al entorno de trabajo cuándo debe
ser ejecutada la función que está siendo decorada, es decir, cuando se haga una solicitud a un URL el
entorno de trabajo busca que función se encuentra “asignada” a dicho URL y la ejecuta.

Un decorador en Python es una función que permite alterar o aumentar la funcionalidad de otra
función sin necesidad de modificar su código original. Python tiene una sintaxis bastante amigable
para este tipo de operaciones, la cual es la que se usa en el entorno de trabajo de Flask.

Por último, cuando un usuario realiza la solicitud a un URL y se ejecuta la función correspondiente
para que el cliente vea la respuesta del servidor (si hay alguna), el entorno de trabajo permite devolver
archivos o se vale de un procesador de plantillas (en este caso jinja2), el cual se encarga de renderizar
un archivo HTML con la información proveniente del servidor que se quiere enviar al cliente que está
realizando la solicitud.

9.6.1. Estructura de una aplicación de Flask

Para crear una aplicación en el entorno de trabajo de Flask es necesario crear una estructura de
proyecto con nombres de directorios específicos para que las funciones del framework obtengan
la información referente a la ubicación de los archivos a renderizar, las dependencias con librerías
externas y otros archivos relevantes para la aplicación.

A continuación, se presenta una explicación general de cada elemento típicamente usado:

•• Main.py: en este archivo usualmente se encuentra el código de la funcionalidad de todos los


endpoints de la aplicación. Adicionalmente se incluyen las funciones para el manejo de las bases
de datos y las consultas pertinentes.

•• Forms.py: en este módulo es donde se mantienen las clases que representan los formularios a
utilizar para registrar usuarios y administrar el acceso a la plataforma, así como capturar cual-
quier información que deban proveer los usuarios para que sea procesada o almacenada en el
sistema.

•• Models.py: en este módulo se definen las clases para representar las tablas dentro de la base
de datos (usando SQLAlchemy ORM). También se define la estructura de los objetos que podrán
almacenarse en la base de datos.

•• Utils.py: en este módulo se definen las funciones adicionales que se usan en forma recurrente
en toda la aplicación.

•• Constants.py: aquí se definen variables que son constantes a lo largo de la aplicación.

•• Database.py: aquí se define la configuración de SQLAlchemy con la base de datos MySQL crea-
da para la aplicación en cuestión. Además se implementan algunas funciones útiles para el ma-
nejo de consultas y actualizaciones en la base de datos.

64
Telemedicina y e-salud (e-health)
Internacional
de Valencia

•• Carpeta Static: en ella se guardan las dependencias de otras librerías de la aplicación web,
como por ejemplo los archivos de CSS (Cascade Stylesheet), que son utilizados para agregar
estilos visuales a la aplicación o los archivos de javascript en donde se programan las funciona-
lidades dentro de la interfaz de la aplicación. En general este directorio es utilizado para guar-
dar los archivos y librerías necesarios para la parte visual de la aplicación.

•• Carpeta templates: aquí se ubican los archivos HTML que se serán renderizados con la informa-
ción proveniente de la aplicación de Flask. Para hacer esto último posible es necesario utilizar la
sintaxis de jinja2 en el archivo HTML para agregar los datos como variables y al llamar la función
de render se agregue en el archivo las variables enviadas por la aplicación.

Toda la funcionalidad de la aplicación de Flask se basa en el uso de URL a los que el cliente hace solici-
tudes.

9.6.2. Formularios web con Flask como framework

A continuación, mostramos un ejemplo que ilustra cómo enviar información a través de un formu-
lario web a una aplicación, para luego mostrarla en pantalla, usando Flask y jinja, lo cual es un ejemplo
sencillo de cómo podríamos recibir información por ejemplo de un sensor de Internet de las cosas,
para luego mostrar sus valores y graficarlo en pantalla de manera muy rápida y sencilla.

Ejemplo

En nuestro ejemplo particular el usuario introduce su edad a través de un formulario, la cual


se envía y se muestra en la página web en forma dinámica usando Flask y jinja.

1. Instalamos el módulo Flask utilizando el comando: pip install flask desde la consola de
Windows o cualquier otra consola bash, obteniendo:

Figura 51. Instalación de Flask.

>>>

65
Capítulo 9. Desarrollo de aplicaciones bajo entorno web, con el uso de bases de datos
Internacional
de Valencia

>>>
2. Creamos el directorio templates que contendrá los archivos .html que mostraremos
en nuestra aplicación, esta carpeta debe ser creada en la misma carpeta donde se alo-
ja nuestra aplicación, tal como lo muestra la siguiente imagen:

Figura 52. Estructura de directorios de una sencilla aplicación en Flask.

3. Creamos los archivos .html que utilizaremos en nuestra aplicación Web, en este caso
crearemos el archivo age.html (que mostrará la información introducida en el formula-
rio web) e index.html (será el archivo que contiene el formulario a ser llenado y además
es la página principal)

Figura 53. Archivos html de una sencilla aplicación en Flask.

Para el aspecto visual de una aplicación web y de las plantillas de HTML se utiliza la librería
Bootstrap. Esta librería consiste en un conjunto de archivos CSS y de JavaScript que permiten
dar un toque visual agradable y moderno a la aplicación de una manera rápida y sencilla.
>>>

66
Telemedicina y e-salud (e-health)
Internacional
de Valencia

>>>
Ambos archivos poseen en el header la dirección de bootstrap de donde se toman las clases
necesarias para darle el estilo deseado a las páginas de la app.

4. Crearemos ahora, nuestra aplicación web en Python utilizando el siguiente código:

Figura 54. Creación de la aplicación web en python.

5. Posteriormente, ejecutamos nuestra aplicación, verificando que se ejecuta correcta-


mente en la consola, tal como lo muestra la imagen:

Figura 55. Ejecución de la aplicación web en python y verificación de que se ejecuta correc-
tamente en consola.

En la imagen se observa como la aplicación se está ejecutando correctamente y se nos


indica la dirección a colocar en el navegador para acceder a la misma.

6. Por último, introducimos la dirección de acceso a la aplicación y comprobamos su fun-


cionamiento:

Figura 56. Resultado al introducir la información y hacer clic en la aplicación.

67
Capítulo 10
1

Integración entre aplicaciones

10.1. REST

REST es un tipo de arquitectura de desarrollo web que se apoya totalmente en el estándar HTTP.
REST permite crear servicios y aplicaciones que pueden ser usadas por cualquier dispositivo o cliente
que entienda HTTP, por lo tanto, REST es el tipo de arquitectura más natural y estándar para crear
API para servicios orientados a Internet. Los sistemas que siguen los principios REST se llaman con
frecuencia RESTful.

Ejemplo

La arquitectura tipo REST está basada en la trasferencia de información desde un servidor


a un cliente vía web, por lo que se comunican utilizando el protocolo HTTP, respondiendo a
los métodos GET, POST, PUT y DELETE con una representación de la información disponible
en el servidor.

68
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Entre las características claves de la arquitectura REST se encuentran:

•• Utiliza un protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda la informa-
ción necesaria para comprender la petición. Como resultado, ni el cliente ni el servidor necesi-
tan recordar ningún estado de las comunicaciones entre mensajes.
•• Tiene un conjunto de operaciones bien definidas que se aplican a todos los recursos de infor-
mación: HTTP en sí define un conjunto pequeño de operaciones, las más importantes son POST,
GET, PUT y DELETE. Con frecuencia, estas operaciones se comparan a las operaciones CRUD en
bases de datos.
•• Hace uso de una sintaxis universal para identificar los recursos. En un sistema REST, cada re-
curso se puede alcanzar únicamente a través de su URI.
•• La integración y el intercambio de datos entre dos aplicaciones distintas en un sistema REST se
hace típicamente vía HTML con los datos en formato JSON o XML. Como resultado de esto, es
posible navegar de un recurso REST a muchos otros, simplemente siguiendo enlaces, sin reque-
rir el uso de registros u otra infraestructura adicional.

10.2. API
API (application programming interface) es el acrónimo de interfaz de programas de aplicación. Es el
conjunto de funciones y procedimientos (o métodos, si se hace referencia a programación orientada a
objetos), que ofrece un servicio para ser consumido por otra aplicación como una capa de abstracción.

10.3. JSON
JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos. Leerlo y escribirlo
es simple para humanos, mientras que para las máquinas es simple interpretarlo y generarlo (“Intro-
ducción a JSON”, 2017). Está basado en un subconjunto del lenguaje de programación JavaScript. JSON
es un formato de texto que es completamente independiente del lenguaje, pero utiliza convenciones
que son ampliamente conocidos por los programadores de la familia de lenguajes C, incluyendo C, C++,
C#, Java, JavaScript, Perl, Python y muchos otros. Estas propiedades hacen que JSON sea un lenguaje
ideal para el intercambio de datos.

Se utiliza principalmente para serializar y transmitir datos estructurados a través de una


conexión de red, normalmente entre un servidor y una aplicación web. JSON es más simple
que XML porque tiene una gramática más pequeña y se mapea mejor a las estructuras de
datos de los lenguajes modernos.

JSON está constituido por dos estructuras:

•• Una colección de pares de nombre/valor. En varios lenguajes esto es conocido como un objeto,
registro, estructura, diccionario, tabla hash, lista de claves o un arreglo asociativo.
•• Una lista ordenada de valores. En la mayoría de los lenguajes, esto se implementa como arre-
glos, vectores, listas o secuencias.

69
Capítulo 10. Integración entre aplicaciones
Internacional
de Valencia

Estas son estructuras universales, virtualmente todos los lenguajes de programación las soportan de
una forma u otra.

JSON consta de los siguientes elementos:

•• Un objeto: es un conjunto desordenado de pares nombre/valor. Un objeto comienza con una lla-
ve de apertura “{” y termina con una llave de cierre “}”. Cada nombre es seguido por dos puntos “:”
y los pares nombre/valor están separados por una coma “,”.
•• Un valor: puede ser una cadena de caracteres con comillas dobles, un número, un valor booleano
o nulo, un objeto o un arreglo. Estas estructuras pueden anidarse.

Ejemplo

Figura 57. Ejemplo de formato JSON.

10.4. Endpoints
En informática, los endpoints son dispositivos o nodos que se encuentran conectados a una red y
aceptan comunicaciones entrantes y salientes a través de esta (Burnham, 2015).

Por la definición común de REST, un endpoint es un URI por el cual se puede acceder a un
servicio o recurso de una aplicación por parte de un cliente. Esta aplicación puede tener
múltiples endpoints con diferentes URIs para acceder a diferentes servicios y recursos.

70
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Por otra parte, en el diseño de software de aplicaciones, el frontend es la parte del software que inte-
ractúa con los usuarios y el backend es la parte que procesa la entrada de datos desde el frontend. El
backend es a la vez un término empleado para definir el desarrollo de la aplicación que se encuentra
del lado del servidor, que incluye el acceso a la base de datos y la forma de transmitir la información
almacenada. Frontend es a la vez un término empleado para definir el desarrollo de la aplicación que
se encuentra del lado del cliente, como lo es una aplicación web o cualquier aplicación que consuma
del servicio.

Asimismo, la nube (cloud) consiste en la utilización de servidores remotos para acceder a aplica-
ciones, procesar datos y almacenar información, relegando buena parte de los servicios de infraes-
tructura de hardware y software a un tercero, quien brinda el servicio a través de Internet, aliviando a
quien lo contrata de las labores de soporte, actualización de software y hardware, manejo de personal
del área de Tecnología de Información, etc., y generando una sensación de libertad e independencia en
el usuario, que puede tener acceso a sus datos desde cualquier lugar en el que se encuentre.

Un endpoint se mantiene en escucha de una solicitud y al recibirla procede a realizar la acción para la
que fue diseñado. En este caso los endpoints son las herramientas que proporciona el backend en el
cloud o la nube que permiten interactuar con la base de datos y todo su contenido. Dependiendo del
endpoint este puede devolver una respuesta con un valor o puede que solo realice una acción en el
backend.

10.5. CRUD
El propósito de las bases de datos no es solo almacenar información, sino manipular esa información
de distintas maneras con el objetivo de alimentar un conjunto de procesos previamente establecidos
en los sistemas informáticos.

En los sistemas de base de datos existen cuatro funciones básicas que son el CRUD: create, read,
update and delete; o crear, leer, modificar y eliminar. De estas cuatro funciones básicas derivan todo
un sinfín de funciones para el tratamiento de la información.

10.6. NoSQL
NoSQL (not only structured query language, o no solo lenguaje de consulta) es una expresión
que describe las bases de datos no relacionales de alto desempeño. Las bases de datos NoSQL
utilizan varios modelos de datos, incluidos los de documentos, gráficos, claves-valores y columnas
(Fernández, 2014). Otra definición muy usada es que las bases de datos NoSQL han sido diseñadas
para atender las crecientes demandas de volumen, velocidad y variedad de los datos que van a ser
almacenados y consultados.

Las bases de datos NoSQL están orientadas hacia la gestión de datos y el diseño de base de datos
de grandes conjuntos de datos distribuidos. Las bases de datos NoSQL son reconocidas por su faci-
lidad de desarrollo, el desempeño escalable, la alta disponibilidad y la resiliencia. Generalmente es un
sistema mucho más liviano y rápido que el relacional SQL (Structured Query Language, Lenguaje de
Consulta Estructurado).

71
Capítulo 10. Integración entre aplicaciones
Internacional
de Valencia

10.6.1. MongoDB

MongoDB, que proviene de humongous (enorme), es una base de datos no relacional (NoSQL), orien-
tada a objetos, y entre las no relacionales, una de las bases de datos más usadas hoy en día, ya que
permite a las empresas ser más ágiles y escalables. Organizaciones de todos los tamaños están
usando MongoDB para crear nuevos tipos de aplicaciones, mejorar la experiencia del cliente, acelerar
el tiempo de comercialización y reducir costes.

MongoDB es un sistema de base de datos multiplataforma orientado a documentos. Está licenciado


como GNU AGPL 3.0, de modo que se trata de un software de licencia libre. Funciona bajo sistemas
operativos Windows, Linux, OS X y Solaris.

Los distintos documentos se almacenan en formato BSON, que es una versión modificada de JSON
que permite búsquedas rápidas de datos. Para hacernos una idea, BSON guarda de forma explícita
las longitudes de los campos, los índices de los arreglos, y demás información útil para el escaneo de
datos.

MongoDB está escrito en C++, aunque las consultas se hacen pasando objetos JSON como pará-
metro. MongoDB viene de serie con una consola desde la que podemos ejecutar los distintos
comandos. Esta consola está construida sobre JavaScript, por lo que las consultas se realizan utili-
zando ese lenguaje. Además de las funciones de MongoDB, podemos utilizar muchas de las funciones
propias de JavaScript. En la consola también podemos definir variables, funciones o utilizar bucles.

Cualquier aplicación que necesite almacenar datos semiestructurados puede usar MongoDB. Es el
caso de las típicas aplicaciones CRUD o de muchos de los desarrollos web actuales.

MongoDB provee un grupo de métodos en JavaScript para realizar CRUD en las bases de datos a
través de la consola y los drivers de los distintos lenguajes de programación (“MongoDB Crud Opera-
tions”, 2018).

10.6.2. Instalación de MongoDB

MongoDB es una base de datos orientada a documentos. Esto quiere decir que en lugar de guardar los
datos en registros, guarda los datos en documentos. Estos documentos son almacenados en BSON,
que es una representación binaria de JSON.

Una de las diferencias más importantes con respecto a las bases de datos relacionales, es que no es
necesario seguir un esquema. Los documentos de una misma colección - concepto similar a una tabla
de una base de datos relacional -, pueden tener esquemas diferentes.

A continuación, se presentan los pasos para su instalación:

•• Ingresar a la página web: www.mongodb.com/download-center.


•• Seleccionar Community Server.
•• Seleccionar el sistema operativo de la computadora en la que se instalará el programa (Win-
dows, Linux u OSX).

72
Telemedicina y e-salud (e-health)
Internacional
de Valencia

•• En el recuadro Vision, seleccionar el número de bits de dicha computadora.


•• Seleccionar el botón Download.
•• Una vez presionado el botón Download, seleccionar la opción Ejecutar.
•• Cuando la descarga culmine, se desplegará una ventana como la siguiente. Seleccionar Next.
•• Seleccionar que se aceptan los términos y condiciones y una vez más Next.
•• En el próximo menú, no seleccionar Complete, en su lugar escoger Custom.
•• Seleccionar Browser.
•• Seleccionar la carpeta en donde se instalará mongoDB, en Look in. Recomendación: seleccionar
la carpeta C:
•• Seleccionar Ok > Next > Next > Install.
•• Una vez instalado seleccionar Finish.
•• Abrir el command prompt de Windows y escribir los siguientes comandos:

Figura 58. Activación del servidor mongoDB desde la consola administrativa de mongoDB.

Para confirmar que la conexión se puede realizar adecuadamente, escribir:

Figura 59. Conexión con la base de datos mongoDB. Ingreso en la consola de línea de
comandos administrativa de mongoDB.

73
Capítulo 11
1

Nuevas tendencias: big data, Internet de las cosas


y el procesamiento analítico en la nube

11.1. Big data

El big data hace referencia a grandes conjuntos de datos que por la velocidad a la que se
generan, la diversidad en las fuentes y formatos, y la alta velocidad de respuesta para proce-
sarlas convierte en todo un reto trabajar con ellos.

El big data se caracteriza a menudo por las conocidas como cuatro V:

•• Volumen (Volume). Hace referencia a la cantidad de datos generados y que deben ser captura-
dos, analizados y gestionados para tomar decisiones. El auge de la telefonía móvil y las redes
sociales y el crecimiento del número de dispositivos con capacidad de conectarse a Internet
(teléfonos inteligentes, tabletas, sensores, cámaras IP, etc.), generan cantidades enormes de
datos, que no paran de crecer siguiendo la Ley de Moore.

74
Telemedicina y e-salud (e-health)
Internacional
de Valencia

•• Velocidad (Velocity). Hace referencia a la rapidez con la que los datos son producidos o cambia-
dos. Cada vez es más importante, para mejorar los procesos de decisión, que los datos sean
accesibles y analizados en tiempo real. El incremento de la velocidad se debe al aumento de las
fuentes de datos, los mayores anchos de banda en la parte de conectividad y la mayor potencia
de computación de los dispositivos generando datos.

•• Variedad (Variety). El crecimiento de información viniendo de nuevas fuentes de datos, tanto


desde dentro como fuera de la organización, genera retos en los departamentos de tecnologías
de la información. Según varios estudios, sólo el 15% de la información actual está estructurada,
que es aquella que se almacena fácilmente en bases de datos relacionales u hojas de cálculo,
con sus tradicionales filas y columnas. Es decir, el 85 % está desestructurada (videos, audio,
social media, blogs, chat, e-mail, tweets, clics, sensores, etc.), lo cual supone grandes retos para
generar significado con las herramientas de inteligencia de negocio convencionales.

•• Valor (Value). La calidad los datos podría ser mala o indefinida, debido a inconsistencias e incon-
gruencias, ambigüedades, latencia, etc. Las decisiones en Big Data deben estar basadas en da-
tos fiables, trazables y justificables. Además, es importante considerar el potencial de
interacción entre los datos, producidos por distintas fuentes, pudiéndose generar información
muy útil de combinaciones con resultados impredecibles.

Los sistemas gestores de base de datos (SGDB) tradicionales trabajaban con información estruc-
turada y relacional. Las herramientas tradicionales no estaban diseñadas para analizar conjuntos de
datos no estructurados y masivos y procedentes de fuentes diversas de las que se pueden obtener
patrones escondidos, correlaciones desconocidas, etc.

El big data constituye la evolución natural de estos sistemas, trabajando con información más
compleja que cumple las 4 V. Los entornos de programación de big data destacan por su potencia en
el análisis estadístico y gráfico.

Evidentemente, esto supone la adopción de nuevas tecnologías. Así, del lenguaje SQL se ha pasado
a lenguajes y herramientas basadas en MapReduce de Google, como Hadoop, un entorno de progra-
mación de código abierto concebido por Yahoo! y actualmente soportado por Apache. Se han escrito
implementaciones de librerías de MapReduce en diversos lenguajes de programación como C++, Java
o Python.

Además, de un único servidor de grandes prestaciones, en big data se recurre a arquitecturas clúster
con servidores estándar de menores prestaciones, que trabajan de forma distribuida, buscando
reducir costes y mejorar la disponibilidad.

Cuando se trabaja con datos distribuidos, estas tecnologías no mueven los datos, lo cual sería muy
costoso y lento. En vez de hacer respaldos de información, se mantienen una serie de réplicas en
distintos servidores. Así, en vez de procesar los datos desde un lugar central, se distribuyen los
programas en los distintos servidores y se ejecutan en paralelo (map), consolidando posteriormente
los resultados (reduce las grandes empresas y organizaciones, sobre todo las Web 2.0 (Amazon,
Google, Facebook, LinkedIn, Twitter, etc.), han sido las primeras en aprovechar big data para reducir

75
Capítulo 11. Nuevas tendencias: big data, Internet de las cosas y el procesamiento analítico
Internacional
en la nube de Valencia

costos, mejorar su productividad, mejorar su servicio de atención al cliente, desarrollar nuevos


productos y servicios, etc.).

Al incorporar herramientas de inteligencia de negocios (business intelligence o BI) es posible realizar


análisis predictivos y avanzados, que nos ayudan en la toma de decisiones estratégicas en función
de una predicción de comportamiento basada en datos reales que nos permiten reducir el umbral
de error. El tamaño de los dispositivos está reduciéndose y el número de sensores está creciendo
dramáticamente; el mundo digital está volviéndose más conectado con el mundo físico a la vez que
el mercado laboral para profesionales técnicos que pueden usar estas conexiones para brindar valor
agregado a su mercado también está creciendo en forma exponencial.

11.2. Internet de las cosas (IdC)


El Internet de las cosas (IdC) es una expresión amplia donde convergen muchas tecnologías centradas
en sensores cada vez más pequeños que captan diversas variables y mediciones importantes, hard-
ware que facilita la conectividad a bajo coste (todo ello con necesidades energéticas muy bajas),
sistemas de análisis de datos que son capaces de procesar datos en tiempo real para generar alertas
o información más fácil de procesar, etc.

Para el año 2020, se estima que habrá más de 50.000 millones de dispositivos conectados a Internet,
en promedio casi siete dispositivos para cada persona en el planeta. Estos dispositivos abarcarán los
mercados industriales, comerciales y de consumo que podrán comunicarse entre sí de forma inteli-
gente y responder inteligentemente a la interacción humana y las necesidades comerciales de una
notable variedad de formas.

El IdC potencia objetos que antiguamente se conectaban mediante circuito cerrado, como comuni-
cadores, cámaras, sensores, y demás, y les permite comunicarse globalmente mediante el uso de la
red de redes.

Si tuviéramos que dar una definición del Internet de las cosas probablemente lo mejor sería
decir que se trata de una red que interconecta objetos físicos valiéndose del Internet.

El big data, el IdC y la nube crean un nuevo ecosistema muy fértil que ha hecho nuestras vidas más
efectivas y agradables, y ofrece nuevas oportunidades para que las empresas mejoren sus eficiencias
operativas y brinden oportunidades de crecimiento.

Es por ello que las empresas proveedoras de servicios en la nube han centrado su atención en proveer
plataformas que ofrezcan conectividad y análisis en tiempo real de la información proveniente de
dispositivos del IdC.

Algunos ejemplos de estas plataformas son Microsoft Azure IoT Suite, Google Cloud IdC Core y
Amazon Web Service IoT. Todas ellas centran sus esfuerzos en ofrecer servicios para conectividad de
los dispositivos IdC y análisis de datos en tiempo real.

76
Telemedicina y e-salud (e-health)
Internacional
de Valencia

Estos conceptos se aplican en diversidad de ámbitos: domótica, para lo que sería hogares inteli-
gentes, en donde se pueden programar diversos actuadores y captar información de diversos dispo-
sitivos usados en el hogar, a fin de controlar, temperatura, humedad, presión, encendido y apagado de
las luces, etc.; la ciudad inteligente, para el control de luces de forma amigable con el ambiente; salud
digital, monitoreo de pacientes con enfermedades crónicas, monitoreo de tercera edad, etc.

En el IdC se utilizan chips y circuitos que cuentan con todas las herramientas necesarias para cumplir
labores especializadas muy específicas. A nivel creciente se están usando también los dispositivos
celulares tipo pulsera en aplicaciones de salud y monitoreo y para prevención de enfermedades
mediante el ejercicio y la nutrición sana.

Los sistemas embebidos son el principio técnico por el que es posible la interconexión de los objetos
cotidianos con el Internet ya que por su naturaleza estos sistemas cubren necesidades específicas
y pueden cumplir tareas en tiempo real. Las interfaces inteligentes también son uno de los compo-
nentes esenciales para el funcionamiento fáctico de los objetos con Internet.

Todas las grandes empresas tecnológicas han creado una línea de productos para IdC, desde dispo-
sitivos inteligentes hasta plataformas de desarrollo miniaturizados, entre ellas Raspberry, Arduino,
Samsung, Intel.

Las soluciones concebidas bajo plataformas de IdC siguen más o menos la misma estructura: la solu-
ción comienza con dispositivos que contienen sensores que pueden enviar información de telemetría
a través de Internet a la nube, en donde se aplican diversos algoritmos de procesamiento o de alguna
manera se procesa la información luego de lo cual se infiere o se detecta algún tipo de anomalía, falla,
o situación peculiar, y se establecen patrones y tendencias a fin de predecir cosas.

Podría realizarse un procesamiento en lotes, o podría ser también procesamiento en tiempo real, lo
que también se conoce como análisis en tiempo real, y con base en esto se podrían tomar o ejecutar
acciones sobre estas mismas cosas. Por ejemplo, si la temperatura está en un nivel demasiado alto,
entonces se reinicializa el dispositivo, o se activa el sistema de enfriamiento en ese cuarto, o se envía
una notificación de alerta que pueda controlar la situación.

Actualmente, el IdC está llegando un punto de inflexión por varias razones:

•• El costo del hardware es bajo. Puedes conseguir dispositivos que tienen sensores incorpora-
dos, a un precio bastante razonable, por lo que vemos nuevos dispositivos, y partes y piezas que
se añaden en nuevos escenarios y en situaciones en los que no habían sido explorados anterior-
mente.

•• La conectividad está disponible en todas partes, usando Wi-Fi o inclusive redes móviles, con lo
cual se conecta el dispositivo a Internet para su procesamiento en tiempo real.

•• El desarrollo de aplicaciones es relativamente sencillo. Encontramos una serie de soluciones y


módulos o bloques disponibles para los desarrolladores, de manera que no tienen que comenzar
a programar desde cero, y que contribuyen a resolver a nuestras necesidades. La mayoría de
esos bloques incluyen funcionalidades de seguridad tradicionalmente establecida, así como la
posibilidad de administrarlos y configurarlos remotamente.

77
Capítulo 11. Nuevas tendencias: big data, Internet de las cosas y el procesamiento analítico
Internacional
en la nube de Valencia

•• Con la nube, es posible manejar big data de manera más sencilla, sin tener que preocuparse de
los requerimientos de almacenamiento local, y además proveen capacidades y diversas herra-
mientas de análisis en tiempo real, disponibles desde cualquier lugar, lo cual hace posible la es-
calabilidad en el uso de modelos de inteligencia artificial y aprendizaje automático (machine
learning) para hacer el análisis en tiempo real.

Enlace de interés
Para familiarización con este tema, se escogerá una colección de datos tomada de la biblio-
teca gratuita de una amplia variedad de dispositivos y proyectos de IdC de la Universidad de
Irvine, California, Estados Unidos
https://archive.ics.uci.edu/ml/datasets

En ella, por ejemplo, se puede escoger analizar información captada a través de acelerómetros
colocados en los ejes x, y, z, en las colecciones de datos de pacientes de tercera edad para moni-
toreo remoto. Luego, se podría analizar la información para por ejemplo detectar en qué momento
el paciente está caminando, corriendo o sin ningún tipo de actividad física. Se podría cargar la infor-
mación en Jupyter Notebook, para luego utilizar la librería Pandas para manipular los datos, hacer
gráficas y en definitiva realizar el análisis de los datos.

Por último, se muestra un ejemplo que ilustra el uso de REST API para la integración de la información
proveniente de dos aplicaciones distintas. Gracias a ello, encontramos un sin fin aplicaciones nuevas
que se crean y están disponibles a diario, pues se facilita la labor del desarrollador, quien no tiene obli-
gatoriamente que comenzar una aplicación desde cero, sino que tiene a su disposición código prove-
niente de otras aplicaciones a las que fácilmente puede acceder, sin tener que preocuparse de si las
aplicaciones están desarrolladas en lenguajes de programación diferentes.

Figura 60. Ejemplo de uso de REST API de Google Maps y de Insta-


gram para producir sencilla aplicación en la que el usuario solicita las
fotos tomadas cercanas a un lugar, en este caso la Torre Eiffel.

78
Glosario

API

El API (application programming interface o interfaz de programación de aplicaciones) es una librería


que contiene un conjunto de funciones que puede ser utilizado por otros programas y aplicaciones,
incluso si son escritas en un lenguaje de programación diferente.

Backend

En el diseño de software de aplicaciones. El frontend es la parte del software que interactúa con los
usuarios y el backend es la parte que procesa la entrada de datos desde el frontend.

Base de datos

Colección de datos almacenados de forma estructurada que pueden ser seleccionados eficiente-
mente por un programa del ordenador, con el propósito de ser consultados, actualizados, cumplimen-
tados y eliminados. En un sistema gestor de base de datos (SGDB) o database management system
(DBMS), una base de datos es un sistema de archivos electrónico.

Campo

Espacio para el almacenamiento de un dato en particular.

CRUD

Acrónimo de create, read, update and delete: crear, leer, actualizar y borrar. Se usa para referirse a las
funciones básicas en bases de datos o la capa de persistencia en un software.

DICOM

DICOM (digital imaging and communications in medicine) es el estándar reconocido mundialmente


para el intercambio de imágenes médicas. Este incluye un estándar de comunicación entre sistemas
de información y a la vez un formato de almacenamiento de imágenes médicas.

EN13606

Normas de interoperabilidad de la historia clínica electrónica en el entorno de centros de salud.

Endpoint

Dispositivo o nodo que se encuentra conectado a una red y acepta comunicaciones entrantes y
salientes a través de esta. En un sistema REST, un endpoint es un URI por el cual se puede acceder a
un servicio o recurso de una aplicación por parte de un cliente.

79
Glosario
Internacional
de Valencia

Entidad

Identifica a los elementos que reciben información o envían datos.

Fast Healthcare Interoperability Resources

El Fast Healthcare Interoperability Resources (FHIR) se refiere al último estándar desarrollado y


promovido por la organización internacional Health Level 7 (HL7), responsable de algunos de los
protocolos de comunicaciones más utilizados hoy en día en el sector salud. Se utiliza para facilitar el
intercambio de información entre dispositivos de salud personal, el registro médico electrónico, el
registro de salud electrónico, entre otros.

Health Level 7

Health Level 7 (HL7) es un conjunto de estándares para facilitar el intercambio electrónico de informa-
ción clínica entre dispositivos y sistemas de información médica.

ISO/IEEE11073

Familia de normas para interoperabilidad de dispositivos médicos ponibles en entornos de salud


personal y de emergencia.

JSON

JSON (JavaScript Object Notation o notación de objetos de JavaScript) es un formato estándar de


almacenamiento de datos semiestructurados, disponibles en not only structured query language o
base de datos NoSQL.

NoSQL

NoSQL (not only SQL o no solo lenguaje de consulta estructurado) es una expresión que describe las
bases de datos no relacionales de alto desempeño, orientadas hacia la gestión de datos y el diseño de
base de datos de grandes conjuntos de datos distribuidos.

Nube

La nube (cloud en inglés) es un conjunto de servidores remotos para acceder a aplicaciones, procesar
datos y almacenar información, relegando buena parte de los servicios de infraestructura de hard-
ware y software a un tercero, quien brinda el servicio a través de Internet, aliviando a quien lo contrata
de las labores de soporte, actualización de software y hardware, manejo de personal del área de
Tecnología de Información, etc.

Objeto

Es una entidad tangible que muestra un comportamiento bien definido.

80
Telemedicina y e-salud (e-health)
Internacional
de Valencia

ORM
El ORM (object relational mapper o trazador de objetos relacionales) es un modelo de programación
que consiste en la transformación de las tablas de una base de datos, en una serie de entidades u
objetos que simplifiquen las tareas básicas de acceso a los datos para el programador.

Ponible (wearable)
Conjunto de aparatos y dispositivos electrónicos que se incorporan en alguna parte del cuerpo inte-
ractuando de forma continua con el usuario y con otros dispositivos con la finalidad de contribuir al
control del estado de salud de quien lo lleva.

Registro de salud personal


El registro de salud personal (personal health record o PHR) es una aplicación electrónica para regis-
trar datos médicos personales que el propio paciente controla y puede enviar al proveedor de salud
en forma privada, segura y confidencial.

Registro electrónico de salud


El registro electrónico de salud (electronic health record o EHR) es una colección de información
médica electrónica de pacientes individuales o de poblaciones, y que usualmente provienen de una
variedad de proveedores de salud.

Registro médico electrónico


El registro médico electrónico (electronic medical record o EMR) es un registro de pacientes creados
por los proveedores de salud por encuentros o visitas específicas en hospitales y centros ambulato-
rios, y que sirven como fuente de información para en registro electrónico de salud.

REST
Es cualquier interfaz entre sistemas que use HTTP para obtener datos o generar operaciones sobre
esos datos en diversos formatos de datos semiestructurados, tales como XML y JSON.

Servidores de imágenes médicas


Los servidores de imágenes médicas, más conocidos como sistemas de comunicaciones y almace-
namientos de imágenes (picture archiving and communication systems in medicine) contienen esta-
ciones de revisión y diagnóstico radiológico, almacenamiento en línea de largo plazo y distribución
bajo entorno web.

Sistema gestor de base de datos


En un sistema gestor de base de datos (SGDB) o database management system (DBMS), una base
de datos es un sistema de archivos electrónico. Los sistemas de gestión de bases de datos permiten
almacenar y posteriormente acceder a los datos de forma rápida y estructurada.

81
Glosario
Internacional
de Valencia

Sistemas de información radiológica


Los sistemas de información radiológica (radiology information systems o RIS) son sistemas infor-
máticos que permiten realizar los procesos de gestión de un departamento de radiología; gestionar la
información y sostener la comunicación del departamento con otros servicios.

Sistemas de prescripción y medicación electrónica


Los sistemas de prescripción y medicación electrónica (computerized physician order entry o CPOE)
son sistemas informáticos que permiten realizar la gestión de los procesos de prescripción y dispen-
sación fármaco-terapéutica y la coordinación de los profesionales de la salud. Para los pacientes con
tratamientos de larga duración, el sistema permite disminuir la frecuencia con que asisten al centro
de atención primaria, e implica la mejora de la seguridad del paciente por la reducción de errores
respecto a la prescripción tradicional en papel.

SNOMED-CT
El SNOMED-CT (Systematic Nomenclature of Medicine – Clinical Terms) es un diccionario ontológico
que establece códigos y sus relaciones para nombres de microorganismos, síntomas y patologías.
Tiene como propósito ayudar a estructurar e computarizar el registro médico, al reducir la variabi-
lidad con la que los datos son capturados, codificados y usados para el cuidado médico del paciente y
en investigación médica.

Tabla de una base de datos


Tipo de modelado de datos, donde se almacenan los datos usados por un programa. Haciendo
analogía con un programa de hoja de cálculo, las columnas representan los campos y las filas vienen a
ser los registros u ocurrencias de las entidades definidas en la tabla, cuyos datos se pueden ser alma-
cenados y presentados de manera estructurada y ubicados de manera eficiente.

XML
El XML (eXtensible Markup Language o lenguaje de marcas extensible) es un formato estándar de
almacenamiento de datos semiestructurados, disponibles en una base de datos NoSQL.

82
Enlaces de interés

Curso de introducción a Laravel 5

Guía con indicaciones, paso a paso, de cómo desarrollar una aplicación bajo el entorno de trabajo
Laravel 5.

https://legacy.gitbook.com/book/richos/laravel-5/details

Jupyter Notebook Tutorial: The Definitive Guide

Tutorial de Jupyter Notebook que explica cómo instalar, ejecutar y usar cuadernos de Jupyter Note-
book.

https://www.datacamp.com/community/tutorials/tutorial-jupyter-notebook

Academind Curso de Laravel Maximilian Schwarzmüller

Curso de Laravel con implementación, paso a paso, de aplicación de comercio electrónico con carrito
de compras. Sirvió de base para la aplicación de Farmacia en Línea. Muy ilustrativo en especial el
video #3 que explica lo referente a migraciones y población de datos en la base de datos (Data Migra-
tions and Seeding), usando una estructura de tipo arreglo con la información de los productos a incluir
en la aplicación.

https://www.youtube.com/playlist?list=PL55RiY5tL51qUXDyBqx0mKVOhLNFwwxvH

Flask Web Development Series de Shaantam Chawla

Tutorial de Flask con Jinja que sirve como rápida referencia para inyectar información de una base de
datos como mongoDB en una página web.

https://www.youtube.com/playlist?list=PLzWaSuz38oGvFklb9kUCjT2FGS95chHcz&disable_poly-
mer=true

SNOMED International SNOMED CT Browser

Navegador en Internet del diccionario semántico de términos médicos SNOMED CT, que sirve como
rápida referencia para familiarizarse con el uso de este vocabulario estándar, sus códigos, conceptos
y sus relaciones para nombres de microorganismos, síntomas y patologías.

http://browser.ihtsdotools.org

83
Enlaces de interés
Internacional
de Valencia

Interoperabilidad de dispositivos médicos mediante el estándar ISO/IEEE 11073 sobre tecnología


Bluetooth

El estándar ISO/IEEE11073 permite proporcionar interoperabilidad ubicua y en tiempo real para los
diferentes dispositivos médicos que necesite el paciente y facilita el intercambio eficiente de los
signos vitales y de la información asociada a los dispositivos en diferentes entornos clínicos. Este
trabajo da una solución para la capa de transporte integrada en el estándar, proporcionando una
comunicación entre agente y manager sobre tecnología Bluetooth. Artículo escrito por Del Valle,
Trigo, Martínez, Escayola, Martínez-Espronceda, Serrano y García.

https://www.researchgate.net/publication/266462910

84
Bibliografía

Braunstein, M. (2016). Contemporary Health Informatics. Illinois: AHIMA Press.

Burnham, J. D. (13 de febrero de 2015). A simple definition: What is an Endpoint? Druva Blog. Recupe-
rado de http://www.druva.com/blog/simple-definition-endpoint/

Cardier, M., Manrique, R., Huarte, A., Valencia, M. L., Borro, D., Calavia, D., y Manrique M. (2016). Teleme-
dicina. Estado actual y perspectivas futuras en Audiología y Otología. Revista Médica Clínica
Condes, 27(6), 840-847.

DBMS and SQL Tutorial (2018). Studytonight. Recuperado de https://www.studytonight.com/dbms/


dml-command.php

Elmasri, R., y Navathe, S. B. (2017). Fundamentals of Database Systems (7.a edición). Delhi: Pearson.

Fernández, R. (27 de enero de 2014). Bases de datos NoSQL. Elige la opción que mejor se adapte a tus
necesidades. Genbeta. Recuperado de http://www.genbetadev.com/bases-de-datos/bases-
de-datos-nosql-elige-la-opcion-que-mejor-se-adapte-a-tus-necesidades

Ingargiola, A. (2015). Jupyter/IPython Notebook Quick Start Guide. Recuperado de http://jupyter-no-


tebook-beginner-guide.readthedocs.io/en/latest/what_is_jupyter.html

Introducción a JSON (2017). JSON. Recuperado de http://www.json.org/json-es.html

Running the Notebook (2018). Jupyter Documentation. Recuperado de https://jupyter.readthedocs.


io/en/latest/running.html

MongoDB Crud Operations (2018). MongoDB. Recuperado de https://docs.mongodb.com/manual/


crud/

Monica, K. (2017). VA Digital Health Platform to Improve EHR Interoperability. HIT Infrastructure. Recu-
perado de https://hitinfrastructure.com/news/va-digital-health-platform-to-improve-ehr-
interoperability

Ochoa, J. (2015). Aprende a usar Eloquent el ORM de Laravel. Styde. Recuperado de https://styde.net/
aprende-a-usar-eloquent-el-orm-de-laravel/

Palacios, D. (2017). Introducción a Eloquent, el ORM del framework Laravel. Styde. Recuperado de
https://styde.net/introduccion-a-eloquent-el-orm-del-framework-laravel/

SQL Tutorial (2018a). Techonthenet. Recuperado de https://www.techonthenet.com/sql/index.php

SQL Tutorial (2018b). W3schools. Recuperado de https://www.w3schools.com/sql/

Stanford CS145 Fall 2017 (2017). GitHub. Recuperado de https://github.com/stanford-futuredata/


cs145-2017/

85
Bibliografía
Internacional
de Valencia

Telefónica (2018). Vall d’Hebron y Telefónica presentan un nuevo sistema de seguimiento digital de
los pacientes quirúrgicos. Nota de prensa. Recuperado de https://www.vallhebron.com/sites/
default/files/files-docs/ndp_vall_dhebron_y_telefonica_presentan_un_nuevo_sistema_de_segui-
miento_digital_de_los_pacientes_quirurgicos_cast.pdf

Trigo, J. D., Escayola J., Martínez-Espronceda, M., Martínez, I., Serrano, L. Led, S., García, J. (2015). Evolu-
ción del Estándar ISO/IEEE11073 para Interoperabilidad de Dispositivos Médicos Personales
en Entornos Ubicuos. ResearchGate. Recuperado de: https://www.researchgate.net/publica-
tion/268401640_Evolucion_del_Estandar_ISOIEEE11073_para_Interoperabilidad_de_Disposi-
tivos_Medicos_Personales_en_Entornos_Ubicuos

Yáñez, A. (2016) Telemedicina, un nuevo modelo de cuidados de salud. Innovación en Salud. Recupe-
rado de http://innovacionensalud.expobeta.com/salud-digital/telemedicina-un-nuevo-mode-
lo-de-cuidados-de-salud

86
Autora
Dra. Liliana Gavidia Ceballos

Internacional
Reservados todos los derechos© de Valencia
Universidad Internacional de Valencia - 2019

También podría gustarte