1. مقدمة

تاريخ آخر تعديل: 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 إلى المشروع.
- انتقِل إلى مكتبة واجهات برمجة التطبيقات في "وحدة تحكّم Google Cloud Platform".
- من قائمة المشاريع، اختَر مشروعك.
- في "مكتبة واجهات برمجة التطبيقات"، اختَر واجهة برمجة التطبيقات التي تريد تفعيلها. إذا كنت بحاجة إلى مساعدة في العثور على واجهة برمجة التطبيقات، استخدِم حقل البحث والفلاتر.
- في صفحة واجهة برمجة التطبيقات، انقر على تفعيل.
الحصول على إذن الوصول إلى مجموعة البيانات الاصطناعية
- من عنوان البريد الإلكتروني الذي تستخدمه لتسجيل الدخول إلى Cloud Console، أرسِل رسالة إلكترونية إلى hcls-solutions-external+subscribe@google.com تطلب فيها الانضمام.
- ستتلقّى رسالة إلكترونية تتضمّن تعليمات حول كيفية تأكيد الإجراء.
- استخدِم الخيار للردّ على الرسالة الإلكترونية للانضمام إلى المجموعة.
- لا تنقر على الزر
. لا يعمل. - بعد تلقّي رسالة التأكيد الإلكترونية، يمكنك الانتقال إلى الخطوة التالية في الدرس العملي.
إنشاء حزمة في 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 لكي لا تستهلك حصتك، ولن يتم تحصيل رسوم منك مقابلها في المستقبل. توضّح الأقسام التالية كيفية حذف هذه الموارد أو إيقافها.
حذف المشروع
أسهل طريقة لإيقاف الفوترة هي حذف المشروع الذي أنشأته لتنفيذ البرنامج التعليمي.
لحذف المشروع، اتّبِع الخطوات التالية:
- في "وحدة تحكّم Google Cloud Platform"، انتقِل إلى صفحة المشاريع. الانتقال إلى صفحة المشاريع
- في قائمة المشاريع، اختَر المشروع الذي تريد حذفه وانقر على حذف.
- في مربّع الحوار، اكتب رقم تعريف المشروع، ثم انقر على إيقاف لحذف المشروع.
إذا كنت بحاجة إلى الاحتفاظ بالمشروع، يمكنك حذف مجموعة بيانات 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.