Simulação de Procedimentos Médicos Usando Java
e Tecnologias da Web∗
Maria Andréia Formico Rodrigues¹
José Gilvan Rodrigues Maia²
Nabor das Chagas Mendonça¹
¹ Mestrado em Informática Aplicada – Centro de Ciências Tecnológicas
Universidade de Fortaleza
{mafr,nabor}@unifor.br
² Departamento de Computação
Universidade Federal do Ceará
{[email protected]}
Resumo: Este artigo descreve um ambiente gráfico distribuído para a simulação realista de
procedimentos médicos. O ambiente foi totalmente desenvolvido em Java, e utiliza a
tecnologia de objetos distribuídos e ferramentas da Web para permitir uma melhor
integração e distribuição da carga de trabalho entre os componentes da simulação.
1. Introdução
Avanços recentes das tecnologias de computação, tais como os sistemas de realidade virtual e o
surgimento da Internet e da Web como um meio eficiente para o uso de programas aplicativos
em ambientes colaborativos, têm aumentado a demanda por sistemas para simulação de
procedimentos médicos auxiliados por computador. Estes sistemas têm a vantagem de oferecer
uma maior flexibilidade de uso a um custo e risco consideravelmente menores, quando
comparados aos sistemas para treinamento médico tradicionais [9]. Além disso, a execução de
sistemas de simulação em ambientes colaborativos poderá afetar drasticamente a forma de
treinamento dos profissionais envolvidos. Por exemplo, um cirurgião experiente poderia
conduzir (e repetir) a simulação de um mesmo procedimento com a participação ativa de vários
estudantes localizados em pontos geograficamente dispersos. Por outro lado, a simulação de
procedimentos médicos de forma interativa e realista exige cálculos intensivos do ponto de vista
computacional, o que tende a consumir grande parte do poder de processamento das máquinas
onde a simulação é realizada. Portanto, um sistema de simulação desta natureza deve buscar não
somente o realismo na apresentação do cenário simulado para os seus usuários, mas também
mecanismos que explorem de maneira eficiente os recursos computacionais disponíveis.
Este artigo descreve os resultados obtidos na construção de um ambiente gráfico interativo
e computacionalmente eficiente para simulação de procedimentos médicos baseado em
tecnologias da Web. Aspectos importantes do ambiente de simulação, como visualização
gráfica, interação com o usuário, análise de modelos deformáveis, e comunicação entre
componentes remotos, foram implementados utilizando ferramentas de domínio público
conhecidas e/ou de fácil customização. Isto possibilitou que a primeira versão do ambiente fosse
desenvolvida em um tempo relativamente curto, e a um custo significativamente menor, quando
comparado a outras ferramentas de simulação tradicionalmente adotadas por profissionais da
área médica. Outro aspecto positivo do ambiente proposto é o seu alto grau de interatividade, o
que é obtido com a utilização eficiente e racional dos recursos computacionais disponíveis,
levando-se em conta as características das máquinas onde o ambiente é executado. O ambiente
foi totalmente desenvolvido na linguagem Java, utilizando-se os pacotes Java3D [6] para
∗
Este trabalho teve o suporte financeiro do CNPq, através do Projeto Individual de Pesquisa Kit-Enxoval
PROTEM -CC, Processo 381503/01-1.
visualização e interação com o usuário, e RMI [8] para comunicação entre componentes
remotos. O uso de Java, através da tecnologia de applets, tem a vantagem adicional de permitir
que o ambiente seja disponibilizado e acessado de forma distribuída, utilizando-se ferramentas
tradicionais da Web. Outro benefício importante, decorrente das características de
independência de plataforma e mobilidade de código oferecidas pela linguagem Java, é a
redução nos custos de instalação e manutenção do ambiente de simulação em máquinas
geograficamente dispersas e possivelmente heterogêneas.
2. O Ambiente de Simulação
A simulação de procedimentos médicos de forma interativa e realista exige cálculos intensivos
para o tratamento de colisão e deformação de objetos do ambiente virtual. Para permitir uma
melhor distribuição desses cálculos através das máquinas que executam a simulação, os
componentes do ambiente foram implementados seguindo uma arquitetura cliente-servidor
flexível que pode ser configurada para melhor explorar os recursos computacionais disponíveis
(Figura 1). Por exemplo, pode-se alocar o componente responsável pelo cálculo das
deformações para máquinas com maior poder de processamento, e os componentes de
visualização e interação com o usuário para máquinas com maior capacidade gráfica.
Figura 1: Arquitetura do ambiente de simulação.
A aplicação cliente foi decomposta em quatro módulos principais: Interface, Simulação,
e Comunicação. O módulo Interface implementa a interface gráfica e os mecanismos de
interação com o usuário do ambiente. Ele foi desenvolvido utilizando-se ao máximo dos
recursos de visualização gráfica oferecidos pela API Java3D. A parte relativa à animação e ao
controle de objetos fica a cargo do módulo Simulação, que também interage com o módulo
Colisão para detectar e responder a colisões entre objetos. O módulo Comunicação abstrai dos
outros módulos os mecanismos necessários para a comunicação com os componentes do
servidor, que é feita através da tecnologia RMI.
O servidor do ambiente é composto por três módulos básicos: Interface de Análise, Análise
Estrutural, e Comunicação. O primeiro módulo oferece uma interface padronizada para acessar um
sistema externo de análise estrutural, abstraindo dos outros módulos todos os mecanismos de
acesso (invocação, comunicação, conversão de dados, etc.) que são específicos para um
determinado sistema de análise estrutural. O segundo módulo corresponde ao sistema de análise
estrutural propriamente dito, atualmente, baseado na ferramenta de domínio público FElt [3] para
análise de elementos finitos [1]. Ele é utilizado pelo módulo Simulação da aplicação cliente para
recalcular a geometria dos objetos deformáveis como parte do procedimento de resposta às
colisões. A análise de deformação é realizada através de uma chamada de sistema ao executável
de mais baixo nível dentre os módulos componentes da ferramenta. A comunicação entre este
módulo e o módulo Interface de Análise ocorre através da criação e interpretação de arquivos de
entrada e saída. Em uma implementação mais sofisticada, o módulo Análise Estrutural poderia
estar incluso em uma classe específica através de métodos nativos, eliminando a necessidade de
uma chamada ao sistema operacional para invocar o sistema e de gerar/carregar os arquivos de
entrada/saída. Tal como ocorre na aplicação cliente, a função do módulo Comunicação do
servidor é isolar os detalhes do mecanismo de comunicação com a aplicação cliente dos outros
módulos. Vale ressaltar que a arquitetura do ambiente foi projetada desde o início para ser
Colisão,
independente de mecanismos específicos de comunicação e análise estrutural, e pode ser
facilmente adaptada para outras tecnologias.
3. Estudo de Caso: Simulando Laringoscopia
Para demonstrar a viabilidade da solução proposta, o ambiente de simulação foi instanciado para
o contexto específico de um procedimento de laringoscopia [10]. Este é um procedimento
médico não-trivial e de rotina, realizado por anestesistas, onde um tubo endotraqueal é inserido
na laringe do paciente com a ajuda de um instrumento chamado laringoscópio. O objetivo é
controlar a respiração do paciente sob efeito de anestesia. O maior obstáculo para a visão direta
da laringe e a conseqüente inserção do tubo endotraqueal é a língua do paciente (objeto
deformável), que deve ser deslocada e comprimida com a ajuda do laringoscópio (objeto rígido).
No contexto da simulação, o usuário interage com o ambiente virtual através da manipulação do
laringoscópio aplicando forças sobre o mesmo. O módulo Simulação da aplicação cliente
consulta o componente de Análise Estrutural do servidor, baseado na ação que o usuário
determina. Por exemplo, se o usuário aplicar uma força no laringoscópio sobre a língua, este
evento implicará numa deformação correspondente da língua que deverá ser calculada pelo
servidor. De posse do resultado da deformação, o módulo Simulação atualiza a geometria da
língua e interage com o módulo Interface para atualizar a pintura da cena. As interações entre os
componentes foram otimizadas para se obter o menor tempo de resposta possível, garantindo
assim um bom grau de interatividade para o ambiente.
Alguns resultados da simulação de um procedimento de laringoscopia são mostrados na
Figura 2. Todas as condições de contorno aplicadas ao modelo de deformação da língua e
mecânico do laringoscópio, utilizadas no modelo de elementos finitos, foram extraídas do
modelo biomecânico do trato respiratório descrito em [10]. Em particular, o comportamento
mecânico do tecido deformável da língua foi simulado usando material linear elástico, devido às
limitações de análise da ferramenta de domínio público utilizada. Entretanto, devido à
flexibilidade da arquitetura distribuída aqui proposta, qualquer outra ferramenta de análise de
deformação não-linear e/ou viscoelástica poderia ter sido empregada como o módulo Análise
Estrutural do servidor.
Figura 2: Resultados da simulação de laringoscopia. Visão frontal (quadros à esquerda) e visão
lateral (quadros à direita), antes e após a compressão da língua pelo laringoscópio.
4. Trabalhos Relacionados
Várias arquiteturas têm sido propostas para simular ambientes gráficos interativos na Web.
Entretanto, a maioria dos trabalhos na área de realidade virtual concentra-se no problema de
distribuição e compartilhamento do mundo virtual. O objetivo deste trabalho é a distribuição dos
componentes de software do ambiente de simulação, de modo a permitir um melhor
balanceamento da carga de trabalho levando-se em conta as características de cada máquina e a
capacidade de transmissão da rede. Um outro trabalho específico para simulação de
procedimentos médicos na Web é descrito em [2]. Entretanto, o sistema proposto foi
implementado utilizando VRML [11] e a ferramenta de colisão V-Collide [5], que, como os
próprios autores atestam, apresentam várias restrições de desempenho para aplicações
interativas. Recentemente, foi proposto um novo método para detecção de colisões em tempo
real, aplicado à área de cirurgia virtual [7]. O método baseia-se nos cálculos das colisões em
nível de hardware e é capaz de acelerar em torno de 100 vezes métodos tradicionais, como
aqueles baseados em bounding-boxes [4]. Nessa linha, um dos objetivos deste trabalho é a
investigação de métodos aproximados mais eficientes para a detecção de colisões, de modo a
aumentar o desempenho do ambiente de simulação e, por conseqüência, o seu grau de
interatividade.
5. Conclusão e Trabalhos Futuros
Este trabalho descreveu um ambiente distribuído para simulação realista de procedimentos
médicos baseado em tecnologias da Web. Entre as principais características do ambiente
destacam-se: uma melhor distribuição da carga de processamento da simulação, considerando as
características do ambiente computacional onde a mesma será realizada; a possibilidade de
compartilhar ferramentas de análise estrutural, normalmente complexas e de alto custo
computacional, entre várias máquinas clientes; e a execução do ambiente de simulação de
maneira distribuída, portável e simplificada, através de mecanismos de execução transparente de
aplicações na Web.
A viabilidade do ambiente foi demonstrada através de um estudo de caso utilizado para
simular um procedimento de laringoscopia. Como trabalhos futuros sugerem-se a instanciação
do ambiente para a simulação de novos procedimentos médicos; a otimização da comunicação
entre a aplicação cliente e servidor através de uma política de atualização de objetos que leve em
conta apenas alterações perceptíveis ao usuário; e a inclusão de outras ferramentas de análise de
elementos finitos que possibilitem novos tipos de análise e materiais (por exemplo, modelos de
deformação não-linear e/ou viscoelástica). O módulo Interface também poderia ser adaptado para
utilizar periféricos não-convencionais que auxiliem na composição de uma experiência mais
imersiva para os usuários, tais como: luvas, capacetes, e dispositivos de entrada para
realimentação de forças no manuseio de instrumentos cirúrgicos.
Referências
[1] Bathe, K-J. (1982) “Finite Element Procedures in Engineering Analysis”, Prentice-Hall.
[2] El-Khalili, N. and Brodlie, K. (1998) “Architectural Design Issues for Web-Based Virtual Reality
Training Systems”, Proc. of the International Conference on Web-based Modeling ε Simulation, pp.
153-158, California, Jan.
[3] Gobat, J. I. and Atkinson, D. (1995) “The FElt (Finite ELement) System: User’s Guide and
Reference Manual”, University of California, San Diego, http://felt.sourceforge.net/felt.ps
[4] Gottschalk, S. and Lin, M. and Manocha, D. (1996) “Obb-tree: A Hierarchical Structure for Rapid
Interference Detection”, Proc. of SIGGRAPH´96, pp. 171-180, Aug.
[5] Hudson, T. C. and Lin, M. C. and Cohen, J. and Gottschalk, S. and Manocha, D. (1997) “V
COLLIDE: Accelerated Collision Detection for VRML”, VRML´97.
[6] Java 3D API Specification (2001), v1.3_alpha2, Javasoft Sun Microsystems, Aug.
[7] Lombardo, J-C and Cani, M-P and Neyret, F. (1999) “Real-time Collision Detection for Virtual
Surgery”, Computer Animation´99, Geneva, May.
[8] Mahmoud, Q.H. (2002), “Distributed Java Programming with RMI and CORBA”, Jan,
http://developer.java.sun.com/developer/technicalArticles/RMI/rmi_corba/.
[9] Rodrigues, M.A.F. (2002) “Aplicações de Novas Tecnologias de Computação para Simulação e
Treinamento de Procedimentos Cirúrgicos”, Anais do XXIX Seminário Integrado de Software e
Hardware, XXII Congresso da SBC, Florianópolis, SC, Jul.
[10] Rodrigues, M.A.F. and Gillies, D. and Charters, P. (2001) “A Biomechanical Model of the Upper
Airways for Simulating Laryngoscopy”, Computer Methods in Biomechanics and Biomedical
Engineering, 4(2): 127-148, Gordon & Breach PubIishing Group.
[11] VRML Cons. Inc. (1997), “The Virtual Reality Modeling Language”, ISO/IEC 14772-1.
Download

Simulação de Procedimentos Médicos Usando Java e Tecnologias