[623] | 1 | VWUTIL ;WVEHR/Maury Pepper/Skip Ormsby- World VistA Utilities;7:32 PM 30 Jan 2008
|
---|
| 2 | ;;WVEHR-1007;WORLD VISTA;*WVEHR1*;;WorldVistA 30-Jan-08
|
---|
| 3 | ;
|
---|
| 4 | ;Modified from FOIA VISTA,
|
---|
| 5 | ;Copyright 2008 WorldVistA. Licensed under the terms of the GNU
|
---|
| 6 | ;General Public License See attached copy of the License.
|
---|
| 7 | ;
|
---|
| 8 | ;This program is free software; you can redistribute it and/or modify
|
---|
| 9 | ;it under the terms of the GNU General Public License as published by
|
---|
| 10 | ;the Free Software Foundation; either version 2 of the License, or
|
---|
| 11 | ;(at your option) any later version.
|
---|
| 12 | ;
|
---|
| 13 | ;This program is distributed in the hope that it will be useful,
|
---|
| 14 | ;but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
| 15 | ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
| 16 | ;GNU General Public License for more details.
|
---|
| 17 | ;
|
---|
| 18 | ;You should have received a copy of the GNU General Public License along
|
---|
| 19 | ;with this program; if not, write to the Free Software Foundation, Inc.,
|
---|
| 20 | ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
---|
| 21 | ;
|
---|
| 22 | Q
|
---|
| 23 | ;
|
---|
| 24 | Q(V,D) ; Function to return $QUERY for variable V and direction D.
|
---|
| 25 | ; Replacement for Reverse $Q Function
|
---|
| 26 | ; 1/8/08 MLP
|
---|
| 27 | ;This function can be called for $Query -- either forward or reverse.
|
---|
| 28 | ;In place of $Q(V,D), use $$Q^ZDQ($NA(V),D)
|
---|
| 29 | ;Note: the 2nd argument is optional.
|
---|
| 30 | ;
|
---|
| 31 | S D=+$G(D,1)
|
---|
| 32 | Q:D=1 $Q(@V) ;Forward $Q
|
---|
| 33 | IF D'=-1 Q ;Will cause error due to no argument.
|
---|
| 34 | N S
|
---|
| 35 | TOP IF $QL(V)=0 Q "" ;done if unsubscripted
|
---|
| 36 | BKU S S=$O(@V,-1) ;backup to previous node on current level
|
---|
| 37 | S V=$NA(@V,$QL(V)-1) ;remove last subscript
|
---|
| 38 | IF S="" G DAT ;go chk for data if backed up all the way
|
---|
| 39 | S V=$NA(@V@(S)) ;add the subscript found when backing up.
|
---|
| 40 | IF $D(@V)>9 S V=$NA(@V@("")) G BKU ;if downpointer, descend and repeat
|
---|
| 41 | DAT IF $D(@V)#2=1 Q V ;if a data node, return with current name
|
---|
| 42 | G TOP
|
---|