In the end we will not submit for this World Bank funding opportunity, but this topic recently came up, I would like to explore a bit further whether this tool could be used as the basis for a standard OpenMRS Data Warehouse solution.
Basically, a Bahmni project team has done some nice work in creating a reusable tool that:
Flattens/simplifies the OpenMRS data model into an analytics-friendly format
Is configured via JSON files that indicate which transforms you want to do
(optionally) puts metabase on top of this, so you can immediately do analytics
Under the hood it uses Spring Batch, and stores data in postgres.
In theory this should work* out of the box for a plain OpenMRS implementation. Would anyone be interested to test this out, and share some feedback on whether it seems like a worthwhile direction for a generic/standard OpenMRS tool.
= one thing that will not work out of the box for plain OpenMRS is the ability to automatically flatten to row-per-encounter & column-per-question, because this is driven by the Bahmni form-entry technology. One could add similar code to support HTML Form Entry, XForms, etc, if this seems like a promising direction.
Hi @willa, please go through this link to deploy Bahmni Mart on your environment.
A couple of dependencies you should take care before installing bahmni mart on a Non-Bahmni project.
Edit bahmni-mart inventory file and add a proper hostname for bahmni-emr-db (it will point to your openmrs DB host)
By default, bahmni mart will try to connect bahmni-emr-db using openmrs-user as username and password as the password. If this credential is not valid for you, please override the values for openmrs_db_username and openmrs_db_password using setup.yml.
Once these above dependencies are resolved, please go ahead and install bahmni mart. Once the installation is done, you have to edit /var/www/bahmni_config/bahmni-mart/bahmni-mart.json (it will create /var/www/bahmni_config/bahmni-mart/ folder and link to /opt/bahmni-mart/conf). This config will have all the default job for any Bahmni project. Some job type (eg: obs) might not work for Non-Bahmni implementation as there are some values hardcoded in the code itself (you can easily change it). But all the other job types (eg: customSql, patients, programs etc) will work. Please check here for implementers note/config.
Once everything is done and bahmni-mart successfully ran on your environment, you can access the data using Metabase (depends on your firewall settings you might have to open 9003 port manually to be able to access Metabase). During Metabase configuration use 172.17.42.1 (default docker IP) to connect to analytics DB