VistA-FOIAVistA/r/PROSTHETICS-RMPR-RMPO-RMPS/RMPRPIXE.m

238 lines
9.2 KiB
Mathematica

RMPRPIXE ;HINCIO/ODJ-FILE 661.7 API ;3/8/01
;;3.0;PROSTHETICS;**61**;Feb 09, 1996
Q
;
; NEXT - is used to get the next (or previous) record keys
; from an input set of keys, on file 661.7, using a
; specified cross-reference and key level.
; The following cross-references are currently supported...
;
; XHDS - HCPCS, Date&Time and Sequence
; XSHIDS - Station, HCPCS, Item, Date&Time and Sequence
; XSLHIDS - Station, Location, HCPCS, Item,
; Date&Time and Sequence
;
; Inputs:
; RMPR - an array of key values which define a record.
; The specification of this array is dependent on which
; cross-reference is entered (see below)
; RMPRXREF - The cross-reference used to order on (see above)
; RMPRLEV - The level of traversal. This is also dependent on
; which cross-reference is used (see below)
; RMPRT - Direction of traversal: 1 - Next (ascending)
; -1 - Previous (descending)
; RMPROLD - This is a copy of RMPR prior to changing RMPR values
; RMPREOF - End Of File flag: 1 - End Of File, 0 - not end of file
;
; XHDS x-ref:
; RMPR("HCPCS")
; RMPR("DATE&TIME")
; RMPR("SEQUENCE")
; RMPR("IEN")
; Set RMPRLEV to...
; "HCPCS" - HCPCS
; "DATE&TIME" - DATE&TIME
; "SEQUENCE" - SEQUENCE
; "" - All records
;
; XSHIDS x-ref:
; RMPR("STATION")
; RMPR("HCPCS")
; RMPR("ITEM")
; RMPR("DATE&TIME")
; RMPR("SEQUENCE")
; Set RMPRLEV to...
; "STATION"
; "HCPCS"
; "ITEM"
; "DATE&TIME"
; "SEQUENCE"
; ""
NEXT(RMPR,RMPRXREF,RMPRLEV,RMPRT,RMPROLD,RMPREOF) ;
N RMPRRET,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6,RMPRK7
I $G(RMPRT)'=-1 S RMPRT=1
S RMPRRET=0,RMPREOF=0
;
; HCPCS, Date&Time, Sequence X-ref
I RMPRXREF="XHDS" D G NEXTX
. S RMPRK1=$G(RMPR("HCPCS"))
. S RMPRK2=$G(RMPR("DATE&TIME"))
. S RMPRK3=$G(RMPR("SEQUENCE"))
. S RMPRK4=$G(RMPR("IEN"))
. I RMPRLEV="HCPCS" D Q:RMPREOF
.. S RMPRK1=$O(^RMPR(661.7,RMPRXREF,RMPRK1),RMPRT)
.. I RMPRK1="" S RMPREOF=1 K RMPROLD Q
.. S (RMPRK2,RMPRK3,RMPRK4)=""
.. Q
. I RMPRLEV="DATE&TIME",RMPRK1'="" D
.. S RMPRK2=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2),RMPRT)
.. I RMPRK2="" S RMPREOF=1
.. S (RMPRK3,RMPRK4)=""
.. Q
. I RMPRLEV="SEQUENCE",RMPRK2'="" D
.. S RMPRK3=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3),RMPRT)
.. I RMPRK3="" S RMPREOF=1
.. S RMPRK4=""
.. Q
. I RMPRLEV="",RMPRK3'="" D
.. S RMPRK4=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4),RMPRT)
.. I RMPRK4="" S RMPREOF=1
.. Q
. K RMPROLD
. I RMPREOF D
.. I RMPRK4="" S:RMPRK3'="" RMPRK3=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3),RMPRT)
.. I RMPRK3="" S:RMPRK2'="" RMPRK2=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2),RMPRT)
.. I RMPRK2="" S:RMPRK1'="" RMPRK1=$O(^RMPR(661.7,RMPRXREF,RMPRK1),RMPRT) S:RMPRK1="" RMPREOF=1
.. Q
. I RMPRK1="",RMPREOF Q
. S RMPREOF=0
. M RMPROLD=RMPR
. I RMPRK1="" S RMPRK1=$O(^RMPR(661.7,RMPRXREF,""),RMPRT)
. Q:RMPRK1=""
. I RMPRK2="" S RMPRK2=$O(^RMPR(661.7,RMPRXREF,RMPRK1,""),RMPRT)
. Q:RMPRK2=""
. I RMPRK3="" S RMPRK3=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,""),RMPRT)
. Q:RMPRK3=""
. I RMPRK4="" S RMPRK4=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,""),RMPRT)
. S RMPR("HCPCS")=RMPRK1
. S RMPR("DATE&TIME")=RMPRK2
. S RMPR("SEQUENCE")=RMPRK3
. S RMPR("IEN")=RMPRK4
. Q
;
; Station, HCPCS, Item, Date&Time, Sequence X-ref.
I RMPRXREF="XSHIDS" D G NEXTX
. S (RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6)=""
. S RMPRK1=$G(RMPR("STATION"))
. S:RMPRK1'="" RMPRK2=$G(RMPR("HCPCS"))
. S:RMPRK2'="" RMPRK3=$G(RMPR("ITEM"))
. S:RMPRK3'="" RMPRK4=$G(RMPR("DATE&TIME"))
. S:RMPRK4'="" RMPRK5=$G(RMPR("SEQUENCE"))
. S:RMPRK5'="" RMPRK6=$G(RMPR("IEN"))
. I RMPRLEV="STATION" D Q:RMPREOF
.. S RMPRK1=$O(^RMPR(661.7,RMPRXREF,RMPRK1),RMPRT)
.. I RMPRK1="" S RMPREOF=1 K RMPROLD Q
.. S (RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6)=""
.. Q
. I RMPRLEV="HCPCS",RMPRK1'="" D
.. S RMPRK2=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2),RMPRT)
.. I RMPRK2="" S RMPREOF=1
.. S (RMPRK3,RMPRK4,RMPRK5,RMPRK6)=""
.. Q
. I RMPRLEV="ITEM",RMPRK2'="" D
.. S RMPRK3=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3),RMPRT)
.. I RMPRK3="" S RMPREOF=1
.. S (RMPRK4,RMPRK5,RMPRK6)=""
.. Q
. I RMPRLEV="DATE&TIME",RMPRK3'="" D
.. S RMPRK4=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4),RMPRT)
.. I RMPRK4="" S RMPREOF=1
.. S (RMPRK5,RMPRK6)=""
.. Q
. I RMPRLEV="SEQUENCE",RMPRK4'="" D
.. S RMPRK5=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5),RMPRT)
.. I RMPRK5="" S RMPREOF=1
.. S RMPRK6=""
.. Q
. I RMPRLEV="",RMPRK5'="" D
.. S RMPRK6=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6),RMPRT)
.. I RMPRK6="" S RMPREOF=1
.. Q
. K RMPROLD
. I RMPREOF D
.. I RMPRK6="" S:RMPRK5'="" RMPRK5=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5),RMPRT)
.. I RMPRK5="" S:RMPRK4'="" RMPRK4=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4),RMPRT)
.. I RMPRK4="" S:RMPRK3'="" RMPRK3=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3),RMPRT)
.. I RMPRK3="" S:RMPRK2'="" RMPRK2=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2),RMPRT)
.. I RMPRK2="" S:RMPRK1'="" RMPRK1=$O(^RMPR(661.7,RMPRXREF,RMPRK1),RMPRT) S:RMPRK1="" RMPREOF=1
.. Q
. I RMPRK1="",RMPREOF Q
. S RMPREOF=0
. M RMPROLD=RMPR
. I RMPRK1="" S RMPRK1=$O(^RMPR(661.7,RMPRXREF,""),RMPRT) I RMPRK1="" S RMPREOF=1 Q
. I RMPRK2="" S RMPRK2=$O(^RMPR(661.7,RMPRXREF,RMPRK1,""),RMPRT) I RMPRK2="" S RMPREOF=1 Q
. I RMPRK3="" S RMPRK3=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,""),RMPRT) I RMPRK3="" S RMPREOF=1 Q
. I RMPRK4="" S RMPRK4=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,""),RMPRT) I RMPRK4="" S RMPREOF=1 Q
. I RMPRK5="" S RMPRK5=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,""),RMPRT) I RMPRK5="" S RMPREOF=1 Q
. I RMPRK6="" S RMPRK6=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,""),RMPRT) I RMPRK6="" S RMPREOF=1 Q
. S RMPR("STATION")=RMPRK1
. S RMPR("HCPCS")=RMPRK2
. S RMPR("ITEM")=RMPRK3
. S RMPR("DATE&TIME")=RMPRK4
. S RMPR("SEQUENCE")=RMPRK5
. S RMPR("IEN")=RMPRK6
. Q
;
; Station, Location, HCPCS, Item, Date&Time, Sequence
I RMPRXREF="XSLHIDS" D G NEXTX
. S (RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6,RMPRK7)=""
. S RMPRK1=$G(RMPR("STATION"))
. S:RMPRK1'="" RMPRK2=$G(RMPR("LOCATION"))
. S:RMPRK2'="" RMPRK3=$G(RMPR("HCPCS"))
. S:RMPRK3'="" RMPRK4=$G(RMPR("ITEM"))
. S:RMPRK4'="" RMPRK5=$G(RMPR("DATE&TIME"))
. S:RMPRK5'="" RMPRK6=$G(RMPR("SEQUENCE"))
. S:RMPRK6'="" RMPRK7=$G(RMPR("IEN"))
. I RMPRLEV="STATION" D Q:RMPREOF
.. S RMPRK1=$O(^RMPR(661.7,RMPRXREF,RMPRK1),RMPRT)
.. I RMPRK1="" S RMPREOF=1 K RMPROLD Q
.. S (RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6,RMPRK7)=""
.. Q
. I RMPRLEV="LOCATION",RMPRK1'="" D
.. S RMPRK2=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2),RMPRT)
.. I RMPRK2="" S RMPREOF=1
.. S (RMPRK3,RMPRK4,RMPRK5,RMPRK6,RMPRK7)=""
.. Q
. I RMPRLEV="HCPCS",RMPRK2'="" D
.. S RMPRK3=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3),RMPRT)
.. I RMPRK3="" S RMPREOF=1
.. S (RMPRK4,RMPRK5,RMPRK6,RMPRK7)=""
.. Q
. I RMPRLEV="ITEM",RMPRK3'="" D
.. S RMPRK4=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4),RMPRT)
.. I RMPRK4="" S RMPREOF=1
.. S (RMPRK5,RMPRK6,RMPRK7)=""
.. Q
. I RMPRLEV="DATE&TIME",RMPRK4'="" D
.. S RMPRK5=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5),RMPRT)
.. I RMPRK5="" S RMPREOF=1
.. S (RMPRK6,RMPRK7)=""
.. Q
. I RMPRLEV="SEQUENCE",RMPRK5'="" D
.. S RMPRK6=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6),RMPRT)
.. I RMPRK6="" S RMPREOF=1
.. S RMPRK7=""
.. Q
. I RMPRLEV="",RMPRK6'="" D
.. S RMPRK7=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6,RMPRK7),RMPRT)
.. I RMPRK7="" S RMPREOF=1
.. Q
. K RMPROLD
. I RMPREOF D
.. I RMPRK7="" S:RMPRK6'="" RMPRK6=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6),RMPRT)
.. I RMPRK6="" S:RMPRK5'="" RMPRK5=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5),RMPRT)
.. I RMPRK5="" S:RMPRK4'="" RMPRK4=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4),RMPRT)
.. I RMPRK4="" S:RMPRK3'="" RMPRK3=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3),RMPRT)
.. I RMPRK3="" S:RMPRK2'="" RMPRK2=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2),RMPRT)
.. I RMPRK2="" S:RMPRK1'="" RMPRK1=$O(^RMPR(661.7,RMPRXREF,RMPRK1),RMPRT) S:RMPRK1="" RMPREOF=1
.. Q
. I RMPRK1="",RMPREOF Q
. S RMPREOF=0
. M RMPROLD=RMPR
. I RMPRK1="" S RMPRK1=$O(^RMPR(661.7,RMPRXREF,""),RMPRT) I RMPRK1="" S RMPREOF=1 Q
. I RMPRK2="" S RMPRK2=$O(^RMPR(661.7,RMPRXREF,RMPRK1,""),RMPRT) I RMPRK2="" S RMPREOF=1 Q
. I RMPRK3="" S RMPRK3=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,""),RMPRT) I RMPRK3="" S RMPREOF=1 Q
. I RMPRK4="" S RMPRK4=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,""),RMPRT) I RMPRK4="" S RMPREOF=1 Q
. I RMPRK5="" S RMPRK5=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,""),RMPRT) I RMPRK5="" S RMPREOF=1 Q
. I RMPRK6="" S RMPRK6=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,""),RMPRT) I RMPRK6="" S RMPREOF=1 Q
. I RMPRK7="" S RMPRK7=$O(^RMPR(661.7,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6,""),RMPRT) I RMPRK7="" S RMPREOF=1 Q
. S RMPR("STATION")=RMPRK1
. S RMPR("LOCATION")=RMPRK2
. S RMPR("HCPCS")=RMPRK3
. S RMPR("ITEM")=RMPRK4
. S RMPR("DATE&TIME")=RMPRK5
. S RMPR("SEQUENCE")=RMPRK6
. S RMPR("IEN")=RMPRK7
. Q
NEXTX Q RMPRRET