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: https://github.com/saramirza14/openmrs-module-iheinteroperability
Here is the documentation of the module: https://wiki.openmrs.org/display/projects/IHE+Interoperability+-+Patient+Administration+Management+Documentation
You may also watch the final presentation/demo of the module below,
We have used Apache HttpPost to send the PIX message to OpenHIE. We have received a successful response on message sending. With this we complete our tasks for this module for GSOC14. Now we move to testing and documenting our code.
Here is the link to the github repo:
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!
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.
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.
Host: iol.sandbox.ohie.org Port: 5001
Username: admin Password: admin
We hope to achieve this milestone soon!
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 https://github.com/saramirza14/openmrs-module-IHEInteroperability/tree/hapi
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.
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.
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).