1 | PSOREJU2 ;BIRM/MFR - BPS (ECME) - Clinical Rejects Utilities (1) ;10/15/04
|
---|
2 | ;;7.0;OUTPATIENT PHARMACY;**148,260**;DEC 1997;Build 84
|
---|
3 | ;Reference to $$NABP^BPSBUTL supported by IA 4719
|
---|
4 | ;Reference to File 9002313.23 - BPS NCPDP REASON FOR SERVICE CODE supported by IA 4714
|
---|
5 | ;
|
---|
6 | GET(RX,RFL,REJDATA,REJID,OKCL,CODE) ;
|
---|
7 | ; Input: (r) RX - Rx IEN (#52)
|
---|
8 | ; (o) RFL - Refill # (Default: most recent)
|
---|
9 | ; (r) REJDATA(REJECT IEN,FIELD) - Array where these Reject fields will be returned:
|
---|
10 | ; "CODE" - Reject Code (79 or 88)
|
---|
11 | ; "DATE/TIME" - DATE/TIME Reject was detected
|
---|
12 | ; "PAYER MESSAGE" - Message returned by the payer
|
---|
13 | ; "REASON" - Reject Reason description (from payer)
|
---|
14 | ; "INSURANCE NAME" - Patient's Insurance Company Name
|
---|
15 | ; "GROUP NAME" - Patient's Insurance Group Name
|
---|
16 | ; "GROUP NUMBER" - Patient's Insurance Group Number
|
---|
17 | ; "CARDHOLDER ID" - Patient's Insurance Cardholder ID
|
---|
18 | ; "PLAN CONTACT" - Plan's Contact (eg., "1-800-...")
|
---|
19 | ; "PLAN PREVIOUS FILL DATE" - Last time Rx was paid by payer
|
---|
20 | ; "STATUS" - REJECTS status ("OPEN/UNRESOLVED" or "CLOSED/RESOLVED")
|
---|
21 | ; "DUR TEXT" - Payer's DUR description
|
---|
22 | ; "OTHER REJECTS" - Other Rejects on the same response
|
---|
23 | ; "REASON SVC CODE" - Reason for Service Code
|
---|
24 | ; If REJECT is closed, the following fields will be returned:
|
---|
25 | ; "CLA CODE" - Clarification Code submitted
|
---|
26 | ; "PRIOR AUTH TYPE" - Prior Authorization Type
|
---|
27 | ; "PRIOR AUTH NUMBER" - Prior Authorization Type
|
---|
28 | ; "CLOSED DATE/TIME" - DATE/TIME Reject was closed
|
---|
29 | ; "CLOSED BY" - Name of the user responsible for closing Reject
|
---|
30 | ; "CLOSE REASON" - Reason for closing Reject (text)
|
---|
31 | ; "CLOSE COMMENTS" - User entered comments at close
|
---|
32 | ; (o) REJID - REJECT IEN in the PRESCRIPTION file for retrieve this REJECT
|
---|
33 | ; (o) OKCL - If set to 1, CLOSED REJECTs will also be returned
|
---|
34 | ; (o) CODE - Only REJECTs with this CODE should be returned
|
---|
35 | ;
|
---|
36 | N REJS,ARRAY,REJFLD,IDX,COM,Z
|
---|
37 | ;
|
---|
38 | I '$D(RFL) S RFL=$$LSTRFL^PSOBPSU1(RX)
|
---|
39 | ;
|
---|
40 | K REJDATA
|
---|
41 | I '$O(^PSRX(RX,"REJ",0)) Q
|
---|
42 | ;
|
---|
43 | K REJS S RFL=+$G(RFL)
|
---|
44 | I $G(REJID) D
|
---|
45 | . I +$P($G(^PSRX(RX,"REJ",REJID,0)),"^",4)'=RFL Q
|
---|
46 | . I '$G(OKCL),$P($G(^PSRX(RX,"REJ",REJID,0)),"^",5) Q
|
---|
47 | . S REJS(REJID)=""
|
---|
48 | E D
|
---|
49 | . S IDX=999
|
---|
50 | . F S IDX=$O(^PSRX(RX,"REJ",IDX),-1) Q:'IDX D
|
---|
51 | . . I +$P($G(^PSRX(RX,"REJ",IDX,0)),"^",4)'=RFL Q
|
---|
52 | . . I '$G(OKCL),$P($G(^PSRX(RX,"REJ",IDX,0)),"^",5) Q
|
---|
53 | . . S REJS(IDX)=""
|
---|
54 | I '$D(REJS) Q
|
---|
55 | ;
|
---|
56 | S IDX=0
|
---|
57 | F S IDX=$O(REJS(IDX)) Q:'IDX D
|
---|
58 | . K ARRAY D GETS^DIQ(52.25,IDX_","_RX_",","*","","ARRAY")
|
---|
59 | . K REJFLD M REJFLD=ARRAY(52.25,IDX_","_RX_",")
|
---|
60 | . I $G(CODE),REJFLD(.01)'=CODE Q
|
---|
61 | . S REJDATA(IDX,"CODE")=$G(REJFLD(.01))
|
---|
62 | . S REJDATA(IDX,"DATE/TIME")=$G(REJFLD(1))
|
---|
63 | . S REJDATA(IDX,"PAYER MESSAGE")=$G(REJFLD(2))
|
---|
64 | . S REJDATA(IDX,"REASON")=$G(REJFLD(3))
|
---|
65 | . S REJDATA(IDX,"PHARMACIST")=$G(REJFLD(4))
|
---|
66 | . S REJDATA(IDX,"INSURANCE NAME")=$G(REJFLD(20))
|
---|
67 | . S REJDATA(IDX,"GROUP NAME")=$G(REJFLD(6))
|
---|
68 | . S REJDATA(IDX,"GROUP NUMBER")=$G(REJFLD(21))
|
---|
69 | . S REJDATA(IDX,"CARDHOLDER ID")=$G(REJFLD(22))
|
---|
70 | . S REJDATA(IDX,"PLAN CONTACT")=$G(REJFLD(7))
|
---|
71 | . S REJDATA(IDX,"PLAN PREVIOUS FILL DATE")=$G(REJFLD(8))
|
---|
72 | . S REJDATA(IDX,"STATUS")=$G(REJFLD(9))
|
---|
73 | . S REJDATA(IDX,"OTHER REJECTS")=$G(REJFLD(17))
|
---|
74 | . S REJDATA(IDX,"DUR TEXT")=$G(REJFLD(18))
|
---|
75 | . S REJDATA(IDX,"REASON SVC CODE")=$G(REJFLD(14))
|
---|
76 | . S REJDATA(IDX,"RESPONSE IEN")=$G(REJFLD(16))
|
---|
77 | . I '$G(OKCL) Q
|
---|
78 | . S REJDATA(IDX,"CLOSED DATE/TIME")=$G(REJFLD(10))
|
---|
79 | . S REJDATA(IDX,"CLOSED BY")=$G(REJFLD(11))
|
---|
80 | . S REJDATA(IDX,"CLOSE REASON")=$G(REJFLD(12))
|
---|
81 | . S REJDATA(IDX,"CLOSE COMMENTS")=$G(REJFLD(13))
|
---|
82 | . S REJDATA(IDX,"COD1")=$G(REJFLD(14))
|
---|
83 | . S REJDATA(IDX,"COD2")=$G(REJFLD(15))
|
---|
84 | . S REJDATA(IDX,"COD3")=$G(REJFLD(19))
|
---|
85 | . S REJDATA(IDX,"CLA CODE")=$G(REJFLD(24))
|
---|
86 | . S REJDATA(IDX,"PRIOR AUTH TYPE")=$G(REJFLD(25))
|
---|
87 | . S REJDATA(IDX,"PRIOR AUTH NUMBER")=$G(REJFLD(26))
|
---|
88 | . S COM=0 F S COM=$O(^PSRX(RX,"REJ",IDX,"COM",COM)) Q:'COM D
|
---|
89 | . . S Z=^PSRX(RX,"REJ",IDX,"COM",COM,0)
|
---|
90 | . . S REJDATA(IDX,"COMMENTS",COM,"DATE/TIME")=$P(Z,"^")
|
---|
91 | . . S REJDATA(IDX,"COMMENTS",COM,"USER")=$P(Z,"^",2)
|
---|
92 | . . S REJDATA(IDX,"COMMENTS",COM,"COMMENTS")=$P(Z,"^",3)
|
---|
93 | Q
|
---|
94 | ;
|
---|
95 | HELP(OPTS) ; Display the Help Text for the DUR handling options (OVERRIDE/IGNORE/STOP/QUIT)
|
---|
96 | ;
|
---|
97 | I OPTS["O" D
|
---|
98 | . W !?1,"(O)verride - This option will provide the prompts for the code sets needed to"
|
---|
99 | . W !?1," override this reject and get a payable 3rd party claim. Before"
|
---|
100 | . W !?1," you select this option, you may need to call the 3rd party payer"
|
---|
101 | . W !?1," to determine which code sets are needed to override a particular"
|
---|
102 | . W !?1," reject. Once the proper override is accepted the label will print"
|
---|
103 | . W !?1," and the prescription can be filled."
|
---|
104 | ;
|
---|
105 | I OPTS["I" D
|
---|
106 | . W !?1,"(I)gnore - Choosing Ignore will by-pass 3rd party processing and will allow"
|
---|
107 | . W !?1," you to print a label and fill the prescription. This essentially"
|
---|
108 | . W !?1," ignores the clinical safety issues suggested by the 3rd party"
|
---|
109 | . W !?1," payer and will NOT result in a payable claim."
|
---|
110 | ;
|
---|
111 | I OPTS["Q" D
|
---|
112 | . W !?1,"(Q)uit - Choosing Quit will postpone the processing of this prescription"
|
---|
113 | . W !?1," until this 3rd party reject is resolved. A label will not be"
|
---|
114 | . W !?1," printed for this prescription and it can not be filled/dispensed"
|
---|
115 | . W !?1," until this reject is resolved. Rejects can be resolved through"
|
---|
116 | . W !?1," the Worklist option under the ePharmacy menu."
|
---|
117 | Q
|
---|
118 | ;
|
---|
119 | DVINFO(RX,RFL,LM) ; Returns header displayable Division Information
|
---|
120 | ;Input: (r) RX - Rx IEN (#52)
|
---|
121 | ; (o) RFL - Refill # (Default: most recent)
|
---|
122 | ; (o) LM - ListManager format? (1 - Yes / 0 - No) - Default: 0
|
---|
123 | N TXT,DVINFO,NCPNPI
|
---|
124 | S DVINFO="Division : "_$$GET1^DIQ(59,+$$RXSITE^PSOBPSUT(RX,RFL),.01)
|
---|
125 | S NCPNPI=$P($$NABP^BPSBUTL(RX,RFL)," ")
|
---|
126 | S $E(DVINFO,$S($G(LM):58,1:51))=$S($L(NCPNPI)=7:"NCPDP",1:" NPI")_"#: "_NCPNPI
|
---|
127 | Q DVINFO
|
---|
128 | ;
|
---|
129 | PTINFO(RX,LM) ; Returns header displayable Patient Information
|
---|
130 | ;Input: (r) RX - Rx IEN (#52)
|
---|
131 | ; (o) LM - ListManager format? (1 - Yes / 0 - No) - Default: 0
|
---|
132 | N DFN,VADM,PTINFO
|
---|
133 | S DFN=$$GET1^DIQ(52,RX,2,"I") D DEM^VADPT
|
---|
134 | S PTINFO="Patient : "_$E($G(VADM(1)),1,$S($G(LM):24,1:20))_"("_$P($G(VADM(2)),"^",2)_")"
|
---|
135 | S PTINFO=PTINFO_" Sex: "_$P($G(VADM(5)),"^")
|
---|
136 | S $E(PTINFO,$S($G(LM):61,1:54))="DOB: "_$P($G(VADM(3)),"^",2)_"("_$P($G(VADM(4)),"^")_")"
|
---|
137 | Q PTINFO
|
---|
138 | ;
|
---|
139 | RETRXF(RX,RFL,ONOFF) ; - Set/Reset the Re-transmission flag
|
---|
140 | ;Input: (r) RX - Rx IEN (#52)
|
---|
141 | ; (r) RFL - Refill IEN (#52.1)
|
---|
142 | ; (o) ONOFF - Turn flag ON or OFF (1 - ON / 0 - OFF) (Default: OFF)
|
---|
143 | N DA,DIE,DR
|
---|
144 | S DR="82///"_$S($G(ONOFF):"YES",1:"@")
|
---|
145 | I 'RFL S DA=RX,DIE="^PSRX("
|
---|
146 | I RFL S DA(1)=RX,DA=RFL,DIE="^PSRX("_RX_",1,"
|
---|
147 | D ^DIE
|
---|
148 | Q
|
---|
149 | ;
|
---|
150 | REASON(TXT) ; Extracts the Reason for service code from the REASON text field
|
---|
151 | ; Input: (r) TXT - Reason text (e.g., NN Reason for Service Code Text)
|
---|
152 | ;Output: REASON - NN (if on valid and on file (#9002313.23), null otherwise)
|
---|
153 | N REASON,DIC,X,Y
|
---|
154 | S REASON=$P(TXT," ") I $L(REASON)'=2 Q ""
|
---|
155 | S DIC=9002313.23,X=REASON D ^DIC I Y<0 Q ""
|
---|
156 | Q REASON
|
---|
157 | ;
|
---|
158 | SETOPN(RX,REJ) ; - Set the Reject RE-OPENED flag to YES
|
---|
159 | ;Input: (r) RX - Rx IEN (#52)
|
---|
160 | ; (r) REJ - Reject IEN (#52.25)
|
---|
161 | ;
|
---|
162 | I '$D(^PSRX(RX,"REJ",REJ)) Q
|
---|
163 | N DIE,DA,DR
|
---|
164 | S DIE="^PSRX("_RX_",""REJ"",",DA(1)=RX,DA=REJ,DR="23///YES" D ^DIE
|
---|
165 | Q
|
---|
166 | ;
|
---|
167 | PRT(FIELD,P,L) ; Sets the lines for fields that require text wrapping
|
---|
168 | ;Input: FIELD - Subscript name from the DATA(REJ,FIELD) array
|
---|
169 | ; P - Position where the content should be printed
|
---|
170 | ; L - Lenght of the text on each line
|
---|
171 | N TXT,I
|
---|
172 | S TXT=DATA(REJ,FIELD) I $L(TXT)'>L W ?P,TXT Q
|
---|
173 | F I=1:1 Q:TXT="" D
|
---|
174 | . I I=1 W ?P,$E(TXT,1,L),! S TXT=$E(TXT,L+1,999) Q
|
---|
175 | . W ?P,$E(TXT,1,L) S TXT=$E(TXT,L+1,999) W:TXT'="" !
|
---|
176 | Q
|
---|
177 | ;
|
---|
178 | PA() ; - Ask for Prior Authorization Type and Number
|
---|
179 | ;Output:(PAT^PAN) PAT - Prior Authorization Type (See DD File#52,
|
---|
180 | ; Sub-file#52.25,field#25 for possible values)
|
---|
181 | ; PAN - Prior Authorization Number (11 digits)
|
---|
182 | ;
|
---|
183 | N DIR,Y,DIRUT,DIROUT,PAT,PAN
|
---|
184 | S DIR(0)="52.25,25",DIR("A")=" Prior Authorization Type",DIR("B")="0"
|
---|
185 | S (DIR("?"),DIR("??"))="^D PAHLP^PSOREJU2"
|
---|
186 | D ^DIR I $D(DIRUT)!$D(DIROUT) Q "^"
|
---|
187 | S PAT=Y
|
---|
188 | K DIR S DIR(0)="52.25,26",DIR("A")="Prior Authorization Number"
|
---|
189 | S DIR("?")="^D PANHLP^PSOREJU2",DIR("??")=""
|
---|
190 | D ^DIR I (Y["^")!$D(DIROUT) Q "^"
|
---|
191 | S PAN=Y
|
---|
192 | Q (PAT_"^"_PAN)
|
---|
193 | ;
|
---|
194 | PAHLP ; Prior Authorization Type Help
|
---|
195 | W !?9,"EPSDT - Early Periodic Screening Diagnosis Treatment"
|
---|
196 | W !?9,"AFDC - Aid to Family with Dependent Children"
|
---|
197 | Q
|
---|
198 | ;
|
---|
199 | PANHLP ; Prior Authorization Number Help
|
---|
200 | W "OR you may leave it blank if the claim does not require a number."
|
---|
201 | Q
|
---|