You can see a demo of Bahmni Metabase/Mart analytics tool in the following demo environments: Bahmni Lite Environments
What is Metabase
Metabase is an open-source business intelligence tool. Metabase lets you ask questions about your data and displays answers in formats that make sense, whether that’s a bar chart or a detailed table.
You can save your questions and group questions into handsome dashboards. Metabase also makes it easy to share questions and dashboards with the rest of your team.
Benefits of Metabase
With the help of Metabase the users can generate reports by applying necessary conditions and required filters and can view them either in regular tabular structure or any other form of representation like bar graph , line chart etc that might deem fit to express the findings better, and all this can be done very easily without having to bother about writing the SQL queries for the same as the Metabase UI provides option to directly choose and query the required fields from the database and applying required conditions without any hassle.
What is Bahmni Mart and its advantages
It is a Spring batch application responsible for transferring data from OpenMRS DB to an Analytics DB based on a scheduled cron job.
As OpenMRS database is a transaction database it is being used constantly by a lot of systems which eventually increases the load on it and as it is not an analytics database for creating a single report you would need to query multiple tables and that is where Bahmni-Mart comes to the rescue as it transfers the data from OpenMRS to an Analytics DB which is a simplified database wherein hierarchical structures have been flattened and pivoted and many other entities denormalised hence for generating reports the querying of database would be easier.
The need for Dockerizing Bahmni Mart and Metabase with Bahmni Docker
As of now the Bahmni Mart and Metabase are not dockerized with Bahmni docker hence we are unable to access and leverage its benefits along with the Bahmni application from Bahmni Docker directly.
The proposed solution
As we are aware of the benefits of having Bahmni-mart and Metabase configured with Bahmni docker, we decided on the stories required to be worked on to deliver our MVP.
Workflows for accessing Bahmni Mart with Metabase on Bahmni Dev Lite Environment
1. Logging in to Metabase
When the user opens Metabase on Bahmni Dev lite environment for the first user creation an Admin user profile is preconfigured with Metabase and they don’t have to register again but can log-in directly using the Admin user credentials.
2. Connecting Databases
After logging in with the Admin user credentials the user can find OpenMRS DB and Mart DB added directly for the user’s convenience and can be accessed from the Metabase UI by going to data - > browse data post which the user can add/ remove databases as per their discretion.
After the Mart DB starts with the initial tables and values, if we create any new table for reflecting the same changes in the Metabase the user need to go to Admin Settings → Databases → mart → Sync Database schema now → Refresh the DB.
3. Visualising Pre-defined reports
To give the user a look and feel of the functionalities of Metabase right away we have added two predefined reports for the user to access the first thing they start the application and login as an Admin user.
To view and access the predefined reports after logging in the user has to open Collections -> Bahmni Analytics and then they will find reports Clinic Visits and Registered Patients.