Exportación de los datos de FHIR

Mediante la operación masiva $export en el servicio FHIR, puede exportar datos como se describe en la especificación HL7 FHIR Bulk Data Access.

Antes de intentar usar $export, asegúrese de que el servicio FHIR esté configurado para conectarse con una cuenta de Azure Data Lake Storage Gen2. Para configurar las opciones de exportación y crear una cuenta de Data Lake Storage Gen2, consulte Configuración de las opciones de exportación.

Llamada al punto de $export conexión

Después de configurar el servicio FHIR para conectarse a una cuenta de Data Lake Storage Gen2, puede llamar al $export punto de conexión y el servicio FHIR exportará datos a un contenedor de Azure Blob Storage dentro de la cuenta de almacenamiento. La solicitud de ejemplo siguiente exporta todos los recursos a un contenedor, que se especifica por nombre ({{containerName}}). Tenga en cuenta que debe crear el contenedor en la cuenta de Data Lake Storage Gen2 de antemano si desea especificar en {{containerName}} la solicitud.

GET {{fhirurl}}/$export?_container={{containerName}}

Si no especifica un nombre de contenedor en la solicitud (por ejemplo, llamando a GET {{fhirurl}}/$export), se creará un nuevo contenedor con un nombre generado automáticamente para los datos exportados.

Para obtener información general sobre la especificación de api de FHIR $export , consulte la documentación del flujo de solicitud de exportación de FHIR de HL7.

El servicio FHIR admite $export en los siguientes niveles:

  • Sistema: GET {{fhirurl}}/$export
  • Paciente: GET {{fhirurl}}/Patient/$export
  • Grupo de pacientes*: GET {{fhirurl}}/Group/[ID]/$export
    *El servicio FHIR exporta todos los recursos a los que se hace referencia, pero no exporta las características del propio recurso de grupo.

Los datos se exportan en varios archivos. Cada archivo contiene recursos de solo un tipo. El número de recursos de un archivo individual estará limitado. El número máximo de recursos se basa en el rendimiento del sistema. Actualmente está establecido en 5000, pero puede cambiar. El resultado es que puede obtener varios archivos para un tipo de recurso. Los nombres de archivo seguirán el formato <resourceName>-<number>-<number>.ndjson. No se garantiza que el orden de los archivos se corresponda con ningún orden de los recursos de la base de datos.

Nota:

Patient/$export y Group/[ID]/$export pueden exportar recursos duplicados si un recurso está en varios grupos o en un compartimiento de más de un recurso.

Además de comprobar la presencia de archivos exportados en la cuenta de almacenamiento, puede comprobar $export el estado de la operación a través de la dirección URL en el Content-Location encabezado que se devuelve en la respuesta del servicio FHIR. Para obtener más información, consulte la documentación de solicitud de estado de datos masiva de HL7.

Exportación de los datos de FHIR a Data Lake Storage Gen2

Actualmente, el servicio FHIR admite $export cuentas de Data Lake Storage Gen2, con las siguientes limitaciones:

  • Data Lake Storage Gen2 proporciona espacios de nombres jerárquicos, pero no hay ninguna manera de dirigir $export las operaciones a un subdirectorio específico dentro de un contenedor. El servicio FHIR solo puede especificar el contenedor de destino para la exportación, donde se crea una nueva carpeta para cada $export operación.
  • Una vez completada una $export operación y todos los datos se han escrito dentro de una carpeta, el servicio FHIR no exporta nada a esa carpeta de nuevo, ya que las exportaciones posteriores al mismo contenedor estarán dentro de una carpeta recién creada.

Para exportar datos a una cuenta de almacenamiento detrás de un firewall, consulte Configuración de las opciones de exportación.

Configuración y parámetros

Encabezados

Se deben establecer dos parámetros de encabezado necesarios para $export los trabajos. Los valores se establecen según la especificación de $export HL7 actual.

  • Aceptar: application/fhir+json
  • Preferir: respond-async

Parámetros de consulta

El servicio FHIR admite los siguientes parámetros de consulta para filtrar los datos exportados. Todos estos parámetros son opcionales.

Parámetro de consulta ¿Se define mediante la especificación de FHIR? Descripción
_outputFormat Actualmente admite tres valores para alinearse con la especificación de FHIR: application/fhir+ndjson, application/ndjsono simplemente ndjson. Todos los trabajos de exportación devolverán .ndjson archivos y el valor pasado no tiene ningún efecto en el comportamiento del código.
_since Permite exportar solo los recursos que se han modificado desde el momento especificado.
_type Permite especificar los tipos de recursos que se van a incluir. Por ejemplo, _type=Patient devolvería solo los recursos de los pacientes.
_typeFilter Para solicitar el filtrado más preciso, puede usar _typeFilter junto con el _type parámetro . El valor del _typeFilter parámetro es una lista separada por comas de consultas FHIR que limitan aún más los resultados.
_container No Especifica el nombre del contenedor en la cuenta de almacenamiento configurada donde se deben exportar los datos. Si se especifica un contenedor, los datos se exportarán a una carpeta de ese contenedor. Si no se especifica el contenedor, los datos se exportarán a un nuevo contenedor con un nombre generado automáticamente.
_till No Permite exportar recursos que se han modificado hasta el momento especificado. Este parámetro solo es aplicable con la exportación de nivel de sistema. En este caso, si las versiones históricas no se han deshabilitado o purgado, la exportación garantiza una vista de instantánea verdadera o, en otras palabras, permite el viaje en el tiempo.
includeAssociatedData No Permite exportar el historial y los recursos eliminados temporalmente. Este filtro no funciona con el parámetro de consulta "_typeFilter". Incluya el valor como "_history" para exportar el historial o los recursos con versiones no más recientes. Incluya el valor como "_deleted" para exportar recursos eliminados temporalmente.

Nota:

Solo se permiten registrar cuentas de almacenamiento en la misma suscripción que el servicio FHIR que el destino de $export las operaciones.

Solución de problemas

La siguiente información puede ayudarle a resolver problemas con la exportación de datos de FHIR.

Trabajos bloqueados en estado incorrecto

En algunas situaciones, existe la posibilidad de que un trabajo se bloquee en un estado incorrecto mientras el servicio FHIR está intentando exportar datos. Esto puede ocurrir especialmente si los permisos de la cuenta de Data Lake Storage Gen2 no se han configurado correctamente.

Una manera de comprobar el estado de la $export operación es ir al explorador de almacenamiento de la cuenta de almacenamiento y ver si hay archivos .ndjson presentes en el contenedor de exportación. Si los archivos no están presentes y no se están ejecutando otros $export trabajos, es posible que el trabajo actual esté bloqueado en un estado incorrecto. En este caso, puede cancelar el $export trabajo llamando a la API del servicio FHIR con una DELETE solicitud. Más adelante, puede volver a poner en cola el $export trabajo e intentarlo de nuevo.

Para obtener más información sobre cómo cancelar una $export operación, consulte la documentación de solicitud de eliminación masiva de datos de HL7.

Nota:

En el servicio FHIR, la hora predeterminada para que una $export operación esté inactiva en un estado incorrecto es de 10 minutos antes de que el servicio detenga la operación y se mueva a un nuevo trabajo.

Pasos siguientes

En este artículo, ha aprendido a exportar recursos de FHIR mediante la $export operación . Para obtener información sobre cómo configurar y usar opciones adicionales para la exportación, consulte:

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