Do you use or administer OpenEMR? Take the General Satisfaction Survey to help improve the product

OpenEMR Offline use


I have a similar requirement to

Is it possible to implement such a scenario?

Thanks in anticipation.

Yes, it is possible. Thanks for bringing this thread to life again.

Are you using the MySQL database?
There is something called Master - Master Replication.

I am working through this in an attempt to get it working.

What I have done so far is to do a complete install of OpenEMR on a laptop. Setup the replication process to sync the laptop to the server. Copied the database from the server to the laptop over the weekend so that data would be identical. On Monday take the laptop out of the office and use it in the field. Monday afternoon, brought the laptop back to the office and what should happen is all the data that was changed out in the field should sync automatically to the office server.

This is the scenario that I am working towards. I will update once I take the laptop out in the field and come back.


It’s very good that we’re thinking about this again. There are several ways to go about this. @juggernautsei’s approach is a good starting point that would work if just using 1 laptop; but if use more than 1 laptop out in the field, then would require changing all the id (mostly auto-increment stuff) in database to uuid (this is actually what was done on the Peace Corps project); as an example, if you have 2 different offsite laptops that each add a new patient, then you’ll have conflicting database id items when try to replicate to main database.

Another option would be to leverage what ZH Healthcare has created in the codebase to support the offsite portal (there is a mechanism whereby data is stored in several tables and not brought in before it’s verified). Could potentially use this kind of mechanism to store the data in these tables (and even use the data) in local mode; and then when get back online, could then push them to the main database.

Just some thoughts and I am guessing there are many other ways to do this.

Do you know where this mechanism is located in the system? Or will this be a hunt for Red October? :sunglasses:

Looking at this from a common user’s point-of-view, this is all pretty techie.

Initially as per what @juggernautsei has suggested, I was looking at the approach to build a script to automate this, but then as @brady.miller says this could be limited to 1 laptop before complications arise, I don’t think a script would be a good fit, or would it?

Plus I don’t think we could look at this for devices like smartphones.

What happened to the Peace corps project on this? Wasn’t the the developer mi2?

Developers were mi2 and ensoftek. From what I have been told, the project was completed(and used the uuid strategy for offline use).

@juggernautsei ,
To see the ZH mechanism, search the codebase for where the following sql tables are used:

1 Like

So it was completed and did not make it back to the code base?
I do remember the mentioned uuid stuff in place of the Id and PID. It was the solution to prevent overwrite of data in a DB to DB sync.
Oh well, it is what it is.

I am exploring this software
It seems to be an open source package.

I have a meeting this Friday with Symmetricds to discuss how quickly get up and running with their product. Anyone that wants to attend please send me a private message for the bridge number and access code.

Has there been any progress on something like this?

it’s pretty funny but yeah, is there any progress? :smile:

@Boris_Vivienne welcome to the community! :sunglasses:

No progress in this department that I know about.

1 Like

but the foundation is being laid with the rollout of UUIDs in many of the important tables…

1 Like

I was also thinking of maybe using a service worker but due to how complex Open EMR is I doubt it’s a viable solution :confused:

@APerez has a solution for offline use. Try contacting him. He has it installed on a raspberry pie with wifi capability. The unit can be rsynced to the main database. Find him, he can tell you more.