本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 FHI HealthLake R 导出数据 $export
您可以使用 FHIR $export 操作从 HealthLake 数据存储中批量导出数据。 HealthLake 支持 FHIR $export 使用POST和GET请求。要向发出导出请求POST,您必须拥有具有所需权限的 IAM 用户、群组或角色,在请求中指定$export,并在请求正文中包含所需的参数。
注意
使用 FHIR 发出的所有 HealthLake 导出请求$export都将以ndjson格式返回并导出到 Amazon S3 存储桶,其中每个 Amazon S3 对象仅包含一个 FHIR 资源类型。
您可以根据 AWS 账户服务配额对导出请求进行排队。有关更多信息,请参阅 服务限额。
HealthLake 支持以下三种类型的批量导出端点请求。
| 导出类型 | 说明 | 语法 |
|---|---|---|
系统 |
从 HealthLake FHIR 服务器导出所有数据。 |
|
所有患者 |
导出与所有患者相关的所有数据,包括与患者资源类型相关的资源类型。 |
|
患者群体 |
导出与使用群组 ID 指定的一组患者相关的所有数据。 |
|
开始前的准备工作
要使用适用 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请求来测试您的请求。
要提出请求,您必须执行以下操作:
-
$export在POST请求网址中指定支持的终端节点。 -
指定所需的标题参数。
-
指定用于定义所需参数的请求正文。
步骤 1:$export在POST请求网址中指定支持的终端节点。
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+ndjson、application/ndjson、ndjson。 |
|
_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:: |
| JobName | 否 | 导出请求的名称。 | |
| S3Uri | 是 | OutputDataConfig 钥匙的一部分。将下载导出数据的目标存储桶的 S3 URI。 | s3://amzn-s3-demo-bucket/ |
| KmsKeyId | 是 | OutputDataConfig 钥匙的一部分。用于保护 Amazon S3 存储桶的 AWS KMS 密钥的 ARN。 | arn:aws:kms: |
例 使用 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:: |
| SubmitTime | 否 | 提交导出任务的日期。 | Apr 21, 2023 5:58:02 |
| EndTime | 否 | 导出任务完成的时间。 |
Apr 21, 2023 6:00:08 PM |
| JobName | 否 | 导出请求的名称。 | |
| JobStatus | 否 | 有效值为:
|
|
| S3Uri | 是 | OutputDataConfig对象的一部分。将下载导出数据的目标存储桶的 Amazon S3 URI。 | s3://amzn-s3-demo-bucket/ |
| KmsKeyId | 是 | OutputDataConfig对象的一部分。用于保护 Amazon S3 存储桶的 AWS KMS 密钥的 ARN。 | arn:aws:kms: |
例 : 使用 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", } }