Offline Database Synchronization

(system) #1

sr999 wrote on Saturday, January 07, 2017:


I am investigating whether or not it is possible to synchronize multiple instances of OpenEMR such that the databases will remain in sync whenever both instances are online, as well as allow individual instances to make changes “off the grid” and then synchronize when brought back online. If this is possible, what are the best practices?

We have a functioning instance at our clinic already, but wish to be able to bring remote instances of OpenEMR on a laptop to remote areas where even cellular data service is impractical. Upon bringing the laptop back to the main clinic, the databases would synchronize.

I have found some other forum posts (here and here), but most are several years old, and (unless I’m missing something) did not conclusively answer the feasability of this.

Is MySQL master-master replication suitable for this? How do we avoid collisions? There was some talk of OpenEMR being modified for the Peace Corps and mobile apps in order to support this type of behaviour, but I’m not sure if these features were ever completed.

Thank you very much for your help and for your contributions to the open source world!

(system) #2

sr999 wrote on Monday, January 23, 2017:

Bump… Anyone have any input on this? I’m hesitant to write my own application to store data from remote sites and then insert them into the MySQL database manually upon return, but at this point I don’t have many other ideas.

I tried looking into using SymmetricDS to perform syncronization, but I found their examples pretty challenging to follow. Anyone have any experience with using SymmetricDS with OpenEMR?

Thanks again.

(system) #3

bradymiller wrote on Tuesday, January 24, 2017:

Hi sr999,

This is an issue that comes up rather frequently in the community. From what we were told, the method that was used by Peace Corp project involved rather heavy modification of database and code to incorporate uid’s(replaced all the id’s in the database), and the code never got to the public.

It would be nice to support this type of feature. Hopefully others can provide some ideas on how to support this (ie. brainstorm) and then go from there.


(René Bootsman) #4

Nobody? I’m looking into OpenEMR and this will be a Must have Feature. Hopefully there is solution for Offline working with OpenEMR.