FHIR ইঞ্জিন লাইব্রেরি ব্যবহার করে FHIR সংস্থান পরিচালনা করুন

১. শুরু করার আগে

আপনি যা তৈরি করবেন

এই কোডল্যাবে, আপনি FHIR ইঞ্জিন লাইব্রেরি ব্যবহার করে একটি অ্যান্ড্রয়েড অ্যাপ তৈরি করবেন। আপনার অ্যাপটি FHIR ইঞ্জিন লাইব্রেরি ব্যবহার করে একটি FHIR সার্ভার থেকে FHIR রিসোর্স ডাউনলোড করবে এবং যেকোনো স্থানীয় পরিবর্তন সার্ভারে আপলোড করবে।

আপনি যা শিখবেন

  • ডকার ব্যবহার করে কীভাবে একটি স্থানীয় HAPI FHIR সার্ভার তৈরি করবেন
  • আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনে FHIR ইঞ্জিন লাইব্রেরি কীভাবে একীভূত করবেন
  • FHIR রিসোর্স ডাউনলোড এবং আপলোড করার জন্য এককালীন বা পর্যায়ক্রমিক জব সেট আপ করতে কীভাবে Sync API ব্যবহার করবেন
  • সার্চ এপিআই কীভাবে ব্যবহার করবেন
  • ডেটা অ্যাক্সেস এপিআই ব্যবহার করে স্থানীয়ভাবে FHIR রিসোর্স তৈরি, পড়া, আপডেট এবং ডিলিট করার পদ্ধতি

আপনার যা যা লাগবে

আপনি যদি আগে অ্যান্ড্রয়েড অ্যাপ তৈরি না করে থাকেন, তাহলে আপনার প্রথম অ্যাপটি তৈরি করার মাধ্যমে শুরু করতে পারেন।

২. পরীক্ষার ডেটা দিয়ে একটি স্থানীয় HAPI FHIR সার্ভার সেট আপ করুন।

HAPI FHIR একটি জনপ্রিয় ওপেন সোর্স FHIR সার্ভার। অ্যান্ড্রয়েড অ্যাপটি সংযোগ করার জন্য আমরা আমাদের কোডল্যাবে একটি স্থানীয় HAPI FHIR সার্ভার ব্যবহার করি।

স্থানীয় HAPI FHIR সার্ভার সেট আপ করুন

  1. HAPI FHIR-এর সর্বশেষ ইমেজ পেতে টার্মিনালে নিম্নলিখিত কমান্ডটি চালান।
    docker pull hapiproject/hapi:latest
    
  2. ডকার ডেস্কটপ ব্যবহার করে পূর্বে ডাউনলোড করা hapiproject/hapi ইমেজটি রান করে, অথবা নিম্নলিখিত কমান্ডটি চালিয়ে একটি HAPI FHIR কন্টেইনার তৈরি করুন।
    docker run -p 8080:8080 hapiproject/hapi:latest
    
    আরও জানুন।
  3. ব্রাউজারে http://localhost:8080/ ইউআরএলটি খুলে সার্ভারটি পরীক্ষা করুন। আপনি HAPI FHIR ওয়েব ইন্টারফেসটি দেখতে পাবেন। HAPI FHIR web interface

স্থানীয় HAPI FHIR সার্ভারটি পরীক্ষার ডেটা দিয়ে পূরণ করুন।

আমাদের অ্যাপ্লিকেশনটি পরীক্ষা করার জন্য সার্ভারে কিছু টেস্ট ডেটা প্রয়োজন হবে। আমরা সিন্থিয়া দ্বারা তৈরি সিন্থেটিক ডেটা ব্যবহার করব।

  1. প্রথমে, আমাদের synthea-samples থেকে নমুনা ডেটা ডাউনলোড করতে হবে। synthea_sample_data_fhir_r4_sep2019.zip ফাইলটি ডাউনলোড এবং এক্সট্র্যাক্ট করুন। আনজিপ করা নমুনা ডেটাতে অসংখ্য .json ফাইল রয়েছে, যার প্রতিটি একজন নির্দিষ্ট রোগীর জন্য একটি ট্রানজ্যাকশন বান্ডেল।
  2. আমরা তিনজন রোগীর পরীক্ষার ডেটা স্থানীয় HAPI FHIR সার্ভারে আপলোড করব। JSON ফাইলগুলো থাকা ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি চালান।
    curl -X POST -H "Content-Type: application/json" -d @./Aaron697_Brekke496_2fa15bc7-8866-461a-9000-f739e425860a.json http://localhost:8080/fhir/
    curl -X POST -H "Content-Type: application/json" -d @./Aaron697_Stiedemann542_41166989-975d-4d17-b9de-17f94cb3eec1.json http://localhost:8080/fhir/
    curl -X POST -H "Content-Type: application/json" -d @./Abby752_Kuvalis369_2b083021-e93f-4991-bf49-fd4f20060ef8.json http://localhost:8080/fhir/
    
  3. সকল রোগীর পরীক্ষার ডেটা সার্ভারে আপলোড করতে, চালান
    for f in *.json; do curl -X POST -H "Content-Type: application/json" -d @$f http://localhost:8080/fhir/ ; done
    
    তবে, এটি সম্পন্ন করতে অনেক সময় লাগতে পারে এবং কোডল্যাবের জন্য এটি প্রয়োজনীয় নয়।
  4. ব্রাউজারে http://localhost:8080/fhir/Patient/ ইউআরএলটি খুলে যাচাই করুন যে পরীক্ষার ডেটা সার্ভারে উপলব্ধ আছে কিনা। আপনি সার্চ রেজাল্ট হিসেবে HTTP 200 OK লেখাটি এবং FHIR বান্ডেলে থাকা রোগীর ডেটা সম্বলিত পেজটির Response Body অংশটি total সংখ্যাসহ দেখতে পাবেন। সার্ভারে পরীক্ষার ডেটা

৩. অ্যান্ড্রয়েড অ্যাপটি সেট আপ করুন

কোডটি ডাউনলোড করুন

এই কোডল্যাবের কোড ডাউনলোড করতে, অ্যান্ড্রয়েড FHIR SDK রিপোজিটরিটি ক্লোন করুন: git clone https://github.com/ohs-foundation/android-fhir.git

এই কোডল্যাবের স্টার্টার প্রজেক্টটি codelabs/engine এ অবস্থিত।

অ্যান্ড্রয়েড স্টুডিওতে অ্যাপটি ইম্পোর্ট করুন

আমরা অ্যান্ড্রয়েড স্টুডিওতে স্টার্টার অ্যাপটি ইম্পোর্ট করার মাধ্যমে শুরু করি।

অ্যান্ড্রয়েড স্টুডিও খুলুন, 'Import Project (Gradle, Eclipse ADT, etc.)' নির্বাচন করুন এবং আপনার পূর্বে ডাউনলোড করা সোর্স কোড থেকে codelabs/engine/ ফোল্ডারটি বেছে নিন।

Android Studio start screen

আপনার প্রজেক্টটি গ্রেডল ফাইলের সাথে সিঙ্ক করুন।

আপনার সুবিধার জন্য, প্রজেক্টে FHIR ইঞ্জিন লাইব্রেরির ডিপেন্ডেন্সিগুলো ইতিমধ্যেই যোগ করা হয়েছে। এর ফলে আপনি আপনার অ্যাপে FHIR ইঞ্জিন লাইব্রেরিটি ইন্টিগ্রেট করতে পারবেন। আপনার প্রজেক্টের app/build.gradle.kts ফাইলের নিচের লাইনগুলো শেষ পর্যন্ত লক্ষ্য করুন:

dependencies {
    // ...

    implementation("com.google.android.fhir:engine:1.1.0")
}

আপনার অ্যাপে সমস্ত ডিপেন্ডেন্সি উপলব্ধ আছে কিনা তা নিশ্চিত করতে, এই পর্যায়ে আপনার প্রজেক্টটিকে গ্রেডল ফাইলের সাথে সিঙ্ক করা উচিত।

গ্রেডল ফাইলের সাথে প্রজেক্ট সিঙ্ক করুন নির্বাচন করুন ( Gradle sync button অ্যান্ড্রয়েড স্টুডিও টুলবার থেকে। ডিপেন্ডেন্সিগুলো সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করার জন্য আপনি অ্যাপটি আবার রানও করতে পারেন।

স্টার্টার অ্যাপটি চালান

এখন যেহেতু আপনি অ্যান্ড্রয়েড স্টুডিওতে প্রজেক্টটি ইম্পোর্ট করেছেন, আপনি প্রথমবারের মতো অ্যাপটি চালানোর জন্য প্রস্তুত।

অ্যান্ড্রয়েড স্টুডিও এমুলেটরটি চালু করুন এবং রান-এ ক্লিক করুন ( Run button অ্যান্ড্রয়েড স্টুডিও টুলবারে।

হ্যালো ওয়ার্ল্ড অ্যাপ

৪. FHIR ইঞ্জিন ইনস্ট্যান্স তৈরি করুন

আপনার অ্যান্ড্রয়েড অ্যাপে FHIR ইঞ্জিন অন্তর্ভুক্ত করতে, আপনাকে FHIR ইঞ্জিন লাইব্রেরি ব্যবহার করতে হবে এবং FHIR ইঞ্জিনের একটি ইনস্ট্যান্স চালু করতে হবে। নিচে বর্ণিত ধাপগুলো আপনাকে এই প্রক্রিয়াটি সম্পন্ন করতে সাহায্য করবে।

  1. আপনার Application ক্লাসে যান, যেটি এই উদাহরণে FhirApplication.kt এবং যা app/src/main/java/com/google/android/fhir/codelabs/engine এ অবস্থিত।
  2. FHIR ইঞ্জিন ইনিশিয়ালাইজ করার জন্য onCreate() মেথডের ভিতরে নিম্নলিখিত কোডটি যোগ করুন:
      FhirEngineProvider.init(
          FhirEngineConfiguration(
            enableEncryptionIfSupported = true,
            RECREATE_AT_OPEN,
            ServerConfiguration(
              baseUrl = "http://10.0.2.2:8080/fhir/",
              httpLogger =
                HttpLogger(
                  HttpLogger.Configuration(
                    if (BuildConfig.DEBUG) HttpLogger.Level.BODY else HttpLogger.Level.BASIC,
                  ),
                ) {
                  Log.d("App-HttpLog", it)
                },
            ),
          ),
      )
    
    নোট:
    • enableEncryptionIfSupported : ডিভাইসটি সমর্থন করলে ডেটা এনক্রিপশন সক্ষম করে।
    • RECREATE_AT_OPEN : ডাটাবেসের ত্রুটি মোকাবিলার কৌশল নির্ধারণ করে। এক্ষেত্রে, খোলার সময় কোনো ত্রুটি ঘটলে এটি ডাটাবেসটি পুনরায় তৈরি করে।
    • ServerConfigurationbaseUrl : এটি হলো FHIR সার্ভারের বেস ইউআরএল। প্রদত্ত আইপি অ্যাড্রেস 10.0.2.2 বিশেষভাবে লোকালহোস্টের জন্য সংরক্ষিত, যা অ্যান্ড্রয়েড এমুলেটর থেকে অ্যাক্সেসযোগ্য। আরও জানুন।
  3. FhirApplication ক্লাসে, FHIR ইঞ্জিনকে লেজিলি ইনস্ট্যানশিয়েট করার জন্য নিম্নলিখিত লাইনটি যোগ করুন:
      private val fhirEngine: FhirEngine by
          lazy { FhirEngineProvider.getInstance(this) }
    
    এটি নিশ্চিত করে যে FhirEngine ইনস্ট্যান্সটি শুধুমাত্র প্রথমবার অ্যাক্সেস করার সময়ই তৈরি হয়, অ্যাপটি চালু হওয়ার সাথে সাথেই নয়।
  4. আপনার অ্যাপ্লিকেশন জুড়ে সহজে ব্যবহারের জন্য FhirApplication ক্লাসে নিম্নলিখিত সুবিধাজনক মেথডটি যোগ করুন:
    companion object {
        fun fhirEngine(context: Context) =
            (context.applicationContext as FhirApplication).fhirEngine
    }
    
    এই স্ট্যাটিক মেথডটি আপনাকে কন্টেক্সট ব্যবহার করে অ্যাপের যেকোনো স্থান থেকে FHIR Engine ইনস্ট্যান্সটি পুনরুদ্ধার করতে দেয়।

৫. FHIR সার্ভারের সাথে ডেটা সিঙ্ক করুন

  1. DownloadWorkManagerImpl.kt নামে একটি নতুন ক্লাস তৈরি করুন। এই ক্লাসে, অ্যাপ্লিকেশনটি কীভাবে ডাউনলোডের জন্য তালিকা থেকে পরবর্তী রিসোর্সটি খুঁজে বের করবে, তা আপনি নির্ধারণ করবেন।
      class DownloadWorkManagerImpl : DownloadWorkManager {
        private val urls = LinkedList(listOf("Patient"))
    
        override suspend fun getNextRequest(): DownloadRequest? {
          val url = urls.poll() ?: return null
          return DownloadRequest.of(url)
        }
    
        override suspend fun getSummaryRequestUrls() = mapOf<ResourceType, String>()
    
        override suspend fun processResponse(response: Resource): Collection<Resource> {
          var bundleCollection: Collection<Resource> = mutableListOf()
          if (response is Bundle && response.type == Bundle.BundleType.SEARCHSET) {
            bundleCollection = response.entry.map { it.resource }
          }
          return bundleCollection
        }
      }
    
    এই ক্লাসে ডাউনলোড করার জন্য বিভিন্ন ধরনের রিসোর্সের একটি কিউ রয়েছে। এটি রেসপন্সগুলো প্রসেস করে এবং ফেরত আসা বান্ডেল থেকে রিসোর্সগুলো এক্সট্র্যাক্ট করে, যেগুলো লোকাল ডেটাবেসে সেভ করা হয়।
  2. AppFhirSyncWorker.kt একটি নতুন ক্লাস তৈরি করুন। এই ক্লাসটি নির্ধারণ করে যে, অ্যাপটি কীভাবে একটি ব্যাকগ্রাউন্ড ওয়ার্কার ব্যবহার করে রিমোট FHIR সার্ভারের সাথে সিঙ্ক করবে।
    class AppFhirSyncWorker(appContext: Context, workerParams: WorkerParameters) :
      FhirSyncWorker(appContext, workerParams) {
    
      override fun getDownloadWorkManager() = DownloadWorkManagerImpl()
    
      override fun getConflictResolver() = AcceptLocalConflictResolver
    
      override fun getFhirEngine() = FhirApplication.fhirEngine(applicationContext)
    
      override fun getUploadStrategy() =
        UploadStrategy.forBundleRequest(
          methodForCreate = HttpCreateMethod.PUT,
          methodForUpdate = HttpUpdateMethod.PATCH,
          squash = true,
          bundleSize = 500,
        )
    }
    
    এখানে আমরা নির্ধারণ করেছি যে সিঙ্কিংয়ের জন্য কোন ডাউনলোড ম্যানেজার, কনফ্লিক্ট রিজলভার এবং FHIR ইঞ্জিন ইনস্ট্যান্স ব্যবহার করা হবে।
  3. আপনার ViewModel, PatientListViewModel.kt এ, আপনি একটি ওয়ান-টাইম সিঙ্ক মেকানিজম সেট আপ করবেন। triggerOneTimeSync() ফাংশনটিতে এই কোডটি খুঁজুন এবং যোগ করুন:
    viewModelScope.launch {
          Sync.oneTimeSync<AppFhirSyncWorker>(getApplication())
            .shareIn(this, SharingStarted.Eagerly, 10)
            .collect { _pollState.emit(it) }
        }
    
    এই কো-রুটিনটি আমাদের পূর্বে সংজ্ঞায়িত করা AppFhirSyncWorker ব্যবহার করে FHIR সার্ভারের সাথে একটি এককালীন সিঙ্ক শুরু করে। এরপর এটি সিঙ্ক প্রক্রিয়ার অবস্থার উপর ভিত্তি করে UI আপডেট করবে।
  4. PatientListFragment.kt ফাইলে, handleSyncJobStatus ফাংশনের বডি আপডেট করুন:
    when (syncJobStatus) {
        is SyncJobStatus.Finished -> {
            Toast.makeText(requireContext(), "Sync Finished", Toast.LENGTH_SHORT).show()
            viewModel.searchPatientsByName("")
        }
        else -> {}
    }
    
    এখানে, সিঙ্ক প্রক্রিয়াটি শেষ হলে, ব্যবহারকারীকে জানানোর জন্য একটি টোস্ট মেসেজ প্রদর্শিত হবে এবং এরপর অ্যাপটি একটি খালি নাম দিয়ে সার্চ করার মাধ্যমে সমস্ত রোগীদের প্রদর্শন করবে।

এখন সবকিছু সেট আপ করা হয়ে গেলে, আপনার অ্যাপটি চালান। মেনুতে থাকা Sync বোতামে ক্লিক করুন। সবকিছু ঠিকঠাক কাজ করলে, আপনি দেখবেন যে আপনার স্থানীয় FHIR সার্ভার থেকে রোগীদের তথ্য ডাউনলোড হয়ে অ্যাপ্লিকেশনটিতে প্রদর্শিত হচ্ছে।

রোগীর তালিকা

৬. রোগীর তথ্য পরিবর্তন ও আপলোড করুন

এই অংশে, আমরা আপনাকে নির্দিষ্ট মানদণ্ডের উপর ভিত্তি করে রোগীর ডেটা পরিবর্তন করার এবং সেই আপডেট করা ডেটা আপনার FHIR সার্ভারে আপলোড করার প্রক্রিয়াটি ধাপে ধাপে দেখাবো। বিশেষত, আমরা Wakefield এবং Taunton বসবাসকারী রোগীদের ঠিকানার শহরগুলো অদলবদল করব।

ধাপ ১ : PatientListViewModel-এ পরিবর্তনের লজিক সেট আপ করুন

এই অংশের কোডটি PatientListViewModel এর triggerUpdate ফাংশনে যোগ করা হয়।

  1. FHIR ইঞ্জিন অ্যাক্সেস করুন : প্রথমে PatientListViewModel.kt থেকে FHIR ইঞ্জিনের একটি রেফারেন্স সংগ্রহ করুন।
    viewModelScope.launch {
       val fhirEngine = FhirApplication.fhirEngine(getApplication())
    
    এই কোডটি ViewModel-এর স্কোপের মধ্যে একটি কো-রুটিন চালু করে এবং FHIR ইঞ্জিনটি ইনিশিয়ালাইজ করে।
  2. ওয়েকফিল্ড থেকে রোগী খুঁজুন : Wakefield ঠিকানার রোগীদের খুঁজতে FHIR ইঞ্জিন ব্যবহার করুন।
    val patientsFromWakefield =
         fhirEngine.search<Patient> {
           filter(
             Patient.ADDRESS_CITY,
             {
               modifier =  StringFilterModifier.MATCHES_EXACTLY
               value = "Wakefield"
             }
           )
         }
    
    এখানে, আমরা রোগীদের ঠিকানার শহরের ভিত্তিতে ফিল্টার করার জন্য FHIR ইঞ্জিনের search পদ্ধতি ব্যবহার করছি। এর ফলে ওয়েকফিল্ডের রোগীদের একটি তালিকা পাওয়া যাবে।
  3. টনটন থেকে রোগী খুঁজুন : একইভাবে, Taunton ঠিকানার শহর থেকে রোগী খুঁজুন।
    val patientsFromTaunton =
         fhirEngine.search<Patient> {
           filter(
             Patient.ADDRESS_CITY,
             {
               modifier =  StringFilterModifier.MATCHES_EXACTLY
               value = "Taunton"
             }
           )
         }
    
    এখন আমাদের কাছে রোগীদের দুটি তালিকা আছে - একটি ওয়েকফিল্ডের এবং অন্যটি টনটনের।
  4. রোগীর ঠিকানা পরিবর্তন করুন : patientsFromWakefield তালিকার প্রতিটি রোগীর কাছে যান, তাদের শহর পরিবর্তন করে Taunton করুন এবং FHIR ইঞ্জিনে তাদের তথ্য আপডেট করুন।
    patientsFromWakefield.forEach {
         it.resource.address.first().city = "Taunton"
         fhirEngine.update(it.resource)
    }
    
    একইভাবে, patientsFromTaunton তালিকার প্রতিটি রোগীর শহর পরিবর্তন করে Wakefield করে দিন।
    patientsFromTaunton.forEach {
         it.resource.address.first().city = "Wakefield"
         fhirEngine.update(it.resource)
    }
    
  5. সিঙ্ক্রোনাইজেশন শুরু করুন : স্থানীয়ভাবে ডেটা পরিবর্তন করার পর, FHIR সার্ভারে ডেটা আপডেট হয়েছে কিনা তা নিশ্চিত করতে একটি এককালীন সিঙ্ক চালু করুন।
    triggerOneTimeSync()
    }
    
    বন্ধনী } শুরুতে চালু করা কো-রুটিনটির সমাপ্তি নির্দেশ করে।

ধাপ ২ : কার্যকারিতা পরীক্ষা করুন

  1. UI টেস্টিং : আপনার অ্যাপটি চালান। মেনুতে থাকা Update বোতামে ক্লিক করুন। আপনি দেখবেন যে রোগী Aaron697 এবং Abby752 এর ঠিকানার শহরগুলো অদলবদল হয়ে গেছে।
  2. সার্ভার যাচাইকরণ : একটি ব্রাউজার খুলুন এবং http://localhost:8080/fhir/Patient/ -এ যান। যাচাই করুন যে স্থানীয় FHIR সার্ভারে রোগী Aaron697 এবং Abby752 এর ঠিকানা (শহর) আপডেট করা হয়েছে।

এই ধাপগুলো অনুসরণ করার মাধ্যমে, আপনি রোগীর ডেটা পরিবর্তন করার এবং আপনার FHIR সার্ভারের সাথে পরিবর্তনগুলো সিঙ্ক্রোনাইজ করার একটি পদ্ধতি সফলভাবে প্রয়োগ করেছেন।

৭. নাম দিয়ে রোগী অনুসন্ধান করুন

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

ধাপ ১ : ফাংশন সিগনেচার আপডেট করুন

আপনার PatientListViewModel.kt ফাইলে যান এবং searchPatientsByName নামের ফাংশনটি খুঁজুন। আমরা এই ফাংশনটির ভেতরে কোড যোগ করব।

প্রদত্ত নাম কোয়েরির উপর ভিত্তি করে ফলাফল ফিল্টার করতে এবং UI আপডেটের জন্য ফলাফলগুলো প্রদর্শন করতে, নিম্নলিখিত শর্তাধীন কোড ব্লকটি অন্তর্ভুক্ত করুন:

    viewModelScope.launch {
      val fhirEngine = FhirApplication.fhirEngine(getApplication())
      if (nameQuery.isNotEmpty()) {
        val searchResult = fhirEngine.search<Patient> {
          filter(
            Patient.NAME,
            {
              modifier = StringFilterModifier.CONTAINS
              value = nameQuery
            },
          )
        }
        liveSearchedPatients.value  =  searchResult.map { it.resource }
      }
    }

এখানে, nameQuery খালি না থাকলে, সার্চ ফাংশনটি ফলাফল ফিল্টার করে শুধুমাত্র সেইসব রোগীদের অন্তর্ভুক্ত করবে যাদের নামে নির্দিষ্ট কোয়েরিটি রয়েছে।

ধাপ ২ : নতুন সার্চ কার্যকারিতা পরীক্ষা করুন

  1. অ্যাপটি পুনরায় চালু করুন : এই পরিবর্তনগুলি করার পর, আপনার অ্যাপটি পুনর্নির্মাণ করে চালান।
  2. রোগী অনুসন্ধান করুন : রোগীর তালিকা স্ক্রিনে, অনুসন্ধান বৈশিষ্ট্যটি ব্যবহার করুন। এখন আপনি একটি নাম (বা নামের অংশবিশেষ) লিখে সেই অনুযায়ী রোগীদের তালিকাটি ফিল্টার করতে পারবেন।

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

৮. অভিনন্দন!

আপনি আপনার অ্যাপে FHIR রিসোর্সগুলি পরিচালনা করতে FHIR ইঞ্জিন লাইব্রেরি ব্যবহার করেছেন:

  • FHIR রিসোর্সসমূহকে FHIR সার্ভারের সাথে সিঙ্ক করতে Sync API ব্যবহার করুন।
  • স্থানীয় FHIR রিসোর্স তৈরি, পড়া, আপডেট এবং মুছে ফেলার জন্য ডেটা অ্যাক্সেস API ব্যবহার করুন।
  • স্থানীয় FHIR রিসোর্স অনুসন্ধান করতে সার্চ এপিআই ব্যবহার করুন

আমরা যা আলোচনা করেছি

  • কীভাবে একটি স্থানীয় HAPI FHIR সার্ভার সেট আপ করবেন
  • স্থানীয় HAPI FHIR সার্ভারে পরীক্ষার ডেটা কীভাবে আপলোড করবেন
  • FHIR ইঞ্জিন লাইব্রেরি ব্যবহার করে কীভাবে একটি অ্যান্ড্রয়েড অ্যাপ তৈরি করবেন
  • FHIR ইঞ্জিন লাইব্রেরিতে Sync API, Data Access API, এবং Search API কীভাবে ব্যবহার করবেন

পরবর্তী পদক্ষেপ

  • FHIR ইঞ্জিন লাইব্রেরির ডকুমেন্টেশন অন্বেষণ করুন।
  • সার্চ এপিআই-এর উন্নত বৈশিষ্ট্যগুলো অন্বেষণ করুন।
  • আপনার নিজের অ্যান্ড্রয়েড অ্যাপে FHIR ইঞ্জিন লাইব্রেরি প্রয়োগ করুন।

আরও জানুন