Conversión de los datos a FHIR para Azure API para FHIR
Importante
Azure API for FHIR se retirará el 30 de septiembre de 2026. Siga las estrategias de migración para realizar la transición a servicio FHIR® de Azure Health Data Services en esa fecha. Debido a la retirada de Azure API for FHIR, no se permitirán nuevas implementaciones a partir del 1 de abril de 2025. El servicio FHIR de Azure Health Data Services es la versión evolucionada de la API de Azure para FHIR que permite a los clientes administrar FHIR, DICOM y los servicios de tecnologías médicas con integraciones en otros servicios de Azure.
El punto de conexión personalizado $convert-data
en el servicio FHIR® está diseñado para la conversión de datos de diferentes tipos de datos a FHIR. Usa el motor de la plantilla Liquid y las plantillas del proyecto FHIR Converter como plantillas predeterminadas. Estas plantillas de conversión se pueden personalizar según sea necesario.
Actualmente, el punto de conexión personalizado de $convert-data
admite cuatro tipos de conversión de datos:
Formato de datos de origen | Formato de datos de destino |
---|---|
C-CDA | FHIR |
HL7v2 | FHIR |
JSON | FHIR |
FHIR STU3 | FHIR R4 |
Nota:
El punto de conexión $convert-data
se puede usar como componente dentro de una canalización de extracción, transformación y carga de datos (ETL) para la conversión de datos sanitarios sin procesar de formatos heredados a formato FHIR. Sin embargo, no se trata de una canalización ETL. Se recomienda usar un motor ETL como Logic Apps o Azure Data Factory para un flujo de trabajo completo en la preparación de los datos de FHIR para que se conserven en el servidor FHIR. El flujo de trabajo puede incluir: lectura y ingesta de datos, validación de datos, realizar llamadas API de $convert-data
, datos previos y posteriores al procesamiento, enriquecimiento de datos y desduplicación de datos.
Uso del punto de conexión $convert-data
La operación $convert-data
se integra en el servicio FHIR para ejecutarse como parte del servicio. Después de habilitar $convert-data
en el servidor, puede realizar llamadas API al servidor para convertir los datos en FHIR mediante https://<<FHIR service base URL>>/$convert-data
.
Recurso de parámetro
$convert-data
toma un recurso Parameter en el cuerpo de la solicitud como se describe en la tabla siguiente. En el cuerpo de la solicitud de llamada API, incluiría los parámetros siguientes:
Nombre de parámetro | Descripción | Valores aceptados |
---|---|---|
inputData | Datos que se van a convertir. | Para Hl7v2 : cadena Para Ccda : XML Para Json : JSON Para FHIR STU3 : JSON |
inputDataType | Tipo de datos de entrada. | HL7v2 , Ccda , Json , Fhir |
templateCollectionReference | Referencia a una colección de plantillas de imagen OCI enAzure Container Registry (ACR). Es la imagen que contiene plantillas Liquid que se van a usar para la conversión. Puede ser una referencia a las plantillas predeterminadas o a una imagen de plantilla personalizada registrada en el servicio FHIR. A continuación puede aprender a personalizar las plantillas, hospedarlas en ACR y registrarse en el servicio FHIR. | Para plantillas/ muestra o predeterminadas: Plantillas de HL7v2 : microsofthealth/fhirconverter:default microsofthealth/hl7v2templates:default Plantillas de C-CDA : microsofthealth/ccdatemplates:default Plantillas JSON : microsofthealth/jsontemplates:default Plantillas de FHIR STU3 : microsofthealth/stu3tor4templates:default Para plantillas de personalizadas: <RegistryServer>/<imageName>@<imageDigest>, <RegistryServer>/<imageName>:<imageTag> |
rootTemplate | La plantilla raíz que se usa al transformar los datos. | 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 ejemplo Nombre, "Paciente", "Observación", "Organización". |
Nota:
Las plantillas de FHIR STU3 a R4 son plantillas Liquid "diff" que proporcionan asignaciones de diferencias de campo solo entre el recurso STU3 y su recurso equivalente en el estándar FHIR R4. Algunos de los recursos de STU3 se cambian de nombre o se quitan de R4. Consulte Diferencias y restricciones de recursos para la conversión de STU3 a R4.
Nota:
Las plantillas JSON son plantillas de ejemplo para su uso, no plantillas "predeterminadas" que se adhieren a los tipos de mensajes JSON predefinidos. JSON no tiene ningún tipo de mensaje estandarizado, a diferencia de los mensajes HL7v2 o los documentos C-CDA. Por lo tanto, en lugar de las plantillas predeterminadas, le proporcionamos algunas plantillas de ejemplo que puede usar como guía de inicio para sus propias plantillas personalizadas.
Advertencia
Las plantillas predeterminadas se publican en licencia MIT y NO se compatibles con el soporte técnico de Microsoft.
Las plantillas predeterminadas solo se proporcionan para ayudarle a empezar. Pueden actualizarse al actualizar las versiones de Azure API for FHIR. Debe comprobar el comportamiento de conversión y hospedar su propia copia de plantillas en Azure Container Registry, registrarlas en Azure API for FHIR para usarlas en las llamadas API. Esto es necesario para un comportamiento coherente de conversión de datos en distintas versiones de Azure API for FHIR.
Solicitud de muestra
{
"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"
}
]
}
Respuesta de ejemplo
{
"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 plantillas
Puede usar la extensión FHIR Converter para Visual Studio Code para personalizar las plantillas según sus necesidades. La extensión proporciona una experiencia de edición interactiva y facilita la descarga de plantillas publicadas por Microsoft y datos de ejemplo. Consulte la documentación de la extensión para obtener más detalles.
Nota:
La extensión FHIR Converter para Visual Studio Code está disponible para plantillas HL7v2, C-CDA y JSON Liquid. Las plantillas de FHIR STU3 a R4 Liquid no se admiten actualmente.
Hospedaje y uso de plantillas
Se recomienda que hospede su propia copia de las plantillas en ACR. Para hospedar su propia copia de las plantillas y usarlas en la operación $convert-data
es preciso seguir estos cuatro pasos:
- Inserte la imagen en un una instancia de Azure Container Registry.
- Habilite Identidad administrada en la instancia de Azure API for FHIR.
- Proporcione acceso del ACR a Identidad administrada de Azure API for FHIR.
- Registre los servidores de ACR en Azure API for FHIR.
- Opcionalmente, configure el firewall de ACR para el acceso seguro.
Inserción de plantillas en Azure Container Registry
Después de crear una instancia de ACR, puede usar el comando FHIR Converter: Push Templates en la extensión FHIR Converter para insertar las plantillas personalizadas en ACR. Como alternativa, puede usar la herramienta CLI de administración de plantillas.
Habilitación de Identidad administrada en Azure API for FHIR
Vaya a la instancia del servicio Azure API for FHIR en Azure Portal y seleccione la hoja Identity (Identidad). Cambie el estado a Activado para habilitar Identidad administrada en Azure API for FHIR.
Proporcione acceso del ACR a Azure API for FHIR
Vaya a la hoja Control de acceso (IAM).
Seleccione Agregar y, a continuación, seleccione Agregar asignación de roles para abrir la página Agregar asignación de roles.
Asigne el rol AcrPull.
Para más información sobre la asignación de roles en Azure Portal, consulte Roles integrados de Azure.
Registro de los servidores de ACR en Azure API for FHIR
Puede registrar el servidor de ACR mediante Azure Portal o mediante la CLI.
Registro del servidor ACR mediante Azure Portal
Vaya a la hoja Artefactos en Transformación de datos en la instancia de Azure API for FHIR. Verá la lista de servidores ACR registrados actualmente. Seleccione Agregar y, a continuación, seleccione el servidor del Registro en el menú desplegable. Deberá seleccionar Guardar para que el registro surta efecto. Puede tardar unos minutos en aplicarse el cambio y reiniciarse la instancia.
Registro del servidor de ACR mediante la CLI
En Azure API for FHIR se pueden registrar un máximo de 20 servidores de ACR.
Instale la CLI de Azure Health Data Services desde Azure PowerShell si es necesario:
az extension add -n healthcareapis
Para registrar los servidores de ACR en Azure API for FHIR siga estos ejemplos:
Registro de un servidor de ACR individual
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
Registro de varios servidores de ACR
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io fhiracr2020.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
Configuración del firewall de ACR
Seleccione Redes de la cuenta de almacenamiento de Azure en el portal.
Seleccione Redes seleccionadas.
En la sección Firewall, especifique la dirección IP en el cuadro Intervalo de direcciones. Agregue intervalos IP para permitir el acceso desde Internet o redes locales.
En la tabla siguiente, encontrará la dirección IP de la región de Azure donde se aprovisiona el servicio Azure API for FHIR.
Región de Azure | Dirección IP pública |
---|---|
Este de Australia | 20.53.47.210 |
Sur de Brasil | 191.238.72.227 |
Centro de Canadá | 20.48.197.161 |
Centro de la India | 20.192.47.66 |
Este de EE. UU. | 20.62.134.242, 20.62.134.244, 20.62.134.245 |
Este de EE. UU. 2 | 20.62.60.115, 20.62.60.116, 20.62.60.117 |
Centro de Francia | 51.138.211.19 |
Norte de Alemania | 51.116.60.240 |
Centro-oeste de Alemania | 20.52.88.224 |
Japón Oriental | 20.191.167.146 |
Japón Occidental | 20.189.228.225 |
Centro de Corea del Sur | 20.194.75.193 |
Centro-Norte de EE. UU | 52.162.111.130, 20.51.0.209 |
Norte de Europa | 52.146.137.179 |
Centro de Catar | 20.21.36.225 |
Norte de Sudáfrica | 102.133.220.199 |
Centro-sur de EE. UU. | 20.65.134.83 |
Sudeste de Asia | 20.195.67.208 |
Centro de Suecia | 51.12.28.100 |
Norte de Suiza | 51.107.247.97 |
Sur de Reino Unido 2 | 51.143.213.211 |
Oeste de Reino Unido | 51.140.210.86 |
Centro-Oeste de EE. UU. | 13.71.199.119 |
Oeste de Europa | 20.61.103.243, 20.61.103.244 |
Oeste de EE. UU. 2 | 20.51.13.80, 20.51.13.84, 20.51.13.85 |
Oeste de EE. UU. 3 | 20.150.245.165 |
Nota:
Los pasos anteriores son similares a los pasos de configuración descritos en el documento Exportación de datos de FHIR. Para más información, consulte Exportación segura a Azure Storage
Comprobar
Realice una llamada a la API de $convert-data
, en la que especifique la referencia de la plantilla en el parámetro templateCollectionReference.
<RegistryServer>/<imageName>@<imageDigest>
Pasos siguientes
En este artículo, ha obtenido información sobre la conversión de datos para Azure API for FHIR. Para más información sobre los proyectos de GitHub relacionados para Azure API for FHIR, consulte
Nota:
FHIR® es una marca registrada de HL7 y se usa con su permiso.