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

1. مقدمة

1f4764c4ca4c50d9.png

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

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

ستتعرف في هذا التمرين المعملي على الترميز ما يلي:

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

ما هي متطلبات تشغيل هذا العرض التوضيحي؟

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

إذا لم يكن لديك مشروع 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 واحد أو أكثر من الموارد من نوع = " Patient". وسيحتوي أمر Monitor.ndjson على واحد أو أكثر من موارد FHIR من نوع الموارد = ‘ Monitoring .

إذا كنت بحاجة إلى مجموعة بيانات جديدة، يمكنك إنشاؤها دائمًا باستخدام SyntheaTM. بعد ذلك، حمِّل الملف إلى خدمة GCS بدلاً من استخدام الحزمة المتوفّرة في الدرس التطبيقي حول الترميز.

2. إعداد المشروع

اتّبِع الخطوات التالية لتفعيل Healthcare API ومنح الأذونات المطلوبة:

إعداد متغيّرات واجهة الأوامر لبيئتك

للعثور على 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 Platform

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 في Cloud Storage وFHIR تخزن 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:

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

إنشاء مجموعة بيانات "الرعاية الصحية" باستخدام واجهات برمجة تطبيقات Cloud Healthcare

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

إنشاء متجر FHIR في مجموعة بيانات باستخدام واجهات برمجة تطبيقات Cloud Healthcare

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، والذي يمكن استخدامه في خطوة التحقق.

استيراد الموارد العادية من حزمة 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 ومجموعة بيانات BigQuery باتّباع التعليمات التالية.

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

اتّبِع الخطوات لحذف مجموعة بيانات Healthcare API باستخدام كل من وحدة تحكّم Google Cloud Platform و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 API.

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

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

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