In the 1990s, we witnessed the jump from bare-metal servers to the virtual machine world. Physical servers still exist, so we’re usually still required to support messages coming in and out of our system. But how can we make the process a little less stressful?
In this article we’re going to give you a short tour explaining how to connect plain old bare-metal EHR local networks to modern cloud-based healthcare applications and establish HL7 v2/v3 message exchanges between them using MLLP.
Keep reading to find out:
MLLP (Minimal Low Layer Protocol) is a protocol for an HL7 message exchange. It is composed of two basic elements:
Security is formally outside the scope of MLLP, but as long as HIPAA is not amended, implementers should take into account the security issues. This makes the transporting of HL7 messages via MLLP a lot more complex.
To enable secure communication, we need to establish an encrypted TCP/IP connection between the sender and receiver. This is done via an S2S VPN (site-to-site virtual private network) connection.
Some other ways of sending HL7 messages over the internet (HTTPS) include:
MLLP was introduced in the 1990s. It was still an era of bare-metal servers and local networks with real machines and real network hardware. The era of the internet hadn’t even arrived yet.
The issue is that nowadays we tend to use virtual machines. Our applications are deployed on Azure/AWS/Google Cloud Platform with the use of container-based technologies like Kubernetes (K8S) and Docker, so we literally have to establish an S2S VPN connection from our K8S network.
In brief, yes it is. However, we should note that almost all entities used to establish a connection will be purely virtual (logical). Here at Health Samurai we’ve managed to establish such connections using Microsoft Azure/Amazon AWS/Google Cloud Platform.
We have two local networks connected via an encrypted VPN tunnel connection. It looks quite simple, right? But the usage of virtual machines adds some complexity to it.
VPN stands for virtual private network. In the case of S2S (site-to-site), it merges two networks into one logical network. The connection between these two networks is made by establishing a tunnel (in effect just a pack of encrypted data). We will send our HL7 message to the EHR via this tunnel.
As we mentioned before, in the case of cloud networks we have extra complexity levels. We have a virtual network with a virtual machine inside, and it somehow reaches the outer internet using a public IP address. This is what usually happens:
Don't worry, we’ll explain everything in detail:
Our application is just a K8S cluster pod with a private (virtual) IP address. This IP address exists inside the virtual subnet.
The virtual subnet is a part of the whole virtual network inside our Kubernetes cluster. So if a cluster has a lot of IP addresses, the virtual network will probably use the required quantity of addresses from this network.
The virtual network is a purely logical entity. It is a network with a certain range of private IP addresses. All entities inside such virtual networks are connected using software, rather than real wired connections.
As you can see above, it is done through:
This is done via route tables.
Route tables are just a set of rules governing where the traffic should go. In our case route tables are configured as follows:
If outer networks are connected to the pod network, the pod can be accessed via its private IP address. A VPN connection actually makes it easier to connect two networks into one.
Want to streamline your setup? Speak with our specialists for tailored solutions. Get in Touch
Here, we will cover how the IPSEC connection is established. There are a number of VPN protocols:
In our experience, IPSEC is the most common way to transmit HL7 traffic using MLLP.
IPSEC actually comprises a group protocol used to establish the connection:
Each of the abovementioned protocols may also be treated as a step to establish the connection:
The two-phased IKE protocol helps to set up a secure and authenticated communication channel. The most common ways to come to an agreement on encryption algorithms include:
This is called IKE phase 1. It is the stage where both parties are sure that the connection was initiated by the proper parties and are able to discuss exactly how the data will be encrypted.
Usually, three steps are needed to pass IKE phase 1:
What is IKE phase 2? IKE phase 2 is the main phase of the connection when the user data transmission happens.
We will not cover AH and ESP in detail here because they are operated using the same principles as the IKE protocol and serve the same purpose. There are still several points to remember:
To sum up, we can say that:
If you are trying to establish a VPN connection for your HL7 feed in a cloud environment and get stuck, talk to us and we’ll be happy to show you how it works.
To explore setting up HL7 messaging over MLLP with a VPN in your environment, consider using the free version of Aidbox. It provides a secure and fully functional environment to test these configurations, offering all necessary tools without any limitations.
Authors: Artem Alexeev, Viktor Gusakov
Looking to take your EHR data transmission and storage to the next level? We recommend taking advantage of our pluggable Aidbox FHIR API module. It’s ONC-certified and provides an API to ingest and process HL7® v2 messages seamlessly. Aidbox is well positioned to serve as the next frontier for HIPAA compliance, and your competitors probably haven’t made it through – yet.
Get in touch with us today!