本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用FHIRRESTAPI操作从 HealthLake 数据存储中导出数据
完成后为导出任务设置权限,您可以通过FHIRRESTAPI操作从 HealthLake 数据存储中导出数据。要使用提出导出请求 FHIR RESTAPI,您必须拥有具有所需权限的IAM用户、组或角色,在POST
请求中进行指定$export
,并在请求正文中包含请求参数。根据FHIR规范,FHIR服务器必须支持GET
请求,并且可以支持POST
请求。为了支持其他参数,需要一个主体来开始导出,因此 HealthLake 支持POST请求。
重要
HealthLake 2023 年 6 月 1 日之前创建的数据存储仅支持系统范围导出的FHIRRESTAPI基于导出任务的请求。
HealthLake 2023 年 6 月 1 日之前创建的数据存储不支持使用数据存储端点上的GET
请求获取导出状态。
您使用提出的所有导出请求FHIRRESTAPI都将以ndjson
格式返回并导出到 Amazon S3 存储桶。每个 S3 对象将仅包含一种FHIR资源类型。
您可以根据 AWS 账户配额对导出请求进行排队。要详细了解与之关联的 Service Quota HealthLake s,请参阅AWS HealthLake 终端节点和配额。
HealthLake 支持以下三种类型的批量导出端点请求。
类型 | 描述 | 语法 |
---|---|---|
系统导出 |
从 HealthLake FHIR服务器导出所有数据。 |
|
所有患者 |
导出与所有患者相关的所有数据,包括与患者资源类型相关的资源类型。 |
|
患者群体 |
导出与使用群组 ID 指定的一组患者相关的所有数据。 |
|
开始前的准备工作
使用 for 满足以下要求即可提出导出FHIRRESTAPI请求 HealthLake。
-
您必须已设置具有必要权限的用户、组或角色才能发出导出请求。要了解更多信息,请参阅 授权请求 export。
-
您必须已创建服务角色来授予 HealthLake 访问要将数据导出到的 Amazon S3 存储桶的权限。服务角色还必须指定 HealthLake 为服务主体。有关设置权限的更多信息,请参阅为导出任务设置权限。
授权请求 export
要使用成功发出导出请求 FHIR RESTAPI,请使用或 OAuth2 .0 对您的用户、群组或角色进行授权。IAM您还必须具有服务角色。
使用对请求进行授权 IAM
当您提出$export
请求时,用户、组或角色必须具有策略中包含的StartFHIRExportJobWithPost
DescribeFHIRExportJobWithGet
、和CancelFHIRExportJobWithDelete
IAM操作。
重要
HealthLake SDK使用StartFHIRExportJob
API操作的导FHIRRESTAPI出请求和使用StartFHIRExportJobWithPost
API操作的导出请求有不同的IAM操作。每个IAM操作(使用SDK导出StartFHIRExportJob
和FHIRRESTAPI导出时使用StartFHIRExportJobWithPost
)都可以单独处理允许/拒绝权限。如果您希望同时限制两FHIRRESTAPI者SDK兼而有之,请务必拒绝每个IAM操作的权限。
使用 SMART on FHIR (OAuth2.0) 授权请求
当你在FHIR已启用的 HealthLake 数据存储SMART上$export
发出请求时,你需要分配相应的范围。要了解有关支持的作用域的更多信息,请参阅HealthLake 数据存储FHIR资源特定范围。
提出export
请求
本节介绍使用提出导出请求时必须采取的必要步骤FHIRRESTAPI。
为避免意外向您的 AWS 账户收费,我们建议您在不提供export
语法的情况下通过提出POST
请求来测试您的请求。
要提出请求,您必须执行以下操作:
-
在
POST
请求export
URL中指定支持的终端节点。 -
指定所需的标题参数。
-
指定用于定义所需参数的请求正文。
步骤 1:在POST
请求export
URL中指定支持的终端节点
HealthLake 支持三种类型的批量导出端点请求。要发出批量导出请求,您必须在三个支持的终端节点之一上发出POST
基于请求的请求。以下示例演示了如何在请求export
中指定URL。
-
POST https://healthlake.
your-region
.amazonaws.com/datastore/your-datastore-id
/r4/$export -
POST https://healthlake.
your-region
.amazonaws.com/datastore/your-datastore-id
/r4/Patient/$export -
POST https://healthlake.
your-region
.amazonaws.com/datastore/your-datastore-id
/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 RESTAPI,必须指定以下两个标头参数。
-
Content-Type:
application/fhir+json
-
首选:
respond-async
接下来,您必须在请求正文中指定所需的元素。
步骤 3:指定用于定义所需参数的请求正文。
导出请求还需要JSON
格式化的正文。正文可以包含以下参数。
密钥 | 必填? | 描述 | 值 |
---|---|---|---|
DataAccessRoleArn | 是 | ARN一个 HealthLake 服务角色。使用的服务角色必须指定 HealthLake 为服务主体。 | arn:aws:iam:: |
JobName | 否 | 导出请求的名称。 |
|
S3Uri | 是 | OutputDataConfig 钥匙的一部分。将下载导出数据的目标存储桶的 S URI 3。 | s3://DOC-EXAMPLE-DESTINATION-BUCKET/ |
KmsKeyId | 是 | OutputDataConfig 钥匙的一部分。用于保护 Amazon S3 存储桶的 AWS KMS 密钥之一。ARN | arn:aws:kms: |
例 — 使用发出的出口请求的正文 FHIR REST API
要使用提出导出请求 FHIR RESTAPI,必须指定正文,如下所示。
{
"DataAccessRoleArn": "arn:aws:iam::444455556666
:role/your-healthlake-service-role
",
"JobName": "your-export-job
",
"OutputDataConfig": {
"S3Configuration": {
"S3Uri": "s3://DOC-EXAMPLE-DESTINATION-BUCKET/EXPORT-JOB
",
"KmsKeyId": "arn:aws:kms:region-of-bucket
:444455556666
:key/1234abcd-12ab-34cd-56ef-1234567890ab
"
}
}
}
请求成功后,您将收到以下回复。
响应标头
content-location: https://healthlake.
your-region
.amazonaws.com/datastore/your-datastore-id
/r4/export/your-export-request-job-id
响应正文
{ "datastoreId": "your-data-store-id", "jobStatus": "SUBMITTED", "jobId": "your-export-request-job-id" }
管理您的导出请求
成功发出导出请求后,您可以使用描述当前导export
出请求的状态和取消当前的导出请求export
来管理该请求。
当您使用取消导出请求时 RESTAPI,您只需为提交取消请求之前导出的部分数据付费。
以下主题介绍如何获取当前导出请求的状态或取消当前导出请求。
取消导出请求
要取消导出请求,DELETE
请提出请求并在请求中提供任务 ID URL。
DELETE https://healthlake.
your-region
.amazonaws.com/datastore/your-datastore-id
/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.
your-region
.amazonaws.com/datastore/your-datastore-id
/r4/export/your-export-request-id
JSON响应将包含一个ExportJobProperties
对象。它可能包含以下键:值对。
名称 | 必填? | 描述 | 值 |
---|---|---|---|
DataAccessRoleArn | 否 | ARN一个 HealthLake 服务角色。使用的服务角色必须指定 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://DOC-EXAMPLE-DESTINATION-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://DOC-EXAMPLE-DESTINATION-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
", } }