-
Notifications
You must be signed in to change notification settings - Fork 3
Application layer
A Application Layer reúne os módulos que implementam a recepção das requisições e o encaminhamento para execução. Essa camada também é responsável pelo acesso a serviços externos. Ao contrário das demais camadas, que apresentam um conjunto relativamente estável de funções, essa camada tem como um dos principais requisitos de projeto a extensão. Ou seja, a possibilidade de acréscimo de novas funções, por exemplo, um sistema de apoio à decisão clínica ou detecção de epidemias.
A extensibilidade do HealthDB é influenciada pela presente camada. A dúvida corrente, a ser investigada é: (a) criar uma máquina virtual para o HealthDB, com sua linguagem que encapsula tudo o que de básico o HealthDB faz e oferecer essa linguagem para a criação de plugins? (b) Simplesmente registrar plugins e avisá-los de eventos relevantes em uma proposta publish-subscribe? (c) Plugins funcionariam como listeners como na arquitetura de Servlets o que admitiria alterar o fluxo das operações do HealthDB?
- Autenticação e Autorização. Responsável por assegurar o devido acesso aos dados mantidos pelo HealthDB.
- Use Case Manager. Gerencia os serviços oferecidos pelo HealthDB.
- MPI. Mantem informações demográficas sobre os pacientes, informações sobre os profissionais de saúde e sobre recursos (equipamentos) disponíveis.
Funcionalidades abaixo estão em estudo, se fazem parte do escopo ou não:
- Auditor. Responsável pela execução de atividades de auditoria (por exemplo, produção de relatórios).
- Session Manager. Responsável por manter o estado da conexão de um cliente com o HealthDB.
- CDS. Encapsula serviços básicos de apoio à decisão clínica.
- Work Manager. Decide se o processamento de uma requisição deve ser iniciada imediatamente ou aguardar até que recursos considerados necessários estejam disponíveis para serem alocados à requisição. Adicionalmente, estabelece a ligação entre worker thread usada para tratar a requisição (lógico) e a correspondente implementação (física) usando threads em Java, lightweight thread, um processo ou outro mecanismo, inclusive o uso de pool desses recursos físicos.
- Barramento SUS. Serviços de interesse de um SIS.
- External Service. Conexão com serviços externos utilizados pelo HealthDB, por exemplo, CNS, CNES e outros.