RMPRPI07 ;HINCIO/ODJ - PIP APIs ;3/8/01
;;3.0;PROSTHETICS;**61**;Feb 09, 1996
Q
;
; LOC - Build workfile for Quantity on hand by location
LOC(RMPRNM,RMPRSTN,RMPRLOCA,RMPRSRC,RMPRSDT,RMPREDT) ;
N RMPRERR,RMPRL,RMPRALL,RMPRDT,RMPRI,RMPR6,RMPR6I,RMPRSTR,RMPR11
N RMPR11I,RMPR7,RMPREOF,RMPRDAYS,RMPR7I
N X1,X2,X
S RMPRERR=0
I $G(RMPRSTN)="" S RMPRERR=1 G LOCX
I $G(RMPRNM)="" S RMPRNM="RMPRPI07"
K ^TMP($J,RMPRNM)
S RMPRALL=$S($G(RMPRLOCA)="*":1,1:0)
I $G(RMPRSRC)="" S RMPRSRC="C"
I $G(RMPREDT)="" D NOW^%DTC S RMPREDT=X
I $G(RMPRSDT)="" D
. S X1=RMPREDT,X2=-89 D C^%DTC S RMPRSDT=X
. Q
S X2=RMPRSDT,X1=RMPREDT D ^%DTC S RMPRDAYS=X+1
;
; First loop on transaction file (661.6) for issues
S RMPRL=""
LOC1 I RMPRALL D
. S RMPRL=$O(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL))
. Q
E D
. S RMPRL=$O(RMPRLOCA(RMPRL))
. Q
I RMPRL="" G LOC11
I RMPRSDT="" D
. S RMPRDT=$O(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL,""))
. Q
E D
. I $D(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL,RMPRSDT)) S RMPRDT=RMPRSDT Q
. S RMPRDT=$O(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL,RMPRSDT))
. Q
LOC2 I RMPRDT="" G LOC1
I $P(RMPRDT,".",1)>RMPREDT G LOC1
S RMPRI=""
LOC3 S RMPRI=$O(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL,RMPRDT,RMPRI))
I RMPRI="" D G LOC2
. S RMPRDT=$O(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL,RMPRDT))
. Q
K RMPR6
S RMPR6("IEN")=RMPRI
S RMPRERR=$$GET^RMPRPIX6(.RMPR6)
I RMPRERR S RMPRERR=1 G LOCX
S RMPRERR=$$ETOI^RMPRPIX6(.RMPR6,.RMPR6I) ;read trans. rec. (661.6)
I RMPRERR S RMPRERR=2 G LOCX
I RMPR6I("TRAN TYPE")'=3 G LOC3 ;not patient issue
K RMPR11
S RMPR11("STATION")=RMPRSTN
S RMPR11("HCPCS")=RMPR6("HCPCS")
S RMPR11("ITEM")=RMPR6("ITEM")
S RMPRERR=$$GET^RMPRPIX1(.RMPR11) ;read in Item rec. (661.11)
I RMPRERR S RMPRERR=3 G LOCX
S RMPRERR=$$ETOI^RMPRPIX1(.RMPR11,.RMPR11I)
I RMPRERR S RMPRERR=4 G LOCX
I RMPR11I("SOURCE")'=RMPRSRC G LOC3 ;not required source
S RMPRSTR=$G(^TMP($J,RMPRNM,RMPRL,RMPR6("HCPCS"),RMPR11("DESCRIPTION"),RMPR6("ITEM")))
S $P(RMPRSTR,"^",1)=RMPR6("QUANTITY")+$P(RMPRSTR,"^",1)
S $P(RMPRSTR,"^",2)=RMPR6("VALUE")+$P(RMPRSTR,"^",2)
S ^TMP($J,RMPRNM,RMPRL,RMPR6("HCPCS"),RMPR11("DESCRIPTION"),RMPR6("ITEM"))=RMPRSTR
G LOC3
;
; Second loop on Current Stock (661.7) for quantity on hand
S RMPRL=""
LOC11 I RMPRALL D
. S RMPRL=$O(^RMPR(661.7,"XSLHIDS",RMPRSTN,RMPRL))
. Q
E D
. S RMPRL=$O(RMPRLOCA(RMPRL))
. Q
I RMPRL="" G LOCX
K RMPR7I
S RMPR7I("STATION")=RMPRSTN
S RMPR7I("LOCATION")=RMPRL
LOC12 S RMPRERR=$$NEXT^RMPRPIXE(.RMPR7I,"XSLHIDS","",1,.RMPROLD,.RMPREOF)
I RMPREOF G LOC11
I RMPR7I("STATION")'=RMPRSTN G LOC11
I RMPR7I("LOCATION")'=RMPRL G LOC11
K RMPR7
S RMPR7("IEN")=RMPR7I("IEN")
S RMPRERR=$$GET^RMPRPIX7(.RMPR7) ;read in cur. stock rec.
K RMPR11,RMPR11I
S RMPR11("STATION")=RMPRSTN
S RMPR11("HCPCS")=RMPR7("HCPCS")
S RMPR11("ITEM")=RMPR7("ITEM")
S RMPRERR=$$GET^RMPRPIX1(.RMPR11) ;read in Item rec. (661.11)
I RMPRERR S RMPRERR=99 G LOCX
S RMPRERR=$$ETOI^RMPRPIX1(.RMPR11,.RMPR11I)
I RMPRERR S RMPRERR=99 G LOCX
I RMPR11I("SOURCE")'=RMPRSRC G LOC12 ;not required source
S RMPRSTR=$G(^TMP($J,RMPRNM,RMPRL,RMPR7("HCPCS"),RMPR11("DESCRIPTION"),RMPR7("ITEM")))
S $P(RMPRSTR,"^",5)=RMPR7("QUANTITY")+$P(RMPRSTR,"^",5)
S $P(RMPRSTR,"^",6)=RMPR7("VALUE")+$P(RMPRSTR,"^",6)
S ^TMP($J,RMPRNM,RMPRL,RMPR7("HCPCS"),RMPR11("DESCRIPTION"),RMPR7("ITEM"))=RMPRSTR
G LOC12
LOCX Q RMPRERR
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRMPRPI07 3444 printed Nov 22, 2024@17:46:01 Page 2
RMPRPI07 ;HINCIO/ODJ - PIP APIs ;3/8/01
+1 ;;3.0;PROSTHETICS;**61**;Feb 09, 1996
+2 QUIT
+3 ;
+4 ; LOC - Build workfile for Quantity on hand by location
LOC(RMPRNM,RMPRSTN,RMPRLOCA,RMPRSRC,RMPRSDT,RMPREDT) ;
+1 NEW RMPRERR,RMPRL,RMPRALL,RMPRDT,RMPRI,RMPR6,RMPR6I,RMPRSTR,RMPR11
+2 NEW RMPR11I,RMPR7,RMPREOF,RMPRDAYS,RMPR7I
+3 NEW X1,X2,X
+4 SET RMPRERR=0
+5 IF $GET(RMPRSTN)=""
SET RMPRERR=1
GOTO LOCX
+6 IF $GET(RMPRNM)=""
SET RMPRNM="RMPRPI07"
+7 KILL ^TMP($JOB,RMPRNM)
+8 SET RMPRALL=$SELECT($GET(RMPRLOCA)="*":1,1:0)
+9 IF $GET(RMPRSRC)=""
SET RMPRSRC="C"
+10 IF $GET(RMPREDT)=""
DO NOW^%DTC
SET RMPREDT=X
+11 IF $GET(RMPRSDT)=""
Begin DoDot:1
+12 SET X1=RMPREDT
SET X2=-89
DO C^%DTC
SET RMPRSDT=X
+13 QUIT
End DoDot:1
+14 SET X2=RMPRSDT
SET X1=RMPREDT
DO ^%DTC
SET RMPRDAYS=X+1
+15 ;
+16 ; First loop on transaction file (661.6) for issues
+17 SET RMPRL=""
LOC1 IF RMPRALL
Begin DoDot:1
+1 SET RMPRL=$ORDER(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL))
+2 QUIT
End DoDot:1
+3 IF '$TEST
Begin DoDot:1
+4 SET RMPRL=$ORDER(RMPRLOCA(RMPRL))
+5 QUIT
End DoDot:1
+6 IF RMPRL=""
GOTO LOC11
+7 IF RMPRSDT=""
Begin DoDot:1
+8 SET RMPRDT=$ORDER(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL,""))
+9 QUIT
End DoDot:1
+10 IF '$TEST
Begin DoDot:1
+11 IF $DATA(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL,RMPRSDT))
SET RMPRDT=RMPRSDT
QUIT
+12 SET RMPRDT=$ORDER(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL,RMPRSDT))
+13 QUIT
End DoDot:1
LOC2 IF RMPRDT=""
GOTO LOC1
+1 IF $PIECE(RMPRDT,".",1)>RMPREDT
GOTO LOC1
+2 SET RMPRI=""
LOC3 SET RMPRI=$ORDER(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL,RMPRDT,RMPRI))
+1 IF RMPRI=""
Begin DoDot:1
+2 SET RMPRDT=$ORDER(^RMPR(661.6,"ASLD",RMPRSTN,RMPRL,RMPRDT))
+3 QUIT
End DoDot:1
GOTO LOC2
+4 KILL RMPR6
+5 SET RMPR6("IEN")=RMPRI
+6 SET RMPRERR=$$GET^RMPRPIX6(.RMPR6)
+7 IF RMPRERR
SET RMPRERR=1
GOTO LOCX
+8 ;read trans. rec. (661.6)
SET RMPRERR=$$ETOI^RMPRPIX6(.RMPR6,.RMPR6I)
+9 IF RMPRERR
SET RMPRERR=2
GOTO LOCX
+10 ;not patient issue
IF RMPR6I("TRAN TYPE")'=3
GOTO LOC3
+11 KILL RMPR11
+12 SET RMPR11("STATION")=RMPRSTN
+13 SET RMPR11("HCPCS")=RMPR6("HCPCS")
+14 SET RMPR11("ITEM")=RMPR6("ITEM")
+15 ;read in Item rec. (661.11)
SET RMPRERR=$$GET^RMPRPIX1(.RMPR11)
+16 IF RMPRERR
SET RMPRERR=3
GOTO LOCX
+17 SET RMPRERR=$$ETOI^RMPRPIX1(.RMPR11,.RMPR11I)
+18 IF RMPRERR
SET RMPRERR=4
GOTO LOCX
+19 ;not required source
IF RMPR11I("SOURCE")'=RMPRSRC
GOTO LOC3
+20 SET RMPRSTR=$GET(^TMP($JOB,RMPRNM,RMPRL,RMPR6("HCPCS"),RMPR11("DESCRIPTION"),RMPR6("ITEM")))
+21 SET $PIECE(RMPRSTR,"^",1)=RMPR6("QUANTITY")+$PIECE(RMPRSTR,"^",1)
+22 SET $PIECE(RMPRSTR,"^",2)=RMPR6("VALUE")+$PIECE(RMPRSTR,"^",2)
+23 SET ^TMP($JOB,RMPRNM,RMPRL,RMPR6("HCPCS"),RMPR11("DESCRIPTION"),RMPR6("ITEM"))=RMPRSTR
+24 GOTO LOC3
+25 ;
+26 ; Second loop on Current Stock (661.7) for quantity on hand
+27 SET RMPRL=""
LOC11 IF RMPRALL
Begin DoDot:1
+1 SET RMPRL=$ORDER(^RMPR(661.7,"XSLHIDS",RMPRSTN,RMPRL))
+2 QUIT
End DoDot:1
+3 IF '$TEST
Begin DoDot:1
+4 SET RMPRL=$ORDER(RMPRLOCA(RMPRL))
+5 QUIT
End DoDot:1
+6 IF RMPRL=""
GOTO LOCX
+7 KILL RMPR7I
+8 SET RMPR7I("STATION")=RMPRSTN
+9 SET RMPR7I("LOCATION")=RMPRL
LOC12 SET RMPRERR=$$NEXT^RMPRPIXE(.RMPR7I,"XSLHIDS","",1,.RMPROLD,.RMPREOF)
+1 IF RMPREOF
GOTO LOC11
+2 IF RMPR7I("STATION")'=RMPRSTN
GOTO LOC11
+3 IF RMPR7I("LOCATION")'=RMPRL
GOTO LOC11
+4 KILL RMPR7
+5 SET RMPR7("IEN")=RMPR7I("IEN")
+6 ;read in cur. stock rec.
SET RMPRERR=$$GET^RMPRPIX7(.RMPR7)
+7 KILL RMPR11,RMPR11I
+8 SET RMPR11("STATION")=RMPRSTN
+9 SET RMPR11("HCPCS")=RMPR7("HCPCS")
+10 SET RMPR11("ITEM")=RMPR7("ITEM")
+11 ;read in Item rec. (661.11)
SET RMPRERR=$$GET^RMPRPIX1(.RMPR11)
+12 IF RMPRERR
SET RMPRERR=99
GOTO LOCX
+13 SET RMPRERR=$$ETOI^RMPRPIX1(.RMPR11,.RMPR11I)
+14 IF RMPRERR
SET RMPRERR=99
GOTO LOCX
+15 ;not required source
IF RMPR11I("SOURCE")'=RMPRSRC
GOTO LOC12
+16 SET RMPRSTR=$GET(^TMP($JOB,RMPRNM,RMPRL,RMPR7("HCPCS"),RMPR11("DESCRIPTION"),RMPR7("ITEM")))
+17 SET $PIECE(RMPRSTR,"^",5)=RMPR7("QUANTITY")+$PIECE(RMPRSTR,"^",5)
+18 SET $PIECE(RMPRSTR,"^",6)=RMPR7("VALUE")+$PIECE(RMPRSTR,"^",6)
+19 SET ^TMP($JOB,RMPRNM,RMPRL,RMPR7("HCPCS"),RMPR11("DESCRIPTION"),RMPR7("ITEM"))=RMPRSTR
+20 GOTO LOC12
LOCX QUIT RMPRERR