Compartilhar via


Como converter seus dados em FHIR para a 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 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 dos Serviços de Dados de Saúde do Azure para serviço FHIR é a versão evoluída da API do Azure para FHIR que permite aos clientes gerenciar os serviços FHIR, DICOM e serviço de tecnologia médica com integrações a outros serviços do Azure.

O ponto de extremidade personalizado $convert-data no serviço FHIR® é destinado à conversão de dados de diferentes tipos para o formato FHIR. Ele usa o mecanismo de modelo Liquid e os modelos do projeto Conversor FHIR como os modelos padrão. Você pode personalizar esses modelos de conversão conforme necessário.

Atualmente, o ponto de extremidade $convert-data dá suporte para 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

Observação

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

Usar o ponto de extremidade $convert-data

A operação $convert-data é integrada ao serviço FHIR a ser executada como parte do serviço. Após habilitar $convert-data no seu servidor, você pode fazer chamadas à API para o servidor para converter seus dados em FHIR usando https://<<FHIR service base URL>>/$convert-data.

Recurso de parâmetro

$convert-data recebe um recurso de Parâmetro 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 Descrição Valores aceitos
inputData Os dados a serem convertidos. Para Hl7v2: cadeia de caracteres
Para Ccda: XML
Para Json: JSON
Para FHIR STU3: JSON
inputDataType Tipo de dados da entrada. HL7v2, Ccda, Json, Fhir
templateCollectionReference Referência a uma imagem OCI coleção de modelos no ACR (Registro de Contêiner do Azure). É a imagem que contém modelos Liquid a serem usados para conversão. Pode ser uma referência aos modelos padrão ou a uma imagem de modelo personalizada registrada no serviço FHIR. Confira o seguinte para saber mais sobre a personalização dos modelos, hospedagem no ACR e registro no serviço FHIR. Para modelos padrão/de 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 na 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:
"ExamplePatient", "Stu3ChargeItem"

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

Observação

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

Observação

Modelos JSON são modelos de exemplo para uso, não modelos "padrão" que aderem a qualquer tipo de mensagem JSON predefinido. O JSON não tem tipos de mensagens padronizados, diferentemente das mensagens HL7v2 ou dos 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 têm suporte no Suporte da Microsoft.

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

Solicitação de Exemplo

{
    "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"
        }
    ]
}

Resposta de exemplo

{
  "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 do Conversor FHIR 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 dados de exemplo e modelos publicados pela Microsoft. Consulte a documentação na extensão para obter mais detalhes.

Observação

A extensão Conversor FHIR para o Visual Studio Code está disponível para os modelos Liquid HL7v2, C-CDA e JSON. Atualmente, não há suporte para modelos FHIR STU3 para R4 Liquid.

Hospedar e usar modelos

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

  1. Efetuar push dos modelos para o Registro de Contêiner do Azure.
  2. Habilitar a identidade gerenciada na instância da API do Azure para FHIR.
  3. Fornecer acesso do ACR à identidade gerenciada da API do Azure para FHIR.
  4. Registrar os servidores do ACR na API do Azure para FHIR.
  5. Opcionalmente, configure o firewall do ACR para acesso seguro.

Efetuar push dos modelos para o Registro de Contêiner do Azure

Depois de criar uma instância do ACR, o senhor pode usar o comando FHIR Converter: Push Templates na extensão FHIR Converter para enviar os modelos personalizados para o ACR. Alternativamente, você pode usar Ferramenta CLI para gerenciamento de modelos.

Habilitar a identidade gerenciada na API do Azure para FHIR

Navegue até sua instância do serviço API do Azure para 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 tela de Habilitar Identidade Gerenciada.

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 de 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 as funções internas do Azure.

Registrar os servidores do ACR na API do Azure para FHIR

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

Registrando o servidor do ACR usando o portal do Azure

Navegue até a folha Artefatos em Transformação de dados na instância da API do Azure para FHIR. Você verá a lista de servidores ACR atualmente registrados. Selecione Adicionar e selecione o servidor do Registro no menu suspenso. 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 do ACR usando a CLI

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

Instale a CLI do Serviços de Dados de Saúde 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 apenas um servidor do ACR
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
Registrar vários servidores do ACR
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io fhiracr2020.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021

Configurar o firewall do ACR

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

 Imagem de tela do registro de contêiner.

Selecione Redes selecionadas.

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

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

Região do Azure Endereço IP público
Leste da Austrália 20.53.47.210
Brazil South 191.238.72.227
Canadá Central 20.48.197.161
Índia Central 20.192.47.66
Leste dos EUA 20.62.134.242, 20.62.134.244, 20.62.134.245
Leste dos EUA 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
Centro-Oeste da Alemanha 20.52.88.224
Leste do Japão 20.191.167.146
Oeste do Japão 20.189.228.225
Coreia Central 20.194.75.193
Centro-Norte dos EUA 52.162.111.130, 20.51.0.209
Norte da Europa 52.146.137.179
Catar Central 20.21.36.225
Norte da África do Sul 102.133.220.199
Centro-Sul dos Estados Unidos 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
Centro-Oeste dos EUA 13.71.199.119
Europa Ocidental 20.61.103.243, 20.61.103.244
Oeste dos EUA 2 20.51.13.80, 20.51.13.84, 20.51.13.85
Oeste dos EUA 3 20.150.245.165

Observação

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 Microsoft Azure

Verificar

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

<RegistryServer>/<imageName>@<imageDigest>

Próximas etapas

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 API do Azure para FHIR, consulte

Observação

FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.