Documentos de Académico
Documentos de Profesional
Documentos de Cultura
e-SALUD (e-HEALTH)
Edita
Universidad Internacional de Valencia
Máster Universitario en
Ingeniería Biomédica
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.2.1. Teleconsulta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.4. Teleurgencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.6. Investigación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.8. Teleeducación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.1. WLAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.2. RFID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.3. Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5
Índice
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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2. Patientslikeme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6
Telemedicina y e-salud (e-health)
Internacional
de Valencia
8.2.1. SELECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.2.2. INSERT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.2.3. UPDATE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.2.4. DELETE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.3.1. GRANT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.3.2. REVOKE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
8.4.1. LIKE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
8.5.1. Índices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.5.2. Restricciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
9.3. ORM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
9.4. SQLALCHEMY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
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
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 cultura de conectividad permanente gracias a las poderosas herramientas web 2.0 y web 3.0
disponibles (big data, machine learning, etc.).
•• 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.
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.
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.
Telecuidados
Servidor de Monitorización
señales posquirúrgica
Servidor de
imágenes
Servidor de bases
de datos
Servidor web
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.
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.
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
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 á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
Entre ellos podemos mencionar los datos personales del paciente, nombre del médico, diagnóstico, etc.
Entre ellas podemos destacar las imágenes de rayos X, tomografía computarizada, resonancia
magnética, etc.
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
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
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.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.
1.4.2. RFID
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
•• 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.
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.
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.
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
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.
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.
17
Capítulo 2. Sistemas de información médica
Internacional
de Valencia
•• 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.).
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.
•• 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.
•• Búsqueda en los fármacos de alergógenos a los que se conoce que el paciente es sensible.
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. 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.
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.
20
Telemedicina y e-salud (e-health)
Internacional
de Valencia
Transcripción de
Transcriptor
informe radiológico
Entrega de informe
Recepcionista
radiológico
21
Capítulo 3
Los dispositivos médicos se agrupan en tres categorías, sobre las que se puede utilizar esta
especificación:
22
Telemedicina y e-salud (e-health)
Internacional
de Valencia
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.
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
23
Capítulo 3. Interoperabilidad y estandarización de datos e información clínica
Internacional
de Valencia
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/
•• 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
Enlace de interés
Consulta la norma europea EN13606:
https://www.une.org/encuentra-tu-norma/busca-tu-norma/norma/?c=N0051032
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
Instancia z
Serie y
Estudio x
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.
•• 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.
•• 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
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
Enlace de interés
Este enlace permite acceder al Departamento de Servicios a Veteranos de Estados Unidos:
https://www.va.gov/
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).
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
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.
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
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.
34
Telemedicina y e-salud (e-health)
Internacional
de Valencia
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
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.
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
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
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.
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
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.
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.
•• 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
En este caso, “vuelos” es el nombre de la tabla, y luego se especifica qué tipo de información va a
contener la tabla:
40
Telemedicina y e-salud (e-health)
Internacional
de Valencia
Enlace de interés
Página web oficial de la aplicación Jupyter Notebook:
https://jupyter.org/
•• 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.
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.
•• 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.
•• 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.
•• 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
El SQL es un lenguaje sencillo, versátil y poderoso, que permite crear, consultar y manipular datos y
estructuras en una base de datos.
Los comandos asociados a la definición del schema se indican a continuación (“SQL Tutorial”, 2018b):
43
Capítulo 8. Cómo manipular datos con el lenguaje SQL
Internacional
de Valencia
Ejemplo
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 16. Sintaxis para eliminar por completo una base de datos en SQL.
44
Telemedicina y e-salud (e-health)
Internacional
de Valencia
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:
Ejemplo
45
Capítulo 8. Cómo manipular datos con el lenguaje SQL
Internacional
de Valencia
Ejemplo
8.2.2. INSERT
El comando INSERT se usa para crear nuevos registros (llenar una fila en la tabla)
La sintaxis es la siguiente:
Ejemplo
También es posible crear un nuevo registro en el que se insertan selectivamente valores en algunos
campos (no en todos):
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.
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:
A continuación, se muestra un ejemplo de eliminación de registros de una tabla que cumplen una
determinada condición.
Ejemplo
Este registro es el único que cumple con la condición dada en la cláusula WHERE.
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.
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:
49
Capítulo 8. Cómo manipular datos con el lenguaje SQL
Internacional
de Valencia
Ejemplo
Resultado:
Ejemplo
Resultado:
50
Telemedicina y e-salud (e-health)
Internacional
de Valencia
Ejemplo
Resultado:
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
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
En este caso, el atributo id de la tabla vuelos toma valores únicos y no puede tomar el valor NULL.
Ejemplo
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
53
Capítulo 8. Cómo manipular datos con el lenguaje SQL
Internacional
de Valencia
Ejemplo
Ejemplo
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
En este caso, asigna el valor por defecto Madrid en el atributo destino en la tabla vuelos.
55
Capítulo 9
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.
•• 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.
•• 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
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 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
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:
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
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
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.
61
Capítulo 9. Desarrollo de aplicaciones bajo entorno web, con el uso de bases de datos
Internacional
de Valencia
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();
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.
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.
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.
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.
•• 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.
•• 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.
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
1. Instalamos el módulo Flask utilizando el comando: pip install flask desde la consola de
Windows o cualquier otra consola bash, obteniendo:
>>>
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:
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)
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.
Figura 55. Ejecución de la aplicación web en python y verificación de que se ejecuta correc-
tamente en consola.
67
Capítulo 10
1
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
68
Telemedicina y e-salud (e-health)
Internacional
de Valencia
•• 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.
•• 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.
•• 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
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.
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).
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.
72
Telemedicina y e-salud (e-health)
Internacional
de Valencia
Figura 58. Activación del servidor mongoDB desde la consola administrativa de mongoDB.
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
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.
•• 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.
•• 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
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.
•• 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.
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.
78
Glosario
API
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
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
EN13606
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
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
JSON
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
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.
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.
81
Glosario
Internacional
de Valencia
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.
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
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
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
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
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
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
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
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.
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
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/
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