Converter os seus dados em FHIR para a API do Azure para FHIR

O $convert-data ponto final personalizado no serviço FHIR destina-se à conversão de dados de diferentes tipos de dados para FHIR. Utiliza o motor de modelo Liquid e os modelos do projeto Conversor FHIR como modelos predefinidos. Pode personalizar estes modelos de conversão conforme necessário.

Atualmente, o $convert-data ponto final personalizado suporta four 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

$convert-data o ponto final pode ser utilizado como um componente dentro de um pipeline ETL para a conversão de dados de cuidados de saúde não processados de formatos legados em formato FHIR. No entanto, não se trata de um pipeline ETL em si. Recomendamos que utilize um motor ETL, como o Logic Apps ou Azure Data Factory para um fluxo de trabalho completo na preparação dos seus dados FHIR para serem mantidos no servidor FHIR. O fluxo de trabalho pode incluir: leitura e ingestão de dados, validação de dados, realização de chamadas à API de dados $convert, pré/pós-processamento de dados, melhoramento de dados e eliminação de dados duplicados.

Utilizar o ponto final $convert-data

A $convert-data operação está integrada no serviço FHIR para ser executada como parte do serviço. Depois de ativar o servidor, pode efetuar $convert-data chamadas à API para o servidor para converter os seus dados em FHIR: https://<<FHIR service base URL>>/$convert-data

Recurso do Parâmetro

$convert dados utiliza um recurso Parameter no corpo do pedido, conforme descrito na tabela abaixo. No corpo do pedido de chamada da API, incluiria os seguintes parâmetros:

Nome do Parâmetro Description Valores aceites
inputData Dados a converter. Para Hl7v2: cadeia
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 a utilizar para conversão. Pode ser uma referência aos modelos predefinidos ou a uma imagem de modelo personalizada registada no serviço FHIR. Veja abaixo para saber mais sobre como personalizar os modelos, alojar os modelos no ACR e registar-se no serviço FHIR. Para modelos predefinidos/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 de raiz a utilizar ao transformar os 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_A27", "ADT_A16" 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":
Nome do Recurso STU3, por exemplo, "Paciente", "Observação", "Organização".

Nota

Os modelos FHIR STU3 a R4 são modelos líquidos "difusos" que fornecem mapeamentos de diferenças de campo apenas entre o recurso STU3 e o recurso equivalente na norma FHIR R4. Alguns dos recursos stu3 são mudados ou removidos do R4. Veja Diferenças de recursos e restrições da conversão STU3 a R4.

Nota

Os modelos JSON são modelos de exemplo para utilização e não modelos "predefinidos" que aderem a quaisquer tipos de mensagens JSON predefinidos. O JSON não tem tipos de mensagens padronizadas, ao contrário de mensagens HL7v2 ou documentos C-CDA. Por conseguinte, em vez de modelos predefinidos, fornecemos-lhe alguns modelos de exemplo que pode utilizar como guia de partida para os seus próprios modelos personalizados.

Aviso

Os modelos predefinidos são lançados em Licença do MIT e não são suportados por Suporte da Microsoft.

Os modelos predefinidos são fornecidos apenas para o ajudar a começar rapidamente. Podem ser atualizados quando atualizamos as versões da API do Azure para FHIR. Por conseguinte, tem de verificar o comportamento de conversão e alojar a sua própria cópia de modelos num Azure Container Registry, registá-los na API do Azure para FHIR e utilizar nas chamadas à API para ter um comportamento consistente de conversão de dados nas 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"
        }
    ]
}

Resposta de Amostra

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

Pode utilizar a extensão conversor FHIR para o Visual Studio Code para personalizar os modelos de acordo com as suas necessidades. A extensão proporciona uma experiência de edição interativa e facilita a transferência de modelos e dados de exemplo publicados pela Microsoft. Veja a documentação na extensão para obter mais detalhes.

Nota

A extensão conversor FHIR 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 atualmente suportados.

Alojar e utilizar modelos

Recomenda-se que aloje a sua própria cópia de modelos no ACR. Existem quatro passos envolvidos no alojamento da sua própria cópia de modelos e na utilização dos modelos na operação $convert-dados:

  1. Envie os modelos para o seu Azure Container Registry.
  2. Ative a Identidade Gerida na sua instância da API do Azure para FHIR.
  3. Forneça acesso do ACR à API do Azure para Identidade Gerida FHIR.
  4. Registe os servidores do ACR na API do Azure para FHIR.
  5. Opcionalmente, configure a firewall do ACR para acesso seguro.

Enviar modelos para Azure Container Registry

Depois de criar uma instância do ACR, pode utilizar o comando Conversor FHIR: Push Templates na extensão Conversor FHIR para enviar os modelos personalizados para o ACR. Em alternativa, pode utilizar a ferramenta CLI de Gestão de Modelos para esta finalidade.

Ativar a Identidade Gerida na API do Azure para FHIR

Navegue para a sua instância do serviço API do Azure para FHIR no portal do Azure e, em seguida, selecione o painel Identidade. Altere o estado para Ativado para ativar a identidade gerida na API do Azure para FHIR.

Imagem de ecrã de Ativar Identidade Gerida.

Fornecer acesso do ACR à API do Azure para FHIR

  1. Navegue para o painel Controlo 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 ecrã da página Adicionar atribuição de função.

Para obter mais informações sobre a atribuição de funções no portal do Azure, veja Funções incorporadas do Azure.

Registar os servidores ACR na API do Azure para FHIR

Pode registar o servidor ACR com o portal do Azure ou com a CLI.

Registar o servidor ACR com portal do Azure

Navegue para o painel Artefactos em Transformação de dados na instância da API do Azure para FHIR. Verá a lista de servidores ACR atualmente registados. Selecione Adicionar e, em seguida, selecione o servidor de registo no menu pendente. Terá de selecionar Guardar para que o registo entre em vigor. Poderá demorar alguns minutos a aplicar a alteração e reiniciar a instância.

Registar o servidor ACR com a CLI

Pode registar 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 de Azure PowerShell, se necessário:

az extension add -n healthcareapis

Registe os servidores acr na API do Azure para FHIR, seguindo os exemplos abaixo:

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

Configurar a firewall do ACR

Selecione Rede da conta de armazenamento do Azure no portal.

 Imagem de ecrã do registo de contentor.

Selecione Redes selecionadas.

Na secçã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 no local.

Na tabela abaixo, encontrará o endereço IP da região do Azure onde a API do Azure para o serviço FHIR está aprovisionada.

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

Os passos acima são semelhantes aos passos de configuração descritos no documento Como exportar dados FHIR. Para obter mais informações, veja Secure Export to Azure Storage (Exportação Segura para o Armazenamento do Azure)

Verificação

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

<RegistryServer>/<imageName>@<imageDigest>

Passos seguintes

Neste artigo, ficou a conhecer a conversão de dados para a API do Azure para FHIR. Para obter mais informações sobre os GitHub Projects relacionados para a API do Azure para FHIR, veja

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