使用 FHI HealthLake R 导出数据 $export - AWS HealthLake

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 FHI HealthLake R 导出数据 $export

您可以使用 FHIR $export 操作从 HealthLake 数据存储中批量导出数据。 HealthLake 支持 FHIR $export 使用POSTGET请求。要向发出导出请求POST,您必须拥有具有所需权限的 IAM 用户、群组或角色,在请求中指定$export,并在请求正文中包含所需的参数。

注意

使用 FHIR 发出的所有 HealthLake 导出请求$export都将以ndjson格式返回并导出到 Amazon S3 存储桶,其中每个 Amazon S3 对象仅包含一个 FHIR 资源类型。

您可以根据 AWS 账户服务配额对导出请求进行排队。有关更多信息,请参阅 服务限额

HealthLake 支持以下三种类型的批量导出端点请求。

HealthLake 批量$export类型
导出类型 说明 语法

系统

从 HealthLake FHIR 服务器导出所有数据。

POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/$export

所有患者

导出与所有患者相关的所有数据,包括与患者资源类型相关的资源类型。

POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/$export

GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/$export

患者群体

导出与使用群组 ID 指定的一组患者相关的所有数据。

POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Group/id/$export

GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Group/id/$export

开始前的准备工作

要使用适用 HealthLake的 FHIR REST API 提出导出请求,请满足以下要求。

  • 您必须已设置具有必要权限的用户、组或角色才能发出导出请求。要了解更多信息,请参阅对请求进行授$export权

  • 您必须已创建服务角色来授予 HealthLake 访问要将数据导出到的 Amazon S3 存储桶的权限。服务角色还必须指定 HealthLake 为服务主体。有关设置权限的更多信息,请参阅为导出任务设置权限

对请求进行授$export

要使用 FHIR REST API 成功发出导出请求,请使用 IAM 或 OAuth2 .0 对您的用户、群组或角色进行授权。您还必须具有服务角色。

使用 IAM 对请求进行授权

当您提出$export请求时,用户、群组或角色的策略中必须包含 IAM 操作。有关更多信息,请参阅 为导出任务设置权限

在 FHIR 上使用 SMART 授权请求 (2.0) OAuth

在支持 FHIR 的 SMART HealthLake 数据存储上$export发出请求时,必须分配相应的范围。有关更多信息,请参阅 SMART 对 FHIR 的资源范围适用于 HealthLake

注意

$export带有GET请求的 FHIR 需要相同的身份验证方法或持有者令牌(对于 FHIR 上的 SMART 而言)才能请求导出和检索文件。使用 FHIR 导出的文件$exportGET可在 48 小时内下载。

提出$export请求

本节介绍使用 FHIR REST API 发出导出请求时必须采取的必要步骤。

为避免意外向您的 AWS 账户收费,我们建议您在不提供$export语法的情况下通过提出POST请求来测试您的请求。

要提出请求,您必须执行以下操作:

  1. $exportPOST请求网址中指定支持的终端节点。

  2. 指定所需的标题参数。

  3. 指定用于定义所需参数的请求正文。

步骤 1:$exportPOST请求网址中指定支持的终端节点

HealthLake 支持三种类型的批量导出端点请求。要发出批量导出请求,您必须在三个支持的终端节点之一上发出POST基于请求的请求。以下示例演示了在请求网址$export中指定何处。

  • POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/$export

  • POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/$export

  • POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Group/id/$export

您可以在POST请求字符串中使用以下支持的搜索参数。

支持的搜索参数

HealthLake 在批量导出请求中支持以下搜索修饰符。

以下示例包括特殊字符,在提交请求之前必须对其进行编码。

名称 必填? 说明 示例
_outputFormat 要生成的请求的批量数据文件的格式。可接受的值为application/fhir+ndjsonapplication/ndjsonndjson
_type 要包含在导出任务中的以逗号分隔的 FHIR 资源类型字符串。我们建议将其包括在内,_type因为在导出所有资源时,这可能会影响成本。 &_type=MedicationStatement, Observation
_since 在日期时间戳当天或之后修改的资源类型。如果某个资源类型没有上次更新时间,则会将其包含在您的响应中。 &_since=2024-05-09T00%3A00%3A00Z

步骤 2:指定所需的标题参数

要使用 FHIR REST API 发出导出请求,必须指定以下标头参数。

  • Content-Type:application/fhir+json

  • 首选:respond-async

接下来,您必须在请求正文中指定所需的元素。

步骤 3:指定用于定义所需参数的请求正文。

导出请求还需要JSON格式化的正文。正文可以包含以下参数。

密钥 必填? 说明
DataAccessRoleArn HealthLake 服务角色的 ARN。使用的服务角色必须指定 HealthLake 为服务主体。 arn:aws:iam::444455556666:role/your-healthlake-service-role
JobName 导出请求的名称。 your-export-job-name
S3Uri OutputDataConfig 钥匙的一部分。将下载导出数据的目标存储桶的 S3 URI。 s3://amzn-s3-demo-bucket/EXPORT-JOB/
KmsKeyId OutputDataConfig 钥匙的一部分。用于保护 Amazon S3 存储桶的 AWS KMS 密钥的 ARN。 arn:aws:kms:region-of-bucket:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab
例 使用 FHIR REST API 发出的导出请求的正文

要使用 FHIR REST API 发出导出请求,必须指定正文,如下所示。

{ "DataAccessRoleArn": "arn:aws:iam::444455556666:role/your-healthlake-service-role", "JobName": "your-export-job", "OutputDataConfig": { "S3Configuration": { "S3Uri": "s3://amzn-s3-demo-bucket/EXPORT-JOB", "KmsKeyId": "arn:aws:kms:region-of-bucket:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab" } } }

请求成功后,您将收到以下回复。

响应标头

content-location: https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/export/your-export-request-job-id

响应正文

{ "datastoreId": "your-data-store-id", "jobStatus": "SUBMITTED", "jobId": "your-export-request-job-id" }

管理您的导出请求

成功发出导出请求后,您可以使用描述当前导$export出请求的状态和取消当前导出请求$export来管理请求。

使用 REST API 取消导出请求时,您只需为提交取消请求之前导出的部分数据付费。

以下主题介绍如何获取当前导出请求的状态或取消当前导出请求。

取消导出请求

要取消导出请求,DELETE请提出请求并在请求网址中提供任务 ID。

DELETE https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/export/your-export-request-job-id

请求成功后,您将收到以下信息。

{ "exportJobProperties": { "jobId": "your-original-export-request-job-id", "jobStatus": "CANCEL_SUBMITTED", "datastoreId": "your-data-store-id" } }

当您的请求失败时,您会收到以下信息。

{ "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "not-supported", "diagnostics": "Interaction not supported." } ] }

描述导出请求

要获取导出请求的状态,GET请使用export和您的export-request-job-id

GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/export/your-export-request-id

JSON 响应将包含一个ExportJobProperties对象。它可能包含以下键:值对。

名称 必填? 说明
DataAccessRoleArn HealthLake 服务角色的 ARN。使用的服务角色必须指定 HealthLake 为服务主体。 arn:aws:iam::444455556666:role/your-healthlake-service-role
SubmitTime 提交导出任务的日期。 Apr 21, 2023 5:58:02
EndTime

导出任务完成的时间。

Apr 21, 2023 6:00:08 PM
JobName 导出请求的名称。 your-export-job-name
JobStatus 有效值为:
SUBMITTED | IN_PROGRESS | COMPLETED_WITH_ERRORS | COMPLETED | FAILED
S3Uri OutputDataConfig对象的一部分。将下载导出数据的目标存储桶的 Amazon S3 URI。 s3://amzn-s3-demo-bucket/EXPORT-JOB/
KmsKeyId OutputDataConfig对象的一部分。用于保护 Amazon S3 存储桶的 AWS KMS 密钥的 ARN。 arn:aws:kms:region-of-bucket:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab
例 : 使用 FHIR REST API 发出的描述导出请求的正文

成功后,您将收到以下 JSON 响应。

{ "exportJobProperties": { "jobId": "your-export-request-id", "JobName": "your-export-job", "jobStatus": "SUBMITTED", "submitTime": "Apr 21, 2023 5:58:02 PM", "endTime": "Apr 21, 2023 6:00:08 PM", "datastoreId": "your-data-store-id", "outputDataConfig": { "s3Configuration": { "S3Uri": "s3://amzn-s3-demo-bucket/EXPORT-JOB", "KmsKeyId": "arn:aws:kms:region-of-bucket:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab"" } }, "DataAccessRoleArn": "arn:aws:iam::444455556666:role/your-healthlake-service-role", } }