Developing your own master person index using open source tools

Home > Developing your own master person index using open source tools

There are several types of directories that are useful in healthcare settings; the first is a directory of users and Microsoft Docmain Controller (DC), Active Directory (AD), and LDAP are the most common solutions. DC, AD, etc all help manage a list of users, their roles, and other identity management functions within an enterprise. Another common directory is a master person or master patient index (MPI). MPIs are very useful because it gives a single view of the patient (customer) population within an enterprise.

There are a number of vendors that provide useful MPIs in the commercial world but sometimes, especially in academic or integrated delivery network (IDN) settings it’s useful to create your own MPI. The best approach is to combine the patient catalogs in various applications and provide a unified front-end. For this purpose, you can use a tool like Penrose.

Penrose is a Java-based open source virtual directory server. It basically allows you to connect various data sources (like your clinical apps, your customer-facing apps, support applications, etc) and give a unified view of the patients, users, etc via a virtual LDAP interface. What this allows you to do is to maintain your separate applications where you need to but provide an MPI through a portal for search, lookup, and other purposes. In their words:

Virtual directory enables federating (aggregating) identity data from multiple heterogeneous sources like directory, databases, flat files, and web services – real-time – and makes it available to identity consumers via LDAP.

Penrose has a good architecture, especially for distributed application connectivity within healthcare enterprises, and is worth a look.


Shahid N. Shah

Shahid Shah is an internationally recognized enterprise software guru that specializes in digital health with an emphasis on e-health, EHR/EMR, big data, iOT, data interoperability, med device connectivity, and bioinformatics.