'This is just an example program to show how to generate a HIPAA X12 270 X092 EDI X12 file 'in VB6 with Framework EDI component Option Explicit Private oEdiDoc As Fredi.ediDocument Private oSchema As Fredi.ediSchema Private oSchemas As Fredi.ediSchemas Private oInterchange As Fredi.ediInterchange Private oGroup As Fredi.ediGroup Private oTransactionset As Fredi.ediTransactionSet Private oSegment As Fredi.ediDataSegment Private sSefFile As String Private sEdiFile As String Private Sub cmdGenerate_Click() Dim i As Integer Dim nCount As Integer Dim sPath As String Dim sEntity As String Dim nIndex As Integer Dim sSefFile As String Dim sEdiFile As String Dim iItemCount As Integer Dim sInstance As String Dim nInfoSources As Integer Dim nInfoSourceCounter As Integer Dim nInfoReceivers As Integer Dim nInfoReceiverCounter As Integer Dim nSubscribers As Integer Dim nSubscriberCounter As Integer Dim nDependents As Integer Dim nDependentCounter As Integer Dim nHlCounter As Integer Dim nHlInfoReceiverParent As Integer Dim nHlSubscriberParent As Integer Dim nHlDependentParent As Integer Me.MousePointer = vbHourglass sPath = App.Path & "\" sSefFile = "270_X092.sef" sEdiFile = "270OUTPUT.x12" 'instantiate edi document object Set oEdiDoc = New Fredi.ediDocument 'change cursor type from Dynamic (default) to ForwardWrite to improve performance oEdiDoc.CursorType = Cursor_ForwardWrite 'disable internal standard reference library so that component will only use SEF files 'to obtain schema Set oSchemas = oEdiDoc.GetSchemas oSchemas.EnableStandardReference = False Set oSchema = oEdiDoc.ImportSchema(sPath & sSefFile, 0) 'set terminators oEdiDoc.SegmentTerminator = "~" & vbCrLf oEdiDoc.ElementTerminator = "*" oEdiDoc.CompositeTerminator = ":" 'create ISA Set oInterchange = oEdiDoc.CreateInterchange("X", "004010") Set oSegment = oInterchange.GetDataSegmentHeader oSegment.DataElementValue(1) = "00" oSegment.DataElementValue(3) = "00" oSegment.DataElementValue(5) = "12" oSegment.DataElementValue(6) = "Sender" oSegment.DataElementValue(7) = "12" oSegment.DataElementValue(8) = "ReceiverID" oSegment.DataElementValue(9) = "010821" oSegment.DataElementValue(10) = "1548" oSegment.DataElementValue(11) = "U" oSegment.DataElementValue(12) = "00401" oSegment.DataElementValue(13) = "000000020" oSegment.DataElementValue(14) = "0" oSegment.DataElementValue(15) = "T" oSegment.DataElementValue(16) = ":" 'create GS Set oGroup = oInterchange.CreateGroup("004010X092") Set oSegment = oGroup.GetDataSegmentHeader oSegment.DataElementValue(1) = "HS" oSegment.DataElementValue(2) = "SenderDept" oSegment.DataElementValue(3) = "ReceiverDept" oSegment.DataElementValue(4) = "20010821" oSegment.DataElementValue(5) = "1548" oSegment.DataElementValue(6) = "1" oSegment.DataElementValue(7) = "X" oSegment.DataElementValue(8) = "004010X092" 'HEADER 'create ST TRANSACTION SET HEADER Set oTransactionset = oGroup.CreateTransactionSet("270") Set oSegment = oTransactionset.GetDataSegmentHeader oSegment.DataElementValue(2) = "1234" 'Beginning Segment 'create BHT segment Set oSegment = oTransactionset.CreateDataSegment("BHT") oSegment.DataElementValue(1) = "0022" oSegment.DataElementValue(2) = "13" oSegment.DataElementValue(3) = "10001234" oSegment.DataElementValue(4) = "19990501" oSegment.DataElementValue(5) = "1319" nInfoSources = 1 nInfoSourceCounter = 1 nInfoReceivers = 1 nInfoReceiverCounter = 1 nSubscribers = 1 nSubscriberCounter = 1 nDependents = 1 nDependentCounter = 1 nHlCounter = 0 '************************************************************************************************* 'DETAIL INFORMATION SOURCE LEVEL Do While nInfoSourceCounter <= nInfoSources nHlCounter = nHlCounter + 1 nHlInfoReceiverParent = nHlCounter 'DETAIL INFO SOURCE LEVEL 'create HL segment in HL loop Set oSegment = oTransactionset.CreateDataSegment("HL\HL") oSegment.DataElementValue(1) = nHlCounter oSegment.DataElementValue(3) = "20" oSegment.DataElementValue(4) = "1" 'INFORMATION SOURCE NAME 'create NM1 segment in NM1 loop nested in HL loop Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\NM1") oSegment.DataElementValue(1) = "PR" oSegment.DataElementValue(2) = "2" oSegment.DataElementValue(3) = "ABC COMPANY" oSegment.DataElementValue(8) = "PI" oSegment.DataElementValue(9) = "842610001" '************************************************************************************************* 'DETAIL INFORMATION RECEIVER LEVEL Do While nInfoReceiverCounter <= nInfoReceivers nHlCounter = nHlCounter + 1 nHlSubscriberParent = nHlCounter 'INFORMATION RECEIVER LEVEL Set oSegment = oTransactionset.CreateDataSegment("HL\HL") oSegment.DataElementValue(1) = nHlCounter oSegment.DataElementValue(2) = nHlInfoReceiverParent oSegment.DataElementValue(3) = "21" oSegment.DataElementValue(4) = "1" 'INFORMATION RECEIVER NAME Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\NM1") oSegment.DataElementValue(1) = "1P" oSegment.DataElementValue(2) = "1" oSegment.DataElementValue(3) = "JONES" oSegment.DataElementValue(4) = "MARCUS" oSegment.DataElementValue(8) = "SV" oSegment.DataElementValue(9) = "0202034" '************************************************************************************************* 'DETAIL SUBSCRIBER LEVEL Do While nSubscriberCounter <= nSubscribers nHlCounter = nHlCounter + 1 nHlDependentParent = nHlCounter 'SUBSCRIBER LEVEL 'create HL segment in HL loop Set oSegment = oTransactionset.CreateDataSegment("HL\HL") oSegment.DataElementValue(1) = nHlCounter oSegment.DataElementValue(2) = nHlSubscriberParent oSegment.DataElementValue(3) = "22" If nDependents > 0 Then oSegment.DataElementValue(4) = "1" Else oSegment.DataElementValue(4) = "0" End If 'SUBSCRIBER TRACE NUMBER 'create TRN segment in HL loop Set oSegment = oTransactionset.CreateDataSegment("HL\TRN") oSegment.DataElementValue(1) = "1" oSegment.DataElementValue(2) = "93175-012547" oSegment.DataElementValue(3) = "9877281234" 'SUBSCRIBER NAME 'create NM1 segment in NM1 loop nested in HL loop Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\NM1") oSegment.DataElementValue(1) = "IL" oSegment.DataElementValue(2) = "1" oSegment.DataElementValue(3) = "SMITH" oSegment.DataElementValue(4) = "ROBERT" oSegment.DataElementValue(5) = "B" oSegment.DataElementValue(8) = "MI" oSegment.DataElementValue(9) = "11122333301" 'create N3 segment in NM1 loop nested in HL loop Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\N3") oSegment.DataElementValue(1) = "12345 HIGHWAY ST" 'create N4 segment in NM1 loop nested in HL loop Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\N4") oSegment.DataElementValue(1) = "BURBANK" oSegment.DataElementValue(2) = "CA" oSegment.DataElementValue(3) = "12345" 'SUBSCRIBER ADDITIONAL IDENTIFICATION Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\REF") oSegment.DataElementValue(1) = "1L" oSegment.DataElementValue(2) = "599119" 'SUBSCRIBER DEMOGRAPHIC INFORMATION Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\DMG") oSegment.DataElementValue(1) = "D8" oSegment.DataElementValue(2) = "19430519" oSegment.DataElementValue(3) = "M" 'SUBSCRIBER DATE Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\DTP") oSegment.DataElementValue(1) = "472" oSegment.DataElementValue(2) = "D8" oSegment.DataElementValue(3) = "19990501" 'SUBSCRIBER ELIGIBILITY OR BENEFIT INQUIRY INFORMATION Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\EQ\EQ") oSegment.DataElementValue(1) = "98" oSegment.DataElementValue(3) = "FAM" '************************************************************************************************* 'DETAIL DEPENDENT LEVEL Do While nDependentCounter <= nDependents nHlCounter = nHlCounter + 1 'DEPENDENT LEVEL Set oSegment = oTransactionset.CreateDataSegment("HL\HL") oSegment.DataElementValue(1) = nHlCounter oSegment.DataElementValue(2) = nHlDependentParent oSegment.DataElementValue(3) = "23" oSegment.DataElementValue(4) = "0" 'DEPENDENT TRACE NUMBER Set oSegment = oTransactionset.CreateDataSegment("HL\TRN") oSegment.DataElementValue(1) = "1" oSegment.DataElementValue(2) = "93175-012547" oSegment.DataElementValue(3) = "9877281234" 'DEPENDENT NAME Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\NM1") oSegment.DataElementValue(1) = "03" oSegment.DataElementValue(2) = "1" oSegment.DataElementValue(3) = "SMITH" oSegment.DataElementValue(4) = "JANE" oSegment.DataElementValue(5) = "C" Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\N3") oSegment.DataElementValue(1) = "12345 HIGHWAY ST" Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\N4") oSegment.DataElementValue(1) = "BURBANK" oSegment.DataElementValue(2) = "CA" oSegment.DataElementValue(3) = "12345" 'SUBSCRIBER ELIGIBILITY OR BENEFIT INQUIRY INFORMATION Set oSegment = oTransactionset.CreateDataSegment("HL\NM1\EQ\EQ") oSegment.DataElementValue(1) = "1" oSegment.DataElementValue(3) = "DEP" nDependentCounter = nDependentCounter + 1 Loop 'nDependents nSubscriberCounter = nSubscriberCounter + 1 Loop 'nSubscribers nInfoReceiverCounter = nInfoReceiverCounter + 1 Loop 'nInfoReceivers nInfoSourceCounter = nInfoSourceCounter + 1 Loop 'nInfoSources 'save edi document object to file oEdiDoc.Save sPath & sEdiFile Me.MousePointer = vbNormal MsgBox ("Done. Output = " & sPath & sEdiFile) cmdGenerate.Enabled = False End Sub