Compartir a través de


$convert-datos en el servicio FHIR

Nota:

En mayo de 2024 se ha publicado una API de convertidor de FHIR independiente desacoplada del servicio FHIR y se ha empaquetado como una imagen de contenedor (Docker) para versión preliminar. Además de permitirle convertir datos del origen de registros a paquetes de FHIR R4, el convertidor de FHIR ofrece muchas nuevas funcionalidades netas, como:

  • Conversión de datos bidireccionales de origen de registro a paquetes de FHIR R4 y vuelta. Por ejemplo, el convertidor de FHIR puede convertir datos del formato FHIR R4 de nuevo al formato HL7v2.
  • Experiencia mejorada para la personalización de plantillas predeterminadas de Liquid.
  • Ejemplos que muestran cómo crear una canalización de ETL (extracción, transformación y carga) con Azure Data Factory (ADF).

Para implementar la imagen del contenedor del convertidor de FHIR, consulte el proyecto de GitHub del convertidor de FHIR .

La operación $convert-data en el servicio FHIR® le permite convertir datos de mantenimiento de varios formatos en datos de FHIR R4. La operación $convert-data usa plantillas Liquid del proyecto de FHIR Converter para la conversión de datos de FHIR. Estas plantillas de conversión se pueden personalizar según sea necesario.

La operación $convert-data admite cuatro tipos de conversión de datos:

  • HL7v2 a FHIR R4
  • C-CDA a FHIR R4
  • JSON a FHIR R4 (diseñado para asignaciones de conversión personalizadas)
  • FHIR STU3 to FHIR R4

Uso del punto de conexión $convert-data

Use el punto de conexión de $convert-data como componente dentro de una canalización ETL (extracción, transformación y carga) para la conversión de datos de mantenimiento de varios formatos (por ejemplo: HL7v2, CCDA, JSON y FHIR STU3) en el formato FHIR. Cree una canalización de ETL para un flujo de trabajo completo a medida que convierta los datos de mantenimiento. Se recomienda usar un motor ETL basado en Azure Logic Apps o Azure Data Factory. Por ejemplo, un flujo de trabajo podría incluir la ingesta de datos, realizar operaciones de $convert-data, validación, procesamiento previo y posterior al procesamiento, enriquecimiento de datos, desduplicación de datos y carga de datos para la persistencia en el servicio FHIR.

La operación de $convert-data se integra en el servicio FHIR como una acción de API de REST. Puede llamar al punto de conexión de $convert-data la siguiente manera:

POST {{fhirurl}}/$convert-data

Los datos de mantenimiento para la conversión se entregan al servicio FHIR en el cuerpo de la solicitud de $convert-data. Si la solicitud se realiza correctamente, el servicio FHIR devuelve una respuesta de agrupación de FHIR con los datos convertidos a FHIR R4.

Parámetros

Una operación de $convert-data llama a empaqueta los datos de mantenimiento para la conversión dentro de un parámetro de con formato JSON en el cuerpo de la solicitud. Los parámetros se describen en la tabla siguiente:

Nombre de parámetro Descripción Valores aceptados
inputData Carga de datos que se va a convertir en FHIR. Para Hl7v2: cadena
Para Ccda: XML
Para Json: JSON
Para FHIR STU3: JSON
inputDataType Tipo de entrada de datos. Hl7v2, Ccda, Json, Fhir
templateCollectionReference Referencia a una colección de plantillas de imagen OCI enAzure Container Registry. La referencia es a una imagen que contiene plantillas Liquid que se van a usar para la conversión. Puede hacer referencia a plantillas predeterminadas o a una imagen de plantilla personalizada registrada en el servicio FHIR. En las secciones siguientes se tratan la personalización de las plantillas, hospedarlas en Azure Container Registry 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

Para FHIR STU3:
Nombre del recurso STU3 de FHIR (por ejemplo: Paciente, Observación, Organización)

Consideraciones

  • Las plantillas de FHIR STU3 a FHIR R4 son plantillasLiquid que proporcionan asignaciones de diferencias de campo solo entre un recurso STU3 de FHIR y su recurso equivalente en la especificación de FHIR R4. Algunos de los recursos de FHIR STU3 se cambian de nombre o se quitan de FHIR R4. Para obtener más información sobre las diferencias y restricciones de recursos para la conversión de FHIR STU3 a FHIR R4, consulte Diferencias y restricciones de recursos para FHIR STU3 a la conversión de FHIR R4.

  • Las plantillas JSON son plantillas de ejemplo para usarlas en la compilación de asignaciones de conversión propias. No son plantillas predeterminadas que se adhieren a ningún tipo de mensaje de datos de mantenimiento predefinido. El propio JSON no se especifica como un formato de datos de mantenimiento, a diferencia de HL7v2 o C-CDA. Por lo tanto, en lugar de proporcionar plantillas JSON predeterminadas, proporcionamos algunas plantillas JSON de ejemplo como punto de partida para sus propias asignaciones personalizadas.

Advertencia

Las plantillas predeterminadas se publican en la licencia MIT y No son compatibles con Microsoft.

Las plantillas predeterminadas solo se proporcionan para ayudarle a empezar a trabajar con el flujo de trabajo de conversión de datos. Estas plantillas predeterminadas no están pensadas para producción y pueden cambiar cuando Microsoft publica actualizaciones para el servicio FHIR. Para tener un comportamiento coherente de conversión de datos en distintas versiones del servicio FHIR, debe hacer lo siguiente:

  1. Hospede su propia copia de las plantillas en una instancia de Azure Container Registry.
  2. Registre las plantillas en el servicio FHIR.
  3. Use las plantillas registradas en las llamadas API.
  4. Compruebe que el comportamiento de conversión cumple sus requisitos.

Para obtener más información sobre cómo hospedar sus propias plantillas, consulte Hospedar sus propias plantillas

Solicitud de ejemplo

{
    "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 muestra

{
    "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"
            }
        }
    ]
}

El resultado de la conversión de FHIR es un lote de FHIR como lote.

  • La agrupación de FHIR debe alinearse con las expectativas de la especificación de FHIR R4 - Agrupación - FHIR v4.0.1.
  • Si intenta validar con un perfil específico, debe realizar algún procesamiento posterior mediante la operación de $validate FHIR.

Pasos siguientes

Configuración de los valores de $convert-data mediante Azure Portal

Solución de problemas de datos de $convert

Preguntas más frecuentes sobre datos de $convert

Nota:

FHIR® es una marca registrada de HL7 y se usa con su permiso.