Convertir los datos en FHIR
Mediante el uso del $convert-data
punto de conexión personalizado en el servicio FHIR, puede convertir datos de estado de varios formatos a FHIR. La $convert-data
operación usa plantillas Liquid del proyecto de convertidor de FHIR para la conversión de datos de FHIR. Estas plantillas de conversión se pueden personalizar según sea necesario. Actualmente, la $convert-data
operación admite tres tipos de conversión de datos:
- HL7v2 a FHIR
- C-CDA a FHIR
- JSON a FHIR (diseñado para la asignación de conversión personalizada)
- FHIR STU3 a FHIR R4
Nota:
Puede usar el $convert-data
punto de conexión como componente dentro de una canalización ETL (extracción, transformación y carga) para la conversión de formatos de datos de mantenimiento en el formato FHIR. Sin embargo, la $convert-data
operación no es una canalización ETL en sí misma. Para un flujo de trabajo completo a medida que convierte los datos en FHIR, se recomienda usar un motor ETL basado en Azure Logic Apps o Azure Data Factory. El flujo de trabajo puede incluir: lectura y ingesta de datos, validación de datos, realización $convert-data
de llamadas API, preprocesamiento de datos, enriquecimiento de datos, desduplicación de datos y carga de los datos para la persistencia en el servicio FHIR.
Uso del punto de $convert-data
conexión
La $convert-data
operación se integra en el servicio FHIR como una acción de API RESTful. Puede llamar al punto de conexión de la $convert-data
siguiente manera:
POST {{fhirurl}}/$convert-data
Los datos de mantenimiento para la conversión se entregan al servicio FHIR en el cuerpo de la $convert-data
solicitud. Si la solicitud se realiza correctamente, el servicio FHIR devolverá una respuesta de FHIR Bundle
con los datos convertidos en FHIR.
Recurso Parameters
Una $convert-data
llamada API empaqueta los datos de mantenimiento para la conversión dentro de un recurso de parámetros 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 : cadenaPara Ccda : XMLPara Json : JSONPara FHIR STU3 : JSON |
inputDataType |
Tipo de entrada de datos. | Hl7v2 , Ccda , Json , Fhir |
templateCollectionReference |
Referencia a una colección de plantillas de imagen de OCI en Azure Container Registry. La referencia es a una imagen que contiene plantillas liquid que se usarán 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 explica cómo personalizar las plantillas, hospedarlas en Azure Container Registry y registrarse en el servicio FHIR. | Para las plantillas predeterminadas o de ejemplo : 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 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_A27", "ADT_A28 ADT_A27"", "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, por ejemplo, "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 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 en la creación de asignaciones de conversión propias. No son plantillas "predeterminadas" que cumplen los tipos de mensajes de datos de mantenimiento predefinidos. 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 que puede usar como guía de inicio para sus propias asignaciones personalizadas.
Advertencia
Las plantillas predeterminadas se publican en la licencia MIT y no son compatibles con Soporte técnico de Microsoft.
Proporcionamos plantillas predeterminadas solo 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 diferentes versiones del servicio FHIR, debe hacer lo siguiente:
- Hospede su propia copia de las plantillas en una instancia de Azure Container Registry.
- Registre las plantillas en el servicio FHIR.
- Use las plantillas registradas en las llamadas API.
- Compruebe que el comportamiento de conversión cumple sus requisitos.
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^PRSNL^^^ORGDR|\nPID|1|3735064194^^^SIMULATOR MRN^MRN|3735064194^^^SIMULATOR MRN^MRN~2021051528^^^NHSNBR^NHSNMBR||Kinmonth^Joanna^Chelsea^^Ms^^CURRENT||19870624000000|F|||89 Transaction House^Handmaiden Street^Wembley^^FV75 4GJ^GBR^HOME||020 3614 5541^HOME|||||||||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^PRSNL^^^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": "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"
}
}
]
}
Personalización de plantillas
Puede usar la extensión FHIR Converter Visual Studio Code para personalizar plantillas según sus requisitos específicos. 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 las plantillas HL7v2, C-CDA y JSON Liquid. Las plantillas de FHIR STU3 a R4 Liquid no se admiten actualmente.
Hospedar sus propias plantillas
Se recomienda hospedar su propia copia de plantillas en una instancia de Azure Container Registry. Hospedar sus propias plantillas y usarlas para $convert-data
las operaciones implica los seis pasos siguientes:
- Crear una instancia de Azure Container Registry
- Inserción de las plantillas en la instancia de Azure Container Registry
- Habilitación de la identidad administrada de Azure en la instancia del servicio FHIR
- Proporcionar acceso Azure Container Registry a la identidad administrada del servicio FHIR
- Registro del servidor Azure Container Registry en el servicio FHIR
- (Opcional) Configuración del firewall de Azure Container Registry para el acceso seguro
Paso 1: Crear una instancia de Azure Container Registry
Lea introducción a los registros de contenedor en Azure y siga las instrucciones para crear su propia instancia de Azure Container Registry. Se recomienda colocar la instancia de Azure Container Registry en el mismo grupo de recursos que el servicio FHIR.
Paso 2: Inserción de las plantillas en la instancia de Azure Container Registry
Después de crear una instancia de Azure Container Registry, puede usar el comando FHIR Converter: Push Templates en la extensión FHIR Converter para insertar las plantillas personalizadas en la instancia de Azure Container Registry. Como alternativa, puede usar la herramienta CLI de administración de plantillas para tal fin.
Paso 3: Habilitación de la identidad administrada de Azure en la instancia del servicio FHIR
Vaya a la instancia del servicio FHIR en la Azure Portal y, a continuación, seleccione la hoja Identidad.
Cambie el estado a Activado para habilitar la identidad administrada en el servicio FHIR.
Paso 4: Proporcionar Azure Container Registry acceso a la identidad administrada del servicio FHIR
En el grupo de recursos, vaya a la instancia de Container Registry y seleccione la pestaña Control de acceso (IAM).
Seleccione Agregar>Agregar asignación de roles. Si la opción Agregar asignación de roles no está disponible, pida al administrador de Azure que le conceda permisos para realizar esta tarea.
En el panel Rol , seleccione el rol AcrPull .
En la pestaña Miembros, seleccione Identidad administrada y, a continuación, seleccione Seleccionar miembros.
Seleccione su suscripción a Azure.
Seleccione Identidad administrada asignada por el sistema y, a continuación, seleccione el servicio FHIR con el que está trabajando.
En la pestaña Revisión y asignación, seleccione Revisión y asignación para asignar el rol.
Para más información sobre la asignación de roles en Azure Portal, consulte Roles integrados de Azure.
Paso 5: Registrar el servidor Azure Container Registry en el servicio FHIR
Puede registrar el servidor de Azure Container Registry mediante el Azure Portal o la CLI de Azure.
Para utilizar el Portal de Azure:
En la instancia del servicio FHIR, en Transformación de datos, vaya al panel Artefactos .
Se muestra una lista de servidores Azure Container Registry registrados actualmente.
Seleccione Agregar y, a continuación, en la lista desplegable, seleccione el servidor del Registro.
Seleccione Guardar.
El registro puede tardar unos minutos en surtir efecto.
Para usar la CLI de Azure:
Puede registrar hasta 20 servidores Azure Container Registry en el servicio FHIR.
Instale la CLI de Azure Health Data Services, si es necesario, ejecutando el siguiente comando:
az extension add -n healthcareapis
Registre los servidores Azure Container Registry en el servicio FHIR mediante cualquiera de las siguientes acciones:
Para registrar un único servidor de Azure Container Registry, ejecute:
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
Para registrar varios servidores de Azure Container Registry, ejecute:
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io fhiracr2020.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
Paso 6: (Opcional) Configuración del firewall de Azure Container Registry para el acceso seguro
En el Azure Portal, en el panel izquierdo, seleccione Redes para la instancia de Azure Container Registry.
En la pestaña Acceso público , 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 se enumeran las direcciones IP de las regiones de Azure en las que está configurado el servicio 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 de Configuración de las opciones de exportación y configuración de una cuenta de almacenamiento.
Para el acceso a la red privada (es decir, un vínculo privado), también puede deshabilitar el acceso de red pública a la instancia de Azure Container Registry. Para ello:
En el registro de contenedor de Azure Portal, seleccione Redes.
Seleccione la pestaña Acceso público , seleccione Deshabilitado y, después, Permitir que los servicios de Microsoft de confianza accedan a este registro de contenedor.
Comprobación de la $convert-data
operación
Realice una llamada a la $convert-data
API especificando la referencia de plantilla en el templateCollectionReference
parámetro :
<RegistryServer>/<imageName>@<imageDigest>
Debe recibir una Bundle
respuesta que contenga los datos de mantenimiento convertidos en el formato FHIR.
Pasos siguientes
En este artículo, ha obtenido información sobre el $convert-data
punto de conexión para convertir datos de mantenimiento en FHIR mediante el servicio FHIR en Azure Health Data Services. Para obtener información sobre cómo exportar datos de FHIR desde el servicio FHIR, consulte:
FHIR® es una marca registrada de HL7 y se usa con su permiso.