ITECH Kenya presentation on OpenMRS Developers Forum
The first OpenMRS “Distribution” openmrskenya.blogspot.com
Deploy OpenMRS to hundreds of facilities …without hundreds of sysadmins …“few moving parts” Consistent configuration everywhere …shared metadata …never manually modify configuration …centrally managed via modules “Distribution” means a packaged, pre-configured OpenMRS, with a custom UI for specific workflows.
OpenMRS 1.9 (we want Visits) MVP/CIEL Concept Dictionary Metadata Sharing HTML Form Entry HTML Form Entry 1.9 Extensions UI Framework UI Library App Framework …and the Kenya EMR module to tie it all together
MoH Content (Facility MVP/CIEL Dictionary updates Dictionaryindex, etc) (currently via SQL dump) Server* Official Form Final forms Devs Metadata Development Devs (via MDS) Devs Server Server github Distribution ZIP VM Packaging Facilities ping Official Metadata Server for new distro versions … Facilities Facilities Facilities Facilities
Distribution “content” = MDS packages, included in our Also used to move completed forms from Form Development server to Official Metadata server ◦ Validate forms to ensure they only refer to MVP/CIEL concepts before they are “final”
Works with Metadata Sharing, so it fits in our distribution model ◦ Allows for distributed form development Just HTML, so it’s easy to embed forms in our UI workflows
We want simple UI workflows, custom-built for our use case. UI Framework makes these quick to develop ◦ good support for AJAX-y actions ◦ zero module redeployments Widgets intended for reuse by others go in the UI Library module
Lots of apps, each encapsulating a specific limited workflow ◦ Front Desk Registration ◦ Vitals/Triage station ◦ Medical Encounter ◦ Medical Chart ◦ Lab Result Entry ◦ Reports ◦ Admin Enable apps for specific users via privileges
mvn package –DbuildDistro=true ◦ Builds the kenyaemromod project ◦ Fetches omod files from modules.openmrs.org Using a snapshot version of a dependent module takes extra work--which is good! Currently only MDS. Could be more elegant, but it works.
Package a bunch of omod files in a ZIP Load them all in one atomic action Figures out the dependencies
Upload a new distribution zip file. moduledistro figures out what to do. Easy! Next step: automatic downloads
1. Start with OpenMRS 1.9 ◦ Remove bundled modules ◦ Bundle just the moduledistromodule 2. Get the MVP/CIEL dictionary
3. Upload our distribution zip The zip contains just omod files. ◦ moduledistro figures out how to start them in the right order ◦ kenyaemr.omodhas content as MDS packages
A few things absolutelyneed to be managed locally
Demo -- not yet complete :-) ◦ https://126.96.36.199/openmrs ◦ User/pass = demo/demo Code is on github: ◦ github.com/djazayeri/openmrs-module-kenyaemr ◦ github.com/djazayeri/openmrs-module-uiframework ◦ github.com/djazayeri/openmrs-module-uilibrary ◦ github.com/djazayeri/openmrs-module-appframework ◦ github.com/PIH/openmrs-module-moduledistro Everything except the Kenya EMR module is in the module repository Follow our progress at openmrskenya.blogspot.com