using System using System.Collections.Generic using System.ComponentModel using System.Data using System.Drawing using System.Text using System.Windows.Forms using Edidev.FrameworkEDI 1 namespace csharp_gen277x214 public partial class Form1 : Form public Form1() InitializeComponent() } private void btngenerate_click(object sender, EventArgs e) edidocument oedidoc = null edischema oschema = null edischemas oschemas = null ediinterchange ointerchange = null edigroup ogroup = null editransactionset otransactionset = null edidatasegment osegment = null int nhlcounter int nhlinfosourcecounter int nhlinforeceivercounter int nhlbillproviderservicecounter int nhlpatientcounter int nservicelinecounter int nhlinfosources int nhlinforeceivers int nhlbillproviderservices int nhlpatients int nservicelines int nhlinforeceiverparent int nhlbillproviderserviceparent int nhlpatientparent string spath = AppDomain.CurrentDomain.BaseDirectory string sedifile = "277_5010X214.X12" string sseffile = "277_005010X214.SemRef.EVAL0.SEF" //EVALUATION SEF FILE //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, 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, 200) //SET TERMINATORS oedidoc.segmentterminator = "~" oedidoc.elementterminator = "*" oedidoc.compositeterminator = ":"
//LOADS THE SEF FILE edischema.set(ref oschema, oedidoc.importschema(spath + sseffile, 0)) 2 //CREATES THE ISA SEGMENT ediinterchange.set(ref ointerchange, oedidoc.createinterchange("x", "0 05010")) edidatasegment.set(ref osegment, ointerchange.getdatasegmentheader()) osegment.set_dataelementvalue(1, "00") //Authorization Information Qualifier osegment.set_dataelementvalue(2, " ") //Authorization Information osegment.set_dataelementvalue(3, "00") //Security Information Qualifier osegment.set_dataelementvalue(4, " ") //Security Information osegment.set_dataelementvalue(5, "ZZ") //Interchange ID Qualifier osegment.set_dataelementvalue(6, "ASKINC ") //Interchange Sender ID osegment.set_dataelementvalue(7, "ZZ") //Interchange ID Qualifier osegment.set_dataelementvalue(8, "0003000 ") //Interchange Receiver ID osegment.set_dataelementvalue(9, "110614") //Interchange Date osegment.set_dataelementvalue(10, "1355") //Interchange Time osegment.set_dataelementvalue(11, "^") //Interchange Control Standards Identifier osegment.set_dataelementvalue(12, "00501") //Interchange Control Version Number osegment.set_dataelementvalue(13, "165140088") //Interchange Control Number osegment.set_dataelementvalue(14, "0") //Acknowledgment Requested osegment.set_dataelementvalue(15, "T") //Usage Indicator osegment.set_dataelementvalue(16, ":") //Component Element Separator Code //CREATES THE GS SEGMENT edigroup.set(ref ogroup, ointerchange.creategroup("005010x214")) edidatasegment.set(ref osegment, ogroup.getdatasegmentheader()) osegment.set_dataelementvalue(1, "HN") //Functional Identifier Code osegment.set_dataelementvalue(2, "BCBSKS") //Application Sender//s Code osegment.set_dataelementvalue(3, "0003000") //Application Receiver//s Code osegment.set_dataelementvalue(4, "20110614") //Date osegment.set_dataelementvalue(5, "1355") //Time osegment.set_dataelementvalue(6, "165140905") //Group Control Number osegment.set_dataelementvalue(7, "X") //Responsible Agency Code osegment.set_dataelementvalue(8, "005010X214") //Version / Release / Industry Identifier //CREATES THE ST SEGMENT editransactionset.set(ref otransactionset, ogroup.createtransactionset("277")) edidatasegment.set(ref osegment, otransactionset.getdatasegmentheader()) osegment.set_dataelementvalue(1, "277") //Transaction Set Identifier Code osegment.set_dataelementvalue(2, "0004") //Transaction Set Control Number osegment.set_dataelementvalue(3, "005010X214") //Implementation Convention Reference //BHT BEGINNING OF HIERARCHICAL TRANSACTION edidatasegment.set(ref osegment, otransactionset.createdatasegment("bht")) osegment.set_dataelementvalue(1, "0085") //Hierarchical Structure Code osegment.set_dataelementvalue(2, "08") //Transaction Set Purpose Code osegment.set_dataelementvalue(3, "277X21400004") //Reference Identification osegment.set_dataelementvalue(4, "20060321") //Date osegment.set_dataelementvalue(5, "1025") //Time osegment.set_dataelementvalue(6, "TH") //Transaction Type Code nhlcounter = 0 nhlinfosourcecounter = 1 nhlinforeceivercounter = 1 nhlbillproviderservicecounter = 1 nhlpatientcounter = 1 nservicelinecounter = 1 //This example has one of the following: nhlinfosources = 1 nhlinforeceivers = 1 nhlbillproviderservices = 1 nhlpatients = 1 nservicelines = 1
//2000A INFORMATION SOURCE LEVEL while (nhlinfosourcecounter <= nhlinfosources) nhlcounter = nhlcounter + 1 //increment HL loop nhlinforeceiverparent = nhlcounter //The value of this HL counter is the HL parent for the HL subscriber loop //HL HIERARCHICAL LEVEL edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\hl")) osegment.set_dataelementvalue(1, nhlcounter.tostring()) //Hierarchical ID Number osegment.set_dataelementvalue(3, "20") //Hierarchical Level Code osegment.set_dataelementvalue(4, "1") //Hierarchical Child Code 3 Name //2100A INFORMATION SOURCE NAME //NM1 INDIVIDUAL OR ORGANIZATIONAL NAME edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1\\nm1")) osegment.set_dataelementvalue(1, "PR") //Entity Identifier Code osegment.set_dataelementvalue(2, "2") //Entity Type Qualifier osegment.set_dataelementvalue(3, "OUR INSURANCE COMPANY") //Name Last or Organization osegment.set_dataelementvalue(8, "PI") osegment.set_dataelementvalue(9, "OIC02") //Identification Code Qualifier //Identification Code //2200A TRANSMISSION RECEIPT CONTROL IDENTIFIER //TRN TRACE edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\trn")) osegment.set_dataelementvalue(1, "1") //Trace Type Code osegment.set_dataelementvalue(2, "00911232") //Reference Identification //INFORMATION SOURCE RECEIPT DATE //DTP DATE OR TIME OR PERIOD edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\dtp")) osegment.set_dataelementvalue(1, "050") //Date/Time Qualifier osegment.set_dataelementvalue(2, "D8") //Date Time Period Format Qualifier osegment.set_dataelementvalue(3, "20060320") //Date Time Period //INFORMATION SOURCE PROCESS DATE //DTP DATE OR TIME OR PERIOD edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\dtp(2)")) osegment.set_dataelementvalue(1, "009") //Date/Time Qualifier osegment.set_dataelementvalue(2, "D8") //Date Time Period Format Qualifier osegment.set_dataelementvalue(3, "20060321") //Date Time Period //2000B INFORMATION RECEIVER LEVEL while (nhlinforeceivercounter <= nhlinforeceivers) nhlcounter = nhlcounter + 1 nhlbillproviderserviceparent = nhlcounter //HL HIERARCHICAL LEVEL edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\hl")) osegment.set_dataelementvalue(1, nhlcounter.tostring()) //Hierarchical ID Number osegment.set_dataelementvalue(2, nhlinforeceiverparent.tostring()) //Hierarchical Parent ID Number osegment.set_dataelementvalue(3, "21") //Hierarchical Level Code osegment.set_dataelementvalue(4, "1") //Hierarchical Child Code //2100B INFORMATION RECEIVER NAME //NM1 INDIVIDUAL OR ORGANIZATIONAL NAME edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1\\nm1")) osegment.set_dataelementvalue(1, "41") //Entity Identifier Code osegment.set_dataelementvalue(2, "1") //Entity Type Qualifier osegment.set_dataelementvalue(3, "KING") //Name Last or Organization Name osegment.set_dataelementvalue(4, "EWELL") //Name First osegment.set_dataelementvalue(5, "B") //Name Middle osegment.set_dataelementvalue(8, "46") //Identification Code Qualifier
osegment.set_dataelementvalue(9, "S00005") //Identification Code 4 //2200B INFORMATION RECEIVER APPLICATION TRACE IDENTIFIER //TRN TRACE edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\trn")) osegment.set_dataelementvalue(1, "2") //Trace Type Code osegment.set_dataelementvalue(2, "200203207890") //Reference Identification //INFORMATION RECEIVER STATUS INFO //STC STATUS INFORMATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\stc")) osegment.set_dataelementvalue(1, 1, "A1") //Industry Code osegment.set_dataelementvalue(1, 2, "19") //Industry Code osegment.set_dataelementvalue(1, 3, "PR") //Entity Identifier Code osegment.set_dataelementvalue(2, "20060321") //Date osegment.set_dataelementvalue(3, "WQ") //Action Code osegment.set_dataelementvalue(4, "455") //Monetary Amount //TOTAL ACCEPTED QUANTITY //QTY QUANTITY edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\qty")) osegment.set_dataelementvalue(1, "90") //Quantity Qualifier osegment.set_dataelementvalue(2, "3") //Quantity //TOTAL REJECTED QUANTITY //QTY QUANTITY edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\qty(2)")) osegment.set_dataelementvalue(1, "AA") //Quantity Qualifier osegment.set_dataelementvalue(2, "5") //Quantity //TOTAL ACCEPTED AMOUNT //AMT MONETARY AMOUNT edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\amt")) osegment.set_dataelementvalue(1, "YU") //Amount Qualifier Code osegment.set_dataelementvalue(2, "155") //Monetary Amount //TOTAL REJECTED AMOUNT //AMT MONETARY AMOUNT edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\amt(2)")) osegment.set_dataelementvalue(1, "YY") //Amount Qualifier Code osegment.set_dataelementvalue(2, "300") //Monetary Amount //2000C BILLING PROVIDER OF SERVICE LEVEL while (nhlbillproviderservicecounter <= nhlbillproviderservices) nhlcounter = nhlcounter + 1 nhlpatientparent = nhlcounter //HL HIERARCHICAL LEVEL edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\hl")) osegment.set_dataelementvalue(1, nhlcounter.tostring()) //Hierarchical ID Number osegment.set_dataelementvalue(2, nhlbillproviderserviceparent.tostring()) // Hierarchical Parent ID Number osegment.set_dataelementvalue(3, "19") //Hierarchical Level Code osegment.set_dataelementvalue(4, "1") //Hierarchical Child Code //2100C BILLING PROVIDER NAME //NM1 INDIVIDUAL OR ORGANIZATIONAL NAME edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1\\nm1")) osegment.set_dataelementvalue(1, "85") //Entity Identifier Code osegment.set_dataelementvalue(2, "1") //Entity Type Qualifier osegment.set_dataelementvalue(3, "KING") //Name Last or Organization Name osegment.set_dataelementvalue(4, "EWELL") //Name First osegment.set_dataelementvalue(5, "B") //Name Middle
osegment.set_dataelementvalue(8, "XX") //Entity Relationship Code osegment.set_dataelementvalue(9, "5365432101") //Entity Identifier Code 5 (98) (98) Qualifier (128) (127) ")) ")) //2200C PROVIDER OF SERVICE INFORMATION TRACE IDENTIFIER //TRN TRACE edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\trn")) osegment.set_dataelementvalue(1, "1") //Trace Type Code osegment.set_dataelementvalue(2, "00098765432") //Reference Identification //BILLING PROVIDER STATUS INFORMATION //STC STATUS INFORMATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\stc")) osegment.set_dataelementvalue(1, 1, "A1") //Industry Code osegment.set_dataelementvalue(1, 2, "19") //Industry Code osegment.set_dataelementvalue(1, 3, "PR") //Entity Identifier Code osegment.set_dataelementvalue(3, "WQ") //Action Code osegment.set_dataelementvalue(4, "305") //Monetary Amount //osegment.set_dataelementvalue(10, 1, "A1B2C3D4E5") // Industry Code //osegment.set_dataelementvalue(10, 2, "A1B2C3D4E5") //osegment.set_dataelementvalue(10, 3, "36") //osegment.set_dataelementvalue(11, 1, "A1B2C3D4E5") //osegment.set_dataelementvalue(11, 2, "A1B2C3D4E5") //osegment.set_dataelementvalue(11, 3, "36") // Industry Code // Entity Identifier Code // Industry Code // Industry Code // Entity Identifier Code //PROVIDER SECONDARY IDENTIFIER //REF Reference Identification edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\ref")) osegment.set_dataelementvalue(1, "0B") osegment.set_dataelementvalue(2, "A1B2C3D4E5") // Reference Identification // Reference Identification //TOTAL ACCEPTED QUANTITY //QTY Quantity edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\qty")) osegment.set_dataelementvalue(1, "QA") // Quantity Qualifier (673) osegment.set_dataelementvalue(2, "1234567.12") // Quantity (380) //TOTAL REJECTED QUANTITY //QTY Quantity edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\qty(2) osegment.set_dataelementvalue(1, "QC") // Quantity Qualifier (673) osegment.set_dataelementvalue(2, "1234567.12") // Quantity (380) //TOTAL ACCEPTED AMOUNT //AMT Monetary Amount edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\amt")) osegment.set_dataelementvalue(1, "YU") // Amount Qualifier Code (522) osegment.set_dataelementvalue(2, "1234567.12") // Monetary Amount (782) //TOTAL REJECTED AMOUNT //AMT Monetary Amount edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\amt(2)
osegment.set_dataelementvalue(1, "YY") // Amount Qualifier Code (522) osegment.set_dataelementvalue(2, "1234567.12") // Monetary Amount (782) 6 //2000D PATIENT LEVEL while (nhlpatientcounter <= nhlpatients) nhlcounter = nhlcounter + 1 //HL HIERARCHICAL LEVEL edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\hl")) osegment.set_dataelementvalue(1, "4") //Hierarchical ID Number osegment.set_dataelementvalue(2, "3") //Hierarchical Parent ID Number osegment.set_dataelementvalue(3, "PT") //Hierarchical Level Code NM1")) Name TRN")) Identification STC")) REF")) REF(2)")) REF(3)")) //2100D PATIENT NAME //NM1 INDIVIDUAL OR ORGANIZATIONAL NAME edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\nm1\\ osegment.set_dataelementvalue(1, "QC") //Entity Identifier Code osegment.set_dataelementvalue(2, "1") //Entity Type Qualifier osegment.set_dataelementvalue(3, "PATIENT") //Name Last or Organization osegment.set_dataelementvalue(4, "FEMALE") //Name First osegment.set_dataelementvalue(8, "MI") //Identification Code Qualifier osegment.set_dataelementvalue(9, "2222222222") //Identification Code //2200D CLAIM STATUS TRACKING NUMBER //TRN TRACE edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\ osegment.set_dataelementvalue(1, "2") //Trace Type Code osegment.set_dataelementvalue(2, "PATIENT22222") //Reference //CLAIM LEVEL STATUS INFORMATION //STC STATUS INFORMATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\ osegment.set_dataelementvalue(1, 1, "A2") //Industry Code osegment.set_dataelementvalue(1, 2, "20") //Industry Code osegment.set_dataelementvalue(1, 3, "PR") //Entity Identifier Code osegment.set_dataelementvalue(2, "20060321") //Date osegment.set_dataelementvalue(3, "WQ") //Action Code osegment.set_dataelementvalue(4, "55") //Monetary Amount //PAYER CLAIM CONTROL NUMBER //REF REFERNCE IDENTIFICATION edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\ osegment.set_dataelementvalue(1, "1K") // osegment.set_dataelementvalue(2, "220216359803X") // ////CLAIM ID NUMBER FOR CLEARINGHOUSE AND OTHER TRANSMISSION INTERMEDIARIES ////REF REFERNCE IDENTIFICATION //edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\ //osegment.set_dataelementvalue(1, "D9") // //osegment.set_dataelementvalue(2, "12421075") // ////INSTITUTIONAL BILL TYPE IDENTIFIER ////REF REFERNCE IDENTIFICATION //edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\ //osegment.set_dataelementvalue(1, "BLT") // //osegment.set_dataelementvalue(2, "111") //
DTP")) //CLAIM LEVEL SERVICE DATE //DTP DATE OR TIME OR PERIOD edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn\\ osegment.set_dataelementvalue(1, "472") //Date/Time Qualifier osegment.set_dataelementvalue(2, "D8") //Date Time Period Format Qualifier osegment.set_dataelementvalue(3, "20060314") //Date Time Period 7 Qualifier (235) (234) \\SVC\\STC")) //2220D SERVICE LINE INFORMATION while (nservicelinecounter <= nservicelines) //SVC Service Information osegment = otransactionset.createdatasegment("hl\\trn\\svc\\svc") osegment.set_dataelementvalue(1, 1, "HC") // Product/Service ID osegment.set_dataelementvalue(1, 2, "22305") // Product/Service ID osegment.set_dataelementvalue(1, 3, "") // Procedure Modifier (1339) osegment.set_dataelementvalue(1, 4, "") // Procedure Modifier (1339) osegment.set_dataelementvalue(1, 5, "") // Procedure Modifier (1339) osegment.set_dataelementvalue(1, 6, "") // Procedure Modifier (1339) osegment.set_dataelementvalue(2, "350") // Monetary Amount (782) osegment.set_dataelementvalue(4, "") // Product/Service ID (234) osegment.set_dataelementvalue(7, "1") // Quantity (380) //SERVICE LINE LEVEL STATUS INFO //STC Status Information edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn osegment.set_dataelementvalue(1, 1, "A3") // Industry Code osegment.set_dataelementvalue(1, 2, "122") // Industry Code osegment.set_dataelementvalue(1, 3, "") // Entity Identifier Code (98) osegment.set_dataelementvalue(3, "U") // Action Code (306) osegment.set_dataelementvalue(10, 1, "A3") // Industry Code Code (98) (98) (933) \\SVC\\REF")) Qualifier (128) (127) osegment.set_dataelementvalue(10, 2, "153") osegment.set_dataelementvalue(10, 3, "82") // Industry Code // Entity Identifier osegment.set_dataelementvalue(11, 1, "") // Industry Code osegment.set_dataelementvalue(11, 2, "") // Industry Code osegment.set_dataelementvalue(11, 3, "") // Entity Identifier Code osegment.set_dataelementvalue(12, "") // Free Form Message Text //SERVICE LINE ITEM ID //REF Reference Identification edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\trn osegment.set_dataelementvalue(1, "FJ") osegment.set_dataelementvalue(2, "11") // Reference Identification // Reference Identification ////PHARMACY PRESCRIPTION NUMBER ////REF Reference Identification //edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\ TRN\\SVC\\REF(2)")) //osegment.set_dataelementvalue(1, "XZ") // Reference Identification Qualifier (128) //osegment.set_dataelementvalue(2, "A1B2C3D4E5") // Reference Identification (127) ////SERVICE LINE DATE
TRN\\SVC\\DTP")) (374) Format Qualifier (1250) Period (1251) ////DTP Date or Time or Period //edidatasegment.set(ref osegment, otransactionset.createdatasegment("hl\\ //osegment.set_dataelementvalue(1, "472") //osegment.set_dataelementvalue(2, "D8") //osegment.set_dataelementvalue(3, "A1B2C3D4E5") nservicelinecounter = nservicelinecounter + 1 } //nservicelinecounter = nservicelines nhlpatientcounter = nhlpatientcounter + 1 } //nhlpatientcounter <= nhlpatients nhlbillproviderservicecounter = nhlbillproviderservicecounter + 1 } //nhlbillproviderservicecounter <= nhlbillproviderservices nhlinforeceivercounter = nhlinforeceivercounter + 1 } //nhlinforeceivercounter <= nhlinforeceivers nhlinfosourcecounter = nhlinfosourcecounter + 1 } //nhlinfosourcecounter <= nhlinfosources // Date/Time Qualifier // Date Time Period // Date Time 8 //TRAILING SEGMENTS ARE AUTOMATICALLY CREATED WHEN FREDI COMMITS (SAVES) //THE EDIDOC OBJECT INTO AN EDI FILE. oedidoc.save(spath + sedifile) MessageBox.Show(oEdiDoc.GetEdiString(), "EDI 277 5010 X214") } } } //DESTROYS OBJECTS osegment.dispose() otransactionset.dispose() ogroup.dispose() ointerchange.dispose() oschema.dispose() oschemas.dispose() oedidoc.dispose()