private void cmdTranslate_Click(object sender, System.EventArgs e)
        {
            // This is just an example to show how to translate a HIPAA 837 4010 X098 EDI X12 file in C#
            // with the Framework EDI component

            ediDocument oEdiDoc = null;
            ediSchemas oSchemas = null;
            ediDataSegment oSegment = null;
            ediDataElements oElements = null;
            ediDataElement oElement = null;
            ediDataElement oCompositeElement = null;
            ediDataElements oSubElements = null;

            string sSegmentID;
            string sLoopSection;
            int nArea;
            string sValue;
            string sPath;
            string sHlEntity = "";
            string sNm1Entity = "";
            string sQlfr;

            //application path
            sPath = AppDomain.CurrentDomain.BaseDirectory;
 
            //CREATES EDIDOC OBJECT
            ediDocument.Set(ref oEdiDoc, new ediDocument());
 
            //THIS MAKES CERTAIN THAT FREDI ONLY USES THE SEF FILE PROVIDED, AND THAT IT DOES 
            //NOT USE ITS BUILT-IN STANDARD REFERENCE TABLE TO TRANSLATE THE EDI FILE.
            ediSchemas.Set(ref oSchemas,(ediSchemas) oEdiDoc.GetSchemas());  //oSchemas = (ediSchemas) oEdiDoc.GetSchemas();
            oSchemas.EnableStandardReference = false;
 
            //THIS OPTIONS STOPS FREDI FROM KEEPING ALL THE SEGMENTS IN MEMORY
            oEdiDoc.CursorType = DocumentCursorTypeConstants.Cursor_ForwardOnly;
 
            //LOADS THE SEF FILE
            oEdiDoc.ImportSchema(sPath + "837_X098.SEF", 0);
 
            //LOADS THE EDI FILE
            oEdiDoc.LoadEdi(sPath + txtEdifile.Text );
 
            //GETS THE FIRST DATA SEGMENT
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oEdiDoc.FirstDataSegment);  //oSegment = (ediDataSegment) oEdiDoc.FirstDataSegment
 
            //LOOP THAT WILL TRAVERSE THRU EDI FILE FROM TOP TO BOTTOM
            while ( oSegment != null )
            {
                //DATA SEGMENTS WILL BE IDENTIFIED BY THEIR ID, THE LOOP SECTION AND AREA
                //(OR TABLE) NUMBER THAT THEY ARE IN.
                sSegmentID = oSegment.ID;
                sLoopSection = oSegment.LoopSection;
                nArea = oSegment.Area;

                if (nArea == 0)
                {
                    if (sLoopSection == "")
                    {
                        if (sSegmentID == "ISA")
                        {
                            sValue = oSegment.get_DataElementValue(1,0);     //Authorization Information Qualifier
                            sValue = oSegment.get_DataElementValue(2,0);     //Authorization Information
                            sValue = oSegment.get_DataElementValue(3,0);     //Security Information Qualifier
                            sValue = oSegment.get_DataElementValue(4,0);     //Security Information
                            sValue = oSegment.get_DataElementValue(5,0);     //Interchange ID Qualifier
                            sValue = oSegment.get_DataElementValue(6,0);     //Interchange Sender ID
                            listBox1.Items.Add(oSegment.get_DataElement(6).Description  + " = " + sValue);
                            sValue = oSegment.get_DataElementValue(7,0);     //Interchange ID Qualifier
                            sValue = oSegment.get_DataElementValue(8,0);     //Interchange Receiver ID
                            listBox1.Items.Add(oSegment.get_DataElement(8).Description  + " = " + sValue);
                            sValue = oSegment.get_DataElementValue(9,0);     //Interchange Date
                            sValue = oSegment.get_DataElementValue(10,0);     //Interchange Time
                            sValue = oSegment.get_DataElementValue(11,0);     //Interchange Control Standards Identifier
                            sValue = oSegment.get_DataElementValue(12,0);     //Interchange Control Version Number
                            sValue = oSegment.get_DataElementValue(13,0);     //Interchange Control Number
                            listBox1.Items.Add(oSegment.get_DataElement(13).Description  + " = " + sValue);
                            sValue = oSegment.get_DataElementValue(14,0);     //Acknowledgment Requested
                            sValue = oSegment.get_DataElementValue(15,0);     //Usage Indicator
                            sValue = oSegment.get_DataElementValue(16,0);     //Component Element Separator
                        }
                        else if (sSegmentID == "GS")
                        {
                            sValue = oSegment.get_DataElementValue(1,0);     //Functional Identifier Code
                            sValue = oSegment.get_DataElementValue(2,0);     //Application Sender's Code
                            sValue = oSegment.get_DataElementValue(3,0);     //Application Receiver's Code
                            sValue = oSegment.get_DataElementValue(4,0);     //Date
                            sValue = oSegment.get_DataElementValue(5,0);     //Time
                            sValue = oSegment.get_DataElementValue(6,0);     //Group Control Number
                            listBox1.Items.Add(oSegment.get_DataElement(6).Description  + " = " + sValue);
                            sValue = oSegment.get_DataElementValue(7,0);     //Responsible Agency Code
                            sValue = oSegment.get_DataElementValue(8,0);     //Version / Release / Industry Identifier Code
                        }   //sSegmentID
                    }    //sLoopSection
                }
                else if (nArea == 1)
                {
                    if (sLoopSection == "")
                    {
                        if (sSegmentID == "ST")
                        {
                            sValue = oSegment.get_DataElementValue(1,0);     //Transaction Set Identifier Code
                            sValue = oSegment.get_DataElementValue(2,0);     //Transaction Set Control Number
                        }
                        else if (sSegmentID == "BHT")
                        {
                            sValue = oSegment.get_DataElementValue(1,0);     //Hierarchical Structure Code
                            sValue = oSegment.get_DataElementValue(2,0);     //Transaction Set Purpose Code
                            sValue = oSegment.get_DataElementValue(3,0);     //Reference Identification
                            listBox1.Items.Add(oSegment.get_DataElement(3).Description  + " = " + sValue);
                            sValue = oSegment.get_DataElementValue(4,0);     //Date
                            listBox1.Items.Add(oSegment.get_DataElement(4).Description  + " = " + sValue);
                            sValue = oSegment.get_DataElementValue(5,0);     //Time
                            sValue = oSegment.get_DataElementValue(6,0);     //Transaction Type Code
                        }
                        else if (sSegmentID == "REF")
                        {
                            sValue = oSegment.get_DataElementValue(1,0);     //Reference Identification Qualifier
                            sValue = oSegment.get_DataElementValue(2,0);     //Reference Identification
                        }   //Segment ID
                    }
                    else if (sLoopSection == "NM1")
                    {
                        if (sSegmentID == "NM1")
                        {
                           sNm1Entity = oSegment.get_DataElementValue(1,0);  
                        }
                        if (sNm1Entity == "41") //SUBMITTER
                        {
 
                            if (sSegmentID == "NM1")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Entity Identifier Code
                                sValue = oSegment.get_DataElementValue(2,0);     //Entity Type Qualifier
                                sValue = oSegment.get_DataElementValue(3,0);     //Name Last or Organization Name
                                listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Submitter) = " + sValue);
                                sValue = oSegment.get_DataElementValue(4,0);     //Name First
                                sValue = oSegment.get_DataElementValue(5,0);     //Name Middle
                                sValue = oSegment.get_DataElementValue(6,0);     //Name Prefix
                                sValue = oSegment.get_DataElementValue(7,0);     //Name Suffix
                                sValue = oSegment.get_DataElementValue(8,0);     //Identification Code Qualifier
                                sValue = oSegment.get_DataElementValue(9,0);     //Identification Code
                            }
                            else if (sSegmentID == "PER")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Contact Function Code
                                sValue = oSegment.get_DataElementValue(2,0);     //Name
                                sValue = oSegment.get_DataElementValue(3,0);     //Communication Number Qualifier
                                sValue = oSegment.get_DataElementValue(4,0);     //Communication Number
                                sValue = oSegment.get_DataElementValue(5,0);     //Communication Number Qualifier
                                sValue = oSegment.get_DataElementValue(6,0);     //Communication Number
                            }   //sSegmentID
                        }
                        else if (sNm1Entity == "40")    //RECEIVER
                        {
                            if (sSegmentID == "NM1")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Entity Identifier Code
                                sValue = oSegment.get_DataElementValue(2,0);     //Entity Type Qualifier
                                sValue = oSegment.get_DataElementValue(3,0);     //Name Last or Organization Name
                                listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Receiver) = " + sValue);
                                sValue = oSegment.get_DataElementValue(4,0);     //Name First
                                sValue = oSegment.get_DataElementValue(5,0);     //Name Middle
                                sValue = oSegment.get_DataElementValue(6,0);     //Name Prefix
                                sValue = oSegment.get_DataElementValue(7,0);     //Name Suffix
                                sValue = oSegment.get_DataElementValue(8,0);     //Identification Code Qualifier
                                sValue = oSegment.get_DataElementValue(9,0);     //Identification Code
                            }
                        }

                    }    //sLoopSection
                }
                else if (nArea == 2)
                {
                    if (sLoopSection == "")
                    {
                    }
                    else if (sLoopSection == "HL" & sSegmentID == "HL")
                    {
                        sHlEntity = oSegment.get_DataElementValue(3,0);
                    }    //sLoopSection



                    if (sHlEntity == "20")    //BILLING PROVIDER
                    {
                        if (sLoopSection == "HL")
                        {
                        }
                        else if (sLoopSection == "HL;NM1")
                        {
                            if (sSegmentID == "NM1")
                            {
                                sNm1Entity = oSegment.get_DataElementValue(1,0);
                            }
                            if (sNm1Entity == "85") //BILLING PROVIDER NAME
                            {
                                if (sSegmentID == "NM1")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Entity Identifier Code
                                    sValue = oSegment.get_DataElementValue(2,0);     //Entity Type Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Name Last or Organization Name
                                    listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Billing Provider) = " + sValue);
                                    sValue = oSegment.get_DataElementValue(4,0);     //Name First
                                    sValue = oSegment.get_DataElementValue(5,0);     //Name Middle
                                    sValue = oSegment.get_DataElementValue(6,0);     //Name Prefix
                                    sValue = oSegment.get_DataElementValue(7,0);     //Name Suffix
                                    sValue = oSegment.get_DataElementValue(8,0);     //Identification Code Qualifier
                                    sValue = oSegment.get_DataElementValue(9,0);     //Identification Code
                                }
                                else if (sSegmentID == "N3")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Address Information
                                }
                                else if (sSegmentID == "N4")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //City Name
                                    sValue = oSegment.get_DataElementValue(2,0);     //State or Province Code
                                    sValue = oSegment.get_DataElementValue(3,0);     //Postal Code
                                }
                            }
                        }
                    }


                    // **** SUBSCRIBER HIERARCHICAL LEVEL ****
                    else if (sHlEntity == "22")    //SUBSCRIBER
                    {
                        if (sLoopSection == "HL")
                        {
                            if (sSegmentID == "HL")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Hierarchical ID Number
                                sValue = oSegment.get_DataElementValue(2,0);     //Hierarchical Parent ID Number
                                sValue = oSegment.get_DataElementValue(3,0);     //Hierarchical Level Code
                                sValue = oSegment.get_DataElementValue(4,0);     //Hierarchical Child Code
                            }   //Segment ID
                        }
                        else if (sLoopSection == "HL;NM1")
                        {
                            if (sSegmentID == "NM1")
                            {
                                sNm1Entity = oSegment.get_DataElementValue(1,0);
                            }

                            if (sNm1Entity == "IL") //SUBSCRIBER NAME
                            {
                                if (sSegmentID == "NM1")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Entity Identifier Code
                                    sValue = oSegment.get_DataElementValue(2,0);     //Entity Type Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Name Last or Organization Name
                                    listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Subscriber) = " + sValue);
                                    sValue = oSegment.get_DataElementValue(4,0);     //Name First
                                    sValue = oSegment.get_DataElementValue(5,0);     //Name Middle
                                    sValue = oSegment.get_DataElementValue(6,0);     //Name Prefix
                                    sValue = oSegment.get_DataElementValue(7,0);     //Name Suffix
                                    sValue = oSegment.get_DataElementValue(8,0);     //Identification Code Qualifier
                                    sValue = oSegment.get_DataElementValue(9,0);     //Identification Code
                                }
                                else if (sSegmentID == "N3")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Address Information
                                }
                                else if (sSegmentID == "N4")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //City Name
                                    sValue = oSegment.get_DataElementValue(2,0);     //State or Province Code
                                    sValue = oSegment.get_DataElementValue(3,0);     //Postal Code
                                }
                                else if (sSegmentID == "DMG")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Date Time Period Format Qualifier
                                    sValue = oSegment.get_DataElementValue(2,0);     //Date Time Period
                                    sValue = oSegment.get_DataElementValue(3,0);     //Gender Code
                                }   //Segment ID
                            }    
                            else if (sNm1Entity == "PR") //PAYER NAME
                            {
                                if (sSegmentID == "NM1")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Entity Identifier Code
                                    sValue = oSegment.get_DataElementValue(2,0);     //Entity Type Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Name Last or Organization Name
                                    listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Payer) = " + sValue);
                                    sValue = oSegment.get_DataElementValue(4,0);     //Name First
                                    sValue = oSegment.get_DataElementValue(5,0);     //Name Middle
                                    sValue = oSegment.get_DataElementValue(6,0);     //Name Prefix
                                    sValue = oSegment.get_DataElementValue(7,0);     //Name Suffix
                                    sValue = oSegment.get_DataElementValue(8,0);     //Identification Code Qualifier
                                    sValue = oSegment.get_DataElementValue(9,0);     //Identification Code
                                }
                                else if (sSegmentID == "N3")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Address Information
                                }
                            } //sNm1Entity
                        }
                        else if (sLoopSection == "HL;CLM")
                        {
                            if (sSegmentID == "CLM")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Claim Submitter's Identifier
                                sValue = oSegment.get_DataElementValue(2,0);     //Monetary Amount
                                listBox1.Items.Add(oSegment.get_DataElement(2).Description + " (Subscriber Claim) = " + sValue);
                                sValue = oSegment.get_DataElementValue(3,0);     //Claim Filing Indicator Code
                                sValue = oSegment.get_DataElementValue(4,0);     //Non-Institutional Claim Type Code
                                sValue = oSegment.get_DataElementValue(5,1);     //Facility Code Value
                                sValue = oSegment.get_DataElementValue(5,2);     //Facility Code Qualifier
                                sValue = oSegment.get_DataElementValue(5,3);     //Claim Frequency Type Code
                                sValue = oSegment.get_DataElementValue(6,0);     //Yes/No Condition or Response Code
                                sValue = oSegment.get_DataElementValue(7,0);     //Provider Accept Assignment Code
                                sValue = oSegment.get_DataElementValue(8,0);     //Yes/No Condition or Response Code
                                sValue = oSegment.get_DataElementValue(9,0);     //Release of Information Code
                                sValue = oSegment.get_DataElementValue(10,0);     //Patient Signature Source Code
                            }
                            else if (sSegmentID == "DTP")
                            {
                                sQlfr = oSegment.get_DataElementValue(1,0);
                                if (sQlfr == "938")        //ORDER
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Date/Time Qualifier
                                    sValue = oSegment.get_DataElementValue(2,0);     //Date Time Period Format Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Date Time Period
                                }
                                else if (sQlfr == "454")        //INITIAL TREATMENT
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Date/Time Qualifier
                                    sValue = oSegment.get_DataElementValue(2,0);     //Date Time Period Format Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Date Time Period
                                }
                                else if (sQlfr == "431")        //Onset of Current Symptoms or Illness
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Date/Time Qualifier
                                    sValue = oSegment.get_DataElementValue(2,0);     //Date Time Period Format Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Date Time Period
                                    listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Subscriber's Onset of Current Symptoms Date) = " + sValue);
                                }
                            }
                            else if (sSegmentID == "REF")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Reference Identification Qualifier
                                sValue = oSegment.get_DataElementValue(2,0);     //Reference Identification
                            }
                            else if (sSegmentID == "HI")
                            {
                                sValue = oSegment.get_DataElementValue(1,1);     //Code List Qualifier Code
                                sValue = oSegment.get_DataElementValue(1,2);     //Industry Code
                                sValue = oSegment.get_DataElementValue(1,3);     //Date Time Period Format Qualifier
                                sValue = oSegment.get_DataElementValue(1,4);     //Date Time Period
                                sValue = oSegment.get_DataElementValue(1,5);     //Monetary Amount
                                sValue = oSegment.get_DataElementValue(1,6);     //Quantity
                                sValue = oSegment.get_DataElementValue(1,7);     //Version Identifier
                                sValue = oSegment.get_DataElementValue(2,1);     //Code List Qualifier Code
                                sValue = oSegment.get_DataElementValue(2,2);     //Industry Code
                                sValue = oSegment.get_DataElementValue(2,3);     //Date Time Period Format Qualifier
                                sValue = oSegment.get_DataElementValue(2,4);     //Date Time Period
                                sValue = oSegment.get_DataElementValue(2,5);     //Monetary Amount
                                sValue = oSegment.get_DataElementValue(2,6);     //Quantity
                                sValue = oSegment.get_DataElementValue(2,7);     //Version Identifier
                            }   //Segment ID
                        }
                        else if (sLoopSection == "HL;CLM;NM1")
                        {
                            if (sSegmentID == "NM1")
                            {
                                sNm1Entity = oSegment.get_DataElementValue(1,0);
                            }

                            if (sNm1Entity == "82") //RENDERING PROVIDER NAME
                            {
                                if (sSegmentID == "NM1")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Entity Identifier Code
                                    sValue = oSegment.get_DataElementValue(2,0);     //Entity Type Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Name Last or Organization Name
                                    listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Subscriber's Rendering Provider)= " + sValue);
                                    sValue = oSegment.get_DataElementValue(4,0);     //Name First
                                    sValue = oSegment.get_DataElementValue(5,0);     //Name Middle
                                    sValue = oSegment.get_DataElementValue(6,0);     //Name Prefix
                                    sValue = oSegment.get_DataElementValue(7,0);     //Name Suffix
                                    sValue = oSegment.get_DataElementValue(8,0);     //Identification Code Qualifier
                                    sValue = oSegment.get_DataElementValue(9,0);     //Identification Code
                                }
                                else if (sSegmentID == "PRV")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Provider Code
                                    sValue = oSegment.get_DataElementValue(2,0);     //Reference Identification Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Reference Identification
                                }
                                else if (sSegmentID == "N3")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Address Information
                                }
                                else if (sSegmentID == "N4")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //City Name
                                    sValue = oSegment.get_DataElementValue(2,0);     //State or Province Code
                                    sValue = oSegment.get_DataElementValue(3,0);     //Postal Code
                                }   //Segment ID
                            }
                            else if (sNm1Entity == "77") //SERVICE LOCATION
                            {
                                if (sSegmentID == "NM1")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Entity Identifier Code
                                    sValue = oSegment.get_DataElementValue(2,0);     //Entity Type Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Name Last or Organization Name
                                    listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Subscriber's Service Location) = " + sValue);
                                    sValue = oSegment.get_DataElementValue(4,0);     //Name First
                                    sValue = oSegment.get_DataElementValue(5,0);     //Name Middle
                                    sValue = oSegment.get_DataElementValue(6,0);     //Name Prefix
                                    sValue = oSegment.get_DataElementValue(7,0);     //Name Suffix
                                    sValue = oSegment.get_DataElementValue(8,0);     //Identification Code Qualifier
                                    sValue = oSegment.get_DataElementValue(9,0);     //Identification Code
                                }
                                else if (sSegmentID == "N3")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Address Information
                                }
                                else if (sSegmentID == "N4")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //City Name
                                    sValue = oSegment.get_DataElementValue(2,0);     //State or Province Code
                                    sValue = oSegment.get_DataElementValue(3,0);     //Postal Code
                                }   //Segment ID
                            }
                        }
                        else if (sLoopSection == "HL;CLM;LX")
                        {
                            if (sSegmentID == "LX")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Assigned Number
                            }
                            else if (sSegmentID == "SV1")
                            {
                                oElements = oSegment.DataElements;

                                sValue = oSegment.get_DataElementValue(1,1);     //Product/Service ID Qualifier
                                sValue = oSegment.get_DataElementValue(1,2);     //Product/Service ID
                                oCompositeElement = oElements.get_DataElement(1);
                                oSubElements = oCompositeElement.DataElements;
                                oElement = oSubElements.get_DataElement(2);
                                listBox1.Items.Add(oElement.Description + " (Subscriber's Service Line) = " + sValue );

                                sValue = oSegment.get_DataElementValue(1,3);     //Procedure Modifier
                                sValue = oSegment.get_DataElementValue(1,4);     //Procedure Modifier
                                sValue = oSegment.get_DataElementValue(1,5);     //Procedure Modifier
                                sValue = oSegment.get_DataElementValue(1,6);     //Procedure Modifier
                                sValue = oSegment.get_DataElementValue(1,7);     //Description
                                oElement = oSubElements.get_DataElement(7);
                                listBox1.Items.Add(oElement.Description + " (Subscriber's Service Line) = " + sValue );

                                sValue = oSegment.get_DataElementValue(2,0);     //Monetary Amount
                                listBox1.Items.Add(oElements.get_DataElement(2).Description + " (Subscriber's Service Line) = " + sValue );

                                sValue = oSegment.get_DataElementValue(3,0);     //Unit or Basis for Measurement Code
                                sValue = oSegment.get_DataElementValue(4,0);     //Quantity
                                sValue = oSegment.get_DataElementValue(5,0);     //Facility Code Value
                                sValue = oSegment.get_DataElementValue(6,0);     //Service Type Code
                                sValue = oSegment.get_DataElementValue(7,1);     //Diagnosis Code Pointer
                                sValue = oSegment.get_DataElementValue(7,2);     //Diagnosis Code Pointer
                                sValue = oSegment.get_DataElementValue(7,3);     //Diagnosis Code Pointer
                                sValue = oSegment.get_DataElementValue(7,4);     //Diagnosis Code Pointer
                                sValue = oSegment.get_DataElementValue(8,0);     //Monetary Amount
                                sValue = oSegment.get_DataElementValue(9,0);     //Yes/No Condition or Response Code
                            }
                            else if (sSegmentID == "DTP")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Date/Time Qualifier
                                sValue = oSegment.get_DataElementValue(2,0);     //Date Time Period Format Qualifier
                                sValue = oSegment.get_DataElementValue(3,0);     //Date Time Period
                            }   //sSegmentID
                        }   //sLoopSection
                    }    //sHlEntity


                    // **** PATIENT HIERARCHICAL LEVEL ****
                    else if (sHlEntity == "23")    //DEPENDENT
                    {
                        if (sLoopSection == "HL")
                        {
                            if (sSegmentID == "HL")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Hierarchical ID Number
                                sValue = oSegment.get_DataElementValue(2,0);     //Hierarchical Parent ID Number
                                sValue = oSegment.get_DataElementValue(3,0);     //Hierarchical Level Code
                                sValue = oSegment.get_DataElementValue(4,0);     //Hierarchical Child Code
                            }
                            else if (sSegmentID == "PAT")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);
                                sValue = oSegment.get_DataElementValue(5,0);
                                sValue = oSegment.get_DataElementValue(6,0);
                                sValue = oSegment.get_DataElementValue(7,0);
                                sValue = oSegment.get_DataElementValue(8,0);
                                sValue = oSegment.get_DataElementValue(9,0);
                            }   //Segment ID
                        }
                        else if (sLoopSection == "HL;NM1")
                        {
                            if (sSegmentID == "NM1")
                            {
                                sNm1Entity = oSegment.get_DataElementValue(1,0);
                            }

                            if (sNm1Entity == "QC") //PATIENT
                            {
                                if (sSegmentID == "NM1")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Entity Identifier Code
                                    sValue = oSegment.get_DataElementValue(2,0);     //Entity Type Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Name Last or Organization Name
                                    listBox1.Items.Add(oSegment.get_DataElement(3).Description + " (Dependent Patient)= " + sValue);
                                    sValue = oSegment.get_DataElementValue(4,0);     //Name First
                                    sValue = oSegment.get_DataElementValue(5,0);     //Name Middle
                                    sValue = oSegment.get_DataElementValue(6,0);     //Name Prefix
                                    sValue = oSegment.get_DataElementValue(7,0);     //Name Suffix
                                    sValue = oSegment.get_DataElementValue(8,0);     //Identification Code Qualifier
                                    sValue = oSegment.get_DataElementValue(9,0);     //Identification Code
                                }
                                else if (sSegmentID == "N3")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Address Information
                                }
                                else if (sSegmentID == "N4")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //City Name
                                    sValue = oSegment.get_DataElementValue(2,0);     //State or Province Code
                                    sValue = oSegment.get_DataElementValue(3,0);     //Postal Code
                                }
                                else if (sSegmentID == "DMG")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Date Time Period Format Qualifier
                                    sValue = oSegment.get_DataElementValue(2,0);     //Date Time Period
                                    sValue = oSegment.get_DataElementValue(3,0);     //Gender Code
                                }
                                else if (sSegmentID == "REF")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);
                                    sValue = oSegment.get_DataElementValue(1,0);
                                }   //Segment ID
                            } //sNm1Entity
                        }
                        else if (sLoopSection == "HL;CLM")
                        {
                            if (sSegmentID == "CLM")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Claim Submitter's Identifier
                                sValue = oSegment.get_DataElementValue(2,0);     //Monetary Amount
                                listBox1.Items.Add(oSegment.get_DataElement(2).Description + " (Dependent Claim) = " + sValue);
                                sValue = oSegment.get_DataElementValue(3,0);     //Claim Filing Indicator Code
                                sValue = oSegment.get_DataElementValue(4,0);     //Non-Institutional Claim Type Code
                                sValue = oSegment.get_DataElementValue(5,1);     //Facility Code Value
                                sValue = oSegment.get_DataElementValue(5,2);     //Facility Code Qualifier
                                sValue = oSegment.get_DataElementValue(5,3);     //Claim Frequency Type Code
                                sValue = oSegment.get_DataElementValue(6,0);     //Yes/No Condition or Response Code
                                sValue = oSegment.get_DataElementValue(7,0);     //Provider Accept Assignment Code
                                sValue = oSegment.get_DataElementValue(8,0);     //Yes/No Condition or Response Code
                                sValue = oSegment.get_DataElementValue(9,0);     //Release of Information Code
                                sValue = oSegment.get_DataElementValue(10,0);     //Patient Signature Source Code
                            }
                            else if (sSegmentID == "DTP")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Date/Time Qualifier
                                sValue = oSegment.get_DataElementValue(2,0);     //Date Time Period Format Qualifier
                                sValue = oSegment.get_DataElementValue(3,0);     //Date Time Period
                            }
                            else if (sSegmentID == "REF")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Reference Identification Qualifier
                                sValue = oSegment.get_DataElementValue(2,0);     //Reference Identification
                            }
                            else if (sSegmentID == "HI")
                            {
                                sValue = oSegment.get_DataElementValue(1,1);     //Code List Qualifier Code
                                sValue = oSegment.get_DataElementValue(1,2);     //Industry Code
                                sValue = oSegment.get_DataElementValue(1,3);     //Date Time Period Format Qualifier
                                sValue = oSegment.get_DataElementValue(1,4);     //Date Time Period
                                sValue = oSegment.get_DataElementValue(1,5);     //Monetary Amount
                                sValue = oSegment.get_DataElementValue(1,6);     //Quantity
                                sValue = oSegment.get_DataElementValue(1,7);     //Version Identifier
                                sValue = oSegment.get_DataElementValue(2,1);     //Code List Qualifier Code
                                sValue = oSegment.get_DataElementValue(2,2);     //Industry Code
                                sValue = oSegment.get_DataElementValue(2,3);     //Date Time Period Format Qualifier
                                sValue = oSegment.get_DataElementValue(2,4);     //Date Time Period
                                sValue = oSegment.get_DataElementValue(2,5);     //Monetary Amount
                                sValue = oSegment.get_DataElementValue(2,6);     //Quantity
                                sValue = oSegment.get_DataElementValue(2,7);     //Version Identifier
                            }   //Segment ID
                        }
                        else if (sLoopSection == "HL;CLM;NM1")
                        {
                            if (sSegmentID == "NM1")
                            {
                                sNm1Entity = oSegment.get_DataElementValue(1,0);
                            }

                            if (sNm1Entity == "82") //RENDERING PROVIDER NAME
                            {
                                if (sSegmentID == "NM1")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Entity Identifier Code
                                    sValue = oSegment.get_DataElementValue(2,0);     //Entity Type Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Name Last or Organization Name
                                    sValue = oSegment.get_DataElementValue(4,0);     //Name First
                                    sValue = oSegment.get_DataElementValue(5,0);     //Name Middle
                                    sValue = oSegment.get_DataElementValue(6,0);     //Name Prefix
                                    sValue = oSegment.get_DataElementValue(7,0);     //Name Suffix
                                    sValue = oSegment.get_DataElementValue(8,0);     //Identification Code Qualifier
                                    sValue = oSegment.get_DataElementValue(9,0);     //Identification Code
                                }
                                else if (sSegmentID == "PRV")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Provider Code
                                    sValue = oSegment.get_DataElementValue(2,0);     //Reference Identification Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Reference Identification
                                }
                                else if (sSegmentID == "N3")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Address Information
                                }
                                else if (sSegmentID == "N4")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //City Name
                                    sValue = oSegment.get_DataElementValue(2,0);     //State or Province Code
                                    sValue = oSegment.get_DataElementValue(3,0);     //Postal Code
                                }   //Segment ID
                            }
                            else if (sNm1Entity == "77") //SERVICE LOCATION
                            {
                                if (sSegmentID == "NM1")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Entity Identifier Code
                                    sValue = oSegment.get_DataElementValue(2,0);     //Entity Type Qualifier
                                    sValue = oSegment.get_DataElementValue(3,0);     //Name Last or Organization Name
                                    sValue = oSegment.get_DataElementValue(4,0);     //Name First
                                    sValue = oSegment.get_DataElementValue(5,0);     //Name Middle
                                    sValue = oSegment.get_DataElementValue(6,0);     //Name Prefix
                                    sValue = oSegment.get_DataElementValue(7,0);     //Name Suffix
                                    sValue = oSegment.get_DataElementValue(8,0);     //Identification Code Qualifier
                                    sValue = oSegment.get_DataElementValue(9,0);     //Identification Code
                                }
                                else if (sSegmentID == "N3")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //Address Information
                                }
                                else if (sSegmentID == "N4")
                                {
                                    sValue = oSegment.get_DataElementValue(1,0);     //City Name
                                    sValue = oSegment.get_DataElementValue(2,0);     //State or Province Code
                                    sValue = oSegment.get_DataElementValue(3,0);     //Postal Code
                                }   //Segment ID
                            }
                        }
                        else if (sLoopSection == "HL;CLM;LX")
                        {
                            if (sSegmentID == "LX")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Assigned Number
                            }
                            else if (sSegmentID == "SV1")
                            {
                                sValue = oSegment.get_DataElementValue(1,1);     //Product/Service ID Qualifier
                                sValue = oSegment.get_DataElementValue(1,2);     //Product/Service ID
                                sValue = oSegment.get_DataElementValue(1,3);     //Procedure Modifier
                                sValue = oSegment.get_DataElementValue(1,4);     //Procedure Modifier
                                sValue = oSegment.get_DataElementValue(1,5);     //Procedure Modifier
                                sValue = oSegment.get_DataElementValue(1,6);     //Procedure Modifier
                                sValue = oSegment.get_DataElementValue(1,7);     //Description
                                sValue = oSegment.get_DataElementValue(2,0);     //Monetary Amount
                                sValue = oSegment.get_DataElementValue(3,0);     //Unit or Basis for Measurement Code
                                sValue = oSegment.get_DataElementValue(4,0);     //Quantity
                                sValue = oSegment.get_DataElementValue(5,0);     //Facility Code Value
                                sValue = oSegment.get_DataElementValue(6,0);     //Service Type Code
                                sValue = oSegment.get_DataElementValue(7,1);     //Diagnosis Code Pointer
                                sValue = oSegment.get_DataElementValue(7,2);     //Diagnosis Code Pointer
                                sValue = oSegment.get_DataElementValue(7,3);     //Diagnosis Code Pointer
                                sValue = oSegment.get_DataElementValue(7,4);     //Diagnosis Code Pointer
                                sValue = oSegment.get_DataElementValue(8,0);     //Monetary Amount
                                sValue = oSegment.get_DataElementValue(9,0);     //Yes/No Condition or Response Code
                            }
                            else if (sSegmentID == "DTP")
                            {
                                sValue = oSegment.get_DataElementValue(1,0);     //Date/Time Qualifier
                                sValue = oSegment.get_DataElementValue(2,0);     //Date Time Period Format Qualifier
                                sValue = oSegment.get_DataElementValue(3,0);     //Date Time Period
                            }   //sSegmentID
                        }   //sLoopSection
                    }    //sHlEntity

                }   //nArea
 
                //GETS THE NEXT DATA SEGMENT
                ediDataSegment.Set(ref oSegment, (ediDataSegment) oSegment.Next());  //oSegment = (ediDataSegment) oSegment.Next();
 
            }   //while
        
            MessageBox.Show("Done");    
        }
    }

    Click here to download a trial version of the Framework EDI