Implementation Id

An implementation id is currently used by the the OCC to determine the source of submitted concepts.

How is an "implementation" defined?

Every group of OpenMRS installations working from a common database. e.g. We have a production server for AMPATH in Eldoret, Kenya. We also have a development server in Indianapolis, IN. Both of these installations work off of a database that we keep synchronized. Concepts are only created in either Eldoret or Indianapolis, never in both. If we are creating concepts (and forms) in Indianapolis, we lock the concepts in Eldoret and vice versa. (Locking can be done with the global property "concepts.locked")

What are the different parts of an Implementation Id?



Name

The viewable name of this implementation.

Id

The 5 character short code that can be used in HL7 messages. Must be unique across all implementations.

Pass Phrase

The phrase used to "authenticate" the current OpenMRS installation as allowed to use this Implementation Id. e.g. Both the Eldoret and Indianapolis servers know about this pass phrase. However, no one else should know it. If it were to get out, other implementations could submit concepts that were thought to be part of the AMPATH group.

Description

A wordy description of the implementation. This text should be sufficient enough for someone to be able to identify and contact the implementation in question.

Who can register an Implementation Id?

Anyone with a valid installation of OpenMRS and a connection to the internet can create their own id.

How can I register an Implementation Id?

  1. Install a version of OpenMRS > 1.4
  2. Click the "Set Implementation Id" link on the Administration section
  3. Fill out the form and submit it to the central server

Problems registering an Implementation Id

If you are behind an HTTP proxy, you may have problems registering your implementation ID. The installation wizard in OpenMRS 1.5.X may block because it is unable to reach the registration server. You could be receiving a message like this:

Your implementation id is in use by another installation. Please choose another source key or enter the valid passphrase for this source id. Note: The server stored description of the given passphrase is: xxx Implementation ID could not be set.

In order to solve this problem you must set an appropriate HTTP proxy server and port for Tomcat by specifying the JVM options http.proxyHost and http.proxyPort.

If you are running tomcat installed as a windows service:

  1. run tomcat6w.exe: tomcat6w //ES//<TOMCATNAME>
  2. Click on the Java tab
  3. In the Java Options text box add the following 2 lines (each option must be on its own line) -Dhttp.proxyHost=<YOUR_HTTP_PROXY_HOST>
    -Dhttp.proxyPort=<YOUR_HTTP_PROXY_PORT>
  4. If you require proxy authentication, you can also add the following two lines -Dhttp.proxyUser=<YOUR_HTTP_PROXY_USERNAME>
    -Dhttp.proxyPassword=<YOUR_HTTP_PROXY_PASSWORD>
  5. Click on OK. These settings will be used whenever you start your tomcat service
  6. To be on the safe side, restart your tomcat server

or you could edit catalina.bat under the bin directory and add something like this: set JAVA_OPTS=%JAVA_OPTS% -Dhttp.proxyHost=<YOUR_HTTP_PROXY_HOST> -Dhttp.proxyPort=<YOUR_HTTP_PROXY_PORT>
If you are running Tomcat on Unix or through a script:

Simply add the Java JVM options -Dhttp.proxyPort=<YOUR_HTTP_PROXY_HOST> and -Dhttp.proxyPort=<YOUR_HTTP_PROXY_PORT>