2015-07-23 Developers Forum
How to Join
Agenda
Quickly review previous meeting minutes (5 min)
Review next meeting agenda
Minutes
Attendees
Jamie Thomas
Darius Jazayeri
Ryan Yates
Rafal Korytkowski
Archana Eadara
Tomasz Mueller
Sri Maurya
Natalia
Sharon Varghese
Tharunya
Carolyn
Maimoona Kausar
Ali Habib
Ndisha
Mark
Agenda & Notes
OpenSRP w/ Ali Habib & Maimoona Kausar
OpenSRP started off as a project in India called Drishti,
Currently being developed by Thrive Consortium: Ona, John Hopkins, Harvard School for Public Health, mPower, ThoughtWorks, ...
Intended to be like OpenMRS but for frontline health workers
UI intends to mirror "what a typical health worker enters into paper registers", but optimized electronically
current work is around maternal-child health, and it's part of an ongoing study
ongoing effort to turn what was originally an app into a platform.
Chose OpenMRS as a back-end data store because many of the partners had experience with it.
And OpenMRS includes a powerful reporting component.
The idea for OpenSRP is that you could use other back ends as well (not just OpenMRS), but starting with OpenMRS.
(Maimoona having connectivity difficulties, so Ali will try presenting the rest...)
OpenSRP is a client-server system, with 3 basic components:
OpenSRP Client
OpenSRP Server
OpenMRS
(See presentation for libraries/tools used in these)
Client application shows a list of "register books" (this was designed based on how ANMs like to see their registers)
Each register shows a list of entries, with relevant columns. (E.g. "household register" has profile, last visit date, due date, etc). These need to be implemented by a register developer.
Forms are authored using xlsform standard (http://xlsform.org/)
also used by ODK; defines skip logic, calculations, constraints, labels, etc
benefit is that the "science team" or "form designer" can define the forms (using xlsforms) and test them out, before the developer integrate them into a register
There are examples in the presentation of an xlsform, and the various files that get generated from it, and the files it is integrated with
(see hand-drawn diagram of client, web, registers, and OpenMRS)
Client communicates with Web component of OpenSRP. Many functions are provided by OpenMRS back-end
e.g. client calls OpenSRP web to authenticate; forwards request to OpenMRS via REST, through a connector module
Team Management module (an OpenMRS module)
maps which users (health workers and providers) work at which locations
and who is on teams together
Forms are submitted from OpenSRP client to OpenSRP server. Saved in form repository. Submitted forms are also sync'd back to client
Error logging (for OpenSRP-OpenMRS communications?)
Robust scheduling component (implemented via MoTeCH)
schedules defined via a JSON format
produces alerts
Mapped the OpenSRP API to OpenMRS (e.g. patient, addresses, etc)
OpenSRP uses couchdb, so it's trivial to add new fields
Added (to OpenSRP) the idea of "Events and Obs", backed by Concepts (equivalent to Encounters, Obs, and Concepts)
Added 3 columns to xlsform definition that indicate mapping to OpenMRS concepts
Register sends form submissions to the OpenMRS Connector.
The submission is parsed into OpenSRP entitied like client, user, etc.
These are then pushed to OpenMRS via REST services, which saves successfully or throws an error
Errors are written to Error Logger along with a way that the transactions could be replayed.
OpenMRS Connector
OpenMRS for: