1 | PSXUNREL ;BIR/WPB-Report of Rx's Not Released by the Vendor ;29 Jun 2001 2:34 PM
|
---|
2 | ;;2.0;CMOP;**23,28,34,38**;11 Apr 97
|
---|
3 | ;Reference to CMOP^PSNAPIS supported by DBIA #2574
|
---|
4 | EN I '$D(^PSX(552.4,"AR")) W !,"All Rx's have been released." Q
|
---|
5 | D EX
|
---|
6 | S DIC=552.1,DIC(0)="AEQMZ",DIC("A")="Select CMOP Batch # or RETURN for all: "
|
---|
7 | D ^DIC K DIC I $D(DUOUT)!($D(DTOUT))!(X["^") G EX
|
---|
8 | K DIRUT,DTOUT
|
---|
9 | S:+Y>0 PSXBEG=+Y K Y,X
|
---|
10 | S PSXANS=""
|
---|
11 | I $G(PSXBEG) G DEV
|
---|
12 | Q1 S DIR(0)="S^C:Controlled Subs;N:Non-Controlled Subs;B:Both",DIR("?")="Enter ""C"" to report controlled substances, ""N"" for non-controlled substances or ""B"" to include both."
|
---|
13 | D ^DIR K DIR S PSXANS=$G(Y) I $D(DIRUT) K Y,X D EX G EN
|
---|
14 | D DATE Q:$G(STOP)
|
---|
15 | DEV S %ZIS="Q",%ZIS("B")="HOME" D ^%ZIS S PSXLION=ION,PGL=($G(IOSL)-2) I POP W !,"NO DEVICE SELECTED" G EX
|
---|
16 | I $D(IO("Q")) D QUE,EX Q
|
---|
17 | G:$G(PSXBEG)>0 JOB
|
---|
18 | D JOBA,EX
|
---|
19 | Q
|
---|
20 | DATE ;DATE SECTION
|
---|
21 | K STOP
|
---|
22 | S %DT="AEXT",%DT("A")="Enter to BEGIN SUMMARY: ",%DT(0)="-DT",%DT("B")="TODAY"
|
---|
23 | D ^%DT K %DT("A")
|
---|
24 | I Y<0!($D(DTOUT)) S STOP=1 Q
|
---|
25 | S START=Y
|
---|
26 | S %DT("A")="Enter date to END SUMMARY: ",%DT(0)="-DT",%DT("B")="TODAY" D ^%DT
|
---|
27 | K %DT
|
---|
28 | I Y<0!($D(DTOUT)) S STOP=1 Q
|
---|
29 | S END=Y\1+.24
|
---|
30 | I END<START W !,"Ending date must follow starting date!" G DATE
|
---|
31 | DIVISION ;
|
---|
32 | S ZZFAC1=0,DIC=552,DIC(0)="AEQMZ",DIC("A")="Select FACILITY or RETURN for all: "
|
---|
33 | D ^DIC K DIC I $D(DUOUT)!($D(DTOUT))!(X["^") G EX
|
---|
34 | S:$G(Y)'>0 ALL=1,FAC1=0 Q:$G(Y)'>0
|
---|
35 | I +Y>0 S ZZFAC1=$$GET1^DIQ(552,+Y,5)
|
---|
36 | ; getting site/divnum
|
---|
37 | I ZZFAC1'>0 S XX=$P(Y,U,2)_",",ZZFAC1=$$GET1^DIQ(4,XX,99)
|
---|
38 | K Y,X,DIC,DUOUT,DTOUT
|
---|
39 | Q
|
---|
40 | QUE S ZTRTN=$S($G(PSXBEG)>0:"JOB^PSXUNREL",$G(PSXBEG)="":"JOBA^PSXUNREL",1:""),ZTDESC="CMOP Unreleased Rx Report",ZTIO=PSXLION
|
---|
41 | F X="PSXBEG","PGL","PSXANS","START","END","ZZFAC1" S ZTSAVE(X)=""
|
---|
42 | D ^%ZTLOAD
|
---|
43 | I $D(ZTSK)[0 W !!,"Job Canceled"
|
---|
44 | E W !!,"Job Queued"
|
---|
45 | Q
|
---|
46 | ;Called by Taskman to run Report of Rx's not released by Vendor
|
---|
47 | JOB S:$D(ZTQUEUED) ZTREQ="@"
|
---|
48 | I '$D(ZTQUEUED) U IO
|
---|
49 | I $G(PSXBEG) S RC5=$O(^PSX(552.4,"B",PSXBEG,"")),REC5=$P(^PSX(552.4,RC5,0),"^",1),REC5=REC5-1,PSXEND=REC5+1 D JOB1 G:$G(STOP) EX
|
---|
50 | I $G(IOST)["C-" S DIR(0)="E",DIR("A")="<CR> - CONTINUE" D ^DIR G EX
|
---|
51 | G EX
|
---|
52 | Q
|
---|
53 | ;Called by Taskman to run Report of Rx's not released by Vendor
|
---|
54 | ; information stored for printing
|
---|
55 | ; S ^TMP($J,"PSX",BAT)=ATM_U_TDTM_U_REC5
|
---|
56 | ; S ^TMP($J,"PSX",BAT,"TYP")=PSXTYP
|
---|
57 | ; S ^TMP($J,"PSX",BAT,ORDER,RX,FILL)=VAPRT_U_DRGID
|
---|
58 | ;
|
---|
59 | JOBA S REC5=0,PSXEND=999999999
|
---|
60 | S:$D(ZTQUEUED) ZTREQ="@"
|
---|
61 | I '$D(ZTQUEUED) U IO
|
---|
62 | JOB1 ;(515,"AR",IEN514,RXN)
|
---|
63 | K ^TMP($J,"PSX")
|
---|
64 | S $P(LINE,"-",IOM-1)=""
|
---|
65 | F S REC5=$O(^PSX(552.4,"AR",REC5)) Q:REC5'>0!(REC5>PSXEND) D
|
---|
66 | .I '$D(^PSX(552.1,REC5)) Q
|
---|
67 | .I $D(START) I START'=0 S ZZCHKDT=$P(^PSX(552.1,REC5,0),U,6) Q:((ZZCHKDT<START)!(ZZCHKDT>END))
|
---|
68 | .I $D(ZZFAC1) I ZZFAC1>0 Q:ZZFAC1'=$P(^PSX(552.1,REC5,0),"-")
|
---|
69 | .S ATM=$P($G(^PSX(552.1,REC5,0)),U,6) Q:$G(ATM)']""
|
---|
70 | .S BAT=$P(^PSX(552.1,REC5,0),U,1)
|
---|
71 | .S TDTM=$P(^PSX(552.1,REC5,0),U,3),REC4=$O(^PSX(552.4,"B",REC5,""))
|
---|
72 | .S ^TMP($J,"PSX",BAT)=ATM_U_TDTM_U_REC5
|
---|
73 | .S RX="" F S RX=$O(^PSX(552.4,"AR",REC5,RX)) Q:RX="" D JOB2
|
---|
74 | .I '$D(^TMP($J,"PSX",BAT,"TYP")) K ^TMP($J,"PSX",BAT)
|
---|
75 | .S:$D(DIRUT) REC5=99999999999999
|
---|
76 | D JOB3
|
---|
77 | K REC,PSXEND,PSXBEG,AREC,BAT,TDTM,ATM,OLDBAT,RECD,DRGID,FILL
|
---|
78 | K SITEN,ST,SITE,PHAR,LCNT,LINE,REC4,REC5,RC5,DIRUT,RX
|
---|
79 | Q
|
---|
80 | JOB2 ;store information
|
---|
81 | S RECD=$O(^PSX(552.4,REC4,1,"B",RX,"")) Q:$G(RECD)=""
|
---|
82 | S PSXTYP=$P($G(^PSX(552.4,REC4,1,RECD,0)),U,14)
|
---|
83 | I $G(PSXANS)="N",PSXTYP=1 Q
|
---|
84 | I $G(PSXANS)="C",PSXTYP="" Q
|
---|
85 | Q:$D(DIRUT)
|
---|
86 | S DRGID=$P(^PSX(552.4,REC4,1,RECD,0),U,4),(NDFPTR,VAPRT)=""
|
---|
87 | D ORDNUM
|
---|
88 | S ORDER=$S($L(CORDER(1)):CORDER(1),1:"NONE")
|
---|
89 | I $G(DRGID)]"" S VAPRT=$$CMOP^PSNAPIS(DRGID)
|
---|
90 | S FILL=$P(^PSX(552.4,REC4,1,RECD,0),U,12)
|
---|
91 | S VAPRT=$G(VAPRT)
|
---|
92 | S ^TMP($J,"PSX",BAT,ORDER,RX,FILL)=VAPRT_U_DRGID
|
---|
93 | I $G(^TMP($J,"PSX",BAT,"TYP")) Q
|
---|
94 | S ^TMP($J,"PSX",BAT,"TYP")=PSXTYP
|
---|
95 | Q
|
---|
96 | JOB3 ;Print records from ^TMP
|
---|
97 | K STOP
|
---|
98 | I '$D(^TMP($J,"PSX")) D G EX
|
---|
99 | .W @IOF,!!,?15,"NO UNRELEASED DATA TO PRINT",!!
|
---|
100 | . I $E(IOST)="C" S DIR(0)="E",DIR("A")="<cr> - continue" D ^DIR K DIR
|
---|
101 | S BAT="" F S BAT=$O(^TMP($J,"PSX",BAT)) Q:BAT="" S ZN=^(BAT) D Q:$G(STOP)
|
---|
102 | . S ATM=$P(ZN,U),TDTM=$P(ZN,U,2),REC5=$P(ZN,U,3)
|
---|
103 | . D HDR,ORDER,PG1
|
---|
104 | Q
|
---|
105 | ORDER ;Print by order,rx,fill
|
---|
106 | S ORDER=""
|
---|
107 | F S ORDER=$O(^TMP($J,"PSX",BAT,ORDER)) Q:ORDER="" S RX="" D Q:$G(STOP)
|
---|
108 | . F S RX=$O(^TMP($J,"PSX",BAT,ORDER,RX)) Q:RX="" S FILL="" D Q:$G(STOP)
|
---|
109 | ..F S FILL=$O(^TMP($J,"PSX",BAT,ORDER,RX,FILL)) Q:FILL="" S ZN=^(FILL) D Q:$G(STOP)
|
---|
110 | ... S VAPRT=$P(ZN,U),DRGID=$P(ZN,U,2)
|
---|
111 | ... W !,ORDER,?18,RX,?28,FILL,?33,$E($G(VAPRT),1,35),?70,DRGID
|
---|
112 | ... D PG
|
---|
113 | Q
|
---|
114 | ORDNUM ;Return Order Number
|
---|
115 | K CORDER
|
---|
116 | S CORDER=BAT,CORDER(1)=""
|
---|
117 | F S CORDER=$O(^PSX(552.2,"B",CORDER)) D Q:((CORDER="")!(CORDER(1)'=""))
|
---|
118 | .I $P(CORDER,"-",1,2)'=BAT S CORDER="" Q
|
---|
119 | .S ZZNODE=$O(^PSX(552.2,"B",CORDER,0)) Q:ZZNODE<1
|
---|
120 | .S:$D(^PSX(552.2,"AC",ZZNODE,RX)) CORDER(1)=CORDER
|
---|
121 | Q
|
---|
122 | HDR W @IOF
|
---|
123 | D NOW^%DTC
|
---|
124 | S SITEN=+BAT
|
---|
125 | ;N X,Y S DIC=4,DIC(0)="MNZ",X=SITEN S:$D(^PSX(552,"D",X)) X=$E(X,2,99) D ^DIC S SITE=$S($G(Y)]"":$P(Y,"^",2),1:"UNKNOWN") K X,Y,DIC ;****DOD L1
|
---|
126 | N X,Y S X=SITEN,AGNCY="VASTANUM" S:$D(^PSX(552,"D",X)) AGNCY="DMIS",X=$E(X,2,99) S SITE=$$IEN^XUMF(4,AGNCY,X),SITE=$S($G(SITE)]"":$$NAME^XUAF4(SITE),1:"UNKNOWN") K X,Y,AGNCY ;****DOD L1
|
---|
127 | S PHAR=$P(^PSX(552.1,REC5,"P"),U,1)
|
---|
128 | S PSXTYP=^TMP($J,"PSX",BAT,"TYP")
|
---|
129 | S PSXTYP=$S(+PSXTYP:"Controlled Substance",1:"Non-Controlled Substance")
|
---|
130 | W !,?15,"Report of Unreleased Rxs for Transmission ",BAT
|
---|
131 | W !,?23,"Printed : ",$$FMTE^XLFDT(%,"1P"),!
|
---|
132 | W !,"Facility: ",SITE,?41,"Pharmacy Division: ",PHAR
|
---|
133 | W !,"Transmitted: ",$$FMTE^XLFDT(TDTM,"1P"),?41,"Received: ",$$FMTE^XLFDT(ATM,"1P")
|
---|
134 | W !,"Batch Type: ",PSXTYP,!!
|
---|
135 | W "ORDER #",?18,"RX NUMBER",?28,"FILL",?33,"DRUG NAME",?70,"DRUG ID",!,LINE
|
---|
136 | W !
|
---|
137 | Q
|
---|
138 | PG ;line handler
|
---|
139 | I (($Y+3)<IOSL) Q
|
---|
140 | I $G(IOST)["P-" D HDR Q
|
---|
141 | S DIR(0)="E" D ^DIR K DIR,DIR(0) S:$D(DIRUT) STOP=1
|
---|
142 | K DIROUT,DTOUT,DUOUT,DIRUT
|
---|
143 | D:'$G(STOP) HDR
|
---|
144 | Q
|
---|
145 | PG1 ;
|
---|
146 | I $E(IOST)'="C" Q
|
---|
147 | K DIR
|
---|
148 | S DIR(0)="E" D ^DIR K DIR,DIR(0) S:$D(DIRUT) STOP=1
|
---|
149 | K DIROUT,DTOUT,DUOUT,DIRUT
|
---|
150 | Q
|
---|
151 | EX ;
|
---|
152 | K LINE,PHAR,BAT,SITE,OLDBAT,REC,TDTM,SUB,RECD,DRGID,FILL,LCNT,RCD,%,SITEN,X,ST,ATM,%,%ZIS,PSXLION,ZTDESC,ZTIO,ZTRTN,ZTSAVE("PSXBEG"),ZTSK
|
---|
153 | K DUOUT,DTOUT,X,Y,RC5,REC4,DIROUT,DIR,DIR(0),ZTQUEUED,STOP,PSXANS,VAPRT,NDFPTR
|
---|
154 | K FAC1,START,END,PSXTYP,STOP,PSXBEG,CORDER
|
---|
155 | K ALL,ORDER,PGL,ZN,ZZCHKDT,ZZFAC,ZZNODE,ZZXC,ZZXX,ZZFAC1
|
---|
156 | K ^TMP($J,"PSX")
|
---|
157 | W @IOF
|
---|
158 | D ^%ZISC
|
---|
159 | Q
|
---|