private void btnGenerate271X279_Click(object sender, System.EventArgs e)
        {
            ediDocument oEdiDoc = null;
            ediSchema oSchema = null;
            ediSchemas oSchemas = null;
            ediInterchange oInterchange = null;
            ediGroup oGroup = null;
            ediTransactionSet oTransactionset = null;
            ediDataSegment oSegment = null;
 
            //CREATES OEDIDOC 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 GENERATE THE EDI FILE.
            ediSchemas.Set(ref oSchemas,(ediSchemas) oEdiDoc.GetSchemas());
            oSchemas.EnableStandardReference = false;
 
            //ENABLES FORWARD WRITE, AND INCREASES BUFFER I/O TO IMPROVE PERFORMANCE
            oEdiDoc.CursorType = DocumentCursorTypeConstants.Cursor_ForwardWrite;
            oEdiDoc.set_Property(DocumentPropertyIDConstants.Property_DocumentBufferIO, 2000);
 
            //SET TERMINATORS
            oEdiDoc.SegmentTerminator = "~";
            oEdiDoc.ElementTerminator = "*";
            oEdiDoc.CompositeTerminator = ":";
 
            //LOADS THE SEF FILE
            ediSchema.Set(ref oSchema, (ediSchema) oEdiDoc.LoadSchema("271_005010X279A1.SemRef.EVAL0.SEF", 0));
 
            //CREATES THE ISA SEGMENT
            ediInterchange.Set(ref oInterchange, (ediInterchange) oEdiDoc.CreateInterchange("X","005010"));
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oInterchange.GetDataSegmentHeader());
            oSegment.set_DataElementValue(1,0,"00");     //Authorization Information Qualifier
            oSegment.set_DataElementValue(2,0,"          ");     //Authorization Information
            oSegment.set_DataElementValue(3,0,"00");     //Security Information Qualifier
            oSegment.set_DataElementValue(4,0,"          ");     //Security Information
            oSegment.set_DataElementValue(5,0,"14");     //Interchange ID Qualifier
            oSegment.set_DataElementValue(6,0,"0073268795005  ");     //Interchange Sender ID
            oSegment.set_DataElementValue(7,0,"ZZ");     //Interchange ID Qualifier
            oSegment.set_DataElementValue(8,0,"RECEIVERISA    ");     //Interchange Receiver ID
            oSegment.set_DataElementValue(9,0,"960807");     //Interchange Date
            oSegment.set_DataElementValue(10,0,"1548");     //Interchange Time
            oSegment.set_DataElementValue(11,0,"^");     //Repetition Separator
            oSegment.set_DataElementValue(12,0,"00501");     //Interchange Control Version Number
            oSegment.set_DataElementValue(13,0,"000000020");     //Interchange Control Number
            oSegment.set_DataElementValue(14,0,"0");     //Acknowledgment Requested
            oSegment.set_DataElementValue(15,0,"T");     //Usage Indicator
            oSegment.set_DataElementValue(16,0,":");     //Component Element Separator
 
            //CREATES THE GS SEGMENT
            ediGroup.Set(ref oGroup, (ediGroup) oInterchange.CreateGroup("005010X279"));
            ediDataSegment.Set( ref oSegment, (ediDataSegment) oGroup.GetDataSegmentHeader());
            oSegment.set_DataElementValue(1,0,"HB");     //Functional Identifier Code
            oSegment.set_DataElementValue(2,0,"007326879");     //Application Sender's Code
            oSegment.set_DataElementValue(3,0,"RECEIVERGS");     //Application Receiver's Code
            oSegment.set_DataElementValue(4,0,"19960807");     //Date
            oSegment.set_DataElementValue(5,0,"1548");     //Time
            oSegment.set_DataElementValue(6,0,"1");     //Group Control Number
            oSegment.set_DataElementValue(7,0,"X");     //Responsible Agency Code
            oSegment.set_DataElementValue(8,0,"005010X279");     //Version / Release / Industry Identifier Code
 
            //CREATES THE ST SEGMENT
            ediTransactionSet.Set(ref oTransactionset, (ediTransactionSet) oGroup.CreateTransactionSet("271"));
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.GetDataSegmentHeader());
            oSegment.set_DataElementValue(1,0,"271");     //Transaction Set Identifier Code
            oSegment.set_DataElementValue(2,0,"4322");     //Transaction Set Control Number
            oSegment.set_DataElementValue(3,0,"005010X279");     //Implementation Convention Reference
 
            //BHT - BEGINNING OF HIERARCHICAL TRANSACTION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("BHT"));
            oSegment.set_DataElementValue(1,0,"0022");     //Hierarchical Structure Code
            oSegment.set_DataElementValue(2,0,"11");     //Transaction Set Purpose Code
            oSegment.set_DataElementValue(3,0,"10001235");     //Reference Identification
            oSegment.set_DataElementValue(4,0,"20060501");     //Date
            oSegment.set_DataElementValue(5,0,"1319");     //Time
 
            //HL - HIERARCHICAL LEVEL
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL\\HL"));
            oSegment.set_DataElementValue(1,0,"1");     //Hierarchical ID Number
            oSegment.set_DataElementValue(3,0,"20");     //Hierarchical Level Code
            oSegment.set_DataElementValue(4,0,"1");     //Hierarchical Child Code
 
            //NM1 - INDIVIDUAL OR ORGANIZATIONAL NAME
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL\\NM1\\NM1"));
            oSegment.set_DataElementValue(1,0,"PR");     //Entity Identifier Code
            oSegment.set_DataElementValue(2,0,"2");     //Entity Type Qualifier
            oSegment.set_DataElementValue(3,0,"ABC COMPANY");     //Name Last or Organization Name
            oSegment.set_DataElementValue(8,0,"PI");     //Identification Code Qualifier
            oSegment.set_DataElementValue(9,0,"842610001");     //Identification Code
 
            //HL - HIERARCHICAL LEVEL
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(2)\\HL"));
            oSegment.set_DataElementValue(1,0,"2");     //Hierarchical ID Number
            oSegment.set_DataElementValue(2,0,"1");     //Hierarchical Parent ID Number
            oSegment.set_DataElementValue(3,0,"21");     //Hierarchical Level Code
            oSegment.set_DataElementValue(4,0,"1");     //Hierarchical Child Code
 
            //NM1 - INDIVIDUAL OR ORGANIZATIONAL NAME
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(2)\\NM1\\NM1"));
            oSegment.set_DataElementValue(1,0,"1P");     //Entity Identifier Code
            oSegment.set_DataElementValue(2,0,"2");     //Entity Type Qualifier
            oSegment.set_DataElementValue(3,0,"BONE AND JOINT CLINIC");     //Name Last or Organization Name
            oSegment.set_DataElementValue(8,0,"SV");     //Identification Code Qualifier
            oSegment.set_DataElementValue(9,0,"2000035");     //Identification Code
 
            //HL - HIERARCHICAL LEVEL
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(3)\\HL"));
            oSegment.set_DataElementValue(1,0,"3");     //Hierarchical ID Number
            oSegment.set_DataElementValue(2,0,"2");     //Hierarchical Parent ID Number
            oSegment.set_DataElementValue(3,0,"22");     //Hierarchical Level Code
            oSegment.set_DataElementValue(4,0,"1");     //Hierarchical Child Code
 
            //NM1 - INDIVIDUAL OR ORGANIZATIONAL NAME
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(3)\\NM1\\NM1"));
            oSegment.set_DataElementValue(1,0,"IL");     //Entity Identifier Code
            oSegment.set_DataElementValue(2,0,"1");     //Entity Type Qualifier
            oSegment.set_DataElementValue(3,0,"SMITH");     //Name Last or Organization Name
            oSegment.set_DataElementValue(4,0,"JOHN");     //Name First
            oSegment.set_DataElementValue(8,0,"MI");     //Identification Code Qualifier
            oSegment.set_DataElementValue(9,0,"123456789");     //Identification Code
 
            //N3 - ADDRESS INFORMATION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(3)\\NM1\\N3"));
            oSegment.set_DataElementValue(1,0,"15197 BROADWAY AVENUE");     //Address Information
            oSegment.set_DataElementValue(2,0,"APT 215");     //Address Information
 
            //N4 - GEOGRAPHIC LOCATION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(3)\\NM1\\N4"));
            oSegment.set_DataElementValue(1,0,"KANSAS CITY");     //City Name
            oSegment.set_DataElementValue(2,0,"MO");     //State or Province Code
            oSegment.set_DataElementValue(3,0,"64108");     //Postal Code
 
            //DMG - DEMOGRAPHIC INFORMATION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(3)\\NM1\\DMG"));
            oSegment.set_DataElementValue(1,0,"D8");     //Date Time Period Format Qualifier
            oSegment.set_DataElementValue(2,0,"19630519");     //Date Time Period
            oSegment.set_DataElementValue(3,0,"M");     //Gender Code
 
            //HL - HIERARCHICAL LEVEL
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\HL"));
            oSegment.set_DataElementValue(1,0,"4");     //Hierarchical ID Number
            oSegment.set_DataElementValue(2,0,"3");     //Hierarchical Parent ID Number
            oSegment.set_DataElementValue(3,0,"23");     //Hierarchical Level Code
            oSegment.set_DataElementValue(4,0,"0");     //Hierarchical Child Code
 
            //TRN - TRACE
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\TRN"));
            oSegment.set_DataElementValue(1,0,"2");     //Trace Type Code
            oSegment.set_DataElementValue(2,0,"93175-012547");     //Reference Identification
            oSegment.set_DataElementValue(3,0,"9877281234");     //Originating Company Identifier
 
            //NM1 - INDIVIDUAL OR ORGANIZATIONAL NAME
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\NM1"));
            oSegment.set_DataElementValue(1,0,"03");     //Entity Identifier Code
            oSegment.set_DataElementValue(2,0,"1");     //Entity Type Qualifier
            oSegment.set_DataElementValue(3,0,"SMITH");     //Name Last or Organization Name
            oSegment.set_DataElementValue(4,0,"MARY");     //Name First
 
            //N3 - ADDRESS INFORMATION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\N3"));
            oSegment.set_DataElementValue(1,0,"15197 BROADWAY AVENUE");     //Address Information
            oSegment.set_DataElementValue(2,0,"APT 215");     //Address Information
 
            //N4 - GEOGRAPHIC LOCATION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\N4"));
            oSegment.set_DataElementValue(1,0,"KANSAS CITY");     //City Name
            oSegment.set_DataElementValue(2,0,"MO");     //State or Province Code
            oSegment.set_DataElementValue(3,0,"64108");     //Postal Code
 
            //DMG - DEMOGRAPHIC INFORMATION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\DMG"));
            oSegment.set_DataElementValue(1,0,"D8");     //Date Time Period Format Qualifier
            oSegment.set_DataElementValue(2,0,"19981014");     //Date Time Period
            oSegment.set_DataElementValue(3,0,"F");     //Gender Code
 
            //INS - INSURED BENEFIT
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\INS"));
            oSegment.set_DataElementValue(1,0,"N");     //Yes/No Condition or Response Code
            oSegment.set_DataElementValue(2,0,"19");     //Individual Relationship Code
 
            //DTP - DATE OR TIME OR PERIOD
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\DTP"));
            oSegment.set_DataElementValue(1,0,"346");     //Date/Time Qualifier
            oSegment.set_DataElementValue(2,0,"D8");     //Date Time Period Format Qualifier
            oSegment.set_DataElementValue(3,0,"20060101");     //Date Time Period
 
            //EB - ELIGIBILITY OR BENEFIT INFORMATION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\EB\\EB"));
            oSegment.set_DataElementValue(1,0,"1");     //Eligibility or Benefit Information
            oSegment.set_DataElementValue(3,0,"30");     //Service Type Code
            oSegment.set_DataElementValue(5,0,"GOLD 123 PLAN");     //Plan Coverage Description
 
            //EB - ELIGIBILITY OR BENEFIT INFORMATION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\EB(2)\\EB"));
            oSegment.set_DataElementValue(1,0,"L");     //Eligibility or Benefit Information
 
            //LS - LOOP HEADER
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\EB(2)\\LS"));
            oSegment.set_DataElementValue(1,0,"2120");     //Loop Identifier Code
 
            //NM1 - INDIVIDUAL OR ORGANIZATIONAL NAME
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\EB(2)\\NM1\\NM1"));
            oSegment.set_DataElementValue(1,0,"P3");     //Entity Identifier Code
            oSegment.set_DataElementValue(2,0,"1");     //Entity Type Qualifier
            oSegment.set_DataElementValue(3,0,"JONES");     //Name Last or Organization Name
            oSegment.set_DataElementValue(4,0,"MARCUS");     //Name First
            oSegment.set_DataElementValue(8,0,"SV");     //Identification Code Qualifier
            oSegment.set_DataElementValue(9,0,"0202034");     //Identification Code
 
            //LE - LOOP TRAILER
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\EB(2)\\LE"));
            oSegment.set_DataElementValue(1,0,"2120");     //Loop Identifier Code
 

            //**********************  Generating repeating elements  ***************************************************************
            //EB - ELIGIBILITY OR BENEFIT INFORMATION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\EB(3)\\EB"));
            oSegment.set_DataElementValue(1,0,"1");     //Eligibility or Benefit Information
            oSegment.set_DataElementValue(3,0,1,"1");     //Service Type Code
            oSegment.set_DataElementValue(3,0,2,"33");     //Service Type Code
            oSegment.set_DataElementValue(3,0,3,"35");     //Service Type Code
            oSegment.set_DataElementValue(3,0,4,"47");     //Service Type Code
            oSegment.set_DataElementValue(3,0,5,"86");     //Service Type Code
            oSegment.set_DataElementValue(3,0,6,"88");     //Service Type Code
            oSegment.set_DataElementValue(3,0,7,"98");     //Service Type Code
            oSegment.set_DataElementValue(3,0,8,"AL");     //Service Type Code
            oSegment.set_DataElementValue(3,0,9,"MH");     //Service Type Code
            oSegment.set_DataElementValue(3,0,10,"UC");     //Service Type Code

            //************************************************************************************************************************
 
            //EB - ELIGIBILITY OR BENEFIT INFORMATION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\EB(4)\\EB"));
            oSegment.set_DataElementValue(1,0,"B");     //Eligibility or Benefit Information
            oSegment.set_DataElementValue(3,0,"1");     //Service Type Code
            oSegment.set_DataElementValue(4,0,"HM");     //Insurance Type Code
            oSegment.set_DataElementValue(5,0,"GOLD 123 PLAN");     //Plan Coverage Description
            oSegment.set_DataElementValue(6,0,"27");     //Time Period Qualifier
            oSegment.set_DataElementValue(7,0,"10");     //Monetary Amount
            oSegment.set_DataElementValue(12,0,"Y");     //Yes/No Condition or Response Code
 
            //EB - ELIGIBILITY OR BENEFIT INFORMATION
            ediDataSegment.Set(ref oSegment, (ediDataSegment) oTransactionset.CreateDataSegment("HL(4)\\NM1\\EB(5)\\EB"));
            oSegment.set_DataElementValue(1,0,"B");     //Eligibility or Benefit Information
            oSegment.set_DataElementValue(3,0,"1");     //Service Type Code
            oSegment.set_DataElementValue(4,0,"HM");     //Insurance Type Code
            oSegment.set_DataElementValue(5,0,"GOLD 123 PLAN");     //Plan Coverage Description
            oSegment.set_DataElementValue(6,0,"27");     //Time Period Qualifier
            oSegment.set_DataElementValue(7,0,"30");     //Monetary Amount
            oSegment.set_DataElementValue(12,0,"N");     //Yes/No Condition or Response Code
 
            //TRAILING SEGMENTS ARE AUTOMATICALLY CREATED WHEN FREDI COMMITS (SAVES)
            //THE EDIDOC OBJECT INTO AN EDI FILE.
            oEdiDoc.Save("271_X279Response.txt");
 
            //display edi object
            MessageBox.Show(oEdiDoc.GetEdiString(),"EDI 271 X279");

            //DESTROYS OBJECTS
            oSegment.Dispose();
            oTransactionset.Dispose();
            oGroup.Dispose();
            oInterchange.Dispose();
            oSchema.Dispose();
            oSchemas.Dispose();
            oEdiDoc.Dispose();

        }

    Click here to download a trial version of the Framework EDI