Search code examples
integrationmirthhl7-v2

How do I integrate my application to an HL7 V2.5 hospital HIS?


My small company provides hospitals with a bug prevalence report. Earlier, we had only 1 customer who provides the necessary data for the application (patient demographics, culture details, antibiotic dosage etc) in a CSV dump for us to ingest. Now, we have larger hospitals interested in our product who have HL7 V2.5. I've found that people use Mirth connect for interfacing but very little on how this entire setup works. As a vendor, what are the things I need to do to make the integration possible?

From what I've read one of the approaches is the following:

  1. Set up a https server. Install and run mirth on it.
  2. The hospital will now send HL7 messages (are these text files?) to this server on a Mirth channel. Mirth can help me parse these messages and extract the data.
  3. I build further processing mechanisms to ingest that data into my application that the hospital will use.

Also, what is the standard followed when hospitals send HL7 messages? Do the hospital systems provide a consolidated HL7 file for the required data? Or will I as the vendor have to collect separate files and parse them to convert data into usable format?


Solution

  • The usual process for receiving HL7 data is to:

    1. Stand up an integration engine such as Mirth, Lyniate Rhapsody, or Infor Cloverleaf.
    2. Establish a TCP/IP connection (an HL7v2 interface) to send and receive HL7 messages with the other software system. HL7v2 connections are usually made through a VPN to provide additional security, since the transport protocol (MLLP) does not have any native security.
    3. Configure your integration engine to parse and convert the messages into a format your application can understand.

    There are alternatives such as HL7v2 over web services or via SFTP, but these aren't as common. HL7v2 messages aren't files, unless you are using the SFTP process to actually download/upload messages. Each HL7v2 message represents a single event and are almost always transmitted individually in near-real-time.

    Some potentially helpful resources are here and here.