Conversão de Exames Laboratoriais Armazenados em Texto Livre para XML: Uma Aplicação Para Telefones Celulares Amir Neves Ferreira Velho Júlio César Bastos de Figueiredo Instituto do Coração (InCor) da Faculdade de Medicina do Hospital das Clínicas da Universidade de São Paulo, Brasil Resumo - Este trabalho descreve uma metodologia para a de conversão de laudos de exames laboratoriais, armazenados em texto, livre para documentos estruturados em XML. O projeto foi desenvolvido no sentido de permitir facilmente a troca de laudos padronizados entre diversas instituições de saúde. Apresentamos também uma aplicação prática desta metodologia na construção de um sistema para a distribuição de laudos clínicos via telefone celular. Palavras-chave: Informática Médica, XML, WAP. Abstract - This work describes a methodology developed to convert laboratorial reports, stored as free text, to structured XML documents. The project was developed to allow the exchange of standard clinical reports between different health institutions. We also present a practical application of this methodology by the construction of a system for distribution of laboratorial reports trough cellular phones. Key-words: Medical Informatics, XML, WAP. Introdução Este trabalho teve como objetivo principal atacar o problema da falta de estrutura semântica existente hoje na maioria das formas usuais de armazenamento de laudos clínicos - normalmente feita em texto livre. Buscou-se desenvolver uma metodologia de conversão destes documentos para documentos estruturados, de tal forma a permitir consultas e troca de dados e informações entre diferentes instituições de saúde. Um segundo objetivo foi o de desenvolver uma aplicação que fizesse uso da forma estruturada dos laudos. A escolha foi a de desenvolver um sistema de distribuição, via telefone celular, utilizando WAP - Wireless Application Protocol, dos exames laboratoriais estruturados (a estruturação é útil no que diz respeito aos processos de formatação dos dados para apresentação). A idéia é permitir aos médicos e pacientes acessos rápidos, seguros e confiáveis aos dados que são considerados importantes na tomada de decisões clínicas, e que por isso devem poder ser acessados o mais rápido possível. Metodologia Para que fosse possível alcançar os objetivos propostos, inicialmente partiu-se de um modelo de arquitetura básica (Figura 2) que descrevia os elementos principais do projeto. Definiu-se como requisito que a metodologia desenvolvida pudesse ser configurada e adaptada facilmente para ser utilizada em outras situações, onde exista a necessidade de se extrair dados de um documento em texto livre colocando-os em um formato estruturado. Para atender a este requisito, buscou-se o uso de ferramentas de desenvolvimento que seguissem a conceitos teóricos bem fundamentados – como no caso das expressões regulares – ou a padronizações de órgãos reconhecidos – como no caso do XML. Para a escolha das ferramentas foram definidos 4 processos principais : • Mapeamento do Texto • Padronização dos Dados Conteúdo Estrutura Formatação • Apresentação • Controle de Acesso A seguir apresentaremos as metodologias adotadas para tratamento de cada um dos processos acima descritos (apontando as características de flexibilidade e robustez que as fizeram serem escolhidas) e descreveremos as etapas de desenvolvimento (enfocando parte dos problemas e soluções encontradas). Por fim, apresentaremos alguns dos resultados obtidos juntamente com algumas direções futuras. <abc> <def>***</def> <ghi> <jkl>***</jkl> <jkl>***</jkl> <jkl>***</jkl> </ghi> <ghi> <jkl>***</jkl> <jkl>***</jkl> <jkl>***</jkl> </ghi> </abc> Servidor Conversor B.D. XML WEB / WAP B.D. XML Adfçldasf alfdkç fçlkdsf çlkafl çakdk çsldak fçaslkfçdslfkaçldfk çlfkaçldkf çladkf çladkf çldkf kdfçladk çfk asçldkf çlkf sçldkf lçkf kdsf çldkf alsçkf çalskfd çldskf çdlkf çldskf çlskf çalkf lkasf çlska fçlskf çlksçdlfkdasçlkf lçkdf kçldsfk çlkafd çlkdf çlkdaf çldksf çlaksdf çladskf çladkf çlkdf çldkf akçldfk çdslfk çdslkf çldaksf çlakds çfkalçsk çaslkf çdaslfk çaldsfk alkfd çalfk çalkf açl çlakf daçlkf açldkf çlakdf çladkfl alkjf adlkfalkdsfj lakjfdlkdfjalkdfjaa kjkjkjka Servidor LDAP Mapeamento dos Exames Laboratoriais Distribuição dos Exames via WAP Figura 2: Arquitetura do projeto descrito neste trabalho Mapeamento do Texto (Expressões Regulares) O tratamento de cadeias textuais (strings) a partir de um conjunto básico de operações de concatenação e união é chamado de tratamento por Expressões Regulares. As linguagens regulares têm como principal característica o fato de serem representadas por formalismos de pouca complexidade, grande eficiência e fácil implementação [1]. Um exemplo da utilização de expressões regulares é apresentado na Figura 1. Neste exemplo simples representamos a forma para mapear em um texto as palavras que contém as strings “aa” ou “bb”. Isto é feito a partir do uso de um autômato finito determinístico (a solução é encontrada resolvendo-se o sistema de equações qi) Escolheu-se o uso de Expressões Regulares como metodologia para mapeamento dos textos dos laudos por ser a teoria relacionada bem fundamenta e proporcionar uma boa flexibilidade ao sistema, principalmente quanto à filtragem dos dados. Padronização dos Dados - Conteúdo (XML) A XML (Extensible Markup Language) é, 1 segundo definição da W3C (World Wide Web Consortium), um formato universal para documentos estruturados e dados na Web [2]. Nesta linguagem encontramos um meio completo para a autoria, descrição e distribuição de recursos informativos não somente pela Web, como também, entre aplicativos [3]. Sendo assim, os documentos escritos em XML são facilmente recuperados e possuem uma estrutura lógica capaz de incluir uma semântica ao dado. A existência de conceitos referentes à formatação do documento (Bem-formado, é o documento XML que segue a sintaxe da linguagem. Válido, é o documento XML que está dentro de um esquema de definição), por exemplo, foi um fator preponderante para a escolha do uso da XML neste projeto. Enfim, escolheu-se a linguagem XML pelo fato desta proporcionar uma representação semântica desejada e, também, por permitir uma grande flexibilidade na representação hierárquica dos dados. Além disto, esta linguagem vem se tornando cada vez mais utilizada nas áreas acadêmico e profissional. Padronização dos Dados - Estrutura (DTD) A DTD (Document Type Definition) é uma das formas de se definir a gramática de um 1 Figura 1: Exemplo do uso de autômatos finitos para mapeamento de strings. Organização criada em outubro de 1994 com a finalidade de levar a World Wide Web para seu potencial máximo desenvolvendo protocolos comuns que promovem sua evolução e asseguram sua interoperabilidade. documento XML. Deve ser usada com o intuito de permitir que grupos independentes de pessoas acessem a mesma definição visando a troca de dados. Ou seja, sua aplicação pode usar uma DTD padrão para verificar se um dado recebido está dentro do esperado. Entre as vantagens do uso da DTD como elemento de estruturação podemos destacar o fato de que esta permite, no caso de elementos de dados, especificar qual será o conteúdo destes e qual o seu número de ocorrência. Já no caso de atributos de dados, a DTD permite especificar quais os seus possíveis tipos de valores e a suas respectivas obrigatoriedades. Requisitos desejáveis quando falamos principalmente de exames laboratoriais. Escolheu-se então DTD como forma de definir o documento XML, por apresentar uma grande facilidade na sua descrição e, também, por ser o padrão adotado por outros órgãos de saúde. Porém, outros padrões que permitem uma melhor especificação dos tipos de dados – como o XML Schema – podem ser aplicados aos mesmos documentos necessitando, apenas, mudar a forma de fazer a referência à definição no documento XML. Padronização dos Dados - Formatação (XSL) A XSL (Extensible Stylesheet Language) é uma linguagem para expressar as folhas de estilo que poderão ser aplicadas a um documento XML [4]. A XSL provê elementos que definem as regras de como um documento XML pode ser transformado em outro documento. Um processador XSL é capaz de ler um documento XML e uma folha de estilo XSL – escrita na linguagem de formatação e, baseado nas instruções contidas na folha de estilo, gerar um novo documento. O processador XSL, pode estar instalado em dois pontos diferentes da rede. Pode estar instalado no cliente (browser) ou no servidor (por exemplo, na forma de JAVA Server Pages). No caso do processador estar instalado no servidor, é necessária a utilização de bibliotecas capazes de realizar a transformação dos documentos. Estas bibliotecas de processamento recebem um documento XML, e a folha de estilo XSL, e processam um novo documento apenas com as informações que foram solicitadas pela XSL. A escolha do uso da XSL para criação e tratamento de folhas de estilo para os documentos XML deveu-se principalmente ao fato dela ser própria para a linguagem XML. consórcio mundial de fabricantes de dispositivos sem fio e fornecedores de soluções WAP. Trata-se de linguagem suportada pela maioria dos browsers de dispositivos celulares, porém nem todos os browsers implementam a especificação da WML em sua totalidade, o que dificulta o desenvolvimento com esta linguagem. Todavia, mesmo apresentando este problema, escolheu-se esta tecnologia devido ao fato de ser suportada atualmente por um grande número de fabricantes de aparelhos celulares. Controle de Acesso (LDAP) O LDAP (Lightweight Directory Access Protocol) é um padrão aberto para serviços distribuídos de diretórios na Internet, definido pelo IETF (Internet Engineering Task Force). Consiste em um conjunto de servidores de diretórios interconectados que se comunicam através de um protocolo próprio voltado para atender requisições de pesquisa, comparação, inserção, modificação e remoção de clientes [6]. Se um servidor LDAP contatado não conseguir responder a uma requisição, ele tenta obter uma resposta de outros servidores para encaminhá-las ao solicitante. Assim, os servidores LDAP suportam um serviço de diretório distribuído, mas com transparência de localização para os clientes. As informações no diretório são organizadas numa estrutura hierarquizada (Figura 3), denominada de Árvore de Informações de Diretório. Cada nó desta árvore corresponde a um registro armazenando e pode distribuir-se fisicamente em repositórios de vários servidores de diretórios, porém sempre mantendo sua unidade lógica. Foram todas estas características nos fizeram adotar o LDAP neste projeto. Apresentação - WML A WML (Wireless Markup Language) é definida como uma linguagem, baseada no XML, utilizada para especificar conteúdo e interface de usuário para dispositivos WAP [5]. Sua definição é feita com base na DTD fornecida por um Figura 3: Exemplo de uma hierarquia de serviço de diretórios e de controle de acesso baseados em uma arquitetura LDAP. Desenvolvimento A etapa de desenvolvimento do projeto consistiu em criar um programa que, ao ser executado, extraísse dos exames armazenados, em texto livre, na base de dados do InCor, os dados que seriam armazenados com marcação estruturada. O programa recebe como entrada a consulta a ser realizada no banco de dados - que retorna o exame laboratorial desejado - e o arquivo que contém as especificações, em expressões regulares, dos dados que serão extraídos do exame. O programa fornece então como saída um documento XML que pode ser diretamente utilizado ou armazenado em um banco de dados (Figura 4). adfadfadf Adfçldasf alfdkç fçlkdsf çlkafl çakdk çsldak fçaslkfçdslfkaçldfk çlfkaçldkf çladkf çladkf çldkf kdfçladk çfk asçldkf çlkf sçldkf lçkf kdsf çldkf alsçkf çalskfd çldskf çdlkf çldskf çlskf çalkf lkasf çlska fçlskf çlksçdlfkdasçlkf lçkdf kçldsfk çlkafd çlkdf çlkdaf çldksf çlaksdf çladskf çladkf çlkdf çldkf akçldfk çdslfk çdslkf çldaksf çlakds çfkalçsk çaslkf çdaslfk çaldsfk alkfd çalfk çalkf açl çlakf daçlkf açldkf çlakdf çladkfl alkjf adlkfalkdsfj lakjfdlkdfjalkdfjaa kjkjkjka EXAME Adfçldasf alfdkç fçlkdsf çlkafl çakdk çsldak fçaslkfçdslfkaçldfk çlfkaçldkf çladkf çladkf çldkf kdfçladk çfk asçldkf çlkf sçldkf lçkf kdsf çldkf alsçkf çalskfd çldskf çdlkf çldskf çlskf çalkf lkasf çlska fçlskf çlksçdlfkdasçlkf lçkdf kçldsfk çlkafd çlkdf çlkdaf çldksf çlaksdf çladskf çladkf çlkdf çldkf akçldfk çdslfk çdslkf çldaksf çlakds çfkalçsk çaslkf çdaslfk çaldsfk alkfd çalfk çalkf açl çlakf daçlkf açldkf çlakdf çladkfl alkjf adlkfalkdsfj lakjfdlkdfjalkdfjaa kjkjkjka Conversor 1§82§ {4}([^[:cntrl:]]{1,30})§HEMOGRAMA§ <lab_procedure> <name>@1@</name> <substance>Sangue</substance> § 83§164§ {26}--\*([^[:cntrl:]]*)\*-§ERITROGRAMA§ <procedure_step> <name>@1@</name> <date/> <time/> § XML <abc> <def>***</def> <ghi> <jkl>***</jkl> <jkl>***</jkl> <jkl>***</jkl> </ghi> <ghi> <jkl>***</jkl> <jkl>***</jkl> <jkl>***</jkl> </ghi> XML <ghi> <jkl>***</jkl> <jkl>***</jkl> <jkl>***</jkl> </ghi> </abc> ESPEC. 3691§3771§_+§ § </procedure_step> <method>Avaliacao Morfologica em esfregacos corados.</method> </lab_procedure> Figura 4: Conversor dos exames laboratoriais para documentos XML Escolheu-se inicialmente o exame do tipo hemograma (Figura 5) para ser estruturado. Este exame foi escolhido pois apresenta, como característica fundamental, uma forte heterogeneidade estrutural das informações, isso proporcionou um aprendizado mais genérico sobre as estruturas dos demais exames contidos da base. Após a escolha do exame, um arquivo contendo as expressões regulares de mapeamento deste exame (máscara) foi escrito. O programa de conversão, enquanto trabalha, realiza verificações que garantem que as informações contidas no exame original estarão presentes no documento XML. Estas verificações podem ser divididas em duas classes: uma executa a tarefa de comparar se a palavra (token) retirada do exame é a esperada. A outra analisa a estrutura recebida no arquivo de especificação para verificar se não existem parâmetros faltando ou sobrando. Como resultado, obtém-se o exame laboratorial do tipo hemograma mapeado para XML como mostra a Figura 6. O passo seguinte consistiu em escrever as folhas de estilo – na linguagem XSL – para serem aplicadas nos resultados do programa de conversão, ou seja, nos documentos XML. Optouse que as páginas XSL seriam processadas no servidor, com o posterior envio do documento WML para o celular cliente. Este procedimento foi adotado devido ao fato dos dispositivos celulares, possuírem, via de regra, memória e recursos de processamento reduzidos. Após a etapa de transformação dos exames de XML para WML, implementou-se o módulo de Controle de Acesso do sistema. Para isto, como já dissemos, foi utilizado o padrão LDAP. Esta autenticação é feita nos servidores LDAP utilizando-se apenas as informações a respeito do usuário (username) e sua senha (password). Estas informações estão ligadas a outros métodos de teste de papéis que fornecem permissões associadas a um determinado usuário de acordo com critérios pré-estabelecidos [6]. Resultados A Figura 7 apresenta uma seqüência de telas que corresponde a uma consulta (via telefone celular) utilizando o sistema desenvolvido neste trabalho. Nesta situação temos: a) O usuário acessa o serviço e é recebido pela tela de entrada. b) Uma vez entrando no serviço é solicitado ao usuário seu username e sua password. Estas informações são passadas pelo servidor de aplicações WEB para o servidor LDAP. Este por sua vez autentica o usuário e fornece as informações de perfil para configurar o serviço (neste exemplo estamos utilizando um usuário com privilégios de consulta a dados de qualquer paciente). c) Na tela de pesquisa o usuário preenche o identificador do paciente (RGHC) e executa a consulta. d) Os dados do paciente são apresentados ao usuário para que este possa confirmar se é o paciente correto. Se for, ele pode solicitar a lista dos exames realizados. e) A lista de exames é apresentada em ordem cronológica (os exames mais recentes primeiro). Cada item da lista é um link que remete para o resultado do exame realizado. f) Ao selecionar o exame o servidor de aplicações WEB faz uma consulta ao banco de exames em XML e formata esse exame de acordo com uma folha de estilos XSL apropriada ao celular que está fazendo a consulta. Essa formatação gera uma página WML para a qual o servidor de aplicações WEB redireciona o usuário. Conclusões A metodologia desenvolvida neste trabalho mostrou-se bastante eficaz e eficiente na transformação e armazenamento de laudos laboratoriais (em texto livre) para XML. Este projeto representa mais uma oportunidade de proporcionar melhoria de atendimento aos pacientes clínicos, seja através de um trato mais apropriado com as informações clínicas, seja através da provisão de novas formas de acesso e distribuição destas informações Atualmente algumas extensões deste trabalho têm sido propostas e estudadas. HEMOGRAMA --* ERITROGRAMA *-Resultados Eritrocitos : Hemoglobina : Hematocrito : VCM : HCM : CHCM : Anisocitose : Macrocitose : Policromasia: Eritroblastos: Legenda: 4.6 12.8 39 85 28 33 + + (+) Rara milhoes/mm3 g% % micracubica picogramas g/dl Poiquilocitose: Microcitose : Hipocromia : % (++) Moderada Valores de Referencia ( Adultos ) HOMEM MULHER 4.6 a 6.2 4.2 a 5.2 14.0 a 17.0 12.0 a 16.0 40 a 54 37 a 47 82 a 97 28 a 33 32 a 36 + + (+++) Intensa --* LEUCOGRAMA *-Resultados % Leucocitos : Pro-mielocito: Mielocito : Metamielocito: Bastonete : 1 Segmentado : 74 Neutrofilo : Eosinofilo : 0.0 Basofilo : 1.0 Linfocito : 15.0 Monocito : 9.0 Plasmocito : 0.0 Linfo Atipico: 0.0 Somatoria : 100.0 Granulacoes Toxicas em /mm3 7900 ---79 5846 -0 79 1185 711 0 0 Valores de Referencia ( Adultos ) % /mm3 5000 a 10000 0 0 0 0 0 0 2 a 4 100 a 400 56 a 66 2800 a 6600 58 a 70 2900 a 7000 2 a 4 100 a 400 0 a 1 0 a 100 21 a 31 1000 a 3300 2 a 7 100 a 700 0 0 0 0 % dos Neutrofilos. Metodo: Contador eletronico, automatizado e/ou Avaliacao Morfologica em esfregacos corados. ______________________________________________________________________________ Figura 5: Exame laboratorial do tipo Hemograma <lab_procedure> <name>Hemograma</name> <target>Sangue</target> <procedure_step> <name>Eritrograma</name> <date/> <time/> <parameter> <name>Eritrocitos</name> <absolute> <value>4.6</value> <unit>milhoes/mm3</unit> </absolute> </parameter> ... </procedure_step> <procedure_step> <name>Leucograma</name> <date/> <time/> <parameter> <name>Leucocitos</name> <absolute> <value>7900</value> <unit>/mm3</unit> </absolute> </parameter> ... </procedure_step> <method>Contador eletronico, automatizado e/ouAvaliacao Morfologica em esfregacos corados.</method> </lab_procedure> Figura 6: Fragmento do exame laboratorial da Figura 5 descrito em XML Figura 7: Seqüência de telas que corresponde a uma consulta utilizando o sistema apresentado neste trabalho. Estas extensões consistem, entre outras coisas, no estudo de formas de integração dos exames laboratoriais em XML (hemogramas) no 2 sistema COAS do InCor. Este sistema, que está ainda sendo desenvolvido, tem como objetivo proporcionar pesquisas em documentos médicos de informações específicas através de consultas apuradas. Esta é mais uma grande vantagem proporcionada pelo armazenamento estruturado das informações. [2] World Wide Web Consortium. Extensible Markup Language (XML). Disponível em: [http://www.w3.org/XML/]. Visitado em: dezembro de 2001. [3] Light, Richard. Iniciando em XML. Makron Books, São Paulo, 1999. [4] Harold, Elliotte Rusty. XML Bible. IDG Books Worldwide. New York City, June 1999. Agradecimentos Amir Neves Ferreira Velho agradece o apoio financeiro oferecido pela FAPESP (bolsa n.º 00/14927-9) e Fundação EJ Zerbini / FINEP (projeto n.º 66.94.0138.00). Os autores agradecem a todos os colegas do Setor de Pesquisa e Desenvolvimento do Instituto do Coração que direta, ou indiretamente, participaram deste trabalho. Especialmente a Nivaldo Bertozzo Jr. pela cessão de trechos de código utilizados neste trabalho. [5] Online Computer Dictionary for Internet Terms and Technical Support. WML. Disponível em [http://www.webopedia.com/TERM/W/WML.ht ml]. Visitado em dezembro de 2001. [6] Motta, Gustavo H. M. B., Furuie, Sérgio S.. Controle de Acesso Baseado em Papéis para o Prontuário Eletrônico do Paciente em Ambientes Distribuídos e Abertos. Unidade de Pesquisa e Desenvolvimento. InCor HC.FMUSP, São Paulo, 2001. Referências Contato [1] Menezes, Paulo Fernando Blauth. Linguagens formais e autômatos. Editora Sagra Luzzatto, Porto Alegre, 1998. [email protected] Pós-Graduando – Serviço de Informática Instituto do Coração - HCFMUSP 2 Clinical Observation Access Service especificação do Comitê CORBAMed de 1997 que tem como objetivo permitir a recuperação das observações clínicas dos pacientes, ou seja, qualquer informação pertinente ao estado clínico do paciente ou informações contextuais relevantes. [email protected] Supervisor de Pesquisa – Serviço de Informática Instituto do Coração - HCFMUSP