Titulo Estágio
Digital Hub for healthcare systems – Interoperabilidade entre sistemas de saúde
Área Tecnológica
Engenharia de Software
Local do Estágio
Instituto Pedro Nunes, Coimbra
Enquadramento
O projecto TICE.Healthy – Sistemas de Saúde e Qualidade de Vida pretende desenvolver, integrar e testar abordagens tecnológicas inovadoras que sirvam de base a novos produtos e serviços para os mercados associados ao vector “Saúde e Qualidade de Vida”, e tem como missão potenciar a presença das empresas e organizações portuguesas, e em particular as do PCT TICE, neste mercado.
No âmbito do projecto TICE.Healthy existem vários subprojectos a desenvolver. O primeiro destes subprojectos, o We.Can, constitui uma plataforma com vertente simultaneamente agregadora e fornecedora de dados, onde está planeada a criação de um registo pessoal de saúde (Personal Health Record – PHR) que irá ser disponibilizado aos outros subprojectos. O PHR agregará informação proveniente de diversas fontes de informação, como por exemplo aplicações, medições de sensores biométricos, introdução manual de informação por prestadores de serviços.
Uma das características da plataforma será a gestão de eventos e geração de alarmes que serão encaminhados, para os receptores adequados, de acordo com regras estabelecidas para o tipo de alarme gerado. Esta componente terá uma relevância acrescida nos caso de utilização da plataforma para acompanhamento e gestão da saúde de pessoas com doença crónica, em que a monitorização periódica e atempada é extremamente importante.
Características do Sistema
As componentes a desenvolver no âmbito do projecto enquadram-se numa arquitectura orientada a serviços em ambiente distribuído tecnologicamente heterogéneo. Algumas características:
- Arquitectura RESTful
- Desenho e análise funcional em função de critérios de performance, disponibilidade e escalabilidade
- Forte componente de quality assurance com recurso a testes unitários, funcionais e de integração
- Implementação de módulos e componentes segundo padrões de encapsulamento e loose-coupling.
- Desenho e implementação de API’s e interfaces de comunicação (producer-consumer, publish-subscribe, real-time / assynchronous message queueing, push, etc.)
- Possibilidade de uso de bases de dados não relacionais
- Linguagens de programação Java e Python
Ferramentas de desenvolvimento
- PostgreSQL
- Eclipse IDE (ou qualquer outro editor de texto inteligente)
- RabbitMQ, Redis
- Play! Framework
- Git, git-flow
- Apache, Nginx
Metodologia
O processo de desenvolvimento de software será baseado em SCRUM.
Os orientadores de ambas as partes (IPN e DEI), poderão participar nas reuniões de Sprint Planning e Sprint Retrospective. A documentação resultante das reuniões será disponibilizada ao orientador e júri do estágio.
Objetivo
Este estágio terá como objectivo principal criar um produto de software direccionado para a integração de sistemas electrónicos de saúde heterogéneos, com recurso a normas e standards específicos à área do healthcare.
O estagiário será responsável por todas as fases do processo de desenvolvimento de software aplicado ao desenvolvimento deste sistema, incluindo o estudo e análise do estado da arte nas vertentes de Enterprise Server Bus (ESB) e Event processing com recurso a motores de regras. Com base nas conclusões, o aluno deverá incorporar as soluções de código aberto no sistema, procedendo à sua integração, configuração e extensão ao nível funcional, de acordo com as necessidades específicas do projecto.
Ao nível do ESB, é esperado que seja usado como base de um broker de comunicação e transformação aplicado aos standards médicos de formatação de mensagens: DICOM e HL7. Em complemento, deverá ser desenvolvida uma camada aplicacional que permita a interpretação de mensagens, o seu parsing e armazenamento sob os princípios e guidelines do Reference Information Model (RIM), cuja modelação cabe igualmente ao estagiário.
Um objectivo paralelo à comunicação interoperável entre sistemas consiste na persistência de mensagens que passam pelo broker e dos respectivos dados.
A componente de event processing deverá ser desenvolvida com recurso a um motor de regras facilmente flexível e extensível, de forma a poder ser adaptado às necessidades específicas do broker, e que permita criar e gerir eventos e alarmes na plataforma. Este módulo disponibilizará uma API permitindo o seu uso pelos fornecedores de aplicações da plataforma.
De entre as funcionalidades a implementar apresentam-se aquelas que constituem o objecto deste estágio:
- Modelação de APIs de disponibilização de dados
- Mecanismos de difusão de dados em tempo real
- Análise e processamento de eventos com recurso a um motor de regras como base do mecanismo de alarmística
- Logging e reporting
Alguns aspectos a ter em conta durante o desenvolvimento:
• Desenho e análise funcional em função de critérios de performance, disponibilidade e escalabilidade
• Fortes requisitos ao nível da elegância e modularidade da arquitectura
• Workflow incremental com deployments frequentes e iterativos
• Forte componente de quality assurance com recurso a TDD (test driven development) e BDD (behaviour driven development), em toda a sua extensão: testes unitários, funcionais e de integração
• Implementação de módulos e componentes segundo padrões de encapsulamento e loose-coupling.
Plano de Trabalhos - Semestre 1
Durante o 1º semestre, o projecto será composto pelas seguintes fases de desenvolvimento:
• F1 – Análise do estado da arte (25% do semestre) – Análise de soluções, boas práticas e as tecnologias a usar no projecto.
• F2 – Levantamento de requisitos (25% do semestre) – esta tarefa consiste no levantamento de requisitos do módulos a desenvolver.
• F3 – Desenho (50% do semestre) – será desenvolvido um protótipo dos módulos aplicação e o desenho de arquitectura.
Plano de Trabalhos - Semestre 2
Durante o 2º semestre, o projecto será composto pelas seguintes fases de desenvolvimento:
• F4 – Implementação (70% do semestre) – fase de desenvolvimento onde serão implementados os requisitos e funcionalidades determinadas em F2.
• F5 – Testes (20% do semestre) – fase em que será testada a robustez da aplicação desenvolvida. Serão feitas as correcções aos bugs que forem detectados.
• F6 – Deploy e relatório de projecto (10% do semestre) – Revisão final da aplicação desenvolvida e disponibilizada para produção.
Condições
O estágio é remunerado.
Observações
Sem observações.
Orientador
Alcides Marques
alcides.marques@ipn.pt 📩