X12 interactions tend to be batch orientated with large sets of data requiring validation. Part of the interchange involves the generation of a TA1 acknowledgement. This channel shows an elegant way to generate TA1 acknowledgements by leveraging the visual nature of the translator environment to visually show validation problems.
We have a number of business partners like Transunion that have been using Iguana for clearing millions of X12 financial transactions for many years. If you are one of those partners or are looking at using Iguana for X12 processing then this channel will be of interest.
The specification for this was driven by recommendations and “hardcoded” values based on document “Electronic Data Interchange Transaction Set Implementation Guide” for “HealthCare Eligibility Benefit Inquiry and Response” (Includes October 2002 Addenda Changes) the “270/271 Combined May 2000 004010X092 and October 2002” 004010X092A1. You can purchase these documents from the Washington Publishing Company.
Using the Code [top]
- Import the X12: Generate TA1 Acknowledgement channel from the Builtin: Iguana Protocols repository
- Experiment with the code to find out how it works
- Then add the module to your Translator project
- Copy the require statement from the channel and add it at the top of your script
Note: This module uses require to return a single function
- Adapt the code to your own requirements
- Interactive scripting help is included for this module
This is the github code for the main module:
How it works [top]
To understand how the channel is put together please try the following steps:
- Open the translator editor for the channel and open up a dialog for the Report value shown circled here:
- Then cycle through the sample transactions included with the channel and see the changing report.
The report will say either “Zero validation errors encountered.” or it will have a list of validation problems with good information explaining each problem like “Code 001: Exchange control numbers in ISA.13 and IEA.2 must match. ISA.13=’000026743′, IEA.2=’000026744′“.
But wait! There is more.
If you drill into the code and go and look at the function “Validate” in the x12.ack.generate module in the project you see output from the validation rules which have failed:
See how “CheckInterchangeControlNumberMatch” has “VALIDATION RULE FAILED!!” returned from the function?
This is a visual clue as to what validation rule failed. By clicking on the (purple) function link next to the failed rule we can jump to the code and see the validation rule failure:
So for this reason it makes it really easy to operate this channel by providing very visual troubleshooting of where problems arise.
It’s easy to replicate the validation rule pattern here to extend and add your own validation rules or if needed to comment out some rules to relax the implementation to allow some non standard X12 information to be processed.
More information [top]
- Source code for the main module on github
- Source code for the hl7.delimiter.fix.lua module on github
- X12: Parsing and Generation