Back to Pilotfish Home

Building an HL7 Interface

    Video Key Moments

    How to Create an HL7 ORU Message Interface (HL7 over LLP to SQL Database)

    In this demo, HL7 messages are received from a hospital and delivered to a data measures store or database. You will see the interface built in the eiConsole main route grid, starting with an HL7 over LLP Listener that monitors a TCP socket for inbound HL7 messages, then transforming and mapping the data through to database insertion.

    [Try the Free 90-day Trial]     [Talk to an Expert]

     

    30-second summary

    • Ingest HL7 v2 messages over LLP and normalize HL7 to XML for downstream mapping
    • Use the Data Mapper to create drag & drop transformations with built-in data manipulation (example: date formatting for PID.7)
    • Generate SQL statements from a simplified XML model and send results to a target database transport
    • Validate your build quickly with inline Testing Mode, including stage-by-stage outputs

     

    Inside the HL7 ORU Pipeline

    Inbound HL7 Connectivity (LLP)

    • HL7 arrives from a hospital and is received via HL7 over LLP
    • The Listener monitors a specified TCP socket for incoming HL7 messages

    HL7 Normalization (HL7 to XML)

    • The Source Transformation converts HL7 into a generic XML representation
    • This is performed using the eiConsole HL7 to XML transformation module, selecting the appropriate HL7 2.x version

    Logical Transformation (Map HL7 to a Simplified Data Model)

    • Mapping is performed in PilotFish’s Data Mapper, using drag and drop rules between the HL7 XML tree and a custom XML representation of the target fields
    • Data manipulation can be embedded in the map, such as reformatting PID.7 from yyyymmdd to yyyy-mm-dd

    Target Preparation (Map to SQL Statements)

    • The Target Transform takes the simplified XML model and maps it into database statements
    • The mapper can load database tables, statements and functions to drive inserts and updates

    Transport (Deliver to the Database)

    • Configure the database Transport via a dedicated panel and validate connectivity using the built-in test option

    Inline Testing Mode (Debug Fast)

    • Execute a pre-configured test to simulate the route without a live TCP feed
    • Review output at each stage, including the original HL7, the generated XML representation, the simplified XML model and the database-ready payload

     

    Build an HL7 ORU Route in eiConsole

    PilotFish interfaces follow a consistent “Graphical Automated Interface Assembly Line” approach, using a repeatable set of stages across HL7 interfaces.

    7 stages (assembly-line user interface)

    1. Source System: Identify and tag the source system (example: hospital)
    2. Listener: Receive HL7 over LLP and monitor the TCP socket
    3. Source Transform: Convert HL7 to generic XML (HL7 to XML module)
    4. Route: Route the data to the appropriate target path
    5. Target Transform: Map the simplified XML model into SQL statements
    6. Transport: Deliver to the database using the database transport and tested connectivity
    7. Testing and Debug: Run inline tests and inspect stage outputs for rapid iteration

     

    Deployment with eiPlatform

    After you complete testing, a common next step is deploying your interface to production by copying configuration files to the eiPlatform runtime working directory for unattended execution.

    Works great in Docker containers. PilotFish Integration Engine solutions are optimized for Docker containerization for faster deployment and cross-environment compatibility.

     

    Security, Observability, Compliance

    • Encryption in transit and at rest plus least-privilege patterns for credentials
    • Audit logging for message flow and configuration changes
    • Environment segregation guidance for PHI workflows
    • Metrics, alerts and dashboards for throughput, error rates and SLAs

     

    Why PilotFish?

    • Faster configuration using a repeatable 7-stage process for HL7 interfaces
    • Reuse patterns like “clone, tweak, test and go” to reduce long-term maintenance
    • Broad connectivity options for modern integration requirements, including TCP/IP, batch files, web services and databases

    HL7 Integration Success Stories from PilotFish Clients

    Integration Solution Aggregates HL7 ORU Alerts for Large Regional Hospital

    A large regional hospital used PilotFish to consolidate unmanageable LIS-driven provider result alerts by aggregating HL7 ORU messages into a single, actionable report and workflow.

     

    Multi-Vendor HL7 Integration Challenge Solved with PilotFish

    A hospital management company used PilotFish as a centralized integration layer to exchange thousands of real-time HL7 message types including ADT, ORM and ORU across multiple third-party systems and sites.

     

    EHR HL7 Medical Device Integration

    A remote cardiac monitoring solutions provider used PilotFish to modernize its HL7 integration approach and improve how device results are sent and integrated into EHR workflows.  


    FAQ


    Routing frequently depends on message content or metadata, for example facility, message type or specific observation attributes. In PilotFish, routing rules can evaluate message data and decide which target system or systems should receive a given message.


    PilotFish’s ORU demo flow shows HL7 received over LLP, converted to a generic XML representation, mapped to a simplified XML model and then transformed into SQL statements for database delivery via a database transport.


    Yes. PilotFish describes the Route stage as a control layer where routing rules can select which targets receive a message, including sending a single inbound message to one or many target systems.


    PilotFish positions interface development as a consistent 7-stage graphical process, configured without coding or scripting, and designed to support interface reuse and easier long-term maintenance across interfaces.


    PilotFish has an inline Testing Mode where you can run pre-saved tests, start and stop tests at specific stages and review outputs by stage, including the inbound HL7, intermediate XML and target-ready payloads.


    Check out our FAQ pages for more.


    How to Create an HL7 ORU Message Interface

    Welcome! In this demonstration, you will see some of the unique capabilities of the eiConsole for Healthcare.In this example, HL7 is coming from a hospital and then sent on to a data measures store or a database. We begin in the main route grid that depicts the flow of data between our Source System, a hospital and our Target System, an external database. We’ll begin with our Listener. In this case, we’re using HL7 over LLP. This listener monitors the specified TCP socket for HL7 messages.

    Source Transformation

    We’ll then move on to the Source Transformation. This will take the HL7 data and convert it into a generic XML representation. We do this by using the eiConsole’s HL7 to XML transformation module. In this drop-down, we’ll choose HL7 2.x to find our version and then we’ll move on to the logical transformation.

    Logical Transformation

    Data transformations in the eiConsole are handled using PilotFish’s Data Mapper. All of your logical mapping is done here between your source format, in this case, our HL7 data represented as a tree to the left, and our target format – in this case a custom XML representation of some of the patient data we wanted to retain in our database.
    Logical mapping rules are created through dragging & dropping onto the structure in the middle, with green nodes representing XML elements from our custom XML file and our blue nodes representing values mapped to those fields.

    For instance, here we can see the patient information mapped into the person’s last name, first name, and date of birth field. We can also see a yellow note underneath the birth date that demonstrates how the eiConsole’s data mapper can be used to perform data manipulation during the mapping process. Here we’re formatting the date of birth value coming in from our HL7 and an XML date format using our date formatting tool from the palette above. For instance, we can see here that our PID.7 is coming in with this format yyyymmdd. Our desired output format for our XML file will be yyyy-mm-dd. Here we define that using our date time formatter so that all incoming data will automatically change to that format. As this mapping was created XSLT was generated under the covers. Once all of our fields have been mapped and our mapping is complete, we can move on to the Routing stage.

    Routing Stage

    In the Routing stage, we route the data along to our single Target System which includes the target transformation to convert our generic XML representation of the HL7 into the specific SQL database statement.

    Target Transform Stage

    In our next stage, the Target Transform, we will now do another logical transformation – taking that XML representation and creating SQL statements from that. We’ll do this using our data mapper. On the left-hand side of our data mapper, you can see the simplified patient data that we took from the HL7 message initially then parsed out and created this custom XML file with.

    On the right-hand side, we have connected up to a database and loaded in our tables and also have statements and functions below. Our mapping here in the middle indicates that we will insert this information from our source system into these rows and tables. Once this is complete, we can go to our next stage.

    Transport Stage

    In our Transport Stage, we’ve chosen that we’ll connect up to a database. There are other options for Transport much like our Listener stage. To connect up to that database we simply choose this from the drop-down and enter some basic connection credentials. We can also test our database connection below using this button. Now that we’ve viewed the configuration of these stages, let’s move along to Testing Mode to see it in action.

    Testing Mode

    Here we’ll see all the stages that we just talked about represented as question marks. We can choose to start our tests at any stage and end it at any stage. In this case, we’ll use a pre-saved configured test that we are using because we’re not actively listening on a TCP port for an HL7 feed. This pre-saved test will start after the Listener stage and will feed it a sample file. Once we hit execute test, you will see the question marks turn to green check marks.

    Starting with the Source Transform of the test, we can see each stage output throughout all of the testing mode. Here we can see the sample file of HL7 that was fed into our test. Here we can see an XML representation of that HL7 that was created. Here we can see the XML that we parsed just using those simplified patient data.

    To look at our target transform sign, here we can see the XML representation of what will happen in our SQL database, which will then be sent on to a live database by entering that connectivity information.

    And that’s all there is to it! It’s just that simple to use the eiConsole for Healthcare to manipulate HL7 data and convert HL7 data into virtually any other file format.

    Thanks for watching!


    If you’re curious about the software features, free trial, or even a demo – we’re ready to answer any and all questions. Please call us at 813 864 8662 or click the button.

    X12, chartered by the American National Standards Institute for more than 35 years, develops and maintains EDI standards and XML schemas.

    This is a unique website which will require a more modern browser to work! Please upgrade today!