# πΌ UgandaEMR Mobile App
**UgandaEMR Mobile** is an Android application built to support **offline FHIR-based data collection**, patient management, and encounter recording in healthcare facilities across Uganda. The app uses the Android FHIR SDK to enable standards-based interoperability and integrates with the UgandaEMR backend via OpenMRS FHIR.
---
## π² Features
* β
FHIR-based Patient registration, visits, and encounters
* β
Form rendering using FHIR SDC questionnaires
* β
Offline-first with encrypted local FHIR storage
* β
Secure user authentication and session management
* β
Data synchronization with OpenMRS-compatible FHIR server
* β
Modular, testable codebase with modern Android architecture
---
## ποΈ Architecture Overview
The app follows **Clean Architecture** and integrates the **Android FHIR SDK**:
```
UI (Jetpack Compose)
β
ViewModel (StateFlow)
β
UseCase (Business logic)
β
FHIRRepository (Data layer)
β
Android FHIR Engine (local store) + Remote FHIR API (OpenMRS)
```
### π§ Tech Stack
* π§± Jetpack Compose (UI)
* π§ MVVM + Use Cases + Hilt
* π¦ Android FHIR Engine (SDK)
* π OpenMRS FHIR API (DSTU3/R4)
* π Encrypted SharedPreferences + DataStore
* π² WorkManager (sync)
* π Secure local FHIR storage
---
## π§Ή Modules
| Module | Description |
| ----------------- | ----------------------------------------------- |
| `app` | Main navigation & entry point |
| `core-fhir` | FHIR engine config, DAO wrappers |
| `core-ui` | Shared UI components, theme, typography |
| `core-network` | FHIR REST client config |
| `core-domain` | Use cases, models, validators |
| `feature-auth` | Login & token management |
| `feature-patient` | Patient list, search, registration (FHIR-based) |
| `feature-form` | SDC Questionnaire rendering + response mapping |
| `feature-sync` | Backg β¦