1. Giới thiệu

Lần cập nhật gần đây nhất: Ngày 16 tháng 5 năm 2020
Lớp học lập trình này minh hoạ 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 Cloud Healthcare FHIR API. Dữ liệu kiểm thử thực tế về dịch vụ chăm sóc sức khoẻ đã được tạo và cung cấp cho bạn trong bộ chứa Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/).
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 FHIR của Cloud Healthcare.
- Cách xuất dữ liệu FHIR từ Cửa hàng FHIR sang một Tập dữ liệu trong BigQuery.
Bạn cần làm 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 trên Google Cloud Platform (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=RESOURCE)
Nếu bạn chưa 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 vùng 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 bằng dòng mới (NDJSON) nhưng có cấu trúc nội dung khác nhau:
- 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 cốt lõi ở định dạng JSON (chẳng hạn như Bệnh nhân, Quan sát, v.v.). Mỗi tệp ndjson chứa các tài nguyên FHIR thuộc 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à Observation.ndjson sẽ chứa một hoặc nhiều tài nguyên FHIR có resourceType = "Observation".
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 đó, hãy tải tệp lên GCS thay vì sử dụng nhóm đượ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 các bước sau để bật Healthcare API và cấp các quyền bắt buộc:
Khởi chạy các biến shell cho môi trường của bạn
Để tìm PROJECT_NUMBER và PROJECT_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 Healthcare API
Các bước sau đây sẽ bật Healthcare API trong Dự án GCP của bạn. Thao tác này sẽ thêm tài khoản dịch vụ Healthcare API vào dự án.
- Chuyển đến Thư viện API của Bảng điều khiển GCP.
- Trong danh sách dự án, hãy chọn dự án của bạn.
- Trong Thư viện API, hãy chọn API mà bạn muốn bật. Nếu bạn cần trợ giúp tìm API, hãy sử dụng trường tìm kiếm và bộ lọc.
- 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
- Từ địa chỉ email mà 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.
- Bạn sẽ nhận được email hướng dẫn cách xác nhận hành động này.
- Sử dụng lựa chọn trả lời email để tham gia nhóm.
- KHÔNG nhấp vào nút
. Cách này không hiệu quả. - 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
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ụ Cloud Healthcare Service Agent . Để biết thêm thông tin, hãy xem các quyền đối với Cloud Storage của kho lưu trữ FHIR và BigQuery của kho lưu trữ FHIR.
Cấp quyền quản trị 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ị 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ừ tệp NDJSON vào tập dữ liệu chăm sóc sức khoẻ trong BigQuery bằng Cloud Healthcare FHIR API:
Tạo tập dữ liệu chăm sóc sức khoẻ và kho lưu trữ FHIR
Tạo tập dữ liệu Healthcare bằng Cloud Healthcare API
gcloud beta healthcare datasets create $DATASET_ID --location=us-central1
Tạo FHIR Store 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 kiểm thử từ Google Cloud Storage vào FHIR Store.
Chúng tôi sẽ sử dụng các tệp được tải sẵn từ Bộ chứa GCS. Các tệp này chứa các tài nguyên thông thường FHIR R4 ở định dạng NDJSON. Khi phản hồi, bạn sẽ nhận được OPERATION_NUMBER. Bạn có thể dùng số này trong bước xác thực.
Nhập 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. Thao tác này có thể mất vài phút để hoàn tất, vì vậy, bạn có thể cần lặp lại lệnh này vài lần với một độ trễ nhất định.
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
Khi phản hồi, bạn sẽ nhận được OPERATION_NUMBER. Bạn có thể dùng số này trong bước xác thực.
Xác thực
Xác thực hoạt động đã hoàn tất thành công
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ó đủ 16 bảng hay không
bq ls $PROJECT_ID:$BQ_DATASET
6. Dọn dẹp
Để tránh phát sinh phí cho tài khoản Google Cloud Platform của bạn đối với các tài nguyên được dùng trong hướng dẫn này, bạn có thể dọn dẹp các tài nguyên mà bạn đã tạo trên GCP để chúng không chiếm hạn mức của bạn 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 các tài nguyên này.
Xoá dự án
Cách dễ nhất để không bị tính phí là xoá dự án mà bạn đã tạo cho hướng dẫn này.
Cách xoá dự án:
- Trong Bảng điều khiển của GCP, hãy chuyển đến trang Dự án. CHUYỂN ĐẾN TRANG DỰ ÁN
- Trong danh sách dự án, hãy chọn dự án bạn muốn xoá rồi nhấp vào Xoá.
- 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 Healthcare và tập dữ liệu BigQuery theo hướng dẫn sau.
Xoá tập dữ liệu Cloud Healthcare API
Hãy làm theo các bước để xoá tập dữ liệu Healthcare API 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 nhiều giao diện.
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 Cloud Healthcare FHIR API.
Bạn đã xuất dữ liệu từ Cloud Healthcare FHIR API 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 y tế bằng BigQuery trên Google Cloud Platform.