Conversión de los datos en FHIR para Azure API for FHIR
El $convert-data
punto de conexión personalizado del 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 $convert-data
punto de conexión personalizado admite four
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
$convert-data
el punto de conexión se puede usar como componente dentro de una canalización ETL para la conversión de datos sanitarios sin procesar de formatos heredados en formato FHIR. Sin embargo, no es una canalización ETL en sí misma. 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, realización de llamadas API de datos $convert, procesamiento previo y posterior al procesamiento de datos, enriquecimiento de datos y desduplicación de datos.
Uso del punto de conexión $convert-data
La $convert-data
operación se integra en el servicio FHIR para que se ejecute 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: 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 : cadenaPara Ccda : XMLPara Json : JSONPara FHIR STU3 : JSON |
inputDataType | Tipo de datos de entrada. | HL7v2 , Ccda , Json , Fhir |
templateCollectionReference | Referencia a una colección de plantillas de imagen de OCI en Azure Container Registry (ACR). Es la imagen que contiene plantillas liquid que se usarán para la conversión. Puede ser una referencia a las plantillas predeterminadas o a una imagen de plantilla personalizada registrada en el servicio FHIR. Consulte a continuación para obtener información sobre cómo personalizar las plantillas, hospedarlas en ACR 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" 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, no plantillas "predeterminadas" que cumplen los tipos de mensajes JSON predefinidos. JSON no tiene ningún tipo de mensaje estandarizado, a diferencia de los mensajes HL7v2 o 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 son compatibles con Soporte técnico de Microsoft.
Las plantillas predeterminadas solo se proporcionan para ayudarle a empezar a trabajar rápidamente. Es posible que se actualicen al actualizar las versiones de Azure API for FHIR. Por lo tanto, debe comprobar el comportamiento de conversión y hospedar su propia copia de plantillas en una Azure Container Registry, registrarlas en Azure API for FHIR y usarlas en las llamadas API para tener un comportamiento de conversión de datos coherente en las distintas versiones de Azure API for FHIR.
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 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"
}
}
]
}
Personalización de 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 las 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 hospedar su propia copia de 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 Azure Container Registry, 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 para tal fin.
Habilitación de Identidad administrada en Azure API for FHIR
Vaya a la instancia del servicio Azure API for FHIR en el Azure Portal y seleccione la hoja 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, después, 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 el Azure Portal o mediante la CLI.
Registro del servidor de 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. El cambio puede tardar unos minutos en aplicarse y reiniciar la instancia.
Registro del servidor de ACR mediante la CLI
Puede registrar hasta 20 servidores ACR en Azure API for FHIR.
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 Cómo exportar datos de FHIR. Para más información, consulte Exportación segura a Azure Storage.
Comprobación
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
FHIR® es una marca registrada de HL7 y se usa con su permiso.