Last post for GSoC14!

With this last week of GSoC 2014, we complete our project. It was a great experience working with OpenMRS team for the second time. I would also like to thank my mentor Ryan Crichton for his continued support during the course of GSoC 2014.

Here you can find the complete module source code:

Here is the documentation of the module:

You may also watch the final presentation/demo of the module below,


PIX message over HTTP POST

Last week we were facing issues sending our message to OpenHIE endpoint, as we were receiving a NonHl7TypeException. We understand that Hapi over Http is expecting a HL7 response type, whereas OpenHIE sends a simple text/plain response.
Due to this reason we are now trying to send the PIX message using Apache HttpClient. We hope to successfully include PIX feature too in our module, before we wind up for GSoC14!

Sending PIX Message

We have *almost* successfully sent the PIX message to OpenHIE. When sending the message to OpenHIE, while receving the response I am facing NonHl7ResponseException: Invalid Content-Type: text/plain exception. Once this is fixed our PIX message will be up and going!
Here is the latest code.

Sending to IL of OpenHIE.

We are working on sending PIX message to OpenHIE. OpenHIE accepts PIX message over HTTP as a XMl message. We have converted our hl7 message into xml. The message will be sent to the Interoperability Layer (IL) of OpenHIE, which will register the patient into Client Registry (CR).
We would be using below configuration details to send the message to IL.
Interoperability Layer
Host: Port: 5001
Username: admin Password: admin
We hope to achieve this milestone soon!

Adding PIX support

Starting with the first high priority extra credit task, which is adding support for PIX profile, we have created a PIX compliant HL7 message, and have successfully sent it to the Simulator. This assures that our PIX message is of valid format. So now we move on to sending the PIX message to OpenHIE. The code until here has been committed at

Moving to extra credit tasks..

Since we have completed sending of PAM message to the simulator, we have completed the main goal of the project. Also OpenHIE does not have a MLLP end point. Thus by being able to get a valid message through to the PAM simulator we are able to prove that we are compliant to the PAM specification.
To provide an added advantage, we are now heading towards providing support for PIX profile also.

Successful sending to PAMSimulator

This week we were working on sending the HL7 message to the PAM Simulator to validate the message which was created. During this phase we have added fields to the HL7 message and now we are successfully sending PAM message to the PAM Simulator. Thus realizing the main goal of this module!

Below is the final HL7 message which is being sent to the Simulator.

PID|||71^^^OPENMRS^QWER||Barber^Steve^^^^^L|||||^ABVGJ|&13 Park Street^^Ina^ANB^7899^INHJ|||||^MARRIED|||||||Hyd|||^Indian

Here you can find the message which is sent to the PAMSimulator.

The code has been committed to git hub.



Sending to PAMSimulator

Here is the HL7 message which is created for a person in OpenMRS.

MSH|^~\&|TestSendingSystem||||||^A05^ADT A05|878||2.5.1|123
PID|||||Barber^Steve|||||^ABVGJ|&13 Park Street^^Ina^ANB^7899^INHJ|||||^MARRIED|||||||Hyd|||^Indian

Currently we are working on sending the HL7 message to PAM Simulator to verify the correctness of  the message which was generated.

As the mid terms are approaching I have prepared a short video describing the project, the progress made so far, and the next steps for coming days.

Sending Message to OpenHIE

As creation of HL7 message is completed, we are looking towards tools which can help us validate the message against PAM profile.

After which we will move to the next phase which is sending of the message to OpenHIE. We will be sending the message over MLLP, as PAM structure supports MLLP protocol. We will use HAPI library to send the message. Here are the steps of how HAPI works to send out HL7 message.

Sending message using HAPI

1. A server to listen to messages.
2. Register with the application to handle ADT_A05 message.
3. Create ConnectionHub object to connect to the the listening servers.
4. Next create a Connection object to connect to HL7 server.
5. An initiator object will be needed to transmit the message.
6. A response will be received on successful transmission of message.

Here the server which needs to listen to message is a HIE endpoint. We will now look into how the OpenHIE will receive these messages.

1. The Point-of-Care(PoC) will save the patient in the Interoperability Layer (IL).
2. The IL will then directly save the patient in the Client Registry (CR).
3. The CR sends a response message, HL7 ACK to IL.
4. The message from the CR is passed directly through to the PoC by the IL.

Here OpenMRS will be acting as the Point-of-Care (PoC).