1 | PSXSUDCN ;BIR/HTW-Routine to Provide Report of Rx's Suspended for CMOP ; 31 Oct 2000 1:20 PM
|
---|
2 | ;;2.0;CMOP;**31**;11 Apr 97
|
---|
3 | ; External reference to ^PS(52.5 supported by DBIA #1222
|
---|
4 | ; External reference to ^PS(59 supported by DBIA #1976
|
---|
5 | ;
|
---|
6 | BEGDATE ;GET BEGIN DATE
|
---|
7 | K DIR
|
---|
8 | W !,"Rx's Suspended for CMOP",!
|
---|
9 | S DIR(0)="DO",DIR("A")="ENTER BEGINNING DATE " D ^DIR K DIR
|
---|
10 | G:($G(Y)="")!($D(DIRUT)) END1
|
---|
11 | S PSXB=Y
|
---|
12 | ENDDATE ;GET ENDING DATE
|
---|
13 | K DIR,X,Y
|
---|
14 | S Y=DT X ^DD("DD") S DIR("B")=Y
|
---|
15 | S DIR(0)="DO",DIR("A")="ENTER ENDING DATE" D ^DIR K DIR
|
---|
16 | I $G(Y)="" G BEGDATE
|
---|
17 | Q:$D(DTOUT) I $D(DUOUT) G BEGDATE
|
---|
18 | S PSXE=Y
|
---|
19 | I PSXE<PSXB W !,"Ending date must follow beginning date!" G ENDDATE
|
---|
20 | ; select division(s)
|
---|
21 | D SEL
|
---|
22 | I '$D(DIVNM) D END1,EXIT Q
|
---|
23 | ;
|
---|
24 | DEVICE W !! S %ZIS="MQ",%ZIS("A")="Select Printer: ",%ZIS("B")=""
|
---|
25 | D ^%ZIS G:POP END1 S PSXLAP=ION
|
---|
26 | I IOST["C-" G EN1
|
---|
27 | I '$D(IO("Q")) G EN0
|
---|
28 | QUE S ZTSAVE("PSXB")="",ZTSAVE("PSXE")="",ZTSAVE("DIVDA(")="",ZTSAVE("DIVNM(")="",ZTIO=PSXLAP
|
---|
29 | S ZTRTN="EN1^PSXSUDCN"
|
---|
30 | S ZTDESC="CMOP Count of Suspended CMOP Rx's by Day"
|
---|
31 | D ^%ZTLOAD
|
---|
32 | Q1 W:$D(ZTSK) !!,"Report Queued to Print!! ",ZTSK,!
|
---|
33 | K DIR,PSXB,PSXE,Y D ^%ZISC
|
---|
34 | D EXIT
|
---|
35 | Q
|
---|
36 | EN0 U IO
|
---|
37 | ;Called by Taskman to run CMOP Rx's by day report
|
---|
38 | EN1 ;
|
---|
39 | S:$D(ZTQUEUED) ZTREQ="@"
|
---|
40 | DIVISION ;
|
---|
41 | S DIV=0 F Q:$G(PSXFLAG)=1 S DIV=$O(DIVDA(DIV)) Q:DIV'>0 D ONEDIV
|
---|
42 | D GRNDSUM
|
---|
43 | G EXIT
|
---|
44 | ;
|
---|
45 | ONEDIV ;
|
---|
46 | S LINE="W ! F I=1:1:80 W ""=""",CT=0
|
---|
47 | S Y=PSXB X ^DD("DD") S PSXBE=Y
|
---|
48 | S Y=PSXE X ^DD("DD") S PSXEE=Y
|
---|
49 | S (PSXQ,PSXL,PSXAX,PSXP,PSXTOT)=0
|
---|
50 | S PSXD=PSXB-.00001,PSXTE=PSXE+.99999
|
---|
51 | D HEADER S CT=8
|
---|
52 | F Q:$G(PSXFLAG)=1 S PSXD=$O(^PS(52.5,"C",PSXD)) Q:'PSXD!(PSXD>PSXTE) D 525,BODY Q:$G(ANS)="^"
|
---|
53 | G END
|
---|
54 | 525 Q:$G(PSXFLAG)=1
|
---|
55 | F PSX525=0:0 Q:$G(PSXFLAG)=1 S PSX525=$O(^PS(52.5,"C",PSXD,PSX525)) Q:'PSX525 I $D(^PS(52.5,PSX525,0)) D
|
---|
56 | .S DIVRX=$P(^PS(52.5,PSX525,0),U,6) Q:DIVRX'=DIV
|
---|
57 | .S N=$P($G(^PS(52.5,PSX525,0)),"^",7) I N]"" D
|
---|
58 | ..S:N="Q" PSXQ=PSXQ+1
|
---|
59 | ..I N="L"!(N="X")!(N="R") S PSXAX=PSXAX+1
|
---|
60 | ..S:N="P" PSXP=PSXP+1
|
---|
61 | ..S PSXTOT=PSXTOT+1
|
---|
62 | Q
|
---|
63 | HEADER D NOW^%DTC S Y=% X ^DD("DD") S PSXNOW=Y
|
---|
64 | HDR1 I IOST["C-" W @IOF
|
---|
65 | W !,?20,"COUNT OF SUSPENDED CMOP RX's BY DAY"
|
---|
66 | W !,DIVDA(DIV)
|
---|
67 | W !,"FROM: "_PSXBE," TO: "_$P(PSXEE,"@")," PRINTED: ",PSXNOW
|
---|
68 | X LINE
|
---|
69 | H1 W !,"DATE",?14,"QUEUED",?29,"TRANSMITTED",?47,"PRINTED",?62,"TOTAL"
|
---|
70 | S A=15-($L($G(PSXQ))\2),B=35-($L($G(PSXAX))\2),C=49-($L($G(PSXP))\2),D=62-($L($G(PSXTOT))\2)
|
---|
71 | X LINE
|
---|
72 | Q
|
---|
73 | BODY ;
|
---|
74 | Q:$G(PSXFLAG)=1
|
---|
75 | I IOST["C-",(CT>20) D PAGE Q:$G(ANS)="^" W @IOF S CT=0 D HDR1 G B1
|
---|
76 | I $G(CT)>56 S CT=0 W @IOF D HEADER
|
---|
77 | B1 S Y=PSXD X ^DD("DD") S XDATE=$P(Y,","),CT=CT+1
|
---|
78 | W !,XDATE,?A,$J($G(PSXQ),5),?B,$J($G(PSXAX),5),?C,$J($G(PSXP),5),?D,$J($G(PSXTOT),5)
|
---|
79 | S PSXQGD=$G(PSXQGD)+PSXQ,PSXAXGD=$G(PSXAXGD)+PSXAX,PSXPGD=$G(PSXPGD)+PSXP,PSXTOTGD=$G(PSXTOTGD)+PSXTOT
|
---|
80 | S (PSXQ,PSXAX,PSXP,PSXTOT)=0 K XDATE
|
---|
81 | Q
|
---|
82 | PAGE Q:$G(PSXFLAG)=1
|
---|
83 | K DIR S DIR(0)="FO",DIR("A")="Press RETURN to continue or ""^"" to exit" D ^DIR S:$D(DTOUT)!($D(DUOUT)) (ANS)="^",PSXFLAG=1
|
---|
84 | Q
|
---|
85 | END Q:$G(PSXFLAG)=1
|
---|
86 | X LINE W !,"Division Total",?A,$J($G(PSXQGD),5),?B,$J($G(PSXAXGD),5),?C,$J($G(PSXPGD),5),?D,$J($G(PSXTOTGD),5)
|
---|
87 | F X="PSXQGD","PSXAXGD","PSXPGD","PSXTOTGD" S DIVTOT(DIV,X)=$G(@X)
|
---|
88 | I IOST["C-" D PAGE
|
---|
89 | I IOST'["C-" W @IOF
|
---|
90 | END1 K DIR,X,Y,%,PSXD,PSXF,PSXQ,PSXL,PSXP,PSXAX,PSXTOT,PSXUNREL
|
---|
91 | K PSXAD,PSXOT,PSXR,I,PSXZ,FILL,STAT,NODE,POP,PSXGO
|
---|
92 | K PSXLAP,PSXNOW,PSXYES,ZTDESC,ZTIO,ZTRTN,ZTSAVE,PSXMW,PSXM,PSXW
|
---|
93 | K A,B,D,E,PSXCR,PSXCU,PSXFILL,PSXSUSDT,PSXX,ZTSK
|
---|
94 | K N,PSX525,PSXMT,PSXWT,C,CT,DIRUT,DIROUT,DTOUT,DUOUT,J,ANS,PSXQGD,PSXAXGD,PSXPGD,PSXTOTGD
|
---|
95 | Q
|
---|
96 | EXIT ;
|
---|
97 | D ^%ZISC
|
---|
98 | K PSXB,PSXE,LINE,PSXBE,PSXEE,PSXTE,DIVNM,DIVDA,DIV,DIVRX,DIVTOT,PSXFLAG D END1
|
---|
99 | Q
|
---|
100 | SEL ;Select divisions
|
---|
101 | ; returns arrays
|
---|
102 | ; DIVNM("names of divisions")=selection number
|
---|
103 | ; DIVDA("iens of divisions")=name of division
|
---|
104 | ; for testing
|
---|
105 | W !!,"SELECTION OF DIVISION(S)",!
|
---|
106 | S DIV="" K DIVNM,DIVDA,DIVX
|
---|
107 | F I=1:1 S DIV=$O(^PS(59,"B",DIV)) Q:DIV="" S DIVNM(I)=DIV,DIVNM(DIV)=I,DIVDA=$O(^PS(59,"B",DIV,0)),DIVNM(I,"I")=DIVDA
|
---|
108 | S I=I-1
|
---|
109 | K DIR S DIR(0)="S^A:ALL DIVISIONS;S:SELECT DIVISIONS"
|
---|
110 | D ^DIR K DIR
|
---|
111 | G:Y="A" ALL
|
---|
112 | G:Y="S" SELECT
|
---|
113 | Q
|
---|
114 | SELECT ;
|
---|
115 | F C=1:1:I S DIR("A",C)=C_" "_DIVNM(C)
|
---|
116 | S DIR(0)="LO^1:"_I,DIR("A")="Select Division(s) "
|
---|
117 | D ^DIR
|
---|
118 | I '+Y K DIVNM Q
|
---|
119 | M DIVX=DIVNM K DIVNM
|
---|
120 | F I=1:1 S X=$P(Y,",",I) Q:'X M DIVNM(X)=DIVX(X) S DIVNM=DIVX(X),DIVNM(DIVNM)=X
|
---|
121 | K DIVX,DIR
|
---|
122 | ALL W !!,"You have selected:",! S DIV=0 F S DIV=$O(DIVNM(DIV)) Q:'DIV W !,DIV,?5,DIVNM(DIV)
|
---|
123 | S DIR(0)="Y",DIR("A")="Is this corrrect ? ",DIR("B")="YES" D ^DIR
|
---|
124 | K DIR
|
---|
125 | I Y D Q
|
---|
126 | .K DIVDA
|
---|
127 | .S DIV=0 F S DIV=$O(DIVNM(DIV)) Q:'DIV S DA=DIVNM(DIV,"I"),DIVDA(DA)=DIVNM(DIV) K DIVNM(DIV)
|
---|
128 | G SEL
|
---|
129 | ;
|
---|
130 | GRNDSUM ;
|
---|
131 | Q:$G(PSXFLAG)=1
|
---|
132 | S DIV=0,DIVDA(0)=" GRAND TOTAL SUMMARY"
|
---|
133 | D HEADER
|
---|
134 | K DIVTOT(0)
|
---|
135 | F S DIV=$O(DIVDA(DIV)) Q:DIV'>0 D
|
---|
136 | . W !,DIVDA(DIV)
|
---|
137 | . F X="PSXQGD","PSXAXGD","PSXPGD","PSXTOTGD" S @X=DIVTOT(DIV,X),DIVTOT(0,X)=$G(DIVTOT(0,X))+@X
|
---|
138 | . W !,?A,$J($G(PSXQGD),5),?B,$J($G(PSXAXGD),5),?C,$J($G(PSXPGD),5),?D,$J($G(PSXTOTGD),5)
|
---|
139 | F X="PSXQGD","PSXAXGD","PSXPGD","PSXTOTGD" S @X=DIVTOT(0,X)
|
---|
140 | X LINE
|
---|
141 | W !,"Grand Total",?A,$J($G(PSXQGD),5),?B,$J($G(PSXAXGD),5),?C,$J($G(PSXPGD),5),?D,$J($G(PSXTOTGD),5)
|
---|
142 | Q
|
---|