dados $convert no serviço FHIR
Observação
Em maio de 2024, lançamos uma API autônoma de conversor do FHIR, separada do serviço FHIR e empacotada como uma imagem de contêiner (Docker) para versão prévia. Além de permitir converter dados da fonte de registro em pacotes FHIR R4, o conversor FHIR oferece muitos novos recursos de rede, tais como:
- Conversão bidirecional de dados da fonte de registro para pacotes do FHIR R4 e voltar. Por exemplo, o conversor do FHIR pode converter dados do formato FHIR R4 de volta para o formato HL7v2.
- Experiência melhorada para personalização de modelos Liquid padrões.
- Exemplos que demonstram como criar um pipeline de ETL (extração, transformação e carregamento) com o ADF (Azure Data Factory).
Para implementar a imagem de contêiner do conversor do FHIR, consulte o projeto do GitHub do conversor do FHIR.
A operação $convert-data
no serviço FHIR® permite converter dados de integridade de vários formatos em dados FHIR R4. A operação $convert-data
usa modelos Liquid do projeto conversor do FHIR para conversão de dados do FHIR. Você pode personalizar esses modelos de conversão conforme necessário.
A operação $convert-data
dá suporte a quatro tipos de conversão de dados:
- HL7v2 para FHIR R4
- C-CDA para FHIR R4
- JSON para FHIR R4 (destinado a mapeamentos de conversão personalizados)
- FHIR STU3 para FHIR R4
Usar o ponto de extremidade $convert-data
Use o ponto de extremidade $convert-data
como um componente dentro de um pipeline de ETL (extração, transformação e carregamento), para a conversão de dados de integridade de vários formatos (por exemplo: HL7v2, CCDA, JSON e FHIR STU3) no formato do FHIR. Crie um pipeline de ETL para um fluxo de trabalho completo à medida que você converte seus dados de integridade. É recomendável usar um mecanismo de ETL com base nos Aplicativos Lógicos do Azure ou no Azure Data Factory. Por exemplo, um fluxo de trabalho pode incluir ingestão de dados, execução de operações $convert-data
, validação, pré e pós-processamento de dados, enriquecimento de dados, eliminação de duplicação de dados e carregamento de dados para persistência no serviço FHIR.
A operação $convert-data
é integrada ao serviço FHIR como uma ação da API REST. Chame o ponto de extremidade $convert-data
da seguinte maneira:
POST {{fhirurl}}/$convert-data
Os dados de integridade para conversão são entregues ao serviço FHIR no corpo da solicitação $convert-data
. Se a solicitação for bem-sucedida, o serviço FHIR retornará uma resposta de pacote do FHIR com os dados convertidos em FHIR R4.
Parâmetros
Uma chamada de operação $convert-data
empacota os dados de saúde para conversão dentro de parâmetros formatados em JSON no corpo da solicitação. Os parâmetros são descritos na tabela a seguir.
Nome do Parâmetro | Descrição | Valores aceitos |
---|---|---|
inputData | Carga de dados a ser convertida em FHIR. | Para Hl7v2 : cadeia de caracteres Para Ccda : XML Para Json : JSON Para FHIR STU3 : JSON |
inputDataType | Tipo de entrada de dados. | Hl7v2 , Ccda , Json , Fhir |
templateCollectionReference | Referência a uma coleção de modelos de imagem da OCI no Registro de Contêiner do Azure. A referência é para uma imagem que contém modelos Liquid a serem usados para conversão. Ela pode se referir a modelos padrão ou a uma imagem de modelo personalizada registrada no serviço FHIR. As seções a seguir abrangem personalizar os modelos, hospedá-los no Registro de Contêiner do Azure e o registo 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 Para FHIR STU3: Nome do recurso FHIR STU3 (por exemplo: Paciente, Observação, Organização) |
Considerações
Os modelos para FHIR R4 são modelos Liquid que fornecem mapeamentos de diferenças de campo apenas entre um recurso do FHIR STU3 e seu recurso equivalente na especificação FHIR R4. Alguns dos recursos do FHIR STU3 são renomeados ou removidos do FHIR R4. Para obter mais informações sobre as diferenças de recursos e restrições para conversão FHIR STU3 para FHIR R4, consulte Diferenças de recursos e restrições para conversão do FHIR STU3 para FHIR R4.
Modelos JSON são modelos de exemplo para uso na criação de seus próprios mapeamentos de conversão. Eles não são modelos padrão que aderem a nenhum tipo predefinido de mensagem de dados de integridade. O JSON em si não é especificado como um formato de dados de integridade, ao contrário de HL7v2 ou C-CDA. Como resultado, em vez de fornecer modelos JSON padrão, fornecemos alguns modelos JSON de amostra como ponto de partida para seus próprios mapeamentos personalizados.
Aviso
Os modelos padrão são lançados sob a Licença do MIT e não têm suporte da Microsoft.
Os modelos padrão são fornecidos apenas para ajudar você a começar a usar o fluxo de trabalho de conversão de dados. Esses modelos padrão não se destinam à produção e podem ser alterados quando a Microsoft lança atualizações para o serviço FHIR. Para ter um comportamento de conversão de dados consistente em diferentes versões do serviço FHIR, você deverá fazer o seguinte:
- Hospede sua própria cópia dos modelos em uma instância do Registro de Contêiner do Azure.
- Registre os modelos no serviço FHIR.
- Use seus modelos registrados em suas chamadas à API.
- Verifique se o comportamento de conversão atende aos seus requisitos.
Para obter mais informações sobre como hospedar seus próprios modelos, consulte Hospedar seus próprios modelos
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": "batch",
"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"
}
}
]
}
O resultado da conversão do FHIR é um pacote do FHIR como um lote.
- O pacote do FHIR deve se alinhar às expectativas da especificação do FHIR R4 – Bundle – FHIR v4.0.1.
- Caso esteja tentando validar em relação a um perfil específico, precisará fazer alguns pós-processamento utilizando a operação de$validate do FHIR.
Próximas etapas
Definir configurações para dados $convert usando o portal do Azure
Solucionar problemas de dados $convert
Perguntas frequentes sobre dados $convert
Observação
FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.