For the Peace Corp, we made major changes to OpenEMR to support master-master replication.
Each of the 70 countries where the Peace Corp has volunteers has a separate server and database that handles records for that country. There is also a central server in the United States to which changes from the satellite servers get copied to each night. Changes for a given country made on the US server get pushed out to the appropriate server each night as well. The replication process is setup so each country’s server only handles that countries patients.
This might be something appropriate for your situation. You wouldn’t necessarily need the continuous replication process and could transfer patients on demand.
Kevin I’m not sure that’s what Oleg is talking about but it’s certainly interesting and perhaps useful to the community. Is that based on MySQL’s replication features? Is the code available yet?
@Oleg, if the clinic network has reliable connectivity then treating each clinic as a site - separate database - on a central web server is a well supported starting point. You would then need to build a bridge between sites to copy patient record from one clinic to another and then mark patient to be inactive at original clinic.
In case of connectivity issues and if number of clinics is small, you could have variation of Peace Corp model - simplest being replicate all databases at all clinics in 2 cycle process. This can become exponentially complex quickly.
A more generalized approach will be to have completely decentralized setup of clinics and use enhanced CCR functionality to export and import patient records between clinics. You could give patient the CCR files to carry to another clinic or use variety of file transfer/sharing methods to do it in background, including but not limited to use of patient portal functionality.