improving integration between OpenMRS and OpenERM on Bahmni

HI, i am working on a project in Bahmni, aimed at improving Integration between Bahmni ERM and Odoo using middle-ware to replace current atom feed based CDC, can I please get help on documentation of all the table changes in Bahmni ERM that cause changes in Odoo databases. The aim is to reduce the time delay caused by atom feed polling, improve access security concerns that may arise from atom feeds, and overall reduction of failed events that occur due to atom feed, any and all forms of help will be appreciated

Interesting that you mention “time delay” and “security concern” as main reasons. For all scenarios that we have worked over the years, time delay never really came up as a reason. Bahmni’s operations (and I believe) is most EMR cases, seconds or microseconds do not effect much, especially when integrating with ERP or ELIS. But maybe you are talking of a different scenarios - will help us to understand better.

Regarding security, again - unsure. Bahmni’s AtomFeed does not send “details” other than the “source of the changed info” (a link) - an EDA patter called event notification, rather than state transfer (CDC). Which means the security is actually better since you only get notification - to get the actual resource - you must have relevant access privileges. Again if you detail our the concerns, we can potentially help and/or improve if things are lacking.

If you want to really use CDC, you can get that directly from mysql - e.g. leverage Kafka MySQL CDC Connector. But that will get you extremely low level details - for most of the cases relevant to integration with PACS/LAB/ERP - patient and order (service request) information are enough. Even if you consider an order like medication request, which flows to the ERP, I dont think that alone demands a CDC for the above reasons.

CURE team has been working on using an alternate event mechanism through JMS events, allowing for any JMS compliant MOM to be plugged in. (e.g. RabbitMQ). Within a network AMQP is probably faster than Kafka.

Atomfeed based integration (specially the simple feed protocol) has its concerns of course, but they are mostly related to unprocessable events and surely help with tooling to debug and troubleshoot.

Anyways, will be interesting to hear your requirements and drivers.

You may also bring this up for our next Product Architecture call (Wednesday 1 pm UTC).

@gsluthra @binduak