1 | PSUPR5 ;BIR/PDW - PROCUREMENT EXTRACT SUMMARY MESSAGE GENERATOR ;10 JUL 1999
|
---|
2 | ;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005
|
---|
3 | ;DBIA(s)
|
---|
4 | ; Reference to file #40.8 supported by DBIA 2438
|
---|
5 | ;
|
---|
6 | EN ;EP generate Total & Cost summary
|
---|
7 | ;
|
---|
8 | EN1 N PSUITT,PSUREC,PSUTC
|
---|
9 | ;PSUITT - TOTAL ITEMS
|
---|
10 | ;PSUTC - TOTAL COST
|
---|
11 | S:'$D(PSUPRJOB) PSUPRJOB=PSUJOB
|
---|
12 | S:'$D(PSUPRSUB) PSUPRSUB="PSUPR_"_PSUPRJOB
|
---|
13 | ;
|
---|
14 | I '$D(^XTMP(PSUPRSUB,"RECORDS")) G NODATA
|
---|
15 | DIV ;EP Loop by Division
|
---|
16 | S PSUDIV="" F S PSUDIV=$O(^XTMP(PSUPRSUB,"RECORDS",PSUDIV)) Q:PSUDIV="" D MESSAGE
|
---|
17 | Q
|
---|
18 | ;
|
---|
19 | MESSAGE ;EP Generate Summary Messages for a Division
|
---|
20 | ;
|
---|
21 | S X=PSUDIV,DIC=40.8,DIC(0)="X",D="C" D IX^DIC ;**1
|
---|
22 | S X=+Y S PSUDIVNM=$$VAL^PSUTL(40.8,X,.01)
|
---|
23 | MSG1 ; Generate 1st summary message
|
---|
24 | ;
|
---|
25 | S PSUITT=0,PSUTC=0
|
---|
26 | ;
|
---|
27 | ; loop to get totals from records stored
|
---|
28 | S PSUREC=0
|
---|
29 | K ^TMP($J,"PSUITNM") ;
|
---|
30 | F S PSUREC=$O(^XTMP(PSUPRSUB,"RECORDS",PSUDIV,PSUREC)) Q:PSUREC'>0 S X=^(PSUREC),PSUTC=PSUTC+$P(X,U,19) S PSUIT=$P(X,U,8) S:PSUIT="" PSUIT=$P(X,U,7) S:PSUIT'="" ^TMP($J,"PSUITNM",PSUIT)=""
|
---|
31 | ; get number of unique items stored in PSUITNM
|
---|
32 | S X="" F PSUITT=0:1 S X=$O(^TMP($J,"PSUITNM",X)) Q:X=""
|
---|
33 | K ^TMP($J,"PSUITNM")
|
---|
34 | S XMDUZ=DUZ
|
---|
35 | M XMY=PSUXMYS1
|
---|
36 | ;
|
---|
37 | S Y=PSUSDT X ^DD("DD") S PSUDTS=Y ; start date
|
---|
38 | S Y=PSUEDT X ^DD("DD") S PSUDTE=Y ; end date
|
---|
39 | N PSUMSG
|
---|
40 | S PSUMSG(1)=" Procurement Statistical Summary"
|
---|
41 | S PSUMSG(2)=" "_PSUDTS_" through "_PSUDTE_" for "_PSUDIVNM
|
---|
42 | S PSUMSG(3)=" "
|
---|
43 | S PSUMSG(4)="Total of Drug/Supply Items: "_PSUITT
|
---|
44 | S PSUMSG(5)="Total Cost: $ "_PSUTC
|
---|
45 | S PSUMSG(6)=" "
|
---|
46 | S X=PSUDIV,DIC=40.8,DIC(0)="X",D="C" D IX^DIC ;**1
|
---|
47 | S X=+Y S PSUDIVNM=$$VAL^PSUTL(40.8,X,.01)
|
---|
48 | S XMSUB="V. 4.0 PBMPR "_$G(PSUMON)_" "_PSUDIV_" "_PSUDIVNM
|
---|
49 | Q:PSUDIV=0 ;Eliminate empty CoreFLS messages
|
---|
50 | S XMTEXT="PSUMSG("
|
---|
51 | S XMCHAN=1
|
---|
52 | M ^XTMP(PSUPRSUB,"REPORT1",PSUDIV)=PSUMSG
|
---|
53 | D ^XMD
|
---|
54 | K PSUMSG
|
---|
55 | ;
|
---|
56 | MSG2 ; SUMMARY BY DRUG
|
---|
57 | ; loop records stored
|
---|
58 | ; psunm - name, psudisp - disp unit, psutq - total quantity, psutc - total cost
|
---|
59 | S PSUREC=0,PSUDRNM=""
|
---|
60 | K ^XTMP(PSUPRSUB,"DRUG")
|
---|
61 | F S PSUREC=$O(^XTMP(PSUPRSUB,"RECORDS",PSUDIV,PSUREC)) Q:PSUREC'>0 S X=^(PSUREC) D
|
---|
62 | . S PSUNM=$P(X,U,8),PSUTQ=$P(X,U,17),PSUTC=$P(X,U,19),PSUDISP=$P(X,U,12)
|
---|
63 | . S:PSUNM="" PSUNM=$P(X,U,7)
|
---|
64 | . S PSUNM=$E(PSUNM,1,30)
|
---|
65 | . I '$L(PSUNM) Q
|
---|
66 | . S ^XTMP(PSUPRSUB,"DRUG",PSUNM)=""
|
---|
67 | . S ^XTMP(PSUPRSUB,"DRUG",PSUNM,"TQ")=$G(^XTMP(PSUPRSUB,"DRUG",PSUNM,"TQ"))+PSUTQ
|
---|
68 | . S ^XTMP(PSUPRSUB,"DRUG",PSUNM,"TC")=$G(^XTMP(PSUPRSUB,"DRUG",PSUNM,"TC"))+PSUTC
|
---|
69 | . S ^XTMP(PSUPRSUB,"DRUG",PSUNM,"DISP")=PSUDISP
|
---|
70 | ;
|
---|
71 | ;
|
---|
72 | S PSUG="^XTMP(PSUPRSUB,""REPORT2"",PSUDIV)"
|
---|
73 | K @PSUG
|
---|
74 | S @PSUG@(1)=" Procurement Data Summary"
|
---|
75 | S @PSUG@(2)=" "_PSUDTS_" through "_PSUDTE_" for "_PSUDIVNM
|
---|
76 | S @PSUG@(3)=" "
|
---|
77 | S X="",X=$$SETSTR^VALM1("Dispense",X,53,8),X=$$SETSTR^VALM1("Total",X,63,5),X=$$SETSTR^VALM1("Total",X,73,5)
|
---|
78 | S @PSUG@(4)=X
|
---|
79 | S X="Drug/Supply Name",X=$$SETSTR^VALM1("Unit",X,53,4),X=$$SETSTR^VALM1("Qty",X,63,3),X=$$SETSTR^VALM1("Cost",X,73,4)
|
---|
80 | S @PSUG@(5)=X
|
---|
81 | S X="",$P(X,"-",79)=""
|
---|
82 | S @PSUG@(6)=X
|
---|
83 | S PSULC=6
|
---|
84 | N PSUNM,PSUDISP,PSUTQ,PSUTC,PSUTQT,PSUTCT
|
---|
85 | S (PSUTQT,PSUDISP,PSUTQ,PSUTC,PSUTCT)=0
|
---|
86 | ; loop drug names
|
---|
87 | S PSUNM=""
|
---|
88 | F S PSUNM=$O(^XTMP(PSUPRSUB,"DRUG",PSUNM)) Q:PSUNM="" S PSUTQ=^XTMP(PSUPRSUB,"DRUG",PSUNM,"TQ"),PSUTC=^("TC"),PSUDISP=^("DISP") D
|
---|
89 | . S PSULC=PSULC+1
|
---|
90 | . S PSUTQT=$G(PSUTQT)+PSUTQ,PSUTCT=$G(PSUTCT)+PSUTC
|
---|
91 | . S X=$E(PSUNM,1,50)
|
---|
92 | . S X=$$SETSTR^VALM1(PSUDISP,X,53,$L(PSUDISP))
|
---|
93 | . S X=$$SETSTR^VALM1($J(PSUTQ,6,0),X,62,6)
|
---|
94 | . S X=$$SETSTR^VALM1($J(PSUTC,8,2),X,70,8)
|
---|
95 | . S @PSUG@(PSULC)=X
|
---|
96 | ;
|
---|
97 | S X="",$P(X,"-",79)=""
|
---|
98 | S PSULC=PSULC+1
|
---|
99 | S @PSUG@(PSULC)=X
|
---|
100 | S X="Total",X=$$SETSTR^VALM1($J(PSUTQT,6,0),X,62,6),X=$$SETSTR^VALM1($J(PSUTCT,8,2),X,70,8)
|
---|
101 | S PSULC=PSULC+1
|
---|
102 | S @PSUG@(PSULC)=X
|
---|
103 | S @PSUG@(PSULC+1)=" "
|
---|
104 | S XMSUB="V. 4.0 PBMPR "_$G(PSUMON)_" "_PSUDIV_" "_PSUDIVNM
|
---|
105 | S XMTEXT="^XTMP(PSUPRSUB,""REPORT2"",PSUDIV,"
|
---|
106 | S XMCHAN=1
|
---|
107 | M XMY=PSUXMYS2
|
---|
108 | I '$G(PSUSMRY) D ^XMD
|
---|
109 | Q
|
---|
110 | NODATA ;EP SEND NO DATA MESSAGE
|
---|
111 | S XMDUZ=DUZ
|
---|
112 | M XMY=PSUXMYS1
|
---|
113 | ;
|
---|
114 | S PSUDIV=PSUSNDR
|
---|
115 | S X=PSUDIV,DIC=40.8,DIC(0)="X",D="C" D IX^DIC ;**1
|
---|
116 | S X=+Y S PSUDIVNM=$$VAL^PSUTL(40.8,X,.01)
|
---|
117 | S Y=PSUSDT X ^DD("DD") S PSUDTS=Y ; start date
|
---|
118 | S Y=PSUEDT X ^DD("DD") S PSUDTE=Y ; end date
|
---|
119 | S XMSUB="V. 4.0 PBMPR "_$G(PSUMON)_" "_PSUDIV_" "_PSUDIVNM
|
---|
120 | S XMTEXT="^XTMP(PSUPRSUB,""REPORT2"",PSUDIV,"
|
---|
121 | S XMCHAN=1
|
---|
122 | K X
|
---|
123 | S X(1)=" Procurement Statistical Summary"
|
---|
124 | S X(2)=" "_PSUDTS_" through "_PSUDTE_" for "_PSUDIVNM
|
---|
125 | S X(3)=" "
|
---|
126 | S X(4)="No data to report"
|
---|
127 | S X(5)=" "
|
---|
128 | M ^XTMP(PSUPRSUB,"REPORT1",PSUDIV)=X
|
---|
129 | S XMTEXT="X("
|
---|
130 | S:$G(PSUDUZ) XMY(PSUDUZ)=""
|
---|
131 | D ^XMD
|
---|
132 | S X(1)=" Procurement Data Summary"
|
---|
133 | M ^XTMP(PSUPRSUB,"REPORT2",PSUDIV)=X ;store for print cycle
|
---|
134 | Q
|
---|