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();
}