Descrição geral do SMART on FHIR

As Aplicações Médicas Substituíveis e As Tecnologias Reutilizáveis (SMART on FHIR) são um padrão de cuidados de saúde através do qual as aplicações podem aceder a informações clínicas através de um arquivo de dados. Adiciona uma camada de segurança baseada em padrões abertos, incluindo OAuth2 e OpenID Connect, às interfaces FHIR para permitir a integração com sistemas EHR. A utilização do SMART no FHIR proporciona pelo menos três benefícios importantes:

  • As aplicações têm um método conhecido para obter autenticação/autorização para um repositório FHIR.
  • Os utilizadores que acedem a um repositório FHIR com SMART no FHIR estão restritos a recursos associados ao utilizador, em vez de terem acesso a todos os dados no repositório.
  • Os utilizadores têm a capacidade de conceder às aplicações acesso a um conjunto limitado adicional dos respetivos dados através de âmbitos clínicos SMART.

Os tutoriais abaixo descrevem os passos para ativar o SMART em aplicações FHIR com o Serviço FHIR.

Pré-requisitos

SMART on FHIR using AHDS Samples OSS (SMART on FHIR(Enhanced))

Passo 1: Configurar a função de utilizador FHIR SMART

Siga os passos listados na secção Gerir Utilizadores: Atribuir Utilizadores à Função. Qualquer utilizador adicionado à função – "FHIR SMART User" poderá aceder ao Serviço FHIR se os respetivos pedidos cumprirem o Guia de implementação SMART on FHIR, como o pedido com token de acesso, que inclui uma afirmação fhirUser e uma afirmação de âmbitos clínicos. O acesso concedido aos utilizadores nesta função será então limitado pelos recursos associados ao respetivo compartimento fhirUser e pelas restrições nos âmbitos clínicos.

Passo 2: integração do servidor FHIR com exemplos

Siga os passos em OSS de Exemplos do Azure Health Data Service. Isto permitirá a integração do servidor FHIR com outros Serviços do Azure (como APIM, funções do Azure e muito mais).

Nota

Os exemplos são código open source e deve rever as informações e os termos de licenciamento no GitHub antes de utilizá-lo. Não fazem parte do Azure Health Data Service e não são suportados por Suporte da Microsoft. Estes exemplos podem ser utilizados para demonstrar como os Serviços de Dados de Saúde do Azure e outras ferramentas open source podem ser utilizados em conjunto para demonstrar a conformidade do ONC (g)(10), utilizando o Azure Active Directory como o fluxo de trabalho do fornecedor de identidade.

SMART no proxy FHIR

Clique para expandir!

Nota

Esta é outra opção para SMART no FHIR (Avançado) mencionado acima. A opção SMART no Proxy FHIR só ativa a sequência de iniciação do EHR.

Para utilizar o SMART no FHIR, primeiro tem de autenticar e autorizar a aplicação. Na primeira vez que utilizar o SMART no FHIR, também tem de obter consentimento administrativo para permitir que a aplicação aceda aos seus recursos FHIR.

Se não tiver uma função de propriedade na aplicação, contacte o proprietário da aplicação e peça-lhe que conceda consentimento ao administrador na aplicação.

Se tiver privilégios administrativos, conclua os seguintes passos para conceder consentimento de administrador diretamente a si próprio. (Também pode conceder consentimento de administrador a si mesmo mais tarde quando lhe for pedido na aplicação.) Pode concluir os mesmos passos para adicionar outros utilizadores como proprietários, para que possam ver e editar este registo de aplicações.

Para adicionar a si mesmo ou a outro utilizador como proprietário de uma aplicação:

  1. No portal do Azure, aceda a Azure Active Directory.
  2. No menu esquerdo, selecione Registo de Aplicações.
  3. Procure o registo de aplicações que criou e, em seguida, selecione-o.
  4. No menu esquerdo, em Gerir, selecione Proprietários.
  5. Selecione Adicionar proprietários e, em seguida, adicione-se a si próprio ou ao utilizador que pretende que tenha o consentimento do administrador.
  6. Selecione Guardar

Passo 2: Ativar o SMART no proxy FHIR

O SMART no FHIR requer que Audience tenha um URI de identificador igual ao URI do serviço FHIR. A configuração padrão da API do Azure para FHIR utiliza um Audience valor de https://azurehealthcareapis.com. No entanto, também pode definir um valor que corresponda ao URL específico do seu serviço FHIR (por exemplo https://MYFHIRAPI.azurehealthcareapis.com, ). Isto é necessário ao trabalhar com o proxy SMART no FHIR.

Para ativar o proxy SMART no FHIR nas definições de Autenticação da sua instância da API do Azure para FHIR, selecione a caixa de verificação SMART no proxy FHIR :

Captura de ecrã a mostrar a ativação do smart no proxy FHIR.

O proxy SMART on FHIR atua como um intermediário entre a aplicação SMART no FHIR e a Azure AD. A resposta de autenticação (o código de autenticação) tem de aceder ao proxy SMART no FHIR em vez da própria aplicação. Em seguida, o proxy reencaminha a resposta para a aplicação.

Devido a este reencaminhamento de dois passos do código de autenticação, tem de definir o URL de resposta (chamada de retorno) para a sua aplicação cliente Azure AD para um URL que é uma combinação do URL de resposta para o proxy SMART no FHIR e o URL de resposta para a aplicação SMART no FHIR. O URL de resposta combinado assume este formulário:

https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA

Nessa resposta, aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA encontra-se uma versão com codificação base64 e segura de URL do URL de resposta da aplicação SMART on FHIR. Para o iniciador de aplicações SMART no FHIR, quando a aplicação está em execução localmente, o URL de resposta é https://localhost:5001/sampleapp/index.html.

Pode gerar o URL de resposta combinado com um script como este:

$replyUrl = "https://localhost:5001/sampleapp/index.html"
$fhirServerUrl = "https://MYFHIRAPI.azurewebsites.net"
$bytes = [System.Text.Encoding]::UTF8.GetBytes($ReplyUrl)
$encodedText = [Convert]::ToBase64String($bytes)
$encodedText = $encodedText.TrimEnd('=');
$encodedText = $encodedText.Replace('/','_');
$encodedText = $encodedText.Replace('+','-');

$newReplyUrl = $FhirServerUrl.TrimEnd('/') + "/AadSmartOnFhirProxy/callback/" + $encodedText

Adicione o URL de resposta à aplicação cliente pública que criou anteriormente para Azure AD:

Captura de ecrã a mostrar como o URL de resposta pode ser configurado para o cliente público.

Passo 3: Obter um paciente de teste

Para testar a API do Azure para FHIR e o smart on FHIR proxy, terá de ter pelo menos um paciente na base de dados. Se ainda não interagiu com a API e não tem dados na base de dados, veja Aceder ao serviço FHIR com o Postman para carregar um paciente. Tome nota do ID de um paciente específico.

Passo 4: Transferir o iniciador de aplicações SMART no FHIR

O servidor FHIR open source para o repositório do Azure inclui um smart simples no iniciador de aplicações FHIR e um smart de exemplo na aplicação FHIR. Neste tutorial, utilize este iniciador SMART no FHIR localmente para testar a configuração.

Pode clonar o repositório do GitHub e aceder à aplicação com estes comandos:

git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher

A aplicação precisa de algumas definições de configuração, que pode definir em appsettings.json:

{
    "FhirServerUrl": "https://MYFHIRAPI.azurehealthcareapis.com",
    "ClientId": "APP-ID",
    "DefaultSmartAppUrl": "/sampleapp/launch.html"
}

Recomendamos que utilize a dotnet user-secrets funcionalidade:

dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>

Utilize este comando para executar a aplicação:

dotnet run

Passo 5: Testar o SMART no proxy FHIR

Depois de iniciar o iniciador de aplicações SMART no FHIR, pode apontar o browser para https://localhost:5001, onde deverá ver o seguinte ecrã:

Captura de ecrã a mostrar SMART no iniciador de aplicações FHIR.

Quando introduzir as informações de Paciente, Encontro ou Profissional , irá reparar que o contexto iniciar é atualizado. Quando estiver a utilizar a API do Azure para FHIR, o contexto de iniciação é simplesmente um documento JSON que contém informações sobre pacientes, profissionais e muito mais. Este contexto de iniciação é codificado com base64 e transmitido para a aplicação SMART no FHIR como o launch parâmetro de consulta. De acordo com a especificação SMART on FHIR, esta variável é opaca para a aplicação SMART no FHIR e transmitida ao fornecedor de identidade.

O proxy SMART on FHIR utiliza estas informações para preencher campos na resposta do token. A aplicação SMART on FHIR pode utilizar estes campos para controlar para que paciente pede dados e como compõe a aplicação no ecrã. O proxy SMART no FHIR suporta os seguintes campos:

  • patient
  • encounter
  • practitioner
  • need_patient_banner
  • smart_style_url

Estes campos destinam-se a fornecer orientações à aplicação, mas não transmitem informações de segurança. Uma aplicação SMART no FHIR pode ignorá-las.

Repare que o iniciador de aplicações SMART no FHIR atualiza as informações do URL de Iniciação na parte inferior da página. Selecione Iniciar para iniciar a aplicação de exemplo.

## Passos seguintes

Agora que aprendeu a ativar a funcionalidade SMART no FHIR, veja a página de exemplos de pesquisa para obter detalhes sobre como procurar com parâmetros de pesquisa, modificadores e outros métodos de pesquisa FHIR.

FHIR® é uma marca registada do HL7 e é utilizada com a permissão de HL7.