将 FHIR 资源批量导出到 BigQuery

本页介绍了如何将 FHIR 资源批量导出到 BigQuery 进行探索和分析。导出操作会为 FHIR 存储区中的每种 FHIR 资源类型创建一个 BigQuery 表。

如需提高查询性能并降低费用,不妨考虑将 FHIR 资源导出到分区表。如需了解相关说明,请参阅将 FHIR 资源导出到分区表

如果您按计划导出 FHIR 资源,请考虑增量导出数据。如需了解相关说明,请参阅增量导出

设置 BigQuery 权限

在将 FHIR 资源导出到 BigQuery 之前,您必须向 Cloud Healthcare Service Agent 服务账号授予其他权限。如需了解详情,请参阅FHIR 存储区 BigQuery 权限

了解导出行为

导出操作的行为取决于以下因素:

  • 目标表是否存在。
  • 您是否设置了 force 字段。
  • 您是否在 WriteDisposition 中指定了枚举。如果您指定了枚举,请勿设置 force 字段。

每种情况下的行为如下:

  • 目标表已存在且 force 设置为 true:导出操作会覆盖现有表
  • 目标表已存在,并且 force 设置为 false:会发生错误
  • 目标表不存在:无论您是否指定 force 字段,导出操作都会创建一个新表
  • 目标表已存在,并且您将 WriteDisposition 设置为 WRITE_TRUNCATEWRITE_APPEND:导出操作会成功,而不是返回错误

该操作会为 FHIR 存储区中的每种资源类型输出一个 BigQuery 表。

批量导出 FHIR 资源

以下示例展示了如何将 FHIR 资源导出到 BigQuery 表。

指定 BigQuery 目标时,请使用完全限定的 URI:

bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID

控制台

如需使用 Google Cloud 控制台将 FHIR 资源导出到 BigQuery,请完成以下步骤:

  1. 在 Google Cloud 控制台中,进入数据集页面。

    前往“数据集”页面

  2. 点击包含要导出数据的 FHIR 存储区的数据集。

  3. 在 FHIR 存储区所在的行中,打开操作列表,然后选择导出

  4. 在随即显示的导出 FHIR 资源页面上,找到选择目标位置部分。选择 BigQuery 表

  5. 目标表的写入处置部分中,选择以下选项之一以确定导出操作的行为:

    • 仅在目标表为空时导出数据:这相当于在 WriteDisposition 中选择 WRITE_EMPTY 枚举。
    • 将数据附加到目标表:这相当于在 WriteDisposition 中选择 WRITE_APPEND 枚举。
    • 在写入 FHIR 资源之前清空目标表中的所有现有数据:这相当于在 WriteDisposition 中选择 WRITE_TRUNCATE 枚举。
  6. FHIR 导出配置部分中,点击浏览以选择 BigQuery 项目和数据集。

  7. 架构类型下拉菜单中,选择 BigQuery 表的输出架构。以下架构可用:

    • Google Analytics 。基于 SQL on FHIR 文档的架构。由于 BigQuery 仅允许每个表包含 10,000 个列,因此系统不会为 Parameters.parameter.resourceBundle.entry.resourceBundle.entry.response.outcome 字段生成架构。
    • Google Analytics V2。与 Google Analytics 架构类似的架构,但增加了对以下内容的支持:与 Google Analytics 架构相比,Google Analytics V2 架构在目标表中占用的空间更多。

  8. 递归结构深度滑块中选择一个深度级别,以设置输出架构中所有递归结构的深度。默认情况下,递归值为 2。

    如需了解详情,请参阅 recursiveStructureDepth

  9. 点击导出,将 FHIR 资源导出到 BigQuery。

  10. 要跟踪操作的状态,请点击操作标签页。操作完成后,系统会显示以下指示:
    • 长时间运行的操作状态部分下方的确定标题下会显示一个绿色的对勾标记。
    • 概览部分在操作 ID 的同一行中显示一个绿色对勾标记和一个确定指示符。
    如果您遇到任何错误,请点击操作,然后点击在 Cloud Logging 中查看详细信息

gcloud

如需将 FHIR 资源导出到 BigQuery,请运行 gcloud healthcare fhir-stores export bq 命令。

  1. 导出 FHIR 资源。

    在使用下面的命令数据之前,请先进行以下替换:

    • PROJECT_ID:您的 Google Cloud 项目的 ID
    • LOCATION:数据集位置
    • DATASET_ID:FHIR 存储区的父数据集
    • FHIR_STORE_ID:FHIR 存储区 ID
    • BIGQUERY_DATASET_ID:您要将 FHIR 资源导出到的现有 BigQuery 数据集的名称
    • SCHEMA_TYPESchemaType 的值。请使用以下某个值:
      • analytics。基于 SQL on FHIR 文档的架构。由于 BigQuery 仅允许每个表包含 10,000 个列,因此系统不会为 Parameters.parameter.resourceBundle.entry.resourceBundle.entry.response.outcome 字段生成架构。
      • analytics_v2。与 analytics 类似的架构,但增加了对以下内容的支持:

        analytics 相比,analytics-v2 在目标表中占用的空间更多。

    • WRITE_DISPOSITIONWriteDisposition 的值。请使用以下某个值:
      • write-empty。仅在目标 BigQuery 表为空时才导出数据。
      • write-truncate。请先清空 BigQuery 表中的所有现有数据,然后再写入 FHIR 资源。
      • write-append。将数据附加到目标 BigQuery 表。
    • FHIR_RESOURCE_TYPE:可选字段。指定一个或多个以英文逗号分隔的 FHIR 资源类型,以便仅导出这些类型的 FHIR 资源。
    • SINCE_TIMESTAMP:可选字段。指定一个格式为 YYYY-MM-DDThh:mm:ss.sss+zz:zz 的值,以便仅导出在特定时间之后更新的 FHIR 资源。请指定精确到秒的时间,并包含时区。例如,2015-02-07T13:28:17.239+02:002017-01-01T00:00:00Z 是有效的时间。

    执行以下命令:

    Linux、macOS 或 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
    响应如下所示。响应包含长时间运行的操作的标识符。当方法调用可能需要大量时间才能完成时,会返回长时间运行的操作。该命令会轮询长时间运行的操作,然后在导出完成后在 name 字段中输出操作的名称。记下 OPERATION_ID 的值。下一步中您需要用到该值。

    响应

    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. 如需详细了解该操作,请运行 gcloud healthcare operations describe 并从响应中提供 OPERATION_ID

    在使用下面的命令数据之前,请先进行以下替换:

    • PROJECT_ID:您的 Google Cloud 项目的 ID
    • DATASET_ID:数据集 ID
    • LOCATION:数据集位置
    • OPERATION_ID:从长时间运行的操作返回的 ID

    执行以下命令:

    Linux、macOS 或 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

    您应该会收到类似如下所示的响应:

    响应

    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

如需将 FHIR 资源导出到 BigQuery,请使用 projects.locations.datasets.fhirStores.export 方法。

  1. 导出 FHIR 资源:

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:您的 Google Cloud 项目的 ID
    • LOCATION:数据集位置
    • DATASET_ID:FHIR 存储区的父数据集
    • FHIR_STORE_ID:FHIR 存储区 ID
    • BIGQUERY_DATASET_ID:您要将 FHIR 资源导出到的现有 BigQuery 数据集的名称
    • SCHEMA_TYPESchemaType 的值。请使用以下某个值:
      • ANALYTICS。基于 SQL on FHIR 文档的架构。由于 BigQuery 仅允许每个表包含 10,000 个列,因此系统不会为 Parameters.parameter.resourceBundle.entry.resourceBundle.entry.response.outcome 字段生成架构。
      • ANALYTICS_V2。与 ANALYTICS 类似的架构,但增加了对以下内容的支持:

        ANALYTICS_V2 在目标表中占用的空间比 ANALYTICS

    • WRITE_DISPOSITIONWriteDisposition 的值。请使用以下某个值:
      • WRITE_EMPTY。仅在目标 BigQuery 表为空时才导出数据。
      • WRITE_TRUNCATE。请先清空 BigQuery 表中的所有现有数据,然后再写入 FHIR 资源。
      • WRITE_APPEND。将数据附加到目标 BigQuery 表。
    • FHIR_RESOURCE_TYPE:可选字段。指定一个或多个以英文逗号分隔的 FHIR 资源类型,以便仅导出这些类型的 FHIR 资源。
    • SINCE_TIMESTAMP:可选字段。指定一个格式为 YYYY-MM-DDThh:mm:ss.sss+zz:zz 的值,以便仅导出在特定时间之后更新的 FHIR 资源。请指定精确到秒的时间,并包含时区。例如,2015-02-07T13:28:17.239+02:002017-01-01T00:00:00Z 是有效的时间。

    请求 JSON 正文:

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

    如需发送请求,请选择以下方式之一:

    curl

    将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:

    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

    然后,执行以下命令以发送 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

    将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:

    @'
    {
      "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

    然后,执行以下命令以发送 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

    API Explorer

    复制请求正文并打开方法参考页面。APIs Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。 将请求正文粘贴到此工具中,填写任何其他必填字段,然后点击执行

    输出如下所示。响应包含长时间运行的操作 (LRO) 的标识符。当方法调用可能需要额外时间才能完成时,会返回长时间运行的操作。记下 OPERATION_ID 的值。下一步中您需要用到该值。

  2. 使用 projects.locations.datasets.operations.get 方法获取长时间运行的操作的状态。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:您的 Google Cloud 项目的 ID
    • DATASET_ID:数据集 ID
    • LOCATION:数据集位置
    • OPERATION_ID:从长时间运行的操作返回的 ID

    如需发送请求,请选择以下方式之一:

    curl

    执行以下命令:

    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

    执行以下命令:

    $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

    API Explorer

    打开方法参考页面。APIs Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。 填写所有必填字段,然后点击执行

    输出如下所示。如果响应包含 "done": true,则表示长时间运行的操作已完成。

将 FHIR 资源导出到分区表

如需将 FHIR 资源导出到 BigQuery 分区表,请在 FHIR 存储区的 lastUpdatedPartitionConfig 字段中设置 TimePartitioning 枚举。

分区表的运作方式与 BigQuery 按时间单位分区表类似。分区表中添加了一个名为 lastUpdated 的列,该列与从 FHIR 资源中的 meta.lastUpdated 字段生成的 meta.lastUpdated 列重复。BigQuery 使用 lastUpdated 列按小时、天、月或年对表进行分区。

如需有关如何选择分区粒度的建议,请参阅选择每日、每小时、每月或每年分区

您无法将现有的非分区 BigQuery 表转换为分区表。如果您将患者资源更改导出到非分区 Patients 表,然后创建一个具有表分区的新 FHIR 存储区并将其导出到同一 BigQuery 数据集,Cloud Healthcare API 仍会将数据导出到非分区 Patients 表。如需开始使用分区表,请删除现有的 Patients 表或使用其他 BigQuery 数据集。

如果您向现有 FHIR 存储空间配置添加分区,仍然可以导出到现有的非分区表。不过,分区只会对新表生效。

以下示例展示了如何将 FHIR 资源导出到 BigQuery 分区表。

控制台

Google Cloud 控制台和 gcloud CLI 不支持此操作。请改用 curl、PowerShell 或您的首选语言。

gcloud

Google Cloud 控制台和 gcloud CLI 不支持此操作。请改用 curl、PowerShell 或您的首选语言。

REST

如需将 FHIR 资源导出到 BigQuery 分区表,请使用 projects.locations.datasets.fhirStores.export 方法。

  1. 导出 FHIR 资源:

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:您的 Google Cloud 项目的 ID
    • LOCATION:数据集位置
    • DATASET_ID:FHIR 存储区的父数据集
    • FHIR_STORE_ID:FHIR 存储区 ID
    • BIGQUERY_DATASET_ID:您要将 FHIR 资源导出到的现有 BigQuery 数据集的名称
    • SCHEMA_TYPESchemaType 的值。请使用以下某个值:
      • ANALYTICS。基于 SQL on FHIR 文档的架构。由于 BigQuery 仅允许每个表包含 10,000 个列,因此系统不会为 Parameters.parameter.resourceBundle.entry.resourceBundle.entry.response.outcome 字段生成架构。
      • ANALYTICS_V2。与 ANALYTICS 类似的架构,但增加了对以下内容的支持:

        ANALYTICS_V2 在目标表中占用的空间比 ANALYTICS

    • TIME_PARTITION_TYPE:用于对导出的 FHIR 资源进行分区的粒度。请使用以下某个值:
      • HOUR:按小时对数据进行分区
      • DAY:按天对数据分区
      • MONTH:按月对数据进行分区
      • YEAR:按年份对数据进行分区
    • WRITE_DISPOSITIONWriteDisposition 的值。请使用以下某个值:
      • WRITE_EMPTY:仅在 BigQuery 表为空时才导出数据。
      • WRITE_TRUNCATE:在写入 DICOM 实例之前,请先清空 BigQuery 表中的所有现有数据。
      • WRITE_APPEND:将数据附加到 BigQuery 表。

    请求 JSON 正文:

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

    如需发送请求,请选择以下方式之一:

    curl

    将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:

    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

    然后,执行以下命令以发送 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

    将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:

    @'
    {
      "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

    然后,执行以下命令以发送 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

    API Explorer

    复制请求正文并打开方法参考页面。APIs Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。 将请求正文粘贴到此工具中,填写任何其他必填字段,然后点击执行

    您应该收到类似以下内容的 JSON 响应:

  2. 使用 projects.locations.datasets.operations.get 方法获取长时间运行的操作的状态。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:您的 Google Cloud 项目的 ID
    • DATASET_ID:数据集 ID
    • LOCATION:数据集位置
    • OPERATION_ID:从长时间运行的操作返回的 ID

    如需发送请求,请选择以下方式之一:

    curl

    执行以下命令:

    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

    执行以下命令:

    $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

    API Explorer

    打开方法参考页面。APIs Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。 填写所有必填字段,然后点击执行

    输出如下所示。如果响应包含 "done": true,则表示长时间运行的操作已完成。

查询分区表

如需降低查询分区表时的查询费用,请使用 WHERE 子句按时间单位进行过滤。

例如,假设您将 PartitionType 枚举设置为 DAY。如需查询 Patients 表中在特定日期更新的患者资源,请运行以下查询:

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

增量导出

您可以指定时间戳,以便仅导出自上次成功导出以来添加到 FHIR 存储区的 FHIR 资源。这可以提高性能,避免重新导出整个 FHIR 存储空间的费用,同时确保导出的数据始终是最新的。

调用 fhirStores.export 时,请在 _since 字段中指定时间戳。

在 BigQuery 中查询和分析 FHIR 数据

将 FHIR 资源导出到 BigQuery 后,请参阅在 BigQuery 中分析 FHIR 数据解决方案,了解如何查询和分析导出的数据。该解决方案使用 FHIR 中由 Synthea™ 生成的合成数据 公共数据集,该数据集托管了在 Synthea™ 中使用 FHIR 格式生成的超过 100 万条合成患者记录。

对 FHIR 导出请求进行问题排查

如果在执行 FHIR 导出请求期间发生错误,则错误会记录到 Cloud Logging。如需了解详情,请参阅在 Cloud Logging 中查看错误日志

如果整个操作返回错误,请参阅排查长时间运行的操作问题

无法将列从 NULLABLE 转换为 REPEATED

此错误是由重复延期引起的。如需解决此错误,请使用 ANALYTICS_V2 架构类型。如果您使用的是 ANALYTICS_V2,则两个扩展程序之间可能会发生冲突,或者扩展程序与其他字段之间可能会发生冲突。

列名称是根据扩展程序网址中最后一个 / 字符后面的文本生成的。如果扩展程序网址以 /resource_field name 等值结尾,则可能会发生冲突。\

为防止再次出现此错误,如果扩展程序的字段名称与要填充的资源字段相同,请勿使用扩展程序。

后续步骤