نقل موارد التوافقية السريعة في مجال الرعاية الصحية (FHIR) إلى BigQuery

1. مقدمة

1f4764c4ca4c50d9.png

تاريخ آخر تعديل: 2020-05-16

يوضّح هذا الدرس التطبيقي حول الترميز نموذجًا لنقل البيانات من أجل نقل بيانات الرعاية الصحية المنسّقة بتنسيق FHIR R4 (الموارد العادية) إلى BigQuery باستخدام واجهات Cloud Healthcare FHIR API. تم إنشاء بيانات اختبار واقعية للرعاية الصحية وإتاحتها لك في حزمة Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/).

في هذا الدرس العملي، ستتعرّف على ما يلي:

  • كيفية استيراد موارد FHIR R4 من GCS إلى Cloud Healthcare FHIR Store
  • كيفية تصدير بيانات FHIR من FHIR Store إلى مجموعة بيانات في BigQuery

ما هي المتطلبات اللازمة لتشغيل هذا الإصدار التجريبي؟

  • يجب أن يكون لديك إذن الوصول إلى مشروع على Google Cloud Platform.
  • يجب أن يتم تعيين دور "مالك" لك في مشروع Google Cloud Platform.
  • موارد FHIR R4 بتنسيق NDJSON (content-structure=RESOURCE)

إذا لم يكن لديك مشروع على Google Cloud Platform، اتّبِع هذه الخطوات لإنشاء مشروع جديد على Google Cloud Platform.

تم تحميل موارد FHIR R4 مسبقًا بتنسيق NDJSON في حزمة GCS في المواقع التالية:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ - الموارد العادية

تتوفّر جميع المراجع أعلاه بتنسيق ملف JSON مقسّم بمحدِّدات أسطر جديدة (NDJSON)، ولكن ببنية محتوى مختلفة:

  • الموارد العادية بتنسيق ndjson: يحتوي كل سطر في الملف على مورد FHIR أساسي بتنسيق JSON (مثل المريض والملاحظة وما إلى ذلك). يحتوي كل ملف ndjson على موارد FHIR من نوع المورد نفسه. على سبيل المثال، سيحتوي Patient.ndjson على مورد واحد أو أكثر من موارد FHIR التي تحمل resourceType = ‘ Patient وسيحتوي Observation.ndjson على مورد واحد أو أكثر من موارد FHIR التي تحمل 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 في مشروعك على Google Cloud Platform. سيؤدي ذلك إلى إضافة حساب خدمة Healthcare API إلى المشروع.

  1. انتقِل إلى مكتبة واجهات برمجة التطبيقات في "وحدة تحكّم Google Cloud Platform".
  2. من قائمة المشاريع، اختَر مشروعك.
  3. في "مكتبة واجهات برمجة التطبيقات"، اختَر واجهة برمجة التطبيقات التي تريد تفعيلها. إذا كنت بحاجة إلى مساعدة في العثور على واجهة برمجة التطبيقات، استخدِم حقل البحث والفلاتر.
  4. في صفحة واجهة برمجة التطبيقات، انقر على تفعيل.

الحصول على إذن الوصول إلى مجموعة البيانات الاصطناعية

  1. من عنوان البريد الإلكتروني الذي تستخدمه لتسجيل الدخول إلى Cloud Console، أرسِل رسالة إلكترونية إلى hcls-solutions-external+subscribe@google.com تطلب فيها الانضمام.
  2. ستتلقّى رسالة إلكترونية تتضمّن تعليمات حول كيفية تأكيد الإجراء.
  3. استخدِم الخيار للردّ على الرسالة الإلكترونية للانضمام إلى المجموعة.
  4. لا تنقر على الزر 525a0fa752e0acae.png. لا يعمل.
  5. بعد تلقّي رسالة التأكيد الإلكترونية، يمكنك الانتقال إلى الخطوة التالية في الدرس العملي.

إنشاء حزمة في Google Cloud Storage ضمن مشروعك على Google Cloud Platform

gsutil mb gs://$BUCKET_NAME

نسخ البيانات الاصطناعية إلى مشروعك على Google Cloud

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

منح الأذونات

قبل استيراد موارد FHIR من Cloud Storage وتصديرها إلى BigQuery، يجب منح أذونات إضافية لحساب خدمة Cloud Healthcare Service Agent. لمزيد من المعلومات، يُرجى الاطّلاع على أذونات FHIR store Cloud Storage وFHIR store BigQuery.

منح إذن "مشرف مساحة التخزين"

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:

إنشاء مجموعة بيانات الرعاية الصحية ومخزن FHIR

إنشاء مجموعة بيانات Healthcare باستخدام Cloud Healthcare APIs

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

إنشاء FHIR Store في مجموعة البيانات باستخدام Cloud Healthcare APIs

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

4. استيراد البيانات إلى FHIR Store

استيراد بيانات الاختبار من Google Cloud Storage إلى FHIR Store

سنستخدم ملفات محمّلة مسبقًا من حزمة GCS. تحتوي هذه الملفات على موارد FHIR R4 عادية بتنسيق NDJSON. ستتلقّى OPERATION_NUMBER كاستجابة، ويمكن استخدامها في خطوة التحقّق.

استيراد الموارد العادية من حزمة GCS في مشروعك على Google Cloud Platform

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

التحقّق من الصحة

اكتملت عملية التحقّق بنجاح. قد يستغرق إكمال العملية بضع دقائق، لذا قد تحتاج إلى تكرار هذا الأمر عدة مرات مع بعض التأخير.

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 مقابل الموارد المستخدَمة في هذا البرنامج التعليمي، يمكنك تنظيف الموارد التي أنشأتها على Google Cloud Platform لكي لا تستهلك حصتك، ولن يتم تحصيل رسوم منك مقابلها في المستقبل. توضّح الأقسام التالية كيفية حذف هذه الموارد أو إيقافها.

حذف المشروع

أسهل طريقة لإيقاف الفوترة هي حذف المشروع الذي أنشأته لتنفيذ البرنامج التعليمي.

لحذف المشروع، اتّبِع الخطوات التالية:

  1. في "وحدة تحكّم Google Cloud Platform"، انتقِل إلى صفحة المشاريع. الانتقال إلى صفحة المشاريع
  2. في قائمة المشاريع، اختَر المشروع الذي تريد حذفه وانقر على حذف.
  3. في مربّع الحوار، اكتب رقم تعريف المشروع، ثم انقر على إيقاف لحذف المشروع.

إذا كنت بحاجة إلى الاحتفاظ بالمشروع، يمكنك حذف مجموعة بيانات Cloud Healthcare ومجموعة بيانات BigQuery باتّباع التعليمات التالية.

حذف مجموعة بيانات Cloud Healthcare API

اتّبِع الخطوات لحذف مجموعة بيانات Healthcare API باستخدام كلّ من وحدة تحكّم Google Cloud وgcloud CLI.

أمر سريع لواجهة سطر الأوامر:

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

حذف مجموعة بيانات BigQuery

اتّبِع الخطوات لحذف مجموعة بيانات BigQuery باستخدام واجهات مختلفة.

أمر سريع لواجهة سطر الأوامر:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. تهانينا

تهانينا، لقد أكملت بنجاح تجربة الترميز لنقل بيانات الرعاية الصحية إلى BigQuery باستخدام Cloud Healthcare APIs.

لقد استوردت بيانات اصطناعية متوافقة مع FHIR R4 من Google Cloud Storage إلى واجهات برمجة تطبيقات Cloud Healthcare FHIR.

لقد صدّرت بيانات من واجهات برمجة تطبيقات FHIR في Cloud Healthcare إلى BigQuery.

أصبحت الآن على دراية بالخطوات الأساسية المطلوبة لبدء رحلة تحليل بيانات الرعاية الصحية باستخدام BigQuery على Google Cloud Platform.