Visão geral do SMART on FHIR
Aplicativos Médicos Substituíveis e Tecnologias Reutilizáveis (SMART on FHIR) é um padrão de saúde por meio do qual os aplicativos podem acessar informações clínicas por meio de um armazenamento de dados. Ele adiciona uma camada de segurança com base em padrões abertos, incluindo OAuth2 e OpenID Connect, a interfaces FHIR para habilitar a integração com sistemas EHR. O uso do SMART no FHIR oferece pelo menos três benefícios importantes:
- Os aplicativos têm um método conhecido para obter autenticação/autorização para um repositório FHIR.
- Os usuários que acessam um repositório FHIR com SMART no FHIR são restritos a recursos associados ao usuário, em vez de ter acesso a todos os dados no repositório.
- Os usuários têm a capacidade de conceder aos aplicativos acesso a um conjunto limitado adicional de seus dados usando escopos clínicos SMART.
Os tutoriais abaixo descrevem as etapas para habilitar o SMART em aplicativos FHIR com o Serviço FHIR.
Pré-requisitos
- Uma instância do serviço FHIR
- SDK do .NET 6.0
- Habilitar o CORS (compartilhamento de recursos entre origens)
- Registrar aplicativo cliente público no Azure AD
- Depois de registrar o aplicativo, anote a applicationId para o aplicativo cliente.
- Verifique se você tem acesso à Assinatura do Azure do serviço FHIR para criar recursos e adicionar atribuições de função.
SMART no FHIR usando OSS de exemplos AHDS (SMART no FHIR(Avançado))
Etapa 1: Configurar a função de usuário FHIR SMART
Siga as etapas listadas na seção Gerenciar Usuários: Atribuir Usuários à Função. Qualquer usuário adicionado à função – "FHIR SMART User" poderá acessar o Serviço FHIR se suas solicitações estiverem em conformidade com o Guia de implementação smart on FHIR, como solicitação com token de acesso, que inclui uma declaração fhirUser e uma declaração de escopos clínicos. O acesso concedido aos usuários nessa função será limitado pelos recursos associados ao compartimento fhirUser e às restrições nos escopos clínicos.
Etapa 2: integração do servidor FHIR com exemplos
Siga as etapas em OSS de Exemplos do Serviço de Dados de Integridade do Azure. Isso habilitará a integração do servidor FHIR com outros Serviços do Azure (como APIM, funções do Azure e muito mais).
Observação
Os exemplos são código de código aberto e você deve examinar as informações e os termos de licenciamento no GitHub antes de usá-lo. Eles não fazem parte do Serviço de Dados de Integridade do Azure e não são compatíveis com Suporte da Microsoft. Esses exemplos podem ser usados para demonstrar como os Serviços de Dados de Integridade do Azure e outras ferramentas de software livre podem ser usados juntos para demonstrar a conformidade do ONC (g)(10), usando o Azure Active Directory como o fluxo de trabalho do provedor de identidade.
PROXY SMART no FHIR
Clique para expandir!
Observação
Essa é outra opção para SMART no FHIR(Avançado) mencionado acima. A opção SMART on FHIR Proxy habilita apenas a sequência de inicialização do EHR.
Etapa 1: Definir o consentimento do administrador para seu aplicativo cliente
Para usar o SMART no FHIR, primeiro você deve autenticar e autorizar o aplicativo. Na primeira vez que você usar o SMART no FHIR, também deverá obter consentimento administrativo para permitir que o aplicativo acesse seus recursos FHIR.
Se você não tiver uma função de propriedade no aplicativo, entre em contato com o proprietário do aplicativo e solicite que ele conceda consentimento de administrador para você no aplicativo.
Se você tiver privilégios administrativos, conclua as etapas a seguir para conceder o consentimento do administrador diretamente. (Você também pode conceder o consentimento do administrador para si mesmo mais tarde quando for solicitado no aplicativo.) Você pode concluir as mesmas etapas para adicionar outros usuários como proprietários, para que eles possam exibir e editar esse registro de aplicativo.
Para adicionar você ou outro usuário como proprietário de um aplicativo:
- No portal do Azure, acesse o Azure Active Directory.
- No menu à esquerda, selecione Registro de Aplicativo.
- Pesquise o registro do aplicativo que você criou e selecione-o.
- No menu à esquerda, em Gerenciar, selecione Proprietários.
- Selecione Adicionar proprietários e adicione a si mesmo ou ao usuário que você deseja ter o consentimento do administrador.
- Selecione Salvar
Etapa 2: Habilitar o proxy SMART no FHIR
O SMART on 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 usa um valor Audience
de https://azurehealthcareapis.com
. No entanto, você também pode definir um valor correspondente à URL específica do serviço FHIR (por exemplo https://MYFHIRAPI.azurehealthcareapis.com
). Isso é necessário ao trabalhar com o proxy do SMART on FHIR.
Para habilitar o proxy SMART on FHIR nas configurações de autenticação da instância da API do Azure para FHIR, selecione a caixa smart no proxy FHIR marcar:
O proxy do SMART on FHIR atua como um intermediário entre o aplicativo SMART on FHIR e o Azure AD. A resposta de autenticação (o código de autenticação) deve ir para o proxy do SMART on FHIR, em vez do próprio aplicativo. O proxy então encaminha a resposta para o aplicativo.
Devido a essa retransmissão de duas etapas do código de autenticação, você precisa definir a URL de resposta (retorno de chamada) para seu aplicativo cliente do Azure AD para uma URL que seja uma combinação da URL de resposta para o proxy do SMART on FHIR e a URL de resposta para o aplicativo SMART on FHIR. A URL de resposta combinada tem este formato:
https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
Nessa resposta, aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
é uma versão segura de URL, codificada em base64 da URL de resposta para o aplicativo SMART on FHIR. Para o inicializador de aplicativos SMART on FHIR, quando o aplicativo está em execução localmente, a URL de resposta é https://localhost:5001/sampleapp/index.html
.
Você pode gerar a URL de resposta combinada usando 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 a URL de resposta ao aplicativo cliente público que você criou anteriormente para o Azure AD:
Etapa 3: Obter um paciente de teste
Para testar a API do Azure para FHIR e o proxy do SMART on FHIR, você precisará ter pelo menos um paciente no banco de dados. Se você ainda não interagiu com a API e não tem dados no banco de dados, confira Acessar o serviço FHIR usando o Postman para carregar um paciente. Anote a ID de um paciente específico.
Etapa 4: Baixar o inicializador de aplicativos SMART no FHIR
O servidor FHIR para o repositório do Azure de software livre inclui um inicializador de aplicativos SMART on FHIR simples e um aplicativo de exemplo SMART on FHIR. Neste tutorial, use esse iniciador do SMART on FHIR localmente para testar a instalação.
Você pode clonar o repositório do GitHub e ir para o aplicativo usando estes comandos:
git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher
O aplicativo precisa de algumas definições de configuração, que podem ser feitas em appsettings.json
:
{
"FhirServerUrl": "https://MYFHIRAPI.azurehealthcareapis.com",
"ClientId": "APP-ID",
"DefaultSmartAppUrl": "/sampleapp/launch.html"
}
Recomendamos o uso do recurso dotnet user-secrets
:
dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>
Use este comando para executar o aplicativo:
dotnet run
Etapa 5: Testar o SMART no proxy FHIR
Depois de iniciar o inicializador de aplicativos SMART on FHIR, você pode apontar seu navegador para https://localhost:5001
, em que deverá ver a tela a seguir:
Ao inserir informações de Paciente, Encontrado ou Profissional, você observará que o Contexto de inicialização é atualizado. Quando você está usando a API do Azure para FHIR, o contexto de inicialização é simplesmente um documento JSON que contém informações sobre pacientes, profissionais e muito mais. Esse contexto de inicialização é codificado em Base64 e passado para o aplicativo SMART on FHIR como o parâmetro de consulta launch
. De acordo com a especificação do SMART on FHIR, essa variável é opaca para o aplicativo SMART on FHIR e passada para o provedor de identidade.
O proxy do SMART on FHIR usa essas informações para preencher campos na resposta do token. O aplicativo SMART on FHIR pode usar esses campos para controlar para qual paciente ele solicita dados e como ele renderiza o aplicativo na tela. O proxy do SMART on FHIR dá suporte aos seguintes campos:
patient
encounter
practitioner
need_patient_banner
smart_style_url
Esses campos destinam-se a fornecer orientação para o aplicativo, mas não transmitem nenhuma informação de segurança. Um aplicativo SMART on FHIR pode ignorá-los.
Observe que o inicializador de aplicativos SMART on FHIR atualiza as informações da URL de inicialização na parte inferior da página. Selecione Iniciar para iniciar o aplicativo de exemplo.
Agora que você aprendeu a habilitar a funcionalidade SMART on FHIR, consulte a página de exemplos de pesquisa para obter detalhes sobre como pesquisar usando parâmetros de pesquisa, modificadores e outros métodos de pesquisa FHIR.
FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.