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.