Prévia do material em texto
Abstract— This article discusses a problem found in healthcare facilities, Brazilian and worldwide: errors in drug administration. Based on a research involving the rate of mistakes per case studied, it is noticed the result is shocking. Considering such data, the proposal of an automatized system that aids healthcare professionals on reducing mistakes was created. Index Terms — Administration erros, biometrics, hospital automation, medicine, MySQL. Resumo— Este artigo discorre sobre um problema encontrado em hospitais e clínicas de saúde de todo o Brasil e do mundo: erros na administração de medicamentos. Baseado em pesquisas de levantamento da porcentagem de erros cometidos por caso consultado, percebe-se que o resultado é surpreendente. Com base nesses dados, foi criada a proposta de um sistema automatizado que auxilie os profissionais de saúde na redução de erros. Palavras chave — Automação hospitalar, biometria, erros de administração, medicamentos, MySQL. I. INTRODUÇÃO Com a evolução dos dispositivos de acesso às redes de dados e a quantidade de informações disponíveis, torna-se cada vez mais necessária a utilização de recursos que permitam sua análise e interpretação para que possam ser usadas na tomada de decisões. Em alguns tipos de ambientes o erro admitido por estes sistemas deve ser mínimo, como no caso de hospitais, clínicas e quaisquer outros que lidam com a vida. Pesquisas referentes a erros de medicação apontam uma porcentagem substancial de equívocos conduzidos por profissionais de saúde em relação à dosagem, horário, medicamento e até mesmo troca de pacientes. As Figuras 1 e 2 mostram os resultados em uma destas. Em 2016, a Escola de Enfermagem da USP realizou um estudo em cinco hospitais com aproximadamente cinco mil doses de medicação. O resultado apontou 30% de erro na administração de medicamentos, sendo 77,3% dos enganos relativos ao horário de aplicação. No que tange à essa questão, especialistas afirmam que um atraso ou adiantamento, mesmo que seja de 60 minutos, pode trazer consequências indesejáveis, Trabalho de Conclusão de Curso apresentado ao Instituto Nacional de Telecomunicações, como parte dos requisitos para a obtenção do título de Bacharel em Engenharia de Controle e Automação. Aprovado pela comissão julgadora em xx/xx/2018: prof. Dr. Yvo Marcelo Chiaradia Masselli / INATEL – Orientador e Presidente da Comissão Julgadora, prof. Prof. Dr. tais como ineficiência no caso de atraso ou sobre dose no caso de adiantamento, podendo causar uma intoxicação. Outros 14,4% de erros são de dosagem; 6,1% em trocas na via de aplicação; 1,7% de medicamento não autorizado e 0,5% de troca de pacientes [1]. Figura 1 - Distribuição dos erros de medicação [2] Figura 2 - Erros que mais ocorrem na administração de medicamentos [3] Levando-se em conta tais problemas, verificou-se a necessidade do projeto de um equipamento que minimize os erros por parte dos profissionais de saúde. Este trabalho propõe, então, a criação de um instrumento capaz de realizar esta função. O objetivo é reduzir o erro na dispensa de Alexandre Baratella Lugli / INATEL – Membro da Comissão Julgadora, prof. xxxx / INATEL – Membro da Comissão Julgadora. Coordenador do Curso de Engenharia de Controle e Automação: Prof. Dr. Alexandre Baratella Lugli. Proposta de um Sistema de Controle Automático Para a Dispensa de Medicamentos em Ambientes Clínicos e Hospitalares Luiz Guilherme Silva Vieira & Thiago Pieve Miranda medicamentos por meio de um sistema automatizado, que conta com um banco de dados para o armazenamento das informações pessoais e receituário dos pacientes, juntamente com um leitor biométrico para a identificação, um microcontrolador para fazer todo o processamento necessário e um compartimento circular produzido através de material polimérico, com 8 (oito) divisórias, igualmente espaçadas, onde serão armazenados os medicamentos, sendo a posição desta estrutura controlada por um motor de passo. A seguir são apresentadas as etapas de desenvolvimento de hardware e software essenciais à construção do equipamento. II. FUNDAMENTOS TEÓRICOS A. Banco de dados Um banco de dados é um tipo de recurso computacional voltado ao armazenamento de informações que se relacionam entre si de maneira prática e eficaz, podendo conter grandes volumes de dados. É gerido por um conjunto de ferramentas que possibilitam a manipulação dos dados, segurança contra falhas e integridade dos acessos, e a visibilidade de seus registros ao usuário[4]. B. Controle de dispensa de medicamentos O controle da dispensa de medicamentos se faz necessário na orientação do profissional de saúde quanto ao tipo, dosagem e horário do medicamento administrado, além da identificação do paciente e o tipo de infusão. A ideia é que o sistema somente libere a medicação depois da identificação do paciente. Isto é feito por meio de consulta ao banco de dados. Enquanto isso, aqueles que não foram prescritos ao indivíduo, têm seus acessos bloqueados e só serão liberados ao paciente correto. C. Identificação do paciente Ao dar entrada na unidade de atendimento médico, o paciente deve ser cadastrado e devidamente identificado. A identificação é comumente realizada por meio de pulseiras, etiquetas adesivas ou códigos de barras [5][6]. Podem ser utilizadas também tags de identificação por rádio frequência ou biometria. Estes dados devem ser armazenados e podem ser compartilhados entre os profissionais envolvidos. D. Plataformas de hardware O sistema possuirá um leitor biométrico para identificação do paciente, um display LCD para informar a dosagem do medicamento a ser aplicado, drivers e motores de passo, assim como um sistema de processamento implementado em uma plataforma microcontrolada de prototipagem rápida, como, por exemplo, Arduino, MSP e Raspberry. III. MATERIAIS E MÉTODOS A. MySQL O uso do banco de dados se faz necessário no trabalho pois é preciso um lugar para armazenar as informações dos pacientes. Então foi utilizado o sistema de gerenciamento MySQL, compatível com o padrão SQL (sigla em inglês para Linguagem de Consulta Estruturada). Trata-se de um sistema de gerenciamento de banco de dados amplamente utilizado, gratuito, de implementação leve, de simples acesso e aprendizado, possuindo inúmeros tutoriais e aulas disponíveis online. Também é facilmente integrado com o servidor web e linguagens de programação de sites, especialmente PHP. Este sistema pode ser programado em linguagem C e C++, fornece mecanismos de armazenamento transacional (sequência de operações tratadas de forma única) e não transacional. B. Arduino Arduino é uma plataforma de prototipagem rápida e foi empregado neste trabalho por possuir fácil acesso e utilizar uma linguagem de programação bastante difundida. Existem vários modelos de Arduino, tais como Uno, Mega 2560, Leonardo e Due, entre outros. A diferença entre eles está basicamente no número de portas analógicas, digitais e PWMs (sigla em inglês para Modulação por Largura de Pulso). No presente trabalho, foi usado o modelo Uno, ele conta com 14 portas digitais, das quais 6 podem ser usadas como saída PWM e 6 portas para entradas analógicas. Seus pinos digitais trabalham com a tensão de 5VDC e são capazes de oferecer ou consumir até 40mA [7]. Um exemplar pode ser visto na Figura 3, a seguir. Figura 3 - Arduino Uno Apresenta-se como um hardware barato, flexível, disponibilizado em códigoaberto e possui extenso material online para ajuda no desenvolvimento de projetos através da língua C e C++. Admite integração com outros dispositivos ou aparelhos como shields, os quais permitem a conexão com redes ethernet/wifi, leitores biométricos, displays LCD e conectividade com computadores [8]. C. Shield Ethernet Consiste em uma placa que, quando integrada ao Arduino, o permite se comunicar com uma rede local ou internet [9]. Compreende um dispositivo de fácil utilização, com comunicação rápida e grande confiabilidade na troca de informações. Seu emprego é necessário na troca de dados entre o microcontrolador e o servidor onde está presente o banco de dados. Foi utilizado o módulo W5100 (que pode ser visto na Figura 4), e é alimentado por 3,3 VDC, já fornecido pelo próprio microcontrolador. Além disso, é compatível com a biblioteca oficial do Arduino [10]. Figura 4 - Shield Ethernet W5100 D. Leitor Biométrico Para identificação dos pacientes, será utilizado o Leitor Biométrico FPM10A do fabricante Adafruit Industries. O mesmo foi escolhido pela compatibilidade com o Arduino. É capaz de armazenar até 162 impressões digitais em sua memória interna. A Figura 5 o mostra. Figura 5 - Leitor Biométrico FPM10A De forma geral, seu funcionamento se inicia com a leitura das impressões digitais e, em seguida, a comparação com aquelas disponíveis no banco de dados. Caso haja correspondência, uma confirmação é enviada ao Arduino. Sua saída é dada através de um pacote de dados serial que informa ao Arduino uma string com o número referente à digital reconhecida [11]. E. Grove Starter Kit Se trata de uma plataforma eletrônica modular para prototipagem rápida e foi criado para facilitar a utilização de acessórios juntamente ao Arduino, não sendo necessário soldar ou montar um circuito em protoboard. Consiste em um shield base, com vários módulos com conectores padronizados, dos quais foi usado um, o display, explicado na sequência [12]. A Figura 6 mostra o shield base. Figura 6 - Shield base do Grove Starter Kit F. Display A comunicação entre o sistema e o operador foi feita a partir de um display LCD do tipo 16×2 (16 colunas e 2 linhas) e com luz de fundo no padrão RGB (sigla em inglês para as cores vermelho, verde e azul), o que permite deixar o fundo do display colorido. Nele é exibido o nome do paciente identificado, seguido pelo horário correto de ministração e medicamento receitado. É mostrado pela Figura 7[12]. Figura 7 - Display LCD utilizado G. Motor de passo Um motor de passo permite situar o seu eixo muito precisamente em qualquer posição, isso porque sua rotação é dividida em vários passos. Sua utilização é relevante quando se precisa de movimentos exatos, categóricos, sendo possível, ainda, regular sua velocidade e torque [13]. A Figura 8 ilustra seu esquema elétrico. Figura 8 - Esquema do motor. Esse tipo de motor possui quatro bobinas e, quando uma é energizada, cria-se um campo magnético e um lado do imã é atraído. Se duas bobinas forem energizadas ao mesmo tempo, o rotor fica na posição entre elas. A partir dessas características é possível controlar o ângulo do rotor utilizando o passo completo ou meio passo. Foi utilizado o motor de modelo 28BYJ-48 - 5V, que opera com tensão nominal de 5VDC, torque igual a 34,3 mN.m, redução de 1/64, o que permite um passo de 0,088° [14]. A escolha foi feita em função do baixo custo. Vide imagem na Figura 9. Figura 9 - Motor de passo utilizado. [14] O Arduino não é capaz de entregar a potência que o motor exige para seu acionamento, portanto é necessário um driver para fornecer essa potência. O driver utilizado é o ULN2003A, que entrega no máximo 500 mA em cada uma de suas saídas, sendo este próprio para ser usado junto ao motor escolhido. Seu esquema elétrico pode ser visto na Figura 10, onde os pinos de 1B a 7B representam as entradas do driver que são conectadas ao Arduino, enquanto os pinos de 1C à 7C representam a saída do driver e são ligadas ao motor. Figura 10 – Esquema elétrico do driver. [15] IV. APLICAÇÃO PROPOSTA A partir das informações até então apresentadas, é iniciada a implementação prática da solução proposta. O primeiro passo é a construção de um banco de dados no ambiente MySQL capaz de armazenar as informações dos pacientes, e seus respectivos receituários. A figura 11 apresenta as principais informações presentes no banco de dados. Figura 11 - Banco de dados do sistema Em seguida, é desenvolvido o script capaz de estabelecer a comunicação entre o Arduino e o banco de dados. Para isto foi utilizada a linguagem de programação Python. A Figura 12 mostra conexão entre o Arduino e o Python na rede local criada. Figura 12 - Conexão entre Arduino e o Python Estabelecida a conexão, é possível a leitura da impressão digital do paciente. A mesma é, temporariamente, armazenada na memória do próprio leitor biométrico. Confirmada a leitura, o leitor envia uma resposta para o Arduino através da conexão serial, informando a posição em que os dados deste paciente se encontram no banco de dados, como pode ser visto na Figura 13. Figura 13 - Informação enviada do leitor biométrico para o Arduino Novas impressões digitais podem ser armazenadas através de um código padrão pronto, encontrado como exemplo na própria biblioteca do leitor biométrico, no software de programação do Arduino. As exclusões de digitais também podem ser feitas da mesma maneira. Para isso, é necessário que o sistema esteja conectado a um computador central. O microcontrolador então realiza uma varredura no banco, até encontrar o paciente exato. Com o paciente devidamente identificado, o Python faz a comparação do horário atual com o horário indicado para a aplicação do medicamento e, se estiver correto, é enviada ao Arduino as informações do banco de dados, juntamente com a rotação, em graus, do motor para que este libere a medicação correta. O Arduino, por sua vez, ao receber essas informações, passa a ordem para o motor e, ao mesmo tempo, envia ao display LCD informações sobre o paciente e sua mediação, além de acender uma luz verde no fundo. A bandeja fica um tempo pré-determinado na posição correta e, em seguida, retorna à sua posição inicial. A Figura 14 ilustra todo esse procedimento. Figura 14 - Troca de informações entre Python e Arduino e ordem do Arduino ao motor Caso os horários atual e o prescrito não sejam os mesmos, o Arduino ainda recebe informações sobre o paciente, porém com rotação nula, o display LCD informa o nome do paciente, o medicamento prescrito e o horário correto de ministração, acendendo uma luz vermelha no fundo para indicar erro e o motor não se move. A comunicação entre Python e Arduino para este caso pode ser vista na Figura 15. Figura 15 - Troca de informações entre Python e Arduino A Figura 16, a seguir, faz a comparação das informações de ambos os casos de leitura, no horário correto de administração e no incorreto. Figura 16 - Comparação de informações de leitura no horário correto de administração e do horário incorreto É importante destacar que foi inclusa, na programação, uma tolerância de 10 (dez) minutos para mais ou para menos na aplicação do medicamento. A Figura 17 mostra um fluxograma referente à operação do sistema. Figura 17 - Fluxograma do sistema Em seguida são apresentados detalhes referentes à interligaçãodos elementos envolvidos. A shield base do Grove Starter foi encaixada na parte superior do Arduino, como na Figura 18. Figura 18 - Montagem da shield base sobre o Arduino Em seguida, a shield Ethernet, encaixada sobre a shield base. A Figura 19 mostra o resultado dessa interligação. Figura 19 - Vista lateral da montagem V. TESTES E RESULTADOS Foram realizados testes acerca do funcionamento do sistema, a fim de avaliar situações de uso real, tais como o comportamento quando realizada uma leitura fora do horário de aplicação do remédio, descrita no primeiro cenário, a leitura no horário correto da ministração do medicamento como no segundo cenário e, por fim, o comportamento mediante uma obstrução da bandeja como apresentado no terceiro cenário. A seguir seguem os resultados: A. Cenário 1 Foi realizada uma leitura fora do horário correto de aplicação do medicamento e o sistema se comportou como esperado. Ou seja, não executou a rotação da bandeja e informou no display o horário correto da aplicação, deixando também a luz de fundo da tela na cor vermelha. A Figura 20 exibe a bandeja em sua posição inicial, que assim permaneceu após a leitura da digital. Figura 20 - Bandeja na posição inicial Já a figura 21 exibe a resposta do sistema com a indicação do paciente, do medicamento e do horário a ser tomado. Figura 21 - Display informando o horário correto da aplicação B. Cenário 2 Neste cenário foram realizadas duas leituras dentro do horário de aplicação do medicamento e, em ambas, a bandeja também funcionou como o esperado, girando a quantidade certa de graus para a liberação da medicação receitada, aguardando o tempo necessário para retirada de tal, indicando no display o nome do paciente, o remédio receitado e o horário de aplicação, ficando também com a luz de fundo na cor verde e retornando a bandeja à sua posição inicial. Tomando a Figura 20 novamente como posição inicial, as Figuras 22, 23 e 24 mostram o sistema atuando. Figura 22 - Bandeja girou 45° no sentido horário Figura 23 - Display informando o nome, remédio e horário de aplicação Figura 24 - Segunda leitura, bandeja girou 225° no sentido horário C. Terceiro cenário Neste foi testada a reação do sistema caso algo obstrua a bandeja durante o giro. Neste cenário foi constatada uma falha. Com a obstrução, a bandeja não girou como deveria já que o motor não é forte o suficiente para isso. Para o sistema esta falha foi transparente, considerando que a rotação foi completa e a medicação liberada. A Figura 25 ilustra esse teste. Figura 25 - Teste de obstrução da bandeja Foi constatado também que o sistema não sabe encontrar sua posição inicial por conta própria, portanto a bandeja deve ser montada já nesta posição pelo usuário. Inicialmente os testes foram realizados com um botão simulando o leitor biométrico, a fim de validar a proposta. Em seguida o mesmo foi substituído pelo leitor biométrico. Os resultados se mantiveram os mesmos. O último teste realizado teve como objetivo verificar a reação do sistema caso fosse realizada uma nova leitura de digital durante o processo de liberação do medicamento. Como esperado, essa nova tentativa de leitura não interferiu no funcionamento do sistema, pois, conforme a programação desenvolvida, a leitura é realizada apenas quando o sistema estiver em estado de stand by. VI. CONCLUSÕES Com os testes realizados, conclui-se que o sistema consegue fazer a comunicação entre o banco de dados e o Arduino e também realiza com sucesso a função de liberar o medicamento correto e voltar à sua posição inicial, desde que nada obstrua o giro da bandeja. Essa, por sinal, pode ser considerada a principal falha do trabalho e, talvez, possa ser resolvida utilizando-se um motor mais potente e uma programação que possibilite a localização automática do “zero de referência" do motor. Também se pode concluir que ainda não se trata de um produto final para ser disponibilizado no mercado, pois não foram realizados estudos a respeito da radiação e do campo eletromagnético emitido pelo sistema, ficando isso como sugestão para trabalhos futuros. Caso este trabalho venha a se tornar realmente um produto final, possui potencial para reduzir drasticamente os equívocos que ainda acontecem em clínicas e hospitais no mundo todo. REFERÊNCIAS [1] Reis, A. M. M.; Marques, T. C.; Opitz, S. P.; Silva, A. E. B. de C.; Gimenes, F. R. E.; Teixeira, T. C. A.; Lima, R. E. F.; Cassiani, S. H. de B. Errors in medicine administration - profile of medicines: knowing and preventing. Escola de Enfermagem, Universidade de São Paulo, Ribeirão Preto – SP. Disponível em: <http://www.scielo.br/scielo.php?pid=S0103- 21002010000200005& script=sci_arttext> Acesso em: 05 de abr. de 2018. [2] Toffoletto, M. C.; Padilha, K. G. Conseqüências dos erros de medicação em unidades de terapia intensiva e semi-intensiva. Escola de Enfermagem, Universidade de São Paulo, São Paulo - SP. Disponível em: <http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0080- 62342006000200013> Acesso em: 12 de mai. de 2018. [3] Carvalho, V. T. de; Cassiani, S. H. de B.; Chiericato, C.; Miasso, A. I.; Erros mais comuns e fatores de risco na administração de medicamentos em Unidades Básicas de Saúde. Revista Latino-Americana de Enfermagem, Ribeirão Preto – SP. Disponível em: <http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0104- 11691999000500009> Acesso em: 12 de mai. de 2018. [4] KORTH, H.F. e SILBERSCHATZ, A.; Sistemas de Bancos de Dados, Makron Books, 3a. edição revisada, 1999. p.17. [5] Machado, G. S. Protocolo De Identificação De Paciente. Hospital Universitário Dr Miguel Riet Corrêa Jr, Universidade Federal do Rio Grande, Rio Grande – RS. Disponível em: <http://www.ebserh.gov.br/documents/1688403/1688463/PROTOCOL O+IDENTIFICA%C3%87%C3%83O+DO+PACIENTE+FURG+II.pdf/ 0f6520c8-8968-4996-8d36-b279dd46f88e> Acesso em: 11 de jul. de 2018. [6] Qualidade e segurança. Identificação do paciente. Hospital Sírio-Libanês. Disponível em: <https://www.hospitalsiriolibanes.org.br/qualidade- seguranca/Paginas/ identificacao-paciente.aspx> Acesso em: 11 de jul. de 2018. [7] Arduino Uno Datasheet. Disponível em: <https://www.farnell.com/datasheets/1682209.pdf> Acesso em: 18 de jul. de 2018. [8] O que é um Arduino e o que pode ser feito com ele? Disponível em: <http://www.techtudo.com.br/noticias/noticia/2013/10/o-que-e-um- arduino-e-o-que-pode-ser-feito-com-ele.html> Acesso em: 07 de mai. de 2018. [9] Conheça os shields e incremente seu Arduino com eles. Disponível em: <http://blog.fazedores.com/conheca-os-shields-e-incremente-seu- arduino-com-eles/> Acesso em: 11 de jul. de 2018. [10] Ethernet Shield W5100 para Arduino. Disponível em: <http://www.baudaeletronica.com.br/ethernet-shield-w5100-para- arduino.html> Acesso em: 11 de jul. de 2018. [11] User Manual, Fingerprint Identification Module. Disponível em: <https://www.usinainfo.com.br/index.php?controller=attachment&id_att achment=112> Acesso em: 11 de mai. de 2018. [12] Grove Starter Kit v3. Disponível em: <http://wiki.seeedstudio.com/Grove_Starter_Kit_v3/> Acesso em: 11 de jul. de 2018. [13] Motor de Passo – Como funciona? Disponível em: <https://athoselectronics.com/motor-de-passo-como-funciona/> Acesso em: 11 de mai. de 2018. [14] Kiatronics electronic design and manufacture. Datasheet 28BYJ-48 – 5V Stepper Motor. Disponível em: <https://s3-sa-east- 1.amazonaws.com/robocore-lojavirtual/878/Datasheet28BYJ-48.pdf> Acesso em: 10 de mai. de 2018.[15] Texas Instruments. Datasheet ULN200x, ULQ200x High-Voltage, High- Current Darlington Transistor Arrays. Disponível em: <https://s3-sa-east- 1.amazonaws.com/robocore-lojavirtual/878/datasheetULN200x.pdf> Acesso em: 10 de mai. de 2018.