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
:
- Efetuar push dos modelos para o Registro de Contêiner do Azure.
- Habilitar a identidade gerenciada na instância da API do Azure para FHIR.
- Fornecer acesso do ACR à identidade gerenciada da API do Azure para FHIR.
- Registrar os servidores do ACR na API do Azure para FHIR.
- 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.
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 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.
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.