" Notes from 837 Professional Manual
" p. 39
" HL*1**20*1~ (indicates the billing provider)
" HL*2*1*22*0~ (indicates subscriber #1 for whom there are no dependents)
" HL*3*1*22*1~ (indicates subscriber #2 for whom there are dependents)
" HL*4*3*23*0~ (indicates patient #P2.1)
" if the 4th character in the file is not an asterisk, change all of that
" character to an asterisk
let separator=getline("1")[3:3]
if( separator != "*" )
:echon "substituting " . separator . " symbols with * for formatting..."
:redraw
exec ":s/" . separator . "/*/g"
endif
" make sure we have line breaks
if( line("$") < 4 )
:echon "seems like we are missing line breaks; we will now break at \~ symbols..."
:redraw
:%s/\~/\~
/g
endif
echon "formatting for 837 Professional..."
redraw
syn clear
syn case ignore
syn match submittername "^NM1\*41\*.*" contained transparent
syn match billingprovider "^NM1\*85\*.*" contained " box 1/ub, 33/1500
syn match referringprovider "^NM1\*DN\*.*" contained
syn match attendingphysician "^NM1\*71\*.*" contained " ub only
syn match operatingphysician "^NM1\*72\*.*" contained " ub only
syn match renderingprovider "^NM1\*82\*.*" contained " 1500 only, p.290, box 24.j
syn match insuredname "^NM1\*IL\*.*" contained
syn match patientname "^NM1\*QC\*.*" contained
syn match servicelocation "^NM1\*77\*.*" contained " 1500 only
syn match facility "^NM1\*FA\*.*" contained
syn match independentlab "^NM1\*LI\*.*" contained
syn match testinglaboratory "^NM1\*TL\*.*" contained
syn match hlhdr "^HL\*[0-9]*\*[0-9]*\*20.*"
syn match subscriberhl "^HL\*[0-9]*\*[0-9]*\*22.*"
syn match clmhdr "^CLM\*.*"
syn region subscriberregion start="^HL\*[0-9]*\*[0-9]*\*22.*" end="\nHL\*[0-9]*\*[0-9]*\*22.*"me=s-1 contains=ALL contained fold keepend
syn region clm start="^CLM\*.*" end="\nCLM\*.*"me=s-1 contains=ALL contained fold keepend
syn region hl start="^HL\*[0-9]*\*[0-9]*\*20.*" end="\nHL\*[0-9]*\*[0-9]*\*20.*"me=s-1 contains=ALL contained fold keepend
syn region bht start="^BHT.*" end="\nBHT.*"me=s-1 contains=ALL fold keepend extend
hi bht guifg=gray
hi hlhdr guibg=red2 guifg=white
hi clmhdr guifg=red
hi billingprovider guifg=white guibg=blue
"hi submittername guifg=gray gui=undercurl guisp=blue
hi referringprovider guifg=darkyellow
hi renderingprovider guifg=white guibg=blue
hi attendingphysician guifg=white guibg=blue
hi operatingphysician guifg=white guibg=blue
hi servicelocation guibg=darkgreen guifg=white
hi facility guibg=darkgreen guifg=white
hi independentlab guifg=darkgreen
hi testinglaboratory guifg=darkgreen
hi insuredname guifg=white guibg=DarkRed
hi patientname guifg=white guibg=DarkCyan
" make highlighted results readable
hi Search guifg=Black guibg=Yellow
setl foldmethod=syntax
setl foldlevel=0
setl foldnestmax=20
syn sync fromstart
setl fen
set readonly