১. ভূমিকা

সর্বশেষ হালনাগাদ: ২০২০-০৫-১৬
এই কোডল্যাবটি ক্লাউড হেলথকেয়ার FHIR API ব্যবহার করে BigQuery-তে FHIR R4 ফরম্যাটের স্বাস্থ্যসেবা ডেটা (রেগুলার রিসোর্স) ইনজেস্ট করার একটি ডেটা ইনজেশন প্যাটার্ন প্রদর্শন করে। আপনার জন্য বাস্তবসম্মত স্বাস্থ্যসেবা পরীক্ষার ডেটা তৈরি করে গুগল ক্লাউড স্টোরেজ বাকেটে ( gs://hcls_testing_data_fhir_10_patients/) উপলব্ধ করা হয়েছে।
এই কোড ল্যাবে আপনি শিখবেন:
- GCS থেকে Cloud Healthcare FHIR Store-এ FHIR R4 রিসোর্স কীভাবে ইম্পোর্ট করবেন
- BigQuery-তে FHIR Store থেকে Dataset-এ FHIR ডেটা কীভাবে এক্সপোর্ট করবেন।
এই ডেমোটি চালানোর জন্য আপনার কী প্রয়োজন?
- আপনার একটি GCP প্রজেক্টে অ্যাক্সেস প্রয়োজন।
- আপনাকে অবশ্যই GCP প্রজেক্টে একজন মালিকের ভূমিকা (Owner role) প্রদান করতে হবে।
- NDJSON ফরম্যাটে FHIR R4 রিসোর্স (content-structure=RESOURCE)
আপনার যদি কোনো GCP প্রজেক্ট না থাকে, তাহলে একটি নতুন GCP প্রজেক্ট তৈরি করতে এই ধাপগুলো অনুসরণ করুন।
FHIR R4 রিসোর্সসমূহ NDJSON ফরম্যাটে নিম্নলিখিত স্থানগুলিতে GCS বাকেটে আগে থেকেই লোড করা হয়েছে:
- gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ - নিয়মিত সম্পদ
উপরের সমস্ত রিসোর্সগুলিতে নিউ লাইন ডিলিমিটার JSON (NDJSON) ফাইল ফরম্যাট থাকলেও, সেগুলোর বিষয়বস্তুর গঠন ভিন্ন:
- ndjson ফরম্যাটে সাধারণ রিসোর্সসমূহ - ফাইলের প্রতিটি লাইনে JSON ফরম্যাটে একটি মূল FHIR রিসোর্স থাকে (যেমন Patient , Observation , ইত্যাদি)। প্রতিটি ndjson ফাইলে একই রিসোর্স টাইপের FHIR রিসোর্স থাকে। উদাহরণস্বরূপ, Patient.ndjson ফাইলে resourceType = ' Patient ' টাইপের এক বা একাধিক FHIR রিসোর্স থাকবে এবং Observation.ndjson ফাইলে resourceType = ' Observation ' টাইপের এক বা একাধিক FHIR রিসোর্স থাকবে।
আপনার যদি একটি নতুন ডেটাসেটের প্রয়োজন হয়, আপনি SyntheaTM ব্যবহার করে তা তৈরি করতে পারেন। তারপর, কোডল্যাবে দেওয়া বাকেটটি ব্যবহার না করে, সেটি GCS-এ আপলোড করুন।
২. প্রকল্প স্থাপন
হেলথকেয়ার এপিআই সক্রিয় করতে এবং প্রয়োজনীয় অনুমতি প্রদান করতে এই ধাপগুলো অনুসরণ করুন:
আপনার পরিবেশের জন্য শেল ভেরিয়েবলগুলো প্রারম্ভিকীকরণ করুন
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>
স্বাস্থ্যসেবা এপিআই সক্ষম করুন
নিম্নলিখিত ধাপগুলো অনুসরণ করলে আপনার GCP প্রজেক্টে হেলথকেয়ার এপিআই (Healthcare APIs) সক্রিয় হবে। এটি প্রজেক্টে হেলথকেয়ার এপিআই সার্ভিস অ্যাকাউন্ট যুক্ত করবে।
- GCP কনসোল API লাইব্রেরিতে যান।
- প্রকল্পের তালিকা থেকে আপনার প্রকল্পটি নির্বাচন করুন।
- এপিআই লাইব্রেরিতে, আপনি যে এপিআইটি সক্রিয় করতে চান তা নির্বাচন করুন। এপিআইটি খুঁজে পেতে সাহায্যের প্রয়োজন হলে, সার্চ ফিল্ড এবং ফিল্টারগুলো ব্যবহার করুন।
- API পেজে, ENABLE-এ ক্লিক করুন।
সিন্থেটিক ডেটাসেটে অ্যাক্সেস পান
- আপনি ক্লাউড কনসোলে লগইন করার জন্য যে ইমেল ঠিকানাটি ব্যবহার করছেন, সেই ঠিকানা থেকে যোগদানের অনুরোধ জানিয়ে hcls-solutions-external+subscribe@google.com- এ একটি ইমেল পাঠান।
- কাজটি নিশ্চিত করার নির্দেশনাসহ আপনি একটি ইমেল পাবেন।
- গ্রুপে যোগ দিতে ইমেইলের উত্তর দেওয়ার বিকল্পটি ব্যবহার করুন।
- ক্লিক করবেন না
বাটনটি কাজ করছে না। - নিশ্চিতকরণ ইমেলটি পাওয়ার পর, আপনি কোডল্যাবের পরবর্তী ধাপে যেতে পারবেন।
আপনার 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 রিসোর্স ইম্পোর্ট করার এবং BigQuery-তে এক্সপোর্ট করার আগে, আপনাকে অবশ্যই ক্লাউড হেলথকেয়ার সার্ভিস এজেন্ট সার্ভিস অ্যাকাউন্টকে অতিরিক্ত অনুমতি প্রদান করতে হবে। আরও তথ্যের জন্য, FHIR স্টোর ক্লাউড স্টোরেজ এবং 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
৩. পরিবেশ সেটআপ
ক্লাউড হেলথকেয়ার FHIR API ব্যবহার করে NDJSON ফাইল থেকে BigQuery-এর হেলথকেয়ার ডেটাসেটে ডেটা ইনজেস্ট করতে এই ধাপগুলো অনুসরণ করুন:
স্বাস্থ্যসেবা ডেটাসেট এবং FHIR স্টোর তৈরি করুন
ক্লাউড হেলথকেয়ার এপিআই ব্যবহার করে হেলথকেয়ার ডেটাসেট তৈরি করুন
gcloud beta healthcare datasets create $DATASET_ID --location=us-central1
ক্লাউড হেলথকেয়ার এপিআই ব্যবহার করে ডেটাসেটে FHIR স্টোর তৈরি করুন
gcloud beta healthcare fhir-stores create $FHIR_STORE \ --dataset=$DATASET_ID --location=us-central1 --version=r4
4. FHIR স্টোরে ডেটা আমদানি করুন
গুগল ক্লাউড স্টোরেজ থেকে FHIR স্টোরে পরীক্ষার ডেটা ইম্পোর্ট করুন।
আমরা GCS Bucket থেকে আগে থেকে লোড করা ফাইলগুলো ব্যবহার করব। এই ফাইলগুলোতে NDJSON ফরম্যাটে FHIR R4-এর সাধারণ রিসোর্স রয়েছে। এর প্রতিক্রিয়ায় আপনি OPERATION_NUMBER পাবেন, যা ভ্যালিডেশন ধাপে ব্যবহার করা যাবে।
আপনার GCP প্রোজেক্টে GCS বাকেট থেকে নিয়মিত রিসোর্স ইম্পোর্ট করুন
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
৫. FHIR স্টোর থেকে BigQuery-তে ডেটা এক্সপোর্ট করুন
একটি BigQuery ডেটাসেট তৈরি করুন
bq mk --location=us --dataset $PROJECT_ID:$BQ_DATASET
FHIR স্টোর থেকে 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
প্রতিক্রিয়া হিসাবে, আপনি অপারেশন নম্বরটি পাবেন, যা যাচাইকরণ ধাপে ব্যবহার করা যেতে পারে।
যাচাই করুন
যাচাইকরণ প্রক্রিয়া সফলভাবে সম্পন্ন হয়েছে
gcloud beta healthcare operations describe OPERATION_NUMBER \ --dataset=$DATASET_ID --location=us-central1
BigQuery ডেটাসেটে সব ১৬টি টেবিল আছে কিনা তা যাচাই করুন।
bq ls $PROJECT_ID:$BQ_DATASET
৬. পরিষ্কার করুন
এই টিউটোরিয়ালে ব্যবহৃত রিসোর্সগুলোর জন্য আপনার গুগল ক্লাউড প্ল্যাটফর্ম অ্যাকাউন্টে চার্জ হওয়া এড়াতে, আপনি GCP-তে তৈরি করা রিসোর্সগুলো পরিষ্কার করে ফেলতে পারেন, যাতে সেগুলো আপনার কোটা ব্যবহার না করে এবং ভবিষ্যতে সেগুলোর জন্য আপনাকে বিল করা না হয়। নিম্নলিখিত বিভাগগুলোতে এই রিসোর্সগুলো কীভাবে ডিলিট বা বন্ধ করতে হয় তা বর্ণনা করা হয়েছে।
প্রকল্পটি মুছে ফেলুন
বিলিং বন্ধ করার সবচেয়ে সহজ উপায় হলো টিউটোরিয়ালের জন্য তৈরি করা প্রজেক্টটি ডিলিট করে দেওয়া।
প্রজেক্টটি ডিলিট করতে:
- GCP কনসোলে, প্রজেক্টস পেজে যান। প্রজেক্টস পেজে যান
- প্রজেক্ট তালিকা থেকে, আপনি যে প্রজেক্টটি মুছতে চান সেটি নির্বাচন করুন এবং ডিলিট বাটনে ক্লিক করুন।
- ডায়ালগ বক্সে প্রজেক্ট আইডি টাইপ করুন এবং তারপর প্রজেক্টটি মুছে ফেলার জন্য 'শাট ডাউন'-এ ক্লিক করুন।
প্রজেক্টটি রাখতে চাইলে, নিচের নির্দেশাবলী অনুসরণ করে ক্লাউড হেলথকেয়ার ডেটাসেট এবং বিগকোয়েরি ডেটাসেট ডিলিট করে দিতে পারেন।
ক্লাউড হেলথকেয়ার এপিআই ডেটাসেটটি মুছে ফেলুন
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
৭. অভিনন্দন
অভিনন্দন, আপনি ক্লাউড হেলথকেয়ার এপিআই ব্যবহার করে বিগকোয়েরিতে স্বাস্থ্যসেবা ডেটা অন্তর্ভুক্ত করার কোড ল্যাবটি সফলভাবে সম্পন্ন করেছেন।
আপনি গুগল ক্লাউড স্টোরেজ থেকে ক্লাউড হেলথকেয়ার FHIR API-গুলিতে FHIR R4-সম্মত সিন্থেটিক ডেটা আমদানি করেছেন।
আপনি ক্লাউড হেলথকেয়ার FHIR API থেকে BigQuery-তে ডেটা এক্সপোর্ট করেছেন।
গুগল ক্লাউড প্ল্যাটফর্মে BigQuery ব্যবহার করে আপনার হেলথকেয়ার ডেটা অ্যানালিটিক্স যাত্রা শুরু করার জন্য প্রয়োজনীয় মূল ধাপগুলো এখন আপনি জানেন।