app goniÓmetro para dispositivos...

85
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

Upload: lamtu

Post on 30-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

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.

41

Figura 11 Procesador de consultas. [19]

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º.

48

Figura 16 Método del cero neutro. [23]

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].