Subject:multiple DTPs at the same level in HIPAA 834 file Author:Lance Merrifield Date:06 May 2008 01:33 PM
I am evaluating Stylus Studio and find it very useful dealing with X12 data. Have used it to convert an X12 834 file to XML and am attempting to use Xquery to extract the information I need. There are 2 DTP tags for the same GROUP_3 level, one for date of employment and one for date of enrollment. I am only interested in returning the enrollment date, which is associated with the DTP01 value of '356'. The following is my XQuery that is returning both DTP's. Thanks in advance for your help.
let $doc := doc('file:///c:/Filename.xml')
for $GRP3 in $doc/X12/TS_834/GROUP_3
where $GRP3/DTP/DTP01 = '356'
return
<MEMBER>
{ $GRP3/DTP/DTP01,
$GRP3/DTP/DTP03,
$GRP3/GROUP_4/NM1/NM109,
$GRP3/GROUP_4/DMG/DMG02,
$GRP3/GROUP_4/DMG/DMG03 }
</MEMBER>
Subject:multiple DTPs at the same level in HIPAA 834 file Author:Minollo I. Date:06 May 2008 01:49 PM
You probably want to use something like this:
let $doc := doc('file:///c:/Filename.xml')
for $GRP3 in $doc/X12/TS_834/GROUP_3
return
<MEMBER> {
$GRP3/DTP[DTP01 = '356']/DTP01,
$GRP3/DTP[DTP01 = '356']/DTP03,
$GRP3/GROUP_4/NM1/NM109,
$GRP3/GROUP_4/DMG/DMG02,
$GRP3/GROUP_4/DMG/DMG03
} </MEMBER>
...or, if you prefer...
let $doc := doc('file:///c:/Filename.xml')
for $GRP3 in $doc/X12/TS_834/GROUP_3
let $DTP356 := $GRP3/DTP[DTP01 = '356']
return
<MEMBER> {
$DTP356/DTP01,
$DTP356/DTP03,
$GRP3/GROUP_4/NM1/NM109,
$GRP3/GROUP_4/DMG/DMG02,
$GRP3/GROUP_4/DMG/DMG03
} </MEMBER>