google / android-fhir

The Android FHIR SDK is a set of Kotlin libraries for building offline-capable, mobile-first healthcare applications using the HL7® FHIR® standard on Android.
https://google.github.io/android-fhir/
Apache License 2.0
465 stars 245 forks source link

Decoupling Sync APIs from FhirEngine for Broader Functionality #2456

Open MJ1998 opened 3 months ago

MJ1998 commented 3 months ago

Describe the Issue FhirEngine package is reponsible for handling all apis related to storage. Sync package is reponsible for handling all apis related to sync.

However we identified certain issues in the current implementation of placing the sync APIs in the FhirEngine interface:-

  1. Tightly coupled Sync and FhirEngine packages.
  2. Misplaced responsibilities like UploadProgress in FhirEngine package
  3. Redundant data models like SyncUploadProgress and SyncJobStatus.InProgress
  4. 2386

  5. 2363

We realized that these issues stem from the assumption that the custom sync APIs (syncUpload and syncDownload) are used against a FHIR-server. This makes using the sync APIs in the FhirEngine interface difficult.

Hence we decided to refactor the sync APIs and move them to an internal interface just like FhirEngine called FhirSyncDbInteractor. More information in this doc.

Would you like to work on the issue?