INTERPRETADOR DE MENSAGENS PARA COMUNICAÇÃO EM SISTEMAS DE INFORMAÇÃO NA SAÚDE Gonçalo Salvador Ribeiro e Castro Estágio realizado na Siemens SA Orientador da FEUP: Prof. Doutor António Pimenta Monteiro 1. Motivação O estágio decorreu no âmbito do projecto “Healthy Talkie” do grupo operacional Medical Solutions (MED) da Siemens, no contexto dos sistemas de informação na saúde. Os sistemas de informação na saúde em Portugal, na sua generalidade, não utilizam o protocolo standard de comunicação de mensagens HL7. Este facto prejudica a interligação entre sistemas, gerando-se assim ilhas de informação não coerentes entre si. O objectivo principal do projecto Healthy Talkie é permitir a comunicação entre sistemas não compatíveis com HL7 e sistemas compatíveis com HL7, o que permite a partilha de informação entre as diferentes aplicações de uma instituição de saúde. Facilitam-se assim migrações, ao mesmo tempo que se protege o investimento feito no passado. Desta forma, o número de interfaces proprietárias entre aplicações será também reduzido, integrando toda a comunicação através do standard HL7. A Missão da MED inclui o objectivo de ser a maior empresa, na área da saúde, em Portugal, oferecendo aos seus clientes produtos e serviços da mais elevada qualidade. O Healthy Talkie surge como um projecto alinhado nesta Missão, uma vez que permite solucionar problemas de integração comuns a todos os clientes da MED. Assim, é uma solução com aplicação transversal a todos os clientes, que contribui para uma relação positiva, e de criação de valor, entre estes e a MED. Para o desenvolvimento deste projecto foi constituída uma equipa de quatro pessoas. Este resumo aborda o módulo do projecto que permite a formatação de mensagens HL7 e, no sentido inverso, o parsing das mesmas, módulo esse que constituiu o núcleo deste estágio. Por outro lado, durante o estágio foram implementadas as Filas de Espera que permitem guardar a informação que circula entre os módulos do sistema. 2. Objectivos O estágio teve como objectivo principal o desenvolvimento de um módulo de Parsing e Formatação para o Healthy Talkie. Para além desta tarefa principal, era importante desenvolver todo um estudo preparatório de contextualização com a área de integração de sistemas de informação na saúde. Por fim, era fulcral integrar e testar o módulo com os restantes, de forma a ter um único sistema. Orientador da Instituição: Doutor Paulo Cruz Nesse sentido, no início do estágio foram propostos os seguintes objectivos: • Traçar o estado da arte no que se refere à integração de sistemas não compatíveis com o protocolo standard HL7. Esta pesquisa deve ser baseada na intranet corporativa da Siemens, livros, artigos científicos e produtos existentes comercialmente; • Comparar diferentes produtos existentes (entre eles o desenvolvido pela Siemens em Portugal, C-Gate) em termos de custos de aquisição (e ou desenvolvimento) e implementação com outros sistemas; • Desenvolver uma lista de requisitos funcionais e não funcionais para o módulo de parsing/interpretação; • Estudar, implementar, testar e documentar um novo módulo que terá como objectivo a interpretação “parsing” de mensagens HL7, e a intercalação de informação proveniente de bases de dados de aplicações; • Colaborar activamente nas actividades de desenvolvimento/integração/divulgação/ documentação da aplicação Healthy Talkie no seu todo; • Participar nos testes de fiabilidade e integração com os responsáveis pelos restantes módulos da aplicação. 3. Descrição do Trabalho 3.1. Análise do Problema Os diferentes departamentos de instituições de saúde possuem necessidades informáticas distintas, o que leva a que necessitem de sistemas de informação muito específicos. É por esta razão que ao longo dos anos se desenvolveram múltiplos sistemas departamentais, específicos para os diferentes serviços das unidades de saúde. Ainda assim, há uma necessidade comum a todos: coerência de informação. Sendo os sistemas departamentais desenvolvidos por diversos fornecedores, não é de estranhar que para comunicarem entre si necessitem de interfaces específicas a cada caso para que essa comunicação seja possível. Foi para ultrapassar estas dificuldades de comunicação entre sistemas que, no final dos anos oitenta, surgiu o protocolo de mensagens standard HL7. Ainda assim, a implementação do standard HL7 tem sido lenta em Portugal. Nesta medida, existem ainda muitos sistemas em produção que não funcionam, sem adaptações, em conformidade com esta norma. Assim, sempre que surge a situação em que se pretende que dois sistemas – dos quais pelo menos um não segue a norma HL7 – comuniquem, é necessário a criação de uma interface própria, adaptada à situação específica, com todos os custos de desenvolvimento associados. Fig. 1 - Healthy Talkie: “Hub” de interfaces Neste sentido, era importante encontrar um sistema de interfaces que fosse mais flexível, para que a cada nova necessidade de integração não seja necessário um novo projecto, mas apenas a configuração desse sistema. O Healthy Talkie (Fig. 1) foi idealizado com esta ideia como base. Assim, o sistema efectua a conversão entre dados guardados numa base de dados e dados registados em mensagens HL7, e vice-versa. Durante o projecto foi decido que, além dos tipos de interfaces BD-HL7 e HL7-BD, seria relevante implementar as interfaces BD-BD e HL7-HL7. 3.2. Módulos desenvolvidos O sistema implementado pela equipa incluiu vários módulos. No âmbito específico deste estágio foi implementado o módulo de Formatação e de Parsing. Por outro lado foram também desenvolvidas as Filas de Espera. As Filas de Espera suportam a actividade do sistema, armazenando os dados em trânsito entre módulos. Assim, as Filas armazenam ocorrências de eventos ou mensagens HL7, que aguardam processamento. Como tal, as principais operações sobre as Filas incluem inserção, remoção e leitura do próximo registo a ser processado. As Filas foram implementadas em Berkeley DB, através da API deste sistema de bases de dados para Java, linguagem adoptada no desenvolvimento do Healthy Talkie. Os sub-módulos de Parsing e Formatação, apesar de possuírem objectivos diferentes, e de serem estruturalmente diferentes, têm vários procedimentos em comum. Ambos têm o mesmo output: criação de uma mensagem HL7 ou criação de um conjunto de registos para inserção em base de dados. A única diferença prende-se com a origem dos dados, que num caso é HL7 e no outro é BD. Assim, as principais diferenças operacionais entre os módulos são ao nível da extracção dos dados a partir da sua origem e da correspondente interpretação dos ficheiros XML de configuração relativos a essas origens. Assim, a partir de dados simples originários de base de dados (Formatação), ou de dados presentes numa mensagem HL7 (Parsing), estes módulos transformam esses dados e mapeiam-nos para uma mensagem HL7 ou para dados para inserção em base de dados. A transformação dos dados é efectuada recorrendo a funções de formatação, que podem ser internas ou externas. As primeiras são escritas em Java, e como tal compiladas de origem com o sistema. No caso das externas, estas são funções JavaScript que o utilizador pode definir, para que sejam interpretadas pelo sistema. Esta interpretação é efectuada através de funcionalidades constantes da versão SE 6 de Java. Todo o processamento do sistema depende dos ficheiros de configuração. Estes ficheiros XML são interpretados através da implementação do standard DOM para Java. Assim, as configurações do sistema estão organizadas em ficheiros “humanamente” legíveis, e facilmente acessíveis, quer pelo utilizador, quer pela aplicação. Para efeitos de logging da aplicação foi utilizada a ferramenta Log4j, que disponibiliza uma API para Java. 4. Conclusões O saldo final do estágio realizado é claramente positivo. Os objectivos propostos foram cumpridos e o estágio permitiu pôr em práctica conhecimentos adquiridos durante o curso, proporcionando uma primeira abordagem ao mundo profissional. Os módulos desenvolvidos foram concluídos e integrados no Healthy Talkie, o que causa elevados índices de satisfação pelo sucesso alcançado em resultado do trabalho desenvolvido durante o estágio. O facto da Siemens planear já a instalação do sistema em unidades clínicas com as quais desenvolve a sua actividade, é a prova evidente da pertinência do projecto para a empresa. A integração na empresa foi bastante boa, fruto do bom ambiente de trabalho vivido. Este contexto, em conjunto com o desenrolar positivo do projecto, contribuiu para a consolidação de índices elevados de motivação, sendo o estágio já de si motivante à partida.