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:
- Envie os modelos por push para o Registro de Contêiner do Azure.
- Habilite a Identidade Gerenciada em sua API do Azure para instância FHIR.
- Forneça acesso do ACR à API do Azure para FHIR Managed Identity.
- Registre os servidores ACR na API do Azure para FHIR.
- 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.
Fornecer acesso do ACR à API do Azure para FHIR
Navegue até a folha Controle de acesso (IAM).
Selecione Adicionar e, em seguida, selecione Adicionar atribuição de função para abrir a página Adicionar atribuição de função.
Atribua a função AcrPull .
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.
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.