Wiki Spaces

Documentation
Projects
Resources

Get Help from Others

Q&A: Ask OpenMRS »
Discussion: OpenMRS Talk »
Real-Time: IRC Chat

Projects

Skip to end of metadata
Go to start of metadata

Initial Statement:
Replacement for openmrs sync module based on FHIR (as much as possible) and atom feeds
- LOE: 6+ months
- Customers: of interest to many existing OpenMRS implementations (many are desperate for a usable & reliable sync solution)

Specific Project:
Support master-slave synchronization of multiple OpenMRS servers in one enterprise, where most (technical) management is done at a central site, but patients are seen at many clinics in a hospital network.

Technical Approach:

  • one Master OpenMRS server, and multiple Slave OpenMRS servers.
  • Master defines all metadata and configuration (and slaves synchronize this).
  • Slaves synchronize a subset of patients with Master (e.g. those in the catchment area of one clinic) and push data on these patients
  • Slaves initiate all synchronization, based on:
    • reading an atom feed published by Master, pulling more data for any events of interest
    • pushing data that is entered on the Slave

Project Breakdown:

There are several independently-useful parts of this project that can be done before pulling everything together.

  1. Publish an event feed from OpenMRS
    • can leverage existing ICT4H and Bahmni code for this
  2. Update the OpenMRS FHIR module
    • Update from DSTU2 to STU3 (released April 2017)
    • Refactor module to be more extensible
      • support for plugging in processors & resources
      • use a Strategy Pattern, and extract current hardcoded implementations as "default strategy"
      • Ensure we can import/export all relevant OpenMRS transactional data
  3. Implement one-way sync of domain objects that can't be fully represented using FHIR (e.g. some kinds of metadata)
    • ThoughtWorks wrote a module for Bangladesh that synchronizes concepts; may be ready to use as-is
  4. Mechanism to define patient subsets / catchment areas for subcenters
    We already know of some implementation strategies from existing research done by Bahmni
    More requirements gathering to see if those strategies miss any high-value use case
  5. Pull all of this together into the Sync solution

 

Sync 2.0 will use atom feeds for notifications on what needs to be synchronized. More on the approach: Atomfeed for Sync 2.0

Changes required to the FHIR module: Changes to the FHIR module

Architecture of the module is available here: Sync 2.0 Architecture Overview

Dealing with errors and keeping an audit log: Auditing and error handling

Methods of transferring objects: FHIR Resource List for Sync, Non-FHIR resource list for Sync

  • No labels