1 | BPSSCRRS ;BHAM ISC/SS - ECME SCREEN RESUBMIT ;05-APR-05
|
---|
2 | ;;1.0;E CLAIMS MGMT ENGINE;**1,3,5**;JUN 2004;Build 45
|
---|
3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;IA 4702
|
---|
6 | ;
|
---|
7 | RES ;
|
---|
8 | N BPRET,BPSARR59
|
---|
9 | I '$D(@(VALMAR)) Q
|
---|
10 | D FULL^VALM1
|
---|
11 | W !,"Enter the line numbers for the claim(s) to be resubmitted."
|
---|
12 | S BPRET=$$ASKLINES^BPSSCRU4("Select item(s)","C",.BPSARR59,VALMAR)
|
---|
13 | I BPRET="^" S VALMBCK="R" Q
|
---|
14 | ;go thru all selected claims and try to resubmit them separately
|
---|
15 | ;update the content of the screen and display it
|
---|
16 | ;only if at least one claim was submitted successfully
|
---|
17 | I $$RESUBMIT(.BPSARR59) D REDRAW^BPSSCRUD("Updating screen for resubmitted claims...")
|
---|
18 | E S VALMBCK="R"
|
---|
19 | Q
|
---|
20 | ;
|
---|
21 | ;/**
|
---|
22 | ;go thru all selected claims and try to resubmit them separately
|
---|
23 | ;input:
|
---|
24 | ; RXI - array with ptrs to BPS TRANSACTION file (see ASKLINES^BPSSCRU4)
|
---|
25 | ;returns
|
---|
26 | ; 0 - if no claims were resubmitted
|
---|
27 | ; 1 - if at least one claim was resubmitted
|
---|
28 | RESUBMIT(RXI) ;*/
|
---|
29 | N BPRVRSED ;was successfully reversed
|
---|
30 | N BPRVNEED ;needs reversal
|
---|
31 | N BPRVWAIT ;cycles of waiting
|
---|
32 | N BPRVRSNT ;reversal has been sent
|
---|
33 | N WHERE,DOSDATE,BILLNUM,RXIEN,RXR,BPDFN
|
---|
34 | N BP59
|
---|
35 | N UPDATFLG,BPCLTOT,BPCLTOTR
|
---|
36 | N BPQ
|
---|
37 | N BPSTATUS
|
---|
38 | N REVCOUNT S REVCOUNT=0
|
---|
39 | N BPIFANY S BPIFANY=0
|
---|
40 | S BPCLTOT=0 ;total for resubmitted
|
---|
41 | S BPCLTOTR=0 ;total for reversed, not resubmitted
|
---|
42 | S UPDATFLG=0
|
---|
43 | S BP59="",BPQ=""
|
---|
44 | F S BP59=$O(RXI(BP59)) Q:BP59="" D Q:BPQ="^"
|
---|
45 | . I BPIFANY=0 W @IOF
|
---|
46 | . S BPIFANY=1,BPQ=""
|
---|
47 | . S BPDFN=+$P($G(^BPST(BP59,0)),U,6)
|
---|
48 | . W !,"You've chosen to RESUBMIT the following prescription for "_$E($$PATNAME^BPSSCRU2(BPDFN),1,13)
|
---|
49 | . W !,@VALMAR@(+$G(RXI(BP59)),0)
|
---|
50 | . S (BPRVNEED,BPRVRSED,BPRVWAIT,BPRVRSNT)=0
|
---|
51 | . S BPQ=$$YESNO("Are you sure?(Y/N)")
|
---|
52 | . I BPQ=-1 S BPQ="^" Q
|
---|
53 | . I BPQ'=1 Q
|
---|
54 | . S RXIEN=$P(BP59,".")
|
---|
55 | . S RXR=+$E($P(BP59,".",2),1,4)
|
---|
56 | . I BPRVNEED=1&(BPRVRSED'=1) Q ;cannot be resubmitted
|
---|
57 | . I $$RXDEL^BPSOS(+RXIEN,RXR) W !!,">> Cannot Reverse or Resubmit ",!,@VALMAR@(+$G(RXI(BP59)),0),!," because it has been deleted in Pharmacy.",! Q
|
---|
58 | . S BPSTATUS=$P($$CLAIMST^BPSSCRU3(BP59),U)
|
---|
59 | . I BPSTATUS["E REVERSAL REJECTED" W !!,">> Cannot Resubmit ",!,@VALMAR@(+$G(RXI(BP59)),0),!," because the REVERSAL was rejected.",! Q
|
---|
60 | . I BPSTATUS["IN PROGRESS" W !!,">> Cannot Resubmit ",!,@VALMAR@(+$G(RXI(BP59)),0),!," because there is no response from the payer yet.",! Q
|
---|
61 | . I BPSTATUS["E REVERSAL STRANDED" W !!,">> Cannot Resubmit ",!,@VALMAR@(+$G(RXI(BP59)),0),!," because there is no response for reversal yet.",! Q
|
---|
62 | . S DOSDATE=$$DOSDATE(RXIEN,RXR)
|
---|
63 | . S BILLNUM=$$EN^BPSNCPDP(RXIEN,RXR,DOSDATE,"ERES","","ECME RESUBMIT")
|
---|
64 | . ;print return value message
|
---|
65 | . W !!
|
---|
66 | . W:+BILLNUM>0 $S(+BILLNUM=10:"Reversal but no Resubmit:",1:"Not Processed:"),!," "
|
---|
67 | . ;Change Return Message for SC/EI
|
---|
68 | . S:$P(BILLNUM,U,2)="NEEDS SC DETERMINATION" $P(BILLNUM,U,2)="NEEDS SC/EI DETERMINATION"
|
---|
69 | . W $P(BILLNUM,U,2)
|
---|
70 | . ;0 Prescription/Fill successfully submitted to ECME for claims processing
|
---|
71 | . ;1 ECME did not submit prescription/fill
|
---|
72 | . ;2 IB says prescription/fill is not ECME billable or the data returned from IB is not valid
|
---|
73 | . ;3 ECME closed the claim but did not submit it to the payer
|
---|
74 | . ;4 Unable to queue the ECME claim
|
---|
75 | . ;5 Invalid input
|
---|
76 | . ;10 Reversal but no resubmit
|
---|
77 | . I +BILLNUM=0 D
|
---|
78 | . . D ECMEACT^PSOBPSU1(+RXIEN,+RXR,"Claim resubmitted to 3rd party payer: ECME USER's SCREEN")
|
---|
79 | . . S UPDATFLG=1,BPCLTOT=BPCLTOT+1
|
---|
80 | . I +BILLNUM=10 D
|
---|
81 | . . D ECMEACT^PSOBPSU1(+RXIEN,+RXR,"Claim reversed but not resubmitted: ECME USER's SCREEN")
|
---|
82 | . . S UPDATFLG=1,BPCLTOTR=BPCLTOTR+1
|
---|
83 | W:BPIFANY=0 !,"No eligible items selected."
|
---|
84 | W !,BPCLTOT," claim",$S(BPCLTOT'=1:"s have",1:" has")," been resubmitted.",!
|
---|
85 | W:BPCLTOTR>0 !,BPCLTOTR," claim",$S(BPCLTOTR'=1:"s have",1:" has")," been reversed but not resubmitted.",!
|
---|
86 | D PAUSE^VALM1
|
---|
87 | Q UPDATFLG
|
---|
88 | ;
|
---|
89 | ; Ask
|
---|
90 | ; Input:
|
---|
91 | ; BPQSTR - question
|
---|
92 | ; BPDFL - default answer
|
---|
93 | ; Output:
|
---|
94 | ; 1 YES
|
---|
95 | ; 0 NO
|
---|
96 | ; -1 if cancelled
|
---|
97 | YESNO(BPQSTR,BPDFL) ; Default - YES
|
---|
98 | N DIR,Y,DUOUT
|
---|
99 | S DIR(0)="Y"
|
---|
100 | S DIR("A")=BPQSTR
|
---|
101 | S:$L($G(BPDFL)) DIR("B")=BPDFL
|
---|
102 | D ^DIR
|
---|
103 | Q $S($G(DUOUT)!$G(DUOUT)!(Y="^"):-1,1:Y)
|
---|
104 | ;
|
---|
105 | ;Date of service
|
---|
106 | ;RXIEN - IEN in file #52
|
---|
107 | ;RXR - refill number
|
---|
108 | ;returns:
|
---|
109 | ; date of service
|
---|
110 | DOSDATE(RXIEN,RXR) ;
|
---|
111 | N BPDOS,BPDT
|
---|
112 | ;try release date
|
---|
113 | S BPDOS=$$RXRLDT^PSOBPSUT(RXIEN,RXR)\1
|
---|
114 | Q:+BPDOS>0 BPDOS
|
---|
115 | ;try fill date
|
---|
116 | S BPDOS=$$RXFLDT^PSOBPSUT(RXIEN,RXR)\1
|
---|
117 | I '$G(DT) Q BPDOS
|
---|
118 | I BPDOS>0,BPDOS'>DT Q BPDOS
|
---|
119 | ;use current date (today)
|
---|
120 | Q DT\1
|
---|
121 | ;
|
---|
122 | ;To display the FILL date on the screen
|
---|
123 | ; use Date Of Service date , later on it might be changed
|
---|
124 | ;input:
|
---|
125 | ;RXIEN - IEN in file #52
|
---|
126 | ;RXR - refill number
|
---|
127 | ;returns:
|
---|
128 | ; date of service
|
---|
129 | ; or empty date if failure
|
---|
130 | FILLDATE(RXIEN,RXR) ;
|
---|
131 | N DOSDT
|
---|
132 | S DOSDT=$$DOSDATE(RXIEN,RXR)
|
---|
133 | I $L(DOSDT)'=7 Q " / "
|
---|
134 | Q $E(DOSDT,4,5)_"/"_$E(DOSDT,6,7)
|
---|
135 | ;
|
---|