Conversão de Exames Laboratoriais Armazenados em Texto Livre

Propaganda
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
Download