1 | PSSDDUT2 ;BIR/LDT - Pharmacy Data Management DD Utility ; 8/21/07 8:43am
|
---|
2 | ;;1.0; PHARMACY DATA MANAGEMENT; **3,21,61,81,95,127,126**;9/30/97;Build 11
|
---|
3 | ;
|
---|
4 | ;Reference to ^DIC(42 supported by DBIA #10039
|
---|
5 | ;Reference to ^DD(59.723 supported by DBIA #2159
|
---|
6 | ;Reference to ^PSNDF(50.68 supported by DBIA 3735
|
---|
7 | ;
|
---|
8 | DEA ;(Replaces ^PSODEA)
|
---|
9 | S PSSHLP(1)="THE SPECIAL HANDLING CODE IS A 2 TO 6 POSTION FIELD. IF APPLICABLE,"
|
---|
10 | S PSSHLP(2)="A SCHEDULE CODE MUST APPEAR IN THE FIRST POSITION. FOR EXAMPLE,"
|
---|
11 | S PSSHLP(3)="A SCHEDULE 3 NARCOTIC WILL BE CODED '3A', A SCHEDULE 3 NON-NARCOTIC WILL BE"
|
---|
12 | S PSSHLP(4)="CODED '3C' AND A SCHEDULE 2 DEPRESSANT WILL BE CODED '2L'."
|
---|
13 | S PSSHLP(5)="THE CODES ARE:"
|
---|
14 | D WRITE
|
---|
15 | F II=1:1 Q:$P($T(D+II),";",3)="" S PSSHLP(II)=$P($T(D+II),";",3,99)
|
---|
16 | S PSSHLP(1,"F")="!!" D WRITE
|
---|
17 | D PKIND,WRITE
|
---|
18 | D K II Q
|
---|
19 | ;;0 MANUFACTURED IN PHARMACY
|
---|
20 | ;;1 SCHEDULE 1 ITEM
|
---|
21 | ;;2 SCHEDULE 2 ITEM
|
---|
22 | ;;3 SCHEDULE 3 ITEM
|
---|
23 | ;;4 SCHEDULE 4 ITEM
|
---|
24 | ;;5 SCHEDULE 5 ITEM
|
---|
25 | ;;6 LEGEND ITEM
|
---|
26 | ;;9 OVER-THE-COUNTER
|
---|
27 | ;;L DEPRESSANTS AND STIMULANTS
|
---|
28 | ;;A NARCOTICS AND ALCOHOLS
|
---|
29 | ;;P DATED DRUGS
|
---|
30 | ;;I INVESTIGATIONAL DRUGS
|
---|
31 | ;;M BULK COMPOUND ITEMS
|
---|
32 | ;;C CONTROLLED SUBSTANCES - NON NARCOTIC
|
---|
33 | ;;R RESTRICTED ITEMS
|
---|
34 | ;;S SUPPLY ITEMS
|
---|
35 | ;;B ALLOW REFILL (SCH. 3, 4, 5 ONLY)
|
---|
36 | ;;W NOT RENEWABLE
|
---|
37 | ;;F NON REFILLABLE
|
---|
38 | ;;E ELECTRONICALLY BILLABLE
|
---|
39 | ;;
|
---|
40 | DEATBL ; More Help regarding DEA Codes
|
---|
41 | K PSSHLP
|
---|
42 | F II=1:1 Q:$P($T(TBL+II),";",3)="" S PSSHLP(II)=$P($T(TBL+II),";",3,99)
|
---|
43 | S PSSHLP(1,"F")="!!" D WRITE
|
---|
44 | ;
|
---|
45 | TBL K II Q
|
---|
46 | ;; DEA CODE TABLE
|
---|
47 | ;; CODE ALLOW RENEWS ALLOW REFILLS
|
---|
48 | ;; 1 NO NO
|
---|
49 | ;; 2 NO NO
|
---|
50 | ;; 2A NO NO
|
---|
51 | ;; 3 YES YES
|
---|
52 | ;; 3A YES NO
|
---|
53 | ;; 3AB YES YES
|
---|
54 | ;; 4 YES YES
|
---|
55 | ;; 4A YES NO
|
---|
56 | ;; 4AB YES YES
|
---|
57 | ;; 5 YES YES
|
---|
58 | ;; 5A YES NO
|
---|
59 | ;; 5AB YES YES
|
---|
60 | ;; ADDING W TO A SCHED. 3,4,OR 5 CODE DISALLOWS RENEWS.
|
---|
61 | ;; ADDING F TO A SCHED. 3,4,OR 5 CODE DISALLOWS REFILLS
|
---|
62 | ;; IF A CODE IS NOT LISTED IN THE ABOVE TABLE
|
---|
63 | ;; IT HAS NO EFFECT ON RENEW OR REFILL
|
---|
64 | SIG ;checks SIG for RXs (Replaces SIG^PSOHELP)
|
---|
65 | I $E(X)=" " D EN^DDIOL("Leading spaces are not allowed in the SIG! ","","$C(7),!") K X Q
|
---|
66 | SIGONE S SIG="" Q:$L(X)<1 F Z0=1:1:$L(X," ") G:Z0="" EN S Z1=$P(X," ",Z0) D G:'$D(X) EN
|
---|
67 | .I $L(Z1)>32 D EN^DDIOL("MAX OF 32 CHARACTERS ALLOWED BETWEEN SPACES.","","$C(7),!?5") K X Q
|
---|
68 | .D:$D(X)&($G(Z1)]"") S SIG=SIG_" "_Z1
|
---|
69 | ..S Y=$O(^PS(51,"B",Z1,0)) Q:'Y!($P($G(^PS(51,+Y,0)),"^",4)>1) S Z1=$P(^PS(51,Y,0),"^",2) Q:'$D(^(9)) S Y=$P(X," ",Z0-1),Y=$E(Y,$L(Y)) S:Y>1 Z1=^(9)
|
---|
70 | EN K Z1,Z0 ;S:$G(POERR) PSOERR("SIG")="("_$E(SIG,2,999999999)_")"
|
---|
71 | Q
|
---|
72 | ;
|
---|
73 | DRUGW ;(Replaces DRUGW^PSOUTLA)
|
---|
74 | F Z0=1:1 Q:$P(X,",",Z0,99)="" S Z1=$P(X,",",Z0) D:$D(^PS(54,Z1,0)) EN^DDIOL($P(^(0),"^"),"","!,?35") I '$D(^(0)) D EN^DDIOL("NO SUCH WARNING LABEL","","?35") K X Q
|
---|
75 | Q
|
---|
76 | ;
|
---|
77 | P ;(Replaces ^PSODSRC)
|
---|
78 | S PSSHLP(1)="A TWO OR THREE POSITION CODE IDENTIFIES THE SOURCE OF SUPPLY AND WHETHER"
|
---|
79 | S PSSHLP(2)="THE DRUG IS STOCKED BY THE STATION SUPPLY DIVISION. THE FIRST"
|
---|
80 | S PSSHLP(3)="POSITION OF THE CODE IDENTIFIES SOURCE OF SUPPLY. THE CODES ARE:"
|
---|
81 | D WRITE
|
---|
82 | F II=0:1:10 S PSSHLP(II+1)=$P($T(S+II+1),";",3),PSSHLP(II+1,"F")="!?10"
|
---|
83 | S PSSHLP(1,"F")="!!?10"
|
---|
84 | D WRITE
|
---|
85 | S PSSHLP(1)="THE SECOND POSITION OF THE CODE INDICATES WHETHER THE ITEM IS"
|
---|
86 | S PSSHLP(2)="OR IS NOT AVAILABLE FROM SUPPLY WAREHOUSE STOCK. THE CODES ARE:"
|
---|
87 | S PSSHLP(3)="P POSTED STOCK"
|
---|
88 | S PSSHLP(3,"F")="!!?10"
|
---|
89 | S PSSHLP(4)="U UNPOSTED"
|
---|
90 | S PSSHLP(4,"F")="!?10"
|
---|
91 | S PSSHLP(5)="M BULK COMPOUND"
|
---|
92 | S PSSHLP(5,"F")="!?10"
|
---|
93 | S PSSHLP(6)="* USE CODE 0 ONLY WITH SECOND POSITION M."
|
---|
94 | D WRITE Q
|
---|
95 | ;
|
---|
96 | S ;;DESCRIPTION MEANINGS
|
---|
97 | ;;0 BULK COMPOUND ITEMS *
|
---|
98 | ;;1 VA SERVICING SUPPLY DEPOT
|
---|
99 | ;;2 OPEN MARKET
|
---|
100 | ;;3 GSA STORES DEPOT
|
---|
101 | ;;4 VA DECENTRALIZED CONTRACTS
|
---|
102 | ;;5 FEDERAL PRISON INDUSTRIES, INC.
|
---|
103 | ;;6 FEDERAL SUPPLY SCHEDULES
|
---|
104 | ;;7 VA SUPPLY DEPOT, HINES
|
---|
105 | ;;8 VA SUPPLY DEPOT, SOMERVILLE
|
---|
106 | ;;9 APPROPRIATE MARKETING DIVISION
|
---|
107 | ;;10 VA SUPPLY DEPOT, BELL
|
---|
108 | EDIT ;INPUT XFORM FOR DEA FIELD IN DRUG FILE (Replaces EDIT^PSODEA)
|
---|
109 | I X["F",X["B" D EN^DDIOL("Inappropriate F designation!","","$C(7),!") K X Q
|
---|
110 | ;;DEA CHANGE PSS*1*126
|
---|
111 | I X["B",(+X<3) D EN^DDIOL("The B designation is only valid for schedule 3, 4, 5 !","","$C(7),!") K X Q
|
---|
112 | I X["A"&(X["C"),+X=2!(+X=3) D EN^DDIOL("The A & C designation is not valid for schedule 2 or 3 narcotics !","","$C(7),!") K X Q
|
---|
113 | I $E(X)=1,X[2!(X[3)!(X[4)!(X[5) D EN^DDIOL("It contains other inappropriate schedule 2-5 narcotics!","","$C(7),!") K X Q
|
---|
114 | I $E(X)=2,X[1!(X[3)!(X[4)!(X[5) D EN^DDIOL("It contains other inappropriate schedule 1,3-5 narcotics!","","$C(7),!") K X Q
|
---|
115 | I $E(X)=3,X[1!(X[2)!(X[4)!(X[5) D EN^DDIOL("It contains other inappropriate schedule 1-2,4-5 narcotics!","","$C(7),!") K X Q
|
---|
116 | I $E(X)=4,X[1!(X[2)!(X[3)!(X[5) D EN^DDIOL("It contains other inappropriate schedule 1-3,5 narcotics!","","$C(7),!") K X Q
|
---|
117 | I $E(X)=5,X[1!(X[2)!(X[3)!(X[4) D EN^DDIOL("It contains other inappropriate schedule 1-4 narcotics!","","$C(7),!") K X Q
|
---|
118 | I $E(X)="E" D EN^DDIOL("Inappropriate E designation! Can only modify other codes.","","$C(7),!") K X Q
|
---|
119 | Q
|
---|
120 | ;
|
---|
121 | WRITE ;Calls EN^DDIOL to write text
|
---|
122 | D EN^DDIOL(.PSSHLP) K PSSHLP Q
|
---|
123 | Q
|
---|
124 | ;
|
---|
125 | PKIND I +$P($G(^PSDRUG(DA,"ND")),"^",3) S PSSK=$P(^("ND"),"^",3) D
|
---|
126 | .S PSSK=$$GET1^DIQ(50.68,PSSK,19,"I") I PSSK S PSSK=$$CSDEA^PSSDDUT2(PSSK) D
|
---|
127 | ..I $L(PSSK)=1,$P(^PSDRUG(DA,0),"^",3)[PSSK Q
|
---|
128 | ..I $P(^PSDRUG(DA,0),"^",3)[$E(PSSK),$P(^PSDRUG(DA,0),"^",3)[$E(PSSK,2) Q
|
---|
129 | ..W !!,"The CS Federal Schedule associated with this drug in the VA Product file"
|
---|
130 | ..W !,"represents a DEA, Special Handling code of "_PSSK
|
---|
131 | Q
|
---|
132 | ;
|
---|
133 | CSDEA(CS) ;
|
---|
134 | Q:'CS ""
|
---|
135 | Q $S(CS?1(1"2n",1"3n"):+CS_"C",+CS=2!(+CS=3)&(CS'["C"):+CS_"A",1:CS)
|
---|
136 | ;
|
---|
137 | CLOZ ;DEL node of DRUG file 50, fields 17.2, 17.3, 17.4
|
---|
138 | S PSSHLP(1)="To delete this field use the Unmark Clozapine Drug option in the"
|
---|
139 | S PSSHLP(2)="Clozapine Pharmacy Manager menu."
|
---|
140 | D WRITE
|
---|
141 | Q
|
---|
142 | ;
|
---|
143 | NONF ;Non-Formulary Input Transform DRUG file 50, field 51
|
---|
144 | S PSSHLP(1)="This drug cannot be marked as a non-formulary item because it is"
|
---|
145 | S PSSHLP(2)="designated as a formulary alternative for the following drugs."
|
---|
146 | S PSSHLP(3)=" ",PSSHLP(1,"F")="!!"
|
---|
147 | D WRITE
|
---|
148 | F MM=0:0 S MM=$O(^PSDRUG("AFA",DA,MM)) Q:'MM S SHEMP=$P(^PSDRUG(MM,0),"^") D EN^DDIOL(SHEMP,"","!?3")
|
---|
149 | S X=""
|
---|
150 | Q
|
---|
151 | ;
|
---|
152 | ATC ;Executable help for field 212.2, DRUG file 50
|
---|
153 | S PSSHLP(1)="The mnemonic entered here must match the mnemonic entered into the"
|
---|
154 | S PSSHLP(2)="ATC for this drug EXACTLY, and cannot be numbers only."
|
---|
155 | D WRITE
|
---|
156 | Q
|
---|
157 | ;
|
---|
158 | ADTM ;ADMINISTRATION SCHEDULE file 51.1, field 1 Executable Help
|
---|
159 | S PSSHLP(1)="ALL TIMES MUST BE THE SAME LENGTH (2 OR 4 CHARACTERS), MUST BE"
|
---|
160 | S PSSHLP(2)="SEPARATED BY DASHES ('-'), AND BE IN ASCENDING ORDER"
|
---|
161 | D WRITE
|
---|
162 | Q
|
---|
163 | ;
|
---|
164 | LBLS ;PHARMACY SYSTEM file 59.7, field 61.2 Executable Help
|
---|
165 | S PSSHLP(1)="ANY NEW LABELS OLDER THAN THE NUMBER OF DAYS SPECIFIED HERE WILL"
|
---|
166 | S PSSHLP(2)="AUTOMATICALLY BE PURGED."
|
---|
167 | D WRITE
|
---|
168 | Q
|
---|
169 | NFH I '$D(DA(1)) D EN^DDIOL(" (This non-formulary item is "_$P(^PSDRUG($S($D(DA(1)):DA(1),1:DA),0),"^")_".)")
|
---|
170 | Q
|
---|
171 | STRTH S STR=" "_$P(X," ",2),PSSHLP(1)=STR,PSSHLP(1,"F")="" D WRITE K STR
|
---|
172 | Q
|
---|
173 | PSYS1 D EN^DDIOL("(""From"" ward is "_$S('$D(^PS(59.7,D0,22,D1,0)):"UNKNOWN",'$D(^DIC(42,+^(0),0)):"UNKNOWN",$P(^(0),"^")]"":$P(^(0),"^"),1:"UNKNOWN")_")","","!?3")
|
---|
174 | Q
|
---|
175 | PSYS2 ;PSS*1.0*95
|
---|
176 | D EN^DDIOL("(""From"" service is "_$S('$D(^PS(59.7,D0,23,D1,0)):"UNKNOWN",$P(^(0),"^")]"":$P($P(";"_$P(^DD(59.723,.01,0),"^",3),";"_$P(^PS(59.7,D0,23,D1,0),"^")_":",2),";"),1:"UNKNOWN")_")")
|
---|
177 | Q
|
---|
178 | ;
|
---|
179 | NCINIT ;
|
---|
180 | K PSSNQM,PSSNQM2,PSSNQM3,PSSONDU,PSSONQM
|
---|
181 | NCINIT1 ;
|
---|
182 | I $P($G(^PSDRUG(DA,"EPH")),"^",2)="" S $P(^PSDRUG(DA,"EPH"),"^",2)="EA",$P(^PSDRUG(DA,"EPH"),"^",3)=1 D
|
---|
183 | . S PSSHLP(1)=" Note: Defaulting the NCPDP DISPENSE UNIT to EACH and the"
|
---|
184 | . S PSSHLP(2)=" NCPDP QUANTITY MULTIPLIER to 1 (one)." S PSSHLP(1,"F")="!!"
|
---|
185 | . D WRITE S PSSHLP(2,"F")="!" D WRITE
|
---|
186 | S PSSONDU=$P(^PSDRUG(DA,"EPH"),"^",2),PSSONQM=$P(^PSDRUG(DA,"EPH"),"^",3)
|
---|
187 | Q
|
---|
188 | ;
|
---|
189 | NCPDPDU ;Drug file 50, field 82
|
---|
190 | S:X="" X="EA"
|
---|
191 | D NCINIT1:'$D(PSSONDU)
|
---|
192 | I $G(PSSONDU)'=X&($G(PSSONQM)'=1) D
|
---|
193 | . S PSSHLP(1)="Defaulting the NCPDP QUANTITY MULTIPLIER to 1 (one)." S PSSHLP(1,"F")="!!" D WRITE
|
---|
194 | . S $P(^PSDRUG(DA,"EPH"),"^",3)=1,PSSONDU=$P(^PSDRUG(DA,"EPH"),"^",2),PSSONQM=$P(^PSDRUG(DA,"EPH"),"^",3)
|
---|
195 | Q
|
---|
196 | ;
|
---|
197 | NCPDPQM ;Drug file 50, field 83
|
---|
198 | N ZXX S PSSNQM=0,(PSSNQM2,PSSNQM3)=""
|
---|
199 | I $G(X)<.001 K X S PSSNQM3=1 Q
|
---|
200 | S:$G(X)="" X=1
|
---|
201 | I +$G(X)'=1 D NCPDPWRN D
|
---|
202 | NCPDPQM1 . ;
|
---|
203 | . R !,"Ok to continue? (Y/N) ",ZXX:30 S ZXX=$TR(ZXX,"yn","YN")
|
---|
204 | . I ZXX="^" S X=1 W !!?5,"Warning: Defaulting NCPDP QUANTITY MULTIPLIER to 1 (one).",!! Q
|
---|
205 | . I ZXX'="Y"&(ZXX'="N") W !,"Y or N must be entered." G NCPDPQM1
|
---|
206 | . I ZXX'="Y"&(ZXX'="y") S PSSNQM=1,PSSNQM2=X K X
|
---|
207 | Q
|
---|
208 | ;
|
---|
209 | NCPDPWRN ;
|
---|
210 | S PSSHLP(2)="WARNING: For most drug products, the value for this field should be 1 (one)."
|
---|
211 | S PSSHLP(3)=" Answering NO for the following prompt will display more information"
|
---|
212 | S PSSHLP(4)=" on how this field is used."
|
---|
213 | S PSSHLP(2,"F")="!!" D WRITE
|
---|
214 | S PSSHLP(5,"F")="!" D WRITE
|
---|
215 | Q
|
---|
216 | ;
|
---|