sistema holter de aquisição e processamento contínuo do ...e7%e3o.pdfo eletrocardiograma é...

61
Sistema Holter de Aquisição e Processamento contínuo do Eletrocardiograma através de telefone celular Guilherme José Nunes Carvalho Dissertação para obtenção do Grau de Mestre em Engenharia Eletrotécnica e de Computadores Júri Presidente: Prof. Carlos Filipe Gomes Bispo Vogal: Prof. Rodrigo Martins de Matos Ventura Orientador: Prof. João Miguel Raposo Sanches Outubro de 2011

Upload: others

Post on 15-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

Sistema Holter de Aquisição e Processamento contínuo do Eletrocardiograma através de telefone celular

Guilherme José Nunes Carvalho

Dissertação para obtenção do Grau de Mestre em

Engenharia Eletrotécnica e de Computadores

Júri

Presidente: Prof. Carlos Filipe Gomes Bispo Vogal: Prof. Rodrigo Martins de Matos Ventura Orientador: Prof. João Miguel Raposo Sanches

Outubro de 2011

Page 2: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

I

Agradecimentos

Voltar a estudar duas décadas após a conclusão de um curso, é algo que se apresenta a

todos nós como um enorme desafio, não só porque iremos abordar e desenvolver um conjunto de

novos conceitos e conhecimentos, para os quais é imprescindível dedicarmos o devido tempo, mas

também pela necessidade de conciliação horária, entre as atividades académicas e o

desenvolvimento diário da nossa vida pessoal e profissional.

Aos meus pais, Guilherme e Sofia Carvalho, pela força e apoio que incessantemente me

dedicaram durante esta nova fase da minha vida. Este momento também vos pertence.

À minha namorada, Andréa Silva, pelo amor, força e motivação que sempre me

transmitiu, em todos os momentos deste meu projeto.

Ao professor João Sanches, pela sua dedicação e forma contagiante com que nos

envolve no dia-a-dia, que nos desperta e estimula para a conquista de novas ideias.

Aos meus colegas da Mobile Team e a todos os meus amigos, pela curiosidade,

interesse e força que me transmitiram.

Obrigado!

Page 3: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

II

Resumo

Atualmente existe no mercado uma enorme variedade de equipamentos de

monitorização e análise de sinais fisiológicos. Em todos estes equipamentos, são semelhantes os

princípios básicos de aquisição dos sinais, contudo, a forma como os sinais são analisados,

processados e a informação disponibilizada, varia muito de equipamento para equipamento, abrindo

assim oportunidades de introdução de novos produtos no mercado.

Associando a estas oportunidades, a difusão generalizada de telemóveis com elevada

capacidade de armazenamento e de processamento, formulou-se o objetivo da presente dissertação,

desenvolver e implementar um sistema de aquisição e processamento contínuo do Eletrocardiograma

(Holter) para telemóvel.

Neste trabalho, foram desenvolvidas duas aplicações. A primeira aplicação (mHolter),

corre num telemóvel Nokia com o sistema operativo Symbian S60. Efetua a aquisição e

processamento em tempo real do eletrocardiograma, identificando os artefactos e detetando

possíveis cenários de arritmias, com recurso a um filtro de Kalman.

A segunda aplicação (oHolter) permite visualizar o eletrocardiograma num computador

pessoal, disponibilizando ao utilizador um conjunto estendido de funcionalidades de procura e de

visualização dos registos efetuados pelo mHolter. A linguagem de programação utilizada no

desenvolvimento de todo o projeto foi o Python (versão 1.9.7 para S60 e 2.5.4 para Windows).

Palavras-chave: ECG, Eletrocardiograma, Holter, Telemóvel, Arritmia, Kalman, filtragem

Page 4: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

III

Abstract

There is currently available in the market, a huge variety of equipment for the monitoring

and analysis of physiological signals. In all these devices, the basic principles of signal acquisition are

similar, however, the way signals are analyzed, processed and information is provided, varies greatly

for each equipment, thus opening opportunities for introducing new products in the market.

Associating to these opportunities, the widespread diffusion of mobile phones with high

storage and processing capacity, it was formulated the goal of this thesis, develop and implement a

continuous ECG acquisition Holter system for mobile phones.

In this project, two applications were developed. The first application (mHolter) runs on a

Nokia mobile phone with Symbian S60. The application performs the acquisition and real-time

processing of the electrocardiogram, identifying artifacts and detecting possible scenarios of

arrhythmias, by recurring to a Kalman filter.

The second application (oHolter), displays the ECG on a personal computer, providing

the user an extended set of searching and viewing functionalities, based in the records provided by

the mHolter application. Python programming language was used for the full project development

(version 1.9.7 for S60 and 2.5.4 for Windows).

Keywords: ECG, Electrocardiogram, Holter, Mobile phone, Arrhythmia, Kalman, filtering

Page 5: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

1

Índice

Agradecimentos ........................................................................................................ I

Resumo ..................................................................................................................... II

Abstract ................................................................................................................... III

Índice ........................................................................................................................ 1

Índice de Figuras...................................................................................................... 3

Índice de Tabelas ..................................................................................................... 5

Abreviaturas ............................................................................................................. 6

1 Introdução .......................................................................................................... 7

1.1 Motivação e Objetivos.......................................................................................... 8

1.2 Estrutura da Dissertação ..................................................................................... 8

2 Fisiologia elétrica do Sistema Cardíaco......................................................... 10

2.1 O Coração ......................................................................................................... 10

2.2 O Eletrocardiograma (ECG) ............................................................................... 11

2.3 O Dispositivo Holter ........................................................................................... 12

3 Arquitetura e Descrição do Sistema ............................................................... 14

3.1 Arquitetura Geral do Sistema ............................................................................. 14

3.2 Cinta Cardíaca ................................................................................................... 15

3.3 Módulo de Aquisição ......................................................................................... 15

3.4 Interface de Programação (API) ........................................................................ 16

3.4.1 Estrutura Base das Mensagens ..................................................................... 16

3.4.2 Mensagens de streaming (periódicas) ........................................................... 17

3.4.3 Dimensionamento do buffer de receção (ECG) ............................................. 19

3.5 Telemóvel (plataforma base da aplicação mHolter) ........................................... 20

Page 6: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

2

3.6 Computador Pessoal (plataforma base da aplicação oHolter) ........................... 21

4 Aplicações e Algoritmos de Processamento ................................................. 22

4.1 Aplicação mHolter .............................................................................................. 22

4.2 Interface Bluetooth ............................................................................................. 23

4.3 Interface com o Utilizador .................................................................................. 25

4.4 Gravação da Sessão ......................................................................................... 26

4.5 Deteção de Picos R do Complexo QRS ............................................................. 28

4.6 Deteção e Processamento de Artefactos ........................................................... 29

4.7 Interpolação do sinal ECG ................................................................................. 30

4.8 Filtro de Kalman................................................................................................. 32

4.9 Deteção de Arritmias ......................................................................................... 35

4.10 Geração de Alarmes ...................................................................................... 36

4.11 Aplicação oHolter .......................................................................................... 37

5 Apresentação e Análise dos Resultados ....................................................... 40

5.1 Aquisição e gravação do Eletrocardiograma ...................................................... 40

5.2 Deteção de Picos R do Complexo QRS ............................................................. 41

5.3 Deteção e Processamento de Artefactos ........................................................... 42

5.4 Interpolação do sinal ECG ................................................................................. 45

5.5 Filtro de Kalman................................................................................................. 46

5.6 Deteção de arritmias .......................................................................................... 52

6 Conclusões ...................................................................................................... 56

7 Referências ...................................................................................................... 57

Page 7: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

3

Índice de Figuras

Figura 1 - Distribuição das maiores causas de morte (fonte: Global Atlas on cardiovascular disease prevention and control) ................................................. 7

Figura 2 - O coração (fonte: Manual MERCK - Biblioteca Médica online) .............................. 10

Figura 3 - Sístole e diástole do coração (fonte: Manual MERCK - Biblioteca Médica online) ................................................................................................................ 11

Figura 4 - Ondas que compõem o eletrocardiograma ............................................................. 12

Figura 5 - Exemplo de aplicação do Holter (fonte: Manual MERCK - Biblioteca Médica online) ................................................................................................... 13

Figura 6 - Arquitetura geral da solução .................................................................................... 14

Figura 7 - Cinta cardíaca Zephyr Smart Fabric ....................................................................... 15

Figura 8 - Módulo de aquisição Zephyr BioHarness BT .......................................................... 15

Figura 9 - Conjunto módulo de aquisição e cinta cardíaca ..................................................... 16

Figura 10 - Estrutura de dados base das mensagens ............................................................. 17

Figura 11 - Exemplo: streaming do tipo “General Data”. ......................................................... 18

Figura 12 - Estrutura do pacote de streaming "ECG Waveform" ............................................ 19

Figura 13 - Codificação de cada amostra ECG (a 10 bits cada) ............................................. 19

Figura 14 - Diagrama de blocos da aplicação mHolter ........................................................... 23

Figura 15 - Pedido de pacotes periódicos (ECG Waveform) .................................................. 24

Figura 16 - Interface de utilização da aplicação mHolter ........................................................ 25

Figura 17 - Diagrama de blocos do mHolter e identificação dos sinais relevantes ................ 27

Figura 18 - Formato de gravação do mHolter .......................................................................... 27

Figura 19 - Relação entre ritmos cardíacos e o tipo de atividade (fonte: primefit.com - Measuring Your Maximum Heart Rate) .......................................................... 29

Figura 20 - Exemplo de sinal ECG a ser interpolado .............................................................. 31

Figura 21 - Resultado da interpolação efetuada sobre o sinal ECG ....................................... 32

Figura 22 - Etapas da filtragem de Kalman ............................................................................. 33

Figura 23 - Algoritmo de aferição da estabilidade do sinal RRV ............................................. 36

Figura 24 - Imagem da aplicação oHolter ................................................................................ 38

Figura 25 - Exemplos de sinal ECG recolhidos pelo módulo Zephyr...................................... 40

Figura 26 - Sinal ECG e saída do Detetor de Picos R ............................................................ 41

Figura 27 - Deteção de artefacto simples (por provocação de tosse) .................................... 42

Figura 28 - Deteção de artefacto provocado por tosse, com reavaliação do sinal BIN .......... 43

Figura 29 - Deteção de artefacto provocado pelo movimento da cinta cardíaca ................... 44

Figura 30 - Deteção de artefacto devido a movimento continuado da cinta cardíaca ............ 45

Figura 31- Resultado da interpolação do ECG: sinal RRV ..................................................... 46

Page 8: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

4

Figura 32 - Simulação 1 (filtro de Kalman): Q=1E-5; R=1E-3 ................................................. 47

Figura 33 - Simulação 2 (filtro de Kalman): Q=1E-4; R=1E-3 ................................................. 48

Figura 34 - Simulação 3 (filtro de Kalman): Q=1E-3; R=1E-3 ................................................. 48

Figura 35 - Simulação 4 (filtro de Kalman): Q=1E-4; R=1E-5 ................................................. 49

Figura 36 - Simulação 5 (filtro de Kalman): Q=1E-4; R=1E-4 ................................................. 49

Figura 37 - Simulação 6 (filtro de Kalman): Q=1E-4; R=1E-2 ................................................. 50

Figura 38 - Ritmo cardíaco após filtragem (cenário moderado com poucos artefactos) ......................................................................................................... 51

Figura 39 - Ritmo cardíaco após filtragem (cenário exigente e repleto de artefactos) ........... 52

Figura 40 - Deteção de arritmia por comparação dos ritmos RRV e KLM .............................. 54

Figura 41 - Deteção de arritmia irregular por comparação dos ritmos RRV e KLM ............... 55

Page 9: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

5

Índice de Tabelas

Tabela 1 - Pacotes de streaming disponibilizados pelo módulo de aquisição ........................ 18

Tabela 2 - Lista de métodos (pedidos) disponibilizados pela classe Zephyr .......................... 24

Tabela 3 - Parâmetros registados no ficheiro de configuração ............................................... 26

Tabela 4 - Medidas para determinação das necessidades de gravação ................................ 28

Tabela 5 - Métodos disponibilizados pela classe Kalman ....................................................... 35

Tabela 6 - Lista de alarmes registados pelo mHolter .............................................................. 37

Tabela 7 - Parâmetros a simular para o filtro de Kalman ........................................................ 47

Page 10: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

6

Abreviaturas

ALM - Sinal de alarme (artefacto ou arritmia)

API - Application Programming Interface

BIN - Sinal binário resultante do detetor de picos R

BPM - Batimentos por minuto

BT - Bluetooth

CSV - Comma-separated Values

CRC - Cyclic Redundancy Check

CVD - Cardiovascular Diseases

ECG - Sinal Eletrocardiograma

GUI - Graphical User Interface

IR - Infrared

KLM - Sinal Variação do Ritmo R-R após filtragem de Kalman

mHolter - Mobile Holter

oHolter - Offline Holter

OMS - Organização Mundial da Saúde

PC - Personal Computer

RFCOMM - Radio Frequency Communication (protocol)

RRV - Sinal Variação do ritmo R-R

SD-CARD - Secure Digital (SD) Card

SDK - Software Development Kit

SMS - Short Message Service

USB - Universal Serial Bus

Page 11: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

7

1 Introdução

Num estudo recentemente publicado pela Organização Mundial da Saúde, revela-se que

as doenças cardiovasculares são a principal causa de morte em todo o mundo [1].

De acordo com o estudo, estima-se que 17,3 milhões de pessoas morreram em 2008,

devido a doenças cardiovasculares, o que representa 31% de todas as mortes na população mundial

(ver Figura 1), contribuindo para este cenário, as doenças coronárias e cerebrovasculares cerebrais,

com 7,3 milhões e 6,2 milhões respetivamente.

Figura 1 - Distribuição das maiores causas de morte (fonte: Global Atlas on

cardiovascular disease prevention and control)

Um dos aspetos mais pragmáticos do estudo é o fato de mais de 3 milhões das mortes

devidas a doenças cardiovasculares ocorrerem antes dos 60 anos de idade, e puderem ter sido

prevenidas, desde que atempadamente diagnosticadas e acompanhadas.

Hoje em dia existe uma grande variedade de exames e procedimentos para facilitar e

tornar mais preciso o diagnóstico de doenças cardiovasculares. Estes incluem registos da atividade

elétrica do coração (eletrocardiograma), radiografias, ecocardiogramas, ressonância magnética, entre

outros.

O eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser

realizado em vários cenários, nomeadamente em repouso, com prova de esforço ou em regime

ambulatório contínuo, sendo precisamente este último cenário, o objeto da presente dissertação.

Page 12: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

8

1.1 Motivação e Objetivos

As soluções de monitorização e análise disponíveis hoje em dia no mercado, apresentam

princípios de funcionamento muito semelhantes, no que respeita a aquisição dos sinais fisiológicos. A

forma como estes sinais são processados e a informação é apresentada ao utilizador torna-se

basicamente no principal fator de diferenciação, abrindo naturalmente espaço para o

desenvolvimento de produtos novos e inovadores.

Associando-se as estas oportunidades, a difusão generalizada dos telemóveis de

elevada capacidade de processamento [2], o desenvolvimento e implementação de sistemas de

aquisição, processamento e transmissão de dados biomédicos, passa a ter uma potencial nova

plataforma, leve, portátil, com boa capacidade de armazenamento, apresentação gráfica, e acima de

tudo, de baixo custo: o telemóvel.

O objetivo da presente dissertação é desenvolver e implementar um sistema de

aquisição e processamento contínuo do Eletrocardiograma através de telefone celular, doravante

designado de mHolter (Mobile Holter).

A função do mHolter é monitorizar continuamente a atividade elétrica cardíaca do

paciente por períodos extensos, que podem ir de 24 a 48 horas. Durante o período de observação, o

mHolter regista e processa o eletrocardiograma recolhido através de uma cinta cardíaca, separando

artefactos e ocasionais arritmias cardíacas, que seriam difíceis de identificar num período de tempo

curto, como é o caso dos exames de eletrocardiografia (ECG).

Complementarmente, para maior comodidade e facilidade de utilização, foi desenvolvida

uma aplicação de visualização do traçado do ECG - oHolter (Offline Holter), disponibilizando um

conjunto estendido de funcionalidades de procura e visualização dos registos efetuados pelo mHolter.

1.2 Estrutura da Dissertação

A presente dissertação encontra-se dividida em 6 capítulos. No Capítulo 1, é introduzido

o tema da dissertação, motivação e objetivos a atingir.

No Capítulo 2, é descrita a fisiologia elétrica do sistema cardíaco e sinais fisiológicos

relevantes no contexto da dissertação.

No Capítulo 3, é apresentada a arquitetura do sistema e respetivos componentes, que

uma vez integrados, compõem a solução.

No Capítulo 4, são descritas as aplicações e algoritmos desenvolvidos, sendo o Capítulo

5 dedicado à apresentação dos resultados experimentais.

Page 13: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

9

Finalmente, no capítulo 6, são apresentadas as conclusões do trabalho realizado e

algumas linhas orientadoras de possíveis evoluções do mesmo.

Page 14: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

10

2 Fisiologia elétrica do Sistema Cardíaco

2.1 O Coração

O coração é um órgão muscular situado no meio do tórax, e que possui, tanto do lado

direito como do lado esquerdo, uma cavidade superior (aurícula), que recebe o sangue, e uma

cavidade inferior (ventrículo), que o expulsa (ver Figura 2). Para garantir que o sangue corra num só

sentido, os ventrículos dispõem de uma válvula de entrada e outra de saída.

Figura 2 - O coração (fonte: Manual MERCK - Biblioteca Médica online)

A função primária do coração é proporcionar o oxigénio a todo o organismo e, ao mesmo

tempo, libertá-lo dos produtos de eliminação (anidrido carbónico). Esta função pressupõe recolher o

sangue do organismo, pobre em oxigénio, e bombeá-lo para os pulmões, onde é oxigenado e o

anidrido carbónico libertado, sendo depois este sangue, agora rico em oxigénio, enviado para todos

os tecidos do organismo [3].

Em cada batimento, quando as cavidades do coração se relaxam, estas enchem-se de

sangue (período chamado de diástole) e, quando se contraem, expelem-no (período chamado de

sístole). A Figura 3 ilustra este processo. As duas aurículas relaxam-se e contraem-se

simultaneamente, assim como os ventrículos.

Page 15: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

11

Figura 3 - Sístole e diástole do coração (fonte: Manual MERCK - Biblioteca

Médica online)

A circulação sanguínea no coração faz-se da seguinte forma. Primeiro, o sangue pobre

em oxigénio e sobrecarregado de anidrido carbónico proveniente de todo o organismo chega à

aurícula direita, através das duas maiores veias (as veias cavas superior e inferior). Quando a

aurícula direita se enche, impulsiona o sangue para o ventrículo direito; quando este se enche,

bombeia o sangue através da válvula pulmonar para as artérias pulmonares, com destino aos

pulmões. Nos pulmões, o sangue flui através de pequenos vasos capilares que rodeiam os sacos de

ar, absorvendo o oxigénio e libertando anidrido carbónico, que é imediatamente exalado. Já rico em

oxigénio, o sangue circula pelas veias pulmonares até à aurícula esquerda.

Este circuito entre o lado direito do coração, os pulmões e a aurícula esquerda

denomina-se de «circulação pulmonar». Quando a aurícula esquerda se enche, empurra o sangue

rico em oxigénio para o interior do ventrículo esquerdo; quando este, por sua vez se enche,

impulsiona o sangue através da válvula aórtica para a aorta, a maior artéria do corpo. O sangue rico

em oxigénio abastece então todo o organismo.

2.2 O Eletrocardiograma (ECG)

O eletrocardiograma é um método rápido, simples e indolor, no qual se captam,

amplificam-se e registam-se os impulsos elétricos do coração. Estes impulsos representam a corrente

elétrica que circula através do coração durante uma contração. A onda que caracteriza o ECG é

dividida em várias partes, designadas alfabeticamente pelas letras P a U (ver Figura 4).

Page 16: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

12

Figura 4 - Ondas que compõem o eletrocardiograma

Como se pode observar na figura, cada batimento cardíaco começa com um impulso do

pacemaker fisiológico principal do coração (nódulo sino-auricular). Este impulso ativa primeiro as

cavidades superiores do coração (aurículas). A onda P representa esta ativação das aurículas.

Depois, a corrente elétrica flui para baixo, na direção das câmaras inferiores do coração

(ventrículos). O complexo QRS representa a ativação dos ventrículos. A onda T representa a onda de

recuperação, enquanto a corrente elétrica difunde-se para trás sobre os ventrículos na direção oposta.

O sinal de ECG recolhido à superfície do corpo humano é de reduzida amplitude,

podendo ocasionalmente ser corrompido com ruído, gerado quer pelo deslocamento dos elétrodos,

quer pela atividade muscular junto dos pontos de aquisição.

2.3 O Dispositivo Holter

A deteção de problemas cardíacos, que geralmente acontecem de forma breve ou

imprevisível, requer o uso de um registador portátil contínuo do ECG. O paciente transporta um

pequeno aparelho, alimentado a bateria (monitor Holter), que adquire e grava permanentemente o

sinal ECG durante um período que pode ir de 24 a 48 horas. A Figura 5 ilustra a colocação e

aplicação do Holter e respetivos elétrodos num paciente.

Page 17: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

13

Figura 5 - Exemplo de aplicação do Holter (fonte: Manual MERCK - Biblioteca

Médica online)

Os resultados da gravação são processados posteriormente, através de um computador

que analisa a velocidade e frequências cardíacas, procurando alterações na atividade elétrica que

possam indiciar problemas cardíacos.

Page 18: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

14

3 Arquitetura e Descrição do Sistema

3.1 Arquitetura Geral do Sistema

A Figura 6 mostra a arquitetura geral da solução, descriminando os vários elementos que

a compõe, assim como as tecnologias de comunicação envolvidas:

Figura 6 - Arquitetura geral da solução

Da esquerda para a direita, encontramos o conjunto cinta e módulo de aquisição. Para

desempenhar as funções de aquisição e transmissão por bluetooth do eletrocardiograma, foi

selecionado o produto BioHarness™ BT do fabricante Zephyr [4].

De seguida, o telemóvel Nokia, modelo 5250 [5]. O telemóvel comunica com a cinta

cardíaca através de uma ligação por bluetooth, correndo em cima deste suporte um protocolo

específico do fabricante, designado de BioHarness Bluetooth API. Após o primeiro emparelhamento,

a informação de configuração fica memorizada em ambos os dispositivos, tornando-se depois muito

simples a sua utilização por parte da camada superior, a aplicação mHolter.

Finalmente, no lado direito, a aplicação oHolter processa os ficheiros de registo do

eletrocardiograma, criados pela aplicação mHolter, disponibilizando ao utilizador uma interface gráfica

de utilização, com funções de avanço, recuo, procura e visualização do histórico de cada sessão de

captura. O segundo telemóvel receberá informação de alarmes que eventualmente ocorram durante

as sessões de captura e processamento do ECG.

Page 19: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

15

3.2 Cinta Cardíaca

A cinta cardíaca Zephyr Smart Fabric (ver Figura 7), incorpora sensores para aquisição

dos sinais ECG e ritmo respiratório.

Figura 7 - Cinta cardíaca Zephyr Smart Fabric

3.3 Módulo de Aquisição

O módulo de aquisição do eletrocardiograma, BioHarness BT do fabricante Zephyr (ver

Figura 8), foi selecionado por apresentar a interface bluetooth, indispensável à comunicação com o

telemóvel e um kit de desenvolvimento (SDK) com uma API de programação extremamente flexível.

Figura 8 - Módulo de aquisição Zephyr BioHarness BT

Page 20: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

16

Trata-se de um equipamento leve e compacto, servindo o propósito a que se destina, ou

seja, a utilização intensiva, por extensos períodos, que podem ir de 24 a 48 horas, disponibilizando

um vasto conjunto de funcionalidades:

Conectividade por bluetooth e USB

Saídas configuráveis, consoante a necessidade de informação

Ritmo cardíaco: 25 – 240 BPM (±1 BPM)

Ritmo respiratório: 3 – 70 BPM (±1BPM)

Sensor IR de temperatura da pele: 10 – 60 °C (±0.1°C)

Posição / postura: ± 180°

Sensor de aceleração a 3 eixos

Registo do ECG a 250Hz (250 amostras por segundo)

Capacidade de armazenamento de 570 horas

Na Figura 9, podemos ver o módulo instalado na cinta cardíaca Zephyr Bioharness Strap

Smart Fabric:

Figura 9 - Conjunto módulo de aquisição e cinta cardíaca

Após o arranque (botão power), o módulo de aquisição pode ser programado de três

formas: apenas registo, registo e transmissão ou apenas transmissão. Neste projeto utiliza-se apenas

o modo de transmissão. A gravação do ECG é efetuada na memória de armazenamento do telemóvel

(interna ou SD-CARD).

3.4 Interface de Programação (API)

3.4.1 Estrutura Base das Mensagens

A comunicação com o módulo de aquisição é ponto-a-ponto e numa base de

pedido/resposta. Quando é enviado um pedido, o módulo responde basicamente numa de duas

formas: se o pedido for considerado válido, a mensagem de resposta será na forma de uma

Page 21: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

17

confirmação – ACK (acknowledge), com os dados solicitados. Se o pedido for considerado inválido, a

mensagem de resposta será simplesmente NAK (not acknowledge). Existe uma exceção a esta regra:

trata-se dos casos em que são transferidas mensagens periódicas (streaming). Nestes casos, o

módulo de aquisição não precisa responder com as mensagens ACK / NAK.

A Figura 10 ilustra a forma como se realiza a comunicação entre dispositivos (módulo de

aquisição e telemóvel), bem como a estrutura de dados subjacente.

Figura 10 - Estrutura de dados base das mensagens

Os campos STX e MsgID são fixos e representam o início e tipo de mensagem. O campo

DLC é calculado consoante o número de bytes a transferir (Data Payload), sendo obrigatório de

seguida o cálculo e inserção do CRC sobre a informação útil a transferir. Finalmente, o campo ETX

termina a mensagem. No caso das mensagens de resposta, este campo não é usado, sendo o

mesmo substituído pela confirmação (ACK ou NAK).

3.4.2 Mensagens de streaming (periódicas)

A receção do sinal ECG vai incidir maioritariamente na utilização de mensagens

periódicas (streaming), as quais resultam de um pedido por parte do telemóvel, para o qual o módulo

de aquisição inicia um processo de envio periódico de pacotes com a informação solicitada. Este

processo é interrompido apenas quando o telemóvel solicita o cancelamento do envio.

A Tabela 1 ilustra os vários tipos de mensagens periódicas suportadas pelo módulo de

aquisição. Destes tipos, o foco do trabalho foi o pacote de streaming (ECG Waveform), através do

qual são recebidas as amostras do sinal ECG.

Page 22: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

18

Tabela 1 - Pacotes de streaming disponibilizados pelo módulo de aquisição

A Figura 11 mostra um exemplo do protocolo de comunicação, no caso de um pedido de

streaming do tipo “General Data”. O módulo de aquisição suporta vários pedidos de streaming, sendo

possível programar-se o envio simultâneo de todos pacotes de streaming anteriormente mencionados.

Figura 11 - Exemplo: streaming do tipo “General Data”.

No caso do pacote de streaming "ECG Waveform", recebido e processado pela

aplicação mHolter, este encontra-se estruturado conforme se ilustra na Figura 12:

Aplicação

mHolter

Módulo de aquisição e

Cinta cardiaca Zephyr

Link bluetooth

Page 23: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

19

Figura 12 - Estrutura do pacote de streaming "ECG Waveform"

Sendo que as 63 amostras nele contidas são codificadas a 10 bits cada, de acordo com

o formato da Figura 13:

Figura 13 - Codificação de cada amostra ECG (a 10 bits cada)

3.4.3 Dimensionamento do buffer de receção (ECG)

Dado que o pacote de streaming “ECG Waveform”, através do qual são recebidas as

amostras do sinal ECG, é recebido no telemóvel a cada 252 [ms], temos:

[ ] (1)

Sendo o número de amostras por pacote “ECG Waveform” igual a 63, temos:

[ ] (2)

Então, o número de amostras por segundo a ser processado no telemóvel será:

Page 24: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

20

[ ] (3)

Sendo a duração de uma amostra igual a 4 milissegundos:

[ ] [ ] (4)

Foi no entanto verificado em testes isolados de receção dos pacotes de streaming ECG

que, apesar de se verificar a periodicidade no envio dos mesmos, muitas vezes não são totalmente

preenchidos com o máximo de amostras (63 amostras), o que resulta em variações do débito de

amostras recebidas no telemóvel.

Uma vez que se pretende mostrar no ecrã do telemóvel, o ECG em tempo real e com o

mínimo de variações possíveis em termos da sua velocidade de arrastamento no ecrã, foi necessário

criar um mecanismo que sustente estas variações de débito. Este mecanismo consiste no aumento

ou diminuição da velocidade de apresentação dos sinais no display do telemóvel, na proporção da

dimensão do buffer de receção.

3.5 Telemóvel (plataforma base da aplicação mHolter)

Para correr a aplicação mHolter, foi selecionado um telemóvel Nokia, modelo 5250, com

o sistema operativo Symbian S60. Este modelo, além de cumprir com os requisitos mínimos de

desenvolvimento (sistema operativo Symbian S60), apresenta-se também no mercado por um valor

muito competitivo, na ordem das dezenas de euros, cumprindo portanto com as premissas

anteriormente estabelecidas de baixo custo, bom desempenho e capacidade de armazenamento,

apresentando neste caso um processador ARM II a 434 MHz e 51Mb de memória interna.

A linguagem de programação utilizada foi o Python (versão 1.9.7 para S60), por se tratar

de uma linguagem de programação de alto nível, estruturada e orientada por objetos, apresentando

as seguintes vantagens comparativamente a outras linguagens:

Qualidade do código: A sintaxe do Python facilita e encoraja a legibilidade do

código, o que o torna mais fácil de manter e reutilizar.

Produtividade: é mais rápido desenvolver um mesmo código em Python do que

noutras linguagens, como o C, C++ ou Java.

O código é mais compacto, requer menos linhas, e não necessita da declaração

prévia das variáveis e respetivos tipos.

Não requer um ciclo de compilação, podendo o programa ser executado

imediatamente.

Page 25: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

21

Portabilidade: possibilidade do programa correr, sem qualquer alteração, em

várias plataformas como o Linux e o Windows.

Disponibilidade de uma vasta biblioteca de funções

3.6 Computador Pessoal (plataforma base da aplicação oHolter)

Tal como no caso do mHolter, a aplicação oHolter foi igualmente desenvolvida em

Python (versão 2.5.4 para Windows). No que respeita a interface gráfica com o utilizador (GUI), foi

selecionado o toolkit wxPython (wrapper da biblioteca wxWidgets), que disponibiliza uma interface

rica de elementos gráficos, garantindo em simultâneo a portabilidade entre plataformas (Windows,

Linux, Mac OS, entre outras).

Page 26: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

22

4 Aplicações e Algoritmos de Processamento

4.1 Aplicação mHolter

A aplicação mHolter efetua a aquisição e processamento em tempo real do

eletrocardiograma, sua visualização e respetiva gravação, identificando artefactos e detetando

possíveis arritmias no ritmo cardíaco do paciente. A deteção de arritmias é conseguida por

interpolação do sinal ECG, seguida de filtragem, através de um filtro de Kalman, e depois por

comparação entre o sinal interpolado e o sinal filtrado.

As principais funcionalidades do mHolter são:

Interface com o utilizador e com o módulo de aquisição do ECG

Adquirir, processar e gravar localmente (no telemóvel) o sinal ECG

Produzir e gravar localmente os sinais de variação do ritmo R-R (sinal RRV),

detetor de picos R (sinal BIN), resultado da filtragem de Kalman: sinal KLM (RRV

filtrado)

Mostrar em tempo real e no modo browse (a partir de uma sessão gravada), o

sinal ECG e sinais associados

Deteção, registo e identificação visual de artefactos e arritmias detetadas

Envio programado de alarmes por SMS

Registo das sessões gravadas, com possibilidade de browse

Visualização da evolução do ritmo R-R durante toda da sessão de aquisição:

sinais RRV e KLM (RRV após a filtragem de Kalman)

Gravação dos sinais e alarmes em ficheiro no formato CSV

Registo permanente dos principais parâmetros da aplicação

Apresenta-se de seguida, na Figura 14, o diagrama de blocos da aplicação, bem como a

relação entre os vários módulos que a compõem.

Page 27: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

23

Figura 14 - Diagrama de blocos da aplicação mHolter

4.2 Interface Bluetooth

As funcionalidades associadas à interface bluetooth encontram-se definidas na classe

Zephyr. Para que se possa iniciar a comunicação entre o módulo de aquisição e o telemóvel (pedidos

/ respostas ou streaming de dados), é necessário em primeiro lugar estabelecermos uma porta de

comunicação série (RFCOMM) entre os dois dispositivos. Para o efeito, o Python disponibiliza na sua

livraria os stream sockets, que implementam esta ligação.

O endereço do dispositivo de aquisição Zephyr é atualizado pelo método discover(),

sempre que for associado um novo dispositivo, sendo o estabelecimento da ligação efetuado através

do método connect(). Uma vez estabelecida a ligação, o módulo de aquisição fica pronto a receber

comandos, sendo o utilizador informado deste facto pelo círculo de cor verde no canto superior direito

do display, que de outra forma se apresentará de cor amarela, significando neste caso que ainda está

a efetuar a ligação.

A Tabela 2 lista os principais métodos de acesso e controlo do módulo de aquisição,

disponibilizados pela classe Zephyr à aplicação mHolter:

Page 28: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

24

Método Descrição

get_rtc_time() Devolve um tuple com a hora, minutos e segundos

get_rtc_date() Devolve um tuple com o dia, mês e ano

set_rtc_date_time() Acerta a data e hora do módulo de aquisição

set_packet_state() Activa ou desativa o envio de pacotes periódicos (streaming)

set_BT_config() Anula o controlo de timeout e lifesign por parte do módulo de aquisição

get_BT_config() Obtêm o estado atual do timeout e lifesign

get_rt_data() Devolve o buffer de amostras recolhidas pelo módulo de aquisição

reboot_request() Reboot do módulo de aquisição

Tabela 2 - Lista de métodos (pedidos) disponibilizados pela classe Zephyr

Com a ativação do envio de pacotes periódicos, o método set_packet_state() inicia um

thread, com vista ao tratamento independente (em paralelo) do stream de pacotes que irá passar a

receber por parte do módulo de aquisição. A utilização de threading permite evitar situações de

bloqueio, quando por exemplo não existem dados no socket.

A Figura 15 ilustra um pedido de pacotes periódicos (ECG Waveform) por parte da

aplicação mHolter e as ações que este pedido desencadeia do lado do módulo Zephyr. Podemos ver

igualmente o lançamento da thread update(), responsável pela receção dos pacotes periódicos.

Figura 15 - Pedido de pacotes periódicos (ECG Waveform)

RFCOMM

socket

update()

recvf()

Buffer de

receção do ECG

(Zephyr)

set_packet_state()

mHolterZephyr

Main()

get_rt_data()

Thread para

receção do ECG

Buffer de

receção do ECG

(mHolter)

Page 29: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

25

4.3 Interface com o Utilizador

A aplicação mHolter disponibiliza uma interface do tipo touch screen, para a interação do

utilizador com as várias funcionalidades disponibilizadas. A Figura 16 mostra a hierarquia desta

interface, resumindo as funções associadas a cada opção.

Figura 16 - Interface de utilização da aplicação mHolter

Menu Principal

Registos

Abrir Registo

Apagar Registo

Real Time: ON/OFFInicia / Pára a

aquisição do ECG

Visualizar

ECG: Sim/Não

RRV: Sim/Não

RRV (Kalman):Sim/Não

BIN: Sim/Não

Linha de Threshold: Sim/Não

Configurar

Offsets/Escalas

Browse step

Telemóvel p/alarme

Acertar Data/Hora

Reboot

RelatóriosRRV e RRV

(Kalman)

Abertura de ficheiro ECG para

visualização (browse) no display do

telemóvel

Apagar ficheiro ECG guardado

(delete)

Inicio / fim da sessão. O utilizador

define o nome do ficheiro ECG a

gravar

Visualização em tempo real do sinal

ECG no display do telemóvel

Visualização em tempo real do sinal

RRV no display do telemóvel

Visualização em tempo real do sinal

RRV , filtrado pelo filtro de Kalman

Opção de visualização do sinal BIN,

resultado do detector de picos

Visualização da linha de threshold no

display do telemóvel

Offset e escala dos sinais ECG, RRV,

RRV (Kalman) e BIN a visualizar no

display do telemóvel

Alteração do passo das funções de

avanço e recuo, na visualização dos

sinais

Definição do número de telemóvel

para a comunicação de alarmes.

Acerto da data e hora no dispositivo

de aquisição

Reinicialização do dispositivo de

aquisição

Gráfico mostrando a evolução dos

sinais RRV e RRV (Kalman) para

toda a sessão

Page 30: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

26

À medida que o utilizador efetua alterações nos principais parâmetros da aplicação,

estes são registados no ficheiro de configuração mHolter.CFG. Desta forma, não é necessário repetir

as alterações quando a aplicação é reinicializada. A Tabela 3 mostra os parâmetros que são

registados.

Parâmetro Valor Descrição

OFFS_ECG 60 Offset de translação vertical do sinal ECG no display

OFFS_RRV 90 Offset de translação vertical do sinal RRV no display

BROWSE_STEP 100 Passo das funções de avanço e recuo (modo browse)

service 1 Serviço RFCOMM (=1 por defeito)

SCA_RRV 100 Escala de visualização do sinal RRV no display

SCA_ECG 40 Escala de visualização do sinal ECG no display

OFFS_BIN 5 Offset de translação vertical do sinal BIN no display

SCA_BIN 5 Escala de visualização do sinal BIN no display

address <addr> Endereço do dispositivo de aquisição Zephyr

THRESHOLD 550 Linha de threshold (definida pelo detetor de pico)

TLM_ALARME <tlm> Número de telefone para reporte de alarmes (por SMS)

SCA_KLM 100 Escala de visualização do sinal RRV filtrado

OFFS_KLM 90 Offset de translação vertical do sinal RRV filtrado

Tabela 3 - Parâmetros registados no ficheiro de configuração

4.4 Gravação da Sessão

O sinal ECG, sinais associados BIN, RRV, RRV filtrado (KLM), artefactos e alarmes

(ALM), são gravados em ficheiros no formato CSV, sendo por isso possível a posterior edição em

folhas de cálculo (exemplo: Microsoft Excel), de modo a facilitar outro tipo de análise que se pretenda

fazer no futuro.

A Figura 17 mostra em detalhe, o diagrama de blocos da aplicação mHolter com a

identificação dos pontos de extração destes sinais.

Page 31: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

27

Figura 17 - Diagrama de blocos do mHolter e identificação dos sinais relevantes

Na Figura 18 é mostrado o formato de gravação que foi definido para a aplicação. As

primeiras duas colunas indicam a data e hora de aquisição. As restantes cinco colunas registam o

valor das amostras associadas a cada um dos sinais.

Figura 18 - Formato de gravação do mHolter

Page 32: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

28

Dado que a aplicação mHolter irá funcionar por períodos extensos, tipicamente de 24 a

48 horas, há que acautelar as suas necessidades em termos de espaço na memória não volátil do

telemóvel (interna ou SD-CARD). Nesse sentido, foram efetuadas as medidas que constam da Tabela

4, com o objetivo de se determinar o número de bytes necessário por linha de gravação.

Número de linhas Bytes ocupados Rácio (bytes/linha)

10 328 32,80

100 3298 32,98

1.000 34.408 34,41

10.000 350.470 35,05

Tabela 4 - Medidas para determinação das necessidades de gravação

Sendo o número de amostras por segundo igual a 250 (equação 3) e sabendo que a

cada amostra corresponderá uma linha, então podemos calcular velocidade de gravação,

considerando o rácio bytes/linha mais exigente:

[ ] (5)

Com base nesta velocidade, as necessidades de gravação para 24 e 48 horas serão

respetivamente:

[ ] (6)

[ ] (7)

Ou seja, são atingidas facilmente dimensões próximas do gigabyte, pelo que é

imprescindível o telemóvel dispor de uma SD-CARD (ou memória interna) com o mínimo de 2Gb.

4.5 Deteção de Picos R do Complexo QRS

A detecção de picos R no complexo QRS é efetuada por observação das amostras cujos

valores se situem acima de um determinado nível (threshold). Esta observação é realizada pelo

método find_RR_points(), que é evocado periodicamente pelo método get_rt_data(), sempre que

existam novas amostras a processar.

Dado que o sinal ECG recebido do módulo de aquisição se apresenta sem variações da

linha de base e sem componentes de alta frequência, não se verificou a necessidade de se efetuar

qualquer pré-filtragem.

Page 33: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

29

Sempre que um pico R é detectado, previamente ao seu registo no array addBIN[], é

efetuada uma verificação de que o mesmo não é artefacto. Esta verificação é de extrema importância,

evitando que falsos picos R influenciem incorretamente o comportamento do filtro de Kalman.

A influência do detector de pico nos resultados da filtragem de Kalman é desenvolvida

mais adiante, e deve-se basicamente ao fato do sinal BIN constituir uma entrada do filtro de Kalman,

que decide sobre se a saída do filtro terá como base a estimativa à priori (caso do sinal BIN ser zero)

ou a estimativa à priori calculada conjuntamente com o valor da amostra e respectivo ganho de

Kalman.

4.6 Deteção e Processamento de Artefactos

Os artefactos podem ter as mais diversas origens, sendo as mais comuns a interferência

resultante de ruídos internos e externos ao sistema de aquisição, como são exemplos o ruído

produzido pelos movimentos musculares ou resultantes da deslocação da cinta cardíaca.

A deteção de artefactos implementada baseia-se no princípio de que dois máximos

acima da linha de threshold, devem respeitar um intervalo mínimo de separação entre eles, para que

possam ser considerados efetivamente parte de um intervalo R-R.

Para se encontrar este intervalo mínimo, recorreu-se a várias tabelas que relacionam o

número de batimentos por minuto e percentagem de esforço consoante o tipo de exercício e idade do

paciente. A Figura 19 mostra uma destas tabelas típicas.

Figura 19 - Relação entre ritmos cardíacos e o tipo de atividade (fonte:

primefit.com - Measuring Your Maximum Heart Rate)

Page 34: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

30

Assumindo como pressuposto que o mHolter vai adquirir o eletrocardiograma com o

paciente a desenvolver a sua atividade quotidiana, portanto na zona moderada, temos que o número

máximo de batimentos por minuto não excederá, na maioria dos casos os 120 BPM (60% de esforço):

[BPM] (8)

Neste pressuposto, tendo como base o número de amostras por segundo recebidas no

telemóvel (equação 3), podemos calcular o número de amostras mínimo que se deve verificar entre

dois máximos, para que os mesmos possam ser considerados um intervalo R-R:

[ ] (9)

A este valor corresponde a constante RR_ARTEFACT, definida na aplicação mHolter e

usada pelo método artefact(), para decisão sobre estamos perante um intervalo R-R ou um artefacto.

Caso tenha sido encontrado um artefacto, é efetuado um procedimento adicional de

limpeza do último ponto R detetado, pelo fato do artefacto ora detetado estar normalmente associado

a uma perturbação prévia. Esta função é executada pelo método clean_last_RR() e efetua o

varrimento até ao máximo de RR_ARTEFACT amostras no passado.

Todos os artefactos detetados são registados no ficheiro de gravação com a constante

ALM_Artefact. Desta forma, os mesmos podem ser visualizados no display do telemóvel (em tempo

real), à posteriori, no modo de browse, ou mais tarde através aplicação oHolter.

4.7 Interpolação do sinal ECG

Na análise de sinais fisiológicos, para além do estudo morfológico do sinal, é muito

comum o estudo de outros parâmetros do sinal e como estes se comportam no tempo. As doenças do

coração que afetam o nódulo sino-auricular (pacemaker fisiológico principal do coração), podem

alterar o ritmo normal do coração, resultando numa variação anormal dos intervalos R-R.

Aplicando técnicas de interpolação, podemos criar a partir do ECG um novo sinal, que

represente no tempo, a variação dos intervalos R-R, e que nos permita observar facilmente o objeto

de interesse, a variação dos intervalos R-R (RRV).

Passando a exemplificar, a Figura 20 mostra um sinal ECG a ser interpolado.

Page 35: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

31

Figura 20 - Exemplo de sinal ECG a ser interpolado

Sendo a duração de cada intervalo R-R:

( ) [ ] (10)

( ) [ ] (11)

A frequência associada a cada intervalo será respetivamente:

[ ] (12)

[ ] (13)

A Figura 21 mostra o sinal RRV, obtido através de interpolação do sinal ECG.

Page 36: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

32

Figura 21 - Resultado da interpolação efetuada sobre o sinal ECG

Podemos verificar que o sinal interpolado (RRV) apresenta-se como o inverso de cada

intervalo R-R em toda a duração deste intervalo, resultando numa medida instantânea da frequência

cardíaca, em batimentos por segundo. No processo de interpolação, a frequência cardíaca é

multiplicada por 60 segundos, para se obter o seu valor numa unidade mais comum, em batimentos

por minuto (BPM).

4.8 Filtro de Kalman

A introdução da filtragem de Kalman [6] aplicada ao sinal RRV cumpre essencialmente

dois objetivos: primeiro, estimar o ritmo cardíaco, filtrando amostras do sinal RRV que possam

eventualmente estar relacionadas com artefactos que não foram detectados na fase de detecção e

processamento de artefactos, segundo, estabelecer um patamar de comparação entre a saída do

filtro e o sinal RRV à sua entrada, por forma a permitir detectar variações que se enquadrem em

cenários de arritmia.

Como veremos mais adiante, a detecção destas variações é efetuada apenas quando o

resultado da filtragem se mantêm estável por um período de tempo predefinido, assegurando-se

assim um maior grau de confiança sobre o procedimento de detecção de arritmias.

A filtragem de Kalman é realizada em duas etapas [7]: "time update" e "measurement

update". A Figura 22 ilustra este processo.

Page 37: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

33

Figura 22 - Etapas da filtragem de Kalman

A etapa de predição (time update) projeta para a o futuro, a estimativa atual do estado do

processo, enquanto que a etapa de correção (measurement update) atualiza a estimativa projetada,

com base numa medição real efetuada no momento.

Caracterizando agora o filtro implementado no âmbito do presente projeto, temos as

seguintes equações, para cada uma das etapas acima mencionadas:

Etapa de predição:

(14)

(15)

Etapa de correção:

(16)

{

( ) ( )

( )

(17)

( ) (18)

No que respeita a etapa de predição, na equação 14 calcula-se a estimativa à priori

com base na estimativa anterior . A estimativa à priori é a melhor estimativa do estado do

processo, até ao momento em que se realiza uma nova medição. A equação 15 efetua o cálculo da

estimativa à priori da covariância do erro . Em suma, esta etapa prepara as estimativas à priori a

serem utilizadas na próxima etapa (correção).

A etapa de correção incorpora a nova medição nas duas estimativas à priori

anteriormente calculadas, e

, com o objetivo de se obter uma melhor estimativa à posteriori ,

mais próxima do que será o estado real do processo.

Nesta etapa, o primeiro passo consiste no cálculo do ganho de Kalman , de acordo

com equação 16. De realçar nesta equação que, quando a covariância do erro de medição (R) ou a

Page 38: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

34

estimativa à priori da covariância do erro tenderem para zero, o ganho de Kalman tende para 1 ou

0 respetivamente:

(19)

(20)

O ganho de Kalman influencia o cálculo da estimativa à posteriori (equação 17),

conferindo maior ou menor peso ao termo , denominado de resíduo (ou inovação). Do ponto

de vista prático, este resíduo reflete a discrepância entre o valor medido e a estimativa à priori. Um

valor residual de zero significa que ambos estão em acordo (estimativa à priori e medida efetuada).

Por outro lado, olhando somente para efeito do ganho de Kalman na equação 17, e explorando os

casos limite expressos pelas equações 19 e 20, podemos concluir que:

Uma covariância do erro de medição tendendo para zero, impõe como estimativa

à posteriori o próprio valor medido (a estimativa à priori é cancelada).

Uma estimativa à priori da covariância do erro tendendo para zero, impõe como

estimativa à posteriori a própria estimativa à priori (o valor medido é

cancelado)

É importante realçar que nesta implementação, o cálculo da estimativa à posteriori

depende da existência de um valor medido , ou seja, só se calcula a estimativa a posteriori quando

se fazem novas leituras. Nos restantes instantes de amostragem utiliza-se a estimativa à priori:

. No método kalman_filter(), esta condição é garantida por verificação da saída do detetor de

picos R (sinal BIN).

Como passo final, na equação 18, a estimativa à posteriori da covariância do erro é

também atualizada em função do ganho de Kalman.

Apesar de puderem variar no tempo, as covariâncias do ruído (Q) e do erro de medição

(R) são consideradas constantes na implementação desta versão do filtro. Como veremos mais

adiante, estes parâmetros são usados na afinação do algoritmo, de forma a controlar o grau de

suavidade da resposta.

Em termos da aplicação mHolter, o filtro de Kalman apresenta-se como uma classe

independente, disponibilizando o seguinte conjunto de métodos de controlo e iteração (ver Tabela 5):

Page 39: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

35

Método Descrição

kalman_reset() Reset ao filtro, com reinicialização dos parâmetros Q, R, , , ,

e

para os seus valores por defeito e reinicialização do estabilizador

kalman_set_Q() Programar a covariância do ruído

kalman_set_R() Programar a covariância do erro de medição

kalman_get_Q() Obter a covariância atual do ruído

kalman_get_R() Obter a covariância atual do erro de medição

kalman_stable() Verificar a estabilidade da saída do filtro (True ou False)

kalman_filter(): Filtro de Kalman, implementando as etapas predição e correção

Tabela 5 - Métodos disponibilizados pela classe Kalman

4.9 Deteção de Arritmias

Através da análise do ECG, podem ser detetadas inúmeras anormalidades no sistema

cardiovascular, sendo possível prevenir muitas das doenças que causam estas anormalidades, desde

que sejam previamente diagnosticadas e acompanhadas.

O sistema mHolter desenvolvido permite detetar e registar distúrbios do ritmo cardíaco

que ocorram no decorrer de uma sessão de monitorização em regime ambulatório contínuo. Estes

distúrbios podem ser posteriormente visualizados na aplicação oHolter, facilitando a confirmação e o

diagnóstico provável de uma causa arrítmica.

A deteção variações do ritmo cardíaco é efetuada pela comparação de amplitudes entre

o sinal à saída do filtro de Kalman (KLM) e o sinal RRV resultante da interpolação do ECG. Esta

comparação é efetuada somente quando a saída do filtro se mantêm estável, ou seja:

Apresenta variações na sua amplitude contidas num determinado um intervalo

de valores pré-definido

Estas variações são mantidas por um período de tempo mínimo, também pré-

definido

Desta forma, assegura-se um maior grau de confiança sobre o procedimento de deteção

de arritmias. Uma variação do sinal KLM após um período em que este permanece estável, é então

classificada consoante a diferença encontrada. A estabilidade do sinal KLM pode ser obtida a

qualquer momento pela aplicação mHolter, por invocação do método kalman_stable(), sendo esta

determinada de acordo com o algoritmo representado na Figura 23.

Page 40: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

36

Figura 23 - Algoritmo de aferição da estabilidade do sinal RRV

O algoritmo é executado sempre que for solicitado o cálculo de uma nova estimativa no

filtro de Kalman. A variável KScount contabiliza o número de vezes consecutivas que a diferença

entre a estimativa atual e anterior está contida dentro do intervalo MAX_DELTA. Caso se verifique

durante a contagem uma diferença superior a MAX_DELTA, então o contador é reinicializado a zero,

pois pretende-se um histórico de várias amostras consecutivas dentro daquele intervalo.

No final, caso se verifique uma contagem superior a MAX_COUNT, então pode-se

concluir que a resposta do filtro encontra-se estabilizada.

4.10 Geração de Alarmes

Consoante o tipo de alarme, o mHolter pode enviar um SMS de notificação para outro

telemóvel (definido no ficheiro de configuração). Por defeito, a aplicação envia um SMS apenas no

caso em que foi detetada uma grande irregularidade no ritmo cardíaco (ALM_Irregular).

A Tabela 6 mostra os vários tipos de alarmes possíveis. Os critérios que levam à

constituição de um alarme são descritos no Capítulo 5 - Apresentação e Análise dos Resultados.

Page 41: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

37

Alarme Valor Descrição

ALM_NoAlarm 0 Nada a assinalar (não existem alarmes)

ALM_Artefact 50 Detetado artefacto

ALM_Arritmia 100 Detetada arritmia, conforme os parâmetros de caracterização

estabelecidos

ALM_Irregular 150 Detetada uma grande irregularidade (exemplo: falta de complexo

QRS), conforme os parâmetros de caracterização estabelecidos

Tabela 6 - Lista de alarmes registados pelo mHolter

4.11 Aplicação oHolter

A aplicação oHolter (offline Holter), permite visualizar o eletrocardiograma num

computador pessoal correndo o sistema operativo Windows 7, disponibilizando ao utilizador um

conjunto estendido de funcionalidades de procura e visualização dos registos previamente efetuados

pelo mHolter. A Figura 24 mostra a interface da aplicação oHolter.

Page 42: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

38

Figura 24 - Imagem da aplicação oHolter

No canto superior direito do ecrã, é mostrada a data e hora correspondente à parte

visível do eletrocardiograma, enquanto no eixo horizontal, é apresentada a escala em segundos. Para

um acesso fácil e rápido às principais funções da aplicação, é disponibilizada uma toolbar com os

seguintes botões (da esquerda para a direita):

Abertura de uma nova sessão (ficheiro gerado pelo mHolter)

Início, retrocesso, avanço e fim da sessão

Seleção dos sinais a visualizar no ecrã (ECG, RRV, KLM e BIN)

Visualização do threshold

Visualização do histórico de evolução dos sinais RRV e KLM, ao longo da

sessão

Função de procura por hora / minuto

A aplicação disponibiliza igualmente as seguintes possibilidades de configuração:

Offsets de translação vertical dos sinais ECG, RRV, KLM e BIN

Escalas dos sinais ECG, RRV, KLM e BIN

Page 43: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

39

Passo (step) usado nas funções de avanço e retrocesso

Gravação das configurações efetuadas.

Page 44: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

40

5 Apresentação e Análise dos Resultados

As aplicações mHolter e oHolter apresentam na sua interface de utilização, o fundo

negro. Esta escolha foi feita com o objetivo de se aproximarem tanto quanto possível das demais

aplicações e instrumentos que normalmente se encontram nas clinicas e hospitais. No entanto, para o

efeito de impressão da presente dissertação, o fundo foi alterado propositadamente para branco, com

o objetivo único de se poupar no toner.

5.1 Aquisição e gravação do Eletrocardiograma

A aplicação mHolter foi testada com dados reais, recebidos do módulo de aquisição

Zephyr BioHarness. Foram efetuadas cerca de 120 sessões com diferentes durações, num universo

restrito a 4 pessoas. No final de cada sessão procedeu-se à cópia dos registos para o computador,

para posterior análise na aplicação oHolter. O sinal ECG recolhido apresenta-se geralmente como

ilustrado na Figura 25:

Figura 25 - Exemplos de sinal ECG recolhidos pelo módulo Zephyr

Page 45: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

41

Como se pode constatar, o ECG apresenta-se bastante limpo e estável, sem variações

da linha de base e sem componentes de alta frequência. Por esta razão, e uma vez que não foi

necessário proceder-se a qualquer tipo de filtragem, a etapas seguintes contemplaram imediatamente

o processamento do ECG e sinais associados.

5.2 Deteção de Picos R do Complexo QRS

A Figura 26 mostra um sinal ECG e o resultado do detetor de picos. A linha de cor verde

representa o nível de threshold a partir do qual o algoritmo de detecção entra em funcionamento.

Figura 26 - Sinal ECG e saída do Detetor de Picos R

O mHolter permite ajustar no início ou no decorrer de uma sessão, o nível de threshold,

por forma a garantir o bom desempenho da aplicação mHolter, independentemente do módulo de

aquisição e das características elétricas do sinal recebido através dos sensores da cinta cardíaca,

que pode apresentar diferentes níveis de amplitude, de equipamento para equipamento.

Page 46: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

42

O resultado da deteção de picos R é de extrema importância para os módulos seguintes

(interpolação e filtragem). Por este motivo, além de uma operação de simples deteção com base no

threshold, o detetor de pico funciona conjuntamente com a deteção de artefactos, por forma a evitar:

Na fase de interpolação, onde se calculam os ritmos cardíacos, entre um falso

pico R, que iria original uma falsa variação do ritmo cardíaco (RRV).

Na fase de filtragem, entre uma medição (resultante do falso pico R) no filtro de

Kalman, originado uma falsa variação do ritmo cardíaco (KLM).

5.3 Deteção e Processamento de Artefactos

Os resultados da deteção de artefactos são apresentados ao utilizador através de um

retângulo azul, delimitando a zona de perturbação (artefacto). A Figura 27 ilustra a deteção de um

artefacto durante uma sessão de aquisição. Este artefacto foi provocado deliberadamente ao tossir.

Figura 27 - Deteção de artefacto simples (por provocação de tosse)

Page 47: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

43

Podemos observar que o detetor de picos não considera o pico delimitado pelo retângulo

(artefacto). Este é um primeiro exemplo do funcionamento conjunto do detetor de picos e de

artefactos, evitar prováveis falsos picos R.

Na Figura 28 podemos ver outro artefacto, produzido também por tosse, sendo neste

caso o processamento ligeiramente diferente:

Figura 28 - Deteção de artefacto provocado por tosse, com reavaliação do sinal BIN

Neste caso, o artefacto A1 é detetado imediatamente a seguir ao pico R2,

estabelecendo-se o critério de evocação do método clean_last_RR(), conforme referido no capítulo

4.6. Este método coloca a zero 125 (RR_ARTEFACT) amostras passadas do detetor de picos, a

contar do artefacto A1, que neste caso abrange o pico R2, eliminando-o (circulo a tracejado). Este é

outro exemplo do funcionamento conjunto do detetor de picos e de artefactos.

No caso do artefacto A2 o critério anterior não é verificado, ou seja, a distância entre o

pico R3 e A2 é superior a RR_ARTEFACT, considerando-se por isso R3 como um ponto R válido.

R1 R2 R3

R4

A1 A2

Page 48: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

44

Mostra-se de seguida o comportamento do mHolter na deteção de outro tipo de

artefactos, provocados pelo movimento da cinta cardíaca. No caso da Figura 29, temos um

movimento pontual da cinta, enquanto que no caso da Figura 30, o movimento é contínuo. Em

qualquer dos casos podemos observar a boa imunidade da aplicação ao ruído provocado por fatores

externos.

Figura 29 - Deteção de artefacto provocado pelo movimento da cinta cardíaca

Como se pode verificar, existe um pico R1 no meio da zona de perturbação. Contudo, o

algoritmo não o considera, dada a proximidade de outros picos R igualmente prováveis, ou seja, o

sinal BIN permanece a zero (circulo tracejado).

R1 R2

Page 49: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

45

Figura 30 - Deteção de artefacto devido a movimento continuado da cinta cardíaca

Neste caso, a aplicação não considera o pico R2 por este se encontrar demasiado

próximo da zona de influência do artefacto. Durante a sessão, todos os alarmes são gravados, sendo

os artefactos assinalados com a constante ALM_Artefact (ver Tabela 6)

5.4 Interpolação do sinal ECG

A Figura 31 apresenta o resultado da interpolação de um sinal ECG adquirido pelo

mHolter. O sinal interpolado designa-se RRV (variação dos intervalos R-R) e mostra a evolução no

tempo do valor instantâneo do ritmo cardíaco, na unidade BMP (batimentos por minuto).

R1 R2

Page 50: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

46

Figura 31- Resultado da interpolação do ECG: sinal RRV

Dado que os intervalos apresentam normalmente pequenas variações, é comum efetuar-

se o cálculo do valor médio do ritmo cardíaco, por exemplo num intervalo de 6 períodos R-R.

No caso do mHolter, é imprescindível o registo do valor instantâneo do ritmo cardíaco

(sinal RRV) associado a cada intervalo R-R, na medida em que este é injetado no filtro de Kalman e

comparado de seguida com a saída do filtro, com o objetivo de se detetar eventuais arritmias.

5.5 Filtro de Kalman

Como foi referido anteriormente, a introdução do filtro de Kalman cumpre basicamente

dois objetivos: filtrar eventuais variações resultantes do cálculo do ritmo cardíaco, associadas a

artefactos que não foram detetados no módulo de deteção e detetar variações do ritmo cardíaco, que

se considerem relevantes pela sua dimensão.

Page 51: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

47

Para se cumprir com estes dois objetivos, a parametrização do filtro deve implementar

uma filtragem tipo passa-baixo, eliminando assimetrias associadas a possíveis artefactos, e

simultaneamente acompanhar a evolução do sinal RRV à sua entrada.

Com vista à afinação do filtro, foram efetuadas várias simulações com diferentes valores

para as covariâncias do ruído (Q) e do erro de medição (R). O valor escolhido para a estimativa inicial

foi 60 BPM, por ser um valor típico do ritmo cardíaco em repouso. A Tabela 7 mostra os valores

usados para os parâmetros Q e R nas simulações efetuadas.

Simulação n.º Q R Resultados (ver figura)

1 1,00E-05 1,00E-03 Figura 32

2 1,00E-04 1,00E-03 Figura 33

3 1,00E-03 1,00E-03 Figura 34

4 1,00E-04 1,00E-05 Figura 35

5 1,00E-04 1,00E-04 Figura 36

6 1,00E-04 1,00E-02 Figura 37

Tabela 7 - Parâmetros a simular para o filtro de Kalman

Os resultados das simulações são apresentados de seguida:

Figura 32 - Simulação 1 (filtro de Kalman): Q=1E-5; R=1E-3

Page 52: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

48

Figura 33 - Simulação 2 (filtro de Kalman): Q=1E-4; R=1E-3

Figura 34 - Simulação 3 (filtro de Kalman): Q=1E-3; R=1E-3

Page 53: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

49

Figura 35 - Simulação 4 (filtro de Kalman): Q=1E-4; R=1E-5

Figura 36 - Simulação 5 (filtro de Kalman): Q=1E-4; R=1E-4

Page 54: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

50

Figura 37 - Simulação 6 (filtro de Kalman): Q=1E-4; R=1E-2

Conclui-se que mantendo R e aumentando Q, a saída do filtro - sinal KLM (linha a

vermelho nos gráficos acima) acompanha cada vez mais a entrada. Afastamo-nos por isso do objetivo,

pois não poderemos detectar variações do ritmo cardíaco. Neste caso o melhor valor foi Q=1,00E-4.

Por outro lado, mantendo-se Q=1,00E-4 e aumentando-se sucessivamente R, verifica-se

que com R=1,00E-3, é atingido o melhor compromisso face ao objetivo proposto, sendo estes os

valores programados no módulo Kalman.py da aplicação mHolter.

Page 55: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

51

Observando agora o resultado desta parametrização na aplicação, podemos ver na Figura 38, a

suavização obtida pela filtragem de Kalman (KLM) face ao sinal original (RRV), num cenário de

repouso seguido de esforço moderado e novo repouso, com a simulação de alguns artefactos

(movimentos da cinta durante o exercício).

Figura 38 - Ritmo cardíaco após filtragem (cenário moderado com poucos artefactos)

A Figura 39 mostra a resposta do filtro de Kalman num cenário mais exigente, de repouso seguido de

andamento, corrida e novo repouso, sempre com a simulação de artefactos (movimentos da cinta

durante o exercício).

Page 56: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

52

Figura 39 - Ritmo cardíaco após filtragem (cenário exigente e repleto de artefactos)

Neste exemplo, podemos verificar várias irregularidades devidas aos artefactos

causados propositadamente. Apesar disso, o resultado da filtragem de Kalman permanece bem mais

suave, reduzindo consideravelmente o efeito dos artefactos.

5.6 Deteção de arritmias

Por definição, arritmia significa irregularidade nos batimentos cardíacos ou na pulsação.

Para que se possa detetar arritmias é necessário primeiro caracterizá-las, através de um modelo (ou

conjunto de regras), para seguidamente o aplicarmos ao sinal que pretendemos analisar.

O modelo proposto consiste na comparação permanente (em tempo real) do valor

instantâneo do ritmo cardíaco (sinal RRV) com a saída do filtro de Kalman (sinal KLM), aplicando-se

de seguida os seguintes critérios:

Page 57: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

53

Critério 1:

A variação instantânea do ritmo cardíaco (sinal KLM) não deve ultrapassar 9

BPM (MAX_DELTA).

O objetivo é concluir-se sobre a estabilidade do sinal KLM. Considera-se estável

se forem verificados 5 (MAX_COUNT) intervalos R-R consecutivos com

variações do ritmo cardíaco contidas no intervalo MAX_DELTA

Variações contidas no intervalo MAX_DELTA não são consideradas arritmias

Alarme registado no momento de gravação: ALM_NoAlarm (ver Tabela 6)

Critério 2:

A variação instantânea do ritmo cardíaco (sinal KLM) situa-se entre 9 BPM

(MAX_DELTA) e 15 BMP (MAX_ARRITMIA)

A conclusão sobre se estamos perante uma arritmia pressupõe a validação das

seguintes duas condições:

o Antes desta variação, o sinal KLM apresentava-se estável, de acordo

com o critério 1

o A variação não está associada a um artefacto, verificando-se que um

mínimo de 5 intervalos R-R (DIST_ARTEFACT) a antecede

Alarme registado no momento de gravação: ALM_Arritmia (ver Tabela 6)

Critério 3:

A variação instantânea do ritmo cardíaco (sinal KLM) situa-se acima de 15 BMP

(MAX_ARRITMIA)

A conclusão sobre se estamos perante uma arritmia pressupõe a validação das

duas condições mencionadas no critério 2

Alarme registado no momento de gravação: ALM_FaltaQRS (ver Tabela 6)

Mostram-se de seguida exemplos destes critérios, aplicados as sinais recolhidos em

duas sessões diferentes. É importante salientar que para uma aplicação real do mHolter, os

parâmetros associados aos critérios acima definidos deverão ser testados em vários cenários e

sujeitos a afinações de modo a se evitar, tanto quanto possível, situações de falso alarme.

Na Figura 40, podemos ver identificada uma arritmia, detetada no intervalo representado

pelo retângulo vermelho.

Page 58: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

54

Figura 40 - Deteção de arritmia por comparação dos ritmos RRV e KLM

Esta arritmia cumpre o critério 2 anteriormente definido, que resulta da verificação de

estabilidade, distância mínima do último artefacto e variação do ritmo cardíaco superior ou igual a 9

(MAX_DELTA) batimentos por minuto:

(21)

Na Figura 41, podemos ver um outro exemplo de deteção, sendo desta vez detetada

uma arritmia irregular.

Page 59: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

55

Figura 41 - Deteção de arritmia irregular por comparação dos ritmos RRV e KLM

A arritmia cumpre o critério 3 anteriormente definido, que resulta da verificação de

estabilidade, distância mínima do último artefacto e variação superior ou igual a 15 BMP

(MAX_ARRITMIA):

(22)

Neste exemplo, a deteção de arritmia irregular foi verificada por alteração do sinal

original, no qual se eliminou propositadamente um complexo QRS, através de uma opção

disponibilizada pela aplicação mHolter para este efeito (simulação).

Complexo QRS eliminado

Page 60: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

56

6 Conclusões

O objetivo estabelecido para a presente dissertação foi desenvolver e implementar um

sistema de aquisição e processamento contínuo do Eletrocardiograma (Holter) para telemóvel.

Desenvolvido para um telemóvel Nokia com o sistema operativo Symbian S60 e linguagem de

programação Python, o mHolter adquire, processa em tempo real e regista o eletrocardiograma,

identificando artefactos e detetando possíveis cenários de arritmias, através de um filtro de Kalman. A

aplicação de visualização oHolter, igualmente desenvolvida em Python (para ambiente Windows),

disponibiliza um conjunto estendido de funcionalidades de procura e visualização posterior dos

registos criados.

Aliado ao facto de se encontrar presente na vida de todos nós, o telemóvel disponibiliza

cada vez mais uma maior capacidade de processamento, transformando-se numa potencial

plataforma de desenvolvimento de aplicações ligadas à monitorização de pacientes com necessidade

de vigilância contínua, contribuindo assim para o diagnóstico e prevenção de doenças, e

consequentemente para a melhoria da qualidade de vida destes pacientes.

Os algoritmos propostos para a deteção de artefactos mostraram-se na prática bastante

eficazes, contribuindo fortemente para uma maior isenção de ruído nos sinais a serem processados

pelos estágios seguintes: interpolação, filtragem e deteção de arritmias. A seleção de uma

parametrização adequada do filtro de Kalman permitiu cumprir o objetivo proposto de deteção de

arritmias. Contudo, e com vista a uma eventual versão comercial do produto, a parametrização deve

ser ajustada com base em testes reais sobre a uma população representativa, que inclua pacientes

com problemas de arritmia, confrontados posteriormente os resultados com a opinião final do médico

cardiologista.

A arquitetura modular do sistema mHolter e restantes funcionalidades disponibilizadas

pelo módulo de aquisição da Zephyr, tais como a obtenção da temperatura, respiração, posição

(horizontal/vertical), sensor de aceleração, permitem não só o desenvolvimento de outros algoritmos

de deteção de anomalias, como também de novas funcionalidades que tirem partido desta

informação, ficando o desafio para futuros projetos de desenvolvimento.

Uma nota final sobre a linguagem de programação Python, que apesar de se apresentar

bastante flexível e ótima para o desenvolvimento rápido de protótipos, trata-se contudo de uma

linguagem de script (não compilada), pelo que podem ser consideradas outras alternativas, como por

exemplo o C++ ou Java, caso se pretenda desenvolver versões comerciais do produto.

Page 61: Sistema Holter de Aquisição e Processamento contínuo do ...E7%E3o.pdfO eletrocardiograma é contudo, o método rápido, simples e indolor, podendo ser realizado em vários cenários,

57

7 Referências

[1] Cardiovascular diseases. World Health Organization (WHO). Fact sheet N°317, September 2011.

Disponível em: http://www.who.int/mediacentre/factsheets/fs317/en/index.html

[2] Biomedical signal acquisition, processing and transmission using smartphone. Department of

Electronics / Biomedical Engineering, Universidad de Valparaíso, Universidad Técnica Federico Santa

María, Casilla 110-V, Valparaíso, Chile

[3] Biologia cardiovascular. Manual MERCK (biblioteca online). Disponível em:

http://www.manualmerck.net/?id=40

[4] Zephyr - BioHarness Bluetooth Developer Kit, disponível em:

http://www.zephyr-technology.com/store/btdeveloperkit.html

[5] Especificações do Nokia 5250. Obtido em Março de 2011, de Nokia Portugal:

http://www.nokia.pt/produtos/todos-os-modelos/nokia-5250/especificacoes

[6] Kalman, R. E. 1960. “A New Approach to Linear Filtering and Prediction Problems,” Transaction of

the ASME—Journal of Basic Engineering, pp. 35-45 (March 1960).

[7] Greg Welch and Gary Bishop. An Introduction to the Kalman Filter, July 2006.

[8] Biomedical Signal Analysis - A case study approach, Rangaraj M. Rangayyan, University of

Calgary

[9] Bruno Pereira, I. S. (2008). Sistema de aquisição de sinais biomédicos baseado num telefone

celular - Aplicação na estimação da temperatura central para determinação do ciclo circadiano do

sono.

[10] Python. (s.d.). Python Programming Language. Obtido Março de 2011, de Official Website:

http://www.python.org/

[11] S., J., & T., V. (2007). Mobile Python - Rapid Prototyping of Applications on the Mobile Platform.

Chichester: Wiley.

[12] André Batista, (2009). Monitorização contínua e detecção automática de anomalias cardíacas por

telemóvel.

[13] Guimarães, J.I. Sociedade Brasileira de Cardiologia. Diretriz de interpretação de

eletrocardiograma de repouso.

[14] Introdução ao Python para S60. Disponível em:

http://www.developer.nokia.com/Community/Wiki/Introdu%C3%A7%C3%A3o_ao_Python_para_S60

[15] ECG Diagnostics - Pocket Guide, Edward K. Chung, M.D, Black well Science

[16] Introduction to Biomedical Engineering, Second Edition, John D. Enderle, Susan M. Blanchard &

Joseph D. Bronzino, Elsevier Academic Press

[17] Biomedical Engineering and Design Handbook, Second Edition, Myer Kutz, McGraw Hill

[18] Measuring Your Maximum Heart Rate (HRmax) - Exercise zones. Disponível em:

http://www.prime-fit.com/c_hrmax.htm