'This is just an example program to translate a HIPAA 271 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 oSegment As Fredi.ediDataSegment Private oElement As Fredi.ediDataElement Private Sub cmdSequential_Click() 'Translate an EDI file to an HTM file Dim sPath As String Dim sEntity As String Dim sQlfr As String Dim sEligQlfr As String Dim sSefFile As String Dim sEdiFile As String Dim sOutputFile As String Dim sSegmentID As String Dim nArea As Integer Dim sLoopSection As String Dim nCount As Integer Dim i As Integer Me.MousePointer = vbHourglass sPath = Trim(App.Path) & "\" sSefFile = sPath & "271_X092.SEF" sEdiFile = sPath & "271_x092.x12" sOutputFile = sPath & "271.HTM" 'instantiate edi document object Set oEdiDoc = New Fredi.ediDocument 'change cursor type from dynamic (default) to ForwardOnly to improve performance oEdiDoc.CursorType = Cursor_ForwardOnly 'disable the internal standard referene library so that component will use SEF files only 'to obtain schema Set oSchemas = oEdiDoc.GetSchemas oSchemas.EnableStandardReference = False 'load SEF file oEdiDoc.ImportSchema sSefFile, 0 'load EDI file oEdiDoc.LoadEdi sEdiFile 'get first segment in EDI file Set oSegment = oEdiDoc.FirstDataSegment 'create a file to save htm format Open sOutputFile For Output As #1 'loop that traverses through EDI file While Not oSegment Is Nothing 'identify a segment uniquely by chacking its id, area and loopsection it is in. sSegmentID = oSegment.ID nArea = oSegment.Area sLoopSection = oSegment.LoopSection If nArea = "0" Then If sSegmentID = "ISA" Then 'obtain ISA information here ElseIf sSegmentID = "GS" Then 'obtain GS infomraiton here End If ElseIf nArea = "1" Then If sLoopSection = "" Then If sSegmentID = "BHT" Then 'Beginning of Hierarchical Transaction SendToHTM "Reference ID: ", oSegment.DataElementValue(3) SendToHTM "Date: ", oSegment.DataElementValue(4) Else End If Else End If ElseIf nArea = 2 Then If sLoopSection = "HL" And sSegmentID = "HL" Then sEntity = oSegment.DataElementValue(3) 'obtain the level code to identify the HL loop End If If sEntity = "20" Then 'Information Source Level If sLoopSection = "HL" Then If sSegmentID = "HL" Then End If ElseIf sLoopSection = "HL;NM1" Then If sSegmentID = "NM1" Then 'Information Source Name SendToHTM "Payer Name: ", oSegment.DataElementValue(3) SendToHTM "Payer ID: ", oSegment.DataElementValue(9) End If End If ElseIf sEntity = "21" Then 'Information Receiver Level If sLoopSection = "HL" Then If sSegmentID = "HL" Then End If ElseIf sLoopSection = "HL;NM1" Then If sSegmentID = "NM1" Then 'Information Receiver Name SendToHTM "Provider Lastname: ", oSegment.DataElementValue(3) SendToHTM "Provider Firstname: ", oSegment.DataElementValue(4) SendToHTM "Service Provider No: ", oSegment.DataElementValue(9) End If End If ElseIf sEntity = "22" Then 'Subscriber Level If sLoopSection = "HL" Then If sSegmentID = "HL" Then ElseIf sSegmentID = "TRN" Then 'Subscriber Trace Number SendToHTM "Subscriber ReferenceID: ", oSegment.DataElementValue(2) SendToHTM "Subscriber Company ID: ", oSegment.DataElementValue(3) End If ElseIf sLoopSection = "HL;NM1" Then If sSegmentID = "NM1" Then sQlfr = oSegment.DataElementValue(1) End If 'sSegmentID If sQlfr = "IL" Then If sSegmentID = "NM1" Then 'Subscriber Name SendToHTM "Insured Subscriber Lastname: ", oSegment.DataElementValue(3) SendToHTM "Insured Subscriber Firstname: ", oSegment.DataElementValue(4) SendToHTM "Insured Subscriber Middle Initial: ", oSegment.DataElementValue(5) ElseIf sSegmentID = "REF" Then 'Subscriber Additional Identification SendToHTM "Subscriber Policy No: ", oSegment.DataElementValue(2) ElseIf sSegmentID = "N3" Then SendToHTM "Address: ", oSegment.DataElementValue(1) ElseIf sSegmentID = "N4" Then SendToHTM "Subscriber City:", oSegment.DataElementValue(1) SendToHTM "Subscriber State:", oSegment.DataElementValue(2) SendToHTM "Subscriber Zip:", oSegment.DataElementValue(3) ElseIf sSegmentID = "DMG" Then 'Subscriber Demographic Information SendToHTM "Subscriber Birthday: ", oSegment.DataElementValue(2) SendToHTM "Subscriber Gender: ", oSegment.DataElementValue(3) End If 'sSegmentID End If 'sQlfr ElseIf sLoopSection = "HL;NM1;EB" Then If sSegmentID = "EB" Then 'Eligibility or Benefit Information sEligQlfr = oSegment.DataElementValue(1) 'Eligibility or Benefit Information End If If sEligQlfr = "1" Then 'Active Coverage If sSegmentID = "EB" Then SendToHTM "Subscriber Active Coverage Level Code: ", oSegment.DataElementValue(2) SendToHTM "Subscriber Active Coverage Type Code: ", oSegment.DataElementValue(3) ElseIf sSegmentID = "HSD" Then ElseIf sSegmentID = "REF" Then ElseIf sSegmentID = "DTP" Then End If ElseIf sEligQlfr = "B" Then 'Co-Payment If sSegmentID = "EB" Then SendToHTM "Subscriber Co-Payment Service Type Code: ", oSegment.DataElementValue(3) SendToHTM "Subscriber Co-Payment Amount: ", oSegment.DataElementValue(7) ElseIf sSegmentID = "HSD" Then ElseIf sSegmentID = "REF" Then ElseIf sSegmentID = "DTP" Then End If ElseIf sEligQlfr = "C" Then 'Deductible If sSegmentID = "EB" Then SendToHTM "Subscriber Deductible Level Code: ", oSegment.DataElementValue(2) SendToHTM "Subscriber Deductible Amount: ", oSegment.DataElementValue(7) ElseIf sSegmentID = "HSD" Then ElseIf sSegmentID = "REF" Then ElseIf sSegmentID = "DTP" Then End If ElseIf sEligQlfr = "L" Then 'Primary Care Provider End If ElseIf sLoopSection = "HL;NM1;EB;LS;nm1" Then If sSegmentID = "NM1" Then sQlfr = oSegment.DataElementValue(1) End If If sQlfr = "P3" Then 'Primary Care Provider If sSegmentID = "NM1" Then SendToHTM "Subscriber Primary Care Provider Lastname: ", oSegment.DataElementValue(3) SendToHTM "Subscriber Primary Care Provider Firstname: ", oSegment.DataElementValue(4) SendToHTM "Subscriber Primary Care Provider Middle Initial: ", oSegment.DataElementValue(5) SendToHTM "Subscriber Primary Care Provider ID: ", oSegment.DataElementValue(9) ElseIf sSegmentID = "PER" Then SendToHTM Trim(oSegment.DataElementValue(2)) & "Telephone: ", oSegment.DataElementValue(4) End If 'sSegmentID End If 'sQlfr End If 'sLoopSection ElseIf sEntity = "23" Then 'Dependent Level 'The Dependent Level should almost be quite similar to the Subscriber level If sLoopSection = "HL" Then If sSegmentID = "HL" Then ElseIf sSegmentID = "TRN" Then 'Dependent Trace Number SendToHTM "Dependent ReferenceID: ", oSegment.DataElementValue(2) SendToHTM "Dependent Company ID: ", oSegment.DataElementValue(3) SendToHTM "Additional Dependent ReferenceID: ", oSegment.DataElementValue(4) End If 'sSegmentID ElseIf sLoopSection = "HL;NM1" Then If sSegmentID = "NM1" Then sQlfr = oSegment.DataElementValue(1) End If If sQlfr = "03" Then 'Depenedent If sSegmentID = "NM1" Then 'Depenedent Name SendToHTM "Insured Dependent Lastname: ", oSegment.DataElementValue(3) SendToHTM "Insured Dependent Firstname: ", oSegment.DataElementValue(4) SendToHTM "Insured Dependent Middle Initial: ", oSegment.DataElementValue(5) ElseIf sSegmentID = "REF" Then 'Depenedent Additional Identification If oSegment.DataElementValue(1) = "SY" Then 'SSN SendToHTM "Dependent SSN: ", oSegment.DataElementValue(2) End If ElseIf sSegmentID = "N3" Then SendToHTM "Dependent Address: ", oSegment.DataElementValue(1) ElseIf sSegmentID = "N4" Then SendToHTM "Dependent City:", oSegment.DataElementValue(1) SendToHTM "Dependent State:", oSegment.DataElementValue(2) SendToHTM "Zip:", oSegment.DataElementValue(3) ElseIf sSegmentID = "DMG" Then SendToHTM "Dependent Birthday: ", oSegment.DataElementValue(2) SendToHTM "Dependent Gender: ", oSegment.DataElementValue(3) ElseIf sSegmentID = "INS" Then SendToHTM "Dependent Relationship Code: ", oSegment.DataElementValue(2) ElseIf sSegmentID = "DTP" Then SendToHTM "Dependent Service Date: ", oSegment.DataElementValue(3) End If End If 'sQlfr ElseIf sLoopSection = "HL;NM1;EB" Then If sSegmentID = "EB" Then 'Eligibility or Benefit Information sEligQlfr = oSegment.DataElementValue(1) 'Eligibility or Benefit Information End If If sEligQlfr = "1" Then 'Active Coverage If sSegmentID = "EB" Then SendToHTM "Dependent Active Coverage Level Code: ", oSegment.DataElementValue(2) SendToHTM "Dependent Active Coverage Type Code: ", oSegment.DataElementValue(3) ElseIf sSegmentID = "HSD" Then ElseIf sSegmentID = "REF" Then ElseIf sSegmentID = "DTP" Then End If ElseIf sEligQlfr = "B" Then 'Co-Payment If sSegmentID = "EB" Then SendToHTM "Dependent Co-Payment Service Type Code: ", oSegment.DataElementValue(3) SendToHTM "Dependent Co-Payment Amount: ", oSegment.DataElementValue(7) ElseIf sSegmentID = "HSD" Then ElseIf sSegmentID = "REF" Then ElseIf sSegmentID = "DTP" Then End If ElseIf sEligQlfr = "C" Then 'Deductible If sSegmentID = "EB" Then SendToHTM "Dependent Deductible Level Code: ", oSegment.DataElementValue(2) SendToHTM "Dependent Deductible Amount: ", oSegment.DataElementValue(7) ElseIf sSegmentID = "HSD" Then ElseIf sSegmentID = "REF" Then ElseIf sSegmentID = "DTP" Then End If ElseIf sEligQlfr = "L" Then 'Primary Care Provider End If ElseIf sLoopSection = "HL;NM1;EB;LS;NM1" Then If sSegmentID = "NM1" Then sQlfr = oSegment.DataElementValue(1) End If If sQlfr = "P3" Then 'Primary Care Provider If sSegmentID = "NM1" Then SendToHTM "Dependent Primary Care Provider Lastname: ", oSegment.DataElementValue(3) SendToHTM "Dependent Primary Care Provider Firstname: ", oSegment.DataElementValue(4) SendToHTM "Dependent Primary Care Provider Middle Initial: ", oSegment.DataElementValue(5) SendToHTM "Dependent Primary Care Provider ID: ", oSegment.DataElementValue(9) ElseIf sSegmentID = "PER" Then SendToHTM Trim(oSegment.DataElementValue(2)) & " Telephone: ", oSegment.DataElementValue(4) End If 'sSegmentID End If 'sQlfr End If 'sLoopSection End If 'sEntity End If 'sArea Set oSegment = oSegment.Next Wend Close #1 cmdSequential.Enabled = False Me.MousePointer = vbNormal MsgBox ("Done. Output file = " & sOutputFile) End Sub Private Sub SendToHTM(sTitle As String, sValue As String) Print #1, "<P><TAB> " & sTitle & " <B>" & sValue & "</B>" End Sub