IBRXUTL ;ALB/MAF - PHARMACY API CALLS ;1/9/08 14:45
;;2.0;INTEGRATED BILLING;**309,347,383**;21-MAR-94;Build 11
;
ZERO(IBDRV) ;
N X
K ^TMP($J,"IBDRUG")
S X="IBDRUG" D ZERO^PSS50(IBDRV,,,,,X)
Q
DATA(IBDRV) ;
N X
K ^TMP($J,"IBDRUG")
S X="IBDRUG" D DATA^PSS50(IBDRV,,,,,X)
Q
FILE(DA,DR,INTEXT) ;Returns single field from file 52
N RETURN,PSOFILE
I '$G(DA) S RETURN="" Q RETURN
I '$G(DR) S RETURN="" Q RETURN
S PSOFILE=52
S DA=+DA
I $G(INTEXT)="" S INTEXT="I"
S RETURN=$$GET1^PSODI(PSOFILE,DA,DR,INTEXT)
I $P($G(RETURN),"^",1)=0 S RETURN="" Q RETURN
Q $P(RETURN,"^",2)
SUBFILE(DA,DASUB,DR,DRSUB,INTEXT) ;Returns single field from subfile 52.1
;The DR variable isn't being used because Pharmacy API changed after IB*2.0*347 went
;to test site. Rather than changing all the routines that call this API this
;input variable is now not used.
N RETSUB,PSOFILE,IENS
I '$G(DA) S RETSUB="" Q RETSUB
I '$G(DASUB) S RETSUB="" Q RETSUB
I '$G(DRSUB) S RETSUB="" Q RETSUB
S PSOFILE=52.1
S IENS=+DASUB_","_+DA
I $G(INTEXT)="" S INTEXT="I"
S RETSUB=$$GET1^PSODI(PSOFILE,IENS,DRSUB,INTEXT)
I $P($G(RETSUB),"^",1)=0 S RETSUB="" Q RETSUB
Q $P(RETSUB,"^",2)
RXZERO(PDFN,RXIEN) ;Returns zero node of file 52
N ZEROOUT,LIST,IBTMPARR,NODE
I '$G(PDFN) S ZEROOUT="" Q ZEROOUT
I '$G(RXIEN) S ZEROOUT="" Q ZEROOUT
S NODE=0
S LIST="IBZEROARR"
S IBTMPARR="IBTMPZERO"
D RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
I $P(^TMP($J,LIST,PDFN,0),"^",1)>0 D
.S $P(^TMP($J,IBTMPARR),"^",1)=$G(^TMP($J,LIST,PDFN,RXIEN,.01))
.S $P(^TMP($J,IBTMPARR),"^",2)=$P($G(^TMP($J,LIST,PDFN,RXIEN,2)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",3)=$P($G(^TMP($J,LIST,PDFN,RXIEN,3)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",4)=$P($G(^TMP($J,LIST,PDFN,RXIEN,4)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",5)=$P($G(^TMP($J,LIST,PDFN,RXIEN,5)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",6)=$P($G(^TMP($J,LIST,PDFN,RXIEN,6)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",7)=$G(^TMP($J,LIST,PDFN,RXIEN,7))
.S $P(^TMP($J,IBTMPARR),"^",8)=$G(^TMP($J,LIST,PDFN,RXIEN,8))
.S $P(^TMP($J,IBTMPARR),"^",9)=$G(^TMP($J,LIST,PDFN,RXIEN,9))
.S $P(^TMP($J,IBTMPARR),"^",10)=""
.S $P(^TMP($J,IBTMPARR),"^",11)=$P($G(^TMP($J,LIST,PDFN,RXIEN,11)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",12)=""
.S $P(^TMP($J,IBTMPARR),"^",13)=$P($G(^TMP($J,LIST,PDFN,RXIEN,1)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",14)=""
.S $P(^TMP($J,IBTMPARR),"^",15)=""
.S $P(^TMP($J,IBTMPARR),"^",16)=$P($G(^TMP($J,LIST,PDFN,RXIEN,16)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",17)=$G(^TMP($J,LIST,PDFN,RXIEN,17))
.S $P(^TMP($J,IBTMPARR),"^",18)=$G(^TMP($J,LIST,PDFN,RXIEN,10.6))
.S $P(^TMP($J,IBTMPARR),"^",19)=$P($G(^TMP($J,LIST,PDFN,RXIEN,10.3)),"^",1)
.S ZEROOUT=^TMP($J,IBTMPARR)
.K ^TMP($J,IBTMPARR)
E S ZEROOUT=""
K ^TMP($J,LIST)
Q ZEROOUT
RXSEC(PDFN,RXIEN) ;Returns second node of file 52
N SECOUT,LIST,IBTMPARR,NODE
I '$G(PDFN) S SECOUT="" Q SECOUT
I '$G(RXIEN) S SECOUT="" Q SECOUT
S NODE=2
S LIST="IBSECARR"
S IBTMPARR="IBTMPSEC"
D RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
I $P(^TMP($J,LIST,PDFN,0),"^",1)>0 D
.S $P(^TMP($J,IBTMPARR),"^",1)=$P($G(^TMP($J,LIST,PDFN,RXIEN,21)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",2)=$P($G(^TMP($J,LIST,PDFN,RXIEN,22)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",3)=$P($G(^TMP($J,LIST,PDFN,RXIEN,23)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",4)=$G(^TMP($J,LIST,PDFN,RXIEN,24))
.S $P(^TMP($J,IBTMPARR),"^",5)=$P($G(^TMP($J,LIST,PDFN,RXIEN,25)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",6)=$P($G(^TMP($J,LIST,PDFN,RXIEN,26)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",7)=$G(^TMP($J,LIST,PDFN,RXIEN,27))
.S $P(^TMP($J,IBTMPARR),"^",8)=$G(^TMP($J,LIST,PDFN,RXIEN,28))
.S $P(^TMP($J,IBTMPARR),"^",9)=$P($G(^TMP($J,LIST,PDFN,RXIEN,20)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",10)=$P($G(^TMP($J,LIST,PDFN,RXIEN,104)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",11)=$P($G(^TMP($J,LIST,PDFN,RXIEN,29)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",12)=$G(^TMP($J,LIST,PDFN,RXIEN,30))
.S $P(^TMP($J,IBTMPARR),"^",13)=$P($G(^TMP($J,LIST,PDFN,RXIEN,31)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",14)=$P($G(^TMP($J,LIST,PDFN,RXIEN,32.2)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",15)=$P($G(^TMP($J,LIST,PDFN,RXIEN,32.1)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",16)=$G(^TMP($J,LIST,PDFN,RXIEN,32.3))
.S SECOUT=^TMP($J,IBTMPARR)
.K ^TMP($J,IBTMPARR)
E S SECOUT=""
K ^TMP($J,LIST)
Q SECOUT
RX3(PDFN,RXIEN) ;Returns third node of file 52
N THRDOUT,LIST,IBTMPARR,NODE
I '$G(PDFN) S THRDOUT="" Q THRDOUT
I '$G(RXIEN) S THRDOUT="" Q THRDOUT
S NODE=3
S LIST="IBARRTHRD"
S IBTMPARR="IBTMP3"
D RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
I $P(^TMP($J,LIST,PDFN,0),"^",1)>0 D
.S $P(^TMP($J,IBTMPARR),"^",1)=$P($G(^TMP($J,LIST,PDFN,RXIEN,101)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",2)=$P($G(^TMP($J,LIST,PDFN,RXIEN,102)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",3)=$P($G(^TMP($J,LIST,PDFN,RXIEN,109)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",4)=$P($G(^TMP($J,LIST,PDFN,RXIEN,102.1)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",5)=$P($G(^TMP($J,LIST,PDFN,RXIEN,26.1)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",6)=$P($G(^TMP($J,LIST,PDFN,RXIEN,34.1)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",7)=$G(^TMP($J,LIST,PDFN,RXIEN,12))
.S $P(^TMP($J,IBTMPARR),"^",8)=$G(^TMP($J,LIST,PDFN,RXIEN,102.2))
.S $P(^TMP($J,IBTMPARR),"^",9)=$G(^TMP($J,LIST,PDFN,RXIEN,112))
.S THRDOUT=^TMP($J,IBTMPARR)
.K ^TMP($J,IBTMPARR)
E S THRDOUT=""
K ^TMP($J,LIST)
Q THRDOUT
ZEROSUB(PDFN,RXIEN,RXSUB) ;Returns zero node of subfile 52.1
N ZSUBOUT,LIST,IBTMPARR,NODE
I '$G(PDFN) S ZSUBOUT="" Q ZSUBOUT
I '$G(RXIEN) S ZSUBOUT="" Q ZSUBOUT
I '$G(RXSUB) S ZSUBOUT="" Q ZSUBOUT
S NODE="R^^"_RXSUB
S LIST="IBSUBARR"
S IBTMPARR="IBTMPSUB"
D RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
I $P(^TMP($J,LIST,PDFN,RXIEN,"RF",0),"^",1)>0 D
.S $P(^TMP($J,IBTMPARR),"^",1)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,.01)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",2)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,2)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",3)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,3))
.S $P(^TMP($J,IBTMPARR),"^",4)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,1))
.S $P(^TMP($J,IBTMPARR),"^",5)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,4)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",6)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,5))
.S $P(^TMP($J,IBTMPARR),"^",7)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,6)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",8)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,7)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",9)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,8)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",10)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,1.1))
.S $P(^TMP($J,IBTMPARR),"^",11)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,1.2))
.S $P(^TMP($J,IBTMPARR),"^",12)=""
.S $P(^TMP($J,IBTMPARR),"^",13)=""
.S $P(^TMP($J,IBTMPARR),"^",14)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,12))
.S $P(^TMP($J,IBTMPARR),"^",15)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,13)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",16)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,14)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",17)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,15)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",18)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,17)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",19)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,10.1)),"^",1)
.S ZSUBOUT=^TMP($J,IBTMPARR)
.K ^TMP($J,IBTMPARR)
E S ZSUBOUT=""
K ^TMP($J,LIST)
Q ZSUBOUT
RFNUM(RXIEN) ;
N PDFN,RXSUB,LIST,IBTMPARR,NODE
I '$G(RXIEN) S RXSUB="" Q RXSUB
S PDFN=$$FILE^IBRXUTL(RXIEN,2)
S LIST="IBRFNARR"
S IBTMPARR="IBTMPRFN"
S NODE="R"
D RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
I $P(^TMP($J,LIST,PDFN,RXIEN,"RF",0),"^",1)>0 D
.S RXSUB=^TMP($J,LIST,PDFN,RXIEN,"RF",0)
E S RXSUB=""
K ^TMP($J,LIST)
Q RXSUB
IBND(DFN,RXIEN) ;Returns IB node
N IBNDOUT,LIST,NODE,IBTMPARR
I '$G(DFN) S IBNDOUT="" Q IBNDOUT
I '$G(RXIEN) S IBNDOUT="" Q IBNDOUT
S LIST="IBIBNDARR"
S NODE="I^O"
S IBTMPARR="IBTMPIBND"
D RX^PSO52API(DFN,LIST,RXIEN,,NODE,,)
I $P(^TMP($J,LIST,DFN,0),"^",1)>0 D
.S $P(^TMP($J,IBTMPARR),"^",1)=$P($G(^TMP($J,LIST,DFN,RXIEN,105)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",2)=$P($G(^TMP($J,LIST,DFN,RXIEN,106)),"^",1)
.S $P(^TMP($J,IBTMPARR),"^",3)=$G(^TMP($J,LIST,DFN,RXIEN,106.5))
.S $P(^TMP($J,IBTMPARR),"^",4)=$G(^TMP($J,LIST,DFN,RXIEN,106.6))
.S IBNDOUT=^TMP($J,IBTMPARR)
.S:IBNDOUT="^^^" IBNDOUT=""
.K ^TMP($J,IBTMPARR)
E S IBNDOUT=""
K ^TMP($J,LIST)
Q IBNDOUT
IBNDFL(DFN,RXIEN,RXRFL) ;
N IBNDFL,LIST,NODE,IBTMPARR
I '$G(DFN) S IBNDFL="" Q IBNDFL
I '$G(RXIEN) S IBNDFL="" Q IBNDFL
I '$G(RXRFL) S IBNDFL="" Q IBNDFL
S LIST="IBIBNDFLARR"
S NODE="I^R^"_RXRFL
S IBTMPARR="IBTMPIBNDFL"
D RX^PSO52API(DFN,LIST,RXIEN,,NODE,,)
I ^TMP($J,LIST,DFN,RXIEN,"IB",0)>0 D
.S $P(^TMP($J,IBTMPARR),"^",1)=$G(^TMP($J,LIST,DFN,RXIEN,"IB",RXRFL,9))
.S $P(^TMP($J,IBTMPARR),"^",2)=$G(^TMP($J,LIST,DFN,RXIEN,"IB",RXRFL,9.1))
.S IBNDFL=^TMP($J,IBTMPARR)
.K ^TMP($J,IBTMPARR)
E S IBNDFL=""
K ^TMP($J,LIST)
Q IBNDFL
;
RFLNUM(IBRXN,FLDT,IBFLG) ; find the refill number in file 52 for the given date
N NUMOUT,NUM,DFN,LIST,NODE
I '$G(IBRXN) S NUMOUT="" Q NUMOUT
I '$G(FLDT) S NUMOUT="" Q NUMOUT
S LIST="IBRTMP"
K ^TMP($J,LIST)
S NUM=0
S DFN=$$FILE(IBRXN,2)
S NODE="R^^"
D RX^PSO52API(DFN,LIST,IBRXN,,NODE,,)
F S NUM=$O(^TMP($J,LIST,DFN,IBRXN,"RF",NUM)) Q:'NUM D
.I $P(^TMP($J,LIST,DFN,IBRXN,"RF",NUM,.01),"^",1)=FLDT S NUMOUT=NUM
K ^TMP($J,LIST)
S:'$G(NUMOUT) NUMOUT=""
Q NUMOUT
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBRXUTL 9468 printed Nov 22, 2024@17:37:03 Page 2
IBRXUTL ;ALB/MAF - PHARMACY API CALLS ;1/9/08 14:45
+1 ;;2.0;INTEGRATED BILLING;**309,347,383**;21-MAR-94;Build 11
+2 ;
ZERO(IBDRV) ;
+1 NEW X
+2 KILL ^TMP($JOB,"IBDRUG")
+3 SET X="IBDRUG"
DO ZERO^PSS50(IBDRV,,,,,X)
+4 QUIT
DATA(IBDRV) ;
+1 NEW X
+2 KILL ^TMP($JOB,"IBDRUG")
+3 SET X="IBDRUG"
DO DATA^PSS50(IBDRV,,,,,X)
+4 QUIT
FILE(DA,DR,INTEXT) ;Returns single field from file 52
+1 NEW RETURN,PSOFILE
+2 IF '$GET(DA)
SET RETURN=""
QUIT RETURN
+3 IF '$GET(DR)
SET RETURN=""
QUIT RETURN
+4 SET PSOFILE=52
+5 SET DA=+DA
+6 IF $GET(INTEXT)=""
SET INTEXT="I"
+7 SET RETURN=$$GET1^PSODI(PSOFILE,DA,DR,INTEXT)
+8 IF $PIECE($GET(RETURN),"^",1)=0
SET RETURN=""
QUIT RETURN
+9 QUIT $PIECE(RETURN,"^",2)
SUBFILE(DA,DASUB,DR,DRSUB,INTEXT) ;Returns single field from subfile 52.1
+1 ;The DR variable isn't being used because Pharmacy API changed after IB*2.0*347 went
+2 ;to test site. Rather than changing all the routines that call this API this
+3 ;input variable is now not used.
+4 NEW RETSUB,PSOFILE,IENS
+5 IF '$GET(DA)
SET RETSUB=""
QUIT RETSUB
+6 IF '$GET(DASUB)
SET RETSUB=""
QUIT RETSUB
+7 IF '$GET(DRSUB)
SET RETSUB=""
QUIT RETSUB
+8 SET PSOFILE=52.1
+9 SET IENS=+DASUB_","_+DA
+10 IF $GET(INTEXT)=""
SET INTEXT="I"
+11 SET RETSUB=$$GET1^PSODI(PSOFILE,IENS,DRSUB,INTEXT)
+12 IF $PIECE($GET(RETSUB),"^",1)=0
SET RETSUB=""
QUIT RETSUB
+13 QUIT $PIECE(RETSUB,"^",2)
RXZERO(PDFN,RXIEN) ;Returns zero node of file 52
+1 NEW ZEROOUT,LIST,IBTMPARR,NODE
+2 IF '$GET(PDFN)
SET ZEROOUT=""
QUIT ZEROOUT
+3 IF '$GET(RXIEN)
SET ZEROOUT=""
QUIT ZEROOUT
+4 SET NODE=0
+5 SET LIST="IBZEROARR"
+6 SET IBTMPARR="IBTMPZERO"
+7 DO RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
+8 IF $PIECE(^TMP($JOB,LIST,PDFN,0),"^",1)>0
Begin DoDot:1
+9 SET $PIECE(^TMP($JOB,IBTMPARR),"^",1)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,.01))
+10 SET $PIECE(^TMP($JOB,IBTMPARR),"^",2)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,2)),"^",1)
+11 SET $PIECE(^TMP($JOB,IBTMPARR),"^",3)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,3)),"^",1)
+12 SET $PIECE(^TMP($JOB,IBTMPARR),"^",4)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,4)),"^",1)
+13 SET $PIECE(^TMP($JOB,IBTMPARR),"^",5)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,5)),"^",1)
+14 SET $PIECE(^TMP($JOB,IBTMPARR),"^",6)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,6)),"^",1)
+15 SET $PIECE(^TMP($JOB,IBTMPARR),"^",7)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,7))
+16 SET $PIECE(^TMP($JOB,IBTMPARR),"^",8)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,8))
+17 SET $PIECE(^TMP($JOB,IBTMPARR),"^",9)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,9))
+18 SET $PIECE(^TMP($JOB,IBTMPARR),"^",10)=""
+19 SET $PIECE(^TMP($JOB,IBTMPARR),"^",11)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,11)),"^",1)
+20 SET $PIECE(^TMP($JOB,IBTMPARR),"^",12)=""
+21 SET $PIECE(^TMP($JOB,IBTMPARR),"^",13)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,1)),"^",1)
+22 SET $PIECE(^TMP($JOB,IBTMPARR),"^",14)=""
+23 SET $PIECE(^TMP($JOB,IBTMPARR),"^",15)=""
+24 SET $PIECE(^TMP($JOB,IBTMPARR),"^",16)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,16)),"^",1)
+25 SET $PIECE(^TMP($JOB,IBTMPARR),"^",17)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,17))
+26 SET $PIECE(^TMP($JOB,IBTMPARR),"^",18)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,10.6))
+27 SET $PIECE(^TMP($JOB,IBTMPARR),"^",19)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,10.3)),"^",1)
+28 SET ZEROOUT=^TMP($JOB,IBTMPARR)
+29 KILL ^TMP($JOB,IBTMPARR)
End DoDot:1
+30 IF '$TEST
SET ZEROOUT=""
+31 KILL ^TMP($JOB,LIST)
+32 QUIT ZEROOUT
RXSEC(PDFN,RXIEN) ;Returns second node of file 52
+1 NEW SECOUT,LIST,IBTMPARR,NODE
+2 IF '$GET(PDFN)
SET SECOUT=""
QUIT SECOUT
+3 IF '$GET(RXIEN)
SET SECOUT=""
QUIT SECOUT
+4 SET NODE=2
+5 SET LIST="IBSECARR"
+6 SET IBTMPARR="IBTMPSEC"
+7 DO RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
+8 IF $PIECE(^TMP($JOB,LIST,PDFN,0),"^",1)>0
Begin DoDot:1
+9 SET $PIECE(^TMP($JOB,IBTMPARR),"^",1)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,21)),"^",1)
+10 SET $PIECE(^TMP($JOB,IBTMPARR),"^",2)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,22)),"^",1)
+11 SET $PIECE(^TMP($JOB,IBTMPARR),"^",3)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,23)),"^",1)
+12 SET $PIECE(^TMP($JOB,IBTMPARR),"^",4)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,24))
+13 SET $PIECE(^TMP($JOB,IBTMPARR),"^",5)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,25)),"^",1)
+14 SET $PIECE(^TMP($JOB,IBTMPARR),"^",6)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,26)),"^",1)
+15 SET $PIECE(^TMP($JOB,IBTMPARR),"^",7)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,27))
+16 SET $PIECE(^TMP($JOB,IBTMPARR),"^",8)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,28))
+17 SET $PIECE(^TMP($JOB,IBTMPARR),"^",9)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,20)),"^",1)
+18 SET $PIECE(^TMP($JOB,IBTMPARR),"^",10)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,104)),"^",1)
+19 SET $PIECE(^TMP($JOB,IBTMPARR),"^",11)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,29)),"^",1)
+20 SET $PIECE(^TMP($JOB,IBTMPARR),"^",12)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,30))
+21 SET $PIECE(^TMP($JOB,IBTMPARR),"^",13)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,31)),"^",1)
+22 SET $PIECE(^TMP($JOB,IBTMPARR),"^",14)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,32.2)),"^",1)
+23 SET $PIECE(^TMP($JOB,IBTMPARR),"^",15)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,32.1)),"^",1)
+24 SET $PIECE(^TMP($JOB,IBTMPARR),"^",16)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,32.3))
+25 SET SECOUT=^TMP($JOB,IBTMPARR)
+26 KILL ^TMP($JOB,IBTMPARR)
End DoDot:1
+27 IF '$TEST
SET SECOUT=""
+28 KILL ^TMP($JOB,LIST)
+29 QUIT SECOUT
RX3(PDFN,RXIEN) ;Returns third node of file 52
+1 NEW THRDOUT,LIST,IBTMPARR,NODE
+2 IF '$GET(PDFN)
SET THRDOUT=""
QUIT THRDOUT
+3 IF '$GET(RXIEN)
SET THRDOUT=""
QUIT THRDOUT
+4 SET NODE=3
+5 SET LIST="IBARRTHRD"
+6 SET IBTMPARR="IBTMP3"
+7 DO RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
+8 IF $PIECE(^TMP($JOB,LIST,PDFN,0),"^",1)>0
Begin DoDot:1
+9 SET $PIECE(^TMP($JOB,IBTMPARR),"^",1)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,101)),"^",1)
+10 SET $PIECE(^TMP($JOB,IBTMPARR),"^",2)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,102)),"^",1)
+11 SET $PIECE(^TMP($JOB,IBTMPARR),"^",3)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,109)),"^",1)
+12 SET $PIECE(^TMP($JOB,IBTMPARR),"^",4)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,102.1)),"^",1)
+13 SET $PIECE(^TMP($JOB,IBTMPARR),"^",5)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,26.1)),"^",1)
+14 SET $PIECE(^TMP($JOB,IBTMPARR),"^",6)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,34.1)),"^",1)
+15 SET $PIECE(^TMP($JOB,IBTMPARR),"^",7)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,12))
+16 SET $PIECE(^TMP($JOB,IBTMPARR),"^",8)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,102.2))
+17 SET $PIECE(^TMP($JOB,IBTMPARR),"^",9)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,112))
+18 SET THRDOUT=^TMP($JOB,IBTMPARR)
+19 KILL ^TMP($JOB,IBTMPARR)
End DoDot:1
+20 IF '$TEST
SET THRDOUT=""
+21 KILL ^TMP($JOB,LIST)
+22 QUIT THRDOUT
ZEROSUB(PDFN,RXIEN,RXSUB) ;Returns zero node of subfile 52.1
+1 NEW ZSUBOUT,LIST,IBTMPARR,NODE
+2 IF '$GET(PDFN)
SET ZSUBOUT=""
QUIT ZSUBOUT
+3 IF '$GET(RXIEN)
SET ZSUBOUT=""
QUIT ZSUBOUT
+4 IF '$GET(RXSUB)
SET ZSUBOUT=""
QUIT ZSUBOUT
+5 SET NODE="R^^"_RXSUB
+6 SET LIST="IBSUBARR"
+7 SET IBTMPARR="IBTMPSUB"
+8 DO RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
+9 IF $PIECE(^TMP($JOB,LIST,PDFN,RXIEN,"RF",0),"^",1)>0
Begin DoDot:1
+10 SET $PIECE(^TMP($JOB,IBTMPARR),"^",1)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,.01)),"^",1)
+11 SET $PIECE(^TMP($JOB,IBTMPARR),"^",2)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,2)),"^",1)
+12 SET $PIECE(^TMP($JOB,IBTMPARR),"^",3)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,3))
+13 SET $PIECE(^TMP($JOB,IBTMPARR),"^",4)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,1))
+14 SET $PIECE(^TMP($JOB,IBTMPARR),"^",5)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,4)),"^",1)
+15 SET $PIECE(^TMP($JOB,IBTMPARR),"^",6)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,5))
+16 SET $PIECE(^TMP($JOB,IBTMPARR),"^",7)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,6)),"^",1)
+17 SET $PIECE(^TMP($JOB,IBTMPARR),"^",8)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,7)),"^",1)
+18 SET $PIECE(^TMP($JOB,IBTMPARR),"^",9)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,8)),"^",1)
+19 SET $PIECE(^TMP($JOB,IBTMPARR),"^",10)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,1.1))
+20 SET $PIECE(^TMP($JOB,IBTMPARR),"^",11)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,1.2))
+21 SET $PIECE(^TMP($JOB,IBTMPARR),"^",12)=""
+22 SET $PIECE(^TMP($JOB,IBTMPARR),"^",13)=""
+23 SET $PIECE(^TMP($JOB,IBTMPARR),"^",14)=$GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,12))
+24 SET $PIECE(^TMP($JOB,IBTMPARR),"^",15)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,13)),"^",1)
+25 SET $PIECE(^TMP($JOB,IBTMPARR),"^",16)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,14)),"^",1)
+26 SET $PIECE(^TMP($JOB,IBTMPARR),"^",17)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,15)),"^",1)
+27 SET $PIECE(^TMP($JOB,IBTMPARR),"^",18)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,17)),"^",1)
+28 SET $PIECE(^TMP($JOB,IBTMPARR),"^",19)=$PIECE($GET(^TMP($JOB,LIST,PDFN,RXIEN,"RF",RXSUB,10.1)),"^",1)
+29 SET ZSUBOUT=^TMP($JOB,IBTMPARR)
+30 KILL ^TMP($JOB,IBTMPARR)
End DoDot:1
+31 IF '$TEST
SET ZSUBOUT=""
+32 KILL ^TMP($JOB,LIST)
+33 QUIT ZSUBOUT
RFNUM(RXIEN) ;
+1 NEW PDFN,RXSUB,LIST,IBTMPARR,NODE
+2 IF '$GET(RXIEN)
SET RXSUB=""
QUIT RXSUB
+3 SET PDFN=$$FILE^IBRXUTL(RXIEN,2)
+4 SET LIST="IBRFNARR"
+5 SET IBTMPARR="IBTMPRFN"
+6 SET NODE="R"
+7 DO RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
+8 IF $PIECE(^TMP($JOB,LIST,PDFN,RXIEN,"RF",0),"^",1)>0
Begin DoDot:1
+9 SET RXSUB=^TMP($JOB,LIST,PDFN,RXIEN,"RF",0)
End DoDot:1
+10 IF '$TEST
SET RXSUB=""
+11 KILL ^TMP($JOB,LIST)
+12 QUIT RXSUB
IBND(DFN,RXIEN) ;Returns IB node
+1 NEW IBNDOUT,LIST,NODE,IBTMPARR
+2 IF '$GET(DFN)
SET IBNDOUT=""
QUIT IBNDOUT
+3 IF '$GET(RXIEN)
SET IBNDOUT=""
QUIT IBNDOUT
+4 SET LIST="IBIBNDARR"
+5 SET NODE="I^O"
+6 SET IBTMPARR="IBTMPIBND"
+7 DO RX^PSO52API(DFN,LIST,RXIEN,,NODE,,)
+8 IF $PIECE(^TMP($JOB,LIST,DFN,0),"^",1)>0
Begin DoDot:1
+9 SET $PIECE(^TMP($JOB,IBTMPARR),"^",1)=$PIECE($GET(^TMP($JOB,LIST,DFN,RXIEN,105)),"^",1)
+10 SET $PIECE(^TMP($JOB,IBTMPARR),"^",2)=$PIECE($GET(^TMP($JOB,LIST,DFN,RXIEN,106)),"^",1)
+11 SET $PIECE(^TMP($JOB,IBTMPARR),"^",3)=$GET(^TMP($JOB,LIST,DFN,RXIEN,106.5))
+12 SET $PIECE(^TMP($JOB,IBTMPARR),"^",4)=$GET(^TMP($JOB,LIST,DFN,RXIEN,106.6))
+13 SET IBNDOUT=^TMP($JOB,IBTMPARR)
+14 if IBNDOUT="^^^"
SET IBNDOUT=""
+15 KILL ^TMP($JOB,IBTMPARR)
End DoDot:1
+16 IF '$TEST
SET IBNDOUT=""
+17 KILL ^TMP($JOB,LIST)
+18 QUIT IBNDOUT
IBNDFL(DFN,RXIEN,RXRFL) ;
+1 NEW IBNDFL,LIST,NODE,IBTMPARR
+2 IF '$GET(DFN)
SET IBNDFL=""
QUIT IBNDFL
+3 IF '$GET(RXIEN)
SET IBNDFL=""
QUIT IBNDFL
+4 IF '$GET(RXRFL)
SET IBNDFL=""
QUIT IBNDFL
+5 SET LIST="IBIBNDFLARR"
+6 SET NODE="I^R^"_RXRFL
+7 SET IBTMPARR="IBTMPIBNDFL"
+8 DO RX^PSO52API(DFN,LIST,RXIEN,,NODE,,)
+9 IF ^TMP($JOB,LIST,DFN,RXIEN,"IB",0)>0
Begin DoDot:1
+10 SET $PIECE(^TMP($JOB,IBTMPARR),"^",1)=$GET(^TMP($JOB,LIST,DFN,RXIEN,"IB",RXRFL,9))
+11 SET $PIECE(^TMP($JOB,IBTMPARR),"^",2)=$GET(^TMP($JOB,LIST,DFN,RXIEN,"IB",RXRFL,9.1))
+12 SET IBNDFL=^TMP($JOB,IBTMPARR)
+13 KILL ^TMP($JOB,IBTMPARR)
End DoDot:1
+14 IF '$TEST
SET IBNDFL=""
+15 KILL ^TMP($JOB,LIST)
+16 QUIT IBNDFL
+17 ;
RFLNUM(IBRXN,FLDT,IBFLG) ; find the refill number in file 52 for the given date
+1 NEW NUMOUT,NUM,DFN,LIST,NODE
+2 IF '$GET(IBRXN)
SET NUMOUT=""
QUIT NUMOUT
+3 IF '$GET(FLDT)
SET NUMOUT=""
QUIT NUMOUT
+4 SET LIST="IBRTMP"
+5 KILL ^TMP($JOB,LIST)
+6 SET NUM=0
+7 SET DFN=$$FILE(IBRXN,2)
+8 SET NODE="R^^"
+9 DO RX^PSO52API(DFN,LIST,IBRXN,,NODE,,)
+10 FOR
SET NUM=$ORDER(^TMP($JOB,LIST,DFN,IBRXN,"RF",NUM))
if 'NUM
QUIT
Begin DoDot:1
+11 IF $PIECE(^TMP($JOB,LIST,DFN,IBRXN,"RF",NUM,.01),"^",1)=FLDT
SET NUMOUT=NUM
End DoDot:1
+12 KILL ^TMP($JOB,LIST)
+13 if '$GET(NUMOUT)
SET NUMOUT=""
+14 QUIT NUMOUT