Resumo
Nesta última sexta-feira 21, apresentamos nosso Trabalho de Diploma (ou TD, mesma coisa que TCC) na UNIFEI e fomos aprovados! :D
Nosso TD foi sobre SOA. Na época, li os seguintes materiais para aprender sobre este assunto:
1. Proposta
O co-orientador e o orientador deste trabalho apresentaram um artigo, onde demonstraram a implementação de um sistema médico para o gerenciamento de imagens digitais denominado Picture Archiving and Communication System (PACS). O PACS, em conjunto com Radiology Information System (RIS) e Hospital Information System (HIS), formam a base para um serviço de Radiologia Filmless (tecnologia que indica a manipulação de imagens médicas sem utilizar filme fotográfico, que demandava relevante custo e tempo para revelar).
As imagens são obtidas de modalidades de imagens médicas digitais, como Ressonância Magnética Nuclear (RMN) e Tomografia Computadorizada (TC), em formato DICOM (Digital Imaging and Communication in Medicine) 3.0, indexadas, armazenadas e vinculadas ao RIS do Hospital para posterior visualização.
Este sistema PACS foi concebido e desenvolvido dentre um escopo bem-definido. No entanto, há diversos outros requisitos de negócio em ambientes médicos que necessitam de manipular as informações obtidas pelo sistema apresentado. De forma a permitir futuras integrações com tal sistema de forma escalável e padronizável, é proposta a utilização de SOA.
Com essa proposta em mente, é possível utilizar de serviços pré-existentes e também integrá-los entre si e também com serviços que venham a ser criados. Assim tem-se um sistema que pode trabalhar com todo o sistema legado, integrar as bases de dados e ser distribuído, facilitando o acesso das várias redes hospitalares que necessitam dessas informações.
A proposta baseia-se em realizar serviços de consulta utilizando dois sistemas existentes: um sistema RIS e um sistema de aquisição de imagens médicas. Cada serviço realizará consultas em ambos sistemas e depois unirá seus resultados sob uma mesma resposta, conforme o diagrama UML de caso de uso abaixo:
Diagrama UML de caso de uso
2. Desenvolvimento
Cada sistema acima teve suas principais funcionalidades exportadas como Web Services. Para cada sistema foi gerado um Web Service para expor seus serviços simples.
Utilizando estes Web Services, foi construido um outro Web Service de integração, denominado Web Service PACS, caracterizando-se como um serviço composto. Este Web Service possui interface parecida ao Web Service do sistema RIS, com exceção da mensagem de resposta, e segue o seguinte fluxo para cada requição:
- Extrai os parâmetros da requisição
- Chama o Web Service do sistema RIS, passando os parâmetros recebidos. Receberá uma lista com exames radiológicos ou uma lista com pacientes.
- Se recebeu uma lista com exames radiológicos, para cada exame radiológico chama o Web Service do sistema de aquisição de imagens, passando a identificação do exame como parâmetro. Receberá uma imagem para cada exame.
- Retorna uma mensagem SOAP contendo todas as informações solicitadas, provenientes de ambos sistemas.
Os Web Services descritos acima foram publicados no servidor Apache Axis2. Por sua vez, o Web Service PACS também foi publicado no ESB Apache ServiceMix. Assim, qualquer componente membro deste barramento poderá usufruir da mesma maneira e sob o controle da mesma infra-estrutura.
O diagrama UML de atividades abaixo ilustra todo o processo:
Diagrama UML de atividades
3. Conclusão
Com a organização em serviços das funcionalidades dos sistemas apresentados, e sua utilização sobre uma infra-estrutura padronizada, alcança-se a robustez necessária para que o sistema cresça sem maiores problemas, aumentando assim seu valor agregado. Além disso, é possível ter controle sólido sobre segurança, roteamento e monitoramento do serviço.
Ao publicar tais serviços sobre tal arquitetura orientada a serviços, torna-se possível a construção de operações mais complexas com respeito à gestão e manipulação de informações dos pacientes, como por exemplo a obtenção de prontuário completo para um paciente, baseado num histórico médico que possa estar distribuído em sistemas distintos e em localidades distintas.
Ainda, a utilização de SOA introduz diretrizes para guiar o desenvolvimento de futuras integrações entre outros sistemas médicos, fazendo respeito tanto sobre a questão tecnológica quanto a questão de pessoal.
Desta forma, ao aplicar SOA em um ambiente médico, concluimos que SOA é uma tecnologia adequada para a integração de ambientes heterogêneos como os ambientes da área médica.
4. Arquivos