Skip to content

Open EMPI for HMIS

Sandeep Dolia edited this page Aug 18, 2015 · 14 revisions

Environment

URL : http://ec2-54-149-78-38.us-west-2.compute.amazonaws.com:8080/openempi-webapp-web-2.2.9/

Demo Users : * demo1 / Passw@rd1 * demo2 / Passw@rd2

Introduction

OPEN EMPI 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.

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

Installation of the OpenEMPI Software

First download the latest stable distribution from the site. Choose the appropriate archive format for your platform (.zip for Windows, .tar.gz for Unix). Unzip the contents of the distribution in some temporary location. The structure of the archive is as follows:

 /openempi-${version}
   |
  openempi-${version}.ear
  openempi-core-${version}.jar
  openempi-openpixpdq-adapter-${version}.jar
  openempi-webapp-web-${version}.war
 /openempi-${version}/conf
       |
       create_database_schema.sql
       drop_database_schema.sql
       mpi-config.xml
       mpi-config.xsd
       jdbc.properties
       pixpdq_connectathon_patients.csv
       dataset_A_1000.csv

The top level directory contains various jar archives for deployment of OpenEMPI and the corresponding PIX/PDQ adapter.

openempi-${version}.ear is a standard J2EE ear file that can be used to deploy OpenEMPI on a J2EE application server. The rest of these instructions describe deployment of the ear file on the JBoss application server that was installed in the previous step. Keep in mind though that this is only one option for deployment of OpenEMPI. openempi-core-${version}.jar contains all the core classes that comprise OpenEMPI and is the appropriate option if you want to deploy OpenEMPI embedded within another Java application. openempi-webapp-web-${version}.war is a J2EE Web Archive that can be deployed against any compliant web container. It includes the core OpenEMPI infrastructure and API, the web-based administration console, and support for the PIX/PDQ interface. This is the best way to deploy OpenEMPI and get going as quickly as possible. openempi-openpixpdq-adapter-${version}.jar is a jar file that comprises the adapter for deployment of OpenEMPI within the OpenPIXPDQ server. The adapter included in the distribution always matches the version of OpenEMPI that it is combined with. As OpenEMPI goes is improved over time, appropriate changes are needed to the OpenPIXPDQ adapter to take advantage of the enhancements made. create_database_schema.sql is the database script to use for creating the database instance for OpenEMPI. drop_database_schema.sql is the database script to use to drop all the database objects from the OpenEMPI schema. update_database_schema-${release-version}.sql includes updates to the database schema. You use this sql script to update the base schema for the release and to bring it up to date with the latest minor release. mpi-config.xml the configuration file that controls the operation of OpenEMPI. There is an XML configuration file included with the ear file distribution but the configuration file is included here separately for reference purposes. mpi-config.xsd the schema file for validation of the OpenEMPI configuration file. jdbc.properties is a sample properties file for configuring access to the database repository for OpenEMPI. If you are not using the default instance name, database server, port number, etc for OpenEMPI, you can make the modifications in this file and then update the contents of the war or ear files using the jar command.

pixpdq_connectathon_patients.csv, dataset_A_1000.csv are sample datasets for testing OpenEMPI and getting started. The dataset_A_1000.csv is a sample patient dataset we got from the excellent Febrl project. You can use these patients for testing alternative matching or blocking algorithms or just to populate the patient registry and see what OpenEMPI has to offer. The pixpdq_connectathon_patients.csv file, as the name implies, is a list of patients that you can use to run the PDQ suite of tests that were used for preparation of OpenEMPI in getting tested as part of the OpenPIXPDQ service at the 2009 Connectathon. There is a complete suite of tests for both the PIX and PDQ interfaces included in the distribution. Documentation on how to run these tests will follow. The configuration files can be placed anywhere you like but the application uses the following approach for locating them. The assumption that the application makes is that the configuration files are stored in the conf directory below the defined home directory for the OpenEMPI application. The home directory for OpenEMPI can be set in one of two ways:

You can set the environment variable OPENEMPI_HOME to point to the home directory for OpenEMPI. (for example under Unix sh you can use export OPENEMPI_HOME=/opt/openempi or on Windows set OPENEMPI_HOME=d:/servers/openempi). This is a better approach if you deploy OpenEMPI under multiple application servers or you don't want to modify the application server's startup script. You can set the java system parameter openempi.home to point to it (for example set -Dopenempi.home=/opt/openempi). This can be used if you use a script to start your application server and you can easily modify that startup script.

Clone this wiki locally