bahmni connect

20
Bahmni Connect + - Bahmni Team Thoughtworks

Upload: shruthi-pitta

Post on 16-Apr-2017

123 views

Category:

Software


5 download

TRANSCRIPT

Page 1: Bahmni Connect

Bahmni Connect +

- Bahmni Team Thoughtworks

Angshuman Sarkar
don't use "offline". Change to the chosen name
Gurpreet Luthra
Should have a small photo of the app running inside a tablet/phone/android device.. held in hand (or in Slide 2)
Page 2: Bahmni Connect

No Network connectivity:● Without Bahmni Connect: A health worker, usually active on the field and does not

have access to the internet. They would record patient details/observations for patients on paper and enter it in Bahmni once they are back in the hospital at the end of the day.

● With Bahmni Connect: A health worker can directly enter the observations in the offline app and sync it to the server at the end of the day when there is network.

Page 3: Bahmni Connect

How does it help?● Data entry is a time taking process. Entering a day’s worth data at the end of the day is

a huge task.● The more the number of hops before data is entered in the system the more error

prone it is. ● Avoids loss of paper records - during the transition of paper records from hospital to

remote area, many times they get lost. ● With paper records, a lot of times duplicate records get created as it is difficult to

search. An offline app helps in search and prevents creation of duplicate records.● Doctors usually start a treatment in hospital but do follow ups in a sub centre. If the

paper record is not available, doctor at the subcenter will not know the details of the treatment going on.

● Entering the data in Connect app (offline) will help them identify the missing (mandatory) information/ erroneous information at the field itself.

● Syncing the Connect app to server ensures that the latest information is present in the Connect app as well as at the main hospital.

Page 4: Bahmni Connect

Current Features:●Works Offline.●Patient Registration●View the following information on patient

dashboard○Observations○Visits○Treatments○Lab orders○Diagnosis

●Record observations●Push to/ pull from (sync) server

Page 5: Bahmni Connect
Page 6: Bahmni Connect

Offline Support through Apps

● Chrome Extension (Bahmni.tar.gz) : Web worker, Indexed DB, Lovefield

Page 7: Bahmni Connect

With discontinuity of Chrome’s support for Chrome AppsEvaluating options:● Electron● Progressive Web apps (Service workers)

Page 8: Bahmni Connect

Offline Support through Apps● Android App (Bahmni.apk)

Ionic provides all the functionality that can be found in native mobile development SDKs.Crosswalk

Page 9: Bahmni Connect

Home Page With Sync button:

Page 10: Bahmni Connect

Sync Mechanisms

●Initial Sync : App is unusable.●Background Sync : Uses Web workers. Scheduled

at periodic intervals. App is usable.●Manually trigger sync.

Gurpreet Luthra
Should have a slide which talks about how the app decides which data should be synced? (How does filtering of patient record happens, and what options exist for configuration of data sets).
Gurpreet Luthra
Maybe a separate slide on how data is partitioned based on cachment, and how we are working on building a multi-db version of the app for multiple catchments. So you can use this for scenarios where you go to different clinics on diff days.
Page 11: Bahmni Connect

Initial Sync:

Page 12: Bahmni Connect

Background Sync/ Manual Trigger

Page 13: Bahmni Connect

App Pull

Page 14: Bahmni Connect

App Pull

●Meta data: Synced to all devices○Configs○Global properties○Reference data○Concepts

●Transactional Data: Synced based on login location○Patient Profiles○Encounters( observations, orders ….)

Gurpreet Luthra
Maybe a photo of the screen in mobile with progress bar on it?
Page 15: Bahmni Connect

App Push

Hustle : A javascript queuing and messaging library built on top of IndexedDB.

Page 16: Bahmni Connect

Sync Strategy● As the number of patients, their encounters, observations would be usually very high, the

storage space on the tab would be a constraint.● Data is usually pulled based on the login location used during login.● For example if a person has logged in for login location 1, data relevant for location 1 is

only pulled.● The way data is mapped to a login location is based on a strategy. The strategy is a java

class which just evaluate the filter for each event.● Strategy is customizable and pluggable.● Out of the box there are 2 strategies

○ LocationBasedOfflineSyncStrategy: Based on the patient address filled in registration form the filter is evaluated.

■ Eg: If a community health worker logs in from “Kampala” , all patient whose address is Kampala would be synced. It uses address hierarchy to map patients to login location

○ IDBasedOfflineSyncStrategy : Based on the patient identifier a patient is mapped to a login location.

■ For eg: Primary identifier has a prefix which represents the village they belong to.

Strategy can be customised and can be plugged in as a global property in OpenMRS

Page 17: Bahmni Connect

Sync Strategy:

Note: Metadata (configs/global properties/concepts) would be synced to all locations irrespective of login location.

Page 18: Bahmni Connect

Data Flow:

Page 19: Bahmni Connect

Components on server side

●Event log Service○Polls Events Records table for new events ○Creates events in event_log with filter for each

event ●Bahmni Offline Sync OMOD

○Loads the strategy configured in global properties

○For every event in event records it evaluates the filter based on the strategy and gives it to Event log service

Gurpreet Luthra
What is the exact name of the oMod?
Page 20: Bahmni Connect

Demo...

Gurpreet Luthra
The internet in Kampala may be very poor. Will you prepare to show the demo from your laptop (local setup)? Can you demo from a tablet connected to your laptop over hotspot wifi? That will also be cool.
Shruthi Pitta
I was thinking I will demo as chrome extension on my laptop and server will be on my vagrant. So internet should not be a problem?
Gurpreet Luthra
Yes. Sounds good.Also for all your PPT, keep a local copy on your machine.. in case internetisn't available when u present.