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

BEXRX7.m

Go to the documentation of this file.
  1. BEXRX7 ;cmi/anch/maw - BEX Audiocare Refill Driver - Pharmacy Version 7 Only [ 06/15/2010 9:18 PM ] ; 04 Dec 2015 8:08 AM
  1. ;;1.0;BEX TELEPHONE REFILL SYSTEM;**1,2,4,5,6**;APR 20, 2015;Build 7
  1. ;For O/P V7 only
  1. ;
  1. ;
  1. START ;
  1. S PSOBEX=1
  1. S (VEXRX,BEXRX)=1
  1. K PSOBEXI,PSOISITE,PSOBEXFL F PSOVX=0:0 S PSOVX=$O(^PS(59,PSOVX)) Q:'PSOVX I $P($G(^PS(59,PSOVX,"I")),"^"),DT>$P($G(^("I")),"^") S PSOBEXI(PSOVX)=""
  1. I $O(PSOBEXI(0)) W !,"Looking for refill requests for inactive Outpatient divisions..." F PSOVIN=0:0 S PSOVIN=$O(^VEXHRX(19080,PSOVIN)) Q:'PSOVIN S PSOVXLP="" F S PSOVXLP=$O(^VEXHRX(19080,PSOVIN,PSOVXLP)) Q:PSOVXLP="" D
  1. .S PSOISITE=$P($G(^PSRX(+$P(PSOVXLP,"-",2),2)),"^",9) Q:$G(PSOBEXI(+$G(PSOISITE)))
  1. .I PSOISITE,$D(PSOBEXI(PSOISITE)),$P($G(^VEXHRX(19080,PSOVIN,PSOVXLP)),U)="" S PSOBEXI(PSOISITE)=1,PSOBEXFL=1
  1. I '$G(PSOBEXFL),$O(PSOBEXI(0)) W ".none found.",!
  1. I $G(PSOBEXFL) W !!,"The following Inactive Outpatient sites have refill requests:",! F PSOVX=0:0 S PSOVX=$O(PSOBEXI(PSOVX)) Q:'PSOVX I $G(PSOBEXI(PSOVX)) W !?5,$P($G(^PS(59,+$G(PSOVX),0)),"^")
  1. I $G(PSOBEXFL) K DIR W ! S DIR(0)="E",DIR("A")="Press Return to Continue, '^'to exit" D ^DIR W ! I Y'=1 G END
  1. ;
  1. ;
  1. ;IHS/BJI/DAY - Patch 6 - Improved Site Selection
  1. ;
  1. ;Store incoming Site values
  1. D HOLD^BEXSITE
  1. ;
  1. ;Display site values to user and ask for change
  1. D CHANGE^BEXSITE
  1. ;
  1. ;End Patch 6
  1. ;
  1. S PSOBBC1("FROM")="REFILL",PSOBBC("QFLG")=0,PSOBBC("DFLG")=0
  1. I '$G(PSOINST) S PSOINST=000 I $D(^DD("SITE",1)) S PSOINST=^DD("SITE",1) ;maw 9/9/02
  1. S PSOFROM="REFILL"
  1. I '$D(^VEXHRX(19080,PSOINST)) S BEXANS="N" W !!?7,$C(7),"No telephone refills to process." G END
  1. D ASK^PSOBBC W:PSOBBC("QFLG")=1 !?7,$C(7),"No telephone refills were processed." G:PSOBBC("QFLG")=1 END
  1. BEX I $$CUT G END
  1. W ! S DIR("B")="YES",DIR("A")="Process telephone refill requests at this time",DIR(0)="Y" D ^DIR K DIR S BEXANS="N" I $G(DIRUT) S BEXPTRX="" G END
  1. G:Y=0 END S BEXPTRX="" I Y=1 S BEXANS="Y"
  1. ;
  1. ;IHS/CMI/BJI - Patch 5 - Selection by division
  1. K BEXOPSIT
  1. S (BEXOPSIT,BEXQUIT,BEXEXIT)=0
  1. I BEXANS="Y" D
  1. .W !!,"Press Enter to process refills for ALL Outpatient Sites, or"
  1. .F D Q:BEXQUIT=1
  1. ..K DIC,DIE,DUOUT,DA
  1. ..S DIC(0)="AEQMZ"
  1. ..S DIC("A")="Select an 'Outpatient Site': "
  1. ..S DIC=59
  1. ..D ^DIC
  1. ..K DIR,DIC,DIR,DR
  1. ..I $G(DUOUT) K DUOUT S (BEXQUIT,BEXEXIT)=1 Q
  1. ..I X="" S BEXQUIT=1 Q
  1. ..I Y<1 Q
  1. ..S BEXOPSIT=BEXOPSIT+1
  1. ..S BEXOPSIT(+Y)=""
  1. ;
  1. I BEXEXIT=1 K DUOUT Q
  1. ;*
  1. ;
  1. ;IHS/CMI/BJI - Patch 5 - Limit to Mail, Local or Window
  1. K DIR
  1. S DIR(0)="S^A:All;L:Local;M:Mail;W:Window"
  1. S DIR("A")="Process All, Local Mail, Mail, or Window"
  1. D ^DIR
  1. K DIR
  1. I $D(DIRUT) K DIRUT S BEXANS="N" G END
  1. S BEXMAIL=Y
  1. W !
  1. ;*
  1. ;
  1. S (BEXCTR,VEXCTR)=0
  1. BEX6 S PSOBBC("DFLG")=""
  1. I BEXANS["Y",$G(BEXPTRX) D BEX5
  1. D BEX3 I $G(BEXANS)="N" D ULK G END
  1. I $P(X,"-")'=PSOINST W !?7,$C(7),$C(7),$C(7),"Not from this institution.",! D ULK G BEX6
  1. S (PSOBBC("IRXN"),PSOBBC("OIRXN"))=$P(X,"-",2)
  1. S PSORX("PSOL",1)=$G(PSORX("PSOL",1))_PSOBBC("IRXN")_","
  1. I $D(^PSRX(PSOBBC("IRXN"),0))']"" W !,$C(7),"Rx data is not on file!",! D ULK G BEX6
  1. I $P($G(^PSRX(PSOBBC("IRXN"),"STA")),"^")=13 W !,$C(7),"Rx has already been deleted." D ULK G BEX6
  1. I $G(PSOBBC("DONE"))[PSOBBC("IRXN")_"," W !,$C(7),"Rx has already been entered." D ULK G BEX6
  1. K X,Y
  1. S PSOSELSE=0 I $G(PSODFN)'=$P(^PSRX(PSOBBC("IRXN"),0),"^",2) D KSRX S PSOSELSE=1 D PT^PSOBBC I $G(PSOBBC("DFLG")) K PSOSELSE D ULK G BEX6
  1. K PSOSELSE D PROFILE^PSORX1
  1. W !!
  1. ;
  1. ;IHS/CMI/DAY - Patch 6 - Wrong Labs Display during refills
  1. ;
  1. ;Change recommended by Phil Salmon - January 2015
  1. ;
  1. I +$G(PSODFN) S DFN=PSODFN
  1. S PSODRUG("IEN")=$P(^PSRX(PSOBBC("IRXN"),0),U,6)
  1. ;
  1. ;End Patch 6
  1. ;*
  1. ;
  1. S PSOBBC("DONE")=PSOBBC("IRXN")_"," D REFILL^PSOBBC D ULK G BEX6
  1. Q
  1. ;
  1. KSRX ;-- kill and reset PSORX
  1. Q:$G(PSODFN)=""
  1. K PSORX("PSOL",1)
  1. S PSORX("PSOL",1)=PSOBBC("IRXN")_","
  1. Q
  1. ;
  1. BEX3 K PSOBBC("IRXN"),BEXXFLAG F S BEXPTRX=$O(^VEXHRX(19080,PSOINST,BEXPTRX)) D Q:BEXANS="N"!($G(BEXXFLAG))
  1. .I BEXPTRX="" S BEXANS="N" Q
  1. .I '$D(^PSRX(+$P(BEXPTRX,"-",2),0)),$P(^VEXHRX(19080,PSOINST,BEXPTRX),U)="" D BEX5,BEX12 Q ;SKIPS ERRONEOUS ENTRIES
  1. BEX4 .I BEXANS["Y" Q:$P(^VEXHRX(19080,PSOINST,BEXPTRX),U)'="" S X=PSOINST_"-"_$P(BEXPTRX,"-",2)
  1. .;
  1. .;IHS/CMI/DAY - Screen by O/P Site
  1. .;If quit, stay in loop and get next RX
  1. .S BEXOPIEN=0
  1. .S BEXRXIEN=+$P(BEXPTRX,"-",2)
  1. .I +BEXRXIEN S BEXOPIEN=$P($G(^PSRX(BEXRXIEN,2)),"^",9)
  1. .S BEXRFIEN=0
  1. .I +BEXRXIEN S BEXRFIEN=$O(^PSRX(BEXRXIEN,1,99),-1)
  1. .I +BEXRFIEN S BEXOPIEN=$P($G(^PSRX(BEXRXIEN,1,BEXRFIEN,0)),U,9)
  1. .I +BEXOPSIT,+BEXOPIEN=0 Q
  1. .I +BEXOPSIT,'$D(BEXOPSIT(BEXOPIEN)) Q
  1. BEX10 .;
  1. .;*
  1. .;
  1. .;IHS/CMI/DAY - Patch 5 - Limit for Mail, Local, Window
  1. .S BEXFLAG=$G(^VEXHRX(19080,PSOINST,BEXPTRX))
  1. .I BEXFLAG="" S BEXFLAG="^^^M"
  1. .I $P(BEXFLAG,U,4)="M",BEXMAIL="W" Q
  1. .I $P(BEXFLAG,U,4)="M",BEXMAIL="L" Q
  1. .I $P(BEXFLAG,U,4)="L",BEXMAIL="W" Q
  1. .I $P(BEXFLAG,U,4)="L",BEXMAIL="M" Q
  1. .I $P(BEXFLAG,U,4)="W",BEXMAIL="L" Q
  1. .I $P(BEXFLAG,U,4)="W",BEXMAIL="M" Q
  1. .I $P(BEXFLAG,U,4)="M" S PSOBBC("MAIL/WINDOW")="M"
  1. .I $P(BEXFLAG,U,4)="L" S PSOBBC("MAIL/WINDOW")="M"
  1. .I $P(BEXFLAG,U,4)="W" S PSOBBC("MAIL/WINDOW")="W"
  1. .;*
  1. .;
  1. .S BEXPSORX=+$P($G(BEXPTRX),"-",2) I BEXPSORX D PSOL^PSSLOCK(BEXPSORX) I '$G(PSOMSG) K BEXPSORX,PSOMSG Q
  1. .K PSOMSG S BEXXFLAG=1
  1. Q
  1. ;MARK PROCESSED NODES
  1. BEX5 I '$G(PSOINST) S PSOINST=000 I $D(^DD("SITE",1)) S PSOINST=^DD("SITE",1)
  1. S ^VEXHRX(19080,PSOINST,BEXPTRX)=DT
  1. I $D(PSOBBC("DFLG")),PSOBBC("DFLG")=1 D BEX12
  1. Q
  1. BEX12 S $P(^VEXHRX(19080,PSOINST,BEXPTRX),U,2)="NOT FILLED" W !!,$C(7),"REFILL WAS NOT PROCESSED! PLEASE TAKE APPROPRIATE ACTION."
  1. S PSOBBC("DFLG")=""
  1. W ! S DIR("A")="Do you wish to continue processing",DIR(0)="Y" D ^DIR K DIR I Y'=1 S BEXANS="N" Q
  1. Q
  1. END D PROCESSX^PSOBBC
  1. K BEXRX,BEXPPL,PSORX
  1. I $P($G(^PS(59,+$G(PSOSITE),"I")),"^"),DT>$P($G(^("I")),"^") D FINAL^PSOLSET W !!,"Your Outpatient Site parameters have been deleted because you selected an",!,"inactive Outpatient Site!",!
  1. K DIR,PSOBBC,PSOBBC1,PSOVIN,PSOISITE,PSOBEXFL,PSOVXLP,PSOBEX,PSOVX,PSOBEXI,BEXANS,BEXANS2,BEXPTRX,BEXXFLAG,BEXPSORX,X,Y,PSODFN
  1. ;
  1. ;IHS/BJI/DAY - Patch 6 - Check if User Changed Sites
  1. ;
  1. ;Check if Inactive Site was deleted
  1. ;
  1. I $G(PSOSITE)="" K BEXHOLD D ^PSOLSET Q
  1. I $G(PSOPAR)="" K BEXHOLD D ^PSOLSET Q
  1. ;
  1. ;Check if User Changed Sites
  1. ;
  1. I $$CHECK^BEXSITE() D
  1. .;
  1. .W !!
  1. .W "You may have changed your Outpatient Site!",!
  1. .D CHANGE^BEXSITE
  1. .;
  1. .K BEXHOLD
  1. ;
  1. ;End Patch 6
  1. ;
  1. Q
  1. ;
  1. BEXALT ;Menu action entry point to alert user
  1. S BEXCNT=0,BEXPTRN=""
  1. I '$G(PSOINST) S PSOINST="000" I $D(^DD("SITE",1)) S PSOINST=^(1)
  1. G:'$D(^VEXHRX(19080,PSOINST)) BEXEND
  1. F S BEXPTRN=$O(^VEXHRX(19080,PSOINST,BEXPTRN)) Q:BEXPTRN="" D
  1. .I $P(^VEXHRX(19080,PSOINST,BEXPTRN),U)="" S BEXCNT=BEXCNT+1
  1. W:BEXCNT !!,$C(7),BEXCNT_" Telephone Refills To Process"
  1. BEXEND K BEXCNT,BEXPTRN
  1. Q
  1. ULK ;
  1. I '$G(BEXPSORX) Q
  1. D PSOUL^PSSLOCK(BEXPSORX)
  1. K BEXPSORX
  1. Q
  1. ;
  1. CUT() ;check cutoff time and now
  1. S VSITEO=$O(^BEXHRXP("B",DUZ(2),0))
  1. I '$G(VSITEO) Q 0
  1. S VSITE=$P($G(^BEXHRXP(VSITEO,0)),U)
  1. I '$G(VSITE) Q 0
  1. S VCUT=$P($G(^BEXHRXP(VSITEO,0)),U,3)
  1. I '$G(VCUT) Q 0
  1. D NOW^%DTC
  1. I $E($P(%,".",2),1,4)>+$G(VCUT) D Q 1
  1. . W !,"Process time is past daily cut off time, refills will not be processed"
  1. Q 0
  1. ;
  1. CR(BEXVIEN) ;EP - add a chart request
  1. I $G(U)="" S U="^"
  1. I $P($G(^VEXHRX0(19080.1,BEXVIEN,0)),U,5)="" Q
  1. S BEXPAT=$P($G(^VEXHRX0(19080.1,BEXVIEN,0)),U)
  1. I '$G(BEXPAT) Q
  1. S BEXTS=$P($G(^VEXHRX0(19080.1,BEXVIEN,0)),U,2)
  1. ;
  1. ;IHS/BJI/DAY - Patch 6
  1. ;Fix Site Lookup to use D Xref instead of C Xref
  1. ;I '$G(DUZ(2)) S DUZ(2)=$P($G(^AUTTSITE(1,0)),U)
  1. ;S BEXPSITE=$O(^PS(59,"C",DUZ(2),0))
  1. ;I '$G(BEXPSITE) S DUZ(2)=$P($G(^AUTTSITE(1,0)),U)
  1. ;S BEXPSITE=$O(^PS(59,"C",DUZ(2),0))
  1. S BEXPSITE=""
  1. I +$G(DUZ(2)) S BEXPSITE=$O(^PS(59,"D",DUZ(2),0))
  1. ;End Patch
  1. ;
  1. I '$G(BEXPSITE) Q
  1. S BEXVSITO=$O(^BEXHRXP("B",BEXPSITE,0))
  1. I '$G(BEXVSITO) Q
  1. S BEXVSITE=$P($G(^BEXHRXP(BEXVSITO,0)),U)
  1. I '$G(BEXVSITE) Q
  1. ;site screen
  1. N BEXSLOC
  1. S BEXSLOC=$P($G(^VEXHRX0(19080.1,BEXVIEN,0)),U,10)
  1. ;
  1. ;IHS/CMI/DAY - Patch 4 - P10 not always set, so calculate manually
  1. I BEXSLOC="" D
  1. .;Get Prescription Number
  1. .S Y=$P($G(^VEXHRX0(19080.1,BEXVIEN,0)),U,3)
  1. .I Y="" Q
  1. .;Get IEN in Prescription file
  1. .S BEXRXIEN=$O(^PSRX("B",Y,0))
  1. .I BEXRXIEN="" Q
  1. .;Get Division (O/P Site) from Prescription File
  1. .S Y=$$GET1^DIQ(52,BEXRXIEN,20,"I")
  1. .I Y="" Q
  1. .;Get Related Institution from Outpatient Site file
  1. .S Y=$$GET1^DIQ(59,Y,100,"I")
  1. .I Y="" Q
  1. .S BEXSLOC=Y
  1. ;
  1. I $G(BEXSLOC)]"",BEXSLOC'=DUZ(2) Q
  1. ;
  1. S BEXTSCA=$P($G(^BEXHRXP(BEXVSITO,0)),U,7)
  1. S BEXTSRA=$P($G(^BEXHRXP(BEXVSITO,0)),U,8)
  1. S BEXTSRP=$P($G(^BEXHRXP(BEXVSITO,0)),U,9)
  1. I '$G(BEXTS) S BEXTS=DT_".08"
  1. S BEXOTM=$E($P(BEXTS,".",2),1,4)
  1. I BEXOTM=0 Q
  1. I $L(BEXOTM)=1 S BEXOTM=BEXOTM_"000"
  1. I $L(BEXOTM)=2 S BEXOTM=BEXOTM_"00"
  1. I $L(BEXOTM)=3 S BEXOTM=BEXOTM_"0"
  1. S BEXTSP=$P(BEXTS,".")_"."_$S($G(BEXTSRP):BEXTSRP,1:2000)
  1. S BEXTSP=+BEXTSP
  1. S BEXTS=$P(BEXTS,".")_"."_$S($G(BEXTSRA):BEXTSRA,1:"08")
  1. S BEXTS=+BEXTS
  1. S BEXCLNA=$P($G(^BEXHRXP(BEXVSITO,0)),U,4)
  1. S BEXCLNB=$P($G(^BEXHRXP(BEXVSITO,0)),U,5)
  1. S BEXCUT=$P($G(^BEXHRXP(BEXVSITO,0)),U,3)
  1. S BEXREFO=$P($G(^BEXHRXP(BEXVSITO,0)),U,2)
  1. I '$G(BEXCLNA) S BEXCLNA=BEXCLNB ;for blank am clinic
  1. I '$G(BEXCLNA) Q
  1. I '$D(^DPT(BEXPAT,0)) Q
  1. S BEXCLNI=BEXCLNA
  1. S BEXPM=0
  1. I $G(BEXCUT),$G(BEXCLNB) D
  1. . I (BEXOTM>BEXCUT)!(BEXOTM<BEXTSCA) S BEXCLNI=BEXCLNB,BEXTS=BEXTSP,BEXPM=1
  1. I 'BEXCLNI S BEXCLNI=BEXCLNA
  1. I 'BEXCLNI Q
  1. ;mark routing slip as printed
  1. I $G(BEXREFO),$P($G(^VEXHRX0(19080.1,BEXVIEN,0)),U,5)'="REFILLABLE" Q
  1. I $$PIMS53 D ADDCR(BEXCLNI,BEXPAT,BEXTS,+$G(BEXPM)),MARK(BEXVIEN) Q
  1. I $$LKPT(BEXPAT,BEXCLNI,BEXTS) Q
  1. I '$D(^SC(BEXCLNI,"S",BEXTS,0)) D
  1. . S ^SC(BEXCLNI,"S",BEXTS,0)=BEXTS
  1. I '$D(^SC(BEXCLNI,"S",BEXTS,1,0)) D
  1. . S ^SC(BEXCLNI,"S",BEXTS,1,0)="^44.003PA^^"
  1. S BEXNXT=$$GNXT(BEXCLNI,BEXTS)
  1. S ^SC(BEXCLNI,"S",BEXTS,1,BEXNXT,0)=BEXPAT_U_U_U_"PHARMACY CHART REQUEST (TA)"
  1. S ^SC(BEXCLNI,"S",BEXTS,1,BEXNXT,"C")=BEXTS
  1. I '$D(^DPT(BEXPAT,"S",0)) D
  1. . S ^DPT(BEXPAT,"S",0)="^2.98^^"
  1. S BEXAPTP=$O(^SD(409.1,"B","COMPUTER GENERATED",0))
  1. S ^DPT(BEXPAT,"S",BEXTS,0)=BEXCLNI_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_$G(BEXAPTP)
  1. D RS(BEXPAT,BEXCLNI)
  1. D MARK(BEXVIEN)
  1. Q
  1. ;
  1. PIMS53() ;check for pims 5.3
  1. N BEXPIMS
  1. S BEXPIMS=$O(^DIC(9.4,"C","PIMS",0))
  1. I '$G(BEXPIMS) Q 0
  1. I $G(^DIC(9.4,BEXPIMS,"VERSION"))>5.29 Q 1
  1. Q 0
  1. ;
  1. ADDCR(CLN,PAT,TS,PM) ;-- add cr and print rs
  1. S BEXTSO=TS
  1. S TS=$P(TS,".")
  1. Q:$O(^SC("AIHSCR",PAT,CLN,TS,0)) ;quit if chart request there already
  1. N BEXIENS,BEXERR,BEXFDA,BEXDATE,BEXNOW,BEXCLNE,BEXDEV
  1. S BEXIENS=""
  1. S BEXIENS(1)=CLN
  1. S BEXIENS(2)=TS
  1. ;
  1. S BEXCLNE=$P($G(^SC(CLN,0)),U)
  1. S BEXFDA(44.006,"?+2,"_BEXIENS(1)_",",.01)=TS
  1. S BEXFDA(44.007,"?+3,?+2,"_BEXIENS(1)_",",.01)=PAT
  1. S BEXFDA(44.007,"?+3,?+2,"_BEXIENS(1)_",",9999999.01)=BEXTSO
  1. S BEXFDA(44.007,"?+3,?+2,"_BEXIENS(1)_",",9999999.02)=$G(DUZ)
  1. S BEXFDA(44.007,"?+3,?+2,"_BEXIENS(1)_",",9999999.03)="Audiocare Telephone Refill"
  1. S BEXFDA(44.007,"?+3,?+2,"_BEXIENS(1)_",",9999999.04)=$$NOW^XLFDT()
  1. D UPDATE^DIE("","BEXFDA","BEXIENS","BEXERR(1)")
  1. Q:$D(BEXERR)
  1. I $G(PM) D
  1. . S BEXDEV=$$GET1^DIQ(90350.2,BEXVSITO,2)
  1. I $G(BEXDEV)="" S BEXDEV=$$GET1^DIQ(90350.2,BEXVSITO,1)
  1. Q:BEXDEV=""
  1. S DGQUIET=1
  1. D WISD^BSDROUT(PAT,$P(TS,"."),"CR",BEXDEV)
  1. Q
  1. ;
  1. ADDDPT(CLN,PAT,TS) ;-- add the appointment to the patient file
  1. N BEXIENS,BEXERR,BEXFDA,BEXDATE,BEXNOW,BEXPATE,BEXAPTP
  1. S BEXAPTP=$O(^SD(409.1,"B","COMPUTER GENERATED",0))
  1. S BEXIENS=""
  1. S BEXIENS(1)=PAT
  1. S BEXIENS(2)=TS
  1. S BEXPATE=$P($G(^DPT(PAT,0)),U)
  1. S BEXFDA(2.98,"?+2,"_BEXIENS(1)_",",.01)=CLN
  1. S BEXFDA(2.98,"?+2,"_BEXIENS(1)_",",8)=DT
  1. S BEXFDA(2.98,"?+2,"_BEXIENS(1)_",",9.5)=BEXAPTP
  1. D UPDATE^DIE("","BEXFDA","BEXIENS","BEXERR(1)")
  1. Q:$D(BEXERR)
  1. Q
  1. ;
  1. RS(DFN,CI) ;-- print a routine slip
  1. Q:'$P($G(^BEXHRXP(BEXVSITO,0)),U,6)
  1. S VAR="DIV^ORDER^SDX^DFN^SDREP^SDSTART^SDZHS^ASDLONG^SDZSC^SDZCV^SDPR",DGPGM="EN1^SDROUT1"
  1. ;
  1. S BEXDEV=$$GET1^DIQ(90350.2,BEXVSITO,1)
  1. I $G(BEXDEV)="" Q
  1. S DIV=$P($G(^SC(CI,0)),U,15) ;for routing slip
  1. S (SDZZWI,SDZCV,DGUTQND)=1
  1. S IOP=BEXDEV,POP=0,%ZIS="Q" D ^%ZIS Q:$G(POP)
  1. ;D ^%ZIS ;for testing
  1. ;
  1. D EN^XBNEW("Q1^DGUTQ","SD*;DFN;DG*;DIV;VAR;IO*")
  1. Q
  1. ;
  1. LKPT(PT,CI,TM) ;-- check if patient has cr already
  1. K BEXCRE
  1. S BEXIEN=0 F S BEXIEN=$O(^SC(CI,"S",TM,1,BEXIEN)) Q:'BEXIEN D
  1. . I $P($G(^SC(CI,"S",TM,1,BEXIEN,0)),U)=PT S BEXCRE=1 Q
  1. Q $G(BEXCRE)
  1. ;
  1. GNXT(CI,TM) ;-- get next ien for clinic
  1. K BEXNXT
  1. S BEXIEN=0 F S BEXIEN=$O(^SC(CI,"S",TM,1,BEXIEN)) Q:'BEXIEN D
  1. . S BEXNXT=BEXIEN
  1. Q $G(BEXNXT)+1
  1. ;
  1. EOJCR ;-- kill vars
  1. D EN^XBVK("SD")
  1. D EN^XBVK("BEX")
  1. D EN^XBVK("VSIT")
  1. D EN^XBVK("CLN")
  1. K OTM,PAT,TS,TSM,TSCA,TSCP
  1. Q
  1. ;
  1. TSK ;EP - loop trans file and request charts
  1. D ^XBKVAR
  1. S BEXRDA=0 F S BEXRDA=$O(^VEXHRX0(19080.1,BEXRDA)) Q:'BEXRDA D
  1. . Q:$P($G(^VEXHRX0(19080.1,BEXRDA,0)),U,9)
  1. . D CR(BEXRDA)
  1. Q
  1. ;
  1. MARK(BEXRDA) ;EP - mark entries as completed
  1. N BEXFDA,BEXIENS,BEXERR
  1. S BEXIENS=BEXRDA_","
  1. S BEXFDA(90350.1,BEXIENS,9)=1
  1. D UPDATE^DIE("","BEXFDA","BEXIENS","BEXERR(1)")
  1. D EOJCR
  1. Q
  1. ;
  1. IDX ;EP - reindex all x ref upon entry into menu
  1. W !!,"I need to update files, please stand by.."
  1. S DIK="^VEXHRX0(19080.1," D IXALL^DIK
  1. K DIK
  1. Q
  1. ;
  1. DIE ;EP
  1. S DIE="^VEXHRX0(19080.1,"
  1. S BEXIDA=0 F S BEXIDA=$O(^VEXHRX0(19080.1,"C",BEXIDA)) Q:BEXIDA="" D
  1. . S BEXIIEN=0 F S BEXIIEN=$O(^VEXHRX0(19080.1,"C",BEXIDA,BEXIIEN)) Q:'BEXIIEN D
  1. .. S BEXIDT=$P($G(BEXIDA),".")
  1. .. Q:$P($G(BEXIDA),".",2)'=0
  1. .. S BEXNIDT=BEXIDT_".12"
  1. .. S BEXNIDT=+BEXNIDT
  1. .. S BEXEIDT=$$FMTE^XLFDT(BEXNIDT)
  1. .. S DA=BEXIIEN,DR="1///"_BEXEIDT
  1. .. D ^DIE
  1. .. K DR,DA
  1. K DIE,BEXIDA,BEXNIDT,BEXIIEN
  1. Q
  1. ;
  1. HDR ;EP
  1. S BEXPKG="BEXR Audiocare Pharmacy Refill System"
  1. S BEXLOC="Location: "_$P($G(^DIC(4,DUZ(2),0)),U)
  1. S BEXTAB=(80-$L(BEXLOC))/2
  1. W !,?(80-$L(BEXPKG))/2,BEXPKG
  1. W !,?BEXTAB,BEXLOC
  1. Q
  1. ;
  1. MED ;-- populate 90350.1 with med name in 11th piece
  1. N BEXDA
  1. S BEXDA=0 F S BEXDA=$O(^VEXHRX0(19080.1,BEXDA)) Q:'BEXDA D
  1. . Q:$P($G(^VEXHRX0(19080.1,BEXDA,0)),U,11)
  1. . N BEXRX,BEXRXI,BEXDRG
  1. . S BEXRX=$P($G(^VEXHRX0(19080.1,BEXDA,0)),U,3)
  1. . Q:'BEXRX
  1. . S BEXRXI=$O(^PSRX("B",BEXRX,0))
  1. . Q:'BEXRXI
  1. . S BEXDRG=$P($G(^PSRX(BEXRXI,0)),U,6)
  1. . Q:'BEXDRG
  1. . N BEXFDA,BEXIEN,BEXERR
  1. . S BEXIEN=BEXDA_","
  1. . S BEXFDA(90350.1,BEXIEN,11)=BEXDRG
  1. . D FILE^DIE("K","BEXFDA","BEXERR(1)")
  1. Q
  1. ;