Video Key Moments
Integrating HL7, X12 EDI and FHIR JSON for Healthcare Analytics and Reporting
In this demo, you use the PilotFish eiConsole IDE to build a single route that accepts HL7, X12 EDI and FHIR JSON feeds, normalizes them into XML, then drives database updates plus RESTful services for analytics and quality reporting.
[Try the Free 90-day Trial] [Talk to an Expert]
30-second summary
- Build one configurable route for HL7, X12 EDI and FHIR JSON transactions that supports analytics and reporting use cases
- Use 40+ Listeners, 35+ Transports plus 140+ Processors to connect to files, queues, web services, cloud storage and databases
- Normalize HL7, X12 EDI and FHIR JSON into XML then map into reusable canonical models
- Apply SNIP validation plus “Friendly Names” to X12 transactions
- Test routes inline with real data, trace every stage, then deploy to eiPlatform
Build a Multi-Feed Route in eiConsole
The demo starts on an aggregation route used for analytics plus reporting. The route shows multiple inbound feeds: HL7, X12 EDI and FHIR JSON. On the left, you see Source Systems that represent where data is coming from. On the right, you see Target Systems that represent where transformed data will be delivered.
Key ideas in this section:
- Treat each row in the assembly line as a reusable pattern for getting data from a system, then delivering it to another
- Mix HL7, X12 EDI and FHIR JSON feeds in the same route while keeping the configuration readable
- Use the same 7-stage assembly line pattern regardless of format or protocol
For the EDI feed, the video focuses on:
- An FTP Listener that polls a provider directory for inbound EDI claim files
- Simple configuration of host, port, credentials, plus polling interval
- A Listener that is ready to run as soon as the configuration is saved
EDI to XML Data Transformation
The next stage is the Source Transform. PilotFish standardizes on XML as the internal representation of data, giving developers a consistent way to operate on messages across routes and projects.
For X12 EDI, the transformation is split into two logical steps:
- Use the EDI Transformation Module to parse raw X12 into a structured XML baseline
- Enrich the XML with human-readable “Friendly Names” for codes, which simplifies mapping plus troubleshooting
SNIP validation is available through the rules-driven EDI SNIP Validation Processor. SNIP Types 1 through 3 are provided out of the box. Types 4 through 7 are available as add-ons for teams that require full HIPAA compliance and code set validation.
X12 EDI Data Mapping
Once the EDI has been converted to XML, the demo proceeds to the data mapping step. Here, you use the eiConsole Data Mapper, a 3-pane graphical drag & drop tool.
- On the left, you see the source EDI 837 XML with loops plus segments
- On the right, you see a simplified patient-centric canonical XML structure that downstream analytics can consume
- In the middle pane, you create mapping logic by dragging from source to target or by using functions from the palette for more complex transformations
Examples shown in the demo:
- Map a subscriber or patient’s last name from the correct 2000B loop plus NM103 element
- Build conditional logic for elements that depend on service type, payer or provider information
- Reuse mapping templates so that similar EDI routes can be created faster with less risk
Route Plus Target Transforms
The Route stage acts as the control layer between sources plus targets. Rules can inspect data attributes or envelope information to decide which Targets should receive a given message. In the video, the route sends messages to all configured Targets, which keeps the focus on the transforms.
On the target side, you see two primary outcomes from the EDI XML:
- A Target Transform that produces SQL insert statements to populate a quality measures data store
- A Target Transform that converts the same canonical XML into JSON for downstream APIs
This pattern lets you take one inbound EDI file and then fan out into multiple formats, destinations, plus use cases without duplicating business logic.
Inline Testing from EDI to JSON
The final portion of the demo uses the eiConsole testing mode. You load a saved X12 EDI test file, then press “Go” to watch the message move through each stage from left to right.
During testing you can:
- Inspect the original EDI 837 claim file
- View the XML produced by the EDI Transformation Module, including “Friendly Names”
- Open the Data Mapper output to confirm the canonical XML looks correct
- Review the JSON produced for the RESTful web service
- See Transport results, then diagnose issues if a target system is not ready to accept messages
This approach lets you iterate quickly on mappings plus route configuration while keeping test versions alongside the route.
Try It with PilotFish
To explore the same patterns used in the video:
- Follow the “Building an X12 EDI Interface in 10 Easy Steps” guide
- Review the “X12 EDI Data Mapping” documentation for deeper coverage of the Data Mapper
- Browse the “X12 EDI HIPAA Transactions” plus “X12 EDI Healthcare Supply Chain Transactions” pages for supported transaction sets
You can download a full Free 90-Day Trial of the eiConsole for X12 EDI. The trial includes the EDI Transformation Module plus Format Builder so you can build an end-to-end interface in less than 20 minutes, then see how the assembly line approach works in your environment.
FAQ
The eiConsole uses the EDI SNIP Validation Processor to apply SNIP Types 1 through 3 out of the box with an option to add Types 4 through 7 for full structural situational plus semantic checks.
Yes. The pattern used in the video is reusable for any X12 transaction so you can plug in different versions for payers or providers without rebuilding the entire route.
You switch the eiConsole to Testing Mode, load a sample X12 file, then step through each stage in the route to inspect raw EDI, baseline XML, mapped canonical XML and the final JSON output before deploying the route to eiPlatform.
Yes. PilotFish supports deployment on virtual machines cloud infrastructure or Docker containers with hot deploy so routes can be updated without downtime.
Check out our FAQ pages for more.
EDI X12 Healthcare Interface Engine
This is the PilotFish eiConsole – the developer’s workstation you’ll use to build, test, maintain and deploy all of your integration interfaces. Also, along the way, we’ll be diving a little bit deeper into some of the EDI functionalities available with the eiConsole. So let’s get started.
Route Built with HL7, X12 EDI & FHIR JSON Feeds
Opening up this route here – this is our aggregation for analytics and reporting route. Here, we see that we have several different data feeds – some HL7, EDI, and some FHIR JSON – but we will be primarily dealing with our EDI feed. We have our source systems on the left – you can think of each row as a place for getting data “from”. We have our target systems on the right – this is our place for sending data “to”. No matter which system it comes “from” or the data format it moves through, the same assembly line process as ingested, transformed, routed and finally sent to its final destination.
Let’s take a look a little bit closer at our EDI feed here. We’re starting out with an FTP listener to pick up that EDI from our provider. Here, we’ve defined our host port, credentials, and how often we want to look for files and then with that setup, the Listener is ready to go. Next, we’ll be moving into our source Transform stage, where we’re taking that raw EDI and transforming it into XML.
EDI to XML Data Transformation
With the PilotFish software, we use XML as the underlying data format for all of our different transformations. It makes it very easy and extensible to be able to work with these across routes, across transforms – so that anywhere in the product (as long as you’re familiar with XML), you can operate on the data.
We’re transforming this EDI in a two-part process – where first, we’re using our transformation module to take that raw EDI and turn it into that XML baseline format. Since we’re dealing with X12 EDI, we can add some additional context to the structure we’re producing. For example, we can do things like adding in some human-readable friendly name code definitions.
Validation of SNIP Types 1-7 (SNIP Levels) is handled by PilotFish’s stand-alone rules-driven EDI SNIP Validation Processor. The EDI specification includes SNIP Types 1-7 (SNIP Levels) that define checks to ensure a given EDI message is EDI compliant and passes specific criteria for being well-formed. PilotFish provides SNIP validation out-of-the-box for Types 1-3 and Types 4-7 as an add-on.
X12 EDI Data Mapping
The second half of that transformation process is a logical mapping. This is an XML to XML mapping using our data mapper.
This is our data mapper here. It’s our 3-pane graphical drag & drop mapping tool. (Learn more about X12 EDI Data Mapping) The way that this is assembled is that we have our source format on the left. Since we’re dealing with EDI, we’ve got our EDI 837 XML here. You can see all of our loops there. And on our target side, we’ve got this little patient canonical XML structure that we’re hoping to produce.
You basically drag & drop into the center pane to build your mapping, using the tools palette at the top for more complex operations as needed.
It’s really just as simple as looking here – we’ve got our patient last name and we’ve just navigated through the tree to get our 2000 B, 2000 BA, get our NM 103 drag it into the pane – then it’s ready to go.
Routing EDI Messages
Next, we move into the routing stage. The routing stage primarily acts as a kind of balance between the source and target systems. So for any of our incoming source messages, we can set up arbitrarily complex routing rules to save for this given message – it may be based on something in the data itself or some transactional information around that data – send it to a certain subset of target systems. But here, we’re just sending it to all targets and then moving into our target side. Here we’re taking that EDI XML and we’re using it to produce some database insert statements to update this quality measures data store and then we’re also taking that EDI XML and producing some JSON.
Testing the EDI Route
Looking at it in testing mode, we’ll look at some real data flowing through. Here we’ll load up this EDI test that I have saved. As I hit “go”, we’ll see the data move through the system – moving left to right through the stages. Here we can look at the output of each of the different stages in testing mode. We’ll see here the sample 837 claims file that we’re starting out with. Then we can look at the results of our EDI transformer where we’re producing that baseline XML structure and where we see those friendly names that I mentioned earlier.
Next, we can look at our XSLT stage. Here’s that little patient canonical XML that we produced in our data mapper. Moving into the routing stage, we didn’t do any transformation here so there’s nothing really to see. But then looking into our target side, we can look at the results of our XML to JSON and we can see our JSON transformer.
Here’s the final XML payload actually in JSON – so we’ve gone from EDI to XML and then to JSON, all in one step. And then finally here – looks like our RESTful web service wasn’t quite ready to receive our message yet; that’s something that I could then go fix and then come back to retest. So it’s really just that simple with the eiConsole.
As you can see – in just a few easy steps, we were able to ingest some data, transform it to XML and then transform it into both database statements (as well as into some JSON (a different file format)) and then send them both on to their final destination systems.
Try It!
For more on PilotFish’s EDI tools and resources, go to Building an X12 EDI Interface in 10 Easy Steps, X12 EDI Data Mapping, X12 EDI HIPAA Transactions and X12 EDI Healthcare Supply Chain Transactions.
We invite you to take advantage of PilotFish’s eiConsole for X12 EDI by downloading a full, FREE 90-Day Trial Version of our software. Users can try out our new EDI Transformation Module and Format Builder. With the eiConsole X12 EDI Quick Start Tutorial, users can complete an end-to-end interface in less than 20 minutes and get a real sense of the ease-of-use of PilotFish’s Interface Engine solutions.
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.