Upload
lamtu
View
219
Download
0
Embed Size (px)
Citation preview
1
APP GONIÓMETRO PARA DISPOSITIVOS ANDROID
Autor:
Simón Andrés Alvarez Guayacundo
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD TECNOLÓGICA
PROYECTO CURRICULAR DE INGENIERÍA EN TELECOMUNICACIONES
Bogotá D.C., Colombia
2016
2
APP GONIÓMETRO PARA DISPOSITIVOS ANDROID
Código del Proyecto 201503273012
Autor:
Simón Andrés Alvarez Guayacundo Código: 20122273039
Monografía para optar por el título de:
Ingeniero En Telecomunicaciones
Director:
Ing. Esp. ESPERANZA CAMARGO
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD TECNOLÓGICA
PROYECTO CURRICULAR DE INGENIERÍA EN TELECOMUNICACIONES
Bogotá D.C., Colombia
2016
3
APP GONIÓMETRO PARA DISPOSITIVOS ANDROID
PAGINA DE APROBACIÓN
Observaciones
_____________________________________________________________
_____________________________________________________________
______________________________________________________________
______________________________________
Ing. Esp. ESPERANZA CAMARGO
Director del Proyecto
_____________________________________
Jurado 1
_____________________________________
Jurado 2
Fecha de Presentación:
4
AGRADECIMIENTOS
Innumerables son los momentos que han pasado hasta el día de hoy, incontables son las
personas con las que he vivido todo este camino, que me han dejado enseñanzas a lo largo de
esta etapa, que me han hecho crecer no solo profesionalmente sino también personalmente, con
todos ellos solo tengo palabras de agradecimiento, sin embargo vale resaltar el inmenso esfuerzo
y apoyo que he tenido por parte de mi familia que hicieron que hoy esto fuera un fruto no solo mío
sino de ellos también y de igual forma a la profesora Esperanza Camargo quien creyó en mí, quien
como colega y/o amiga me aconsejo y me guio para siempre alcanzar los mejores resultados. A
todos ustedes que de una u otra manera conforman la universidad distrital Francisco José de
Caldas infinitas gracias.
5
RESUMEN
Las soluciones TIC han tenido gran acogida en los últimos años ya que brindan no solo una gran
cantidad de dispositivos con los cuales se puede apoyar una gran variedad de servicios con los
mismos. Estas soluciones van desde lo académico en proyectos, como en trabajos de
investigación, también en la laboral para microempresas como grandes multinacionales, esto
gracias a su fácil acceso.
Bajo esta tendencia nace la posibilidad de crear una aplicación para dispositivos inteligentes con
sistema operativo Android que permita ayudar y facilitar el trabajo de especialistas en ortopedia,
terapia física, fisioterapeutas entre otros. Actualmente muchos de ellos usan instrumentos poco
ergonómicos además de imprecisos, es por esto que se desarrolló una aplicación tipo
goniómetro mediante un teléfono inteligente, este permite medir los ángulos que se forman en las
diferentes articulaciones del cuerpo, teniendo una medida más veraz además de tener la opción
de poder almacenar esta información en bases de datos. La aplicación del teléfono inteligente se
comunica con una aplicación de escritorio con el fin de facilitar la visualización de la medida y
poder hacer un registro completo y detallado de los pacientes sobre los cuales se usen. Estas
aplicaciones no solo simplificaran el trabajo de los especialistas sino que se espera que sean un
referente para implementar soluciones TIC en el área de la salud.
6
ABSTRACT
ICT solutions have been well received in recent years because we provide not only a lot of
devices with which it can support a variety of services with the same. These solutions are
given from academic projects and research, also in working for large multinationals and
micro and thanks to its easy access.
Under this trend comes the possibility of creating an application for smart devices with
Android operating system that allows assist and facilitate the work of specialists in
orthopedics, They use little ergonomic instruments also inaccurate is why using a
smartphone is possible to generate an application goniometer that allows them to measure
the angles formed in different joints of the body, having a truer as well as having the option
to store this information in Data Bases. The smartphone application communicates with a
desktop application in order to facilitate the visualization of the measure and to make a
complete and detailed patient use on which registration. These applications simplify the
work we only specialists but it is expected to be a reference to implement ICT solutions in
the area of health.
7
CONTENIDO
AGRADECIMIENTOS ..................................................................................................................... 4
RESUMEN ...................................................................................................................................... 5
ABSTRACT .................................................................................................................................... 6
LISTA DE TABLAS ...................................................................................................................... 10
LISTA DE FIGURAS ..................................................................................................................... 11
LISTA DE TÉRMINOS .................................................................................................................. 13
GLOSARIO ................................................................................................................................... 14
INTRODUCCIÓN .......................................................................................................................... 15
1. DESCRIPCIÓN DEL PROYECTO ......................................................................................... 17
1.1 Descripción del problema ..................................................................................... 17
1.2 Objetivos .............................................................................................................. 17
1.2.1 Objetivo general ....................................................................................................... 17
1.2.2 Objetivos específicos ............................................................................................... 17
2. ESTADO DEL ARTE ............................................................................................................. 18
2.1 Aplicación Android De Apoyo A Fisioterapeutas ....................................................... 18
2.2 Digital Basado En Sensores Cinemáticos Con Comunicación Inalámbrica En
Tiempo Real ................................................................................................................... 18
2.3 Goniómetro Pro ........................................................................................................ 19
2.4 Goniómetro Digital Para Medir Flexoextensión En Brazo Derecho Como Propuesta
Para Aplicaciones En Telerehabilitación ......................................................................... 20
2.5 Goniometer Records ................................................................................................ 20
3. MARCO TEÓRICO ................................................................................................................ 21
3.1 Android. ............................................................................................................... 21
3.1.1 El núcleo Linux. ........................................................................................................ 22
3.1.2 Runtime de Android. ................................................................................................ 22
3.1.3 Librerías Nativas ...................................................................................................... 22
3.1.4 Entorno de Aplicación .............................................................................................. 23
3.1.5 Aplicaciones ............................................................................................................. 24
3.2 Tecnologías de la Información y las Comunicaciones- TIC .................................. 24
3.3 Acelerómetro. ....................................................................................................... 25
8
3.4 Magnetómetro. ..................................................................................................... 29
3.4.1. Tipos de Magnetómetros .......................................................................................... 29
3.5 Ángulos de Euler. ................................................................................................. 30
3.6 PHP. ..................................................................................................................... 33
3.7 XAMP. ................................................................................................................... 35
3.8 Bases de Datos. ................................................................................................... 37
3.8.1 Aplicaciones de los sistemas de bases de datos ................................................ 38
3.8.2 Relaciones entre bases de datos .......................................................................... 38
3.8.3 Estructura de un sistema de bases de datos ............................................................ 39
3.8.4 Tipos de bases de datos .......................................................................................... 42
3.8.5 Motores de bases de datos ...................................................................................... 43
3.9 Goniometría. ......................................................................................................... 43
3.9.1 Planimetría .............................................................................................................. 44
3.9.2 Plano Sagital .......................................................................................................... 45
3.9.3 Plano Frontal o Coronal ......................................................................................... 46
3.9.4 Plano Transversal u Horizontal ............................................................................. 47
4. MARCO LEGAL..................................................................................................................... 49
4.1 Decreto 4725 De 2005 ......................................................................................... 49
4.2 ISO13485 (2003) .................................................................................................. 49
4.3 Directiva 90/385/CEE .......................................................................................... 49
4.4 IEC 60601-1-8 (2004) ........................................................................................... 49
4.5 ISO/IEEE 11073 ................................................................................................... 49
4.6 STDPD94706 ....................................................................................................... 49
5. METODOLOGÍA .................................................................................................................... 50
5.1 Modelo en cascada de ingeniería de software ..................................................... 50
5.2 Fases del proyecto ............................................................................................... 51
5.2.1. Análisis y estudio de las posibles tecnologías para la implementación ..................... 52
5.2.2 Componentes de la arquitectura de las aplicaciones ................................................ 58
5.2.3 Pruebas y evaluación de la aplicación ...................................................................... 63
6. DESARROLLO INGENERIL. ................................................................................................. 65
9
6.1 Análisis y estudio de las posibles tecnologías para la implementación ................ 65
6.2 Interfaz Gráfica. .................................................................................................... 65
6.2.1 Interfaz de la App ..................................................................................................... 65
6.2.2 Interfaz de la aplicación de escritorio ....................................................................... 66
6.3 Funcionalidades de las aplicaciones .................................................................... 67
6.3.1 Funcionalidades de la App ....................................................................................... 68
6.3.2 Funcionalidades de la aplicación de escritorio ......................................................... 69
7. RESULTADOS ...................................................................................................................... 76
8. CONCLUSIONES .................................................................................................................. 83
BIBLIOGRAFÍA ............................................................................................................................ 84
10
LISTA DE TABLAS
TABLA 1 LIBRERÍAS NATIVAS DE ANDROID. ..................................................................................................... 23
TABLA 2 SERVICIOS DE ANDROID. ..................................................................................................................... 24
TABLA 3 VENTAJAS Y DESVENTAJAS DE USAR EL LENGUAJE PHP. [16] ................................................ 35
TABLA 4 COMPONENTES APLICACIÓN XAMMP. .............................................................................................. 36
TABLA 5 EJEMPLOS DE APLICACIONES DE BASES DE DATOS.[19] .......................................................... 38
TABLA 6 DISEÑO DE RELACIONES ENTRE TABLAS DE UNA BASE DE DATOS. [21] ............................. 38
TABLA 7 GESTOR DE ALMACENAMIENTO. [19] ................................................................................................ 40
TABLA 8 MOVIMIENTOS EN EL PLANO SAGITAL. ............................................................................................ 45
TABLA 9 MOVIMIENTOS EN EL PLANO FRONTAL. .......................................................................................... 46
TABLA 10 MOVIMIENTOS EN EL PLANO TRANSVERSAL. ............................................................................. 47
TABLA 11 METODOLOGÍA UTILIZADA. ................................................................................................................ 51
TABLA 12 DIAGRAMA UML PARA USUARIO DE LA APP. ................................................................................. 58
TABLA 13 TABLA DE EQUIVALENCIA ENTRE MOVIMIENTOS Y EJES. ........................................................ 59
TABLA 14 DIAGRAMA UML PARA USUARIO DE LA APLICACIÓN DE ESCRITORIO ................................. 60
TABLA 15 DIAGRAMA UML PARA ADMINISTRACIÓN DE BASES DE DATOS. ............................................ 63
TABLA 16 DICCIONARIO BASE DE DATOS......................................................................................................... 63
TABLA 17 MEDICIÓN DE ÁNGULOS FIJOS POR LA APP EN EL EJE “X”. .................................................... 81
TABLA 18 MEDICIÓN DE ÁNGULOS FIJOS POR LA APP EN EL EJE “Y”. .................................................... 82
TABLA 19 MEDICIÓN DE ÁNGULOS FIJOS POR LA APP EN EL EJE “Z”. .................................................... 82
11
LISTA DE FIGURAS
FIGURA 1 ARQUITECTURA DE ANDROID........................................................................................................... 21
FIGURA 2 ESQUEMA TIC ........................................................................................................................................ 25
FIGURA 3 ACELERÓMETRO .................................................................................................................................. 26
FIGURA 4 ACELERÓMETRO CON 3 EJES .......................................................................................................... 27
FIGURA 5 ESQUEMA ACELERÓMETRO CAPACITIVO..................................................................................... 28
FIGURA 6 APP BRÚJULA 360, EJEMPLO DE MAGNETÓMETRO. ................................................................. 30
FIGURA 7 ÁNGULOS ROLL, PITCH Y YAW. ........................................................................................................ 31
FIGURA 8 ESQUEMA DE FUNCIONAMIENTO DE LAS PAGINAS PHP. ........................................................ 34
FIGURA 9 PANEL DE CONTROL APLICACIÓN XAMPP. ................................................................................... 36
FIGURA 10 ESQUEMA DE BASES DE DATOS. .................................................................................................. 37
FIGURA 11 PROCESADOR DE CONSULTAS. ................................................................................................... 41
FIGURA 12 PLANOS Y EJES DEL CUERPO. ...................................................................................................... 44
FIGURA 13 MOVIMIENTOS DE FLEXIÓN EXTENSIÓN ALREDEDOR DEL EJE MEDIOLATERAL DEL
HOMBRO DERECHO EN EL PLANO SAGITAL.......................................................................................... 45
FIGURA 14 MOVIMIENTOS DE ABDUCCIÓN ADUCCIÓN SOBRE EL EJE ANTEROPOSTERIOR DEL
HOMBRO DERECHO EN EL PLANO FRONTAL. ....................................................................................... 46
FIGURA 15 MOVIMIENTOS DE ROTACIÓN DEL HOMBRO DERECHO SOBRE EL EJE VERTICAL EN EL
PLANO TRANSVERSAL. ................................................................................................................................ 47
FIGURA 16 MÉTODO DEL CERO NEUTRO. ...................................................................................................... 48
FIGURA 17 FASE DEL MODELO EN CASCADA ................................................................................................. 50
FIGURA 18 IDE ECLIPSE. ....................................................................................................................................... 53
FIGURA 19 IDE NETBEANS. ................................................................................................................................... 54
FIGURA 20 ELECTROGONIÓMETRO. .................................................................................................................. 55
FIGURA 21 GONIÓMETRO DIGITAL ..................................................................................................................... 56
FIGURA 22 SITIO WEB DEVELOPER ANDROID. ............................................................................................... 57
FIGURA 23 INTERFAZ DE LA APP. ........................................................................................................................ 66
FIGURA 24 INTERFAZ DE LA APLICACIÓN DE ESCRITORIO. ....................................................................... 67
FIGURA 25 MANEJO DE LOS SENSORES EN ANDROID. ............................................................................... 68
FIGURA 26 COMUNICACIÓN POR SOCKET EN EL LENGUAJE DE PROGRAMACIÓN JAVA. ................ 69
FIGURA 27 SISTEMA DE AUTENTICACIÓN. ....................................................................................................... 70
FIGURA 28 FORMULARIO DE LA APLICACIÓN DE ESCRITORIO. ................................................................ 71
FIGURA 29 INSPECTOR DE COMPONENTES EN ÁRBOL DEL IDE NETBEANS. ...................................... 71
FIGURA 30 PHPMYADMIN. ..................................................................................................................................... 72
FIGURA 31 CONEXIÓN A LA BASE DE DATOS DESDE EL IDE NETBEANS. .............................................. 73
FIGURA 32 CONSULTA A LA BASE DE DATOS DESDE EL IDE NETBEANS................................................ 73
FIGURA 33 COMUNICACIÓN POR SOCKETS DENTRO DE LA EJECUCIÓN MULTITAREA. ................... 74
FIGURA 34 ANIMACIÓN DEL MOVIMIENTO DE FLEXIÓN Y EXTENSIÓN DE LA ARTICULACIÓN DE
CODO. ................................................................................................................................................................ 75
12
FIGURA 35 CURVA DE GRADOS VS TIEMPO GENERADA POR LA APLICACIÓN DE ESCRITORIO. ... 75
FIGURA 36 CURVA DE GRADOS VS TIEMPO PARA EL EJE “X” MEDIDA POR EL DISPOSITIVO “TECH
MCS”. .................................................................................................................................................................. 76
FIGURA 37 CURVA DE GRADOS VS TIEMPO PARA EL EJE “X” MEDIDA POR LA APP. ........................... 77
FIGURA 38 CURVA DE GRADOS VS TIEMPO PARA EL EJE “Y” MEDIDA POR EL DISPOSITIVO “TECH
MCS”. .................................................................................................................................................................. 77
FIGURA 39 CURVA DE GRADOS VS TIEMPO PARA EL EJE “Y” MEDIDA POR EL DISPOSITIVO “TECH
MCS”. .................................................................................................................................................................. 78
FIGURA 40 CURVA DE GRADOS VS TIEMPO PARA EL EJE “Z” MEDIDA POR EL DISPOSITIVO “TECH
MCS”. .................................................................................................................................................................. 78
FIGURA 41 CURVA DE GRADOS VS TIEMPO PARA EL EJE “Z” MEDIDA POR LA APP. ........................... 79
FIGURA 42 ANGULO MÍNIMO FORMADO EN EL MOVIMIENTO DE FLEXIÓN Y EXTENSIÓN EN LA
ARTICULACIÓN DEL CODO. ......................................................................................................................... 80
FIGURA 43 ANGULO RECTO FORMADO EN EL MOVIMIENTO DE FLEXIÓN Y EXTENSIÓN EN LA
ARTICULACIÓN DEL CODO. ......................................................................................................................... 80
FIGURA 44 ANGULO MÁXIMO FORMADO EN EL MOVIMIENTO DE FLEXIÓN Y EXTENSIÓN EN LA
ARTICULACIÓN DEL CODO. ......................................................................................................................... 81
13
LISTA DE TÉRMINOS
API Interfaz de Programación de aplicaciones.
APP Aplicación para dispositivos inteligentes.
DDL Lenguaje de definición de datos
DML Lenguaje de manipulación de datos.
GPL Licencia Pública General.
GUI Interfaz Gráfica de Usuario.
IDE Ambiente de Desarrollo Integrado.
JDBC Conectividad a Base de Datos Java
NDK Kit de Desarrollo Nativo.
ODBL Open Database License, Licencia Abierta de Base de Datos.
PC Computador Personal
PDF Formato de Documento Portátil.
SDK Kit de Desarrollo de Software.
SGBD Sistema de Gestión de Bases de Datos.
SO Sistema Operativo.
SQL Lenguaje de consulta estructurado.
TIC Tecnologías de la información y comunicación.
UML Lenguaje Unificado de Modelado.
XML Lenguaje de marcas extensible.
14
GLOSARIO
Acelerómetro Dispositivo capaz de medir aceleraciones.
Android Sistema operativo para dispositivos inteligentes.
C Lenguaje de programación de alto nivel.
C++ Llenguaje de programación basado en el C, orientado a objetos.
Goniómetro Instrumento para medir ángulos entre dos puntos.
Java Lenguaje de programación de alto nivel.
Linux Sistema operativo basado en Unix.
Magnetómetro Instrumento que mide la intensidad
Mysql Sistema de gestión de bases de datos relacional.
Oracle Herramienta cliente- servidor para la gestión de bases de datos.
Planimetría rama de la Topografía que se ocupa de la representación de la superficie
terrestre sobre un plano.
Query Consulta en una base de datos.
Xampp Servidor independiente de plataforma basado en apache y PHP.
15
INTRODUCCIÓN
La goniometría es una técnica de medición encargada de la medición de ángulos implementada
en diferentes áreas, una de ellas es la medicina, creando instrumentos que ayudan a medir las
diferentes variaciones de los ángulos generados por los huesos del cuerpo humano, a estos
instrumentos se les conoce como goniómetros. La mayoría de los goniómetros en el mercado son
mecánicos y por su condición son poco precisos ya que intervienen en el movimiento normal de
las articulaciones, y los digitales que se encuentran en el mercado pero su elevado costo hace que
sean poco asequibles para los diferentes usuarios.
Teniendo en cuenta el alcance y la facilidad de acceso a las TIC es posible generar soluciones que
las involucren, obteniendo excelentes resultados a costos relativamente bajos. Para nadie es un
secreto que el constante avance de la tecnología es continuo, haciendo de esto una puerta a un
gran catálogo de tecnología donde se encuentra de diferentes costos como de diferentes
características. En este mercado los dispositivos inteligentes han venido en auge implementando
una gran variedad de aplicaciones o APP. Estas APP se han implementado en diferentes campos
como por ejemplo diversión para realización de juegos, para comunicación con redes sociales,
para aprendizaje con libros multimedia, etc. Viendo la versatilidad de las mimas y los bien
equipados que están estos dispositivos con una variedad sensores es posible implementar una
APP que pueda ser usada como goniómetro y pueda además de facilitar el trabajo de los
especialistas dela salud ser de fácil acceso.
Este documento presenta los siguientes capítulos:
En el capítulo 1 se presenta el planteamiento del proyecto, la descripción del mismo y sus
respectivos objetivos.
En el capítulo 2 se encuentra el estado del arte, haciendo un análisis de las diferentes soluciones
existentes.
En el capítulo 3 se aborda todo el contenido teórico que envuelve el proyecto, sus características
y tópicos fundamentales para el desarrollo y ejecución.
En el capítulo 4 se describe las normatividad que conciernen concierne en la creación,
implementación y producción de equipos en Colombia.
En el capítulo 5 se presentan las características para el desarrollo de las aplicaciones, en donde
se establece las herramientas informáticas y/o lenguajes de programación usados, y los criterios
tenidos en cuenta al momento de ir ejecutando el proyecto.
En el capítulo 6 se habla del funcionamiento propio de cada aplicación, describiendo los módulos
que las componen y su funcionalidad de manera específica, incluyendo la conexión que existen
entre ambas y la conexión que se realiza con la base de datos.
16
En el capítulo 7, se presentan los resultados (matemáticos y gráficos) obtenidos por la App y se
contrastan con los resultados experimentales obtenidos con otros dispositivos y/o sistemas que
tienen el mismo objetivo que este proyecto.
Finalmente, en el capítulo 8 se presentan las Conclusiones de la investigación y las
Recomendaciones para futuros estudios.
17
1. DESCRIPCIÓN DEL PROYECTO
1.1 Descripción del problema
La poca oferta de goniómetros precisos existentes en el mercado, además de su alto costo hace
que estos instrumentos sigan siendo poco eficientes y sean los que han usado la comunidad
médica desde hace varios años. Con el avance tecnológico que a diario se ve y con la cobertura
de conectividad que ya se tiene es posible implementar soluciones TIC para esta problemática, en
donde mediante una aplicación para teléfonos inteligentes de sistema operativo Android podamos
obtener resultados más verídicos que la de los goniómetros convencionales ya que por la
estructura misma de los teléfonos inteligentes es posible recolectar la información que capturan
los sensores que lo constituyen e interpretarla para generar otra alternativa de medición.
1.2 Objetivos
1.2.1 Objetivo general
Desarrollar una APP goniómetro para dispositivos inteligentes de SO Android para las
articulaciones del codo, hombro, cadera y rodilla en cada uno de los tres planos del espacio.
1.2.2 Objetivos específicos
Utilizar los sensores acelerómetros de un dispositivo inteligente para calcular el ángulo
formado en una articulación del cuerpo.
Diseñar un algoritmo que permita comunicar el dispositivo móvil con el PC.
Utilizar una base de datos para el almacenamiento de la información obtenida.
Desarrollar una interfaz gráfica para que el usuario pueda ver y comparar los datos
obtenidos con valores normales previamente establecidos.
18
2. ESTADO DEL ARTE
2.1 Aplicación Android De Apoyo A Fisioterapeutas
Las aplicaciones móviles de apoyo a la salud se están convirtiendo en herramientas necesarias en
el día a día, tanto las destinadas a los profesionales sanitarios como las dirigidas solamente a los
pacientes.
Sin embargo, no todas las áreas de la medicina están suficientemente apoyadas por este tipo de
aplicaciones. En concreto, la fisioterapia es uno de las áreas de la salud que necesita un mayor
esfuerzo en este sentido, especialmente en aplicaciones destinadas a los profesionales
sanitarios.
En este Trabajo Fin de Grado se propone el desarrollo de una aplicación móvil Android que
proporcione a los profesionales de la fisioterapia una herramienta de apoyo a su trabajo diario. La
aplicación se probará sobre Smartphone con usuarios finales de modo que se pueda evaluar su
funcionamiento en un entorno real.
Se busca conseguir ayudar a los profesionales a hacer de manera rápida y desde un simple móvil,
lo que antes era laborioso y se necesitaba estar con un ordenador. [1]
2.2 Digital Basado En Sensores Cinemáticos Con Comunicación Inalámbrica En
Tiempo Real
En el Grupo de Investigación en Bioingeniería de la UPB se ha venido trabajando en el desarrollo
de aplicaciones para el análisis de movimientos basado en sensores cinemáticos. Estas
aplicaciones se han desarrollado dentro de la línea de investigación en biomecánica de este grupo.
Uno de los dispositivos que se requiere desarrollar es un goniómetro digital, que permita la
medición de movimientos angulares y la medición de ángulos de flexión, extensión, pronación y
supinación de segmentos corporales, esto con el fin de usarlo en un sistema de análisis de
movimiento.
Este proyecto parte de esa idea del grupo de investigación y bajo la modalidad de asistencia a la
investigación, se busca diseñar y desarrollar un prototipo de goniómetro digital en tiempo real,
implementado con acelerómetros y giróscopos donde podamos medir el ángulo de flexión y
extensión de las extremidades del cuerpo humano en la rehabilitación de las personas que han
sufrido algún tipo de traumatismo.
19
Por medio de una comunicación inalámbrica se envían cada una de las señales monitoreadas en
cada paciente a un dispositivo móvil donde se puede visualizar la evolución del paciente, y éste
podrá llevar un control de la evolución de sus terapias de una forma práctica segura y sencilla.
Además la aplicación móvil ilustra al usuario una serie de parámetros establecidos en los
manuales de la goniometría médica con los rangos óptimos del movimiento de cada una de las
extremidades tratadas en su rehabilitación. [2]
2.3 Goniómetro Pro
En Fisioterapia, como en cualquier otra profesión en la que se toman mediciones y se realizan
comparaciones con ellas, la precisión es importante. La goniometría manual, el análisis de la
postura y sobre todo las mediciones escolióticas sin técnicas de imagen no son precisamente
infalibles, pero pueden ser muy útiles por la rapidez y facilidad con las que se pueden llevar a cabo
con esta aplicación. Sabiendo, sobre todo en las mediciones escolióticas, que son necesarias
otras técnicas de medición más precisas, sí nos pueden servir para una primera aproximación en
nuestra anamnesis inicial.
Goniómetro Pro funciona como un inclinómetro digital de gravedad, es decir, mediante el uso del
chip acelerómetro que ya incluyen casi todos los modelos de Smartphone actuales se puede
calcular con facilidad un ángulo de inclinación respecto a la propia horizontal o respecto a un
ángulo inicialmente definido como cero por el propio usuario.
La aplicación está bien realizada, es fácil de utilizar aunque está en inglés, y es fiable, precisa y
gratuita si tenemos la precaución de no establecer los ángulos a cero en el círculo violeta y no
pulsamos sobre el círculo verde para fijar el ángulo medido en pantalla que, de todas maneras,
debemos apuntar en papel ya que no podemos memorizar mediciones en la versión gratuita de la
aplicación. Si queremos la versión completa de esta aplicación, debemos pulsar sobre el botón
verde "Unlock G-Pro".
Para ser una completa aplicación para fisioterapeutas, yo le añadiría un par de funcionalidades: en
primer lugar la opción de poder memorizar dos (o más) ángulos en la misma medición, de forma
que en el mismo desplazamiento del paciente pudiésemos tener en pantalla la goniometría activa
y pasiva de la articulación objeto de valoración. Y en segundo lugar, también hubiera añadido una
figura del cuerpo humano donde pulsar primero la articulación que queremos medir, y después el
movimiento articular que estamos midiendo, de forma que al realizar la medición, se pudiese
guardar ya en memoria de la aplicación dichos datos: articulación, plano de movimiento y
goniometría activa y pasiva. [3]
20
2.4 Goniómetro Digital Para Medir Flexoextensión En Brazo Derecho Como
Propuesta Para Aplicaciones En Telerehabilitación
En el siglo XXI son muchos los avances y desarrollos que la humanidad ha alcanzado. El concepto
de Rehabilitación existe desde el inicio de la especie humana pues está en su esencia el intentar
recuperar aquellas funciones perdidas y desarrollar estrategias para evitar lesiones y dolencias.
La telerehabilitación es el uso y práctica de servicios para la rehabilitación a través de las TIC
(Tecnologías de la información y comunicación) e Internet.
La mayoría de los servicios se dividen en dos categorías: la evaluación clínica y la terapia clínica.
Algunos campos de la práctica de rehabilitación que han explorado la telerehabilitación son la
fisioterapia, la terapia ocupacional, la logopedia, la neuropsicología, la audiología y la telemedicina.
Por otro lado, la telerehabilitación permite aplicar la terapia a personas que no pueden viajar a una
clínica porque el paciente tiene una discapacidad o por grandes distancias y tiempo de viaje.
Facilita el acceso a profesionales y pacientes de distintas localizaciones ahorrando costes de
desplazamientos, tiempos de espera y en consecuencia una mayor productividad.
Actualmente la elevada tasa de envejecimiento de la población de los países desarrollados es una
importante preocupación socio-sanitaria para sus gobiernos. El creciente peso de la población
anciana supone uno de los cambios más significativos que se ha dado en las sociedades
desarrolladas a partir de la segunda mitad del siglo XX. [4]
2.5 Goniometer Records
“Goniometer Records” no sólo registra el rango de movimiento de todas las articulaciones, sino
también le ayuda a mantener un registro de todas las lecturas para que pueda comparar las
lecturas del paciente en varias oportunidades. Especialmente para los cirujanos y terapeutas que
están siguiendo un paciente.
“Goniometer Records” se basa en la tecnología de acelerómetro y su exactitud en métodos
científicos publicados en la revisión por pares Journal. Es simple de usar y muy precisa. Se puede
utilizar para grandes articulaciones y también pequeñas articulaciones de la mano. Hemos
probado específicamente para esta columna y me pareció tan preciso como un goniómetro digital.
Los registros se basan en una simple hoja de registro del paciente que será útil en la captura y en
un registro de los datos específicos de cada uno, incluyendo información demográfica y de
diagnóstico junto con lo que el programa de tratamiento. Esto le ayudará a mantener un
seguimiento en la mejora del paciente y también comparar el rango de movimiento en intervalos
secuenciales de tiempo. [5]
21
3. MARCO TEÓRICO
3.1 Android.
Android es un sistema operativo inicialmente pensado para teléfonos móviles, al igual que iOS,
Symbian y Blackberry OS. Lo que lo hace diferente es que está basado en Linux, un núcleo de
sistema operativo libre, gratuito y multiplataforma.
El sistema permite programar aplicaciones en una variación de Java llamada Dalvik. El sistema
operativo proporciona todas las interfaces necesarias para desarrollar aplicaciones que accedan a
las funciones del teléfono (como el GPS, las llamadas, la agenda, etc.) de una forma muy sencilla
en un lenguaje de programación muy conocido como es Java. [6]
Figura 1 Arquitectura de Android [7]
Esta sencillez, junto a la existencia de herramientas de programación gratuitas, hace que una de
las cosas más importantes de este sistema operativo sea la cantidad de aplicaciones disponibles,
que extienden casi sin límites la experiencia del usuario.
22
3.1.1 El núcleo Linux.
El núcleo de Android está formado por el sistema operativo Linux, versión 2.6. Esta capa
proporciona servicios como la seguridad, el manejo de la memoria, el multiproceso, la pila de
protocolos y el soporte de drivers para dispositivos.
Esta capa del modelo actúa como capa de abstracción entre el hardware y el resto de la pila. Por
lo tanto, es la única que es dependiente del hardware.
3.1.2 Runtime de Android.
Está basado en el concepto de máquina virtual utilizado en Java. Dado las limitaciones de los
dispositivos donde ha de ejecutarse Android (poca memoria y procesador limitado) no fue posible
utilizar una máquina virtual Java estándar. Google tomo la decisión de crear una nueva, la
máquina virtual Dalvik, que respondiera mejor a estas limitaciones.
Algunas características de la máquina virtual Dalvik que facilitan esta optimización de recursos
son: que ejecuta ficheros Dalvik ejecutables (.dex) (formato optimizado para ahorrar memoria).
Además, está basada en registros. Cada aplicación corre en su propio proceso Linux con su
propia instancia de la máquina virtual Dalvik. Delega al kernel de Linux algunas funciones como
threading y el manejo de la memoria a bajo nivel.
También se incluye en el Runtime de Android el “core libraries” con la mayoría de las librerías
disponibles en el lenguaje Java.
3.1.3 Librerías Nativas
Incluye un conjunto de librerías en C/C++ usadas en varios componentes de Android. Están
compiladas en el código nativo del procesador. Muchas de las librerías utilizan proyectos de
código abierto. Algunas de estas librerías son:
NOMBRE DESCRIPCIÓN
System C library Una derivación de la librería BSD de C estándar (libec),
adaptada para dispositivos embebidos basados en Linux.
Media Framework Librería basada en PacketVideo's OpenCORE; soporta
codees de reproducción y grabación de multitud de
23
formatos de audio, video e imágenes MPEG4, H.264, MP3,
AAC, AMR, JPG y PNG.
Surface Manager Maneja el acceso al subsistema de representación gráfica
en 2D y 3D.
WebKit Soporta un moderno navegador web utilizado en el
navegador Android y en la vista webview. Se trata de la
misma librería que utiliza Google Chrome y Safari de
Apple.
SGL Motor de gráficos 2D.
Librerías 3D Implementación basada en OpenGL ES 1.0 API. Las
librerías utilizan el acelerador hardware 3D si está
disponible, o el software altamente optimizado de
proyección 3D
FreeType Fuentes en bitmap y renderizado vectorial.
SQLite Potente y ligero motor de bases de datos relacionales
disponible para todas las aplicaciones.
SSL Proporciona servicios de encriptación Secure Socket
Layer.
Tabla 1 Librerías Nativas de Android.
3.1.4 Entorno de Aplicación
Proporciona una plataforma de desarrollo libre para aplicaciones con gran riqueza e innovaciones
(sensores, localización, servicios, barra de notificaciones, etc.).
Esta capa ha sido diseñada para simplificar la reutilización de componentes. Las aplicaciones
pueden publicar sus capacidades y otras pueden hacer uso de ellas (sujetas a las restricciones de
seguridad). Este mismo mecanismo permite a los usuarios remplazar componentes.
Una de las mayores fortalezas del entorno de aplicación de Android es que se aprovecha el
lenguaje de programación Java. El SDK de Android no acaba de ofrecer todo lo disponible para su
estándar del entorno de ejecución Java (JRE), pero es compatible con una fracción muy
significativa de la misma.
Los servicios más importantes que incluye son:
NOMBRE DESCRIPCIÓN
Views Extenso conjunto de vistas (parte visual de los
24
componentes).
Resource Manager Proporciona acceso a recursos que no son en el código.
Activity Manager Maneja el ciclo de vida de las aplicaciones y proporciona un
sistema de navegación entre ellas.
Notification
Manager
Permite a las aplicaciones mostrar alertas personalizadas
en la barra de estado.
Content Providers Mecanismo sencillo para acceder a datos de otras
aplicaciones (como los contactos).
Tabla 2 Servicios de Android.
3.1.5 Aplicaciones
Este nivel está formado por el conjunto de aplicaciones instaladas en una maquina Android. Todas
las aplicaciones han de ser ejecutadas en la máquina virtual Dalvik para garantizar la seguridad
del sistema.
Normalmente, las aplicaciones Android están escritas en Java. Para desarrollar aplicaciones en
Java podemos utilizar el Android SDK. Existe otra opción consistente en desarrollar las
aplicaciones utilizando C/C++. Para esta opción podemos utilizar el Android NDK (Native
Development Kit) [8].
3.2 Tecnologías de la Información y las Comunicaciones- TIC
Se define a Las Tecnologías de la Información y las Comunicaciones (en adelante TIC), como el
conjunto de recursos, herramientas, equipos, programas informáticos, aplicaciones, redes y
medios, que permiten la compilación, procesamiento, almacenamiento, transmisión de
información como: voz, datos, texto, vídeo e imágenes [9], que mediante su ministerio (MINTIC)
tiene 4 objetivos principales:
1. Diseñar, formular, adoptar y promover las políticas, planes, programas y proyectos del
sector de Tecnologías de la Información y las Comunicaciones, en correspondencia con la
Constitución Política y la ley, con el fin de contribuir al desarrollo económico, social y
político de la Nación, y elevar el bienestar de los colombianos.
25
2. Promover el uso y apropiación de las Tecnologías de la Información y las Comunicaciones
entre los ciudadanos, las empresas, el Gobierno y demás instancias nacionales como
soporte del desarrollo social, económico y político de la Nación.
3. Impulsar el desarrollo y fortalecimiento del sector de las Tecnologías de la Información y
las Comunicaciones, promover la investigación e innovación buscando su competitividad y
avance tecnológico conforme al entorno nacional e internacional.
4. Definir la política y ejercer la gestión, planeación y administración del espectro
radioeléctrico y de los servicios postales y relacionados, con excepción de lo dispuesto en
artículo 76 de la Constitución Política.
Figura 2 Esquema TIC [10]
3.3 Acelerómetro.
Como su propio nombre indica, un acelerómetro es un dispositivo capaz de medir aceleraciones,
es decir, la variación en la velocidad por unidad de tiempo. Existen diferentes tipos de
acelerómetros en función del tipo de tecnología que utilicen para medir esa magnitud: mecánicos,
piezoeléctricos, de condensador, etc.
26
Como no podemos medir las aceleraciones por observación directa, se deben calcular a partir de
otras variables que sí se pueden medir y el conocimiento de las leyes que rigen sus efectos. Para
comprenderlo más claramente vamos a ver el caso del acelerómetro mecánico. En él obtenemos
la aceleración del sistema a partir de la masa y la observación de su desplazamiento [11].
Figura 3 Acelerómetro [11]
En un acelerómetro mecánico se sitúa una masa (denominada masa sísmica) dentro de un
armazón. Esta masa se encuentra suspendida mediante un mecanismo elástico, por ejemplo un
muelle, de manera que aún pueda desplazarse desde su posición de equilibrio. Aquí entran en
juego la Ley de la Elasticidad de Hooke y la Segunda Ley de Newton.
Ley de Hooke: El alargamiento unitario que experimenta un material elástico es directamente
proporcional a la fuerza aplicada. Esto es F = k·x. (donde F es la fuerza aplicada, k la constante
de elasticidad del muelle yx el desplazamiento de la masa sísmica).
Segunda ley de Newton: El cambio de movimiento es proporcional a la fuerza motriz impresa y
ocurre según la línea recta a lo largo de la cual aquella fuerza se imprime. Esta es representada
mediante la famosa ecuación F = m·a. (F: fuerza; m: masa, a: aceleración).
Lo que ocurre al aplicar una fuerza para desplazar el armazón, es que la masa sísmica, conectada
a él mediante un material elástico (el muelle), se desplaza una distancia proporcional a la fuerza
27
aplicada (ley de Hooke), que, a su vez, es proporcional a la aceleración aplicada al armazón
(Segunda ley de Newton).
Como sabemos que el sistema debe obedecer las dos leyes y la fuerza en ambos casos es la
misma, a partir de las ecuaciones podemos establecer que: m·a = k·x, con lo que, finalmente, a =
(k/m)·x. Por lo tanto, se puede obtener el valor de la aceleración, ya que k es la constante de
elasticidad del muelle (y que conocemos, ya que lo hemos puesto nosotros), m es la masa
desplazada (la masa sísmica) y x la distancia desplazada, que podemos medir. Observa, además,
que se cumple que la aceleración es proporcional al desplazamiento, siéndolo en un factor k/m.
Es importante destacar que este dispositivo tan sólo mide la aceleración en su eje longitudinal, es
decir, en el que puede comprimirse y expandirse el muelle. Dado que vivimos en un mundo
tridimensional, necesitaremos replicar este sistema en tres ejes ortogonales, es decir,
perpendiculares entre sí (x, y, z). Con el valor esas tres componentes se pueden calcular el valor
de la aceleración en cualquier dirección espacial.
Figura 4 Acelerómetro con 3 ejes [11]
Los acelerómetros son ampliamente utilizados en ingeniería. Se utilizan generalmente para
detectar las vibraciones en los sistemas y para aplicaciones de orientación.
Seguro que has pensado que parece muy difícil poder hacer este sistema mecánico tan pequeño
que forme parte de nuestros modernos y miniaturizados teléfonos. Existen diferentes tipos de
acelerómetros, que utilizan la misma idea pero diferentes fenómenos físicos, que hacen que cada
uno de ellos resulte más idóneo para determinados usos.
28
El acelerómetro piezoeléctrico hace uso del efecto con el mismo nombre. Este efecto ocurre en
determinados materiales, que, al ser sometidos a una presión y ser deformados (en una dirección)
muestran una diferencia de potencial (o voltaje) en su superficie. De esta forma se obtiene una
señal eléctrica proporcional a la presión aplicada.
En el caso de los acelerómetros capacitivos se crean “pequeños condensadores basculantes”. Un
condensador es un componente electrónico que permite almacenar energía eléctrica entre dos
placas conductoras separadas por un elemento no conductor (dieléctrico). La Capacitancia de un
condensador viene dada, entre otros, por la distancia que separa las placas. Los acelerómetros
capacitivos se construyen de manera que una de las dos placas de los condensadores pueda
moverse de forma proporcional a la fuerza externa. De esta forma se obtienen variaciones en la
señal eléctrica proporcionales a la fuerza aplicada y, por lo tanto, a la aceleración.
Figura 5 Esquema Acelerómetro capacitivo [11]
Los acelerómetros capacitivos, al ser electrónicos, pueden ser extremadamente pequeños y se
pueden fabricar integrados en chips para soldar en placas de silicio, por ejemplo en
tu Smartphone. Adicionalmente es necesario disponer de un software que sea capaz de
interpretar las señales generadas por el acelerómetro. De esto se encarga Android, por ejemplo.
Como la fuerza de la gravedad actúa en todo momento y conocemos su valor (9,8 m/s2), es fácil
utilizar los valores de cada eje del acelerómetro para determinar el ángulo de inclinación y, por
tanto, la posición del dispositivo. De esta forma se puede mostrar el contenido con la orientación
correcta y rotarla cuando ésta cambie. De la misma forma, las variaciones en sus valores pueden
ser utilizadas como señal de entrada para aplicaciones, por ejemplo para simular un volante en los
juegos de conducción.
29
3.4 Magnetómetro.
Un magnetómetro es un instrumento que mide la intensidad y, a veces, también la dirección de un
campo magnético. El primer magnetómetro fue inventado en 1833 por Carld Friedrich Gauss.
Durante el siglo XIX, notables desarrolladores incluyeron el Efecto Hall como forma de medida de
campos magnéticos, el cual sigue ampliamente en uso en la actualidad. Los magnetómetros se
pueden dividir en dos tipos: escalares y vectoriales. Los magnetómetros se usan,
mayoritariamente, para la medición del campo magnético terrestre y en estudios geofísicos, para
detectar anomalías magnéticas de diferentes tipos.
En la actualidad más reciente, los magnetómetros han sido miniaturizados, con el objetivo de ser
incorporados en circuitos integrados a un coste muy bajo. También ha aumentado su uso como
brújula en dispositivos electrónicos como los móviles o las tablets.[12]
3.4.1. Tipos de Magnetómetros
Los magnetómetros pueden ser divididos en dos tipos básicos:
Magnetómetros escalares, que miden la intensidad total del campo magnético resultante
al cual están siendo sometidos en un punto, pero no aporta ningún dato sobre las
componentes vectoriales de campo.
Magnetómetros vectoriales, que tienen la capacidad de medir la intensidad del campo
magnético en una dirección particular, dependiendo de la colocación que le demos al
dispositivo.
30
Figura 6 App Brújula 360, Ejemplo de magnetómetro. [13]
3.5 Ángulos de Euler.
Un cuerpo tridimensional puede rotarse de diversas maneras. Para determinar correctamente una
rotación necesitamos designar un eje de rotación alrededor del cual se realiza el giro. Los ejes
más sencillos alrededor de los cuales se puede definir unívocamente una rotación son los ejes de
coordenadas los cuales cumplen el requisito de ser ortogonales entre sí.
Los Ángulos de Euler son un conjunto de tres coordenadas angulares, definidos en un espacio
tridimensional Euclídeo que, mediante una aplicación ordenada de los giros que definen,
determinan la orientación de un sistema de coordenadas (por lo general móvil) con respecto a otro
que se mantiene fijo. Los ángulos de Euler, según estén definidos, pueden corresponderse con
tres ángulos muy utilizados en navegación aérea para determinar la actitud de las aeronaves,
como son Roll (φ), Pitch (θ) y Yaw (Ψ).
Hay que resaltar que los ángulos de Euler no están unívocamente definidos, existiendo
ambigüedades y encontrándose varias maneras de definirlos, por lo que no tienen que coincidir
con los ángulos antes mencionados (Roll, Pitch y Yaw). Hay que tener claro cómo se definen los
ángulos con los que trabajan los dispositivos de navegación que componen un sistema de
31
navegación inercial. En el caso particular de este proyecto, el dispositivo en el que hay que
detenerse para entender la definición de ángulos es el MTi-G.
En el MTi-G la definición de ángulos de Euler que se utiliza es equivalente a los ángulos Roll (φ),
Pitch (θ) y Yaw (Ψ). Estos ángulos se definen con respecto a los ejes coordenados del vehículo. Si
se considera el plano del horizonte como el definido por las alas de un avión cuando éste realiza
un vuelo horizontal, podemos definir los signos de estos ángulos de la siguiente manera: el ángulo
Roll (φ) es positivo cuando el ala derecha se mueve por debajo del plano del horizonte, el ángulo
de Pitch (θ) es positivo cuando el morro del avión cae por debajo de la línea del horizonte y el
ángulo de Yaw (Ψ) se define positivo cuando el morro está rotando desde el norte hacia el oeste.
De forma gráfica se muestran estos ángulos en la Figura. Ésta es la definición de ángulos que se
utiliza en este proyecto, debido a los dispositivos de navegación utilizados y la configuración del
montaje del sistema completo en la aeronave, la cual se verá más adelante [14].
Figura 7 Ángulos Roll, Pitch y Yaw. [14]
32
Las transformaciones de estos ángulos se aplican matricialmente. A cada ángulo de Euler le
corresponde una matriz 3x3, que determina el giro que se aplica con respecto al sistema de
coordenadas que está fijo y actúa de referencia.
El giro correspondiente al ángulo Yaw (también se le denota como α) es una rotación alrededor del
eje de coordenadas vertical (eje z en un sistema genérico), siguiendo el sentido contrario a las
agujas del reloj, y queda definido por la matriz de rotación , la cual se encuentra definida en [1].
𝑅𝑧(𝛼) = [cos(𝛼) − sin(𝛼) 0sin(𝛼) cos(𝛼) 0
0 0 1
] [1]
Nótese que las entradas superiores de la matriz 𝑅𝑧(𝛼) forman una matriz de rotación
bidimensional aplicada a las coordenadas X e Y, mientras que la coordenada Z permanece
constante. Ocurre lo mismo para las dos matrices correspondientes a los otros dos ángulos, con
sus respectivos ejes fijos cada una.
El ángulo Pitch (también se le denota como β) se corresponde con una rotación en sentido
anti-horario alrededor del eje de coordenadas que apunta al oeste (eje Y en un sistema de
coordenadas genérico). La matriz de rotación correspondiente a éste ángulo se conoce como
𝑅𝑦(𝛽) y se encuentra definida en [2].
𝑅𝑦(𝛽) = [cos(𝛽) 0 sin(𝛽)
0 1 0− sin(𝛽) 0 cos(𝛽)
] [2]
El ángulo Roll (también se le denota como γ) se corresponde con una rotación en sentido
anti-horario, alrededor del eje de coordenadas norte (eje X en un sistema de coordenadas
genérico). La matriz de rotación de este ángulo, que se conoce como 𝑅𝑥(𝛾), viene definida por
[3].
33
𝑅𝑥(𝛾) = [
1 0 00 cos(𝛾) − sin(𝛾)0 sin(𝛾) cos(𝛾)
] [3]
Se pueden multiplicar las tres matrices de manera que obtengamos una sola matriz 3x3 que defina
el conjunto de las tres rotaciones en una sola matriz, como la que aparece definida en [4].
𝑅(𝛼, 𝛽, 𝛾) = 𝑅𝑧(𝛼)𝑅𝑦(𝛽)𝑅𝑥(𝛾) =
[
cos(𝛼) cos(𝛽) cos(𝛼) sin(𝛽) sin(𝛾) − sin(𝛼) cos(𝛾) cos(𝛼) sin(𝛽) cos(𝛾) + sin(𝛼) sin(𝛾)
sin(𝛼) cos(𝛽) sin(𝛼) sin(𝛽) sin(𝛾) + cos(𝛼) cos(𝛾) sin(𝛼) sin(𝛽) cos(𝛾) − cos(𝛼) sin(𝛾)− sin(𝛽) cos(𝛽) sin(𝛾) cos(𝛽) cos(𝛾)
]
[4]
3.6 PHP.
Es un lenguaje para programar scripts del lado del servidor, que se incrustan dentro del código
HTML. Este lenguaje es gratuito y multiplataforma. PHP es el acrónimo de Hipertext Preprocesor.
Es un lenguaje de programación del lado del servidor gratuito e independiente de plataforma,
rápido, con una gran librería de funciones y mucha documentación.
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo antes de que se
envíe la página a través de Internet al cliente. Las páginas que se ejecutan en el servidor pueden
realizar accesos a bases de datos, conexiones en red, y otras tareas para crear la página final que
verá el cliente. El cliente solamente recibe una página con el código HTML resultante de la
ejecución de la PHP. Como la página resultante contiene únicamente código HTML, es compatible
con todos los navegadores. Podemos saber algo más sobre la programación del servidor y del
cliente en el artículo qué es DHTML.
Una vez que ya se conoce el concepto de lenguaje de programación de scripts del lado del
servidor podemos hablar de PHP. PHP se escribe dentro del código HTML, lo que lo hace
realmente fácil de utilizar, al igual que ocurre con el popular ASP de Microsoft, pero con algunas
ventajas como su gratuidad, independencia de plataforma, rapidez y seguridad. Cualquiera puede
descargar a través de la página principal de PHP y de manera gratuita, un módulo que hace que
nuestro servidor web comprenda los scripts realizados en este lenguaje. Es independiente de
34
plataforma, puesto que existe un módulo de PHP para casi cualquier servidor web. Esto hace que
cualquier sistema pueda ser compatible con el lenguaje y significa una ventaja importante, ya que
permite portar el sitio desarrollado en PHP de un sistema a otro sin prácticamente ningún
trabajo.[15]
Figura 8 Esquema de funcionamiento de las paginas PHP. [15]
Ventajas Desventajas
Lenguaje multiplataforma. Se necesita instalar un servidor web.
Buena integración con la mayoría de
conectores a base de datos. MySQL,
PostgreSQL, Oracle, etc.
Se realiza todo el trabajo en la parte del
servidor, por esto, si se tienen muchas
peticiones, el rendimiento de nuestra
aplicación podría verse afectado
sensiblemente.
Mucha documentación debido a su gran
popularidad y una gran comunidad.
Al mezclar HTML + PHP, dificulta la
legibilidad del código.
Lenguaje de código libre y gratuito. Difícil de mantener.
Orientado para desarrollar aplicaciones Es un lenguaje de programación NO
35
web donde la información esté en una
base de datos.
tipado.
Múltiples Frameworks PHP que
permiten que tu código sea más
ordenado, estructurado, manejable y
permiten trabajar utilizando patrones de
diseño cómo
Modelo-Vista-Controlador (MVC).
Seguridad. Como es un lenguaje de
código abierto, todas las personas
pueden ver el código fuente, y si hay
errores, la gente puede utilizar estas
debilidades de codificación.
Tabla 3 Ventajas y Desventajas de usar el lenguaje PHP. [16]
3.7 XAMP.
XAMPP es el acrónimo de Cualquier Plataforma (X), Apache (A), MySQL (M), PHP (P) y Perl (P).
Es una distribución de Apache sencilla y ligera que facilita enormemente a los desarrolladores
crear un servidor web local para realizar pruebas. Todo lo que necesita para configurar un servidor
web – la aplicación servidor (Apache), la base de datos (MySQL), y un lenguaje de script (PHP) –
está incluido en un único fichero extraíble. XAMPP es también multi-plataforma, lo que significa
que funciona bien tanto en Linux, como Mac o Windows. Dado que la mayoría de servidores web
actuales usan los mismos componentes que XAMPP, la transición desde el servidor de prueba
Local al servidor de producción es extremadamente fácil también.
XAMPP tiene cuatro componentes principales. Éstos son:
NOMBRE DESCRIPCIÓN
Apache Apache es la aplicación de servidor web que procesa y
entrega el contenido web a un ordenador. Apache es el
servidor web más popular en internet, haciendo funcionar
casi el 54% de todas las páginas web.
MySQL Cada aplicación web, ya sea simple o compleja, requiere
una base de datos para almacenar los datos que recoge.
MySQL, que es de código abierto, es el sistema gestor de
base de datos más popular. Alimenta desde websites de
aficionados hasta plataformas profesionales como
WordPress.
PHP PHP son las siglas de Preprocesador de Hipertexto. Es un
lenguaje de script del lado del servidor que hace funcionar
algunas de las páginas web más famosas del mundo,
36
incluyendo WordPress y Facebook. Es de código abierto,
relativamente fácil de aprender, y funciona perfectamente
con MySQL, lo que lo ha hecho una opción muy popular
para los desarrolladores web. Puede aprender a dominar
PHP con este curso sobre los Fundamentos de
Programación PHP.
Perl Perl es un lenguaje de programación dinámico y de alto
nivel que se usa ampliamente en la programación de redes,
la administración de sistemas, etc. Aunque menos popular
para el desarrollo web, Perl tiene un montón de
aplicaciones específicas.
Tabla 4 Componentes aplicación XAMMP.
Diferentes versiones de XAMPP pueden incluir componentes adicionales como phpMyAdmin,
OpenSSL, etc. para crear servidores web completos.[17]
Figura 9 Panel de control aplicación XAMPP. [18]
37
3.8 Bases de Datos.
Un sistema gestor de bases de datos (SGBD) consiste en una colección de datos
interrelacionados y un conjunto de programas para acceder a dichos datos. La colección de datos,
normalmente denominada base de datos, contiene información relevante para una empresa. El
objetivo principal de un SGBD es proporcionar una forma de almacenar y recuperar la información
de una base de datos de manera que sea tanto práctica como eficiente.
Los sistemas de bases de datos se diseñan para gestionar grandes cantidades de información. La
gestión de los datos implica tanto la definición de estructuras para almacenar la información como
la provisión de mecanismos para la manipulación de la información. Además, los sistemas de
bases de datos deben proporcionar la fiabilidad de la información almacenada, a pesar de las
caídas del sistema o los intentos de acceso sin autorización. Si los datos van a ser compartidos
entre diversos usuarios, el sistema debe evitar posibles resultados anómalos.
Dado que la información es tan importante en la mayoría de las organizaciones, los científicos
informáticos han desarrollado un amplio conjunto de conceptos y técnicas para la gestión de los
datos. En este capítulo se presenta una breve introducción a los principios de los sistemas de
bases de datos. [19]
Figura 10 Esquema De Bases De Datos. [20]
38
3.8.1 Aplicaciones de los sistemas de bases de datos
Las bases de datos son ampliamente usadas. Las siguientes son algunas de sus aplicaciones
más representativas:
Banca Para información de los clientes, cuentas y préstamos, y
transacciones bancarias.
Líneas aéreas Para reservas e información de planificación. Las líneas
aéreas fueron de los primeros en usar las bases de datos de
forma distribuida geográficamente (los terminales situados
en todo el mundo accedían al sistema de bases de datos
centralizado a través de las líneas telefónicas y otras redes
de datos).
Universidades Para información de los estudiantes, matrículas de las
asignaturas y cursos.
Transacciones de tarjetas
de crédito
Para compras con tarjeta de crédito y generación mensual
de extractos.
Telecomunicaciones Para guardar un registro de las llamadas realizadas,
generación mensual de facturas, manteniendo el saldo de
las tarjetas telefónicas de prepago y para almacenar
información sobre las redes de comunicaciones.
Finanzas Para almacenar información sobre grandes empresas,
ventas y compras de documentos formales financieros,
como bolsa y bonos.
Ventas Para información de clientes, productos y compras.
Tabla 5 Ejemplos de aplicaciones de Bases de Datos.[19]
3.8.2 Relaciones entre bases de datos
El diseño de relaciones entre las tablas de una base de datos puede ser la siguiente:
Relaciones de uno a uno Una instancia de la entidad A se relaciona con una y
solamente una de la entidad B.
Relaciones de uno a muchos Cada instancia de la entidad A se relaciona con varias
instancias de la entidad B.
Relaciones de muchos a
muchos
Cualquier instancia de la entidad A se relaciona con
cualquier instancia de la entidad B.
Tabla 6 Diseño de relaciones entre tablas de una base de datos. [21]
39
3.8.3 Estructura de un sistema de bases de datos
Un sistema de bases de datos se divide en módulos que se encargan de cada una de las
responsabilidades del sistema completo. Los componentes funcionales de un sistema de bases
de datos se pueden dividir a grandes rasgos en los componentes gestor de almacenamiento y
procesador de consultas.
El gestor de consultas es importante porque las bases de datos requieren normalmente una gran
cantidad de espacio de almacenamiento. Las bases de datos corporativas tienen un tamaño de
entre cientos de gigabytes y, para las mayores bases de datos, terabytes de datos. Un gigabyte
son 1.000 megabytes (1.000 millones de bytes), y un terabyte es 1 millón de megabytes (1 billón
de bytes). Debido a que la memoria principal de los computadores no puede almacenar esta gran
cantidad de información, esta se almacena en discos. Los datos se trasladan entre el disco de
almacenamiento y la memoria principal cuando es necesario. Como la transferencia de datos a y
desde el disco es lenta comparada con la velocidad de la unidad central de procesamiento, es
fundamental que el sistema de base de datos estructure los datos para minimizar la necesidad de
movimiento de datos entre el disco y la memoria principal.
El procesador de consultas es importante porque ayuda al sistema de bases de datos a simplificar
y facilitar el acceso a los datos. Las vistas de alto nivel ayudan a conseguir este objetivo. Con ellas,
los usuarios del sistema no deberían ser molestados innecesariamente con los detalles físicos de
implementación del sistema. Sin embargo, el rápido procesamiento de las actualizaciones y de las
consultas es importante. Es trabajo del sistema de bases de datos traducir las actualizaciones y
las consultas escritas en un lenguaje no procedimental, en el nivel lógico, en una secuencia de
operaciones en el nivel físico.
3.8.3.1 Gestor de almacenamiento
Un gestor de almacenamiento es un módulo de programa que proporciona la interfaz entre los
datos de bajo nivel en la base de datos y los programas de aplicación y consultas emitidas al
sistema. El gestor de almacenamiento es responsable de la interacción con el gestor de archivos.
Los datos en bruto se almacenan en disco usando un sistema de archivos, que está disponible
habitualmente en un sistema operativo convencional. El gestor de almacenamiento traduce las
diferentes instrucciones LMD a órdenes de un sistema de archivos de bajo nivel. Así, el gestor de
almacenamiento es responsable del almacenamiento, recuperación y actualización de los datos
en la base de datos. Los componentes del gestor de almacenamiento incluyen:
Gestor de autorización e integridad, que comprueba que se satisfagan las restricciones
de integridad y la autorización de los usuarios para acceder a los datos.
40
Gestor de transacciones, que asegura que la base de datos quede en un estado
consistente (correcto) a pesar de los fallos del sistema, y que las ejecuciones de
transacciones concurrentes ocurran si conflictos.
Gestor de archivos, que gestiona la reserva de espacio de almacenamiento de disco y las
estructuras de datos usadas para representar la información almacenada en disco.
Gestor de memoria intermedia, que es responsable de traer los datos del disco de
almacenamiento a memoria principal y decidir qué datos tratar en memoria caché. El
gestor de memoria intermedia es una parte crítica del sistema de bases de datos, ya que
permite que la base de datos maneje tamaños de datos que son mucho mayores que el
tamaño de la memoria principal.
El gestor de almacenamiento implementa varias estructuras de datos como parte de la
implementación física del sistema:
Archivos de datos Almacena la base de datos en sí.
Diccionario de datos Almacena metadatos acerca de la estructura de la base de datos,
en particular, el esquema de la base de datos
Índices Proporcionan acceso rápido a elementos de datos que tienen
valores particulares.
Tabla 7 Gestor de almacenamiento. [19]
3.8.3.2 Procesador de consultas
Los componentes del procesador de consultas incluyen:
Intérprete del LDD, que interpreta las instrucciones del LDD y registra las definiciones en
el diccionario de datos.
Compilador del LMD, que traduce las instrucciones del LMD en un lenguaje de consultas
a un plan de evaluación que consiste en instrucciones de bajo nivel que entiende el motor
de evaluación de consultas.
Una consulta se puede traducir habitualmente en varios planes de ejecución alternativos
que proporcionan el mismo resultado. El compilador del LMD también realiza optimización
de consultas, es decir, elige el plan de evaluación de menor coste de entre todas las
alternativas.
Motor de evaluación de consultas, que ejecuta las instrucciones de bajo nivel
generadas por el compilador del LMD.
42
3.8.4 Tipos de bases de datos
Existen principalmente cinco tipos de bases de datos:
1) Las bases de datos jerárquicas:
En este tipo de bases de datos se organizan los datos utilizando estructuras tipo árbol, en
esta jerarquía los elementos se denominan nodos y existen dependencias de uno a
muchos entre los nodos del tipo padre e hijo, en el cual un nodo padre puede tener
múltiples hijos pero un hijo solo un padre. [22]
2) Bases de datos en red:
En esta estructura la relación se da del tipo muchos a muchos es decir, un elemento hijo
puede estar relacionado con varios elementos padres; la relación en esta estructura el
equivalente al padre se denomina PROPIETARIO (owner) y el equivalente al hijo se
denomina MIEMBRO (member).
3) Bases de datos orientadas a objetos:
Es un modelo muy reciente y se basa en almacenar en la base de datos los objetos
completos (estado y comportamiento); la información que contiene se organiza en
atributos y el comportamiento en operaciones.
4) Bases de datos multidimensionales:
En esta estructura los datos se almacenan en tablas de múltiples dimensiones en vez de
tablas bidimensionales; se utilizan para grandes volúmenes de información que tienen
múltiples correlaciones.
5) Bases de datos relacionales:
Es la estructura más utilizada para aplicaciones de gestión, consiste en organizar los datos
en forma de tablas, las relaciones entre los objetos se consiguen incluyendo en la tabla del
hijo la clave del objeto padre, y su relación es variable entre objetos de cada tabla con otras
tablas; es decir, un objeto de una tabla puede tener una relación uno a muchos con una
tabla y a su vez la tabla a la que pertenece tener relación muchos a muchos con otra tabla.
43
3.8.5 Motores de bases de datos
Entre los diferentes motores de base de datos, podemos encontrar los siguientes:
MySql: es una base de datos con licencia GPL basada en un servidor. Se caracteriza por
su rapidez. No es recomendable usar para grandes volúmenes de datos.
PostgreSql y Oracle: Son sistemas de base de datos poderosos. Administra muy bien
grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran
calibre.
Access: Es una base de datos desarrollada por Microsoft. Esta base de datos, debe ser
creada bajo el programa Access, el cual crea un archivo .mdb estándar para Access.
Microsoft SQL Server: es una base de datos más potente que Access desarrollada por
Microsoft. Se utiliza para manejar grandes volúmenes de información.
3.9 Goniometría.
Goniometría es la técnica de medición de los ángulos creados por la intersección de los ejes
longitudinales de los huesos a nivel de las articulaciones.
La goniometría en Medicina tiene dos objetivos principales:
1. Evaluar la posición de una articulación en el espacio. En este caso, se trata de un
procedimiento estático que se utiliza para objetivar y cuantificar la ausencia de movilidad
de una articulación.
2. Evaluar el arco de movimiento de una articulación en cada uno de los tres planos del
espacio. En este caso, se trata de un procedimiento dinámico que se utiliza para objetivar
y cuantificar la movilidad de una articulación.
En Ortopedia y Traumatología y en Reumatología, la goniometría se aplica para describir la
presencia de desejes a nivel del sistema osteoarticular con fines diagnósticos, pronósticos,
terapéuticos y de investigación.
44
3.9.1 Planimetría
Es la descripción de los planos imaginarios que sirven de referencia para dividir el cuerpo humano
en diferentes zonas y facilitar su estudio. En el cuerpo humano, se reconocen tres planos
perpendiculares entre sí: plano sagital, plano frontal o coronal y plano transversal o axial. Cada
uno de estos planos son cruzados perpendicularmente por un eje: eje mediolateral, eje
anteroposterior y eje vertical respectivamente. Sobre estos tres ejes, se producen los movimientos
articulares.
Figura 12 Planos y ejes del cuerpo. [23]
45
3.9.2 Plano Sagital
El plano sagital medio divide al cuerpo en dos mitades: una derecha, y la otra, izquierda. Todos los
planos paralelos al plano sagital medio se denominan planos sagitales o parasagitales. Todos los
planos sagitales son cruzados perpendicularmente por el eje mediolateral sobre el que se
producen los movimientos de flexión y extensión, visibles en la persona de perfil.
Figura 13 Movimientos de flexión extensión alrededor del eje mediolateral del hombro derecho en el plano
sagital. [23]
Movimientos en el plano sagital
Movimiento Descripción
Flexión
Es todo movimiento en el plano sagital que desplaza una parte del
cuerpo hacia delante de la posición anatómica.
Extensión
Es todo movimiento en el plano sagital que desplaza una parte del
cuerpo hacia atrás de la posición anatómica.
Tabla 8 Movimientos en el plano Sagital.
46
3.9.3 Plano Frontal o Coronal
El plano frontal o coronal es cualquiera de los planos perpendiculares a los planos sagital y vertical
que dividen al cuerpo en dos partes, una anterior y otra posterior. Lo cruza perpendicularmente el
eje anteroposterior sobre el cual se producen los movimientos de abducción y aducción, visibles
en la persona de frente.
Figura 14 Movimientos de abducción aducción sobre el eje anteroposterior del hombro derecho en el plano
frontal. [23]
Movimientos en el plano frontal
Movimiento Descripción
Abducción
Es todo movimiento en el plano frontal que aleja una parte del cuerpo de
la línea media.
Aducción
Es todo movimiento que en el plano frontal acerca una parte del cuerpo a
la línea media.
Tabla 9 Movimientos en el plano frontal.
47
3.9.4 Plano Transversal u Horizontal
El plano transversal u horizontal es cualquiera de los planos perpendiculares a los planos medio y
coronal que dividen al cuerpo en dos partes: una craneal o superior y otra caudal o inferior. Lo
cruza perpendicularmente el eje vertical, sobre el cual se producen los movimientos de rotación
que son vistos desde arriba o desde abajo.
Figura 15 Movimientos de rotación del hombro derecho sobre el eje vertical en el plano transversal. [23]
Movimientos en el plano transversal
Movimiento Descripción
Rotación interna El movimiento en el plano transversal que desplaza una parte del cuerpo
hacia dentro, se denomina rotación interna.
Rotación externa El movimiento en el plano transversal que desplaza una parte del cuerpo
hacia fuera se llama rotación externa.
Tabla 10 Movimientos en el plano transversal.
Método del cero neutro: utilizado para la evaluación de la flexión - extensión del codo derecho.
La medición comienza en 0º.
49
4. MARCO LEGAL
4.1 Decreto 4725 De 2005
El presente decreto tiene por objeto, regular el régimen de registros sanitarios, permiso de
comercialización y vigilancia sanitaria en lo relacionado con la producción,
procesamiento, envase, empaque, almacenamiento, expendio, uso, importación,
exportación, comercialización y mantenimiento de los dispositivos médicos para uso
humano, los cuales serán de obligatorio cumplimiento por parte de todas las personas
naturales o jurídicas que se dediquen a dichas actividades en el territorio nacional.
4.2 ISO13485 (2003)
La normatividad colombiana respecto a equipos biomédicos.
4.3 Directiva 90/385/CEE
Se refiere a que cualquier instrumento, dispositivo, equipo, programa informático u otro
artículo debe ser utilizado en seres humanos con fines de: diagnostico, control,
prevención o alivio de una enfermedad.
4.4 IEC 60601-1-8 (2004)
Equipamiento médico eléctrico. Esta norma se encarga de proporcionar los estándares
básicos de seguridad como la compatibilidad electromagnética, también requerimientos y
pruebas. (Tecno Med Ingenieros, 2010)
4.5 ISO/IEEE 11073
Es un conjunto único de normas desarrolladas y adoptadas por todos los países para
conectividad completa de dispositivos médicos. Se basa en la comunicación entre los
equipos médicos y sistemas informativos externos, en donde se capturan y se visualizan
los datos tomados del paciente.
4.6 STDPD94706
Es una metodología para establecer exigencias de calidad e identificación, realización,
análisis, y define la calidad del software en instrumentos de medición.
50
5. METODOLOGÍA
Aquí se mencionaran los procesos utilizados en el desarrollo de la aplicación para dispositivos
inteligentes y de la aplicación de escritorio.
5.1 Modelo en cascada de ingeniería de software
Para el desarrollo tanto de la aplicación para dispositivos inteligentes como la de aplicación de
escritorio, se analizaron diversos modelos de la ingeniería de software, de los cuales se destaca el
modelo en cascada, y el cual se utilizó en el desarrollo del proyecto. Este modelo se define
mediante una ejecución secuencial de unos subprocesos que complementan el desarrollo del
proyecto. Cada etapa debe estar finalizada, probada y completa, antes de pasar a la siguiente
etapa. Este modelo permite una fácil planificación, además de ser de fácil entendimiento para los
usuarios como para los desarrolladores ya que la estructura de sus fases es conocida.
Figura 17 Fase del Modelo en Cascada
51
5.2 Fases del proyecto
En el desarrollo del proyecto se definió una cantidad específica de actividades, las cuales
permitieron cumplir con los objetivos planteados uno a uno.
A continuación se describe las actividades usadas, las cuales se dividen de la siguiente forma:
FASES DESCRIPCIÓN
Análisis Herramientas para el desarrollo del proyecto.
Alternativas de solución para la ejecución del proyecto, según
los parámetros establecidos.
Impacto generado a la comunidad médica.
Diseño Instalación de las plataformas para el desarrollo de
aplicaciones para: dispositivos inteligentes con SO Android,
Escritorio y BD.
Creación de GUI tanto para la aplicación de dispositivos
inteligentes con SO Android como para la aplicación de
escritorio.
Creación de la Base de datos y sus respectivas tablas.
Validación de la comunicación entre los dispositivos y/o
aplicaciones.
Almacenamiento de la información, en las tablas de reporte de
la base de datos.
Establecer los roles Servidor y/o Cliente entre las aplicaciones.
Creación del perfil de autenticación del usuario.
Lectura y análisis de la información recolectada por el
dispositivo inteligente.
Implementación y
Pruebas
Poner las aplicaciones a trabajar simultáneamente sin que
generen conflicto entre sí.
Probar la App en diferentes dispositivos inteligentes que sean
de diferente gama y que tengan diferentes versiones del
sistema operativo Android.
Divulgación y pruebas por parte de la comunidad académica y
médica.
Tabla 11 Metodología Utilizada.
52
5.2.1. Análisis y estudio de las posibles tecnologías para la implementación
Se consideraron las diferentes plataformas para el desarrollo de aplicaciones para teléfonos
inteligentes, ya que como es un mercado en auge existe una gran variedad de lenguajes de
programación, también se analizó la interacción de los mismos para que permitiera una
manipulación total de los dispositivos a usar y la compatibilidad entre ellos. Todo esto con el fin de
conseguir un desarrollo robusto basado en funcionalidad, diseño gráfico y seguridad. Como eje
central se buscó que fuera software libre de fácil acceso además de estar bien soportado por una
comunidad internacional, que tenga una sintaxis sencilla pero que permite desarrollos complejos y
sobre todo que sea escalable en el tiempo.
5.2.1.1 Herramientas del desarrollo
En esta fase del proyecto es determinante definir tanto el Hardware como el Software que
permitirá el desarrollo mismo del proyecto. En cuanto al Hardware no se tuvo ningún problema ya
que desde el planteamiento del proyecto se definió que se van a usar los dispositivos inteligentes
móviles y un PC, los cuales permiten que entre ellos haya algún tipo de comunicación. Con
respecto software por la cantidad de aplicativos y/o programas que existen para desarrollar
aplicaciones para teléfonos inteligentes o Apps, aplicaciones de escritorio y bases de datos se
tuvo que analizar la versatilidad de cada uno al momento de generar los respectivos desarrollos,
además del soporte y accesibilidad que se pudiera tener sobre los mismos.
Para el desarrollo de las aplicaciones tanto la de dispositivos inteligentes como la de escritorio se
usó el lenguaje de programación JAVA mediante dos entornos de desarrollo. Para la aplicación de
dispositivos móviles se usó el entorno de desarrollo “ECLIPSE”, este además de ser
multifuncional, incluye un componente que permite desarrollar aplicaciones para dispositivos
inteligentes con SO Android, como por ejemplo: teléfonos, tabletas, televisores, relojes, etc. Con
este se puede manipular completamente cada dispositivo en comparación con otras plataformas y
así generar Apps más completas.
53
Figura 18 IDE ECLIPSE. [24]
La aplicación de escritorio se desarrolló bajo el IDE “NETBEANS” que al igual que “ECLIPSE”
están basados en el lenguaje de programación JAVA. Este IDE se seleccionó ya que permite crear
interfaces graficas de usuario de una manera más sencilla con respecto a otras plataformas
incluyendo a “ECLIPSE”. Ambos IDE por estar basados en el lenguaje de programación JAVA, y
este lenguaje por ser popular a nivel mundial permite que tenga un gran respaldo por una
comunidad internacional.
El IDE“NETBEANS” por ser común, tiene una completa biblioteca para realizar desarrollos no solo
de escritorio, también desarrollos web como por ejemplo HTML y/o PHP. Entre los diversos
lenguajes que soporta. También permite crear aplicaciones de Servidor-Clientes particularmente
donde su uso es más popular.
54
Figura 19 IDE NETBEANS. [25]
Otro aspecto importante que tienen ambos IDE es que son gratuitos y sus respectivos
distribuidores permiten su descarga sin tener restricción alguna, haciendo de ello un factor
importante al momento de la implementación del proyecto ya que no generan costos adicionales
por licencias.
Con respecto al almacenamiento de la información se usó el sistema de gestión de bases de datos
“MySQL”. Esta es una base de datos relacional, multihilo y multiusuario que permite realizar
consultas de manera rápida, es gratuita y su distribuidor permite su descarga sin ningún
impedimento al igual que los IDE basados en el lenguaje de programación JAVA. “MySQL” es
usada frecuentemente en aplicaciones web en diferentes plataformas como por ejemplo Windows,
Linux, etc.
El IDE “NETBEANS” en sus diferentes bibliotecas, incluye una que permite trabajar con bases de
datos y particularmente con “MySQL”. Facilitando y haciendo más estructurado el desarrollo que
se realizó para este proyecto.
55
5.2.1.2 Alternativas de solución
Desde el planteamiento del proyecto se definió como eje fundamental que este debía ayudar y
facilitar las mediciones de los ángulos que se forman en las diferentes articulaciones al verse
sometidas algún movimiento, basados en el concepto general de la goniometría. Cuando se
comenzó a realizar el estudio y más precisamente cuando se revisó el estado del arte se observó
que los proyectos que se han generado en cuanto a este tema han sido soluciones que involucran
la creación de dispositivos mecánicos y/o digitales.
De igual forma en esto y como sucede en otros proyectos se encontró algunos puntos a favor y en
contra al momento de implantarlos. En el caso de los goniómetros mecánicos son dispositivos que
a pesar de permitir una medición fiable, son dispositivos poco ergonómicos razón por la cual
hacen que sean poco portables, además de impedir el movimiento normal de las articulaciones en
algunos casos.
Figura 20 Electrogoniómetro. [26]
Actualmente existen goniómetros digitales en el mercado, estos con respecto a los mecánicos
presentan ventajas, ya que solucionan sus principales problemas, es decir no solo son más
ergonómicos y portables sino que también por su composición física y/o hardware (sensores,
microcontroladores, sistemas embebidos, etc.) permiten que estos sean de mayor precisión
evitando y/o disminuyendo posibles errores de medición. Sin embargo por su misma estructura y
56
composición hacen que sus costos sean altos, reduciendo el número de personas que puedan
adquirirlo.
Figura 21 Goniómetro Digital. [27]
Hoy con la facilidad de acceso que se tiene hacia las TIC, es posible generar alternativas de
solución que las involucre, en donde se tenga como propósito atender, proporcionar y mejorar la
calidad de vida de las personas. Es por eso que el proyecto se basó en ellas, aplicándolas a
dispositivos inteligentes para obtener excelentes resultados.
En el mercado existe gran diversidad de dispositivos inteligentes muy bien adecuados ya que
actualmente cuentan con una variedad de sensores y permiten crear aplicaciones o Apps en
diferentes campos como por ejemplo medicina, movilidad, conexión, entretenimiento, etc. Para el
desarrollo del proyecto se usaron dispositivos inteligentes móviles debido a su ergonomía es
posible ubicarlos en diferentes partes del cuerpo sin problema y por los sensores que lo componen
también permiten hacer mediciones de los ángulos que se forman en diferentes articulaciones
del cuerpo humano.
La App que se generó va enfocada a dispositivos inteligentes que tengan SO Android ya que en
primera medida cuenta con un sitio web oficial que suministra la información necesaria para
manipular el dispositivo totalmente y en segunda medida porque en el mercado hay mayor
penetración de estos equipos abriendo un gran número de posibilidades ya que se encuentran de
diferentes precios y diferentes características.
57
Figura 22 sitio Web Developer Android.
5.2.1.3 Impacto
Como el objetivo del proyecto es facilitar y mejorar el trabajo de los especialistas en ortopedia, se
les brindara una nueva herramienta que les permita medir los ángulos que se forman en las
grandes articulaciones del cuerpo. Esta herramienta corresponde a las aplicaciones que se
desarrollaron, dándoles una nueva alternativa de solución además de ser recursiva, ya que sus
teléfonos inteligentes de uso diario pueden servir como goniómetro.
Se espera que el proyecto tenga una buena aceptación por parte de la comunidad médica de tal
forma que puedan hacer un seguimiento más detallado a los pacientes, en donde vean el progreso
y/o evolución del mismo en el momento que empiecen a implementar el proyecto en su quehacer
diario.
58
5.2.2 Componentes de la arquitectura de las aplicaciones
El proyecto se constituye en dos aplicaciones, la primera corresponde al desarrollo para los
dispositivos inteligentes con SO Android y la segunda al desarrollo de escritorio. La aplicación
para los dispositivos inteligentes con SO Android o App se divide en tres procesos, la creación de
una interfaz de inicio, la lectura de los sensores acelerómetros que componen al dispositivo y la
administración del envío y/o recepción de la información suministrada por los sensores con la
aplicación de escritorio. La aplicación de escritorio tendrá 6 procesos, la creación de una interfaz
de inicio, un sistema de autenticación, administración del envío y/o recepción, registro,
representación gráfica de la información suministrada por la App y almacenamiento de la misma
en BD,
5.2.2.1 Componentes de la App
Los tres componentes principales de la App permiten que el especialista pueda manipularla de
manera sencilla e intuitiva, permitiendo hacer análisis médicos, más rápido y precisos.
Diagrama UML para usuario de la App
Acción del usuario Respuesta de la plataforma
Selección de eje de
medición
Despliega un menú de opciones con los ejes que pueden ser medidos
por la App.
Visualización de la
ángulos generados
Visualiza la información obtenida por los acelerómetros y/o
magnetómetro del dispositivo.
Configuración de la
conexión.
Permite definir la dirección IP que tiene asociada el PC.
Tabla 12 Diagrama UML para usuario de la App.
5.2.2.1.1 Interfaz de Inicio
Debido a que el proyecto nace de la necesidad de mejorar las técnicas y las herramientas de
medición de los ángulos formados por las diferentes articulaciones, será empleada por
especialistas del área de la salud (Ortopedista), se creó una interfaz sencilla e intuitiva, en la que
el especialista puede manipularla sin tener problema alguno.
Esta interfaz visualiza de manera clara el ángulo de inclinación al que está sometido el dispositivo
con el objetivo que tanto el especialista como el paciente puedan ver esta información además de
ir controlando el movimiento de las articulaciones según se necesite. También se puede
seleccionar el eje a medir, con ello se generó un sistema de referencia de coordenadas específico
para cada medición debido a que el funcionamiento mismo de los sensores se ve limitado y/o
59
restringido el uso de la App ya que al momento de definir el movimiento a medir también se ve
involucrado directamente el eje a usar.
Por ejemplo si se mide el ángulo formado por el movimiento “Flexión y Extensión” de la
articulación del codo, se usa el eje X, porque solo este genera información coherente para poder
hacer un diagnóstico a algún paciente. Cada uno de los movimientos que se pueden generar con
las articulaciones grandes, ya sea la de codo, hombro, cadera o rodilla tienen asociado el eje que
entrega la información correcta de la medición del ángulo que se forma.
ARTICULACION MOVIMIENTO EJE
CODO FLEXION Y EXTENSION Z
PRONACION Y
SUPINACION
X
HOMBRO FLEXION Y EXTENSION Z
ABDUCCION Y
ADUCCION
Y
ADUCCION
HORIZONTAL
Y
ROTACION INTERNA Y
EXTERNA
Z
CADERA FLEXION Y EXTENSION Z
ABDUCCION Y
ADUCCION
Y
RODILLA FLEXION Y EXTENSION Z
ROTACION INTERNA Y
EXTERNA
Y
Tabla 13 Tabla de equivalencia entre movimientos y ejes.
5.2.2.1.2 Lectura de Sensores
Este proceso es fundamental ya que gracias a este se hace la parte de adquisición de la
información. Los dispositivos inteligentes móviles cuentan con acelerómetros donde su función
principal se ve reflejada en la orientación de la pantalla, por este motivo es que la pantalla gira
según se ubique el dispositivo.
Entre las bibliotecas que contiene el IDE “ECLIPSE”, los sensores son soportados por la
plataforma de desarrollo para Android en donde el acelerómetro mide la fuerza de la aceleración
60
aplicada al dispositivo sobre cada uno de los tres ejes (X, Y, Z). La relación que entrega esta
medición es necesario hacerle un análisis vectorial siempre que se realice algún movimiento del
dispositivo, donde dos de sus ejes presentan alteraciones y/o cambios.
5.2.2.1.3 Administración de envió y/o recepción de la información
En esta parte de la App, establece la conexión con la aplicación de escritorio. En donde la App
está enviando información constantemente. El sistema de comunicación de las aplicaciones se
basa en un modelo cliente servidor, donde la APP cumple el papel de cliente todo el tiempo y está
solicitando confirmación para él envió de información al servidor, de igual forma está en espera en
todo momento a los requerimientos del servidor.
.
5.2.2.2 Componentes de la aplicación de escritorio
Los componentes principales de la Aplicación de escritorio tienen como objetivo visualizar la
información básica del paciente, no solo permite manipular su información personal sino también
observar los ángulos medidos por la App y de esta forma dar un diagnostico al paciente. Esta
aplicación se conecta primero con la App para enviar y/o recibir información y luego de ello se
hace la conexión con la base de datos para guardar estos registros.
Diagrama UML para usuario de la aplicación de escritorio
Acción del usuario Respuesta de la plataforma
Formulario de
información básica
Al ingresar a la aplicación de escritorio se encontrara el formulario, este
contiene los campos de información básica personal, adicional tiene un
campo para visualizar los ángulos enviados y un último campo en donde
el especialista podrá colocar su dictamen.
Consulta de
información en la base
de datos
Visualiza la información almacenada en la base de datos, permitiendo
consultar registros existentes.
Selección del
movimiento a medir
Despliega un menú de opciones con los diferentes movimientos que se
generan en las articulaciones grandes.
Capturar y almacenar
la información enviada
por la App
Determina y selecciona la información enviada por la App para
almacenarla en la base de datos
Graficar la información Genera una animación y una gráfica del movimiento medido.
Tabla 14 Diagrama UML para usuario de la aplicación de escritorio
61
5.2.2.2.1 Interfaz de inicio
La interfaz de inicio de la aplicación de escritorio complementa los datos obtenidos por la App,
porque recopila la información que le está enviando el dispositivo inteligente móvil y lo vincula a la
información básica del paciente. Esta interfaz se desarrolló con el IDE “NETBEANS”.
El diseño de esta interfaz está basado en un formulario, que cuenta con una cantidad de botones
que tienen asociado diferentes funciones, entre las que se destacan creación de nuevos registros
de pacientes, almacenamiento de la información en la base de datos, búsqueda de información de
pacientes ya existentes en la base de datos, selección del movimiento a medir ya que esto influye
en la información que debe enviar la App y representación gráfica de los datos recibidos.
5.2.2.2.2 Sistema de Autenticación
El sistema de autenticación hace que la aplicación de escritorio sea segura, evitando que
cualquier persona acceda a la información almacenada en la base de datos y que ingrese o
manipule datos de manera errada. Este sistema funciona bajo un modelo usuario contraseña
convencional, en donde la aplicación pide las credenciales antes de poder acceder al formulario y
a sus respectivas funciones.
En el momento que se haga la respectiva instalación de esta aplicación se asignará un usuario y
su respectiva contraseña, para que el especialista pueda proteger la información de sus pacientes
porque en ella hay datos que podrían usarse de manera delictiva.
5.2.2.2.3 Registro de la información
El formulario contiene unos campos básicos en donde se concentra la información esencial de
cualquier persona, incluyendo dos campos en los que el especialista ira manipulando en
complemento con la App, porque con los datos medidos que entrega esta segunda permite tanto
que el especialista como el paciente visualicen en texto y en una gráfica el comportamiento del
movimiento medido.
Luego de interpretar la información obtenida el especialista tendrá un campo en donde
establecerá un dictamen sobre el paciente con el fin de generar un plan de trabajo de ser
necesario para evitar posibles riesgos y complicaciones.
5.2.2.2.4 Envió y/o recepción de la información
Este proceso es indispensable y complementa la información del formulario, debido a que permite
seleccionar el movimiento a medir generando una conexión directa con la App en donde se le
indica la información del eje que necesita que le envié. La aplicación de escritorio como funciona
62
como servidor determina que información requiere que le envié la App y el momento en que lo
haga.
La aplicación de escritorio y la App durante su ejecución mantienen sus canales de comunicación
abiertos para que en el momento que el especialista necesite seleccionar la información que se le
envié o simplemente cambiarla se realice sin ningún inconveniente.
5.2.2.2.5 Representación grafica de los datos obtenidos por la App
Teniendo el registro completo de la información del paciente y más puntualmente los ángulos
medidos, la aplicación tiene una opción de graficar esta información para facilitar y entender el
comportamiento del movimiento. Así el especialista podrá dar un diagnostico más detallado no
solo basándose en la información que ha escrito sino también en la información gráfica que la
aplicación suministra.
5.2.2.2.6 Almacenamiento y consulta de la información en la Base de datos
El almacenamiento de la información en la base de datos se realiza como parte final, luego de
completar todos los campos de registro, existe una opción que hace la conexión con la base de
datos actualizándola con los nuevos datos obtenidos. Adicional cuenta con un modo de consulta
en el que el especialista puedo buscar datos de pacientes ya registrados, donde se puede filtrar
por algún dato clave.
Solo la aplicación por estar configurada como servidor tiene los privilegios básicos sobre la base
de datos en los que no solo se incluye el de consulta y actualización, también existe el de
modificación o eliminación según lo requiera el especialista.
5.2.2.3 Estructuramiento de la Base de datos.
Se basa simplemente en una tabla en la cual se almacena los datos obtenidos en el formulario;
esta tabla ya está creada y conectada con la aplicación de escritorio con el fin de almacenar
grandes volúmenes de información y tener acceso continuo a ella.
La app por estar en el rol de cliente no tiene ningún privilegio sobre la base de datos, mientras que
la aplicación de escritorio si los tiene. Todo ello se debe a que esta segunda maneja el rol de
servidor y será el especialista quien es el encargado de su manipulación el que determine la
información que se debe guardar.
La edición, eliminación y adición de dichos registros se hace por medio de código PHP y para ello
se utiliza una herramienta administración a través de una página web esto con el fin de facilitarle el
63
proceso de administración a una persona que no haya participado en el desarrollo de las tablas de
bases de datos.
Diagrama UML para administración de bases de datos
Acción del usuario Respuesta de la plataforma
Creación de la tabla El sistema crea una tabla de registros adicional con los
campos adicionados por el servidor.
Eliminación de de los registros de la
tabla
La herramienta de administración elimina los campos de la
tabla de registro y su contenido
Edición de de los registros de la
tabla.
El editor de bases de datos permite eliminar o crear un
registro específico en la tabla cuando lo desee la aplicación
de escritorio y/o servidor.
Tabla 15 Diagrama UML para administración de bases de datos.
5.2.2.3.1 Diccionario de la base de datos.
CAMPO TIPO TAMAÑO DESCRIPCIÓN
Nombres varchar 50 Nombres del paciente
Apellidos varchar 50 Apellidos del paciente
Documento varchar 50 Tipo de documento
Num_id varchar 20 Numero de identificación
Fecha_Reporte date Fecha del reporte
Datos varchar 500 Ángulos obtenidos por la App
Descripción varchar 500 Diagnostico determinado por el especialista
Tabla 16 Diccionario base de datos
5.2.3 Pruebas y evaluación de la aplicación
Se pone a prueba la APP y la aplicación de escritorio, en una primera fase se debe evaluar la
estabilidad de los sensores y la respuesta de la petición para la conexión Servidor-Cliente.
También se verifica el correcto funcionamiento del sistema de autenticación de usuarios que tiene
la aplicación de escritorio y la funcionalidad de cada uno de los módulos con los que se cuenta. Ya
64
como parte final es necesario verificar el correcto funcionamiento de la base de datos en sus
operaciones básicas de almacenamiento, actualización y/o eliminación de la información que allí
se alberga.
65
6. DESARROLLO INGENERIL.
Para el desarrollo del proyecto y debido al modelo de cascada implementado, se tuvo en cuenta
todos los pasos involucrados en el análisis técnico, requerimientos, y tareas de cada una de las
aplicaciones. Con estos tópicos claros, se realiza un bosquejo grafico de las diferentes interfaces
de las aplicaciones, la forma de uso, y su respectivo enlace con la base de datos.
6.1 Análisis y estudio de las posibles tecnologías para la implementación
Luego de realizar el estudio de diferentes herramientas programáticas y herramientas de
hardware dispone; se determinó que aquellas que nos proporcionaban una mejor relación entre
costo, beneficio, rendimiento y facilidad de acceso, serían las utilizadas para el desarrollo de las
aplicaciones.
A nivel de hardware se determinó que para ejecutar la App en un dispositivo móvil sin
experimentar fallas de velocidad o compatibilidad, se necesita contar con un Smartphone con al
menos 1,5 GHz de velocidad de procesamiento, 512Mb de capacidad de memoria volátil y
fundamental que cuenten con lo sensores acelerómetros, giroscopio y magnetómetro. En cuanto a
un equipo de cómputo las características de procesamiento deben ser al menos de 2,6 GHz y con
una capacidad de almacenamiento de memora RAM de al menos 512 Mb; para un equipo de
cómputo se recomienda utilizar una tarjeta a celadora de gráficos de al menos 128Mb.
La conexión entre las aplicaciones depende directamente de la red y de la conexión Wifi en la que
se encuentre, debido a que ambas deben estar bajo la misma.
En cuanto al software para equipos móviles se recomienda la utilización de sistemas operativos
como: Android en su versión 2.3 o superior. Para equipos de cómputo el sistema operativo puede
ser Windows, Linux y Mac porque las herramientas informáticas usadas soportan las diferentes
plataformas.
6.2 Interfaz Gráfica.
Las interfaces graficas de las aplicaciones que se desarrollaron mantienen el concepto de
sencillez e intuitividad para que el manejo que le den los ortopedistas sea el adecuado y no
tengan problemas con su uso. Es evidente que por el papel que juegan las aplicaciones y por el
mismo rol (cliente- servidor) que desempeñan manejan funcionalidades diferentes.
6.2.1 Interfaz de la App
La App maneja un diseño gráfico básico en donde se destaca como parte fundamental, el eje que
se está midiendo en conjunto con su respectiva medición. Entre sus características de
funcionamiento se destaca que tiene un menú de opciones el cambio de eje, ya que este ira
66
cambiando según lo requiera el especialista, también permite realizar una configuración básica de
red en la que permite cambiar la dirección IP para establecer comunicación con el PC.
Figura 23 Interfaz de la App.
6.2.2 Interfaz de la aplicación de escritorio
La aplicación de escritorio visualiza mayor información además de adjuntar los datos obtenidos
por la App, por ende la interfaz que maneja es más completa en comparación de la App. Esta
aplicación se compone esencialmente del formulario de registro para los pacientes, adicional
cuenta con unas funcionalidades que permiten la comunicación con la App, almacenar la
información obtenida y generar gráficas y animaciones de los movimientos.
67
Figura 24 Interfaz de la Aplicación de escritorio.
6.3 Funcionalidades de las aplicaciones
El proyecto se basa en la ejecución de la App en conjunto con la aplicación de escritorio para su
óptimo funcionamiento. Donde cada una desempeña un papel independiente que complementa la
información que necesita el especialista para dar valoraciones sobre el estado de los pacientes y
de la misma manera tomar acciones preventivas y/o correctivas.
La App tiene como propósito obtener las mediciones de los ángulos que se generen en lo
diferentes movimientos de las grandes articulaciones mientras que la aplicación de escritorio se
encarga de recoger toda la información y almacenarla en la base de datos.
68
6.3.1 Funcionalidades de la App
Como se ha mencionado el papel de la App es fundamental en el proyecto ya que es la encargada
del censado de la información a través de los acelerómetros y magnetómetro que componen a los
dispositivos inteligentes móviles y la configuración de la conexión entre ella y la aplicación de
escritorio.
6.3.1.1 Censado de los acelerómetros
Los acelerómetros que tienen los dispositivos inteligentes móviles, son sensores que tienen 3 ejes
de acción. Tienen 3 salidas una para cada eje (x, y, z) cada una de estas salidas varía
dependiendo de la inclinación a la que esté sometida el acelerómetro. Estas variaciones están en
un rango de -1G a 1G, donde 1G equivale al valor de la aceleración 9,8 m/s, esto se puede
calcular sabiendo que el acelerómetro varía desde 0 a 180º y normalizando el valor de la
aceleración. Al realizar un movimiento el acelerómetro presenta cambios en dos de sus ejes,
generado por un comportamiento vectorial y del cual se basa el algoritmo de la App para obtener
los ángulos que se forman
.
Figura 25 Manejo de los sensores en Android.
69
6.3.1.2 Conexión con la aplicación de escritorio
Ambas aplicaciones por ser desarrolladas bajo el mismo lenguaje de programación trabajan con
comunicación por sockets y el sistema multitarea para el envío y recepción constante de
información. La comunicación que maneja la App al igual que la de escritorio es full dúplex sin
embargo cada una emplea un rol diferente dentro de la comunicación.
La App bajo el papel de cliente espera confirmación del servidor o aplicación de escritorio para
establecer la comunicación y poder enviar la información censada, siempre está sujeta a las
acciones que determine el servidor en su ejecución.
Figura 26 Comunicación por socket en el lenguaje de programación Java.
6.3.2 Funcionalidades de la aplicación de escritorio
La aplicación de escritorio bajo su rol de servidor es la encargada de tomar las decisiones y
realizar los procesos más relevantes del proyecto. Entre sus funciones se destaca el registro de
pacientes a través del formulario, consulta, actualización, creación y eliminación de registros en la
base de datos, establecimiento del movimiento a medir por la App y representación grafica de la
información obtenida por la App.
70
6.3.2.1 Sistema de Autenticación
La aplicación de escritorio cuenta con su sistema de autenticación como medida de seguridad de
la información. Este sistema pide unas credenciales es decir un usuario y una contraseña para
poder avanzar, visualizar y/o manipular la información de la base de datos
Figura 27 Sistema de autenticación.
6.3.2.2 Formulario de registro
La aplicación de escritorio se desarrolló bajo el IDE de desarrollo “Netbeans” ya que permite
realizar interfaces graficas de usuario o GUI bajo los componentes AWT y Swing de forma gráfica,
componentes incluidos en las bibliotecas que trae por defecto el software, Además dispone de un
inspector de componentes que permite visualizarlos en forma de árbol. Y bajo su forma de trabajo
“drag & drop” facilita el alineamiento y posicionamiento de los componentes como por ejemplo las
etiquetas, los botones, campos de texto, etc.
El formulario de registro contiene la información básica de cada paciente, dentro de los cuales se
encuentran los campos de: Nombres, Apellidos, Tipo de documento, Numero de documento y
fecha en la que se están tomando los datos, y dos campos adicionales en los que el especialista
71
hará la captura de los datos suministrados por la App para el campo datos y la respectiva
valoración que ingresara en el campo de observación.
Figura 28 Formulario de la Aplicación de escritorio.
Figura 29 Inspector de componentes en árbol del IDE Netbeans.
72
6.3.2.3 Consulta, actualización, creación y eliminación de registros en la base de
datos
En esta parte de la interfaz gráfica ya la aplicación de escritorio hace conexión a la base de datos
para poder visualizar la información que allí hay contenida. Esta conexión entre el lenguaje de
programación java y la base de datos “MySQL” se realiza mediante el API JDBC que permite que
el IDE de desarrollo netbeans pueda interpretar desde su plataforma el lenguaje de la base de
datos. Para ello hizo que la base de datos estuviera funcionando de manera local para que la
conexión sea estable, esto se realizó mediante el software “XAMPP” que entre sus herramientas
contiene un administrador de base de datos para Mysql llamado “PhpMyAdmin”.
Figura 30 PhpMyAdmin.
Desde esta herramienta se crea la base de datos en “Mysql” y de igual forma se pueden validar los
registros que ingresan o que salen. Esta es la misma información que la aplicación de escritorio
despliega simplemente que lo realiza desde su plataforma. Para ello es necesario usar una clase
en la cual se le indica las credenciales de acceso de “PhpMyAdmin”, el nombre de la base de
datos y el url del servidor al que se va conectar que para este caso es el mismo PC.
73
Figura 31 Conexión a la base de datos desde el IDE Netbeans.
Luego de establecer la conexión a la base de datos, ya es posible obtener y/o manipular la
información que esta contiene, para ello es necesario llamar los métodos de conexión en los que
se usa la sintaxis de programación de una base de datos.
Figura 32 Consulta a la base de datos desde el IDE Netbeans.
74
De igual forma para hacer actualización, creación y/o eliminación de registros se usa el mismo
método variando el parámetro donde se usa la sintaxis del lenguaje de programación de base de
datos “MySQL”.
6.3.2.4 Medición de movimientos
Para determinar el movimiento a medir se debe seleccionar la articulación y el movimiento
respectivo asociado a ella, desde la interfaz de la aplicación de escritorio. Al seleccionarse estos
parámetros ambas aplicaciones generan un canal de comunicación. Este canal se desarrolló bajo
sockets, que son los que permitieron interconectar las dos aplicaciones siempre y cuando estén
usando internet. La App que funciona como cliente se conecta a la aplicación de escritorio bajo el
rol de servidor atravesó de la dirección IP que tiene asignada el PC y un puerto que fue
previamente establecido para evitar conflictos de comunicación con otros dispositivos.
Para lograr que la comunicación se estableciera en cualquier momento que el servidor lo solicitara
se emplea el sistema de multitarea o hilos, en donde por ellos se corre el proceso de recepción y/o
envió de información entre la aplicaciones sin afectar el funcionamiento principal de ninguna de
ellas.
Figura 33 Comunicación por sockets dentro de la ejecución multitarea.
75
6.3.2.4 Representación gráfica de la información
La aplicación de escritorio también cuenta con una representación grafica de la información
obtenida por la App, con el objetivo de que el especialista tenga otra alternativa para interpretar el
estado de los pacientes. En esta representación gráfica mediante una animación se recrea el
movimiento que fue medido y una gráfica en un plano cartesiano de los ángulos medidos con
respecto al tiempo de duración. Es importante resaltar que esta interfaz también simula el
movimiento de alguna articulación como por ejemplo flexión y extensión del codo que mediante
una imagen de un brazo en el plano sagital se mueve de acuerdo a los valores guardados en
obtenidos por la App y capturados por la aplicación de escritorio. Esta imagen se divide en 2,
brazo y antebrazo, la imagen del antebrazo gira mientras la del brazo permanece inmóvil.
Figura 34 Animación del movimiento de flexión y extensión de la articulación de codo.
Estos gráficos se realizaron bajo la clase canvas incluida en las bibliotecas estándar del IDE
“Netbeans”, con el que se pueden realizar diferentes tipos de gráficos asociados al control por un
componente. Permitiendo que su ejecución si y solo si se de en el momento que la active alguno
de los elementos que componen la interfaz gráfica.
Figura 35 Curva de Grados Vs Tiempo generada por la aplicación de escritorio.
76
7. RESULTADOS
Con la ayuda del dispositivo “Tech MCS” de la empresa “TECHNAID”, se puede comprobar la
fiabilidad de las mediciones obtenidas por la App, ya que este dispositivo funciona mediante los
mismos sensores que la App entregando datos y graficas del comportamiento de los movimientos.
El dispositivo “Tech MCS” cuenta con el software “Tech MCS Studio” que nos permite visualizar los
datos obtenidos y para ello se realiza un previa configuración de los acelerometros unos con
respecto a otro para luego proceder con las mediciones.
Este software genera no solo curvas de grados versus tiempo sino que también recrea el
movimiento realizado con animaciones entre las múltiples opciones que maneja.
Para someter la App a pruebas se realizaron movimientos en los que intervienen los diferentes
ejes, contrastando la información que genera el dispositivo con la información que entrega la App.
El primer eje medido fue el “X” obteniendo los siguientes resultados:
Figura 36 Curva de Grados Vs Tiempo para el eje “X” medida por el dispositivo “Tech MCS”.
77
Figura 37 Curva de Grados Vs Tiempo para el eje “X” medida por la App.
El segundo eje medido fue el “Y” obteniendo los siguientes resultados:
Figura 38 Curva de Grados Vs Tiempo para el eje “Y” medida por el dispositivo “Tech MCS”.
78
Figura 39 Curva de Grados Vs Tiempo para el eje “Y” medida por el dispositivo por la App.
El tercer eje medido fue el “Z” obteniendo los siguientes resultados:
Figura 40 Curva de Grados Vs Tiempo para el eje “Z” medida por el dispositivo “Tech MCS”.
79
Figura 41 Curva de Grados Vs Tiempo para el eje “Z” medida por la App.
La App en comparación con el dispositivo “Tech MCS”, realiza mediciones muy fiables como se ha
podido observar, en las pruebas realizadas las curvas que generaron ambas herramientas
presentan un comportamiento parecido en cada uno de los ejes que manejan los sensores
acelerómetros. Sin embargo el dispositivo “Tech MCS” generó más detalle en algunas curvas
debido a que los sensores que maneja presentan mayor resolución que el sensor del dispositivo
inteligente móvil usado que para ese caso fue el Samsung S6 Edge +.
Adicional la App también fue sometida a pruebas con el software “KINOVEA”, software de código
abierto que permite realizar estudios de movimientos a través de capturas de imágenes y/o videos,
en los que se puede realizar edición de los mismos y así obtener los análisis deseados.
La prueba consistió en tomar diferentes imágenes estando la App en ejecución para
posteriormente comparar el dato medido por esta, con la edición de la imagen en el software
“KINOVEA” y establecer la precisión de la medición.
En esta prueba se tomó el punto ángulo mínimo, máximo y ángulo recto formado por los huesos
humero y radio-cubito para el movimiento de flexión y extensión de la articulación del codo.
Obteniendo como resultado:
80
Figura 42 Angulo mínimo formado en el movimiento de flexión y extensión en la articulación del
codo.
Figura 43 Angulo recto formado en el movimiento de flexión y extensión en la articulación del codo.
81
Figura 44 Angulo máximo formado en el movimiento de flexión y extensión en la articulación del
codo.
Esta prueba dejo buenos resultados ya que los ángulos medidos fueron consistentes en este la
App y “KINOVEA”. Adicional se tomaron unas muestras para todos los ejes en diferentes
inclinaciones para validar la estabilidad del acelerómetro estando en una misma posición y los
resultados obtenidos fueron positivos y se representan en las siguientes tablas:
N Media Desviación estándar Mínimo Máximo
Angulo 30 30 30,0333333 0,319841915 29 31
Angulo 45 30 45,7333333 0,583292281 44 46
Angulo 60 30 60,1 0,4025779 59 61
Angulo 90 30 89,8333333 0,379049022 89 90
Angulo 120 30 119,2 0,550861394 119 121
Angulo 135 30 134,333333 0,479463301 134 135
Angulo 150 30 149,466667 0,571346464 149 151
Tabla 17 Medición de ángulos fijos por la App en el eje “X”.
82
N Media Desviación estándar Mínimo Máximo
Angulo 30 30 30,6666667 0,711159002 29 31
Angulo 45 30 45,7 0,595963433 44 46
Angulo 60 30 60 0,371390676 59 61
Angulo 90 30 89,2 0,610257153 88 91
Angulo 120 30 120,033333 0,556053417 119 121
Angulo 135 30 135 0,454858826 134 136
Angulo 150 30 150,033333 0,6149479 149 151
Tabla 18 Medición de ángulos fijos por la App en el eje “Y”.
N Media Desviación estándar Mínimo Máximo
Angulo 30 30 30,4 0,498272879 30 31
Angulo 45 30 45,5666667 0,504006933 45 46
Angulo 60 30 60,0333333 0,319841915 59 61
Angulo 90 30 89,9333333 0,449776445 88 91
Angulo 120 30 119,766667 0,430183067 119 120
Angulo 135 30 134,8 0,610257153 132 135
Angulo 150 30 150,233333 0,430183067 150 151
Tabla 19 Medición de ángulos fijos por la App en el eje “Z”.
83
8. CONCLUSIONES
Los dispositivos inteligentes con SO Android vienen dotados con los suficientes sensores
para realizar buenos proyectos a costos más bajos que el de implementar un prototipo con
estas características.
Realizar Apps para dispositivos inteligentes con SO Android es factible debido a que existe
una gran variedad de estos dispositivos en el mercado además de contar con un sitio web
que provee los contenidos necesarios para dar un manejo total a estos.
En la implementación de cualquier dispositivo o instrumento de medida en el campo de la
ortopedia se debe tener en cuenta la ergonomía del mismo, no basta con que el
instrumento mida con precisión y exactitud, es necesario que tenga un diseño que se
adecue a las necesidades del usuario para optimizar su funcionamiento.
El uso de acelerómetros de 3 ejes en dispositivos inteligentes con SO Android permite que
la App pueda ser mejorada para analizar diferentes articulaciones de manera simultanea
generando un sistema mas robusto y obteniendo diagnosticos mas detallados.
Las bases de datos como uno de los cimientos de la aplicación, poseen gran capacidad y
estabilidad en la administración de la información, sin presentar fallas ni errores. Las
herramientas de gestión y control para las bases de datos respaldan dicho funcionamiento
y en algunos casos permite corregirlo.
Utilizar un lenguaje de programación como Java y una plataforma como NETBEANS y/o
ECLIPSE por ser de código abierto permite que el desarrollo sea ejecutado en cualquier
Sistema Operativo, además de encontrar una amplia bibliografía para el desarrollo de
diferentes aplicaciones.
Este proyecto incentiva a la comunidad a médica a trabajar de la mano con las
universidades para obtener soluciones de algunos sus problemas a costos moderados,
además facilita e innova las herramientas que usan a diario para establecer el diagnostico
de posibles enfermedades de sus pacientes.
84
BIBLIOGRAFÍA
[1] J. Méndez Martín, “Aplicación Android de apoyo a Fisioterapeutas,” 2015.
[2] J. Henao Hoyos and J. López, “Goniómetro digital basado en sensores cinemáticos con
comunicación inalámbrica en tiempo real,” Thesis, 2013.
[3] “Goniómetro Pro - fisioEducación.” [Online]. Available:
http://fisioeducacion.net/fisios/redes/325-goniometropro. [Accessed: 25-Jan-2016].
[4] M. Cuevas, M. de Amirola, O. Romero, and J. Rostro, “Goniómetro digital para medir
flexoextensión en brazo derecho como propuesta para aplicaciones en telerehabilitación.”
25-Nov-2014.
[5] “Goniometer Records – Mobile App,” Indian Orthopaedic Research Group, 12-May-2013.
[Online]. Available: http://www.iorg.co.in/2013/05/goniometer-records-mobile-app/. [Accessed:
26-Jan-2016].
[6] A. N. Gonzalez, “¿Qué es Android?,” Xataka Android, 08-Feb-2011. [Online]. Available:
http://www.xatakandroid.com/sistema-operativo/que-es-android. [Accessed: 12-Jan-2016].
[7] E. Alvarez, “1.3 Arquitectura de Android,” 01-Feb-2013. .
[8] J. T. Gironés, El Gran Libro de Android. Marcombo, 2013.
[9] EL CONGRESO DE COLOMBIA, “LEY 1341 DE 2009.” 30-Jul-2009.
[10] “Blog para aprender con TIC.” [Online]. Available: http://ticsparadocencia.blogspot.com.co/.
[Accessed: 18-Jan-2016].
[11] “El fundamento físico del acelerómetro | Atomos y bits.” [Online]. Available:
http://atomosybits.com/la-fisica-tras-el-acelerometro/. [Accessed: 14-Jan-2016].
[12] “DISEÑO Y CONSTRUCCIÓN DE MAGNETÓMETRO TRIAXIAL PARA ANÁLISIS Y
EXPERIMENTACIÓN DE AISLAMIENTOS MAGNÉTICOS.” [Online]. Available:
http://e-archivo.uc3m.es/discover?scope=%2F&query=DISE%C3%91O+Y+CONSTRUCCI%
C3%93N+DE+MAGNET%C3%93METRO+TRIAXIAL+PARA+AN%C3%81LISIS+Y+EXPERI
MENTACI%C3%93N+DE+AISLAMIENTOS+MAGN%C3%89TICOS&submit=Ir. [Accessed:
21-Jan-2016].
[13] “Google Play.” [Online]. Available: https://play.google.com/store. [Accessed: 21-Jan-2016].
[14] J. Sánchez García, “SISTEMA LIDAR INTEGRADO EN UN UAV PARA LA GENERACIÓN DE
MODELOS DIGITALES DEL TERRENO,” Escuela Técnica Superior de Ingeniería, 2012.
[15] “Qué es PHP,” DesarrolloWeb.com. [Online]. Available:
http://www.desarrolloweb.com/articulos/392.php. [Accessed: 18-Jan-2016].
[16] E. F. Cases, “¿Qué es PHP? ¿Para qué sirve? | Blog ibrugor.” .
[17] K. Mikoluk, “Tutorial de XAMPP: Cómo Usar XAMPP Para Ejecutar Su Propio Servidor Web.”
[Online]. Available:
https://blog.udemy.com/tutorial-de-xampp-como-usar-xampp-para-ejecutar-su-propio-servido
r-web/. [Accessed: 18-Jan-2016].
85
[18] “XAMPP: Apache, PHP y MySQL,” DesarrolloWeb.com. [Online]. Available:
http://www.desarrolloweb.com/articulos/xampp.html. [Accessed: 18-Jan-2016].
[19] A. Silberschatz, H. F. Korth, and S. Sudarshan, Fundamentos de bases de datos. McGraw-Hill,
2006.
[20] “Introducción - Bases de datos,” CCM. [Online]. Available:
http://es.ccm.net/contents/66-introduccion-bases-de-datos. [Accessed: 20-Jan-2016].
[21] “¿Qué son las bases de datos?” [Online]. Available:
http://www.maestrosdelweb.com/que-son-las-bases-de-datos/. [Accessed: 22-Jan-2016].
[22] “aulaClic. - Introducción a las bases de datos.” [Online]. Available:
http://www.aulaclic.es/sqlserver/b_1_1_4.htm. [Accessed: 22-Jan-2016].
[23] C. H. Taboadela, GONIOMETRÍA UNA HERRAMIENTA PARA LA EVALUACIÓN DE LAS
INCAPACIDADES LABORALES, 1a ed. Buenos Aires: ASOCIART SA ART. © 2007, 2007.
[24] W. Beaton, “Screenshot Gallery.” [Online]. Available: http://www.eclipse.org/screenshots/.
[Accessed: 27-Jan-2016].
[25] “NetBeans IDE - Base IDE Features.” [Online]. Available: https://netbeans.org/features/ide/.
[Accessed: 27-Jan-2016].
[26] A. Braidot, D. Giménez, E. Kipen, and F. Ramos, “Diseño de un Electrogoniómetro Telemétrico
y Microcontrolado.” 2002.
[27] D. con www.gesio.com, “Transportador de Ángulos Digital - Rango (0...360)o - Resolución
0,001 o - Suministrado en caja de madera - FEMTO.” [Online]. Available:
http://www.femto.es/transportador-de-angulos-digital--rango-0360---resolucion-30--9668serie
-21729658-p-1-50-574/. [Accessed: 27-Jan-2016].