A POC completed successfully by the end of GSoC 2012. Installing the developed module enables sync for your OpenMRS databases.
1. Setup two OpenMRS instances
- Done. Completed as specified on Wiki - Multiple Instances with the renamed .wars of omrsroot and omrsclient running on 2 ports for jetty. Independent two databases and 'omrsroot' and 'omrsclient' for sync, and having individual application data directories.
Steps to setup a root instance and a client instance for the project demo purpose
Folders referred to steps given below.
OpenMRS checkout location=OpenMRS-1.x.x
Step 1: First rename your existing Application data directory to something else so that the setup will run all new. This applies if you have already been using OpenMRS before this trial.
Set up OpenMRS using the Advanced option where you can name your own database. Name the database to rootdb.
Note: This path is relative to the new placement of root-runtime.properties. (Additionally, you may paste the same runtime.properties to OpenMRs-1.x.x/webapp/target where the .war actually resides, for safety :) )
to see your working root OpenMRS instance!
And name your new database to clientdb
Now the client is all setup!
2. Configure SymmetricDS for the two OpenMRS instances. Then Synchronize the Person table. (As with the 2.x release of Symmetric)
- Done. (minor issue reported)
- Configuring using properties files** omrsclient.properties** omrsroot.properties
- Inserting symmertic specific tables to root database using an .sql file. openmrs_sds_sql** Channels** Triggers** Routers** Trigger-router links
- Registering and starting nodes
- Send loads, push/(and) pull data.
3. IDatabaseWriterFilterAdapter extension point (As with the 3.x release of Symmetric)
8. Youtube Video of synchronizing few patients
You can find a brief demonstration on \demonstration on [0\] and a much more descriptive version on \version on [1\] Wiki Markup \[0\] [ http://www.youtube.com/watch?v=5b2BSqHUImQ&feature=youtube_gdata|http://www.youtube.com/watch?v=5b2BSqHUImQ&feature=youtube_gdata]
\ Wiki Markup
[1\]_ _ http://www.youtube.com/watch?v=vTdkSeoW7yo&feature=plcp|http://www.youtube.com/watch?v=vTdkSeoW7yo&feature=plcp]
The testing and documenting for early stages will go inline with development.
23rd April - 21st May
Community Bonding Period
21st May - 31st May
Bi-directionally synchronize person table on 2 OpenMRS instances.
1st June - 10th June
Develop OpenMRS module to embed SymmetricDS jar.
11th June - 9th July
Develop means to identify & resolve conflicts arising through bi- directional synchronization.
Completed for a subset of tables
9th July - 16th July
Configure SymmetricDS for synchronization of all tables in OpenMRS schema. Include this in the on-going module.
16th July - 5th August
Develop the UIs for authenticating & configuring SymmetricDS.
Allocated for troubleshooting module
15th August - 13th August
Test and document module
13th August - 20th August
Getting feedback from community. Test on multiple physical nodes for network latency and other practical issues.
Tested on 2 physical nodes
Client & root specific configuration to get OpenMRS databases setup for Symmetric running on a new Jetty instance.