1. บทนำ

อัปเดตล่าสุด: 16-05-2020
Codelab นี้แสดงรูปแบบการนำเข้าข้อมูลเพื่อนำเข้าข้อมูล Healthcare ที่จัดรูปแบบ FHIR R4 (ทรัพยากรปกติ) ไปยัง BigQuery โดยใช้ Cloud Healthcare FHIR API ระบบได้สร้างข้อมูลทดสอบด้านการดูแลสุขภาพที่สมจริงและพร้อมใช้งานใน Bucket ของ Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/) สำหรับคุณ
ในโค้ดแล็บนี้ คุณจะได้เรียนรู้สิ่งต่อไปนี้
- วิธีนำเข้าทรัพยากร FHIR R4 จาก GCS ไปยังที่เก็บ FHIR ของ Cloud Healthcare
- วิธีส่งออกข้อมูล FHIR จากที่เก็บ FHIR ไปยังชุดข้อมูลใน BigQuery
คุณต้องมีอะไรบ้างในการเรียกใช้การสาธิตนี้
- คุณต้องมีสิทธิ์เข้าถึงโปรเจ็กต์ GCP
- คุณต้องได้รับมอบหมายบทบาทเจ้าของโปรเจ็กต์ GCP
- ทรัพยากร FHIR R4 ในรูปแบบ NDJSON (content-structure=RESOURCE)
หากไม่มีโปรเจ็กต์ GCP ให้ทำตามขั้นตอนเหล่านี้เพื่อสร้างโปรเจ็กต์ GCP ใหม่
ระบบได้โหลดทรัพยากร FHIR R4 ในรูปแบบ NDJSON ลงในที่เก็บข้อมูล GCS ล่วงหน้าแล้วในตำแหน่งต่อไปนี้
- gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ - ทรัพยากรปกติ
แหล่งข้อมูลทั้งหมดข้างต้นมีรูปแบบไฟล์ JSON ที่มีตัวคั่นบรรทัดใหม่ (NDJSON) แต่มีโครงสร้างเนื้อหาที่แตกต่างกัน ดังนี้
- ทรัพยากรปกติในรูปแบบ ndjson - แต่ละบรรทัดในไฟล์มีทรัพยากร FHIR หลักในรูปแบบ JSON (เช่น Patient, Observation ฯลฯ) ไฟล์ ndjson แต่ละไฟล์มีทรัพยากร FHIR ที่มีประเภททรัพยากรเดียวกัน เช่น Patient.ndjson จะมีทรัพยากร FHIR อย่างน้อย 1 รายการที่มี resourceType = ‘ Patient’ และ Observation.ndjson จะมีทรัพยากร FHIR อย่างน้อย 1 รายการที่มี resourceType = ‘ Observation’
หากต้องการชุดข้อมูลใหม่ คุณสร้างชุดข้อมูลได้ทุกเมื่อโดยใช้ SyntheaTM จากนั้นให้อัปโหลดไปยัง GCS แทนการใช้ที่เก็บข้อมูลที่ระบุไว้ใน Codelab
2. การตั้งค่าโปรเจ็กต์
ทำตามขั้นตอนต่อไปนี้เพื่อเปิดใช้ Healthcare API และให้สิทธิ์ที่จำเป็น
เริ่มต้นตัวแปร Shell สำหรับสภาพแวดล้อม
หากต้องการค้นหา PROJECT_NUMBER และ PROJECT_ID โปรดดูการระบุโปรเจ็กต์
<!-- 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>
เปิดใช้ Healthcare API
ขั้นตอนต่อไปนี้จะเปิดใช้ Healthcare API ในโปรเจ็กต์ GCP โดยจะเพิ่มบัญชีบริการ Healthcare API ลงในโปรเจ็กต์
- ไปที่คลัง API ของคอนโซล GCP
- เลือกโปรเจ็กต์จากรายการโปรเจ็กต์
- เลือก API ที่ต้องการเปิดใช้ในไลบรารี API หากต้องการความช่วยเหลือในการค้นหา API ให้ใช้ช่องค้นหาและตัวกรอง
- คลิกเปิดใช้ในหน้า API
รับสิทธิ์เข้าถึงชุดข้อมูลสังเคราะห์
- จากอีเมลที่คุณใช้เพื่อเข้าสู่ระบบ Cloud Console ให้ส่งอีเมลไปที่ hcls-solutions-external+subscribe@google.com เพื่อขอเข้าร่วม
- คุณจะได้รับอีเมลพร้อมวิธีการยืนยันการดำเนินการ
- ใช้ตัวเลือกเพื่อตอบกลับอีเมลเพื่อเข้าร่วมกลุ่ม
- อย่าคลิกปุ่ม
ไม่ได้ผล - เมื่อได้รับอีเมลยืนยันแล้ว คุณจะไปยังขั้นตอนถัดไปใน Codelab ได้
สร้าง Bucket ของ Google Cloud Storage ในโปรเจ็กต์ GCP
gsutil mb gs://$BUCKET_NAME
คัดลอกข้อมูลสังเคราะห์ไปยังโปรเจ็กต์ GCP
gsutil -m cp gs://$SRC_BUCKET_NAME/fhir_r4_ndjson/**.ndjson \ gs://$BUCKET_NAME/fhir_r4_ndjson/
ให้สิทธิ์
ก่อนที่จะนำเข้าทรัพยากร FHIR จาก Cloud Storage และส่งออกไปยัง BigQuery คุณต้องให้สิทธิ์เพิ่มเติมแก่บัญชีบริการ ของตัวแทนบริการ Cloud Healthcare ดูข้อมูลเพิ่มเติมได้ที่สิทธิ์ของ Cloud Storage สำหรับที่เก็บข้อมูล FHIR และสิทธิ์ของ BigQuery สำหรับที่เก็บข้อมูล FHIR
ให้สิทธิ์ผู้ดูแลระบบพื้นที่เก็บข้อมูล
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \ --role=roles/storage.objectViewer
ให้สิทธิ์ผู้ดูแลระบบ 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. การตั้งค่าสภาพแวดล้อม
ทำตามขั้นตอนต่อไปนี้เพื่อนำเข้าข้อมูลจากไฟล์ NDJSON ไปยังชุดข้อมูลด้านการดูแลสุขภาพใน BigQuery โดยใช้ Cloud Healthcare FHIR API
สร้างชุดข้อมูล Healthcare และที่เก็บ FHIR
สร้างชุดข้อมูล Healthcare โดยใช้ Cloud Healthcare API
gcloud beta healthcare datasets create $DATASET_ID --location=us-central1
สร้างที่เก็บ FHIR ในชุดข้อมูลโดยใช้ Cloud Healthcare API
gcloud beta healthcare fhir-stores create $FHIR_STORE \ --dataset=$DATASET_ID --location=us-central1 --version=r4
4. นำเข้าข้อมูลไปยังที่เก็บ FHIR
นำเข้าข้อมูลทดสอบจาก Google Cloud Storage ไปยัง FHIR Store
เราจะใช้ไฟล์ที่โหลดไว้ล่วงหน้าจากที่เก็บข้อมูล GCS ไฟล์เหล่านี้มีทรัพยากรปกติของ FHIR R4 ในรูปแบบ NDJSON คุณจะได้รับ OPERATION_NUMBER เป็นการตอบกลับ ซึ่งสามารถใช้ในขั้นตอนการตรวจสอบได้
นำเข้าทรัพยากรปกติจาก Bucket ของ GCS ในโปรเจ็กต์ 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
ตรวจสอบความถูกต้อง
การดำเนินการตรวจสอบเสร็จสมบูรณ์แล้ว การดำเนินการอาจใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์ คุณจึงอาจต้องเรียกใช้คำสั่งนี้ซ้ำ 2-3 ครั้งโดยเว้นช่วงเวลา
gcloud beta healthcare operations describe OPERATION_NUMBER \ --dataset=$DATASET_ID --location=us-central1
5. ส่งออกข้อมูลจาก FHIR Store ไปยัง BigQuery
สร้างชุดข้อมูล BigQuery
bq mk --location=us --dataset $PROJECT_ID:$BQ_DATASET
ส่งออกข้อมูลด้านการดูแลสุขภาพจาก FHIR Store ไปยังชุดข้อมูล 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
คุณจะได้รับ OPERATION_NUMBER เป็นการตอบกลับ ซึ่งสามารถใช้ในขั้นตอนการตรวจสอบได้
ตรวจสอบความถูกต้อง
ตรวจสอบว่าการดำเนินการเสร็จสมบูรณ์แล้ว
gcloud beta healthcare operations describe OPERATION_NUMBER \ --dataset=$DATASET_ID --location=us-central1
ตรวจสอบว่าชุดข้อมูล BigQuery มีตารางทั้ง 16 ตารางหรือไม่
bq ls $PROJECT_ID:$BQ_DATASET
6. ล้างข้อมูล
หากต้องการหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี Google Cloud Platform สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้ คุณสามารถล้างข้อมูลทรัพยากรที่สร้างไว้ใน GCP เพื่อไม่ให้ใช้โควต้า และคุณจะไม่ถูกเรียกเก็บเงินสำหรับทรัพยากรเหล่านั้นในอนาคต ส่วนต่อไปนี้จะอธิบายวิธีลบหรือปิดทรัพยากรเหล่านี้
ลบโปรเจ็กต์
วิธีที่ง่ายที่สุดในการยกเลิกการเรียกเก็บเงินคือการลบโปรเจ็กต์ที่คุณสร้างขึ้นสำหรับบทแนะนำ
วิธีลบโปรเจ็กต์
- ในคอนโซล GCP ให้ไปที่หน้าโปรเจ็กต์ ไปที่หน้าโปรเจ็กต์
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบโปรเจ็กต์
หากต้องการเก็บโปรเจ็กต์ไว้ คุณสามารถลบชุดข้อมูล Cloud Healthcare และชุดข้อมูล BigQuery ได้โดยใช้คำสั่งต่อไปนี้
ลบชุดข้อมูล Cloud Healthcare API
ทำตามขั้นตอนเพื่อลบชุดข้อมูล Healthcare API โดยใช้ทั้งคอนโซล GCP และ gcloud CLI
คำสั่ง CLI ด่วน
gcloud beta healthcare datasets delete $DATASET_ID --location=us-central1
ลบชุดข้อมูล BigQuery
ทำตามขั้นตอนเพื่อลบชุดข้อมูล BigQuery โดยใช้อินเทอร์เฟซต่างๆ
คำสั่ง CLI ด่วน
bq rm -r -f $PROJECT_ID:$DATASET_ID
7. ขอแสดงความยินดี
ขอแสดงความยินดี คุณได้ทำโค้ดแล็บเพื่อนำเข้าข้อมูลด้านการดูแลสุขภาพใน BigQuery โดยใช้ Cloud Healthcare API เสร็จสมบูรณ์แล้ว
คุณนำเข้าข้อมูลสังเคราะห์ที่สอดคล้องกับ FHIR R4 จาก Google Cloud Storage ไปยัง Cloud Healthcare FHIR API
คุณส่งออกข้อมูลจาก Cloud Healthcare FHIR API ไปยัง BigQuery
ตอนนี้คุณทราบขั้นตอนสำคัญที่จำเป็นในการเริ่มต้นเส้นทางการวิเคราะห์ข้อมูลด้านการดูแลสุขภาพด้วย BigQuery ใน Google Cloud Platform แล้ว