Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: IBRXUTL

IBRXUTL.m

Go to the documentation of this file.
  1. IBRXUTL ;ALB/MAF - PHARMACY API CALLS ;1/9/08 14:45
  1. ;;2.0;INTEGRATED BILLING;**309,347,383**;21-MAR-94;Build 11
  1. ;
  1. ZERO(IBDRV) ;
  1. N X
  1. K ^TMP($J,"IBDRUG")
  1. S X="IBDRUG" D ZERO^PSS50(IBDRV,,,,,X)
  1. Q
  1. DATA(IBDRV) ;
  1. N X
  1. K ^TMP($J,"IBDRUG")
  1. S X="IBDRUG" D DATA^PSS50(IBDRV,,,,,X)
  1. Q
  1. FILE(DA,DR,INTEXT) ;Returns single field from file 52
  1. N RETURN,PSOFILE
  1. I '$G(DA) S RETURN="" Q RETURN
  1. I '$G(DR) S RETURN="" Q RETURN
  1. S PSOFILE=52
  1. S DA=+DA
  1. I $G(INTEXT)="" S INTEXT="I"
  1. S RETURN=$$GET1^PSODI(PSOFILE,DA,DR,INTEXT)
  1. I $P($G(RETURN),"^",1)=0 S RETURN="" Q RETURN
  1. Q $P(RETURN,"^",2)
  1. 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
  1. ;to test site. Rather than changing all the routines that call this API this
  1. ;input variable is now not used.
  1. N RETSUB,PSOFILE,IENS
  1. I '$G(DA) S RETSUB="" Q RETSUB
  1. I '$G(DASUB) S RETSUB="" Q RETSUB
  1. I '$G(DRSUB) S RETSUB="" Q RETSUB
  1. S PSOFILE=52.1
  1. S IENS=+DASUB_","_+DA
  1. I $G(INTEXT)="" S INTEXT="I"
  1. S RETSUB=$$GET1^PSODI(PSOFILE,IENS,DRSUB,INTEXT)
  1. I $P($G(RETSUB),"^",1)=0 S RETSUB="" Q RETSUB
  1. Q $P(RETSUB,"^",2)
  1. RXZERO(PDFN,RXIEN) ;Returns zero node of file 52
  1. N ZEROOUT,LIST,IBTMPARR,NODE
  1. I '$G(PDFN) S ZEROOUT="" Q ZEROOUT
  1. I '$G(RXIEN) S ZEROOUT="" Q ZEROOUT
  1. S NODE=0
  1. S LIST="IBZEROARR"
  1. S IBTMPARR="IBTMPZERO"
  1. D RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
  1. I $P(^TMP($J,LIST,PDFN,0),"^",1)>0 D
  1. .S $P(^TMP($J,IBTMPARR),"^",1)=$G(^TMP($J,LIST,PDFN,RXIEN,.01))
  1. .S $P(^TMP($J,IBTMPARR),"^",2)=$P($G(^TMP($J,LIST,PDFN,RXIEN,2)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",3)=$P($G(^TMP($J,LIST,PDFN,RXIEN,3)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",4)=$P($G(^TMP($J,LIST,PDFN,RXIEN,4)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",5)=$P($G(^TMP($J,LIST,PDFN,RXIEN,5)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",6)=$P($G(^TMP($J,LIST,PDFN,RXIEN,6)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",7)=$G(^TMP($J,LIST,PDFN,RXIEN,7))
  1. .S $P(^TMP($J,IBTMPARR),"^",8)=$G(^TMP($J,LIST,PDFN,RXIEN,8))
  1. .S $P(^TMP($J,IBTMPARR),"^",9)=$G(^TMP($J,LIST,PDFN,RXIEN,9))
  1. .S $P(^TMP($J,IBTMPARR),"^",10)=""
  1. .S $P(^TMP($J,IBTMPARR),"^",11)=$P($G(^TMP($J,LIST,PDFN,RXIEN,11)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",12)=""
  1. .S $P(^TMP($J,IBTMPARR),"^",13)=$P($G(^TMP($J,LIST,PDFN,RXIEN,1)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",14)=""
  1. .S $P(^TMP($J,IBTMPARR),"^",15)=""
  1. .S $P(^TMP($J,IBTMPARR),"^",16)=$P($G(^TMP($J,LIST,PDFN,RXIEN,16)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",17)=$G(^TMP($J,LIST,PDFN,RXIEN,17))
  1. .S $P(^TMP($J,IBTMPARR),"^",18)=$G(^TMP($J,LIST,PDFN,RXIEN,10.6))
  1. .S $P(^TMP($J,IBTMPARR),"^",19)=$P($G(^TMP($J,LIST,PDFN,RXIEN,10.3)),"^",1)
  1. .S ZEROOUT=^TMP($J,IBTMPARR)
  1. .K ^TMP($J,IBTMPARR)
  1. E S ZEROOUT=""
  1. K ^TMP($J,LIST)
  1. Q ZEROOUT
  1. RXSEC(PDFN,RXIEN) ;Returns second node of file 52
  1. N SECOUT,LIST,IBTMPARR,NODE
  1. I '$G(PDFN) S SECOUT="" Q SECOUT
  1. I '$G(RXIEN) S SECOUT="" Q SECOUT
  1. S NODE=2
  1. S LIST="IBSECARR"
  1. S IBTMPARR="IBTMPSEC"
  1. D RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
  1. I $P(^TMP($J,LIST,PDFN,0),"^",1)>0 D
  1. .S $P(^TMP($J,IBTMPARR),"^",1)=$P($G(^TMP($J,LIST,PDFN,RXIEN,21)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",2)=$P($G(^TMP($J,LIST,PDFN,RXIEN,22)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",3)=$P($G(^TMP($J,LIST,PDFN,RXIEN,23)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",4)=$G(^TMP($J,LIST,PDFN,RXIEN,24))
  1. .S $P(^TMP($J,IBTMPARR),"^",5)=$P($G(^TMP($J,LIST,PDFN,RXIEN,25)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",6)=$P($G(^TMP($J,LIST,PDFN,RXIEN,26)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",7)=$G(^TMP($J,LIST,PDFN,RXIEN,27))
  1. .S $P(^TMP($J,IBTMPARR),"^",8)=$G(^TMP($J,LIST,PDFN,RXIEN,28))
  1. .S $P(^TMP($J,IBTMPARR),"^",9)=$P($G(^TMP($J,LIST,PDFN,RXIEN,20)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",10)=$P($G(^TMP($J,LIST,PDFN,RXIEN,104)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",11)=$P($G(^TMP($J,LIST,PDFN,RXIEN,29)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",12)=$G(^TMP($J,LIST,PDFN,RXIEN,30))
  1. .S $P(^TMP($J,IBTMPARR),"^",13)=$P($G(^TMP($J,LIST,PDFN,RXIEN,31)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",14)=$P($G(^TMP($J,LIST,PDFN,RXIEN,32.2)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",15)=$P($G(^TMP($J,LIST,PDFN,RXIEN,32.1)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",16)=$G(^TMP($J,LIST,PDFN,RXIEN,32.3))
  1. .S SECOUT=^TMP($J,IBTMPARR)
  1. .K ^TMP($J,IBTMPARR)
  1. E S SECOUT=""
  1. K ^TMP($J,LIST)
  1. Q SECOUT
  1. RX3(PDFN,RXIEN) ;Returns third node of file 52
  1. N THRDOUT,LIST,IBTMPARR,NODE
  1. I '$G(PDFN) S THRDOUT="" Q THRDOUT
  1. I '$G(RXIEN) S THRDOUT="" Q THRDOUT
  1. S NODE=3
  1. S LIST="IBARRTHRD"
  1. S IBTMPARR="IBTMP3"
  1. D RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
  1. I $P(^TMP($J,LIST,PDFN,0),"^",1)>0 D
  1. .S $P(^TMP($J,IBTMPARR),"^",1)=$P($G(^TMP($J,LIST,PDFN,RXIEN,101)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",2)=$P($G(^TMP($J,LIST,PDFN,RXIEN,102)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",3)=$P($G(^TMP($J,LIST,PDFN,RXIEN,109)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",4)=$P($G(^TMP($J,LIST,PDFN,RXIEN,102.1)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",5)=$P($G(^TMP($J,LIST,PDFN,RXIEN,26.1)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",6)=$P($G(^TMP($J,LIST,PDFN,RXIEN,34.1)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",7)=$G(^TMP($J,LIST,PDFN,RXIEN,12))
  1. .S $P(^TMP($J,IBTMPARR),"^",8)=$G(^TMP($J,LIST,PDFN,RXIEN,102.2))
  1. .S $P(^TMP($J,IBTMPARR),"^",9)=$G(^TMP($J,LIST,PDFN,RXIEN,112))
  1. .S THRDOUT=^TMP($J,IBTMPARR)
  1. .K ^TMP($J,IBTMPARR)
  1. E S THRDOUT=""
  1. K ^TMP($J,LIST)
  1. Q THRDOUT
  1. ZEROSUB(PDFN,RXIEN,RXSUB) ;Returns zero node of subfile 52.1
  1. N ZSUBOUT,LIST,IBTMPARR,NODE
  1. I '$G(PDFN) S ZSUBOUT="" Q ZSUBOUT
  1. I '$G(RXIEN) S ZSUBOUT="" Q ZSUBOUT
  1. I '$G(RXSUB) S ZSUBOUT="" Q ZSUBOUT
  1. S NODE="R^^"_RXSUB
  1. S LIST="IBSUBARR"
  1. S IBTMPARR="IBTMPSUB"
  1. D RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
  1. I $P(^TMP($J,LIST,PDFN,RXIEN,"RF",0),"^",1)>0 D
  1. .S $P(^TMP($J,IBTMPARR),"^",1)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,.01)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",2)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,2)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",3)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,3))
  1. .S $P(^TMP($J,IBTMPARR),"^",4)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,1))
  1. .S $P(^TMP($J,IBTMPARR),"^",5)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,4)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",6)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,5))
  1. .S $P(^TMP($J,IBTMPARR),"^",7)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,6)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",8)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,7)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",9)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,8)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",10)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,1.1))
  1. .S $P(^TMP($J,IBTMPARR),"^",11)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,1.2))
  1. .S $P(^TMP($J,IBTMPARR),"^",12)=""
  1. .S $P(^TMP($J,IBTMPARR),"^",13)=""
  1. .S $P(^TMP($J,IBTMPARR),"^",14)=$G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,12))
  1. .S $P(^TMP($J,IBTMPARR),"^",15)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,13)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",16)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,14)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",17)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,15)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",18)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,17)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",19)=$P($G(^TMP($J,LIST,PDFN,RXIEN,"RF",RXSUB,10.1)),"^",1)
  1. .S ZSUBOUT=^TMP($J,IBTMPARR)
  1. .K ^TMP($J,IBTMPARR)
  1. E S ZSUBOUT=""
  1. K ^TMP($J,LIST)
  1. Q ZSUBOUT
  1. RFNUM(RXIEN) ;
  1. N PDFN,RXSUB,LIST,IBTMPARR,NODE
  1. I '$G(RXIEN) S RXSUB="" Q RXSUB
  1. S PDFN=$$FILE^IBRXUTL(RXIEN,2)
  1. S LIST="IBRFNARR"
  1. S IBTMPARR="IBTMPRFN"
  1. S NODE="R"
  1. D RX^PSO52API(PDFN,LIST,RXIEN,,NODE,,)
  1. I $P(^TMP($J,LIST,PDFN,RXIEN,"RF",0),"^",1)>0 D
  1. .S RXSUB=^TMP($J,LIST,PDFN,RXIEN,"RF",0)
  1. E S RXSUB=""
  1. K ^TMP($J,LIST)
  1. Q RXSUB
  1. IBND(DFN,RXIEN) ;Returns IB node
  1. N IBNDOUT,LIST,NODE,IBTMPARR
  1. I '$G(DFN) S IBNDOUT="" Q IBNDOUT
  1. I '$G(RXIEN) S IBNDOUT="" Q IBNDOUT
  1. S LIST="IBIBNDARR"
  1. S NODE="I^O"
  1. S IBTMPARR="IBTMPIBND"
  1. D RX^PSO52API(DFN,LIST,RXIEN,,NODE,,)
  1. I $P(^TMP($J,LIST,DFN,0),"^",1)>0 D
  1. .S $P(^TMP($J,IBTMPARR),"^",1)=$P($G(^TMP($J,LIST,DFN,RXIEN,105)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",2)=$P($G(^TMP($J,LIST,DFN,RXIEN,106)),"^",1)
  1. .S $P(^TMP($J,IBTMPARR),"^",3)=$G(^TMP($J,LIST,DFN,RXIEN,106.5))
  1. .S $P(^TMP($J,IBTMPARR),"^",4)=$G(^TMP($J,LIST,DFN,RXIEN,106.6))
  1. .S IBNDOUT=^TMP($J,IBTMPARR)
  1. .S:IBNDOUT="^^^" IBNDOUT=""
  1. .K ^TMP($J,IBTMPARR)
  1. E S IBNDOUT=""
  1. K ^TMP($J,LIST)
  1. Q IBNDOUT
  1. IBNDFL(DFN,RXIEN,RXRFL) ;
  1. N IBNDFL,LIST,NODE,IBTMPARR
  1. I '$G(DFN) S IBNDFL="" Q IBNDFL
  1. I '$G(RXIEN) S IBNDFL="" Q IBNDFL
  1. I '$G(RXRFL) S IBNDFL="" Q IBNDFL
  1. S LIST="IBIBNDFLARR"
  1. S NODE="I^R^"_RXRFL
  1. S IBTMPARR="IBTMPIBNDFL"
  1. D RX^PSO52API(DFN,LIST,RXIEN,,NODE,,)
  1. I ^TMP($J,LIST,DFN,RXIEN,"IB",0)>0 D
  1. .S $P(^TMP($J,IBTMPARR),"^",1)=$G(^TMP($J,LIST,DFN,RXIEN,"IB",RXRFL,9))
  1. .S $P(^TMP($J,IBTMPARR),"^",2)=$G(^TMP($J,LIST,DFN,RXIEN,"IB",RXRFL,9.1))
  1. .S IBNDFL=^TMP($J,IBTMPARR)
  1. .K ^TMP($J,IBTMPARR)
  1. E S IBNDFL=""
  1. K ^TMP($J,LIST)
  1. Q IBNDFL
  1. ;
  1. RFLNUM(IBRXN,FLDT,IBFLG) ; find the refill number in file 52 for the given date
  1. N NUMOUT,NUM,DFN,LIST,NODE
  1. I '$G(IBRXN) S NUMOUT="" Q NUMOUT
  1. I '$G(FLDT) S NUMOUT="" Q NUMOUT
  1. S LIST="IBRTMP"
  1. K ^TMP($J,LIST)
  1. S NUM=0
  1. S DFN=$$FILE(IBRXN,2)
  1. S NODE="R^^"
  1. D RX^PSO52API(DFN,LIST,IBRXN,,NODE,,)
  1. F S NUM=$O(^TMP($J,LIST,DFN,IBRXN,"RF",NUM)) Q:'NUM D
  1. .I $P(^TMP($J,LIST,DFN,IBRXN,"RF",NUM,.01),"^",1)=FLDT S NUMOUT=NUM
  1. K ^TMP($J,LIST)
  1. S:'$G(NUMOUT) NUMOUT=""
  1. Q NUMOUT