Imports Edidev.FrameworkEDI 1 Public Class Form1 Private Sub btngenerate_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btngenerate.click Dim oedidoc As edidocument Dim oschema As edischema Dim oschemas As edischemas Dim ointerchange As ediinterchange Dim ogroup As edigroup Dim otransactionset As editransactionset Dim osegment As edidatasegment Dim nhlcounter As Integer Dim nhlinfosourcecounter As Integer Dim nhlinforeceivercounter As Integer Dim nhlbillproviderservicecounter As Integer Dim nhlpatientcounter As Integer Dim nservicelinecounter As Integer Dim nhlinfosources As Integer Dim nhlinforeceivers As Integer Dim nhlbillproviderservices As Integer Dim nhlpatients As Integer Dim nservicelines As Integer Dim nhlinforeceiverparent As Integer Dim nhlbillproviderserviceparent As Integer Dim nhlpatientparent As Integer Dim spath As String = AppDomain.CurrentDomain.BaseDirectory Dim sedifile As String = "277_5010X214.X12" Dim sseffile As String = "277_005010X214.SemRef.EVAL0.SEF" 'EVALUATION SEF FILE 'CREATES OEDIDOC OBJECT edidocument.set(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(oschemas, oedidoc.getschemas) oschemas.enablestandardreference = False 'ENABLES FORWARD WRITE, AND INCREASES BUFFER I/O TO IMPROVE PERFORMANCE oedidoc.cursortype = DocumentCursorTypeConstants.Cursor_ForwardWrite oedidoc.property(documentpropertyidconstants.property_documentbufferio) = 200 'SET TERMINATORS oedidoc.segmentterminator = "~" oedidoc.elementterminator = "*" oedidoc.compositeterminator = ":" 'LOADS THE SEF FILE edischema.set(oschema, oedidoc.importschema(spath & sseffile, 0)) 'CREATES THE ISA SEGMENT ediinterchange.set(ointerchange, oedidoc.createinterchange("x", "0 05010")) edidatasegment.set(osegment, ointerchange.getdatasegmentheader) osegment.dataelementvalue(1) = "00" 'Authorization Information Qualifier osegment.dataelementvalue(2) = " " 'Authorization Information osegment.dataelementvalue(3) = "00" 'Security Information Qualifier osegment.dataelementvalue(4) = " " 'Security Information osegment.dataelementvalue(5) = "ZZ" 'Interchange ID Qualifier osegment.dataelementvalue(6) = "ASKINC " 'Interchange Sender ID osegment.dataelementvalue(7) = "ZZ" 'Interchange ID Qualifier
osegment.dataelementvalue(8) = "0003000 " 'Interchange Receiver ID osegment.dataelementvalue(9) = "110614" 'Interchange Date osegment.dataelementvalue(10) = "1355" 'Interchange Time osegment.dataelementvalue(11) = "^" 'Interchange Control Standards Identifier osegment.dataelementvalue(12) = "00501" 'Interchange Control Version Number osegment.dataelementvalue(13) = "165140088" 'Interchange Control Number osegment.dataelementvalue(14) = "0" 'Acknowledgment Requested osegment.dataelementvalue(15) = "T" 'Usage Indicator osegment.dataelementvalue(16) = ":" 'Component Element Separator 2 'CREATES THE GS SEGMENT edigroup.set(ogroup, ointerchange.creategroup("005010x214")) edidatasegment.set(osegment, ogroup.getdatasegmentheader) osegment.dataelementvalue(1) = "HN" 'Functional Identifier Code osegment.dataelementvalue(2) = "BCBSKS" 'Application Sender's Code osegment.dataelementvalue(3) = "0003000" 'Application Receiver's Code osegment.dataelementvalue(4) = "20110614" 'Date osegment.dataelementvalue(5) = "1355" 'Time osegment.dataelementvalue(6) = "165140905" 'Group Control Number osegment.dataelementvalue(7) = "X" 'Responsible Agency Code osegment.dataelementvalue(8) = "005010X214" 'Version / Release / Industry Identifier Code 'CREATES THE ST SEGMENT editransactionset.set(otransactionset, ogroup.createtransactionset("277")) edidatasegment.set(osegment, otransactionset.getdatasegmentheader) osegment.dataelementvalue(1) = "277" 'Transaction Set Identifier Code osegment.dataelementvalue(2) = "0004" 'Transaction Set Control Number osegment.dataelementvalue(3) = "005010X214" 'Implementation Convention Reference 'BHT BEGINNING OF HIERARCHICAL TRANSACTION edidatasegment.set(osegment, otransactionset.createdatasegment("bht")) osegment.dataelementvalue(1) = "0085" 'Hierarchical Structure Code osegment.dataelementvalue(2) = "08" 'Transaction Set Purpose Code osegment.dataelementvalue(3) = "277X21400004" 'Reference Identification osegment.dataelementvalue(4) = "20060321" 'Date osegment.dataelementvalue(5) = "1025" 'Time osegment.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 Do 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 osegment.dataelementvalue(1) = nhlcounter 'Hierarchical ID Number osegment.dataelementvalue(3) = "20" 'Hierarchical Level Code osegment.dataelementvalue(4) = "1" 'Hierarchical Child Code '2100A INFORMATION SOURCE NAME
osegment.dataelementvalue(1) = "PR" 'Entity Identifier Code osegment.dataelementvalue(2) = "2" 'Entity Type Qualifier osegment.dataelementvalue(3) = "OUR INSURANCE COMPANY" 'Name Last or Organization Name osegment.dataelementvalue(8) = "PI" 'Identification Code Qualifier osegment.dataelementvalue(9) = "OIC02" 'Identification Code 3 '2200A TRANSMISSION RECEIPT CONTROL IDENTIFIER osegment.dataelementvalue(1) = "1" 'Trace Type Code osegment.dataelementvalue(2) = "00911232" 'Reference Identification 'INFORMATION SOURCE RECEIPT DATE 'DTP DATE OR TIME OR PERIOD edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\dtp")) osegment.dataelementvalue(1) = "050" 'Date/Time Qualifier osegment.dataelementvalue(2) = "D8" 'Date Time Period Format Qualifier osegment.dataelementvalue(3) = "20060320" 'Date Time Period 'INFORMATION SOURCE PROCESS DATE 'DTP DATE OR TIME OR PERIOD edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\dtp(2)")) osegment.dataelementvalue(1) = "009" 'Date/Time Qualifier osegment.dataelementvalue(2) = "D8" 'Date Time Period Format Qualifier osegment.dataelementvalue(3) = "20060321" 'Date Time Period '2000B INFORMATION RECEIVER LEVEL Do While nhlinforeceivercounter <= nhlinforeceivers nhlcounter = nhlcounter + 1 nhlbillproviderserviceparent = nhlcounter osegment.dataelementvalue(1) = nhlcounter 'Hierarchical ID Number osegment.dataelementvalue(2) = nhlinforeceiverparent 'Hierarchical Parent ID Number osegment.dataelementvalue(3) = "21" 'Hierarchical Level Code osegment.dataelementvalue(4) = "1" 'Hierarchical Child Code '2100B INFORMATION RECEIVER NAME osegment.dataelementvalue(1) = "41" 'Entity Identifier Code osegment.dataelementvalue(2) = "1" 'Entity Type Qualifier osegment.dataelementvalue(3) = "KING" 'Name Last or Organization Name osegment.dataelementvalue(4) = "EWELL" 'Name First osegment.dataelementvalue(5) = "B" 'Name Middle osegment.dataelementvalue(8) = "46" 'Identification Code Qualifier osegment.dataelementvalue(9) = "S00005" 'Identification Code '2200B INFORMATION RECEIVER APPLICATION TRACE IDENTIFIER osegment.dataelementvalue(1) = "2" 'Trace Type Code osegment.dataelementvalue(2) = "200203207890" 'Reference Identification 'INFORMATION RECEIVER STATUS INFO 'STC STATUS INFORMATION edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\stc")) osegment.dataelementvalue(1, 1) = "A1" 'Industry Code osegment.dataelementvalue(1, 2) = "19" 'Industry Code osegment.dataelementvalue(1, 3) = "PR" 'Entity Identifier Code osegment.dataelementvalue(2) = "20060321" 'Date osegment.dataelementvalue(3) = "WQ" 'Action Code osegment.dataelementvalue(4) = "455" 'Monetary Amount
'TOTAL ACCEPTED QUANTITY 'QTY QUANTITY edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\qty")) osegment.dataelementvalue(1) = "90" 'Quantity Qualifier osegment.dataelementvalue(2) = "3" 'Quantity 4 'TOTAL REJECTED QUANTITY 'QTY QUANTITY edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\qty(2)")) osegment.dataelementvalue(1) = "AA" 'Quantity Qualifier osegment.dataelementvalue(2) = "5" 'Quantity 'TOTAL ACCEPTED AMOUNT 'AMT MONETARY AMOUNT edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\amt")) osegment.dataelementvalue(1) = "YU" 'Amount Qualifier Code osegment.dataelementvalue(2) = "155" 'Monetary Amount 'TOTAL REJECTED AMOUNT 'AMT MONETARY AMOUNT edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\amt(2)")) osegment.dataelementvalue(1) = "YY" 'Amount Qualifier Code osegment.dataelementvalue(2) = "300" 'Monetary Amount '2000C BILLING PROVIDER OF SERVICE LEVEL Do While nhlbillproviderservicecounter <= nhlbillproviderservices nhlcounter = nhlcounter + 1 nhlpatientparent = nhlcounter ID Number osegment.dataelementvalue(1) = nhlcounter 'Hierarchical ID Number osegment.dataelementvalue(2) = nhlbillproviderserviceparent 'Hierarchical Parent osegment.dataelementvalue(3) = "19" 'Hierarchical Level Code osegment.dataelementvalue(4) = "1" 'Hierarchical Child Code '2100C BILLING PROVIDER NAME osegment.dataelementvalue(1) = "85" 'Entity Identifier Code osegment.dataelementvalue(2) = "1" 'Entity Type Qualifier osegment.dataelementvalue(3) = "KING" 'Name Last or Organization Name osegment.dataelementvalue(4) = "EWELL" 'Name First osegment.dataelementvalue(5) = "B" 'Name Middle osegment.dataelementvalue(8) = "XX" 'Entity Relationship Code osegment.dataelementvalue(9) = "5365432101" 'Entity Identifier Code '2200C PROVIDER OF SERVICE INFORMATION TRACE IDENTIFIER osegment.dataelementvalue(1) = "1" 'Trace Type Code osegment.dataelementvalue(2) = "00098765432" 'Reference Identification 'BILLING PROVIDER STATUS INFORMATION 'STC STATUS INFORMATION edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\stc")) osegment.dataelementvalue(1, 1) = "A1" 'Industry Code osegment.dataelementvalue(1, 2) = "19" 'Industry Code osegment.dataelementvalue(1, 3) = "PR" 'Entity Identifier Code osegment.dataelementvalue(3) = "WQ" 'Action Code osegment.dataelementvalue(4) = "305" 'Monetary Amount 'osegment.dataelementvalue(10, 1) = "A1B2C3D4E5" ' Industry Code (1271) 'osegment.dataelementvalue(10, 2) = "A1B2C3D4E5" ' Industry Code (1271) 'osegment.dataelementvalue(10, 3) = "36" ' Entity Identifier Code (98) 'osegment.dataelementvalue(11, 1) = "A1B2C3D4E5" ' Industry Code (1271)
'osegment.dataelementvalue(11, 2) = "A1B2C3D4E5" ' Industry Code (1271) 'osegment.dataelementvalue(11, 3) = "36" ' Entity Identifier Code (98) 5 'PROVIDER SECONDARY IDENTIFIER 'REF Reference Identification edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\ref")) osegment.dataelementvalue(1) = "0B" ' Reference Identification Qualifier (128) osegment.dataelementvalue(2) = "A1B2C3D4E5" ' Reference Identification (127) 'TOTAL ACCEPTED QUANTITY 'QTY Quantity edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\qty")) osegment.dataelementvalue(1) = "QA" ' Quantity Qualifier (673) osegment.dataelementvalue(2) = "1234567.12" ' Quantity (380) 'TOTAL REJECTED QUANTITY 'QTY Quantity edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\qty(2)")) osegment.dataelementvalue(1) = "QC" ' Quantity Qualifier (673) osegment.dataelementvalue(2) = "1234567.12" ' Quantity (380) 'TOTAL ACCEPTED AMOUNT 'AMT Monetary Amount edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\amt")) osegment.dataelementvalue(1) = "YU" ' Amount Qualifier Code (522) osegment.dataelementvalue(2) = "1234567.12" ' Monetary Amount (782) 'TOTAL REJECTED AMOUNT 'AMT Monetary Amount edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\amt(2)")) osegment.dataelementvalue(1) = "YY" ' Amount Qualifier Code (522) osegment.dataelementvalue(2) = "1234567.12" ' Monetary Amount (782) '2000D PATIENT LEVEL Do While nhlpatientcounter <= nhlpatients nhlcounter = nhlcounter + 1 osegment.dataelementvalue(1) = "4" 'Hierarchical ID Number osegment.dataelementvalue(2) = "3" 'Hierarchical Parent ID Number osegment.dataelementvalue(3) = "PT" 'Hierarchical Level Code '2100D PATIENT NAME osegment.dataelementvalue(1) = "QC" 'Entity Identifier Code osegment.dataelementvalue(2) = "1" 'Entity Type Qualifier osegment.dataelementvalue(3) = "PATIENT" 'Name Last or Organization Name osegment.dataelementvalue(4) = "FEMALE" 'Name First osegment.dataelementvalue(8) = "MI" 'Identification Code Qualifier osegment.dataelementvalue(9) = "2222222222" 'Identification Code '2200D CLAIM STATUS TRACKING NUMBER osegment.dataelementvalue(1) = "2" 'Trace Type Code osegment.dataelementvalue(2) = "PATIENT22222" 'Reference Identification 'CLAIM LEVEL STATUS INFORMATION 'STC STATUS INFORMATION edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\stc")) osegment.dataelementvalue(1, 1) = "A2" 'Industry Code osegment.dataelementvalue(1, 2) = "20" 'Industry Code osegment.dataelementvalue(1, 3) = "PR" 'Entity Identifier Code osegment.dataelementvalue(2) = "20060321" 'Date
osegment.dataelementvalue(3) = "WQ" osegment.dataelementvalue(4) = "55" 'Action Code 'Monetary Amount 6 'PAYER CLAIM CONTROL NUMBER 'REF REFERNCE IDENTIFICATION edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\ref")) osegment.dataelementvalue(1) = "1K" ' osegment.dataelementvalue(2) = "220216359803X" ' ''CLAIM ID NUMBER FOR CLEARINGHOUSE AND OTHER TRANSMISSION INTERMEDIARIES ''REF REFERNCE IDENTIFICATION 'edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\ref(2)")) 'osegment.dataelementvalue(1) = "D9" ' 'osegment.dataelementvalue(2) = "12421075" ' ''INSTITUTIONAL BILL TYPE IDENTIFIER ''REF REFERNCE IDENTIFICATION 'edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\ref(3)")) 'osegment.dataelementvalue(1) = "BLT" ' 'osegment.dataelementvalue(2) = "111" ' 'CLAIM LEVEL SERVICE DATE 'DTP DATE OR TIME OR PERIOD edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\dtp")) osegment.dataelementvalue(1) = "472" 'Date/Time Qualifier osegment.dataelementvalue(2) = "D8" 'Date Time Period Format Qualifier osegment.dataelementvalue(3) = "20060314" 'Date Time Period (235) )) )) Qualifier (128) '2220D SERVICE LINE INFORMATION Do While nservicelinecounter = nservicelines 'SVC Service Information osegment = otransactionset.createdatasegment("hl\trn\svc\svc") osegment.dataelementvalue(1, 1) = "HC" ' Product/Service ID Qualifier osegment.dataelementvalue(1, 2) = "22305" ' Product/Service ID (234) osegment.dataelementvalue(1, 3) = "" ' Procedure Modifier (1339) osegment.dataelementvalue(1, 4) = "" ' Procedure Modifier (1339) osegment.dataelementvalue(1, 5) = "" ' Procedure Modifier (1339) osegment.dataelementvalue(1, 6) = "" ' Procedure Modifier (1339) osegment.dataelementvalue(2) = "350" ' Monetary Amount (782) osegment.dataelementvalue(4) = "" ' Product/Service ID (234) osegment.dataelementvalue(7) = "1" ' Quantity (380) 'SERVICE LINE LEVEL STATUS INFO 'STC Status Information edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\svc\stc" osegment.dataelementvalue(1, 1) = "A3" ' Industry Code (1271) osegment.dataelementvalue(1, 2) = "122" ' Industry Code (1271) osegment.dataelementvalue(1, 3) = "" ' Entity Identifier Code (98) osegment.dataelementvalue(3) = "U" ' Action Code (306) osegment.dataelementvalue(10, 1) = "A3" ' Industry Code (1271) osegment.dataelementvalue(10, 2) = "153" ' Industry Code (1271) osegment.dataelementvalue(10, 3) = "82" ' Entity Identifier Code (98) osegment.dataelementvalue(11, 1) = "" ' Industry Code (1271) osegment.dataelementvalue(11, 2) = "" ' Industry Code (1271) osegment.dataelementvalue(11, 3) = "" ' Entity Identifier Code (98) osegment.dataelementvalue(12) = "" ' Free Form Message Text (933) 'SERVICE LINE ITEM ID 'REF Reference Identification edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\svc\ref" osegment.dataelementvalue(1) = "FJ" ' Reference Identification osegment.dataelementvalue(2) = "11" ' Reference Identification (127)
7 (2)")) Qualifier (128) (127) ")) Qualifier (1250) 'PHARMACY PRESCRIPTION NUMBER 'REF Reference Identification 'edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\svc\ref 'osegment.dataelementvalue(1) = "XZ" 'osegment.dataelementvalue(2) = "A1B2C3D4E5" ' Reference Identification ' Reference Identification 'SERVICE LINE DATE 'DTP Date or Time or Period 'edidatasegment.set(osegment, otransactionset.createdatasegment("hl\trn\svc\dtp 'osegment.dataelementvalue(1) = "472" ' Date/Time Qualifier (374) 'osegment.dataelementvalue(2) = "D8" ' Date Time Period Format 'osegment.dataelementvalue(3) = "A1B2C3D4E5" ' Date Time Period (1251) nservicelinecounter = nservicelinecounter + 1 Loop 'nservicelinecounter = nservicelines nhlpatientcounter = nhlpatientcounter + 1 Loop 'nhlpatientcounter <= nhlpatients nhlbillproviderservicecounter = nhlbillproviderservicecounter + 1 Loop 'nhlbillproviderservicecounter <= nhlbillproviderservices nhlinforeceivercounter = nhlinforeceivercounter + 1 Loop 'nhlinforeceivercounter <= nhlinforeceivers nhlinfosourcecounter = nhlinfosourcecounter + 1 Loop 'nhlinfosourcecounter <= nhlinfosources '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") End Sub End Class 'DESTROYS OBJECTS osegment.dispose() otransactionset.dispose() ogroup.dispose() ointerchange.dispose() oschema.dispose() oschemas.dispose() oedidoc.dispose()