Compartir vía


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:

  1. Inserte la imagen en un una instancia de Azure Container Registry.
  2. Habilite Identidad administrada en la instancia de Azure API for FHIR.
  3. Proporcione acceso del ACR a Identidad administrada de Azure API for FHIR.
  4. Registre los servidores de ACR en Azure API for FHIR.
  5. 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.

Imagen de pantalla de Habilitar identidad administrada.

Proporcione acceso del ACR a Azure API for FHIR

  1. Vaya a la hoja Control de acceso (IAM).

  2. Seleccione Agregar y, a continuación, seleccione Agregar asignación de roles para abrir la página Agregar asignación de roles.

  3. Asigne el rol AcrPull.

    Imagen de pantalla de la página Agregar asignación de roles.

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.

 Imagen de pantalla del registro de contenedor.

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.