PSUOP3 ;BIR/CFL,TJH,PDW-PSU PBM Outpatient Pharmacy shared variables ;08/25/2003
;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005
;
; Reference to file #7 supported by DBIA 2495
; Reference to file #50 supported by DBIA 221
; Reference to file #59 supported by DBIA 2510
; Reference to file #200 supported by DBIA 10060
; Reference to file #49 supported by DBIA 10093
; Reference to file #52 supported by DBIA 2512
;
PROVDR ;Get provider data, site number and AMIS category
S PSUSITE=$S(PSUDIVP="":PSUSNDR,1:$$VALI^PSUTL(59,PSUDIVP,.06))
;
;Create storage global of division numbers and names for lab msgs.
S X=PSUSITE,DIC=59,DIC(0)="XM" D ^DIC
S X=+Y,PSUDIVNM=$$VAL^PSUTL(59,X,.01)
;VMP OIFO BAY PINES;ELR;PSU*3.0*31
I '$L(PSUDIVNM) S X=PSUSITE D DIVNM^PSUOP6
S ^XTMP("PSU_"_PSUJOB,"DIV",PSUSITE)=PSUDIVNM
;
GETVAR ;Get shared variables
;Get AMIS workload category
S PSUPST=$$VALI^PSUTL(53,PSURXP,6)
S PSUSC=$S(PSUPST=1:"SC",PSUPST=2:"AA",PSUPST=3:"OT",PSUPST=4:"IP",1:"")
S:$$GET1^DIQ(52,PSURXIEN,201)="YES" PSUSC="NVA"
K PSUPROV
D GETS^PSUTL(200,PSUPRID,"9;29;53.5;53.6","PSUPROV","I")
I '$D(PSUPROV) D NOPROV Q
D MOVEI^PSUTL("PSUPROV")
S PSUPRSSN=PSUPROV(9)
I PSUPRSSN="" S PSUPRSSN=999999999
S ^XTMP("PSU_"_PSUJOB,"PSUPDR",PSUPRSSN,PSUPRID)=""
S PSUDOC(9)=PSUPRSSN
S PSUPTYP=$S(PSUPROV(53.6)=4:"F",1:"S")
S:$$GET1^DIQ(52,PSURXIEN,201)="YES" PSUPTYP="NVA"
S PSUPCLS="" I PSUPROV(53.5)'="" D
.S PSUPCLS=$$VALI^PSUTL(7,PSUPROV(53.5),1)
.I PSUPCLS="" S PSUPCLS=$$VALI^PSUTL(7,PSUPROV(53.5),.01)
S PSUPSV=$S($L(PSUPROV(29)):$$VAL^PSUTL(49,PSUPROV(29),.01),1:"")
S PSUPSV=$$UPPER^PSUTL(PSUPSV),PSUPSERV=""
I $L(PSUPSV),$D(PSECT(PSUPSV)) S PSUPSERV=PSECT(PSUPSV)
S PSUSPTY=$$GET^XUA4A72(PSUPRID,PSUFDT)
S PSUSP1=$P(PSUSPTY,U,3),PSUSP2=$P(PSUSPTY,U,4)
;
Q
;
NOPROV ; set up PSUPROV array when provider isn't found in ^VA(200
F I=9,29,53.5,53.6 S PSUPROV(I)=""
S (PSUPRSSN,PSUPTYP,PSUPCLS,PSUPSERV,PSUSP1,PSUSP2)=""
Q
GETDRUG ;Get drug data
K PSUDRUG
D GETS^PSUTL(50,PSUDR,".01;2;3;14.5;20;21;22;25;27;31;51;52","PSUDRUG","I")
D MOVEI^PSUTL("PSUDRUG")
I '$D(PSUDRUG) F I=.01,2,3,14.5,20,21,22,25,31,51,52 S PSUDRUG(I)=""
S PSUGNM=PSUDRUG(.01)
I PSUGNM="" S PSUGNM="Unknown Generic Name"
S PSUVANM=PSUDRUG(21)
I PSUVANM="" S PSUVANM="Unknown VA Product Name"
S PSUDEA=PSUDRUG(3)
S PSUNFI=$S(PSUDRUG(51)=1:"N/F",1:"")
S PSUDUN=PSUDRUG(14.5)
S PSUVACLS=PSUDRUG(2)
S PSUNDCL=PSUDRUG(22)
S PSUNAF=$S(PSUDRUG(52):"N/F",1:"")
S PSUNADR=PSUDRUG(20)
S PSUCMID=PSUDRUG(27)
;Get the National Formulary Indicator and Restriction
S (PSOPNFI,PSOPNFR)=""
I $$VERSION^XPDUTL("PSN")'<4 D
.S PSOPNFI=$$FORMI^PSNAPIS(PSUNADR,PSUNDCL)
.S PSOPNFR=$$FORMR^PSNAPIS(PSUNADR,PSUNDCL)
GETDRUGQ Q
;
SETREC ;Set the record into the ^XTMP global
S:PSUDIVP="" PSUDIVP=PSUSNDR
S REC1="^",REC2="*",PSU2U="^",REC3="*",REC4="*",REC5="*",REC6="*"
S REC1=REC1_$TR(PSUSITE,"^","'")_PSU2U_$TR(PSUFD,"^","'")_PSU2U
S REC1=REC1_$TR(PSURELDT,"^","'")_PSU2U_$TR(PSURXN,"^","'")_PSU2U
S REC1=REC1_$TR(PSUSC,"^","'")_PSU2U_PSUSSN_PSU2U_$TR(PSUVANM,"^","'")_PSU2U
S REC1=REC1_$TR(PSUVACLS,"^","'")_PSU2U_$TR(PSUGNM,"^","'")_PSU2U
S REC1=REC1_$TR(PSUNDC,"^","'")_PSU2U_$TR(PSUNFI,"^","'")_PSU2U
S REC1=REC1_$TR(PSOPNFI,"^","'")_PSU2U_$TR(PSOPNFR,"^","'")_PSU2U
S REC1=REC1_$TR(PSUDEA,"^","'")_PSU2U_$TR(PSUTYP,"^","'")_PSU2U
S REC1=REC1_$TR(PSUCMOP,"^","'")_PSU2U_$TR(PSUMW,"^","'")_PSU2U
S REC1=REC1_$TR(PSUPRSSN,"^","'")_PSU2U_$TR(PSUPTYP,"^","'")_PSU2U
S REC1=REC1_PSU2U_$TR(PSUWPC,"^","'")_PSU2U
S REC1=REC1_$TR(PSUDUN,"^","'")_PSU2U_$TR(PSUDRCT,"^","'")_PSU2U
S REC1=REC1_$TR(PSUDS,"^","'")_PSU2U_$TR(PSUQTY,"^","'")_PSU2U_PSUNAF_U
D ICN^PSUV2 S PSUPICN=$G(^XTMP("PSU_"_PSUJOB,"PSUPICN"))
S REC1=REC1_$G(PSUPICN)_PSU2U_PSUPRID_PSU2U_$G(PSUCAN)_"^"
;
;
;**Add AMIS data
;
S REC2=REC2_$G(PSUCLN)_PSU2U ;Clinic
;
S REC2=REC2_$G(PSUCMID)_PSU2U ;CMOP ID
;
I $G(PSUFP) D
.S REC2=REC2_PSUSITE_$G(PSUFP)_PSU2U ;Finishing person
I '$G(PSUFP) D
.S REC2=REC2_PSU2U
;
;Login dates for new orders, refills, and partials
I PSUTYP="N" S REC2=REC2_$G(PSUORDT)_PSU2U ;New fills
I PSUTYP="R" S REC2=REC2_$G(PSUREDT)_PSU2U ;Refills
I PSUTYP="P" S REC2=REC2_$G(PSUPDT)_PSU2U ;Partials
;
S REC2=REC2_$G(PSUCOPAY)_PSU2U ;Copay status
S REC2=REC2_$E($G(PSUPI),1,80)_PSU2U ;Expanded Instructions
S REC2=REC2_$G(PSUMDFLG)_PSU2U ;Multidose Flag
;
;**Single dose date and first dose of multidose data
;are in the following records**
;
S REC2=REC2_$G(PSUDSG)_PSU2U ;Dosage Ordered
S REC2=REC2_$G(PSUDISPU)_PSU2U ;Dispense units
S REC2=REC2_$G(PSUNITS)_PSU2U ;Units
S REC2=REC2_$G(PSUNOUN)_PSU2U ;Noun
S REC2=REC2_$G(PSUDUR)_PSU2U ;Duration
S REC2=REC2_$G(PSUCONJ)_PSU2U ;Conjunction
S REC2=REC2_$G(PSUROUT)_PSU2U ;Route
S REC2=REC2_$G(PSUSCHED)_PSU2U ;Schedule
S REC2=REC2_$G(PSUVERB)_PSU2U ;Verb
;
;**End of Single dose/First multidose data
;
;**The following are single dose globals for MailMan
;
S PSURCT=1+$P($G(^XTMP(PSUOPSUB,"DATA",PSUSITE,PSURXIEN,0)),U,1)
S ^XTMP(PSUOPSUB,"DATA",PSUSITE,PSURXIEN,PSURCT,1)=REC1
S ^XTMP(PSUOPSUB,"DATA",PSUSITE,PSURXIEN,PSURCT,2)=REC2
S $P(^XTMP(PSUOPSUB,"DATA",PSUSITE,PSURXIEN,0),U,1)=PSURCT
I (($E(PSUOPVER)=6)&(PSUTYP="P"))!($E(PSUOPVER)>6) S ^XTMP(PSUOPSUB,"RXIEN",PSURXIEN)=""
;**End of single dose globals for MailMan
;
;**Multidose records
;
I $D(PSUMDFLG) D
.S PSUD1=1
.F S PSUD1=$O(^TMP("PSOR",$J,PSURXIEN,"MI",PSUD1)) Q:PSUD1="" D
..S PSUAMMD=^TMP("PSOR",$J,PSURXIEN,"MI",PSUD1,0)
..D MULTI^PSUOPAM ;Set multidose variables
..I $L(REC3)>180 D REC4 Q
..S REC3=REC3_$G(PSUDSGMD)_PSU2U ;Dosage Ordered
..S REC3=REC3_$G(PSUDSPMD)_PSU2U ;Dispense units
..S REC3=REC3_$G(PSUNITMD)_PSU2U ;Units
..S REC3=REC3_$G(PSUNMD)_PSU2U ;Noun
..S REC3=REC3_$G(PSUDURMD)_PSU2U ;Duration
..S REC3=REC3_$G(PSUCONMD)_PSU2U ;Conjunction
..S REC3=REC3_$G(PSURTMD)_PSU2U ;Route
..S REC3=REC3_$G(PSUSCHMD)_PSU2U ;Schedule
..S REC3=REC3_$G(PSUVRBMD)_PSU2U ;Verb
..;
..;**End of Multidose data
..;**End AMIS data
..;
..;
..;global for multidose records for MailMan
I $D(PSUMDFLG) D
.S PSURCT=1+$P($G(^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,0)),U,1)
.S ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,1)=REC1
.S ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,2)=REC2
.S ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,3)=REC3
.I $L(REC4)>1 S ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,4)=REC4
.I $L(REC5)>1 S ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,5)=REC5
.I $L(REC6)>1 S ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,6)=REC6
.;
.S $P(^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,0),U,1)=PSURCT
;
I '$D(^XTMP("PSU_"_PSUJOB,"PSUOPFLG")) D
.D LAB^PSULR0("OP",PSUSITE,PSURXIEN,DFN,PSUGNM,PSUVACLS)
SUMDRUG ; total drug info for summary report
S PSUVARS="PSUTPART,PSUTFIL,PSUTRFIL,PSUTCST,PSUTQTY"
S PSUREC=$G(^XTMP(PSUOPSUB,"DRUG",PSUSITE,PSUGNM,PSUCMOP))
F I=1:1:5 S @$P(PSUVARS,",",I)=+$P(PSUREC,U,I)
I PSUTYP="P" S PSUTPART=PSUTPART+1
I PSUTYP="N" S PSUTFIL=PSUTFIL+1
I PSUTYP="R" S PSUTRFIL=PSUTRFIL+1
S PSUTQTY=PSUQTY+PSUTQTY
S PSUTCST=(PSUDRCT*PSUQTY)+PSUTCST
S REC=PSUTPART_U_PSUTFIL_U_PSUTRFIL_U_$J(PSUTCST,0,2)_U_$J(PSUTQTY,0,2)
S $P(REC,U,6)=$S(PSUNFI="N/F":"*",1:"")
S $P(REC,U,7)=$S(PSOPNFI="0":"#",1:"")
S ^XTMP(PSUOPSUB,"DRUG",PSUSITE,PSUGNM,PSUCMOP)=REC
Q
;
REC4 ;Multidose records greater than 200 characters in length
;
I $L(REC4)>180 D REC5 Q
S REC4=REC4_$G(PSUDSGMD)_PSU2U ;Dosage Ordered
S REC4=REC4_$G(PSUDSPMD)_PSU2U ;Dispense units
S REC4=REC4_$G(PSUNITMD)_PSU2U ;Units
S REC4=REC4_$G(PSUNMD)_PSU2U ;Noun
S REC4=REC4_$G(PSUDURMD)_PSU2U ;Duration
S REC4=REC4_$G(PSUCONMD)_PSU2U ;Conjunction
S REC4=REC4_$G(PSURTMD)_PSU2U ;Route
S REC4=REC4_$G(PSUSCHMD)_PSU2U ;Schedule
S REC4=REC4_$G(PSUVRBMD)_PSU2U ;Verb
Q
REC5 ;
I $L(REC5)>180 D REC6 Q
S REC5=REC5_$G(PSUDSGMD)_PSU2U ;Dosage Ordered
S REC5=REC5_$G(PSUDSPMD)_PSU2U ;Dispense units
S REC5=REC5_$G(PSUNITMD)_PSU2U ;Units
S REC5=REC5_$G(PSUNMD)_PSU2U ;Noun
S REC5=REC5_$G(PSUDURMD)_PSU2U ;Duration
S REC5=REC5_$G(PSUCONMD)_PSU2U ;Conjunction
S REC5=REC5_$G(PSURTMD)_PSU2U ;Route
S REC5=REC5_$G(PSUSCHMD)_PSU2U ;Schedule
S REC5=REC5_$G(PSUVRBMD)_PSU2U ;Verb
Q
REC6 ;
S REC6=REC6_$G(PSUDSGMD)_PSU2U ;Dosage Ordered
S REC6=REC6_$G(PSUDSPMD)_PSU2U ;Dispense units
S REC6=REC6_$G(PSUNITMD)_PSU2U ;Units
S REC6=REC6_$G(PSUNMD)_PSU2U ;Noun
S REC6=REC6_$G(PSUDURMD)_PSU2U ;Duration
S REC6=REC6_$G(PSUCONMD)_PSU2U ;Conjunction
S REC6=REC6_$G(PSURTMD)_PSU2U ;Route
S REC6=REC6_$G(PSUSCHMD)_PSU2U ;Schedule
S REC6=REC6_$G(PSUVRBMD)_PSU2U ;Verb
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSUOP3 9374 printed Sep 02, 2024@19:13:29 Page 2
PSUOP3 ;BIR/CFL,TJH,PDW-PSU PBM Outpatient Pharmacy shared variables ;08/25/2003
+1 ;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005
+2 ;
+3 ; Reference to file #7 supported by DBIA 2495
+4 ; Reference to file #50 supported by DBIA 221
+5 ; Reference to file #59 supported by DBIA 2510
+6 ; Reference to file #200 supported by DBIA 10060
+7 ; Reference to file #49 supported by DBIA 10093
+8 ; Reference to file #52 supported by DBIA 2512
+9 ;
PROVDR ;Get provider data, site number and AMIS category
+1 SET PSUSITE=$SELECT(PSUDIVP="":PSUSNDR,1:$$VALI^PSUTL(59,PSUDIVP,.06))
+2 ;
+3 ;Create storage global of division numbers and names for lab msgs.
+4 SET X=PSUSITE
SET DIC=59
SET DIC(0)="XM"
DO ^DIC
+5 SET X=+Y
SET PSUDIVNM=$$VAL^PSUTL(59,X,.01)
+6 ;VMP OIFO BAY PINES;ELR;PSU*3.0*31
+7 IF '$LENGTH(PSUDIVNM)
SET X=PSUSITE
DO DIVNM^PSUOP6
+8 SET ^XTMP("PSU_"_PSUJOB,"DIV",PSUSITE)=PSUDIVNM
+9 ;
GETVAR ;Get shared variables
+1 ;Get AMIS workload category
+2 SET PSUPST=$$VALI^PSUTL(53,PSURXP,6)
+3 SET PSUSC=$SELECT(PSUPST=1:"SC",PSUPST=2:"AA",PSUPST=3:"OT",PSUPST=4:"IP",1:"")
+4 if $$GET1^DIQ(52,PSURXIEN,201)="YES"
SET PSUSC="NVA"
+5 KILL PSUPROV
+6 DO GETS^PSUTL(200,PSUPRID,"9;29;53.5;53.6","PSUPROV","I")
+7 IF '$DATA(PSUPROV)
DO NOPROV
QUIT
+8 DO MOVEI^PSUTL("PSUPROV")
+9 SET PSUPRSSN=PSUPROV(9)
+10 IF PSUPRSSN=""
SET PSUPRSSN=999999999
+11 SET ^XTMP("PSU_"_PSUJOB,"PSUPDR",PSUPRSSN,PSUPRID)=""
+12 SET PSUDOC(9)=PSUPRSSN
+13 SET PSUPTYP=$SELECT(PSUPROV(53.6)=4:"F",1:"S")
+14 if $$GET1^DIQ(52,PSURXIEN,201)="YES"
SET PSUPTYP="NVA"
+15 SET PSUPCLS=""
IF PSUPROV(53.5)'=""
Begin DoDot:1
+16 SET PSUPCLS=$$VALI^PSUTL(7,PSUPROV(53.5),1)
+17 IF PSUPCLS=""
SET PSUPCLS=$$VALI^PSUTL(7,PSUPROV(53.5),.01)
End DoDot:1
+18 SET PSUPSV=$SELECT($LENGTH(PSUPROV(29)):$$VAL^PSUTL(49,PSUPROV(29),.01),1:"")
+19 SET PSUPSV=$$UPPER^PSUTL(PSUPSV)
SET PSUPSERV=""
+20 IF $LENGTH(PSUPSV)
IF $DATA(PSECT(PSUPSV))
SET PSUPSERV=PSECT(PSUPSV)
+21 SET PSUSPTY=$$GET^XUA4A72(PSUPRID,PSUFDT)
+22 SET PSUSP1=$PIECE(PSUSPTY,U,3)
SET PSUSP2=$PIECE(PSUSPTY,U,4)
+23 ;
+24 QUIT
+25 ;
NOPROV ; set up PSUPROV array when provider isn't found in ^VA(200
+1 FOR I=9,29,53.5,53.6
SET PSUPROV(I)=""
+2 SET (PSUPRSSN,PSUPTYP,PSUPCLS,PSUPSERV,PSUSP1,PSUSP2)=""
+3 QUIT
GETDRUG ;Get drug data
+1 KILL PSUDRUG
+2 DO GETS^PSUTL(50,PSUDR,".01;2;3;14.5;20;21;22;25;27;31;51;52","PSUDRUG","I")
+3 DO MOVEI^PSUTL("PSUDRUG")
+4 IF '$DATA(PSUDRUG)
FOR I=.01,2,3,14.5,20,21,22,25,31,51,52
SET PSUDRUG(I)=""
+5 SET PSUGNM=PSUDRUG(.01)
+6 IF PSUGNM=""
SET PSUGNM="Unknown Generic Name"
+7 SET PSUVANM=PSUDRUG(21)
+8 IF PSUVANM=""
SET PSUVANM="Unknown VA Product Name"
+9 SET PSUDEA=PSUDRUG(3)
+10 SET PSUNFI=$SELECT(PSUDRUG(51)=1:"N/F",1:"")
+11 SET PSUDUN=PSUDRUG(14.5)
+12 SET PSUVACLS=PSUDRUG(2)
+13 SET PSUNDCL=PSUDRUG(22)
+14 SET PSUNAF=$SELECT(PSUDRUG(52):"N/F",1:"")
+15 SET PSUNADR=PSUDRUG(20)
+16 SET PSUCMID=PSUDRUG(27)
+17 ;Get the National Formulary Indicator and Restriction
+18 SET (PSOPNFI,PSOPNFR)=""
+19 IF $$VERSION^XPDUTL("PSN")'<4
Begin DoDot:1
+20 SET PSOPNFI=$$FORMI^PSNAPIS(PSUNADR,PSUNDCL)
+21 SET PSOPNFR=$$FORMR^PSNAPIS(PSUNADR,PSUNDCL)
End DoDot:1
GETDRUGQ QUIT
+1 ;
SETREC ;Set the record into the ^XTMP global
+1 if PSUDIVP=""
SET PSUDIVP=PSUSNDR
+2 SET REC1="^"
SET REC2="*"
SET PSU2U="^"
SET REC3="*"
SET REC4="*"
SET REC5="*"
SET REC6="*"
+3 SET REC1=REC1_$TRANSLATE(PSUSITE,"^","'")_PSU2U_$TRANSLATE(PSUFD,"^","'")_PSU2U
+4 SET REC1=REC1_$TRANSLATE(PSURELDT,"^","'")_PSU2U_$TRANSLATE(PSURXN,"^","'")_PSU2U
+5 SET REC1=REC1_$TRANSLATE(PSUSC,"^","'")_PSU2U_PSUSSN_PSU2U_$TRANSLATE(PSUVANM,"^","'")_PSU2U
+6 SET REC1=REC1_$TRANSLATE(PSUVACLS,"^","'")_PSU2U_$TRANSLATE(PSUGNM,"^","'")_PSU2U
+7 SET REC1=REC1_$TRANSLATE(PSUNDC,"^","'")_PSU2U_$TRANSLATE(PSUNFI,"^","'")_PSU2U
+8 SET REC1=REC1_$TRANSLATE(PSOPNFI,"^","'")_PSU2U_$TRANSLATE(PSOPNFR,"^","'")_PSU2U
+9 SET REC1=REC1_$TRANSLATE(PSUDEA,"^","'")_PSU2U_$TRANSLATE(PSUTYP,"^","'")_PSU2U
+10 SET REC1=REC1_$TRANSLATE(PSUCMOP,"^","'")_PSU2U_$TRANSLATE(PSUMW,"^","'")_PSU2U
+11 SET REC1=REC1_$TRANSLATE(PSUPRSSN,"^","'")_PSU2U_$TRANSLATE(PSUPTYP,"^","'")_PSU2U
+12 SET REC1=REC1_PSU2U_$TRANSLATE(PSUWPC,"^","'")_PSU2U
+13 SET REC1=REC1_$TRANSLATE(PSUDUN,"^","'")_PSU2U_$TRANSLATE(PSUDRCT,"^","'")_PSU2U
+14 SET REC1=REC1_$TRANSLATE(PSUDS,"^","'")_PSU2U_$TRANSLATE(PSUQTY,"^","'")_PSU2U_PSUNAF_U
+15 DO ICN^PSUV2
SET PSUPICN=$GET(^XTMP("PSU_"_PSUJOB,"PSUPICN"))
+16 SET REC1=REC1_$GET(PSUPICN)_PSU2U_PSUPRID_PSU2U_$GET(PSUCAN)_"^"
+17 ;
+18 ;
+19 ;**Add AMIS data
+20 ;
+21 ;Clinic
SET REC2=REC2_$GET(PSUCLN)_PSU2U
+22 ;
+23 ;CMOP ID
SET REC2=REC2_$GET(PSUCMID)_PSU2U
+24 ;
+25 IF $GET(PSUFP)
Begin DoDot:1
+26 ;Finishing person
SET REC2=REC2_PSUSITE_$GET(PSUFP)_PSU2U
End DoDot:1
+27 IF '$GET(PSUFP)
Begin DoDot:1
+28 SET REC2=REC2_PSU2U
End DoDot:1
+29 ;
+30 ;Login dates for new orders, refills, and partials
+31 ;New fills
IF PSUTYP="N"
SET REC2=REC2_$GET(PSUORDT)_PSU2U
+32 ;Refills
IF PSUTYP="R"
SET REC2=REC2_$GET(PSUREDT)_PSU2U
+33 ;Partials
IF PSUTYP="P"
SET REC2=REC2_$GET(PSUPDT)_PSU2U
+34 ;
+35 ;Copay status
SET REC2=REC2_$GET(PSUCOPAY)_PSU2U
+36 ;Expanded Instructions
SET REC2=REC2_$EXTRACT($GET(PSUPI),1,80)_PSU2U
+37 ;Multidose Flag
SET REC2=REC2_$GET(PSUMDFLG)_PSU2U
+38 ;
+39 ;**Single dose date and first dose of multidose data
+40 ;are in the following records**
+41 ;
+42 ;Dosage Ordered
SET REC2=REC2_$GET(PSUDSG)_PSU2U
+43 ;Dispense units
SET REC2=REC2_$GET(PSUDISPU)_PSU2U
+44 ;Units
SET REC2=REC2_$GET(PSUNITS)_PSU2U
+45 ;Noun
SET REC2=REC2_$GET(PSUNOUN)_PSU2U
+46 ;Duration
SET REC2=REC2_$GET(PSUDUR)_PSU2U
+47 ;Conjunction
SET REC2=REC2_$GET(PSUCONJ)_PSU2U
+48 ;Route
SET REC2=REC2_$GET(PSUROUT)_PSU2U
+49 ;Schedule
SET REC2=REC2_$GET(PSUSCHED)_PSU2U
+50 ;Verb
SET REC2=REC2_$GET(PSUVERB)_PSU2U
+51 ;
+52 ;**End of Single dose/First multidose data
+53 ;
+54 ;**The following are single dose globals for MailMan
+55 ;
+56 SET PSURCT=1+$PIECE($GET(^XTMP(PSUOPSUB,"DATA",PSUSITE,PSURXIEN,0)),U,1)
+57 SET ^XTMP(PSUOPSUB,"DATA",PSUSITE,PSURXIEN,PSURCT,1)=REC1
+58 SET ^XTMP(PSUOPSUB,"DATA",PSUSITE,PSURXIEN,PSURCT,2)=REC2
+59 SET $PIECE(^XTMP(PSUOPSUB,"DATA",PSUSITE,PSURXIEN,0),U,1)=PSURCT
+60 IF (($EXTRACT(PSUOPVER)=6)&(PSUTYP="P"))!($EXTRACT(PSUOPVER)>6)
SET ^XTMP(PSUOPSUB,"RXIEN",PSURXIEN)=""
+61 ;**End of single dose globals for MailMan
+62 ;
+63 ;**Multidose records
+64 ;
+65 IF $DATA(PSUMDFLG)
Begin DoDot:1
+66 SET PSUD1=1
+67 FOR
SET PSUD1=$ORDER(^TMP("PSOR",$JOB,PSURXIEN,"MI",PSUD1))
if PSUD1=""
QUIT
Begin DoDot:2
+68 SET PSUAMMD=^TMP("PSOR",$JOB,PSURXIEN,"MI",PSUD1,0)
+69 ;Set multidose variables
DO MULTI^PSUOPAM
+70 IF $LENGTH(REC3)>180
DO REC4
QUIT
+71 ;Dosage Ordered
SET REC3=REC3_$GET(PSUDSGMD)_PSU2U
+72 ;Dispense units
SET REC3=REC3_$GET(PSUDSPMD)_PSU2U
+73 ;Units
SET REC3=REC3_$GET(PSUNITMD)_PSU2U
+74 ;Noun
SET REC3=REC3_$GET(PSUNMD)_PSU2U
+75 ;Duration
SET REC3=REC3_$GET(PSUDURMD)_PSU2U
+76 ;Conjunction
SET REC3=REC3_$GET(PSUCONMD)_PSU2U
+77 ;Route
SET REC3=REC3_$GET(PSURTMD)_PSU2U
+78 ;Schedule
SET REC3=REC3_$GET(PSUSCHMD)_PSU2U
+79 ;Verb
SET REC3=REC3_$GET(PSUVRBMD)_PSU2U
+80 ;
+81 ;**End of Multidose data
+82 ;**End AMIS data
+83 ;
+84 ;
+85 ;global for multidose records for MailMan
End DoDot:2
End DoDot:1
+86 IF $DATA(PSUMDFLG)
Begin DoDot:1
+87 SET PSURCT=1+$PIECE($GET(^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,0)),U,1)
+88 SET ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,1)=REC1
+89 SET ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,2)=REC2
+90 SET ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,3)=REC3
+91 IF $LENGTH(REC4)>1
SET ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,4)=REC4
+92 IF $LENGTH(REC5)>1
SET ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,5)=REC5
+93 IF $LENGTH(REC6)>1
SET ^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,PSURCT,6)=REC6
+94 ;
+95 SET $PIECE(^XTMP(PSUOPSUB,"DATAMD",PSUSITE,PSURXIEN,0),U,1)=PSURCT
End DoDot:1
+96 ;
+97 IF '$DATA(^XTMP("PSU_"_PSUJOB,"PSUOPFLG"))
Begin DoDot:1
+98 DO LAB^PSULR0("OP",PSUSITE,PSURXIEN,DFN,PSUGNM,PSUVACLS)
End DoDot:1
SUMDRUG ; total drug info for summary report
+1 SET PSUVARS="PSUTPART,PSUTFIL,PSUTRFIL,PSUTCST,PSUTQTY"
+2 SET PSUREC=$GET(^XTMP(PSUOPSUB,"DRUG",PSUSITE,PSUGNM,PSUCMOP))
+3 FOR I=1:1:5
SET @$PIECE(PSUVARS,",",I)=+$PIECE(PSUREC,U,I)
+4 IF PSUTYP="P"
SET PSUTPART=PSUTPART+1
+5 IF PSUTYP="N"
SET PSUTFIL=PSUTFIL+1
+6 IF PSUTYP="R"
SET PSUTRFIL=PSUTRFIL+1
+7 SET PSUTQTY=PSUQTY+PSUTQTY
+8 SET PSUTCST=(PSUDRCT*PSUQTY)+PSUTCST
+9 SET REC=PSUTPART_U_PSUTFIL_U_PSUTRFIL_U_$JUSTIFY(PSUTCST,0,2)_U_$JUSTIFY(PSUTQTY,0,2)
+10 SET $PIECE(REC,U,6)=$SELECT(PSUNFI="N/F":"*",1:"")
+11 SET $PIECE(REC,U,7)=$SELECT(PSOPNFI="0":"#",1:"")
+12 SET ^XTMP(PSUOPSUB,"DRUG",PSUSITE,PSUGNM,PSUCMOP)=REC
+13 QUIT
+14 ;
REC4 ;Multidose records greater than 200 characters in length
+1 ;
+2 IF $LENGTH(REC4)>180
DO REC5
QUIT
+3 ;Dosage Ordered
SET REC4=REC4_$GET(PSUDSGMD)_PSU2U
+4 ;Dispense units
SET REC4=REC4_$GET(PSUDSPMD)_PSU2U
+5 ;Units
SET REC4=REC4_$GET(PSUNITMD)_PSU2U
+6 ;Noun
SET REC4=REC4_$GET(PSUNMD)_PSU2U
+7 ;Duration
SET REC4=REC4_$GET(PSUDURMD)_PSU2U
+8 ;Conjunction
SET REC4=REC4_$GET(PSUCONMD)_PSU2U
+9 ;Route
SET REC4=REC4_$GET(PSURTMD)_PSU2U
+10 ;Schedule
SET REC4=REC4_$GET(PSUSCHMD)_PSU2U
+11 ;Verb
SET REC4=REC4_$GET(PSUVRBMD)_PSU2U
+12 QUIT
REC5 ;
+1 IF $LENGTH(REC5)>180
DO REC6
QUIT
+2 ;Dosage Ordered
SET REC5=REC5_$GET(PSUDSGMD)_PSU2U
+3 ;Dispense units
SET REC5=REC5_$GET(PSUDSPMD)_PSU2U
+4 ;Units
SET REC5=REC5_$GET(PSUNITMD)_PSU2U
+5 ;Noun
SET REC5=REC5_$GET(PSUNMD)_PSU2U
+6 ;Duration
SET REC5=REC5_$GET(PSUDURMD)_PSU2U
+7 ;Conjunction
SET REC5=REC5_$GET(PSUCONMD)_PSU2U
+8 ;Route
SET REC5=REC5_$GET(PSURTMD)_PSU2U
+9 ;Schedule
SET REC5=REC5_$GET(PSUSCHMD)_PSU2U
+10 ;Verb
SET REC5=REC5_$GET(PSUVRBMD)_PSU2U
+11 QUIT
REC6 ;
+1 ;Dosage Ordered
SET REC6=REC6_$GET(PSUDSGMD)_PSU2U
+2 ;Dispense units
SET REC6=REC6_$GET(PSUDSPMD)_PSU2U
+3 ;Units
SET REC6=REC6_$GET(PSUNITMD)_PSU2U
+4 ;Noun
SET REC6=REC6_$GET(PSUNMD)_PSU2U
+5 ;Duration
SET REC6=REC6_$GET(PSUDURMD)_PSU2U
+6 ;Conjunction
SET REC6=REC6_$GET(PSUCONMD)_PSU2U
+7 ;Route
SET REC6=REC6_$GET(PSURTMD)_PSU2U
+8 ;Schedule
SET REC6=REC6_$GET(PSUSCHMD)_PSU2U
+9 ;Verb
SET REC6=REC6_$GET(PSUVRBMD)_PSU2U
+10 QUIT