X12 EDI Examples
ZK MVVM Form Binding CRUD with Spring and Hibernate - Part 13
More & More Validation using Hibernate Validator
EDI 270–5010 Documentation–BHT – Beginning of Hierarchical Transaction
BHT – Beginning of Hierarchical Transaction
EDI 270–5010 Documentation - ISA – Interchange Control Header
ISA – Interchange Control Header
The ISA is a fixed record length segment and all positions within each of the data elements must be filled. The first element separator defines the element separator to be used through the entire interchange. The segment terminator used after the ISA defines the segment terminator to be used throughout the entire interchange.This results in the segment terminator always being in position 106.
| Seg ID | Segment Name | Format | Length | Ref# | Req | Value | |
| Header | ISA | Interchange Control Header | 3 | R | ISA | ||
| Element Separator | AN | 1 | * | ||||
| ISA01 | Authorization information qualifier | ID | 2/2 | 101 | R | 00 or 03 See below for more information | |
| Element Separator | AN | 1 | * | ||||
| ISA02 | Authorization information | AN | 10/10 | 102 | R | Will contain User ID if ISA01 is 03. Will Contain 10 Empty spaces if ISA01 is 00 | |
| Element Separator | AN | 1 | * | ||||
| ISA03 | Security information qualifier | ID | 2/2 | 103 | R | Will Contain 01 if ISA01 is 03. Will Contain 00 if ISA01 Is 00. | |
| Element Separator | AN | 1 | * | ||||
| ISA04 | Security information | AN | 10/10 | 104 | R | Will contain Password if ISA01 is 03. Will Contain 10 Empty spaces if ISA01 is 00 | |
| Element Separator | AN | 1 | * | ||||
| ISA05 | Interchange ID Qualifier | ID | 2/2 | 105 | R | ZZ | |
| Element Separator | AN | 1 | * | ||||
| ISA06 | Interchange Sender ID | AN | 2/15 | 106 | R | See below for more information | |
| Element Separator | AN | 1 | * | ||||
| ISA07 | Interchange ID Qualifier | ID | 2/2 | 105 | R | 01 | |
| Element Separator | AN | 1 | * | ||||
| ISA08 | Interchange Receiver ID | AN | 15/15 | 107 | R | See below for more information | |
| Element Separator | AN | 1 | * | ||||
| ISA10 | Interchange Time | TM | 4/4 | 109 | R | Current Time in HHMM Format | |
| Element Separator | AN | 1 | * | ||||
| ISA11 | Repetition Separator | ID | 1/1 | 110 | R | ^ | |
| Element Separator | AN | 1 | * | ||||
| ISA12 | Interchange Control Version Number | ID | 5/5 | 111 | R | 00501 | |
| Element Separator | AN | 1 | * | ||||
| ISA13 | Interchange Control Number | NO | 9/9 | 112 | R | 000000001 (See below for more info) | |
| Element Separator | AN | 1 | * | ||||
| ISA14 | Acknowledgement required | ||||||
| Element Separator | AN | 1 | * | ||||
| ISA15 | Usage indicator | ID | 1/1 | 114 | R | P or T (See below for more details) | |
| Element Separator | AN | 1 | * | ||||
| ISA16 | Component Element Separator | 1/1 | 115 | R | : (semi colon). this value must be different than the data element separator and the segment terminator | ||
| Element Separator | AN | 1 | * | ||||
Sample:
ISA*00* *00* *ZZ*8431 *ZZ*ZIRMED *130215*1234*^*00501*000000001*1*P*:~
Important Note on the above sample:
ISA02
Since ISA is fixed length segment, even though if no values are present, we need to fill up empty spaces. Here ISA02 is filled with 10 empty spaces.
ISA04
Since ISA is fixed length segment, even though if no values are present, we need to fill up empty spaces. Here ISA04 is filled with 10 empty spaces.
ISA06
Since ISA is fixed length segment, if the value is not 15 characters length, then we need to append empty space to make 15 characters string.
ISA08
Since ISA is fixed length segment, if the value is not 15 characters length, then we need to append empty space to make 15 characters string.
Segment Structure
Sample 2
ISA*03*id27032743*01*XYXY2233 *ZZ*XX09211223 *01*030240928 *130829*1102*^*00501*290811021*0*T*:~
User Name and Password
In some clearing house, they might ask to send the user name and password along with each EDI file. That's what Authorization information Information refer ISA01, ISA02,ISA03 and ISA04. After you sign up with the clearing house, ask your user name and password to send along the EDI File if they need. In such case, ISA01 will have the value"03" , ISA02 will have the user id, ISA03 will have the value "01" and ISA04 will have the actual password. Very important, since ISA is fixed length segment, and ISA02 is 10 character, so if your user id is less than 10 characters, then you need to append empty spaces to make it as 10 character word.
Sample with the User id and Password.
ISA01 - Authorization Information Qualifier
Code to identify the type of information in the Authorization Information
| Code | Definition |
| 00 | No Authorization information Present(No Meaningful information in 102). Advised unless security requirements Mandate use of Additional identification information. |
| 03 | Additional Data Identification. |
ISA03 - Security Information Qualifier
Code to identify the type of information in the Security information qualifier
| Code | Definition |
| 00 | No Security information Present(No Meaningful information in 104). Advised unless security requirements Mandate use of password data. |
| 01 | Password |
ISA05, ISA07- Interchange ID Qualifier
Code to identify the type of information in the Security information qualifier
| Code | Definition |
| 01 | Duns(Dun & BradStreet) |
| 14 | Duns Plus Suffix |
| 20 | Health Industry Number (HIN) |
| 27 | Carrier Identification Number |
| 28 | Fiscal Intermediary Identification Number. |
| 29 | Medicare Provider and Supplier Identification Number |
| 30 | U.S Federal Tax Identification Number |
| 33 | National Association Of Insurance Commissioners Company Code (NAIC) |
| ZZ | Mutually Defined |
ISA06 – Interchange Sender ID
During the sign up process with clearing house, they will assign a unique ID to the software vendor. So in the practice information setup, software should have a option to enter this value. This is mandatory for all the EDI Files, without this ID, clearing house will not be able to process the file.
ISA08 – Interchange Receiver ID
During the sign up process with clearing house, they will provide this value. Usually, this will be clearing house name. So in the practice information setup, software should have a option to enter this value. This is mandatory for all the EDI Files, without this ID, clearing house will not be able to process the file.
ISA13 – Interchange Control Number
Control Number assigned by the Sender for tracking purpose. This number must be identical to the Interchange Trailer IEA02. Ever time
when creating the EDI File, software can generate a unique number to identify the batch for later case to track.
ISA14 - Acknowledgment Requested.
| Code | Definition |
| 0 | No Acknowledgment Requested |
| 1 | Interchange Acknowledgement Requested |
Default to 0. In some cases, if the software vendor integrated to clearing house via web services. then we can ask the clearing house to send the acknowledgment for each EDI File batches.
ISA15 – Usage Indicator.
| Code | Definition |
| P | Production Data |
| T | Test Data |
After the sign up process with clearing house, they will ask the software vendor to send sample files with different use cases. In such cases, all the files should be send as Test Data. So in the practice information setup, software should have this option to select. Once test files are approved, then software admin can change this value to Production.
EDI 270 - 5010 Health Care Eligibility/Benefit Inquiry
If you are new to Medical Billing, then please read this article first.
If you are new to EDI, then read the following articles
1. What is an EDI ?
2. EDI Transactions
3. Understanding EDI Structure
4. EDI Instruction
Introduction
For the health care industry to achieve the potential administrative cost savings with Electronic Data Interchange (EDI), standards have been developed and need to be implemented consistently by all organizations. To facilitate a smooth transition into the EDI environment, uniform implementation is critical.
Providers of medical services must currently submit health care eligibility and benefit inquiries in a variety of methods, either on paper, via phone, or electronically. The information requirements vary depending upon:
The Health Care Coverage, Eligibility, and Benefit transactions are designed so that inquiry submitters (information receivers) can determine (a) whether an information source organization (e.g., payer, employer, HMO) has a particular subscriber or dependent on file, and (b) the health care eligibility and/or benefit information about that subscriber and/or dependent(s). The data available through these transaction sets is used to verify an individual’s eligibility and benefits, but cannot provide a history of benefit use.
This paired transaction set is comprised of two transactions: the 270, which is used to request (inquire) information, and the 271, which is used to respond with coverage, eligibility, and benefit information. The official names for these transactions are:
ANSI ASC X12.281 - Eligibility, Coverage, or Benefit Inquiry (270)
ANSI ASC X12.282 - Eligibility, Coverage, or Benefit Information (271)
The 270 document typically includes the following:
The ASC X12N Specification - 5010 Version
1. EDI 270–5010 Documentation - ISA – Interchange Control Header
2. EDI 270–5010 Documentation – GS – Functional Group Header
3. EDI 270–5010 Documentation – ST – Transaction Set Header
4. EDI 270–5010 Documentation – BHT – Beginning Of Hierarchical Transaction
5 EDI 270–5010 Documentation – HL – Hierarchical Level
6. EDI 270–5010 Documentation–2100A Information Source Name
7. EDI 270–5010 Documentation–2000B Information Receiver Level
8. EDI 270–5010 Documentation–2000B Information Receiver Name
9. EDI 270 – 5010 Documentation-2000C Hierarchical Level
10. EDI 270 – 5010 Documentation – Subscriber Trace Number
11. EDI 270 – 5010 Documentation – 2100C SUBSCRIBER Name
EDI Examples
Please note ; all these examples are tested against WPC First Pass software.
You can download trial version here.
Also, you can download the following trial version software to view/validate EDI File.
1. EDI Notepad2. HIPPA Document Viewer 2
3. On Line Validator American Coders
4. On Line Validator EDIVance
The following open source converts X12 EDI File to XML and 1500.
OopFactory X12 Parser
The following URL discuss about other open source in EDI Software.
Comparing Open Source EDI Software
Sample EDI 270 5010. For clear understanding, line separator are used between loops
ISA*03*id27032743*01*XYXY2233 *ZZ*XX09211223 *01*030240928 *130829*1102*^*00501*290811021*0*T*:~
GS*HS*XX09211223*030240928*20130829*1102*1*X*005010X279A1~
ST*270*0001*005010X279A1~
BHT*0022*13*0001*20130829*1102~
HL*1**20*1~
NM1*PR*2*FLORIDA BLUE*****PI*BCBSF~
HL*2*1*21*1~
NM1*1P*2*Bella Vista Health Center*****XX*1306849724~
HL*3*2*22*0~
TRN*1*290811021*3030240928~
NM1*IL*1*MULLIN*DANIEL****MI*XJBH12345678~
DMG*D8*19571112~
DTP*291*D8*20130829~
EQ*30~
SE*13*0001~
GE*1*1~
IEA*1*290811021~
Questions or feedback are always welcome. You can email me at vbsenthilinnet@gmail.com.
RESTful Java Web Services wrote in java which takes JSON File as input and gives you the actual EDI Message.
Demo
In your EMR/PMS software, if you need to parse the EDI 271 Response, You can use our API Service which will parse and returns as Human Readable Text. Please contact me via email vbsenthilinnet@gmail.com for more details
I’ve developed Web API in which you can pass the EDI 271 Message and API will return the Human Readable Text.
These RESTful Web Services are developed using Spring Boot.
The following video demo explain how to Make restful web service API for the service.
Parse 271 Message to Text
In order to test all the RESTful Web Services , an testing tool also developed and here is the video demo for the same.
Parse 271 Message to JSON Format
Parse 271 Message to HTML
Workflow
1) Patient Books an appointment.
2) Billing team before the appointment date, check the Patient Insurance Eligibility.
3) Software prepares the EDI 270 Message and send to the Payer via Clearing House entity, Payer in turn returns the Response in EDI 271 Message. Here clearing house is the middle man between Health care Organization and Payer
4) Software parse EDI 271 Message and convert into Human Human Readable Text and show to application End User
Another Example for EDI 270 and 271
1. Provider Smith uses ABC Billing Software.
2. Provider Smith already signed up with XYZ Clearing House and an ID has been assigned to Provider Smith by the clearing house.
3. ABC Billing software has the option of generating EDI 270 message and through web service call, it will send the message to the clearing house.
4. XYZ receives message within few seconds and then identify the message for Payer GOLD. Since XYZ already enrolled with the Payer Gold, so it just forward the message to Payer Gold via web service.
5. Payer Gold receives the message and prepare the response 271 and send back to the clearing house. Immediately clearing house forward the response to the Provider Smith’s ABC billing software.
270, 271 healthcare transactions background information
The eligibility 270 Request and 271 Response is the third most utilized transactions in the healthcare industry, after claims submission and remittance advice transactions. Mandates from the Department of Health and Human Services requiring claim and remittance adoption were contributing factors to claim and remit transaction levels less the 270/271 could be the predominate healthcare EDI transaction. Before the 270/271 transactions were adopted, most eligibility verification was handled over the phone. Since the Healthcare 270/271 has been made a standard industry wide, Providers of Service can send the 270 Request to all Insurance Companies and expect to receive the same uniformed 271 Response format across the board.
For Source code or Medical Billing Software Consultation, please contact me at vbsenthilinnet@gmail.com
ZK + Spring Security Custom Login form
In this example, we will see step by step how to integrate ZK and Spring security
ZK MVC CRUD With Spring 3 + JPA + Hibernate 4 Entity Manager
A simple CRUD Application based on JPA.
ZK MVVM Form Binding CRUD with Spring and Hibernate - Part 6
Spring security 3 integration with hibernate 4
Electronic Claim Submission
We know that "Medical Billing is a Process of Submission of Bills/Claims to the Insurance Company in a specified format for the service rendered (for the treatment given) by the doctor for the patient." And also we know that the most widely used form is Health Care Finance Admin-1500 designed by the Health Care Financing Administration (CMS 1500 or HCFA 1500).
But instead of Sending in Paper form, We can also use Electronic transmission of claims. Here are the advantages sending the claim electronically instead of paper claims.
- Electronic Submission of Claims (Electronic Data Interchange or EDI) can help reduce paperwork, eliminate printing and mailing expenses, and improve claim payment accuracy.
- No concerns of claims being lost in transit, no concerns regarding data entry errors being made by insurance staff while processing claims, less rejections, less turnaround time between the process of data and process of claim by the insurance company.
- When you file an electronic claim, you also save valuable time. When a paper claim is filed, the U.S. mail may take a few days to deliver the claim. The insurance company must digitize the information, then it must process the claim and, finally, the company has to mail the statement and reimbursement back to you. With electronic claims, you send the claim through Internet connection. This takes as much time as picking up the telephone and calling the company. The insurance carrier instantly receives the claim, the claim is already digitized and the company can process the claim immediately.
Now you may ask a question, since Electronic claim transmission is acceptable and useful, then why do we need still to use CMS 1500 to send the claims.The answer is : we cannot completely wipe off the Paper format, because there are some scenario, you need to send only by paper claims. We will see later about that scenario
ZK MVVM Form Binding CRUD with Spring and Hibernate - Part 2
Create domain object and create DAO/Service layer.
Medical Billing–Patient Insurance
Patient Insurance
We know that, patient has to give his insurance information to the Doctor before the treatment. Collecting the patient insurance information is very important data entry part to avoid delayed or denials.
Either at the time of appointment or at the time of patient visit the practice(Check in), patient insurance information has to be collected. If it is existing patient, then we need to verify the existing patient insurance information which is already in the file(or computer system).
Very Important. For New Patient, we need to collect signed copy of HIPAA consent form. For more details, please check here.
The following information has to collect from the patient
1. Insurance Company Name
2. Policy No (Unique number to identify the patient within the insurance system)
3. Policy Group No (Identifies in which plan the patient enrolled with the insurance company)
4. Effective Date (From which date, benefits or covered services are allowed)
5. Relationship to the Patient(Patient may have the insurance on his name, or he/she may be covered by one of the family member)
6. Insured details such as first name, last name, etc if the patient is not the same as insurer.
7. Copay and deductible amount
And also, we need to scan the patient insurance card back and front part into the system. Sample Insurance card here.
ZK + Spring Security Login form– Additional Login Parameters - Part 4
Extra Spring Login Parameters.
Different format of Medical Forms
In the last section, we said submission of claims to the insurance company in a specified format. Let us see some important format as follows
1. HCFA(Health Care Financing Administration) 1500 form or CMS(Centers for Medicare and Medicaid Services) form.
It is a standard form that non-institutional providers use such as your family doctor or specialist used send claims. Mostly individual
Physician charges are billed on the CMS 1500 form
2. UB-04( uniform institutional billing claim form) Form (formerly UB-92 OR CMS-1450)
This form is used to submit claims for institutional providers such as hospitals. Some insurance accepts CMS 1500 form to submit hospital billing. You should always check the insurance company which form they prefer to bill hospital charges.
You can see sample CMS 1500 and UB04 Form here
Sample CMS 1500 and UB04 Form
Sample UB04 Form
eClaimManager Practice Management System. For subscription, please contact vbsenthilinnet@gmail.com
Preview CMS 1500 Form
Nagata EDI Tool : Create CMS 1500 Form using EDI 837 Professional
EDI RESTful Web Service API
Medical Billing Process
Medical Billing is a Process of Submission of Bills/Claims to the Insurance Company in a specified format for the service rendered (for the treatment given) by the doctor for the patient. Why the doctors approach the insurance company for the payment? Since the Majority of patients has insurance coverage and details of such coverage are provided to the doctor before the treatment. So it is the responsibility of the doctor to send the claims to the insurance company and get paid for the treatment given.
Here is the overall medical billing process. In the later section, we will see more detail on each section.
Insurance Verification:
Process started from here and usually front desk people are doing this process. Its a process of verifying the patients insurance is active or inactive by calling insurance or through online verification. If the insurance is inactive, it does not make any sense to send the claim/bill to the insurance company to get paid. So the front office people have to make sure that patient insurance is active even before the patient appointment. If the insurance is not active, then they have to collect the fee from the patient itself(In medical billing, this normally called as Self Pay claim or Patient Responsibility claim).
Charge Entry:
Charge entry is nothing preparing the claim to be sent to the insurance company. After getting the treatment details and patient disease details from the doctor, the billing department will start preparing the claim.The claim details, that are needed to get your insurance claims processed are entered here, and includes, the face sheet of the patient, doctor details, information about the insurance coverage of the patient and billing information.
Payment Posting:
Payment posting is simply posting payments from the insurance company into the system. The insurance company sends a check along with an Statement(This is statement is called as Explanation of benefit , shortly as EOB). On the EOB the insurance company will tell you the allowed amount and the amount they paid.
Denial Management:
The insurance companies reject(deny) paying claims for a number of reasons. Incomplete claim form, inconsistent patient information, etc.The insurance company indicates the reason for the denial in the Statement. Billing department will resolve those errors and again submit the claim to the insurance company.
Here is the overall medical billing process. In the later section, we will see more detail on each section.
![]()
![]()
Questions or feedback are always welcome. You can email me at vbsenthilinnet@gmail.com.
ZK MVVM CRUD With Spring 3 + JPA + Hibernate 4 Entity Manager
A simple CRUD Application based on JPA.
ZK MVVM CRUD With Spring 3 + JPA + Hibernate 4 Entity Manager–Part 7
Look and Feel –> Change the default ZK CSS
ZK MVVM CRUD With Spring 3 + JPA + Hibernate 4 Entity Manager–Part 5
DAO and Service Layer for CRUD operation.
ZK MVVM CRUD With Spring 3 + JPA + Hibernate 4 Entity Manager–Part 3
Define the persistence.xml file
ZK MVVM CRUD With Spring 3 + JPA + Hibernate 4 Entity Manager–Part 2
Create ZK Application with Eclipse and Maven.
ZK Passing Parameter between two files using MVVM–Part 2
Overview
ZK Passing Parameter between two files using MVVM–Part 1
Overview
How to submit the claims after primary insurance ?
This is another interesting area where lot of automation is required in the software.
ZK Passing Parameter between two files using MVC - Part 5.
Overview
ZK Passing Parameter between two files using MVC - Part 4.
Overview
ZK Passing Parameter between two files using MVC - Part 6
Overview
Move List box item up and Down using MVC Design Pattern
MVVM CRUD with Spring 3.1 and Hibernate 4 and ZK - Part 4
This article focus on Viewing (Read only Mode) existing address in the modal window.
Move List box item up and Down using MVVM Design Pattern
MVVM CRUD with Spring 3.1 and Hibernate 4 and ZK - Part 3
This article focus on Editing existing address in the modal window.
ZK Passing Parameter between two files using MVC - Part 3.
Overview
MVVM CRUD with Spring 3.1 and Hibernate 4 and ZK - Part 2
This article focus on Adding new address and refresh the Listing screen
ZK Passing Parameter between two files using MVC - Part 2.
Overview
ZK With Spring + JPA + Hibernate Entity Manager
In this article, let us see how we can integrate ZK With spring, JPA and Hibernate Entity Manager.
ZK MVC CRUD With Spring 3 + JPA + Hibernate 4 Entity Manager–Part 5
DAO and Service Layer for CRUD operation.
ZK Passing Parameter between two files using MVC - Part 1.
Overview
EMR Appointment Features
Let me list the most common features in the Appointment module and their priority using MoSCoW Method.