Convertendo seus dados em FHIR para API do Azure para FHIR

Importante

A API do Azure para FHIR será desativada em 30 de setembro de 2026. Siga as estratégias de migração para fazer a transição para o serviço FHIR® dos Serviços de Dados de Saúde do Azure até essa data. Devido à desativação da API do Azure para FHIR, novas implantações não serão permitidas a partir de 1 de abril de 2025. O serviço FHIR dos Serviços de Dados de Saúde do Azure é a versão evoluída da API do Azure para FHIR que permite aos clientes gerir serviços FHIR, DICOM e MedTech com integrações noutros serviços do Azure.

O $convert-data ponto de extremidade personalizado no serviço FHIR® destina-se à conversão de dados de diferentes tipos de dados para FHIR. Ele usa o mecanismo de modelo Liquid e os modelos do projeto FHIR Converter como os modelos padrão. Pode personalizar estes modelos de conversão conforme necessário.

Atualmente, o $convert-data ponto de extremidade personalizado suporta quatro tipos de conversão de dados:

Formato de dados de origem Formato de dados de destino
C-CDA FHIR
HL7v2 FHIR
JSON FHIR
FHIR STU3 FHIR R4

Nota

O $convert-data ponto de extremidade pode ser usado como um componente dentro de um pipeline de exportação, transformação, carga (ETL) para a conversão de dados brutos de saúde de formatos legados para o formato FHIR. No entanto, não é, em si mesmo, um pipeline de ETL. Recomendamos que você use um mecanismo ETL, como Aplicativos Lógicos ou Azure Data Factory, para obter um fluxo de trabalho completo na preparação dos dados FHIR a serem persistidos no servidor FHIR. O fluxo de trabalho pode incluir: leitura e ingestão de dados, validação de dados, realização $convert-data de chamadas de API, pré/pós-processamento de dados, enriquecimento de dados e eliminação da duplicação de dados.

Utilizar o ponto final $convert-data

A $convert-data operação está integrada no serviço FHIR para funcionar como parte do serviço. Depois de ativar $convert-data em seu servidor, você pode fazer chamadas de API para o servidor para converter seus dados em FHIR usando https://<<FHIR service base URL>>/$convert-data.

Recurso de parâmetro

$convert-data usa um recurso Parameter no corpo da solicitação, conforme descrito na tabela a seguir. No corpo da solicitação de chamada de API, você incluiria os seguintes parâmetros:

Nome do Parâmetro Description Valores aceites
inputData Dados a converter. Para Hl7v2: string
Para Ccda: XML
Para Json: JSON
Para FHIR STU3: JSON
inputDataType Tipo de dados de entrada. HL7v2, Ccda, Json, Fhir
templateCollectionReference Referência a uma coleção de modelos de imagem OCI no Azure Container Registry (ACR). É a imagem que contém modelos Liquid para usar na conversão. Pode ser uma referência aos modelos padrão ou uma imagem de modelo personalizada registrada no serviço FHIR. Veja o seguinte para saber como personalizar os modelos, hospedá-los no ACR e registrar-se no serviço FHIR. Para modelos padrão/exemplo:
Modelos HL7v2 :
microsofthealth/fhirconverter:default
microsofthealth/hl7v2templates:default
Modelos C-CDA :
microsofthealth/ccdatemplates:default
Modelos JSON :
microsofthealth/jsontemplates:default
Modelos FHIR STU3 :
microsofthealth/stu3tor4templates:default

Para modelos personalizados:
<RegistryServer>/<imageName>@<imageDigest>, <RegistryServer>/<imageName>:<imageTag>
rootTemplate O modelo raiz a ser usado durante a transformação dos dados. Para HL7v2:
"ADT_A01", "ADT_A02", "ADT_A03", "ADT_A04", "ADT_A05", "ADT_A08", "ADT_A11", "ADT_A13", "ADT_A14", "ADT_A15", "ADT_A16", "ADT_A25", "ADT_A26", "ADT_A27", "ADT_A28", "ADT_A29", "ADT_A31", "ADT_A47", "ADT_A60", "OML_O21", "ORU_R01", "ORM_O01", "VXU_V04", "SIU_S12", "SIU_S13", "SIU_S14", "SIU_S15", "SIU_S16", "", "SIU_S17", "SIU_S26", "MDM_T01", "MDM_T02"

Para C-CDA:
"CCD", "ConsultationNote", "DischargeSummary", "HistoryandPhysical", "OperativeNote", "ProcedureNote", "ProgressNote", "ReferralNote", "TransferSummary"

Para JSON:
"ExemploPaciente", "Stu3ChargeItem"

FHIR STU3":
Recurso STU3, por exemplo Nome, "Paciente", "Observação", "Organização".

Nota

Os modelos FHIR STU3 a R4 são modelos líquidos "diff" que fornecem mapeamentos de diferenças de campo apenas entre o recurso STU3 e seu recurso equivalente no padrão FHIR R4. Alguns dos recursos STU3 são renomeados ou removidos do R4. Consulte Diferenças e restrições de recursos para conversão de STU3 para R4.

Nota

Os modelos JSON são modelos de exemplo para uso, não modelos "padrão" que aderem a qualquer tipo de mensagem JSON predefinido. JSON não tem tipos de mensagem padronizados, ao contrário de mensagens HL7v2 ou documentos C-CDA. Em vez de modelos padrão, fornecemos alguns modelos de exemplo que você pode usar como um guia inicial para seus próprios modelos personalizados.

Aviso

Os modelos padrão são lançados sob a Licença MIT e não são suportados pelo Suporte da Microsoft.

Os modelos padrão são fornecidos apenas para ajudá-lo a começar. Eles podem ser atualizados quando atualizamos versões da API do Azure para FHIR. Você deve verificar o comportamento de conversão e hospedar sua própria cópia de modelos em um Registro de Contêiner do Azure, registrá-los na API do Azure para FHIR usar em suas chamadas de API. Isso é necessário para um comportamento consistente de conversão de dados em diferentes versões da API do Azure para FHIR.

Pedido de Amostra

{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "inputData",
            "valueString": "MSH|^~\\&|SIMHOSP|SFAC|RAPP|RFAC|20200508131015||ADT^A01|517|T|2.3|||AL||44|ASCII\nEVN|A01|20200508131015|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|\nPID|1|3735064194^^^SIMULATOR MRN^MRN|3735064194^^^SIMULATOR MRN^MRN~2021051528^^^NHSNBR^NHSNMBR||Kinmonth^Joanna^Chelsea^^Ms^^D||19870624000000|F|||89 Transaction House^Handmaiden Street^Wembley^^FV75 4GJ^GBR^HOME||020 3614 5541^PRN|||||||||C^White - Other^^^||||||||\nPD1|||FAMILY PRACTICE^^12345|\nPV1|1|I|OtherWard^MainRoom^Bed 183^Simulated Hospital^^BED^Main Building^4|28b|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|||CAR|||||||||16094728916771313876^^^^visitid||||||||||||||||||||||ARRIVED|||20200508131015||"
        },
        {
            "name": "inputDataType",
            "valueString": "Hl7v2"
        },
        {
            "name": "templateCollectionReference",
            "valueString": "microsofthealth/fhirconverter:default"
        },
        {
            "name": "rootTemplate",
            "valueString": "ADT_A01"
        }
    ]
}

Pedido de Resposta

{
  "resourceType": "Bundle",
  "type": "transaction",
  "entry": [
    {
      "fullUrl": "urn:uuid:9d697ec3-48c3-3e17-db6a-29a1765e22c6",
      "resource": {
        "resourceType": "Patient",
        "id": "9d697ec3-48c3-3e17-db6a-29a1765e22c6",
        ...
        ...
      "request": {
        "method": "PUT",
        "url": "Location/50becdb5-ff56-56c6-40a1-6d554dca80f0"
      }
    }
  ]
}

Personalizar modelos

Você pode usar a extensão FHIR Converter para Visual Studio Code para personalizar os modelos de acordo com suas necessidades. A extensão fornece uma experiência de edição interativa e facilita o download de modelos publicados pela Microsoft e dados de exemplo. Consulte a documentação na extensão para obter mais detalhes.

Nota

A extensão FHIR Converter para Visual Studio Code está disponível para modelos HL7v2, C-CDA e JSON Liquid. Os modelos FHIR STU3 a R4 Liquid não são suportados no momento.

Alojar e utilizar modelos

É recomendável que você hospede sua própria cópia dos modelos no ACR. Há quatro etapas envolvidas na hospedagem de sua própria cópia de modelos e usá-los na $convert-data operação:

  1. Envie os modelos por push para o Registro de Contêiner do Azure.
  2. Habilite a Identidade Gerenciada em sua API do Azure para instância FHIR.
  3. Forneça acesso do ACR à API do Azure para FHIR Managed Identity.
  4. Registre os servidores ACR na API do Azure para FHIR.
  5. Opcionalmente, configure o firewall ACR para acesso seguro.

Enviar modelos por push para o Registro de Contêiner do Azure

Depois de criar uma instância ACR, você pode usar o comando FHIR Converter: Push Templates na extensão FHIR Converter para enviar os modelos personalizados para o ACR. Como alternativa, você pode usar a ferramenta Template Management CLI.

Habilitar a identidade gerenciada na API do Azure para FHIR

Navegue até sua instância do serviço Azure API for FHIR no portal do Azure e selecione a folha Identidade . Altere o status para Ativado para habilitar a identidade gerenciada na API do Azure para FHIR.

Imagem de ecrã de Ativar Identidade Gerida.

Fornecer acesso do ACR à API do Azure para FHIR

  1. Navegue até a folha Controle de acesso (IAM).

  2. Selecione Adicionar e, em seguida, selecione Adicionar atribuição de função para abrir a página Adicionar atribuição de função.

  3. Atribua a função AcrPull .

    Imagem da tela da página Adicionar atribuição de função.

Para obter mais informações sobre como atribuir funções no portal do Azure, consulte Funções internas do Azure.

Registrar os servidores ACR na API do Azure para FHIR

Você pode registrar o servidor ACR usando o portal do Azure ou usando a CLI.

Registrando o servidor ACR usando o portal do Azure

Navegue até a folha Artefatos em Transformação de dados em sua instância FHIR da API do Azure. Você vê a lista de servidores ACR atualmente registrados. Selecione Adicionar e, em seguida, selecione o servidor de registo no menu pendente. Você precisa selecionar Salvar para que o registro entre em vigor. Pode levar alguns minutos para aplicar a alteração e reiniciar sua instância.

Registrando o servidor ACR usando CLI

Você pode registrar até 20 servidores ACR na API do Azure para FHIR.

Instale a CLI dos Serviços de Dados de Saúde do Azure a partir do Azure PowerShell, se necessário:

az extension add -n healthcareapis

Registre os servidores acr na API do Azure para FHIR seguindo estes exemplos:

Registrar um único servidor ACR
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
Registrar vários servidores ACR
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io fhiracr2020.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021

Configurar firewall ACR

Selecione Rede para a conta de armazenamento do Azure no portal.

 Imagem de tela do registro do contêiner.

Selecione Redes selecionadas.

Na seção Firewall, especifique o endereço IP na caixa Intervalo de endereços. Adicione intervalos de IP para permitir o acesso a partir da Internet ou das suas redes locais.

Na tabela a seguir, você encontrará o endereço IP da região do Azure onde a API do Azure para serviço FHIR é provisionada.

Região do Azure Endereço IP público
Leste da Austrália 20.53.47.210
Sul do Brasil 191.238.72.227
Canadá Central 20.48.197.161
Índia Central 20.192.47.66
E.U.A. Leste 20.62.134.242, 20.62.134.244, 20.62.134.245
E.U.A. Leste 2 20.62.60.115, 20.62.60.116, 20.62.60.117
França Central 51.138.211.19
Norte da Alemanha 51.116.60.240
Alemanha Centro-Oeste 20.52.88.224
Leste do Japão 20.191.167.146
Oeste do Japão 20.189.228.225
Coreia do Sul Central 20.194.75.193
E.U.A. Centro-Norte 52.162.111.130, 20.51.0.209
Europa do Norte 52.146.137.179
Catar Central 20.21.36.225
Norte da África do Sul 102.133.220.199
E.U.A. Centro-Sul 20.65.134.83
Sudeste Asiático 20.195.67.208
Suécia Central 51.12.28.100
Norte da Suíça 51.107.247.97
Sul do Reino Unido 51.143.213.211
Oeste do Reino Unido 51.140.210.86
E.U.A. Centro-Oeste 13.71.199.119
Europa Ocidental 20.61.103.243, 20.61.103.244
E.U.A. Oeste 2 20.51.13.80, 20.51.13.84, 20.51.13.85
EUA Oeste 3 20.150.245.165

Nota

As etapas anteriores são semelhantes às etapas de configuração descritas no documento Como exportar dados FHIR. Para obter mais informações, consulte Exportação segura para o armazenamento do Azure

Verificar

Faça uma chamada para a $convert-data API especificando sua referência de modelo no parâmetro templateCollectionReference.

<RegistryServer>/<imageName>@<imageDigest>

Próximos passos

Neste artigo, você aprendeu sobre a conversão de dados para a API do Azure para FHIR. Para obter mais informações sobre projetos relacionados do GitHub para a API do Azure para FHIR, consulte

Nota

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