Upload
trinhthuan
View
214
Download
0
Embed Size (px)
Citation preview
1
2
Índice
Introducción……………………………………………………………………………. 3
Antecedentes y justificación………………………………………………………….... 6
Objetivo General……………………………………………………………………….. 9
Objetivos específicos…………………………………………………………………… 9
Metodología.………………………………………………………………………… . 10
Resultados y discusión ……………...……………………………………………….. 17
Conclusiones…………………………………………………………………………. 19
Bibliografía………………………………………………………………………….... 20
Anexo I……………………………………………………………………………….. 22
3
Introducción.
La respiración es el proceso por el cual ocurre el intercambio de gases a nivel de
los pulmones impulsados por una bomba que ventila los pulmones. La bomba consiste
en las paredes del tórax y músculos respiratorios que al aumentar y disminuir de tamaño
permiten la entrada y salida de aire. En reposo, un ser humano ventila de 12 a 15 veces
por minuto. El volumen de aire introducido en el organismo es aproximadamente de
500 ml. por cada ciclo de ventilación, es decir, de 6 a 8 L/min.[1].
Una de las maneras para determinar el estado funcional del sistema respiratorio
es la medición de volúmenes pulmonares durante diferentes maniobras. Estos
volúmenes pulmonares están determinados por la interacción entre las fuerzas elásticas
del pulmón y de la caja torácica. Existen diferentes técnicas para la medición de
volúmenes pulmonares; el método de lavado de nitrógeno consiste en inspirar O2 al
100%, medir el gas espirado en un espirómetro y la concentración de nitrógeno en un
analizador. La pletismografía consiste en introducir al paciente en una cabina para
realizar diferentes maniobras conectado a un neumotacógrafo, éste estudio permite
conocer el volumen de gas torácico(VGT), que es el gas contenido en el tórax, vías
respiratorias o atrapado en cualquier lugar del tórax. Sin embargo, la técnica más común
consiste en el uso de un espirómetro[2] colocado en la boca del sujeto por medio de una
boquilla, el cual mide el aire espirado al realizar diversas maniobras durante un tiempo
determinado calculando el volumen ocupado en el pulmón.
Un espirómetro puede consistir en una cámara llamada campana que permite el
almacenamiento de aire, de esta manera puede medir los volúmenes pulmonares
espirados debido a que el volumen espirado es proporcional al desplazamiento de la
campana. La prueba que se realiza con el espirómetro es una prueba sencilla y la más
importante para evaluar la función respiratoria[3]; es útil para el diagnóstico y manejo
de una variedad de condiciones pulmonares, permite conocer si la persona que está
realizándose la prueba tiene alguna obstrucción o restricción en las vías respiratorias. La
prueba involucra mediciones dinámicas para determinar la habilidad de un paciente para
respirar. Las mediciones se realizan durante la inhalación y exhalación aunque las más
clínicamente usadas son las que se realizan durante la exhalación. La aplicación de la
técnica de espirometría puede ser útil también para observar los progresos de alguna
enfermedad pulmonar.
4
Existen diferentes tipos de espirometría; espirometría simple, que se realiza bajo
condiciones estáticas y espirometría forzada donde se considera el tiempo como factor
importante. Bajo condiciones estáticas; es decir, cuando no se considera el tiempo como
factor importante, el espirómetro permite medir el volumen corriente (VC), definido
como el volumen exhalado e inhalado espontáneamente; el volumen de reserva
espiratorio(VRE), que es el volumen que se puede exhalar después de una espiración de
volumen corriente; el volumen de reserva inspiratorio (VRI), definido como el volumen
de aire que se puede inhalar después de una inspiración de volumen corriente; la
capacidad inspiratoria (CI), siendo la suma del volumen inspirado de volumen corriente
más el volumen de reserva inspiratorio; la capacidad vital (CV), que se define como la
suma de los volúmenes corriente, de reserva inspiratorio y de reserva espiratorio, es
decir, la cantidad de aire movilizable y capacidad vital forzada (CVF) es la máxima
cantidad de aire espirada durante una espiración forzada[1].
Por otra parte, cuando se considera el tiempo como factor importante, la
espirometría se llama dinámica y permite cuantificar volúmenes en función del
tiempo[4]; es decir, el volumen espiratorio forzado en el primer segundo (VEF1.0) o en
el tiempo en segundos que se considere adecuado (VEFX); el flujo espiratorio forzado
máximo (FEFMAX), el cual se mide por la pendiente entre los primeros 200 y 1200 ml de
la espiración forzada y; el flujo espiratorio forzado medio (FEFMED) que se mide
también por la pendiente del volumen espiratorio forzado, pero entre el 25 al 75% de la
CVF. Otros parámetros espirométricos de importancia son la relación VEF1.0/CV, o
índice de Tiffeneau, la relación VEF1.0/CVF y la relación FIFMED/FEFMED, donde
FIFMED se refiere al flujo inspiratorio medio.
De acuerdo a la Ley general de los gases, para expresar un volumen deben
mantenerse constantes la presión y la temperatura, ya que si estos cambian entonces
también lo hace el volumen. En consecuencia, en Fisiología Respiratoria, y de manera
estandarizada, las condiciones constantes que se establecen para expresar volúmenes y
flujos son las de presión atmosférica y la temperatura corporal del sujeto evaluado,
tomando en cuenta que el aire espirado está saturado con vapor de agua. Bajo estas
premisas, se dice que los volúmenes y flujos pulmonares están expresados en unidades
BTPS, de las siglas en inglés Body Temperature, ambient atmospheric Pressure and
Saturated with water vapor.
5
La interpretación de una espirometría depende de las características del sujeto,
entre las que se consideran el género, la edad, la estatura y el peso. Típicamente los
valores espirométricos de referencia se obtienen a partir de estudios poblacionales de
sujetos sanos, no fumadores[5]. Para cada parámetro espiratorio (PE), los valores
obtenidos se relacionan con las características del sujeto en una ecuación general que
sería:
PE=a + b·edad + c·talla + d· peso + e·talla2 + f·edad·talla+ …,
donde a, b, c, d, e, f son parámetros de proporcionalidad; obteniéndose además el error
estándar de la estimación (SEE) o desviación estándar de los residuos (RSD).
A partir de los volúmenes y flujos espirométricos obtenidos en un sujeto y
comparando sus resultados con los valores teóricos esperados o de referencia se han
establecido dos patrones espirométricos anormales: el patrón espirométrico obstructivo
y el patrón espirométrico restrictivo[6]. La Tabla I resume las características de estos
patrones funcionales anormales.
Tabla I. Comportamiento de volúmenes y flujos en las alteraciones funcionales espirométricas[6].
PARÁMETRO PATRÓN OBSTRUCTIVO PATRÓN RESTRICTIVO
VEF1.0 disminuido normal, aumentado, o
ligeramente disminuido
FEP reducido, o normal. normal, elevado o ligeramente
disminuida
FMME, FEM50 Y FEM 25 reducidos. elevados (o ligeramente
disminuidos)
CV normal o ligeramente reducida disminuida
CVF moderadamente reducida. disminuida
CVF/CVF reducida, por debajo del 70%. superior al 75% e incluso en
torno al 90%
Para los volúmenes espirométricos estáticos y dinámicos[7], se acepta que sus
valores son normales cuando corresponden al 80% o más de los valores teóricos; en
tanto que para flujos, y debido a su mayor variabilidad, se asume que el límite de
normalidad es entre 50 y 70% del valor teórico, de acuerdo a distintas sociedades
6
científicas sobre problemas respiratorios. La Tabla II resume el índice de gravedad para
el patrón obstructivo, tomando en cuenta a CVF o a VEF1.0.
Tabla II. Índice de gravedad del patrón obstructivo por CVF o
VEF1.0 de acuerdo a distintas sociedades científicas. SEPAR,
Sociedad Española de Neumología y Cirugía Torácica; ERS,
European Respiratory Society; ATS, American Thoracic
Society; BTS, British Thoracic Society[6].
La ATS surgió cuando un grupo de médicos[8] en 1905 decidieron que la mejor
manera de mejorar el cuidado para los pacientes con tuberculosis era compartir sus
experiencias y descubrimientos, con el paso del tiempo se convirtió en una sociedad
internacional dedicados al entendimiento clínico y científico de enfermedades
pulmonares y trastornos respiratorios. Se remarca a ésta sociedad porque es quizá la que
más influencia tiene en México y porque usualmente las sociedades latinoamericanas se
apegan a sus normas.
Antecedentes y Justificación
El espirómetro es el instrumento más utilizado para valorar la funcionalidad del
sistema respiratorio, así puede ser empleado como equipo para diagnóstico, monitoreo,
evaluación del progreso de un paciente o como instrumento para investigación
clínica[9]. En los últimos años la inclusión de espirómetros portables ha hecho que su
uso se extienda cada vez más, por lo tanto el uso de la técnica espirométrica se ha
convertido en un procedimiento estándar en prácticas externas al ambiente clínico[10].
Durante el estudio se debe asegurar que los valores obtenidos por éste sean lo más
confiables posibles; si la variabilidad de los resultados espirométricos puede ser
disminuida y la exactitud de las mediciones mejorada, los rangos para valores normales
pueden ser reducidos para que las anormalidades sean más fácilmente detectables[11],
valorando acertadamente las diferentes patologías pulmonares. En algunas patologías
pulmonares se necesita la repetitividad de varias pruebas por lo que si se cuenta con un
espirómetro inexacto resultará en una mala valoración del sujeto y por lo tanto en una
repercusión en su calidad de vida y en el posible tratamiento que se le podría dar en un
futuro.
Sociedad Leve Moderado Severo
SEPAR > 65 45-65 < 45
ERS > 70 50-69 < 50
ATS > 50 35-49 < 35
BTS 60-79 40-59 < 40
7
La ATS en 1987 publicó un documento para la estandarización de espirómetros,
documento que ha sido actualizado en 1994[4]. En el documento se mencionan los
requerimientos que debe de cumplir un equipo de espirometría, no importando el fin
con el que se ocupe y la importancia de contar con espirómetros que cumplan con
ciertos estándares. La exactitud y repetitividad de los sistemas de prueba es un factor
importante para obtener alta calidad en pruebas de funcionalidad pulmonar[12] .
La calibración del espirómetro comúnmente se realiza estáticamente utilizando
jeringas desde uno hasta tres litros, pero este método no permite evaluar las
características dinámicas del equipo. La calibración con la jeringa de tres litros requiere
la comprobación de que los espirómetros cumplen con una exactitud de ± 0.5%[4]. La
verificación se considera aceptable si se encuentra que la medición del volumen
permanece dentro de ± 3.5% del volumen introducido por la jeringa. Si la calibración no
cumple con estos limites, la calibración debe ser repetida o el mantenimiento del equipo
mejorado[13].
No obstante en pruebas reportadas por la ATS se menciona[4] que mediante la
calibración estática se obtuvieron errores de hasta el 25% durante la maniobra de
capacidad vital forzada al evaluar diferentes equipos comerciales. Los errores
obtenidos tendrán un impacto importante en el diagnóstico de personas con alguna
enfermedad en el sistema respiratorio, por lo que se debe asegurar la confiabilidad de
los espirómetros. Otra fuente importante de error como reporta Nelson et al[14]): más
del 25% de espirómetros tienen error en el software (aunque después de ser revisados
un número considerable de espirómetros que fallaron sus pruebas fueron encontrados
aceptables).
La ATS ha encontrado que la simulación de formas de onda definidas y
producidas por una bomba mecánica resulta ser muy útil para la evaluación de
espirómetros, por tanto la ATS adoptó 24 formas de onda[11] para dicha evaluación
dinámica. Recientemente se agregaron 26 nuevas formas de onda para que la evaluación
de los espirómetros resulte ser más completa. Frecuentemente muchos espirómetros
tienen errores que alteran los resultados de la prueba y se asume que la exactitud en la
medición es corregida por la calibración de los espirómetros, no obstante también puede
haber errores en la prueba debido a factores humanos[15].
Las enfermedades respiratorias se encuentran entre las principales causas de
mortalidad en México, donde las enfermedades del sistema respiratorio presentan un
8
número de 43361 defunciones en el año 2005[16], por lo que la confiabilidad en el
diagnóstico basado en el uso de la técnica de espirometría resulta recomendable[4].
El Instituto Nacional de Enfermedades Respiratorias (INER) es un punto de
referencia en Latinoamérica para el diagnóstico y tratamiento de enfermedades
respiratorias, el uso de la técnica de espirometría por tanto es una práctica
frecuentemente utilizada. En este sentido sería conveniente que el INER sea un punto
de referencia en calibración de espirómetros. Actualmente la calibración de dichos
equipos se realiza estáticamente por lo que no se prueba el desempeño dinámico pese a
contar ya con una plataforma para la calibración dinámica.
La técnica más usada para la calibración dinámica de espirómetros consiste en
una bomba mecánica que controla un sistema para el desplazamiento de determinado
volumen en el interior de un cilindro [17]. El uso de este tipo de sistemas tiene
deficiencias para reproducir las curvas debidas a la inercia que se tiene al momento de
realizar el desplazamiento, que se traduce en una mala capacidad para poder realizar
respuestas rápidas.
La actual declaración de estandarización desarrollada por la ATS enfatiza la
necesidad de prácticas de control de calidad para asegurar un rendimiento óptimo del
equipo[7]. Este control de calidad necesita un mínimo de requerimientos[4]: (1) registro
de los resultados de las calibraciones, (2) documentación de fallas y reparaciones que ha
recibido el equipo (3) fechas de actualización o cambios del software, (4) si el equipo es
reubicado los procedimientos de calibración deben ser repetidos antes de empezar con
alguna prueba.
Contar con un sistema de calibración dinámica confiable permitirá al INER
realizar la evaluación dinámica de los espirómetros ya que esta técnica actualmente no
se está implementando; de esta manera se podrán realizar pruebas que cumplan con los
estándares marcados por la ATS para una evaluación, asegurando la confiabilidad de los
sistemas para poder realizar un diagnóstico confiable. Así se podría tener la absoluta
seguridad de contar con espirómetros que entreguen mediciones confiables, ya que
como demostró Nelson et al.[14] al realizar la calibración estática de 62 espirómetros,
58 pasaron la prueba con un error menor de ± 3% del volumen introducido; mientras
que en la medición de formas de onda, sólo 35 se encontraron aceptables. Por lo que
concluyeron que la calibración estática para la validación de espirómetros es
insuficiente para asegurar una correcta medición en contraste con la generación de
9
formas de onda introducidas al espirómetro.
La plataforma a la que se hace referencia fue diseñada en la Universidad
Autónoma Metropolitana Unidad Iztapalapa (UAM-I) en 1994[18], aun cuando la
plataforma reproduce en principio las 24 formas de onda originales, las nuevas 26
formas de onda recientemente agregadas por la ATS no se consideran actualmente. Más
aún, el sistema de calibración requiere de un sistema de cómputo no actualizado para su
control. Así, cabe mencionar que el equipo fue desarrollado en 1994 por lo que funciona
con un sistema operativo poco utilizado actualmente y no compatible con los sistemas
actuales. Para su uso es necesario también una tarjeta de control insertada en una ranura
de expansión tipo ISA que resulta poco adaptable en sistemas actuales. Los
componentes del sistema(Pistón, motor de potencia, y computadora) se encuentran por
separado por lo que se necesita realizar varias conexiones antes de poder usar el
sistema. De esta manera, era necesario disminuir el número de conexiones a realizar en
el sistema para facilidad y comodidad del usuario.
Objetivo general.
Adecuar un sistema de control para la calibración dinámica de espirómetros que
permita la reproducción de las 50 curvas de volumen y de flujo establecidas por la ATS.
Objetivos particulares
• Adecuar computacionalmente un sistema de control para un motor de pasos
acoplado a un pistón mecánico para la calibración dinámica de espirómetros.
• Desarrollar un sistema que incorpore el sistema de control en una plataforma
actualizada, robusta, independiente y fácilmente conectable a través de una
interfaz serial y estándares vigentes para que el sistema sea incorporado como
un módulo del calibrador.
10
Metodología
Para adecuar el sistema a las necesidades de calibración se tuvieron que evaluar
varias tarjetas que permitieran el control del motor a pasos permitiendo la generación de
trenes de pulsos a diferentes frecuencias.
Por la facilidad para el diseño de prototipos, la plataforma final elegida para ese
propósito fue una tarjeta Arduino MEGA[19]. La tarjeta incorpora un módulo para la
modulación de ancho de pulso, PWM por sus siglas en inglés que permite la generación
de pulsos a diferentes frecuencias. El tamaño de frecuencias que permite generar
fácilmente se controla con el rango de 16 bits; con una frecuencia máxima de 65535
Hertz y una frecuencia mínima de 32 Hertz.
Las 50 formas de onda recomendadas por la ATS son archivos presentados en
forma de una lista de datos con una diferencia de 10 ms entre dato y dato para la formas
de onda de la 1 a la 24, que representan el volumen instantáneo a un tiempo
determinado y una diferencia de 2 ms para las nuevas 26 que representan el flujo
instantáneo en un tiempo determinado. Si se obtiene la diferencia de volumen entre
datos y teniendo en cuenta que se puede obtener el desplazamiento del pistón para cada
paso es posible obtener el desplazamiento en volumen por cada paso; de esa manera se
puede calcular el número de pasos necesarios para desplazar el pistón un volumen
requerido.
La frecuencia máxima teórica a generar para la curva número 15 con mayor
diferencia entre datos tomando en cuenta 25000 pasos por revolución fue de
aproximadamente 310000 Hertz. Es necesario remarcar que a 25000 pasos por
revolución el pistón es capaz de generar volúmenes mínimos teóricos de 31.13 µL, por
paso, tomando en cuenta que al medir el avance por revolución con la tarjeta
seleccionada fue de 2.40 ± 0.005 cm. Se decidió que sería recomendable disminuir el
número de pasos por revolución a 5000. Al diminuir en número de pasos/rev no es
necesaria una alta resolución en el sistema debido a que se reporta que los espirómetros
como recomendación deben medir por lo menos cambios de volumen de 0.050 L[4]. Al
disminuir la resolución, el cambio mínimo capaz de generar el sistema es de 155.66 µL.
Por tanto, si se avanza 2.40 cm con una resolución de 5000 pasos por revolución por
cada paso se avanza en el pistón 0.00048cm. Si se calcula el área del pistón se puede
obtener el volumen calculado y así se obtiene un desempeño considerablemente mejor a
11
las recomendaciones propuestas por la ATS, por ejemplo el volumen mínimo capaz de
generar el pistó. Para un motor que avanza una revolución cada 5000 pasos se necesita
una frecuencia máxima de 62000 Hertz, misma que es posible generarse con la tarjeta
Arduino MEGA.
Con la tarjeta propuesta se necesita una Interfaz de usuario para un sistema de
cómputo para controlarla, que permita elegir las curvas a reproducir y mostrar
información acerca de las curvas que facilite al usuario su uso. Los desarrolladores de
Arduino recomiendan un lenguaje y entorno para su programación llamado
Processing[20], en esta plataforma se cuentan ya con ejemplos del funcionamiento y
comunicación entre la tarjeta y el entorno.
El sistema propuesto quedó entonces de la siguiente manera.
Figura I) Sistema propuesto conectado
En la computadora se creó la Interfaz de usuario bajo el entorno Processing.
Dentro de la carpeta de la Interfaz gráfica de usuario se tienen las 50 curvas propuestas
12
por la ATS. Las primeras 24 son curvas de volumen por lo que se generaron en Matlab
curvas de flujo y archivos de frecuencias correspondientes. Las nuevas 26 curvas
agregadas por la ATS se obtuvieron a partir del flujo en las que la diferencia de tiempo
entre dato y dato es de 2 ms. Se tuvo que generar para cada curva, un nuevo archivo que
tuviera la diferencia de 10 ms entre datos, ya que la tarjeta producía un error
considerable al hacer el cambio de frecuencias en el intervalo de 2 ms. Al hacer esto se
generaron los correspondientes archivos de curvas de volumen y los datos de
frecuencias. Los diferentes archivos creados (Volumen, flujo y frecuencias) se crearon
para poder manejar los diferentes tipos de datos en Processing ya que la manipulación
resulta ser más sencilla una vez creados estos archivos a partir de Matlab. Las curvas de
volumen y flujo se utilizaron para graficar las curvas dentro de la Interfaz de usuario y
los archivos que contienen las frecuencias para la generación de curvas se crearon
porque esencialmente son los datos que se transmiten a la tarjeta para que sean
almacenados dentro de ésta. Cada dato es ocupado para la generación de frecuencias y
de esta manera la reproducción de la curva por medio del pistón.
La tarjeta cuenta con una memoria RAM de 8 KBytes. Cada dato con un valor
de frecuencias se dividió en dos componentes de un byte (parte alta y parte baja), la
división se realizó porque el protocolo de transmisión serial RS232 que ocupa la tarjeta
Arduino transmite 8 bits y cada dato de frecuencia requiere de 16 bits. Tomando en
cuenta que la curva con más datos es de aproximadamente 2100 datos; al transmitir los
datos de la frecuencia a la memoria RAM de la tarjeta se ocupan como máximo 4.2
KBytes, esto significa que sólo es posible transmitir una curva a la vez de la
computadora a la tarjeta Arduino.
A los archivos de datos de frecuencias generados en Matlab se les agregó un
dato extra. Al principio del archivo se añadió la longitud de los datos; es decir, el
número de datos de cada curva. Esta información es necesaria para saber cuando se
debe detener la transmisión.
13
Para explicar el funcionamiento y la manera de comunicarse entre la Interfaz de
usuario creada en Processing y la tarjeta Arduino MEGA se presentan dos diagramas de
flujo.
Diagrama I) Diagrama básico para la interfaz creada en Processing.
El diagrama I muestra el flujo que el usuario sigue para realizar la calibración de un
espirómetro usando la Interfaz gráfica de usuario en Processing.
Diagrama II) Diagrama básico para la tarjeta Arduino MEGA.
14
El diagrama de la figura 3 muestra el diagrama de la comunicación entre la Interfaz
gráfica de usuario y la tarjeta para la reproducción de las diferentes curvas.
Figura II) Ventana principal.
Figura III) Ventana de calibración.
Para poder realizar la calibración, la Interfaz gráfica de usuario tiene los
15
siguientes componentes: al abrir la Interfaz gráfica de usuario(Figura II) se tienen dos
botones en la parte superior izquierda(Salir y Calibración). Al seleccionar “Salir”; se
cierran todas las ventanas y se sale de la aplicación, al seleccionar “Calibración” se
abre una nueva ventana para la calibración(Figura III).
En la nueva ventana se tiene una sección para elegir la curva a reproducir, por
defecto se carga la curva 1 al abrir la ventana de calibración. Se agregó también un área
para información de la curva en la parte superior. Se tienen dos áreas para el graficado
del volumen y flujo de cada curva seleccionada. Se tienen tres botones; (1)“Cargar
curva”, al ser seleccionado se cargan los datos (Volumen y flujo) y se transmiten los
datos de frecuencia de la curva seleccionada. (2) “Empezar”, si se selecciona se empieza
la reproducción de la curva y se produce un tiempo de espera para no realizar ninguna
tarea mientras se reproduce la curva. (3) “Regresar pistón” al ser seleccionado se
transmite continuamente un dato que mientras se mantenga éste presionado, el pistón
regresará a una velocidad de 4KHz, es decir, aproximadamente 1.4 rev/seg y continuará
retrocediendo hasta que se deje de presionar el botón.
Para informarle al usuario las tarea que se están realizando, existe un área en la
parte inferior derecha que le informa al usuario que curva ha sido seleccionada. Debajo
hay una línea de texto con una elipse que cambia de color entre rojo, verde y naranja
para informarle al usuario si la curva se esta transmitiendo, la curva ha sido transmitida
exitosamente y si esta lista su reproducción. Para saber si se ha terminado la
reproducción, o si el pistón esta regresando a su posición inicial. Cuando la línea de
texto indica que la curva se esta transmitiendo y que se ha terminado la reproducción l
elipse de encuentra de color rojo, para indicar que la curva se cargó exitosamente
cambia a color verde ,y para indicar que el pistón esta retrocediendo cambia a naranja.
(Una explicación más completa del funcionamiento de la Interfaz de usuario y la tarjeta
Arduino ir a ANEXO I)
Corrección del error
Se encontró una fuente considerable de error al hacer la generación de
frecuencias y más si estas frecuencias eran altas. Se hizo la reproducción de 10 curvas
para observar el error. El error encontrado tenía una clara relación con el volumen
máximo de la curva que también está directamente relacionado con la frecuencia a
16
generar. Se encontró un índice de correlación de 0.9906 entre volumen máximo de las
curvas y el porcentaje de error como se muestra en la siguiente tabla.
Tabla III) Comportamiento de las 10 curvas reproducidas y el porcentaje de error.
No. Curva Volúmen máximo
desplazado (L.) Volúmen máximo
teórico (L.) Diferencia de Volúmen (L.)
Porcentaje de error
Curva 24 1.264 1.236 0.027 2.201 Curva 4 1.540 1.499 0.041 2.667 Curva 8 2.059 1.993 0.066 3.207
Curva 12 2.067 2.002 0.065 3.161 Curva 11 2.853 2.734 0.119 4.172 Curva 7 3.324 3.168 0.155 4.678 Curva 3 3.664 3.498 0.166 4.535
Curva 14 3.988 3.785 0.203 5.096 Curva 10 4.053 3.842 0.210 5.204 Curva 6 4.232 4.011 0.220 5.217
Para corregir esta fuente de error se modeló el comportamiento.
Gráfica I) Modelado del volumen máximo y el porcentaje de error.
Al observar una tendencia lineal del comportamiento del error respecto al
volumen máximo de cada curva se puede modelar el error con una ecuación polinomial
de primer orden que se muestra en la parte superior de la gráfica; donde “y” representa
el porcentaje de error y “x” el volumen máximo de cada curva en litros. Al cargar el
dato de cada curva de volumen en la Interfaz de usuario se puede obtener el máximo de
ésta y así calcular un factor de corrección: se obtiene el porcentaje de error “y”
obteniendo “x” en la Interfaz, el factor de corrección(Fcorr.) se obtuvo de acuerdo a un
ajuste lineal con mínimos cuadrados.
17
Resultados y discusión
Los resultados obtenidos utilizando Factor de corrección se realizaron midiendo
la posición inicial del émbolo y la posición final después de la reproducción de cada una
de las diferentes curvas, se hizo la reproducción de cada curva en 3 ocasiones para
obtener el promedio de las mediciones y de esa manera poder reducir el error
ocasionado por la medición. Se realizaron 150 reproducciones por ser 50 curvas a
excepción de aquellas que el sistema no pudo reproducir debido a la pérdida de torque
del motor por la frecuencia tan alta que tenía que ser usada en un lapso de tiempo muy
pequeño, el cual se explica más adelante. El cálculo del volumen desplazado se realizó
calculando el área(A) del cilindro y el desplazamiento del pistón (d); V=A*d.
Tabla IV) Promedio de los resultados obtenidos para cada curva ya con corrección.
Número de curva
Distancia inicial(cm)
Distancia final(cm)
Diferencia (cm)
Volumen obtenido(L)
Volúmen teórico(L) Diferencia(L)
Porcentaje de error
1 8.7 26.86 18.16 5.891 6.0 0.109 1.811 2 3 8.7 19.48 10.78 3.496 3.4983 0.002 0.038 4 8.7 13.41 4.71 1.529 1.4993 0.030 2.018 5 8.7 24.45 15.75 5.107 5.1324 0.024 0.483 6 8.7 21.10 12.40 4.021 4.0112 0.010 0.249 7 8.7 18.55 9.85 3.194 3.1685 0.025 0.813 8 8.7 15.05 6.35 2.059 1.9932 0.066 3.314 9 8.7 23.51 14.81 4.804 4.8539 0.048 1.009
10 8.7 20.53 11.83 3.837 3.8427 0.005 0.136 11 8.7 17.15 8.45 2.740 2.7347 0.005 0.203 12 8.7 15.01 6.31 2.048 2.0020 0.046 2.318 13 8.7 23.70 15.00 4.864 4.8964 0.032 0.653 14 8.7 20.38 11.68 3.788 3.7855 0.003 0.087 15 16 8.7 25.30 16.60 5.383 5.4577 0.074 1.364 17 8.7 26.40 17.70 5.739 5.8329 0.092 1.593 18 8.7 22.08 13.38 4.340 4.3425 0.002 0.055 19 8.7 20.90 12.20 3.956 3.9350 0.021 0.543 20 21 22 8.7 20.65 11.95 3.875 3.8574 0.017 0.463 23 8.7 19.23 10.53 3.415 3.4191 0.003 0.094 24 8.7 12.60 3.90 1.264 1.2369 0.027 2.250 25 8.7 22.33 13.63 4.421 4.3499 0.071 1.638 26 27 8.7 13.70 5.00 1.621 1.6147 0.006 0.418 28 8.7 14.10 5.40 1.751 1.7426 0.008 0.492
18
29 8.7 16.93 8.23 2.669 2.6760 0.006 0.224 30 8.7 13.55 4.85 1.572 1.5848 0.011 0.756 31 8.7 13.36 4.66 1.513 1.5163 0.002 0.194 32 8.7 13.16 4.46 1.448 1.4526 0.004 0.283 33 8.7 16.80 8.10 2.626 2.6174 0.009 0.357 34 8.7 15.80 7.10 2.302 2.2844 0.018 0.791 35 8.7 17.10 8.40 2.724 2.7070 0.017 0.630 36 8.7 25.85 17.15 5.561 5.5608 0.0008 0.014 37 8.7 17.95 9.25 2.999 2.9768 0.0229 0.769 38 8.7 17.80 9.10 2.951 2.9312 0.019 0.677 39 8.7 20.45 11.75 3.810 3.8128 0.002 0.061 40 8.7 17.50 8.80 2.853 2.8387 0.015 0.531 41 8.7 18.05 9.35 3.032 3.0547 0.022 0.738 42 8.7 23.90 15.20 4.929 4.9682 0.038 0.784 43 8.7 20.10 11.40 3.696 3.7070 0.010 0.271 44 8.7 25.80 17.10 5.545 5.6552 0.109 1.941 45 8.7 12.63 3.93 1.275 1.3061 0.030 2.339 46 8.7 14.45 5.75 1.864 1.8712 0.006 0.348 47 8.7 22.33 13.63 4.421 4.4487 0.027 0.618 48 8.7 17.20 8.50 2.756 2.7315 0.024 0.914 49 50
La diferencia presentada en la columna 7 expresa el volumen en litros de
desviación respecto al volumen teórico que debe entregar el sistema; es decir, con
respecto al volumen teórico en los datos de las curvas recomendadas por la ATS. El
promedio de esta diferencia para las curvas fue de 0.02643L ó 26.43mL. La máxima
diferencia encontrada fue de 0.109L ó 109 mL para un volumen de CVF teórico de
5.655L (que representa un porcentaje de error de 1.94% con respecto al volumen
teórico). El máximo porcentaje de error encontrada corresponde a la curva 8 con un
valor de 3.31%. El promedio del porcentaje de error de las curvas fue de 0.82%.
Existen curvas que en la reproducción se encontró un error mayor, teniendo la curva 8
el mayor error como ya se mencionó, esto se debe a que existe un error inherente en la
tarjeta al hacer el cambio en la generación de las curvas. Una posible solución podría
conseguirse si la corrección del error se estima usando una cantidad mayor de curvas.
Conclusiones
La respuesta obtenido por el pistón fue muy aceptable tomando en cuenta que se
reprodujeron 43 de las 50 curvas. Las 7 curvas que no se
reprodujeron(2,15,20,21,26,49,50) como ya se mencionó, fue debido a que se tenía que
19
reproducir un flujo muy grande en un lapso muy pequeño. Por ejemplo en la curva 20
que tiene un CVF de 2.88 L se necesita alcanzar un flujo de 6.74 L/s en 80 ms, por lo
que el pistón sufre una pérdida de torque sin poder responder bajo esas condiciones.
El promedio de diferencia entre el volumen teórico y el volumen medido fue de
26.43 ml, por lo que si se toma en cuenta que los espirómetros deben de poder medir
una diferencia mínima de 0.050L ó 50mL y siendo el promedio de porcentaje de error
de todas las curvas de 0.82% se encuentra aceptable y cumple con los requerimiento
necesarios y recomendaciones mencionadas por la ATS.
Cabe mencionar que faltaría evaluar los flujos generados para la reproducción de
cada curva, al evaluar los flujos se podría observar si la reproducción cumple con los
tiempos requeridos de la generación de la curva entre dato y dato, es decir, que para
cada diferencia entre dato, el intervalo de tiempo es de 10 ms.
20
Bibliografía [1] Ganong. W. Fisiología moderna. México D.F., El Manual Moderno, 2002, Pags. 693-710. [2] Hankinson JL, State of the Art in Spirometric Instrumentation. Chest. 1994; 97: 258-259. [3] INER. ¿Qué es la espirometría?.Consultado el 17/03/2010. Disponible en: http://portal.iner.gob.mx/inerweb/GEN_cont_esp.jsp?contentid=3282&version=1&channelid=3 [4] American Thoracic Society. Standardisation of spirometry. Am Rev Respir Dis 1994; 26:319-338 [5] Liou GT, Kanner ER. Spirometry. Clinic Rev Allerg Inmmunol 2009; 37:137-152. [6] Lucas RP, Marañon G. Patrones diagnósticos en la espirometría. Consultado el 20/09/2010 Disponible en: http://www.socalpar.es/cursos_documentos/patrones_diagnosticos_espirometria.htm [7] Azezli F.AD, Bayraktaroglu T, Ece T, Kutluturk F, Orhan Y. Static Lung Volume in Patients wth Cushing’s Disease. Exp Clin Endocrinol Diabetes. 2008; 116: 53-57. [8] American thoracic Society. Consultado el 20/3/2010. Disponible en: http://www.thoracic.org/
[9]MacIntyre NR, Spirometry for the diagnosis and management of chronic obstructive pulmonary disease. Respiratory Care. 2009; 54(8): 1050-1057.
[10] Van Den Boom G, Van Der Star M, Folgering H, Van Schayck CP, Van Weel C. Volume calibration alone may be misleading. Respiratory Medicne 1999. 93, 643-647.
[11] Hankinson JL., Reynolds JS., Das MK., Viola JO., Method to produce American Thoracic Society flow-time waveforms using a mechanical pump. European Respiratory Journal. 1997; 10: 690-694. [12] Jensen RL et al. Instrument Accuracy and Reproducibility in Measurement of Pulmonary Function. Chest Journal. 2007; 132: 388-395.
[13] Meredith CM., Shade D., Wise RA. Spirometer Calibration Checks. Chest Journal. 2007; 131: 1486-1493.
[14] Nelson SB, Gardner RM, Crapo RO, Jensen RL. Performance evaluation of contemporary spirometers. Chest.1990; 97: 288-297.
[15] Townsend, et. al. Is My Lung Function Really That Good? Spirometer Calibration Checks. Chest Journal. 2004; 125: 1902-1909.
[16] Estadísticas Demográficas, Defunciones generales. Editado por SSA, INEGI. 2005.
21
[17] Miller MR, Jones B, Xu Y,Pedersen OF, Quanjer PH. Peak Expiratory Flow Profiles Deliver by a Mechanical Pump. American Journal of Respiratory and Critical Care Medicine. 2000; 162: 1887-1896.
[18] Echeverria JC, González R, Carrasco S. Sistema Controlado por Computadora para la Simulación de Curvas Volumen. Rev. Mex. Ing. Biomédica. Vol. XV. No.2. 1994.
[19] Arduino. Consultado el 20/1/2011. Disponible en: http://arduino.cc/en/Tutorial/HomePage. [20] Processing. Consultado el 20/1/2011. Disponible en: http://processing.org/
22
ANEXO I
Diagrama III) Diagrama completo de cómo trabaja la Interfaz en Processing.
23
Diagrama IV) Diagrama completo de la interacción de la Interfaz con la tarjeta Arduino La interacción entre la Interfaz gráfica de usuario y la tarjeta Arduino MEGA
funciona de la siguiente manera: Cuando se abre la ventana principal de
calibración(figura IV) se cargan las librerías que se ocuparon; la librería de transmisión
serial(processing.serial.*) y la librería de la Interfaz gráfica de usuario, GUI por sus
siglas en inglés (guicomponents.*), se cargan los componentes(Imágenes, botones) y se
inicializan las variables a ocupar.
24
Se tiene dos opciones de botones (Salir y Calibración), si se selecciona el botón
Salir se cierran la ventana que estén abiertas y sale de la aplicación. Al presionar el
botón de Calibración se crea una nueva ventana que servirá para la calibración de
espirómetros y se cargan los componentes de la nueva ventana. Por defecto al abrir la
ventana de calibración se carga la curva número 1 (Volumen y flujo).
Se tienen 4 opciones para realizar en la ventana: La primer opción es:
seleccionar curva a reproducir, al seleccionar una de las 50 curvas, la variable “NCurva”
cambia su valor al de la curva seleccionada.
La siguiente opción es “Cargar curva”, al ser seleccionado, los archivos que
contienen los datos de volumen y flujo del valor de ”NCurva” se cargan, se calculan los
máximos de flujo y volumen para delimitar y mapear las gráficas a los valores máximos
al igual que el tiempo de duración de la curva. Para indicar esto, el texto que indica la
curva seleccionada cambia al valor de la curva seleccionada y al valor de “NCurva”, se
grafican las curvas de volumen y flujo. Se obtienen los valores para desplegar en la
información de la parte superior y se muestran. Se cambia el valor de “NuevaCurva” a 1
que indica que se debe trasmitir una nueva curva a la tarjeta, al cambiar este valor
comienza el “handshake” por lo que se manda el valor “b00000001” y se sigue
mandando hasta que se recibe el valor ”A”, al recibir “A” se cargan los datos de la
frecuencia y se calcula el factor de corrección. El factor de corrección también contiene
el cálculo para la transformación de ATPS(Ambient Temperature and Presure Satured
with water vapor) a BTPS una vez seleccionadas la temperatura y presión
correspondientes. Para poder transmitir los datos, al cargarlos se cargan como tipo
cadena por lo que se deben de transformar a datos de tipo entero para poder separar la
parte alta y parte baja. Para separar la parte alta se realiza una “and” lógica del dato con
el valor “0xFF00” y se recorre 8 lugares realizando una división entre 255. Para separar
la parte baja de realiza una “and” lógica del dato con el valor “0x00FF”. Se pregunta
constantemente si el valor de la iteración de los datos a transmitir es mayor a la longitud
de los datos; si es así el valor de “Nueva curva” cambia a 2 indicando que se acabo de
transmitir, la elipse cambia a color verde mostrando el texto que indica que la curva se
ha cargado exitosamente, y se espera la siguiente orden. Si no ha acabado de transmitir
los datos se multiplican por el factor de corrección, se transmite la parte baja, después la
parte alta y se incrementa el valor de la iteración. Después de transmitir la parte alta
25
vuelve a preguntar si el valor de la iteración es mayor a la longitud de la curva.
La tercera opción en la ventana de calibración es “Empezar”, si se selecciona se
transmite el valor ”b00000010” que le indica que debe cambiar la terminal de dirección
de la tarjeta(Terminal 52) a “1” para que el desplazamiento sea hacia delante. Así se
empiezan a generar los trenes de pulsos con la información previamente recibida para
comenzar la reproducción.
La cuarta opción es “Regresar pistón”, se transmite el valor ”b00000011”
mientras el botón se mantenga presionado que le indica a la tarjeta que debe generar una
frecuencia de 3 KHz y en la terminal de dirección indicarle que sea “0” para que el
embolo se desplace hacia atrás a la frecuencia antes mencionada, aproximadamente 1.2
rev/seg.
La figura V muestra la interacción de la tarjeta Arduino con la interfaz para
poder reproducir la gráfica seleccionada. Al conectar la tarjeta se inicializan las
variables a ocupar, las terminales que se usarán como salida y se configura la velocidad
de transmisión a 19200 baudios. La tarjeta espera indicaciones preguntando si hay algún
dato disponible en el buffer serial, al llegar un dato pregunta si es “b00000001” ,
“b00000010” o si es “b00000011”. Si el dato recibido es “b00000001” envía una “A”
que significa que esta listo para recibir y que se ha logrado exitosamente el
“handshake”. Se cambia el valor boleano de “ControlReci” a verdadero para entrar al
método de recibir lo que indica que el siguiente dato será la parte baja, para indicar esto,
se inicia el valor de “Control” a 0. Al leer la parte baja el valor de “Control” cambia a 1
para indicar que el siguiente dato a recibir será la parte alta. Se juntan los datos de la
parte alta y parte baja que indican el valor de la frecuencia y se guarda en el vector
Frecuencia[i] donde i indica el número de dato. A continuación se incrementa i, la
variable “Control” cambia a 0 para indicar que el siguiente dato es la parte baja. Se
guarda el primer dato, Frecuencia[1] en la variable “LongitudF” que indica la longitud
de los datos a recibir y se pregunta si la iteración i es mayor que el valor de
“LongitudF” si es así significa que se ha completado la transmisión y regresa a esperar
otro dato de instrucción, si i es menor que “LongitudF” la recepción de datos continua.
Al recibir el valor “b00000010” le indica a la tarjeta que debe reproducir los
datos recibidos, se prende el led de la terminal 13 que indica que se empezó la
reproducción. Se inicializa x, que es el número de datos a reproducir, entra en un ciclo
26
“while” preguntando si x es mayor a “LongitudF”, si es así la reproducción se ha
completado, se apaga el led y se le asigna el valor de 0 a “LongitudF” para evitar que se
pueda reproducir la curva hasta que se transmita otra o la misma por el usuario. Si se
esta reproduciendo la curva lo que significa que previamente se selecciono el botón
“Empezar” en la Interfaz gráfica de usuario y que x no es mayor que la variable
Longitud F, se pregunta si el dato en Frecuencia[x] es 0, si es así, se llama una función
para no generar señal ”noTone”, se espera 10 ms. que es el periodo entre datos. Si
Frecuencia[x] es diferente de 0 se llama la función “Tone” con el valor de la frecuencia
en ese momento la cual genera una señal cuadrada con el valor de frecuencia del vector
Frecuencia[x] de duración de 10 ms. y se espera el siguiente valor de la frecuencia.
Si el dato recibido es “b00000011”, entra en un método que genera una tren de
pulsos de 3 KHz durante 40 ms y cambia la terminal de dirección a 0. Al recibirse
varios datos con el mismo valor la señal que se genera se prolonga y provoca que el
pistón se desplace en reversa.