Share via


Convertendo seus dados em FHIR para a API do Azure para FHIR

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 Conversor FHIR como os modelos padrão. Você pode personalizar esses modelos de conversão conforme necessário.

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

$convert-data O ponto de extremidade pode ser usado como um componente em um pipeline de ETL para a conversão de dados brutos de serviços de saúde de formatos herdados em formato FHIR. No entanto, não é um pipeline de 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 dos dados FHIR para serem persistidos no servidor FHIR. O fluxo de trabalho pode incluir: leitura e ingestão de dados, validação de dados, fazer chamadas à API de dados $convert, pré/pós-processamento de dados, enriquecimento de dados e eliminação de duplicação de dados.

Usar o ponto de extremidade $convert-data

A $convert-data operação é integrada ao serviço FHIR para ser executada como parte do serviço. Depois de habilitar $convert-data no servidor, você pode fazer chamadas à API para o servidor para converter seus dados em FHIR: 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 abaixo. No corpo da solicitação de chamada à 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 coleção de modelos de imagem OCI 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. Veja abaixo para saber mais sobre como personalizar os modelos, hospedá-los no ACR e registrar-se 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 do 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_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".

Observação

Os modelos FHIR STU3 a R4 são modelos Liquid "diff" que fornecem mapeamentos de diferenças de campo somente 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 de recursos e restrições para conversão 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 nenhum tipo de mensagem padronizado, ao contrário de mensagens HL7v2 ou documentos C-CDA. Portanto, em vez de modelos padrão, fornecemos alguns modelos de exemplo que você pode usar como guia inicial para seus próprios modelos personalizados.

Aviso

Os modelos padrão são lançados em Licença MIT e não têm suporte do Suporte da Microsoft.

Os modelos padrão são fornecidos apenas para ajudá-lo a começar rapidamente. Eles podem ser atualizados quando atualizamos as versões da API do Azure para FHIR. Portanto, 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 e usar em suas chamadas à API para ter um comportamento consistente de conversão de dados entre as 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"
        }
    ]
}

Exemplo 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 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 Visual Studio Code está disponível para modelos HL7v2, C-CDA e JSON Liquid. Atualmente, não há suporte para modelos FHIR STU3 a R4 Liquid.

Hospedar e usar modelos

É recomendável que você hospede sua própria cópia de modelos no ACR. Há quatro etapas envolvidas na hospedagem da sua cópia de modelos e no uso delas 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, você pode usar o comando Conversor FHIR: efetuar push de modelos na extensão do Conversor FHIR para efetuar push dos modelos personalizados para o ACR. Como alternativa, você pode usar a ferramenta da CLI de Gerenciamento de Modelos para essa finalidade.

Habilitar a identidade gerenciada na API do Azure para FHIR

Navegue até a instância do serviço da 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 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 do 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 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 registrados no momento. Selecione Adicionar e, em seguida, selecione o servidor do Registro no menu suspenso. Você precisará 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 a CLI

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

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

az extension add -n healthcareapis

Registre os servidores do ACR na API do Azure para FHIR seguindo os exemplos abaixo:

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 da conta de armazenamento do Azure no portal.

 Imagem da tela do registro de 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 da Internet ou de suas redes locais.

Na tabela abaixo, você encontrará o endereço IP para a região do Azure em que o serviço da 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 acima 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 à API $convert-data especificando a 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

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