OHS এবং Google ক্লাউড দিয়ে Android অ্যাপ থেকে FHIR ডেটা পরিচালনা করুন

1। পরিচিতি

এই কোডল্যাবে, আমরা শিখব কিভাবে OHS (ওপেন হেলথ স্ট্যাক) এবং Google ক্লাউড হেলথকেয়ার এপিআই ব্যবহার করে উদ্ভাবনী স্বাস্থ্যসেবা সমাধান তৈরি করতে হয় যা সুরক্ষিত, মাপযোগ্য এবং সঙ্গতিপূর্ণ। এই শক্তিশালী সরঞ্জামগুলির সংমিশ্রণ স্বাস্থ্যসেবা কর্মীদের এবং বিকাশকারীদের ডেটা-চালিত সমাধান তৈরি করার ক্ষমতা প্রদান করে যা রোগীর যত্ন এবং ফলাফলগুলিকে উল্লেখযোগ্যভাবে উন্নত করতে পারে।

আমরা একটি মোবাইল অ্যাপে ওপেন হেলথ স্ট্যাক এবং Google ক্লাউড হেলথকেয়ার API-এর শক্তিকে কাজে লাগাতে চাই যা ব্যবহারকারীদের Google ক্লাউডে FHIR রোগীর রেকর্ড পরিচালনা করতে সক্ষম করতে Android-FHIR SDK ব্যবহার করে।

এর বাস্তবায়ন ধাপে ডুব দেওয়া যাক.

আপনি কি নির্মাণ করবেন

এই বাস্তবায়নে,

  • আমরা একটি প্রশ্নাবলী রেন্ডার করতে স্ট্রাকচার্ড ডেটা ক্যাপচার লাইব্রেরি এবং প্রতিক্রিয়ার FHIR বিষয়বস্তু সংরক্ষণ করতে FHIR ইঞ্জিন লাইব্রেরি ব্যবহার করব
  • তারপরে ক্লাউড হেলথকেয়ার API ব্যবহার করে ডেটা ক্লাউড এফএইচআইআর স্টোরে আপলোড করা হবে
  • আপলোড করার আগে আমরা প্রথমে Firebase ব্যবহার করে নিজেদেরকে প্রমাণীকরণ করব

8514f90f016ecfc0.png

উপরের চিত্রটি প্রবাহের প্রতিনিধিত্ব করে। প্রতিটি উপাদানের বিস্তারিত ব্যাখ্যার জন্য ব্লগটি পড়ুন।

2. প্রয়োজনীয়তা

  • একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
  • বিলিং সক্ষম সহ একটি Google ক্লাউড প্রকল্প৷
  • অ্যান্ড্রয়েড স্টুডিওর একটি সাম্প্রতিক সংস্করণ
  • একটি অ্যান্ড্রয়েড এমুলেটর সেট আপ (আপনি আপনার শারীরিক অ্যান্ড্রয়েড ডিভাইসটিও ব্যবহার করতে পারেন)

আপনার প্রকল্প তৈরি করুন

  1. Google ক্লাউড কনসোলে , প্রকল্প নির্বাচক পৃষ্ঠায়, একটি Google ক্লাউড প্রকল্প নির্বাচন করুন বা তৈরি করুন।
  2. নিশ্চিত করুন যে আপনার ক্লাউড প্রকল্পের জন্য বিলিং সক্ষম করা আছে৷ একটি প্রকল্পে বিলিং সক্ষম কিনা তা পরীক্ষা করতে শিখুন।
  3. প্রয়োজনীয় APIগুলি সক্ষম করুন (BigQuery, Healthcare API)

ক্লাউড শেল সক্রিয় করুন

  1. আপনি ক্লাউড শেল ব্যবহার করবেন, Google ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ যা bq এর সাথে প্রি-লোড করা হয়:

ক্লাউড কনসোল থেকে, উপরের ডানদিকে কোণায় ক্লাউড শেল সক্রিয় করুন ক্লিক করুন:

51622c00acec2fa.png

  1. একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণ করেছেন এবং প্রকল্পটি ইতিমধ্যেই আপনার প্রকল্প আইডিতে সেট করা আছে, যদি আপনার প্রকল্পটি সেট করা না থাকে তবে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>

জিক্লাউড কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন পড়ুন।

3. স্বাস্থ্যসেবা API সেটআপ

  1. নিশ্চিত করুন যে হেলথকেয়ার API সক্রিয় আছে: Google ক্লাউড কনসোল API লাইব্রেরিতে যান, Healthcare API অনুসন্ধান করুন, ENABLE এ ক্লিক করুন এবং এটি API হবে এবং প্রকল্পে স্বাস্থ্যসেবা পরিষেবা অ্যাকাউন্ট যোগ করবে
  2. পরিষেবা অ্যাকাউন্টে BigQuery প্রশাসকের অনুমতি দেওয়া অনুমতি দেওয়ার জন্য ক্লাউড শেল টার্মিনালে নীচের gcloud কমান্ডটি চালান:
gcloud projects add-iam-policy-binding <<YOUR_PROJECT_ID>> \
--member=serviceAccount:service-<<PROJECT_NUMBER>>@gcp-sa-healthcare.iam.gserviceaccount.com  --role=roles/bigquery.admin

দ্রষ্টব্য: আপনি কনসোল থেকে আপনার PROJECT_ID এবং PROJECT_NUMBER খুঁজে পেতে পারেন, সনাক্তকরণের জন্য নথি উল্লেখ করুন৷

স্বাস্থ্যসেবা ডেটাসেট তৈরি করুন

ক্লাউড শেলে, হেলথকেয়ার ডেটাসেট তৈরি করতে নীচের কমান্ডটি চালান:

gcloud beta healthcare datasets create <<DATASET_ID>> --location=us-central1

একটি অঞ্চলে অবস্থান সেট করুন।

FHIR ডেটাস্টোর তৈরি করুন

ক্লাউড শেলে, FHIR ডেটাস্টোর তৈরি করতে নীচের কমান্ডটি চালান:

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

একটি অঞ্চলে অবস্থান সেট করুন।

4. BigQuery সেটআপ এবং স্ট্রিমিং৷

এটি BigQuery ডেটাসেটে এফএইচআইআর স্টোর ডেটা সংরক্ষণ করে যাতে BigQuery এবং BQML-এর শক্তি ব্যবহার করে এটিকে জিজ্ঞাসা করা, প্রোগ্রাম করা এবং বিশ্লেষণ করা যায়।

BigQuery ডেটাসেট তৈরি করুন

একটি BigQuery ডেটাসেট হল টেবিলের একটি সংগ্রহ৷ একটি ডেটাসেটের সমস্ত টেবিল একই ডেটা অবস্থানে সংরক্ষণ করা হয়। আপনি একটি ডেটাসেট এবং এর টেবিলগুলিতে অ্যাক্সেস সীমিত করতে কাস্টম অ্যাক্সেস নিয়ন্ত্রণগুলিও সংযুক্ত করতে পারেন।

ক্লাউড শেলে, নীচের কমান্ডটি চালান:

bq mk --location=us-central1 --dataset <<PROJECT_ID>>:<<BQ_DATASET>>

একটি অঞ্চলে অবস্থান সেট করুন।

BigQuery স্ট্রিমিং তৈরি করুন

FHIR স্টোরে যখনই FHIR রিসোর্স তৈরি, আপডেট করা, প্যাচ করা বা মুছে ফেলা হয় তখনই BigQuery-এ রিসোর্স পরিবর্তন রপ্তানি করার জন্য স্ট্রিমিং প্রয়োজন। প্রতিটি দোকানে 10টি পর্যন্ত স্ট্রিমিং কনফিগার করার অনুমতি রয়েছে।

  1. গুগল ক্লাউড হেলথকেয়ার কনসোল, ব্রাউজার পৃষ্ঠাতে যান
  2. নতুন তৈরি ডেটাসেটে ক্লিক করুন
  3. নতুন তৈরি ডেটা স্টোরে ক্লিক করুন 7acaa364337086aa.png
  4. নতুন স্ট্রিমিং কনফিগারেশন যোগ করুন ক্লিক করুন

caa2cc881d3406aa.png

  1. তালিকা থেকে সদ্য তৈরি করা BigQuery ডেটাসেট নির্বাচন করুন, তালিকা থেকে "Analytics V2" হিসাবে স্কিমা টাইপ এবং রিসোর্স টাইপ "পেশেন্ট" নির্বাচন করুন (আপনি যত ধরনের রিসোর্স বেছে নিতে পারেন) এবং সম্পন্ন ক্লিক করুন

1e038c694fcca1ef.png

এটাই। আপনি FHIR স্টোর ডেটা সংরক্ষণ করতে এবং এটি BigQuery-এ স্ট্রিম করতে প্রস্তুত৷

5. ক্লাউড ফাংশন (হেলথকেয়ার API ব্যবহার করে FHIR ডেটাস্টোরে R4 ডেটা লিখুন)

ক্লাউড ফাংশন আপনাকে সুবিধামত আপনার কোড লিখতে এবং সার্ভারহীন পদ্ধতিতে ক্লাউডে স্থাপন করতে দেয়। এটি স্কেলযোগ্য, পে-যেমন-ইউ-গো, ইভেন্ট-চালিত এবং প্রযুক্তি এবং ভাষা সমর্থনের ক্ষেত্রে উন্মুক্ত। আরো বৈশিষ্ট্যের জন্য ডকুমেন্টেশন পড়ুন.

আমরা যে ফাংশনটি লিখব তা ক্লাউড হেলথকেয়ার API ব্যবহার করে FHIR ডেটা স্টোরে FHIR R4 ফর্ম্যাটে আসা ডেটা প্রমাণীকরণ এবং লিখতে চায়। ক্লাউড ফাংশন তৈরি করতে:

  1. ক্লাউড ফাংশনে যান এবং ফাংশন তৈরি করুন ক্লিক করুন
  2. নাম সেট করুন fhir-datastore-proxy, অঞ্চলটি us-central1 এবং প্রমাণীকরণ বিকল্পটি "প্রমাণকরণের প্রয়োজন" এ
  3. রানটাইম, বিল্ড, সংযোগ এবং নিরাপত্তা সেটিংস প্রসারিত করুন। আপনি পাঁচটি রানটাইম এনভায়রনমেন্ট ভেরিয়েবল যোগ করবেন:

নাম: CLOUD_FUNCTIONS_ENDPOINT | মান: ফাংশনের ইউআরএল এন্ডপয়েন্ট আপনি উপরের প্রমাণীকরণ ব্লকে এটি দেখতে পাবেন এবং এই ফর্মটি হবে: https://us-central1-PROJECT_ID.cloudfunctions.net/fhir-datastore-proxy

নাম: PROJECT_ID | মান: আপনার প্রকল্প আইডি

নাম: DATASET_LOCATION | মান: আপনার FHIR ডেটাস্টোরের অবস্থান

নাম: DATASET_ID | মান: স্বাস্থ্যসেবা ডেটাস্টোর আইডি

নাম: FHIR_STORE_ID | মান: FHIR স্টোর আইডি

  1. পরবর্তী পৃষ্ঠায় যেতে Next চাপুন, যেখানে আমরা আমাদের কোড যোগ করব
  2. একটি ইনলাইন সম্পাদক এখন প্রদর্শিত হবে, ভাষা হিসাবে Java 17 নির্বাচন করুন এবং HelloHttpFunction.java ক্লাসে যান। FhirDatastoreProxy.java এর নাম পরিবর্তন করুন। এন্ট্রি পয়েন্টের নাম পরিবর্তন করে gcfv2.FhirDatastoreProxy করতে ভুলবেন না
  3. রেপো থেকে কোডটি কপি করুন এবং ইনলাইন এডিটরে পেস্ট করুন
  4. pom.xml ফাইলে যান এবং রেপোতে থাকা pom ফাইলটিকে ইনলাইন এডিটরে কপি করুন
  5. DEPLOY-এ ক্লিক করুন, এবং আপনার ফাংশন তৈরি হবে এবং শীঘ্রই চালানো হবে

বিঃদ্রঃ:

  1. এই ফাংশনে ব্যবহৃত ক্লাউড হেলথকেয়ার এপিআই হেলথকেয়ার এপিআই-তে আসা অনুরোধগুলিকে প্রমাণীকরণ করতে অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র ব্যবহার করে
  2. অ্যান্ড্রয়েড অ্যাপ্লিকেশান থেকে শুরু করতে সক্ষম হওয়ার জন্য নিয়োজিত ফাংশন URL সংরক্ষণ করুন এখন পর্যন্ত আমরা স্বতন্ত্রভাবে Healthcare API ব্যবহার করে BigQuery-এ FHIR ডেটা লেখার জন্য Android অ্যাপের জন্য প্রয়োজনীয় সমস্ত অংশ তৈরি করেছি৷ এখন নিশ্চিত করা যাক যে সমস্ত টুকরা সংযুক্ত আছে এবং একটি প্রশ্নাবলী জমা দেওয়ার সময় এপিআই আহ্বান করা হয়েছে।

6. অ্যান্ড্রয়েড প্রজেক্ট এবং ফায়ারবেস সেটআপ

আমরা অ্যান্ড্রয়েড স্টুডিওর একটি সাম্প্রতিক সংস্করণ এবং একটি অ্যান্ড্রয়েড এমুলেটর সেট আপ ব্যবহার করব (আপনি আপনার শারীরিক অ্যান্ড্রয়েড ডিভাইসও ব্যবহার করতে পারেন)। এটি প্রস্তুত হয়ে গেলে নীচের পদক্ষেপগুলি অনুসরণ করুন:

  1. FHIR অ্যাপের উদাহরণ রেপো ক্লোন করুন: https://github.com/google/fhir-app-examples
  2. Android Studio খুলুন, Import Project (Gradle, Eclipse ADT, ইত্যাদি) নির্বাচন করুন এবং আপনার আগে ডাউনলোড করা সোর্স কোড থেকে Cloudfunction/ ফোল্ডারটি বেছে নিন। app/google-services.json খুলুন। এটা খালি এবং পূরণ করা প্রয়োজন.

./gradlew signingReport ব্যবহার করে একটি SHA-1 কী তৈরি করুন এবং ডিবাগ ভেরিয়েন্টের অধীনে SHA1 ক্ষেত্রটি নোট করুন

Firebase কনসোল ব্যবহার করে Firebase-এ অ্যাপটি যোগ করুন (ফায়ারবেস কনসোল ব্যবহার করে ধাপ 1 এবং 2 অনুসরণ করুন)। "ডিবাগ সাইনিং সার্টিফিকেট SHA-1" ক্ষেত্রে, পূর্ববর্তী ধাপ থেকে মানটি পূরণ করুন

google-services.json ডাউনলোড করুন এবং অ্যাপ ফোল্ডারের খালি ফাইলে Firebase থেকে সামগ্রী প্রতিস্থাপন করুন

Firebase SDK ইতিমধ্যেই বিল্ড গ্রেডল ফাইলগুলিতে যোগ করা হয়েছে

  1. FhirApplication.kt খুলুন এবং আপনার ক্লাউড ফাংশনের URL-এ baseUrl ক্ষেত্র সেট করুন
  2. অ্যান্ড্রয়েড স্টুডিও টুলবার থেকে "গ্রেডল ফাইলগুলির সাথে আপনার প্রকল্প সিঙ্ক করুন" নির্বাচন করুন৷

আমরা এখন বাস্তবায়নের সেট আপ এবং নির্ভরতা অন্তর্ভুক্তির অংশটি সম্পূর্ণ করেছি।

7. প্রশ্নাবলী সেটআপ এবং প্রতিক্রিয়া

আমরা ইতিমধ্যে রেপোতে প্রশ্নাবলী সেটআপের সাথে সেট আপ করেছি। তবে আসুন কোডটি নিয়ে যাই:

  1. নিশ্চিত করুন যে FragmentContainerView অ্যাপ/src/main/res/layout/activity_main.xml ফাইলে ConstraintLayout-এর ভিতরে উপস্থিত রয়েছে
  2. খণ্ডটি রেন্ডার করার জন্য প্রশ্নাবলীর ফ্র্যাগমেন্টে একটি JSON এনকোডেড FHIR প্রশ্নাবলী রয়েছে তা নিশ্চিত করুন

এই ক্ষেত্রে আমরা json - " new-patient-registration-paginated.json " ব্যবহার করব খণ্ডটি রেন্ডার করতে। MainActivity.kt , AddPatientFragment.kt এবং AddPatientViewModel.kt ফাইলগুলি পরীক্ষা করুন

এখন যেহেতু আমরা খণ্ড, json এবং মডেল যাচাই করেছি, এগিয়ে যান এবং অ্যাপটি চালান এবং প্রশ্নাবলীর ক্ষেত্রের জন্য উত্তরগুলি প্রবেশ করার চেষ্টা করুন

আপনি স্ট্রিং, তারিখ, সংখ্যাসূচক ক্ষেত্র এবং অন্যান্য শর্তগুলির বৈধতা লক্ষ্য করবেন

আপনি অ্যাপটি চালাতে পারেন এবং আপনার তৈরি রেকর্ড দেখতে লগ চেক করতে পারেন

9e1bb440074f1a88.png

আপনি এখানে টুকরা ব্যবহার সম্পর্কে আরও জানতে পারেন। প্রশ্নাবলীর খণ্ড এবং প্রতিক্রিয়া সেটআপের জন্য এটি মোটামুটি।

8. FHIRStore এবং BigQuery ডেটাসেট ফলাফল প্রদর্শন

এখন আমরা সব সেটআপ এবং আপডেটের সাথে প্রস্তুত, "Gradle ফাইলের সাথে প্রকল্প সিঙ্ক করুন" এ ক্লিক করুন। একবার সম্পূর্ণ,

  1. অ্যান্ড্রয়েড এমুলেটরে অ্যাপটি চালান এবং আপনার প্রশ্নাবলীর লোড দেখুন
  2. প্রশ্নের উত্তর দিন এবং উপরে জমা দিন ক্লিক করুন
  3. আপনি অ্যাপে "রোগীকে সংরক্ষিত হয়েছে" বার্তাটি দেখতে হবে

FHIR স্টোরের ফলাফল দেখুন

Google Cloud Healthcare FHIRViewer কনসোলে নেভিগেট করুন

1064f03b4e1e45f5.png

আপনার FHIR স্টোর, ক্যোয়ারী নির্বাচন করুন এবং RUN SEARCH টিপুন এবং আপনি নীচের অনুসন্ধানের ফলাফল দেখতে পাবেন। 37a070480a06362c.png

BigQuery ডেটাসেট ফলাফল দেখুন

Google Cloud BigQuery কনসোলে নেভিগেট করুন এবং এক্সপ্লোরার প্যানে, এই প্রকল্পের জন্য আপনার তৈরি করা ডেটাসেটে যান।

7c483ec6d578b8cd.png

প্রিভিউ-এ ক্লিক করুন এবং BigQuery ডেটাসেটে হেল্থকেয়ার FHIR স্টোরে আপনি একই নম্বর এবং ফলাফলের ডেটা দেখতে পাবেন।

faafeae4a837a41c.png

আপনি এখন এইমাত্র ক্লাউড ডেটাসেটে সংরক্ষিত FHIR ডেটাতে BigQuery SQL, Analytics এবং ML সম্পাদন করতে পারেন৷

9. অনুসন্ধান এবং অফলাইন ক্ষমতা

OHS চালিত Android FHIR SDK অ্যাপে অফলাইন সক্ষমতা নিশ্চিত করতে, আমরা এখানে আলোচনা করা বাস্তবায়নের ক্ষেত্রে যে ডিজাইন নির্দেশিকাটি সক্ষম করতে হবে তা অনুসরণ করতে ভুলবেন না।

FHIR সম্পদ অনুসন্ধানের জন্য, আমাদের দুটি উপায় আছে:

  1. Google ক্লাউড কনসোলে FHIR ভিউয়ার
  2. GET বা POST অনুরোধ ব্যবহার করে FHIR অনুসন্ধান পদ্ধতি

10. অ্যাপ ডেমো

এখন যেহেতু আমাদের অ্যাপটি তৈরি হয়েছে, আসুন এটির সাথে খেলুন এবং ক্লাউডে ফলাফলটি দেখুন।

11. পরিষ্কার করুন

এই পোস্টে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Google ক্লাউড কনসোলে, সম্পদ পরিচালনা পৃষ্ঠাতে যান
  2. প্রকল্প তালিকায়, আপনি যে প্রকল্পটি মুছতে চান সেটি নির্বাচন করুন এবং তারপরে মুছুন ক্লিক করুন
  3. ডায়ালগে, প্রজেক্ট আইডি টাইপ করুন এবং তারপরে প্রোজেক্ট মুছে ফেলতে শাট ডাউন ক্লিক করুন

12. অভিনন্দন

অভিনন্দন! এই প্রকল্পে, আমরা সফলভাবে ক্লাউড হেলথকেয়ার API ব্যবহার করে ক্লাউড হেলথকেয়ার এপিআই ব্যবহার করে ক্লাউড হেলথকেয়ার এফএইচআইআর স্টোর এবং বিগকুয়েরি ডেটাসেটে রোগীর এফএইচআইআর ডেটা সঞ্চয় এবং অনুসন্ধান করার জন্য একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি করেছি:

  1. অ্যান্ড্রয়েড অ্যাপ সেটআপ করুন
  2. Google Cloud Healthcare API সেট আপ করুন
  3. স্বাস্থ্যসেবা ডেটাসেট এবং এফএইচআইআর ডেটাস্টোর তৈরি করা হয়েছে
  4. BigQuery ডেটাসেট তৈরি করা হয়েছে
  5. BigQuery ডেটাসেটে FHIR ডেটাস্টোর ডেটা লিখতে একটি BigQuery স্ট্রিম কনফিগার করা হয়েছে
  6. FHIR ডেটাস্টোরে R4 ডেটা লিখতে একটি ক্লাউড ফাংশন স্থাপন করা হয়েছে
  7. প্রশ্নাবলীর উত্তর জমা দেওয়ার সময় Android অ্যাপ থেকে ক্লাউড ফাংশনগুলি ট্রিগার করা হয়েছে৷

এখন যেহেতু পদক্ষেপগুলি পরিষ্কার, রোগীর FHIR সম্পাদনা সিঙ্কের সাথে ক্লাউডের জন্য একই পদক্ষেপগুলি নির্দ্বিধায় চেষ্টা করুন৷