Dataverse Healthcare APIs: configurar Aplicativo Lógico do Azure com um gatilho HTTP
Este artigo fornece um guia passo a passo para a criação de seu próprio Aplicativo Lógico do Azure para ingerir dados de FHIR nas Dataverse Healthcare APIs, nos Serviços de Dados de Saúde do Azure ou em ambos. Esse Aplicativo Lógico, configurado com um gatilho HTTP, atua como uma retransmissão entre os Serviços de Dados de Saúde do Azure e as Dataverse Healthcare APIs.
Você também pode usar um modelo do ARM (Azure Resource Manager) chamado Modelo de pipeline de dados de saúde para implantar um grupo de Aplicativos Lógicos que orquestram a ingestão de pacotes FHIR nas Dataverse Healthcare APIs e nos Serviços de Dados de Saúde do Azure. Para saber mais, consulte Dataverse Healthcare APIs: usar um modelo de pipeline de dados de saúde para implantar Aplicativos Lógicos do Azure.
Observação
Este exemplo é fornecido como um ponto de entrada para dados de EHR (Registros Eletrônicos de Saúde) de entrada, garantindo que os dados de FHIR sejam postados nos serviços corretos. Não se destina a ser uma solução final em seu estado atual.
A configuração inclui as seguintes etapas:
- Analisar requisitos
- Configurar a autenticação
- Criar o Aplicativo Lógico
- Configurar o Aplicativo Lógico
- Chamar API FHIR
- Avaliar a resposta do FHIR
- Enviar pacote JSON para a URL do aplicativo lógico
- Proteger o Aplicativo Lógico
Esse serviço de aplicativo lógico fornece um ponto de entrada para mensagens do pacote FHIR que são postadas primeiro no ponto de extremidade dos Serviços de Dados de Saúde do Azure. Após uma postagem com êxito, a mensagem é roteada para o ponto de extremidade da Dataverse Healthcare API. Este exemplo garante que, quando os pacotes FHIR forem postados nos Serviços de Dados de Saúde do Azure, as Dataverse Healthcare APIs também recebam a mensagem.
Observação
Um Aplicativo Lógico do Azure não é necessários para postar dados de FHIR nos ponto de extremidade da Dataverse Healthcare API. Você pode criar sua própria solução para retransmitir dados de seu EHR para as APIs e manipular as respostas.
O aplicativo lógico de exemplo usa identidades gerenciadas do Microsoft Entra ID para fazer a autenticação entre a instância do aplicativo lógico e os dois serviços.
Analisar requisitos
Você precisará garantir que tenha os seguintes requisitos antes de criar um aplicativo lógico:
- Uma conta e assinatura do Azure. Se você não tiver uma assinatura, inscreva-se para receber uma conta gratuita do Azure antes de começar.
- Um grupo de recursos do Azure configurado com os recursos apropriados para criar aplicativos lógicos.
- Acesso dentro do grupo de recursos para criar e editar aplicativos lógicos e identidades gerenciadas.
- Aderência às diretrizes de segurança descritas pelos administradores do Azure e política da organização.
Configurar a autenticação
Antes de criar e configurar o aplicativo lógico, você precisa configurar uma identidade gerenciada para que os serviços externos possam ser autenticados com o aplicativo lógico. Usar identidades gerenciadas é uma abordagem para configurar a autenticação. Siga as melhores práticas e as políticas da organização ao configurar a autenticação.
As identidades gerenciadas no Azure permitem a autenticação entre serviços sem credenciais persistentes no aplicativo lógico. Este aplicativo lógico usa uma identidade gerenciada atribuída pelo usuário para autenticação entre serviços. Os administradores do Azure normalmente restringem essa configuração. Se o acesso estiver disponível, você poderá usar as etapas a seguir para criar uma identidade gerenciada que pode se conectar aos pontos de extremidade dos Serviços de Dados de Saúde do Azure e da Dataverse Healthcare API.
Para obter mais informações sobre identidades gerenciadas, acesse O que são identidades gerenciadas para recursos do Azure?
Para configurar a autenticação com uma identidade gerenciada, execute as seguintes etapas:
- Criar uma identidade gerenciada
- Conceder acesso aos Serviços de Dados de Saúde do Azure
- Conceder acesso às APIs do Dataverse Healthcare
Criar uma identidade gerenciada
Crie uma identidade gerenciada atribuída pelo usuário usando as seguintes etapas:
No menu Portal do Azure, selecione Criar um recurso e procure Identidade Gerenciada. Nas opções fornecidas, selecione Identidade gerenciada atribuída pelo usuário e selecione Criar.
Selecione a Assinatura correta, o Grupo de recursos e os valores Região. A região deve ser igual ao aplicativo lógico.
No campo Nome, selecione FHIRRelayManagedIdentity ou qualquer outro nome exclusivo do grupo de recursos. O resto deste artigo refere-se ao nome FHIRRelalayManagedIdentity para a identidade gerenciada.
Selecione Criar.
Após a conclusão da implantação, abra o recurso de identidade gerenciada.
Conceder acesso aos Serviços de Dados de Saúde do Azure
Acessar os Serviços de Dados de Saúde do Azure usando o aplicativo lógico requer a atribuição de função Colaborador de Dados do FHIR, que permite publicar novos dados no serviço. Você deve adicionar essa atribuição de função do Azure à identidade gerenciada usada pelo aplicativo lógico.
Vá para a instância dos Serviços de Dados de Saúde do Azure, selecione Controle de Acesso (IAM) e, em seguida, selecione Adicionar atribuição de função.
Na guia Função, selecione a função Colaborador de dados de FHIR.
Selecione a guia Membros. Selecione Identidade gerenciada e, em seguida, selecione + Selecionar membros. Adicione a identidade gerenciada que você criou em Criar uma identidade gerenciada.
A atribuição pode levar alguns minutos para refletir na identidade gerenciada. Você pode exibir a atribuição de função do Azure na identidade gerenciada selecionando Atribuições de função do Azure.
Conceder acesso às Dataverse Healthcare APIs
A mesma identidade gerenciada é usada no aplicativo lógico para acessar as Dataverse Healthcare APIs conectando-o a um usuário de aplicação no destino da instância do Dataverse. Para obter mais informações sobre os usuários do aplicativo, acesse Gerenciar usuários de aplicativos no centro de administração da Power Platform.
Você precisará da ID do Cliente do Azure da identidade gerenciada para configurar o usuário do aplicativo. Para recuperar a ID do cliente, abra a identidade gerenciada FHIRRelayManagedIdentity e copie o valor ID do cliente da área Visão geral.
No Centro de Administração da Power Platform, abra o ambiente Microsoft Cloud for Healthcare de destino. Na seção Acesso, selecione Aplicativos S2S e, em seguida, selecione Novo usuário do aplicativo.
No painel Criar um usuário do aplicativo, selecione a Unidade de negócios apropriada e selecione Adicionar um aplicativo.
No painel Adicionar um aplicativo a partir do Microsoft Entra ID, procure o ID do Cliente que você copiou da identidade gerenciada. Selecione FHIRRelayManagedIdentity na lista, escolha Adicionar e edite os direitos de acesso.
Selecione o direito Usuário de Registro do Aplicativo de Administração de Sincronização FHIR e selecione Salvar. Selecione Criar para criar o novo usuário do aplicativo.
Criar o Aplicativo Lógico
No menu Portal do Azure, selecione Criar um recurso, procure Aplicativo Lógico e escolha o item nos resultados da pesquisa.
Selecione Criar.
No painel Criar aplicativo lógico, forneça as informações relevantes para o aplicativo lógico. Revise o tipo de plano, a segurança e os detalhes da rede com os administradores do Azure com base na carga de processamento esperada.
As configurações a seguir são exemplos de um orquestrador de aplicativo lógico simples para testar a conectividade que você usaria nas seções posteriores deste artigo. Se uma configuração não for especificada, suponha que os valores padrão sejam usados.
Configuração Valor Nome do Aplicativo Lógico FhirRelaySample Publicar Fluxo de trabalho Região Leste dos EUA Tipo de plano Consumo Selecione Criar. Pode levar alguns minutos para provisionar o novo aplicativo lógico.
Configurar o Aplicativo Lógico
Depois de criar o aplicativo lógico, abra o recurso do aplicativo lógico para abrir o Designer de Aplicativo Lógico em Ferramentas de desenvolvimento. Siga estas etapas para configurar o aplicativo lógico:
Configurar identidade
Agora que o aplicativo lógico e a identidade gerenciada foram criados, você precisa vinculá-los.
Selecione Identidade no menu do aplicativo lógico, selecione a guia Usuário atribuído e escolha + Adicionar.
No painel aberto, selecione a identidade gerenciada criada e selecione Adicionar.
O aplicativo lógico agora deve vincular à nova identidade gerenciada. Ele pode ser usado para processar etapas e ações.
Configurar gatilho
O primeiro passo na configuração de um fluxo de trabalho de aplicativo lógico é definir o ponto de entrada ou o gatilho. O gatilho Quando uma solicitação HTTP é recebida permite que sistemas externos postem dados por meio de solicitações HTTP no aplicativo lógico para processamento. Esse gatilho permite que o aplicativo lógico de retransmissão FHIR receba uma solicitação HTTP com uma carga JSON. Para obter mais informações sobre como criar um gatilho, acesse Adicionar um gatilho de solicitação.
Esse aplicativo lógico espera uma solicitação de entrada contendo um pacote FHIR padrão. O Esquema JSON do Corpo da Solicitação fica vazio porque cada pacote recebido pode ser exclusivo. Essa configuração permite que o aplicativo lógico receba várias cargas JSON em vez de vinculá-lo a um contrato de dados específico.
Salve as configurações para gerar a URL POST HTTP. Use esta URL posteriormente para testar o aplicativo lógico.
Configurar parâmetros
Os parâmetros permitem flexibilidade na criação e implantação de aplicativos lógicos por meio de modelos do Azure Resource Manager. Nesta amostra, adicione os dois parâmetros a seguir nas ações do aplicativo lógico:
- DataverseURL: a URL totalmente qualificada para a instância do Dataverse que hospeda as Dataverse Healthcare APIs.
- FhirURL: a URL totalmente qualificada para os Serviços de Dados de Saúde do Azure.
Para criar um parâmetro, selecione Parâmetros na barra de ferramentas para abrir o painel de parâmetros.
Para cada novo parâmetro, siga estas etapas:
Selecione Salvar na barra de ferramentas para salvar os novos parâmetros com o aplicativo lógico.
Chamar API FHIR
Você precisa de uma nova ação para postar o conteúdo da solicitação de entrada no ponto de extremidade dos Serviços de Dados de Saúde do Azure por meio de um método HTTP POST.
No Designer de Aplicativo Lógico, selecione Nova etapa para adicionar uma nova ação HTTP POST. A ação HTTP é comum e pode ser mostrada como uma ação recomendada. Se aparecer, selecione HTTP como a operação para esta etapa.
Se a recomendação não estiver presente, pesquise HTTP e selecione HTTP na lista de ações disponíveis.
Nomeie esta ação Chamar API FHIR. Nas configurações de ação HTTP, atualize as seguintes configurações:
Configuração Valor método POST URI FhirURL Cabeçalhos Adicione um novo valor para cada um dos seguintes cabeçalhos:
Tipo de conteúdo : aplicativo/json
OData-Version: 4.0Corpo Corpo Os campos URI e Corpo requerem conteúdo dinâmico. O URI usa o valor do parâmetro FhirURL e o campo Corpo usa o corpo da solicitação de entrada tratada pelo gatilho.
Selecione Salvar para garantir que as configurações atuais sejam salvas antes de passar para a próxima etapa.
Selecione Adicionar um novo parâmetro e selecione Autenticação.
- No campo Tipo de autenticação, selecione Identidade Gerenciada.
- Para o campo Identidade gerenciada, selecione a identidade gerenciada criada anteriormente e vinculada ao recurso Serviços de Dados de Saúde do Azure.
- Selecione o valor do parâmetro FhirURL para o campo Público-alvo.
A chamada HTTP agora tem acesso ao POST dos dados FHIR para o ponto de extremidade do serviço.
Avaliar a resposta do FHIR
Após as postagens de dados de FHIR, use uma ação de condição para avaliar a resposta do ponto de extremidade dos Serviços de Dados de Saúde do Azure.
Selecione Nova etapa.
Na caixa de diálogo Ação, selecione a guia Interno e o ícone Controle e escolha Condição para a ação. Nomeie esta ação Avaliar Resposta FHIR.
No parâmetro Condição, selecione o valor dinâmico do Código de status retornado pela ação HTTP anterior. Defina o operador de condição como é igual a e o valor do resultado de 200 para o código de sucesso.
Se essa condição for atendida, a ramificação Verdadeiro é avaliada.
Para garantir que a ação Avaliar a resposta do FHIR seja executada, selecione as reticências na parte superior do cartão de ação e selecione Configurar execução posterior. Selecione todas as opções listadas para que o aplicativo lógico possa fornecer uma resposta ao chamador. Essas atualizações garantirão que a ação seja executada mesmo se a etapa anterior encontrar uma condição de falha.
Condição: resposta bem-sucedida
Se o POST dos Serviços de Dados de Saúde do Azure for bem-sucedido, o corpo da solicitação será postado nas Dataverse Healthcare APIs.
Criar o corpo da solicitação do Dataverse
Na ramificação Verdadeiro, selecione Adicionar uma ação e escolha Interno.
Pesquise Compor. Em Operações de dados, selecione a ação Compor.
No campo Entradas, adicione o seguinte snippet JSON:
{ "msind_BundleTag": "", "msind_JSON": "" }
Nas aspas vazias do nó
msind_JSON
, adicione o conteúdo dinâmico para o valor do corpo do gatilho.Esta etapa adiciona os valores JSON do corpo do gatilho como um parâmetro para a chamada à Dataverse Healthcare API. Nomeie esta etapa Criar o corpo da solicitação do Dataverse.
Chamar API do Dataverse
A próxima etapa publica esse novo JSON no ponto de extremidade das Dataverse Healthcare APIs.
Selecione Adicionar uma ação e crie outra ação HTTP. Nomeie esta etapa Chamar API do Dataverse.
Nas configurações de ação HTTP, atualize as seguintes configurações:
Configuração Valor método POST URI (expressão) Cabeçalhos Adicione um novo valor para cada um dos seguintes cabeçalhos:
Tipo de conteúdo : aplicativo/json
OData-Version: 4.0Corpo (Saída da etapas de composição) O campo URI é um valor de expressão dinâmica que combina o parâmetro DataverseURL e o nome da API personalizada do ponto de extremidade. A expressão completa deve ser a seguinte:
concat(parameters('DataverseURL'), '/api/data/v9.1/msind_UpsertBundle')
O campo Corpo é um valor dinâmico que captura a saída da etapa Compor.
Selecione Adicionar um novo parâmetro e selecione Autenticação. Em Tipo de autenticação, selecione Identidade Gerenciada.
Selecione a identidade gerenciada criada anteriormente e vinculada ao recurso Serviços de Dados de Saúde do Azure. Nesta ação, selecione o valor do parâmetro DataverseURL para o campo Público-alvo.
A chamada HTTP agora tem acesso ao POST para o ponto de extremidade do serviço das Dataverse Healthcare APIs.
Responder com a resposta do Dataverse
Depois de postar os dados no Dataverse, crie a resposta para a chamada do aplicativo lógico usando a resposta da ação Chamar API do Dataverse.
Selecione Adicionar uma ação e selecione Interno.
Selecione Resposta na lista de ações disponíveis. Nomeie esta nova ação Responder com a resposta do Dataverse.
Nesta ação, os valores de retorno das Dataverse Healthcare APIs são retornados como a resposta para o aplicativo lógico usando valores dinâmicos nos campos correspondentes.
Para garantir que a ação Responder com resposta do Dataverse seja executada, selecione as reticências na parte superior da cartão ação e selecione Configurar execução depois. Selecione todas as opções listadas para que o aplicativo lógico possa fornecer uma resposta ao chamador, mesmo que haja falha na Ação Chamar a API do Dataverse.
Condição: resposta com falha
Se a chamada para o ponto de extremidade dos Serviços de Dados de Saúde do Azure falhar, o aplicativo lógico retornará os valores da ação Chamar FHIR API como resposta.
Responder com resposta de falha de FHIR
Selecione Adicionar uma ação na ramificação Falso da condição e, em seguida, selecione Interno.
Selecione Resposta na lista de ações disponíveis. Nomeie esta nova ação Responder com a resposta de falha FHIR.
Nesta ação, os valores de retorno dos Serviços de Dados de Saúde do Azure são retornados como a resposta para o aplicativo lógico usando valores dinâmicos nos campos correspondentes.
Enviar pacote JSON para a URL do Aplicativo Lógico
Para testar o aplicativo lógico com o designer, selecione Executar gatilho e, em seguida, selecione a opção Executar com carga. Essa ação simula a chamada da URL do aplicativo lógico e permite depurar quaisquer problemas.
Para o campo Corpo, forneça um pacote FHIR válido. Essa etapa pressupõe que o restante da configuração do Microsoft Cloud for Healthcare foi concluído e as Dataverse Healthcare APIs estão prontas para receber uma mensagem de entrada.
A execução da versão atual com URLs incorretos para os pontos de extremidade de serviço resulta em uma execução bem-sucedida do aplicativo lógico, mesmo que a ação Chamar API FHIR tenha falhado. Você pode exibir os resultados da execução na página principal do aplicativo lógico em Histórico de execuções.
Quando você atualiza todos os valores de parâmetro corretamente, o histórico de execuções rastreia com êxito a execução do aplicativo lógico.
Proteger o Aplicativo Lógico
Depois que terminar e testar a configuração do aplicativo lógico, você poderá bloquear o rastreamento protegendo as ações de entradas e saídas.
Selecione as reticências no canto superior direito do cartão de ação e selecione Configurações.
Defina as alternâncias de valor como Ativadas para Entradas Seguras e Saídas Seguras.
Todas as execuções de aplicativos lógicos subsequentes restringem a exibição dos dados ao exibir os logs de execução. Os resultados do gatilho agora devem fornecer uma visualização restrita dos dados da seguinte forma:
Você pode aplicar essas configurações a cada ação que oferece suporte a esse recurso. Para obter mais informações, acesse Acesso seguro e dados para fluxos de trabalho nos Aplicativos Lógicos do Azure.