Artigo
· Set. 14 4min de leitura

Desenvolvendo SMART em aplicações FHIR com Auth0 e InterSystems IRIS FHIR Server - Introdução

Introdução

Eu recentemente participei no "mão na massa" fantasticamente organizado pelo @Patrick Jamieson no qual uma aplicação Angular foi configurada junto com um servidor IRIS FHIR seguindo os protocolos definidos pelo SMART On FHIR e eu o achei muito interessante, então decidi desenvolver a minha própria aplicação Angular e então usar o que aprendi e publicar na comunidade.

SMART On FHIR

Vamos ver o que o Google nos conta sobre o SMART On FHIR:

SMART on FHIR é um padrão de dados que permite que aplicações acessem informação em sistemas de registro eletrônico de saúde (EHR). Um desenvolvedor de aplicação pode escrever uma única aplicação que conecta em qualquer sistema EHR que adotou o padrão.

Os conceitos principais que vamos usar no SMART On FHIR são:

  • Autenticação a autorização delegados por OAuth2 ou OpenID.
  • Administração de recursos FHIR no contexto definido.
  • comunicações HTTPS.

Arquitetura do nosso projeto

Para esse exercício, nós configuramos os seguintes elementos em Docker e o serviço Auth0:

  • Uma aplicação desenvolvida em Angular que vai atuar como nosso front-end, essa aplicação foi desenvolvida seguindo os princípios de SMART On FHIR.
  • servidor web NGINX e proxy reverso que vai publicar nossa aplicação desenvolvida em Angular.
  • Auth0 vai providenciar a autenticação e autorização por meio de OAuth2.
  • InterSystems IRIS no qual vamos publicar nosso servidor FHIR e no qual vamos conectar por meio do Web Gateway que inclui um servidor Apache já disponível na imagem Docker.

Auth0

Apesar de que poderíamos delegar a autenticação e autorização de usuários para outro servidor IRIS publicado com esse propósito, nessa ocasião vamos usar o serviço oferecido por Auth0.

O que é Auth0?

Auth0 é um serviço que fornece o mecanismo inteiro para configurar autorização e autenticação das nossas plataformas.

Auth0 também tem livrarias específicas em diferentes linguagens para conseguir facilmente integrar com qualquer projeto, então é sempre uma opção apra levar em conta para desenvolvimentos baseados em SMART On FHIR.

Incluindo Auth0 na nossa aplicação.

Já que o uso de OAuth2 é uma condição necessária para usar o  SMART On FHIR, isso implica a inclusão de um servidor OAuth2 no processo usual de autenticação, autorização e acesso à aplicação. No diagrama a seguir, podemos ver o caminho tomado pela informação enviada ao sistema com o serviço Auth0:

Vamos analisar o processo:

  • Login request:
    1. Login request: O usuário acessa a aplicação no browser de internet e faz uma requisição para login.
    2. Login request: A aplicação Angular encaminha a requisição para o serviço Auth0
    3. Login page: Auth0 envia um redirecionamento para usa própria página para o browser de internet do usuário.
  • Autenticação no Auth0:
    1. User credentials: O usuário entra com o email e senha que estão registrados no Auth0
    2. Authentication & Authorization: Auth0 valida os dados e gera um Access_token incluindo o contexto atribuido ao usuário.
    3. Access_token response & redirection: Auth0 redireciona a resposta à URL indicada na configuração do projeto incluindo o token gerado
    4. Patient screen: A aplicação Angular mostra ao usuário a página para registrar seus dados pessoais.
  • Recurso de registro FHIR:
    1. Save patient: o usuário preenche o formulário com seus dados e a aplicação angular transforma o formulário em um objeto JSON no formato do recurso FHIR Patient.
    2. POST request: a aplicação Angular envia um HTTP POST para o servidor FHIR publicado no IRIS incluindo o access_token como token de autenticação no cabeçalho da requisição
    3. POST response: após receber a requisição POST via Web Gateway, o IRIS checa a validade do token e o contexto da requisição. Se tudo estiver correto,  vai validar o recurso recebido e registrar no servidor FHIR, retornando uma HTTP 201 indicando a criação do novo recurso e anexando ao cabeçalho o identificador atribuido ao novo recurso
    4. Operation success: A aplicação Angular vai redirecionar o usuário à tela mostrando as funcionalidades principais.

Uma vez logado, a livraria Auth0 inclusa no projeto terá a função de interceptar todas as requisições que fazemos ao servidor  FHIR para incluir o token de acesso recebido pela Auth0.

Em breve...

Nos próximos artigos, vamos ver como precisamos configurar cada um dos sistemas envolvidos e finalmente como conectá-los a nossa aplicação Angular. Para aqueles que não conseguem esperar, vocês podem consultar o README.md presente no GitHub associado com o projeto OpenExchange relacionado a esse artigo, que explica em detalhes como configurar o Auth0 e o InterSystems IRIS.

Awfully Good: Stay Tuned (1992) with John Ritter

Discussão (0)1
Entre ou crie uma conta para continuar