Exportar recursos FHIR a BigQuery por lotes

En esta página se describe cómo exportar por lotes recursos FHIR a BigQuery con fines de exploración y análisis. La operación de exportación crea una tabla de BigQuery para cada tipo de recurso FHIR de tu almacén FHIR.

Para mejorar el rendimiento de las consultas y reducir los costes, puede exportar recursos FHIR a tablas con particiones. Para obtener instrucciones, consulta Exportar recursos FHIR a tablas con particiones.

Si exportas recursos FHIR de forma programada, te recomendamos que exportes tus datos de forma incremental. Para obtener instrucciones, consulta Exportaciones incrementales.

Configurar permisos de BigQuery

Antes de exportar recursos FHIR a BigQuery, debes conceder permisos adicionales a la cuenta de servicio del agente de servicio de Cloud Healthcare. Para obtener más información, consulta Permisos de BigQuery para almacenes FHIR.

Entender el comportamiento de las exportaciones

El comportamiento de la operación de exportación depende de lo siguiente:

  • Indica si la tabla de destino existe.
  • Si has definido el campo force.
  • Si especificas un enum en WriteDisposition. Si especificas un enum, no definas el campo force.

El comportamiento en cada caso es el siguiente:

  • La tabla de destino existe y force tiene el valor true: la operación de exportación sobrescribe la tabla
  • La tabla de destino existe y force está definido como false: se produce un error
  • La tabla de destino no existe: la operación de exportación crea una tabla, independientemente de si especificas el campo force
  • La tabla de destino existe y has definido WriteDisposition como WRITE_TRUNCATE o WRITE_APPEND: la operación de exportación se realiza correctamente en lugar de devolver un error.

Con esta operación se genera una tabla de BigQuery para cada tipo de recurso del almacén FHIR.

Exportar recursos FHIR por lotes

En los ejemplos siguientes se muestra cómo exportar recursos FHIR a una tabla de BigQuery.

Cuando especifique el destino de BigQuery, utilice el URI completo:

bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID

Consola

Para exportar recursos FHIR a BigQuery mediante laGoogle Cloud consola, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Conjuntos de datos.

    Ve a Conjuntos de datos.

  2. Haga clic en el conjunto de datos que contenga el almacén FHIR con los datos que quiere exportar.

  3. En la misma fila que el almacén FHIR, abre la lista Acciones y selecciona Exportar.

  4. En la página Exportar recursos FHIR que aparece, busca la sección Seleccionar un destino. Selecciona Tabla de BigQuery.

  5. En la sección Disposición de escritura de la tabla de destino, seleccione una de las siguientes opciones para determinar el comportamiento de la operación de exportación:

    • Exportar datos solo si las tablas de destino están vacías: equivale a seleccionar el enum WRITE_EMPTY en WriteDisposition.
    • Añadir datos a las tablas de destino: equivale a seleccionar el enum WRITE_APPEND en WriteDisposition.
    • Borrar todos los datos de las tablas de destino antes de escribir los recursos FHIR: equivale a seleccionar la enumeración WRITE_TRUNCATE en WriteDisposition.
  6. En la sección Configuración de exportación de FHIR, haga clic en Examinar para seleccionar el proyecto y el conjunto de datos de BigQuery.

  7. En el menú desplegable Tipo de esquema, seleccione el esquema de salida de la tabla de BigQuery. Están disponibles los siguientes esquemas:

    • Analytics Un esquema basado en el documento SQL on FHIR. Como BigQuery solo permite 10.000 columnas por tabla, no se generan esquemas para los campos Parameters.parameter.resource, Bundle.entry.resource y Bundle.entry.response.outcome.
    • Analytics V2. Un esquema similar al de Analytics, con compatibilidad adicional para lo siguiente: El esquema de Analytics V2 usa más espacio en la tabla de destino que el esquema de Analytics.

  8. Selecciona un nivel de profundidad en el control deslizante Profundidad de la estructura recursiva para definir la profundidad de todas las estructuras recursivas del esquema de salida. De forma predeterminada, el valor recursivo es 2.

    Para obtener más información, consulta recursiveStructureDepth.

  9. Haz clic en Exportar para exportar recursos FHIR a BigQuery.

  10. Para hacer un seguimiento del estado de la operación, haga clic en la pestaña Operaciones. Una vez que se haya completado la operación, aparecerán las siguientes indicaciones:
    • La sección Estado de la operación de larga duración tiene una marca de verificación verde en el encabezado OK.
    • La sección Resumen tiene una marca de verificación verde y un indicador OK en la misma fila que el ID de operación.
    Si se produce algún error, haz clic en Acciones y, a continuación, en Ver detalles en Cloud Logging.

gcloud

Para exportar recursos FHIR a BigQuery, ejecuta el comando gcloud healthcare fhir-stores export bq.

  1. Exporta los recursos FHIR.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • PROJECT_ID: el ID de tu Google Cloud proyecto
    • LOCATION: la ubicación del conjunto de datos
    • DATASET_ID: el conjunto de datos superior del almacén FHIR
    • FHIR_STORE_ID: el ID del almacén FHIR
    • BIGQUERY_DATASET_ID: el nombre del conjunto de datos de BigQuery al que va a exportar los recursos FHIR
    • SCHEMA_TYPE: un valor para SchemaType. Usa uno de los siguientes valores:
      • analytics. Un esquema basado en el documento SQL on FHIR. Como BigQuery solo permite 10.000 columnas por tabla, no se generan esquemas para los campos Parameters.parameter.resource, Bundle.entry.resource y Bundle.entry.response.outcome.
      • analytics_v2. Un esquema similar a analytics con compatibilidad adicional para lo siguiente:

        analytics-v2 usa más espacio en la tabla de destino que analytics.

    • WRITE_DISPOSITION: un valor para WriteDisposition. Usa uno de los siguientes valores:
      • write-empty. Solo exporta datos si las tablas de BigQuery de destino están vacías.
      • write-truncate. Borra todos los datos de las tablas de BigQuery antes de escribir los recursos FHIR.
      • write-append. Añade datos a las tablas de BigQuery de destino.
    • FHIR_RESOURCE_TYPE: campo opcional. Especifique uno o varios tipos de recursos FHIR separados por comas para exportar solo los recursos FHIR de esos tipos.
    • SINCE_TIMESTAMP: campo opcional. Especifique un valor con el formato YYYY-MM-DDThh:mm:ss.sss+zz:zz para exportar solo los recursos FHIR actualizados después de una hora concreta. Especifica la hora hasta el segundo e incluye una zona horaria. Por ejemplo, 2015-02-07T13:28:17.239+02:00 y 2017-01-01T00:00:00Z son horas válidas.

    Ejecuta el siguiente comando:

    Linux, macOS o Cloud Shell

    gcloud healthcare fhir-stores export bq FHIR_STORE_ID \
      --location=LOCATION \
      --dataset=DATASET_ID \
      --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID \
      --schema-type=SCHEMA_TYPE \
      --write-disposition=WRITE_DISPOSITION \
      --resource-type=FHIR_RESOURCE_TYPE \
      --since=SINCE_TIMESTAMP

    Windows (PowerShell)

    gcloud healthcare fhir-stores export bq FHIR_STORE_ID `
      --location=LOCATION `
      --dataset=DATASET_ID `
      --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID `
      --schema-type=SCHEMA_TYPE `
      --write-disposition=WRITE_DISPOSITION `
      --resource-type=FHIR_RESOURCE_TYPE `
      --since=SINCE_TIMESTAMP

    Windows (cmd.exe)

    gcloud healthcare fhir-stores export bq FHIR_STORE_ID ^
      --location=LOCATION ^
      --dataset=DATASET_ID ^
      --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID ^
      --schema-type=SCHEMA_TYPE ^
      --write-disposition=WRITE_DISPOSITION ^
      --resource-type=FHIR_RESOURCE_TYPE ^
      --since=SINCE_TIMESTAMP
    Esta es la respuesta: La respuesta contiene un identificador de una operación de larga duración. Las operaciones de larga duración se devuelven cuando las llamadas a métodos pueden tardar mucho tiempo en completarse. El comando sondea la operación de larga duración y, a continuación, imprime el nombre de la operación en el campo name cuando finaliza la exportación. Anota el valor de OPERATION_ID. Necesitarás este valor en el siguiente paso.

    Respuesta

    Request issued for: [FHIR_STORE_ID]
    Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete...⠏
    name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
    

  2. Para ver más detalles sobre la operación, ejecuta el siguiente comando: gcloud healthcare operations describe y proporciona el OPERATION_ID de la respuesta.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • PROJECT_ID: el ID de tu Google Cloud proyecto
    • DATASET_ID: el ID del conjunto de datos
    • LOCATION: la ubicación del conjunto de datos
    • OPERATION_ID: el ID devuelto por la operación de larga duración

    Ejecuta el siguiente comando:

    Linux, macOS o Cloud Shell

    gcloud healthcare operations describe OPERATION_ID \
        --project=PROJECT_ID \
        --dataset=DATASET_ID \
        --location=LOCATION

    Windows (PowerShell)

    gcloud healthcare operations describe OPERATION_ID `
        --project=PROJECT_ID `
        --dataset=DATASET_ID `
        --location=LOCATION

    Windows (cmd.exe)

    gcloud healthcare operations describe OPERATION_ID ^
        --project=PROJECT_ID ^
        --dataset=DATASET_ID ^
        --location=LOCATION

    Deberías recibir una respuesta similar a la siguiente:

    Respuesta

    done: true
    // If there were any errors, an `error` field displays instead of a `response` field.
    // See Troubleshooting long-running operations for a list of response codes.
    error: ERROR
      code: ERROR_CODE
      message: DESCRIPTION
    metadata:
      '@type': 'type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata'
      apiMethodName: 'google.cloud.healthcare.v1.fhir.FhirStoreService.ExportResources_bq'
      counter:
        success: 'SUCCESS_COUNT'
        // If there were any failures, they display in the `failure` field.
        failure: 'FAILURE_COUNT'
      createTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      endTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      logsUrl: https://console.cloud.google.com/CLOUD_LOGGING_URL
    name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
    // The `response` field only displays if there were no errors.
    response:
      '@type': 'type.googleapis.com/google.cloud.healthcare.v1.fhir.ExportResourcesResponse'
    

REST

Para exportar recursos FHIR a BigQuery, usa el método projects.locations.datasets.fhirStores.export.

  1. Exporta los recursos FHIR:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID de tu Google Cloud proyecto
    • LOCATION: la ubicación del conjunto de datos
    • DATASET_ID: el conjunto de datos superior del almacén FHIR
    • FHIR_STORE_ID: el ID del almacén FHIR
    • BIGQUERY_DATASET_ID: el nombre del conjunto de datos de BigQuery al que va a exportar los recursos FHIR
    • SCHEMA_TYPE: un valor para SchemaType. Usa uno de los siguientes valores:
      • ANALYTICS. Un esquema basado en el documento SQL on FHIR. Como BigQuery solo permite 10.000 columnas por tabla, no se generan esquemas para los campos Parameters.parameter.resource, Bundle.entry.resource y Bundle.entry.response.outcome.
      • ANALYTICS_V2. Un esquema similar a ANALYTICS con compatibilidad adicional para lo siguiente:

        ANALYTICS_V2 usa más espacio en la tabla de destino que ANALYTICS

        .
    • WRITE_DISPOSITION: un valor para WriteDisposition. Usa uno de los siguientes valores:
      • WRITE_EMPTY. Solo exporta datos si las tablas de BigQuery de destino están vacías.
      • WRITE_TRUNCATE. Borra todos los datos de las tablas de BigQuery antes de escribir los recursos FHIR.
      • WRITE_APPEND. Añade datos a las tablas de BigQuery de destino.
    • FHIR_RESOURCE_TYPE: campo opcional. Especifique uno o varios tipos de recursos FHIR separados por comas para exportar solo los recursos FHIR de esos tipos.
    • SINCE_TIMESTAMP: campo opcional. Especifique un valor con el formato YYYY-MM-DDThh:mm:ss.sss+zz:zz para exportar solo los recursos FHIR actualizados después de una hora concreta. Especifica la hora hasta el segundo e incluye una zona horaria. Por ejemplo, 2015-02-07T13:28:17.239+02:00 y 2017-01-01T00:00:00Z son horas válidas.

    Cuerpo JSON de la solicitud:

    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
        },
        "writeDisposition": "WRITE_DISPOSITION"
      },
      "_type": "FHIR_RESOURCE_TYPE",
      "_since": "SINCE_TIMESTAMP"
    }
    

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

    cat > request.json << 'EOF'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
        },
        "writeDisposition": "WRITE_DISPOSITION"
      },
      "_type": "FHIR_RESOURCE_TYPE",
      "_since": "SINCE_TIMESTAMP"
    }
    EOF

    A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export"

    PowerShell

    Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

    @'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
        },
        "writeDisposition": "WRITE_DISPOSITION"
      },
      "_type": "FHIR_RESOURCE_TYPE",
      "_since": "SINCE_TIMESTAMP"
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export" | Select-Object -Expand Content

    Explorador de APIs

    Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, rellena los campos obligatorios y haz clic en Ejecutar.

    El resultado es el siguiente. La respuesta contiene un identificador de una operación de larga duración. Las operaciones de larga duración se devuelven cuando las llamadas a métodos pueden tardar más tiempo en completarse. Anota el valor de OPERATION_ID. Necesitarás este valor en el siguiente paso.

  2. Usa el método projects.locations.datasets.operations.get para obtener el estado de la operación de larga duración.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID de tu Google Cloud proyecto
    • DATASET_ID: el ID del conjunto de datos
    • LOCATION: la ubicación del conjunto de datos
    • OPERATION_ID: el ID devuelto por la operación de larga duración

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Ejecuta el comando siguiente:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Ejecuta el comando siguiente:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador de APIs

    Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.

    El resultado es el siguiente. Cuando la respuesta contiene "done": true, la operación de larga duración ha finalizado.

Exportar recursos FHIR a tablas particionadas

Para exportar recursos FHIR a tablas particionadas de BigQuery, define la enumeración TimePartitioning en el campo lastUpdatedPartitionConfig de tu almacén FHIR.

Las tablas con particiones funcionan como las tablas con particiones por unidad de tiempo de BigQuery. Las tablas particionadas tienen una columna adicional llamada lastUpdated, que es un duplicado de la columna meta.lastUpdated, que se genera a partir del campo meta.lastUpdated de un recurso FHIR. BigQuery usa la lastUpdatedcolumna para crear particiones de tablas por hora, día, mes o año.

Consulta Seleccionar una partición diaria, por hora, mensual o anual para ver recomendaciones sobre cómo elegir la granularidad de una partición.

No puedes convertir tablas de BigQuery que ya tengas y que no estén particionadas en tablas particionadas. Si exportas los cambios del recurso Patient a una tabla Patients sin particiones y, más adelante, creas un almacén FHIR con particiones de tabla que exporta datos al mismo conjunto de datos de BigQuery, la API Cloud Healthcare seguirá exportando datos a la tabla Patients sin particiones. Para empezar a usar una tabla con particiones, elimina la tabla Patients o usa otro conjunto de datos de BigQuery.

Si añade particiones a una configuración de almacén FHIR, podrá seguir exportando datos a tablas sin particiones. Sin embargo, la creación de particiones solo se aplicará a las tablas nuevas.

En los ejemplos siguientes se muestra cómo exportar recursos FHIR a tablas con particiones de BigQuery.

Consola

La consola de Google Cloud y la CLI de gcloud no admiten esta acción. En su lugar, usa curl, PowerShell o el lenguaje que prefieras.

gcloud

La consola de Google Cloud y la CLI de gcloud no admiten esta acción. En su lugar, usa curl, PowerShell o el lenguaje que prefieras.

REST

Para exportar recursos FHIR a tablas particionadas de BigQuery, usa el método projects.locations.datasets.fhirStores.export.

  1. Exporta los recursos FHIR:

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID de tu Google Cloud proyecto
    • LOCATION: la ubicación del conjunto de datos
    • DATASET_ID: el conjunto de datos superior del almacén FHIR
    • FHIR_STORE_ID: el ID del almacén FHIR
    • BIGQUERY_DATASET_ID: el nombre del conjunto de datos de BigQuery al que va a exportar los recursos FHIR
    • SCHEMA_TYPE: un valor para SchemaType. Usa uno de los siguientes valores:
      • ANALYTICS. Un esquema basado en el documento SQL on FHIR. Como BigQuery solo permite 10.000 columnas por tabla, no se generan esquemas para los campos Parameters.parameter.resource, Bundle.entry.resource y Bundle.entry.response.outcome.
      • ANALYTICS_V2. Un esquema similar a ANALYTICS con compatibilidad adicional para lo siguiente:

        ANALYTICS_V2 usa más espacio en la tabla de destino que ANALYTICS

        .
    • TIME_PARTITION_TYPE: la granularidad con la que se particionan los recursos FHIR exportados. Usa uno de los siguientes valores:
      • HOUR: particiona los datos por horas
      • DAY: particiona los datos por día
      • MONTH: particiona los datos por mes
      • YEAR: particiona los datos por año
    • WRITE_DISPOSITION: un valor para WriteDisposition. Usa uno de los siguientes valores:
      • WRITE_EMPTY: solo exporta datos si la tabla de BigQuery está vacía.
      • WRITE_TRUNCATE: borra todos los datos de la tabla de BigQuery antes de escribir las instancias DICOM.
      • WRITE_APPEND: añade datos a la tabla de BigQuery.

    Cuerpo JSON de la solicitud:

    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
          "lastUpdatedPartitionConfig": {
            "type": "TIME_PARTITION_TYPE"
          }
        },
        "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

    cat > request.json << 'EOF'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
          "lastUpdatedPartitionConfig": {
            "type": "TIME_PARTITION_TYPE"
          }
        },
        "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    EOF

    A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export"

    PowerShell

    Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

    @'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
          "lastUpdatedPartitionConfig": {
            "type": "TIME_PARTITION_TYPE"
          }
        },
        "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export" | Select-Object -Expand Content

    Explorador de APIs

    Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, rellena los campos obligatorios y haz clic en Ejecutar.

    Deberías recibir una respuesta JSON similar a la siguiente:

  2. Usa el método projects.locations.datasets.operations.get para obtener el estado de la operación de larga duración.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID de tu Google Cloud proyecto
    • DATASET_ID: el ID del conjunto de datos
    • LOCATION: la ubicación del conjunto de datos
    • OPERATION_ID: el ID devuelto por la operación de larga duración

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Ejecuta el comando siguiente:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Ejecuta el comando siguiente:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador de APIs

    Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.

    El resultado es el siguiente. Cuando la respuesta contiene "done": true, la operación de larga duración ha finalizado.

Consultar una tabla con particiones

Para reducir los costes de las consultas en tablas con particiones, usa la cláusula WHERE para filtrar por unidades de tiempo.

Por ejemplo, supongamos que asignas el valor DAY al enum PartitionType. Para consultar una tabla Patients de recursos Patient que se actualizaron en una fecha específica, ejecuta la siguiente consulta:

SELECT * FROM `PROJECT_ID.BIGQUERY_DATASET.Patients`
  WHERE DATE(lastUpdated) = 'YYYY-MM-DD'

Exportaciones incrementales

Puedes especificar una marca de tiempo para exportar solo los recursos FHIR que se hayan añadido a tu almacén FHIR desde una exportación anterior que se haya completado correctamente. De esta forma, se mejora el rendimiento y se evitan los costes de volver a exportar todo el almacén FHIR, al tiempo que se asegura de que los datos exportados estén siempre actualizados.

Cuando llames a fhirStores.export, especifica la marca de tiempo en el campo _since.

Consultar y analizar datos FHIR en BigQuery

Después de exportar los recursos FHIR a BigQuery, consulta la solución Analizar datos FHIR en BigQuery para obtener información sobre cómo consultar y analizar los datos exportados. La solución usa el conjunto de datos público Synthea™ Generated Synthetic Data in FHIR, que contiene más de un millón de registros de pacientes sintéticos generados en los formatos Synthea™ y FHIR.

Solucionar problemas con las solicitudes de exportación de FHIR

Si se producen errores durante una solicitud de exportación de FHIR, se registran en Cloud Logging. Para obtener más información, consulta Ver registros de errores en Cloud Logging.

Si toda la operación devuelve un error, consulta Solucionar problemas de operaciones de larga duración.

No se puede convertir una columna de NULLABLE a REPEATED

Este error se debe a que la extensión se ha repetido. Para resolver este error, usa el tipo de esquema ANALYTICS_V2. Si usas ANALYTICS_V2, puede que haya un conflicto entre dos extensiones o entre una extensión y otro campo.

Los nombres de las columnas se generan a partir del texto que aparece después del último carácter / en las URLs de extensión. Si una URL de extensión termina con un valor como /resource_field name, puede producirse un conflicto. \

Para evitar que se vuelva a producir este error, no uses extensiones si sus nombres de campo son los mismos que los de los campos de recursos que estás rellenando.

Siguientes pasos