FHIR REST API 작업을 사용하여 데이터 스토어에서 HealthLake 데이터 내보내기 - AWS HealthLake

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

FHIR REST API 작업을 사용하여 데이터 스토어에서 HealthLake 데이터 내보내기

를 완료한 후 FHIR REST API 작업을 사용하여 데이터 스토어에서 HealthLake 데이터를 내보낼 내보내기 작업에 대한 권한 설정수 있습니다. 를 사용하여 내보내기 요청을 수행하려면 필요한 권한이 있는 IAM 사용자, 그룹 또는 역할이 FHIR REST API있어야 하며 요청의 $export 일부로 POST를 지정하고 요청 본문에 요청 파라미터를 포함해야 합니다. FHIR 사양에 따라 FHIR 서버는 GET 요청을 지원해야 하며 POST 요청을 지원할 수 있습니다. 추가 파라미터를 지원하려면 내보내기를 시작하는 데 본문이 필요하므로에서 POST 요청을 HealthLake 지원합니다.

중요

HealthLake 2023년 6월 1일 이전에 생성된 데이터 스토어는 시스템 전체 내보내기에 대한 FHIR REST API 기반 내보내기 작업 요청만 지원합니다.

HealthLake 2023년 6월 1일 이전에 생성된 데이터 스토어는 데이터 스토어의 엔드포인트에서 GET 요청을 사용하여 내보내기 상태를 가져오는 것을 지원하지 않습니다.

를 사용하여 수행하는 모든 내보내기 요청은 ndjson 형식으로 반환되고 Amazon S3 버킷으로 내보내FHIRRESTAPI집니다. 각 S3 객체에는 단일 FHIR 리소스 유형만 포함됩니다.

AWS 계정 할당량에 따라 내보내기 요청을 대기열에 넣을 수 있습니다. 와 연결된 Service Quotas에 대한 자세한 내용은 섹션을 HealthLake참조하세요AWS HealthLake 엔드포인트 및 할당량.

HealthLake 는 다음과 같은 세 가지 유형의 대량 내보내기 엔드포인트 요청을 지원합니다.

유형 설명 구문

시스템 내보내기

서버에서 모든 데이터를 내보냅니다 HealthLake FHIR.

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

환자 그룹

그룹 ID로 지정된 환자 그룹과 관련된 모든 데이터를 내보냅니다.

POST https://healthlake.your-region.amazonaws.com/datastore/your-datastore-id/r4/Group/ID/$export

시작하기 전 준비 사항

용를 사용하여 내보내기 요청을 하려면 다음 요구 사항을 충족FHIRRESTAPI합니다 HealthLake.

  • 내보내기 요청을 수행하는 데 필요한 권한이 있는 사용자, 그룹 또는 역할을 설정해야 합니다. 자세한 내용은 export 요청 승인을 참조하십시오.

  • 데이터를 내보낼 Amazon S3 버킷에 대한 HealthLake 액세스 권한을 부여하는 서비스 역할을 생성했어야 합니다. 서비스 역할도를 서비스 보안 주체 HealthLake 로 지정해야 합니다. 권한 설정에 대한 자세한 내용은 섹션을 참조하세요내보내기 작업에 대한 권한 설정.

export 요청 승인

를 사용하여 성공적인 내보내기 요청을 수행하려면 IAM 또는 FHIR REST OAuth2.0을 사용하여 사용자, 그룹 또는 역할을 API승인합니다. 서비스 역할도 있어야 합니다.

를 사용하여 요청 승인 IAM

$export 요청을 할 때 사용자, 그룹 또는 역할에는 정책에 포함된 StartFHIRExportJobWithPostDescribeFHIRExportJobWithGet, 및 CancelFHIRExportJobWithDelete IAM 작업이 있어야 합니다.

중요

HealthLake SDK StartFHIRExportJob API 작업을 사용한 내보내기 요청과 StartFHIRExportJobWithPost API 작업을 사용한 FHIR REST API 내보내기 요청에는 별도의 IAM 작업이 있습니다. 로 SDK 내보내기 StartFHIRExportJob 및 로 FHIR REST API 내보내기와 같은 각 IAM 작업은 별도로 허용/거부 권한을 처리할 StartFHIRExportJobWithPost수 있습니다. SDK 및 FHIR REST API 내보내기를 모두 제한하려면 각 IAM 작업에 대한 권한을 거부해야 합니다.

SMART에서를 사용하여 요청 승인FHIR(OAuth 2.0)

FHIR 활성화된 HealthLake 데이터 스토어SMART에서를 $export 요청할 때는 적절한 범위가 할당되어야 합니다. 지원되는 범위에 대한 자세한 내용은 섹션을 참조하세요HealthLake 데이터 스토어 FHIR 리소스별 범위.

export 요청하기

이 섹션에서는 FHIR REST를 사용하여 내보내기 요청을 할 때 수행해야 하는 필수 단계를 설명합니다API.

AWS 계정에 실수로 요금이 부과되지 않도록 export 구문을 제공하지 않고 POST 요청하여 요청을 테스트하는 것이 좋습니다.

요청을 하려면 다음을 수행해야 합니다.

  1. 지원되는 엔드포인트export에 URL 대한 POST 요청에를 지정합니다.

  2. 필요한 헤더 파라미터를 지정합니다.

  3. 필요한 파라미터를 정의하는 요청 본문을 지정합니다.

1단계: 지원되는 엔드포인트export에 URL 대한 POST 요청에를 지정합니다.

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단계: 필요한 헤더 파라미터 지정

를 사용하여 내보내기 요청을 하려면 다음 두 헤더 파라미터를 지정FHIRRESTAPI해야 합니다.

  • 콘텐츠 타입: 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 키의 일부입니다. 내보낸 데이터를 다운로드할 대상 버킷URI의 S3입니다. s3://DOC-EXAMPLE-DESTINATION-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

를 사용하여 내보내기 요청을 하려면 다음과 같이 본문을 지정FHIRRESTAPI해야 합니다.

{ "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." } ] }

내보내기 요청 설명

내보내기 요청의 상태를 가져오려면 export 및를 사용하여 GET 요청합니다export-request-job-id.

GET https://healthlake.your-region.amazonaws.com/datastore/your-datastore-id/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
S3UriOutputDataConfig 객체의 일부입니다. 내보낸 데이터를 다운로드할 대상 버킷URI의 Amazon S3입니다.s3://DOC-EXAMPLE-DESTINATION-BUCKET/EXPORT-JOB/
KmsKeyIdOutputDataConfig 객체의 일부입니다. 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://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", } }