PulseBridge is an Android library that streamlines OpenSRP integrations with a clinical decision support workflow by generating FHIR bundles, producing OpenSRP events, and launching the PulseBridge Progressive Web App experience.
- Tooling: Gradle 8.7, Android Gradle Plugin 8.5.2, Java (no Kotlin sources)
- Android: compileSdk 34, targetSdk 35, minSdk 18
- Branch:
main
(no tags have been created yet) - CI: configure GitHub Actions or preferred runner (none provided in repo)
- Generate FHIR R4 bundles from
FHIRBundleModel
inputs for PulseBridge workflows - Launch the PulseBridge PWA with encoded bundle data from native Android
- Parse PulseBridge bundle payloads into OpenSRP
Event
andObs
models - Create OpenSRP care plan events and helper utilities for bundle handling
- JDK 17 (required by AGP 8.5+)
- Gradle 8.7 (Wrapper included)
- Android Gradle Plugin 8.5.2
- Kotlin: not required (library is Java-based)
- Android API levels: minSdk 18, compile/targetSdk 34/35
Add the dependency from Maven Central once published. Replace <version>
with a
tagged release (current: 0.1.0
, released on September 25, 2025).
Groovy build.gradle
repositories {
mavenCentral()
}
dependencies {
implementation 'org.example:pulsebridge:0.1.0'
}
Kotlin build.gradle.kts
repositories {
mavenCentral()
}
dependencies {
implementation("org.example:pulsebridge:0.1.0")
}
Initialize the library once in your Application
class by providing an Android
Context
and a configured PulseBridgeConfig
:
public final class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
PulseBridgeConfig config = new PulseBridgeConfig();
config.setServiceEndpoint("https://example.com");
config.setWebAppPath("/path/to/pwa");
PulseBridgeLibrary.init(this, config);
}
}
Create a bundle and launch the PulseBridge PWA:
FHIRBundleModel bundleModel = new FHIRBundleModel();
bundleModel.setPatientId(patientId);
bundleModel.setPractitionerId(practitionerId);
// Populate additional demographics and codes as required
PulseBridgeLibrary.getInstance().processHealthAssessment(context, bundleModel);
Convert a PulseBridge response into an OpenSRP event:
String encodedBundle = PulseBridgeLibrary.getInstance()
.getPulseBridgePatientId(responseJson);
Event carePlan = PulseBridgeLibrary.getInstance()
.createCarePlanEvent(encodedBundle, formTag, entityId);
Extract a PulseBridge patient identifier from a bundle payload:
String patientId = PulseBridgeLibrary.getInstance()
.getPulseBridgePatientId(encodedBundleString);
No sample module is bundled yet. Create a demo module or use your host OpenSRP app to exercise the library APIs.
./gradlew clean assemble
./gradlew test
- Initial library release with PulseBridge FHIR bundle generation and parsing APIs, plus client utilities for PulseBridge workflows.
Refer to the repository's Releases page for published versions and release notes.
Issues and pull requests are welcome. Please build and test with the toolchain listed above before submitting changes. Create a CONTRIBUTING guide if additional steps are required.
This project should include a LICENSE file specifying the terms for reuse. Add a LICENSE (for example, Apache-2.0) so adopters understand distribution rights.