We will be building integration between Bahmni and DHIS2. Currently DHIS2 serves as the central reporting platform for our client. The patient data needs to be synced from various clinic sites which will be using Bahmni EMR to this DHIS2 instance.
In DHIS2 programs are configured as events with registration(Line level data), where patient registration information is captured along with the program enrollment and events.
From Bahmni we will be sending the below patient data:
- Patient registration
- Patient program enrollment
- Data captured through forms in each visit
Required patient data from Bahmni will be extracted using Reporting Mart. Use of reporting mart will simplify the process of writing SQL queries.
A UI will be provided to help implementers map columns returned from the SQL queries with the DHIS2 data elements.
SQL file and mapping information will serve as the inputs to the integration service and data will be pushed to DHIS2 server using 3 API calls.
The idea is to build Bahmni DHIS2 integration generic in nature so that it can support data sync for line level events (events with registration) for any other implementation.
We will be publishing the technical solution soon in this thread. We are looking for your support to review the solutions and provide feedbacks to improve solution.
CC : @angshuonline @bharatak @pramidat @darius
@rdeolal that’s exciting, and I look forward to seeing more about the technical solutioning. Just to verify, when you say “Reporting Mart” do you mean the thing described in this thread: Creating a Bahmni Mart database for analytics?
And if so does that imply that your solution isn’t going to be specific to Bahmni’s clinical domain model (i.e. OpenMRS) but rather it will just rely on selecting already-processed data from a flattened database?
Yes when I said reporting mart I meant Bahmni Mart database. We moved away from OpenMRS data model so that the SQL queries becomes easy to write for implementers. Bahmni mart will still be getting data from OpenMRS to populate the flattened tables.
Excellent news Ravinder, and exactly what many implementers are looking for!
@rdeolal, are you only looking at pushing events to DHIS2 Tracker? Or also pushing pre-aggregated numbers?
@darius, We are only developing for DHIS2 tracker.
The technical document in this regard is available at here
Kindly go through the same and share your feedback.
@darius @angshuonline @bharatak Could you please review the above technical document. Thank you.
Sorry for my very slow response on this, but I just made some comments on the technical document.
@rdeolal, could you share some information about when development work would start on this? And when would be the target for a first alpha version?
We have started our development work. We are aiming to finish the dev activity by end of October.
I had discussions with Ravinder and others on this after the idea was projected in PAT call. I am just updating my overall comments. I am not sure if the document has been updated since.
- This should not be an OMOD in OpenMRS. It should be built such a way that it can work with any RDBMS. Working within OpenMRS will further complicate things - like managing database connection, transactions etc. While its possible to configure multiple platformtransaction manager and multiple sessionfactories, I don’t find it worthwhile to go through the troubles if the same can be easily done as an independent service (RPM).
- The dependency is really on “bahmni-mart”, if at all, this should be a module/plugin to the “bahmni-mart”. (I would think of it as optional plugin to bahmni-mart as well)
- The UI integration from Bahmni Apps - I don’t know for sure what advantages it will provide. The users of this app would be admins and much of the processing would be background jobs. If at all, I can envisage the app leveraging the users/privileges defined in OpenMRS platform (ala Bahmni-reports). If this is what is intended, the doc needs to clarify that.
Could you please share the findings, status and repo of this project?