Download | Wiki | Community

An Open Source Enterprise Master Patient Index

Home View in Wiki Edit Wiki page

Open Enterprise Master Patient Index

The official web site for OpenEMPI has migrated to
This site will no longer be updated.

Is an open source implementation of an Enterprise Master Patient (EMPI) which is a repository that maintains a registry of all patients across an enterprise. An EMPI provides many benefits including:

  • Maintains a central registry of all patients and their demographics, assigning a unique identifier to each patient
  • Eliminates duplicate patient registration entries that result due to changes in patient demographics (patient moved to another location), data entry errors during patient registration, or missing demographic information.
  • Provides record locator service by enabling physicians across the enterprise to identify which health care providers a patient has visited.

The key functionality provided by an EMPI is its ability to identify matching patient registration records and link them together as they represent information about a single entity. An EMPI needs to be able to perform this record linkage even in the presence of errors and missing attributes. This key functionality is provided by a matching algorithm. There are a wide variety of matching algorithms that have been used in practice but they are classified into two categories:

  • deterministic algorithms that search for an exact match between attributes
  • probabilistic algorithms that search for an approximate match between two records

OpenEMPI is a standards-based EMPI that was designed with extensibility in mind. Its architecture uses the principles of SOA and its services, including the matching algorithm service, can be replaced with alternate implementation simply through changes to a configuration file. The current version includes an implementation of both a deterministic and a probabilistic algorithm but alternate implementations can be developed and plugged into the system without any modifications to the rest of the system.

Check out the latest version of OpenEMPI: 2.2.5

OpenEMPI, the latest major and stable version of the open source Enterprise Master Patient Index.
You may download the binary distribution and install it on your server, or build it from the source using the instructions below.

The 2.2.5 release includes a huge number of fixes and new features. Here is a brief list of features included in this release:

  • A RESTful web services interface to OpenEMPI that provides yet one more approach for integrating OpenEMPI into your Health IT infrastructure. Using the RESTful interface, you can add new records into the repository, search through existing entries, and access all of the person management capabilities of OpenEMPI remotely, without having to deal with the EJB.
  • A reporting module that allows you to generate reports about the operation of the EMPI. The Reports module was designed in an extensible way, much like the rest of the system, so new report types can be designed and added to the system without having to write any code.
  • We finally have a complete User Management module for adding new users, adding new roles, and having fine control over the permissions assigned to each user without the overhead of dealing with all the details.
  • A large number of improvements and new features have been added to the user interface including screen for configuring every aspect of the system, without having to manually change the configuration files.
Since we have included so many new features in this release, we don't want to bore you with all the details here. Over the next few weeks and months, we will be adding Blog entries to describe each new feature. Try out the new release and as usual, let us know through the forums if you run into any issues.

The 2.2.0 release includes many bug fixes and new features. The most important feature of this release is a new version of the integration with the NwHIN CONNECT gateway that is easier to you and install. The new integration has been tested against versions 3.0, 3.1, 3.2 and 3.2.1 of the NwHIN CONNECT gateway software. To install OpenEMPI as the EMPI of your CONNECT gateway, you need to first install OpenEMPI and then follow the detailed instructions in the Wiki. As always, if you have any questions or issues, you should contact us through the forums at forum URL.

The 2.1.3 release, like previous versions, includes lots of bug fixes and a number of new features. Some of the more important features in this release include a notification mechanism that is now embedded within the core, full support for global identifiers, and a number of improvements to the user interface. The new notification mechanism allows OpenEMPI client applications to register an interest in receiving notifications about important events such as the addition of new records, or updates and deletions of existing records, among others. There is now full support for global identifiers. By turning on the feature in the MPI configuration file, when a new person is added to the system, a new identifier from the specified global identifier domain is assigned to the record. For additional details on this release you can review the release notes below.

The 2.1.2 release fixes many defects and includes new features, both planned and requested by community members. One of the key improvements in this release is that both the probabilistic and deterministic matching algorithms were moved to separate modules. In addition to achieving our goal of making OpenEMPI totally modular, this separation also simplifies the task of configuring a particular matching algorithm. Instead of having to modify the Spring configuration files directly to point to another matching algorithm, by loading the appropriate matching algorithm during system startup, the Spring configuration is done automatically behind the scenes. This release also includes fixes contributed by Arnold, who is another actively involved community member. Please keep the contributions coming. For more details about what went into the 2.1.2 release, check out the release notes.

The 2.1.1 release fixes many defects and includes many new features requested by community members. It also includes many contributions made by our most active community member, Csaba Toth. He contributed fixes, enhancements throughout the application, including the core API, data model and user interface. Please keep the contributions coming.

The 2.1.0 release fixes many defects and adds better isolation between the services that comprise the EMPI system but the highlight of this release is an adapter for integrating OpenEMPI as the EMPI of a NHIN Connect Gateway Instance. Check out the documentation page for instructions on how to install OpenEMPI within an instance of Connect and as always, if you have any questions, please post them on the forum.


Installation Instructions

How to install and begin using OpenEMPI starting with the binary distributions that are available from the download page.

Building OpenEMPI from Source

Provides step by step instructions on how to check out OpenEMPI from Subversion and build it.

OpenEMPI and Record Linkage

These are the slides from a presentation we made at the Med-e-Tel Conference on Record Linkage and the approach that OpenEMPI takes in solving this complex problem.

Enterprise Master Patient Index and OpenEMPI

A short paper that provides an overview of what an Enterprise Master Patient Index is following by a description of the architecture of OpenEMPI.

Latest news

YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.

Release Notes for OpenEMPI - Version 2.1.3


  • [OPENEMPI-50] - PDQ still returns the subsumed patient after patient merge
  • [OPENEMPI-51] - Race does not work
  • [OPENEMPI-52] - Problem doing PDQ Query expecting multiple results
  • [OPENEMPI-53] - Admin menu bar option does not respond like the other options
  • [OPENEMPI-59] - Address is stored into the city field in the AddPersonView

New Feature

  • [OPENEMPI-54] - Unix Scripts for starting the hosted mode browser for GWT development
  • [OPENEMPI-55] - Add the ability to add new person entries through the web interface
  • [OPENEMPI-56] - Add the ability to search the repository using attributes other than the identifiers
  • [OPENEMPI-57] - Extend the exact matching algorithm to allow the use of comparison functions other than exact match