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
- Uma instância do serviço FHIR
- SDK .NET 6.0
- Ativar a partilha de recursos entre origens (CORS)
- Registar a aplicação cliente pública no Azure AD
- Depois de registar a aplicação, tome nota do applicationId para a aplicação cliente.
- Certifique-se de que tem acesso à Subscrição do Azure do serviço FHIR para criar recursos e adicionar atribuições de funções.
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.
Passo 1: Definir o consentimento do administrador para a aplicação cliente
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:
- No portal do Azure, aceda a Azure Active Directory.
- No menu esquerdo, selecione Registo de Aplicações.
- Procure o registo de aplicações que criou e, em seguida, selecione-o.
- No menu esquerdo, em Gerir, selecione Proprietários.
- Selecione Adicionar proprietários e, em seguida, adicione-se a si próprio ou ao utilizador que pretende que tenha o consentimento do administrador.
- 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 :
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:
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ã:
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.
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.