· Mar 27 12m read

EMPI installation and customization in Standalone - Basic configuration

In the previous article we have reviewed how to install our EMPI in standalone, so we are ready to start the basic configuration of our EMPI.

First of all we have to do an initial basic configuration, we can access to the configuration from the Configuration menu of our Registry.

Selecting that option will allow to us to edit the basic configuration table of the Registry:

In this menu we have to add the following parameters and update the value of one of them:

\HSPI\LinkageDefinition Local.Linkage.Definition Main class responsible of the management of the linkage between patients.
\HSPI\CompositeRecordDefinition Local.CompositeRecord.Transient.Definition Class responsible of the composite view of the linkages.
\HSPI\PreserveHistoricalData 1 Value = 1 to keep historical data of the patients.
\MPI\CompositeHSPISearchResults 1 Value = 1 to use CompositeRecord as result of a patient search.
\TimeZone\SystemDefault LOCAL Time zone of the system by default.
\IHE\AffinityDomain Whatever you want Use this key to identify the OID of your IHE affinity domain assigning authority.An affinity domain is responsible for assigning unique MPI IDs. This value should be the code of an OID identified in the OID registry.

Before to the configuration review in the Registry we need to briefly explain the NICE concept user by our EMPI.

What is NICE?

NICE are the initials for:

  • Normalize: data patients normalization. All datas are updated to lower cases and the puntuaction signs are removed.
  • Index: patient indexation. We define the fields of the patient to be use use in the indexes creation. The EMPI will use those indexes in the matching process among the patients.
  • Compare: with the matches obtained from the previous step the EMPI will asign weights based on the matches among the fields of the patients. At the end of the process we will get a final score that will be user in the next step.
  • Evaluation: evaluation of the final score get after the Compare step. The score evaluation uses the thresholds defined previously to decide what to do with the patients. Depending the value the patients can be linked automatically, linked and pending of human confirmation, not-linked but pending of a human review or discard directly.

This will be the process that any data received by our EMPI will execute. Maybe you are asking yourself... what is the relation between the NICE process and the configuration that we did before? Well, the class defined in \HSPI\LinkageDefinition configuration will be responsible of the process: Local.Linkage.Definition

You can take a look to the class definition:


This is the class used to define the basic configuration for our EMPI, we can define the fields used for the indexes, the weights of the field matches, the algorithms used to evaluate the matches, etc.. As you can see, configure the EMPI options from the Local.Linkage.Definition file is not very user friendly but, don't worry, HealthShare has a specific window to do it, you can access to it from HealthShare --> HSPIDATA (or whatever you called in your instance) --> Definition Designer :


Let's see what we can configure from this window:

  • Locale: we can configure the location of our data that will be use in the NICE process in order to use the specific dictionary for the language selected.
  • Enable Domain Conflict: allow to define if we want to create a new EMPI ID in the case that we find two records for the same patient and the same source or keep it unlinked (records should be resolved by the site from which they originated.
  • Exclusion condition: exclusion criterias of the NICE process. They have to be encoded using ObjectScript (ej. originalObject.Name.Given = 'test').

Let's check the next tabs:

From the Data Classes tab we can review the name of the classes used for the record of the patient data and the search. These classes can be replaced by your personal classes, but it is not recommended to do it, you can use the extension fields to customize it. We will talk about the extensions in a future article.

The Parameters tab allows to us to configure the main parameters of the NICE process: thresholds and weigths. We can define the patient data that we are going to use for the Compare step of the NICE, the weights assigned in case of match or mismatch, the linkage type, values of the property considered as null values, custom normalization functions and custom match functions.

For this article we are going to use the default values.

Another interesting part of this tab is the upper section of the window:


As you can see we can define the threshold values used during the Evaluate step of NICE process. We can define three types of thresholds:

  • Review Threshold: if the score obtained during the Compare process between a pair of records is below this value the evaluate process automatically will discard the linkage, if the score is over this value and below the Autolink Threshold the pair won't be autolinked but will be moved to the "Review" status to be review by the responsible.
  • Autolink Threshold: any score from the Compare step over this threshold and below the Validate Threshold will be autolinked and moved to the "Validate" status to be validated by the responsible.
  • Validate Threshold: any score from the Compare step over this threshold will be autolinked, no further action is requiered.


The last tab of the window "Link-Key Indexes" will allow us to define the fields used to create the indexes to identify a specific patient. These indexes will be used in the Index step of the NICE process.

We can define so many "groups" of indexes that we want to use. For each group we select the fields of the patient to be used in the index and the minimum matches of this fields or keys (how many of these fields are going to be used in the index). In our example we have defined 5 keys with a minimum match of 3, this means that we are going to create so many indexes as combinations of 3 of the 5 values =  n!/(k!(n-k)!), or 5!/(3!(5-3)!)=10 .

Well, we have finished the tabs review so we can explain the available buttons:

  • Use Default Weights: this button resets the weights to the default values, discarding any modification done by the user.
  • Build All Linkage Data: this button will execute a rebuild of the Compare and Evaluate steps of the NICE process for all patients in the system. This option is required after any change in the linkage configurations.
  • Adjust Thresholds: this button will open a bar char that shows all the scores calculated during the Compare process the thresholds are showed too.
  • MLE Calibration: EMPI provides to the user a Machine Learning tool to tune the thresholds defined based on the NICE process results. This tool will suggest to the user the best calibration of the weights based on the linkages, reviews and validations of the pairs in order to reduce the human intervention in the process.

To summarize, we have review the basic configuration to work with our EMPI. In the next article we will review the available production and we will add some patients from HL7 messages.

If you have any ask or suggestion don't hesitate to add a comment to the article! 

Discussion (0)1
Log in or sign up to continue