BigQuery में एफ़एचआईआर (फ़ास्ट हेल्थकेयर इंटरऑपरेबिलिटी रिसॉर्स) डालें

1. परिचय

1f4764c4ca4c50d9.png

पिछली बार अपडेट किए जाने की तारीख: 16-05-2020

यह कोडलैब, Cloud Healthcare FHIR API का इस्तेमाल करके, BigQuery में FHIR R4 फ़ॉर्मैट किया गया हेल्थकेयर डेटा (सामान्य संसाधन) डालने के लिए, डेटा डालने का पैटर्न दिखाता है. स्वास्थ्य सेवा की असल जांच का डेटा जनरेट किया गया है और आपके लिए Google Cloud Storage बकेट (gs://hcls_testing_data_fhir_10_patients/) में उपलब्ध कराया गया है.

इस कोड लैब में, आपको इनके बारे में जानकारी मिलेगी:

  • GCS (जीसीएस) से FHIR R4 संसाधनों को Cloud Healthcare FHIR Store में इंपोर्ट करने का तरीका.
  • FHIR स्टोर से BigQuery के डेटासेट में FHIR डेटा एक्सपोर्ट करने का तरीका.

इस डेमो को चलाने के लिए, आपको क्या करना होगा?

  • आपके पास GCP प्रोजेक्ट का ऐक्सेस होना चाहिए.
  • आपको GCP प्रोजेक्ट के लिए मालिक की भूमिका असाइन करनी होगी.
  • NDJSON फ़ॉर्मैट में FHIR R4 संसाधन (content-structured=संसाधन)

अगर आपके पास GCP प्रोजेक्ट नहीं है, तो नया GCP प्रोजेक्ट बनाने के लिए यह तरीका अपनाएं.

NDJSON फ़ॉर्मैट में FHIR R4 संसाधन, इन जगहों पर GCS बकेट में पहले से लोड हो चुके हैं:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ - सामान्य संसाधन

ऊपर दिए गए सभी संसाधनों में नया लाइन डीलिमिटर JSON (NDJSON) फ़ाइल फ़ॉर्मैट है, लेकिन कॉन्टेंट का स्ट्रक्चर अलग है:

  • ndjson फ़ॉर्मैट में सामान्य संसाधन - फ़ाइल की हर लाइन में, JSON फ़ॉर्मैट में मुख्य FHIR संसाधन मौजूद होता है. जैसे, पेशेंट, निगरानी वगैरह. हर ndjson फ़ाइल में, एक ही तरह के FHIR संसाधन होते हैं. उदाहरण के लिए, Patient.ndjson में,ResourceType = ‘ Patient' के एक या एक से ज़्यादा FHIR संसाधन शामिल होंगे और निगरानी.ndjson में रिसॉर्स टाइप के एक या एक से ज़्यादा FHIR संसाधन होंगे = ‘ निगरानी'.

अगर आपको कोई नया डेटासेट चाहिए, तो उसे कभी भी 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 चालू करें

यह तरीका अपनाने पर, आपके GCP प्रोजेक्ट में हेल्थकेयर एपीआई चालू हो जाएंगे. इससे प्रोजेक्ट में Healthcare API सेवा खाता जुड़ जाएगा.

  1. GCP Console API लाइब्रेरी पर जाएं.
  2. प्रोजेक्ट की सूची में से, अपना प्रोजेक्ट चुनें.
  3. एपीआई लाइब्रेरी में जाकर, वह एपीआई चुनें जिसे आपको चालू करना है. अगर आपको एपीआई ढूंढने में मदद चाहिए, तो खोज फ़ील्ड और फ़िल्टर का इस्तेमाल करें.
  4. एपीआई पेज पर, चालू करें पर क्लिक करें.

सिंथेटिक डेटासेट का ऐक्सेस पाना

  1. Cloud Console में लॉगिन करने के लिए जिस ईमेल पते का इस्तेमाल किया जा रहा है उससे hcls-solutions-external+subscribe@google.com पर ईमेल भेजकर शामिल होने का अनुरोध करें.
  2. आपको एक ईमेल मिलेगा, जिसमें कार्रवाई की पुष्टि करने के निर्देश होंगे.
  3. ग्रुप में शामिल होने के लिए, ईमेल का जवाब देने के विकल्प का इस्तेमाल करें.
  4. 525a0fa752e0acae.pngबटन क्लिक न करें. इससे काम नहीं होता.
  5. पुष्टि करने वाला ईमेल मिलने के बाद, कोडलैब में अगले चरण पर जाया जा सकता है.

अपने GCP प्रोजेक्ट में Google Cloud Storage बकेट बनाएं

gsutil mb gs://$BUCKET_NAME

अपने GCP प्रोजेक्ट में सिंथेटिक डेटा को कॉपी करना

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

अनुमतियां दें

Cloud Storage से FHIR संसाधनों को इंपोर्ट करने और BigQuery में एक्सपोर्ट करने से पहले, आपको Cloud हेल्थकेयर सर्विस एजेंट सेवा खाते को अन्य अनुमतियां देनी होंगी. ज़्यादा जानकारी के लिए, FHIR store 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. एनवायरमेंट का सेटअप

Cloud Healthcare FHIR API का इस्तेमाल करके, BigQuery में NDJSON फ़ाइलों से हेल्थकेयर डेटासेट में डेटा डालने के लिए, यह तरीका अपनाएं:

हेल्थकेयर डेटासेट और एफ़एचआईआर स्टोर बनाएं

Cloud Healthcare API का इस्तेमाल करके हेल्थकेयर डेटासेट बनाएं

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

Cloud Healthcare API का इस्तेमाल करके, डेटासेट में FHIR स्टोर बनाएं

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 बकेट से, पहले से लोड की गई फ़ाइलों का इस्तेमाल करेंगे. इन फ़ाइलों में, 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

5. FHIR Store से BigQuery में डेटा एक्सपोर्ट करना

BigQuery डेटासेट बनाना

bq mk --location=us --dataset $PROJECT_ID:$BQ_DATASET

हेल्थकेयर डेटा को एफ़एचआईआर स्टोर से 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 पर बनाए गए संसाधनों को खाली किया जा सकता है. ऐसा करने से, वे आपका कोटा इस्तेमाल नहीं करेंगे और आने वाले समय में आपसे उनका बिल नहीं लिया जाएगा. इन संसाधनों को मिटाने या बंद करने का तरीका नीचे सेक्शन में बताया गया है.

प्रोजेक्ट मिटाना

बिलिंग हटाने का सबसे आसान तरीका, ट्यूटोरियल के लिए बनाए गए प्रोजेक्ट को मिटाना है.

प्रोजेक्ट मिटाने के लिए:

  1. GCP कंसोल में, प्रोजेक्ट पेज पर जाएं. प्रोजेक्ट पेज पर जाएं
  2. प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे आपको मिटाना है. इसके बाद, मिटाएं पर क्लिक करें.
  3. डायलॉग बॉक्स में, प्रोजेक्ट आईडी टाइप करें. इसके बाद, प्रोजेक्ट मिटाने के लिए, शट डाउन करें पर क्लिक करें.

अगर आपको प्रोजेक्ट जारी रखना है, तो यहां दिए गए निर्देशों का पालन करके, क्लाउड हेल्थकेयर डेटासेट और BigQuery डेटासेट को मिटाएं.

Cloud Healthcare API डेटासेट मिटाना

GCP कंसोल और gcloud सीएलआई, दोनों का इस्तेमाल करके हेल्थकेयर एपीआई डेटासेट मिटाने के लिए, यह तरीका अपनाएं.

क्विक सीएलआई निर्देश:

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

BigQuery डेटासेट मिटाना

अलग-अलग इंटरफ़ेस का इस्तेमाल करके, BigQuery डेटासेट को मिटाने के लिए, यह तरीका अपनाएं.

क्विक सीएलआई निर्देश:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. बधाई हो

बधाई हो, आपने Cloud Healthcare API का इस्तेमाल करके, BigQuery में स्वास्थ्य सेवा का डेटा डालने के लिए कोड लैब पूरा कर लिया है.

आपने FHIR R4 के साथ काम करने वाला सिंथेटिक डेटा, Google Cloud Storage से Cloud Healthcare FHIR API में इंपोर्ट किया है.

आपने Cloud Healthcare FHIR API से BigQuery में डेटा एक्सपोर्ट किया है.

अब आपको Google Cloud Platform पर, BigQuery के साथ स्वास्थ्य सेवा के डेटा के आंकड़ों को समझने में मदद करने वाले अहम चरणों के बारे में पता है.