PSURT2 ; BIR/RDC - DYNAMIC REPORT OF PATIENT DEMOGRAPHIC DATA; 12 APR 2004
;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005
;
; THIS PROGRAM IS CALLED TO EXTRACT DATES FROM ^PSUDEM AND
; CALLS ^PSUDEM1 TO EXTRACT PMB PATIENT DEMOGRAPHIC DATA
;
EN ;
D INITZ
D LODXTMP
D MAILIT
K ^XTMP("PSU"_PSUJOB,"REXMT")
Q
;
INITZ ;
S START=PSUSTART,LAST=PSULAST
I $D(PSURMON) S PSURMON=$E(PSURMON,1,5)
I '$D(PSURMON) S PSURMON=PSUSRNG_" through "_PSUERNG
S PSUJOB=$J_"_"_$P($H,",",2)
S PSUMASF=$G(PSUMASF)
S PSUDUZ=$G(PSUDUZ)
S PSUPBMG=$G(PSUPBMG)
N PSURXMT
S PSURXMT=1
;
S X=$$VALI^PSUTL(4.3,1,217)
S PSUSNDR=+$$VAL^PSUTL(4,X,99)
S X=PSUSNDR,DIC=40.8,DIC(0)="X",D="C" D IX^DIC ; ** set facility
S X=+Y S PSUVDIV=$$VAL^PSUTL(40.8,X,.01) ; ** set division
;
Q
;
LODXTMP ;
;
S START=START-1
F S START=$O(^PSUDEM("B",START)) Q:START>LAST!(START="") D
. S I=""
. S I=$O(^PSUDEM("B",START,I))
. S DFN=$P(^PSUDEM(I,0),U,2)
. S ^XTMP("PSU"_PSUJOB,"REXMT",DFN)=""
;
; ** ^XTMP SHOULD NOW HOLD ONE NODE PER PATIENT FOR THIS TIME FRAME **
Q
;
MAILIT ;
S ^XTMP("PSU_"_PSUJOB,"REXMIT")="YES"
S XMCHAN=1
S XMDUZ=DUZ
I $G(PSUMSTR) S PSUXMYH("G.PSU PBM@CMOP-NAT.DOMAIN.EXT")=""
I $G(PSUMME) S PSUXMYH(DUZ)="",PSUXMYH("G.PSU PBM")=""
M XMY=PSUXMYH
; MAILGROUPS ARE SET INTO XMY
S DFN=""
F S (DFN,PSUDMDFN)=$O(^XTMP("PSU"_PSUJOB,"REXMT",DFN)) Q:PSUDMDFN="" D
. D DAT^PSUDEM1
. D DEM1^PSUDEM1
D XMD^PSUDEM1
D CONFIRM
;
Q
CONFIRM ;
I $G(PSUMSTR) S PSUXMYH("G.PSU PBM@CMOP-NAT.DOMAIN.EXT")=""
I $G(PSUMME) S PSUXMYH(DUZ)="",PSUXMYH("G.PSU PBM")=""
M XMY=PSUXMYH
F I=1:1:79 S $E(ZZ,I)="-"
S PSUPKG="Patient Demographics"
S PSUCONF(1)="The chart below shows the package(s) whose dispensing statistics were extracted"
S PSUCONF(2)="by the PBM Pharmacy Statistics Retransmission option."
S PSUCONF(3)=" "
S PSUCONF(4)="PACKAGE"_$J("# Line items",35)_$J("# MailMan msgs",19)
S PSUCONF(5)=ZZ
K ^XTMP(PSUSUB,"XMD")
M ^XTMP(PSUSUB,"XMD")=PSUCONF
S ^XTMP(PSUSUB,"XMD",6)=PSUPKG_$J(PSUMLC,37-$L(PSUPKG))_$J(PSUM,12)
S XMSUB="V. 4.0 PBMRXMT "_PSURMON_" "_PSUSIT_" "_PSUDIVNM
S XMDUZ=DUZ
S XMCHAN=1
S XMTEXT="^XTMP(PSUSUB,""XMD"","
D ^XMD
;
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSURT2 2263 printed Dec 13, 2024@02:28:25 Page 2
PSURT2 ; BIR/RDC - DYNAMIC REPORT OF PATIENT DEMOGRAPHIC DATA; 12 APR 2004
+1 ;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005
+2 ;
+3 ; THIS PROGRAM IS CALLED TO EXTRACT DATES FROM ^PSUDEM AND
+4 ; CALLS ^PSUDEM1 TO EXTRACT PMB PATIENT DEMOGRAPHIC DATA
+5 ;
EN ;
+1 DO INITZ
+2 DO LODXTMP
+3 DO MAILIT
+4 KILL ^XTMP("PSU"_PSUJOB,"REXMT")
+5 QUIT
+6 ;
INITZ ;
+1 SET START=PSUSTART
SET LAST=PSULAST
+2 IF $DATA(PSURMON)
SET PSURMON=$EXTRACT(PSURMON,1,5)
+3 IF '$DATA(PSURMON)
SET PSURMON=PSUSRNG_" through "_PSUERNG
+4 SET PSUJOB=$JOB_"_"_$PIECE($HOROLOG,",",2)
+5 SET PSUMASF=$GET(PSUMASF)
+6 SET PSUDUZ=$GET(PSUDUZ)
+7 SET PSUPBMG=$GET(PSUPBMG)
+8 NEW PSURXMT
+9 SET PSURXMT=1
+10 ;
+11 SET X=$$VALI^PSUTL(4.3,1,217)
+12 SET PSUSNDR=+$$VAL^PSUTL(4,X,99)
+13 ; ** set facility
SET X=PSUSNDR
SET DIC=40.8
SET DIC(0)="X"
SET D="C"
DO IX^DIC
+14 ; ** set division
SET X=+Y
SET PSUVDIV=$$VAL^PSUTL(40.8,X,.01)
+15 ;
+16 QUIT
+17 ;
LODXTMP ;
+1 ;
+2 SET START=START-1
+3 FOR
SET START=$ORDER(^PSUDEM("B",START))
if START>LAST!(START="")
QUIT
Begin DoDot:1
+4 SET I=""
+5 SET I=$ORDER(^PSUDEM("B",START,I))
+6 SET DFN=$PIECE(^PSUDEM(I,0),U,2)
+7 SET ^XTMP("PSU"_PSUJOB,"REXMT",DFN)=""
End DoDot:1
+8 ;
+9 ; ** ^XTMP SHOULD NOW HOLD ONE NODE PER PATIENT FOR THIS TIME FRAME **
+10 QUIT
+11 ;
MAILIT ;
+1 SET ^XTMP("PSU_"_PSUJOB,"REXMIT")="YES"
+2 SET XMCHAN=1
+3 SET XMDUZ=DUZ
+4 IF $GET(PSUMSTR)
SET PSUXMYH("G.PSU PBM@CMOP-NAT.DOMAIN.EXT")=""
+5 IF $GET(PSUMME)
SET PSUXMYH(DUZ)=""
SET PSUXMYH("G.PSU PBM")=""
+6 MERGE XMY=PSUXMYH
+7 ; MAILGROUPS ARE SET INTO XMY
+8 SET DFN=""
+9 FOR
SET (DFN,PSUDMDFN)=$ORDER(^XTMP("PSU"_PSUJOB,"REXMT",DFN))
if PSUDMDFN=""
QUIT
Begin DoDot:1
+10 DO DAT^PSUDEM1
+11 DO DEM1^PSUDEM1
End DoDot:1
+12 DO XMD^PSUDEM1
+13 DO CONFIRM
+14 ;
+15 QUIT
CONFIRM ;
+1 IF $GET(PSUMSTR)
SET PSUXMYH("G.PSU PBM@CMOP-NAT.DOMAIN.EXT")=""
+2 IF $GET(PSUMME)
SET PSUXMYH(DUZ)=""
SET PSUXMYH("G.PSU PBM")=""
+3 MERGE XMY=PSUXMYH
+4 FOR I=1:1:79
SET $EXTRACT(ZZ,I)="-"
+5 SET PSUPKG="Patient Demographics"
+6 SET PSUCONF(1)="The chart below shows the package(s) whose dispensing statistics were extracted"
+7 SET PSUCONF(2)="by the PBM Pharmacy Statistics Retransmission option."
+8 SET PSUCONF(3)=" "
+9 SET PSUCONF(4)="PACKAGE"_$JUSTIFY("# Line items",35)_$JUSTIFY("# MailMan msgs",19)
+10 SET PSUCONF(5)=ZZ
+11 KILL ^XTMP(PSUSUB,"XMD")
+12 MERGE ^XTMP(PSUSUB,"XMD")=PSUCONF
+13 SET ^XTMP(PSUSUB,"XMD",6)=PSUPKG_$JUSTIFY(PSUMLC,37-$LENGTH(PSUPKG))_$JUSTIFY(PSUM,12)
+14 SET XMSUB="V. 4.0 PBMRXMT "_PSURMON_" "_PSUSIT_" "_PSUDIVNM
+15 SET XMDUZ=DUZ
+16 SET XMCHAN=1
+17 SET XMTEXT="^XTMP(PSUSUB,""XMD"","
+18 DO ^XMD
+19 ;
+20 QUIT