Often a single organization (a government, an NGO, or a hospital with satellite clinics) wants to run local OpenMRS installations at many individual facilities. But the organization wants to avoid creating duplicate patient records when the same patient population shows up at those different facilities.
The solution to this problem is to have an enterprise-wide master patient index which maintains a central registry of the unique patients that have attended any of the facilities, so that if any of those patients shows up at a new facility, their record may be imported and linked.
OpenMRS 2.x includes a Registration app that is used to create patient records when those patients arrive at the facility. The goal of this project is to extend the Registration app so that while the registration clerk is creating a new patient record, we can query a master patient index and see if that patient already exists.
There are multiple implementations of master patient indexes, both free and commercial, (for example OpenEMPI), and they use a variety of mechanisms to communicate, including standards such as PIX/PDQ, custom query formats, and maybe upcoming standards based on FHIR. We don't want to tie OpenMRS to a specific MPI solution, or even just one specific query standard. In this project we will introduce a general interface for querying a remote server, and implement an example that can query a specific MPI with a specific query standard.
Support for querying a remote server
Support for populating a remote server