Nhập FHIR (Tài nguyên có khả năng tương tác nhanh trong hoạt động chăm sóc sức khoẻ) vào BigQuery

1. Giới thiệu

1f4764c4ca4c50d9.pngS

Lần cập nhật gần đây nhất: ngày 16 tháng 05 năm 2020

Lớp học lập trình này trình bày một mẫu nhập dữ liệu để nhập dữ liệu chăm sóc sức khoẻ có định dạng FHIR R4 (Tài nguyên thông thường) vào BigQuery bằng các API FHIR của Cloud Healthcare. Dữ liệu xét nghiệm thực tế về hoạt động chăm sóc sức khoẻ đã được tạo và cung cấp trong bộ chứa Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/) cho bạn.

Trong lớp học lập trình này, bạn sẽ tìm hiểu:

  • Cách nhập tài nguyên FHIR R4 từ GCS vào Cửa hàng Cloud Healthcare FHIR.
  • Cách xuất dữ liệu FHIR từ Cửa hàng FHIR sang Tập dữ liệu trong BigQuery.

Bạn cần những gì để chạy bản minh hoạ này?

  • Bạn cần có quyền truy cập vào một Dự án GCP.
  • Bạn phải được chỉ định vai trò Chủ sở hữu cho Dự án GCP.
  • Tài nguyên FHIR R4 ở định dạng NDJSON (content-structure=resources)

Nếu bạn không có Dự án GCP, hãy làm theo các bước này để tạo một Dự án GCP mới.

Các tài nguyên FHIR R4 ở định dạng NDJSON đã được tải sẵn vào bộ chứa GCS tại các vị trí sau:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ – Tài nguyên thông thường

Tất cả các tài nguyên ở trên đều có định dạng tệp JSON phân tách dòng mới (NDJSON) nhưng cấu trúc nội dung khác:

  • Tài nguyên thông thường ở định dạng ndjson – mỗi dòng trong tệp chứa một tài nguyên FHIR chính ở định dạng JSON (như Bệnh nhân, Quan sát, v.v.). Mỗi tệp ndjson chứa các tài nguyên FHIR của cùng một loại tài nguyên. Ví dụ: Patient.ndjson sẽ chứa một hoặc nhiều tài nguyên FHIR có resourceType = " Patient" và Quan sát.ndjson sẽ chứa một hoặc nhiều tài nguyên FHIR thuộc resourceType = ‘ Quan sát'.

Nếu cần một tập dữ liệu mới, bạn luôn có thể tạo tập dữ liệu đó bằng SyntheaTM. Sau đó, tải tệp này lên GCS thay vì sử dụng bộ chứa được cung cấp trong lớp học lập trình.

2. Thiết lập dự án

Hãy làm theo những bước sau để bật API Healthcare và cấp các quyền cần thiết:

Khởi chạy các biến shell cho môi trường của bạn

Để tìm PROJECT_NUMBERPROJECT_ID, hãy tham khảo phần Xác định dự án.

<!-- CODELAB: Initialize shell variables -->
export PROJECT_ID=<PROJECT_ID>
export PROJECT_NUMBER=<PROJECT_NUMBER>
export SRC_BUCKET_NAME=hcls_testing_data_fhir_10_patients
export BUCKET_NAME=<BUCKET_NAME>
export DATASET_ID=<DATASET_ID>
export FHIR_STORE=<FHIR_STORE>
export BQ_DATASET=<BQ_DATASET>

Bật API Healthcare

Sau đây là các bước để bật API Healthcare trong dự án GCP của bạn. Thao tác này sẽ thêm tài khoản dịch vụ của API Healthcare vào dự án.

  1. Chuyển đến Thư viện API Bảng điều khiển GCP.
  2. Trong danh sách dự án, hãy chọn dự án của bạn.
  3. Trong Thư viện API, hãy chọn API bạn muốn bật. Nếu bạn cần trợ giúp về cách tìm API, hãy sử dụng trường tìm kiếm và bộ lọc.
  4. Trên trang API, hãy nhấp vào BẬT.

Truy cập vào tập dữ liệu tổng hợp

  1. Từ địa chỉ email bạn đang dùng để đăng nhập vào Cloud Console, hãy gửi email đến hcls-solutions-external+subscribe@google.com để yêu cầu tham gia.
  2. Bạn sẽ nhận được một email hướng dẫn cách xác nhận thao tác đó.
  3. Sử dụng lựa chọn này để trả lời email để tham gia nhóm.
  4. ĐỪNG nhấp vào nút 525a0fa752e0acae.pngS. Cách đó không hiệu quả.
  5. Sau khi nhận được email xác nhận, bạn có thể chuyển sang bước tiếp theo trong lớp học lập trình.

Tạo một bộ chứa Google Cloud Storage trong dự án GCP của bạn

gsutil mb gs://$BUCKET_NAME

Sao chép dữ liệu tổng hợp vào dự án GCP

gsutil -m cp gs://$SRC_BUCKET_NAME/fhir_r4_ndjson/**.ndjson \
gs://$BUCKET_NAME/fhir_r4_ndjson/

Cấp quyền

Trước khi nhập tài nguyên FHIR từ Cloud Storage và xuất sang BigQuery, bạn phải cấp thêm quyền cho tài khoản dịch vụ của Tác nhân dịch vụ Cloud Healthcare . Để biết thêm thông tin, hãy xem các quyền về FHIR store Cloud Storage (Bộ nhớ trên đám mây của FHIR) và quyền truy cập vào BigQuery lưu trữ FHIR.

Cấp quyền quản trị viên bộ nhớ

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
  --role=roles/storage.objectViewer

Cấp quyền quản trị viên BigQuery

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
  --role=roles/bigquery.admin

3. Thiết lập môi trường

Hãy làm theo các bước sau để nhập dữ liệu từ các tệp NDJSON vào tập dữ liệu chăm sóc sức khoẻ trong BigQuery bằng các API FHIR của Cloud Healthcare:

Tạo Tập dữ liệu chăm sóc sức khoẻ và Cửa hàng FHIR

Tạo tập dữ liệu Chăm sóc sức khoẻ bằng API Cloud Healthcare

gcloud beta healthcare datasets create $DATASET_ID --location=us-central1

Tạo Cửa hàng FHIR trong tập dữ liệu bằng Cloud Healthcare API

gcloud beta healthcare fhir-stores create $FHIR_STORE \
  --dataset=$DATASET_ID --location=us-central1 --version=r4

4. Nhập dữ liệu vào Cửa hàng FHIR

Nhập dữ liệu thử nghiệm từ Google Cloud Storage vào FHIR Store.

Chúng tôi sẽ sử dụng các tệp tải trước trong bộ chứa GCS. Các tệp này chứa tài nguyên thông thường FHIR R4 ở định dạng NDJSON. Để phản hồi, bạn sẽ nhận được OPERATION_NUMBER. Giá trị này có thể được dùng trong bước xác thực.

Nhập các tài nguyên thông thường từ bộ chứa GCS trong dự án GCP

gcloud beta healthcare fhir-stores import gcs $FHIR_STORE \
  --dataset=$DATASET_ID --async \
  --gcs-uri=gs://$BUCKET_NAME/fhir_r4_ndjson/**.ndjson \
  --location=us-central1 --content-structure=RESOURCE

Xác thực

Thao tác xác thực đã hoàn tất thành công. Có thể mất vài phút để hoàn tất thao tác, vì vậy, bạn có thể cần phải lặp lại lệnh này vài lần với độ trễ đôi chút.

gcloud beta healthcare operations describe OPERATION_NUMBER \
  --dataset=$DATASET_ID --location=us-central1

5. Xuất dữ liệu từ Cửa hàng FHIR sang BigQuery

Tạo Tập dữ liệu BigQuery

bq mk --location=us --dataset $PROJECT_ID:$BQ_DATASET

Xuất dữ liệu chăm sóc sức khoẻ từ FHIR Store sang Tập dữ liệu BigQuery

gcloud beta healthcare fhir-stores export bq $FHIR_STORE \
  --dataset=$DATASET_ID --location=us-central1 --async \
  --bq-dataset=bq://$PROJECT_ID.$BQ_DATASET \
  --schema-type=analytics

Để phản hồi, bạn sẽ nhận được OPERATION_NUMBER. Giá trị này có thể được dùng trong bước xác thực.

Xác thực

Xác thực đã hoàn tất thành công thao tác

gcloud beta healthcare operations describe OPERATION_NUMBER \
  --dataset=$DATASET_ID --location=us-central1

Xác thực xem Tập dữ liệu BigQuery có tất cả 16 bảng hay không

bq ls $PROJECT_ID:$BQ_DATASET

6. Dọn dẹp

Để tránh bị tính phí vào tài khoản Google Cloud Platform cho các tài nguyên được sử dụng trong hướng dẫn này, bạn có thể dọn dẹp các tài nguyên mình đã tạo trên GCP để chúng không chiếm hạn mức và bạn sẽ không bị tính phí cho các tài nguyên đó trong tương lai. Các phần sau đây mô tả cách xoá hoặc tắt những tài nguyên này.

Xoá dự án

Cách dễ nhất để loại bỏ việc thanh toán là xoá dự án bạn đã tạo cho phần hướng dẫn.

Cách xoá dự án:

  1. Trong Bảng điều khiển GCP, hãy chuyển đến trang Dự án. CHUYỂN ĐẾN TRANG DỰ ÁN
  2. Trong danh sách dự án, hãy chọn dự án mà bạn muốn xoá rồi nhấp vào Delete (Xoá).
  3. Trong hộp thoại, hãy nhập mã dự án rồi nhấp vào Tắt để xoá dự án.

Nếu cần giữ lại dự án, bạn có thể xoá tập dữ liệu Cloud chăm sóc sức khoẻ và tập dữ liệu BigQuery theo hướng dẫn sau.

Xoá tập dữ liệu Cloud Healthcare API

Làm theo các bước để xoá tập dữ liệu của API Healthcare bằng cả Bảng điều khiển GCP và gcloud CLI.

Lệnh CLI nhanh:

gcloud beta healthcare datasets delete $DATASET_ID --location=us-central1

Xoá tập dữ liệu BigQuery

Làm theo các bước để xoá tập dữ liệu BigQuery bằng các giao diện khác nhau.

Lệnh CLI nhanh:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Xin chúc mừng

Xin chúc mừng! Bạn đã hoàn tất thành công lớp học lập trình để nhập dữ liệu chăm sóc sức khoẻ vào BigQuery bằng Cloud Healthcare API.

Bạn đã nhập dữ liệu tổng hợp tuân thủ FHIR R4 từ Google Cloud Storage vào các API FHIR của Cloud Healthcare.

Bạn đã xuất dữ liệu từ các API FHIR của Cloud Healthcare sang BigQuery.

Giờ đây, bạn đã biết các bước chính cần thiết để bắt đầu hành trình Phân tích dữ liệu trong lĩnh vực chăm sóc sức khoẻ bằng BigQuery trên Google Cloud Platform.