1 | IBCEMSR ;WOIFO/AAT - MRA STATISTICS REPORT ;09/03/04
|
---|
2 | ;;2.0;INTEGRATED BILLING;**155,288,294,349**;21-MAR-94;Build 46
|
---|
3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | EN ;
|
---|
6 | N IBQ,IBDIV,IBBDT,IBEDT,IBSUM,IBSCR
|
---|
7 | W !!,"Report requires 132 Columns"
|
---|
8 | S IBQ=0 ; quit flag
|
---|
9 | ; Prompts to the user:
|
---|
10 | D DIV Q:IBQ ; Division(s)
|
---|
11 | D SUM Q:IBQ ; Summary only?
|
---|
12 | W !!,"Normal processing time for a MRA is 10-12 days. If you select a date range of"
|
---|
13 | W !,"less than 2 weeks, do not expect to have received many MRAs."
|
---|
14 | D DTR Q:IBQ ; From-To date range
|
---|
15 | D DEVICE Q:IBQ
|
---|
16 | D RUN
|
---|
17 | Q
|
---|
18 | ;
|
---|
19 | DIV N DIC,DIR,DIRUT,Y
|
---|
20 | W ! S DIR("B")="ALL",DIR("A")="Run this report for All divisions or Selected Divisions: "
|
---|
21 | S DIR(0)="SA^ALL:All divisions;S:Selected divisions" D ^DIR
|
---|
22 | I $D(DIRUT) S IBQ=1 Q
|
---|
23 | S IBDIV=Y Q:Y="ALL"
|
---|
24 | ; Collect divisions
|
---|
25 | F D Q:Y'>0
|
---|
26 | . W ! S DIC("A")="Division: ",DIC=40.8,DIC(0)="AEQM" D ^DIC
|
---|
27 | . I $D(DIRUT) S IBQ=1 Q
|
---|
28 | . I Y'>0 Q
|
---|
29 | . S IBDIV(+Y)=""
|
---|
30 | I $O(IBDIV(""))="" S IBQ=1 Q ; None selected
|
---|
31 | Q
|
---|
32 | ;
|
---|
33 | DTR ;date range
|
---|
34 | N %DT,Y
|
---|
35 | S (IBBDT,IBEDT)=DT
|
---|
36 | S %DT="AEX"
|
---|
37 | S %DT("A")="Start with MRA Request Transmission Date: " ; No default,%DT("B")="TODAY"
|
---|
38 | W ! D ^%DT K %DT
|
---|
39 | I Y<0 S IBQ=1 Q
|
---|
40 | S IBBDT=+Y
|
---|
41 | S %DT="AEX"
|
---|
42 | S %DT("A")="Go to MRA Request Transmission Date: ",%DT("B")="TODAY"
|
---|
43 | D ^%DT K %DT
|
---|
44 | I Y<0 S IBQ=1 Q
|
---|
45 | S IBEDT=+Y
|
---|
46 | Q
|
---|
47 | ;
|
---|
48 | SUM N DIR,DIRUT,Y
|
---|
49 | W ! S DIR("B")="YES",DIR("A")="Do you want to print a summary only? "
|
---|
50 | S DIR(0)="YA" D ^DIR
|
---|
51 | I $D(DIRUT) S IBQ=1 Q
|
---|
52 | S IBSUM=+Y
|
---|
53 | Q
|
---|
54 | ;
|
---|
55 | DEVICE N %ZIS,IOP,ZTSK,ZTRTN,ZTIO,ZTDESC,ZTSAVE,POP
|
---|
56 | K IO("Q")
|
---|
57 | S %ZIS="QM"
|
---|
58 | W ! D ^%ZIS
|
---|
59 | I POP S IBQ=1 Q
|
---|
60 | S IBSCR=$S($E($G(IOST),1,2)="C-":1,1:0)
|
---|
61 | ;
|
---|
62 | I $D(IO("Q")) D S IBQ=1
|
---|
63 | . S ZTRTN="RUN^IBCEMSR"
|
---|
64 | . S ZTIO=ION
|
---|
65 | . S ZTSAVE("IB*")=""
|
---|
66 | . S ZTDESC="IB MRA STATISTICS REPORT"
|
---|
67 | . D ^%ZTLOAD
|
---|
68 | . W !,$S($D(ZTSK):"REQUEST QUEUED TASK="_ZTSK,1:"REQUEST CANCELLED")
|
---|
69 | . D HOME^%ZIS
|
---|
70 | U IO
|
---|
71 | Q
|
---|
72 | ;
|
---|
73 | ;
|
---|
74 | RUN N REF
|
---|
75 | S REF=$NA(^TMP($J,"IBCEMSR"))
|
---|
76 | K @REF
|
---|
77 | D COLLECT ; Collect the data in ^TMP
|
---|
78 | U IO
|
---|
79 | D REPORT^IBCEMSR1
|
---|
80 | I 'IBSCR W !,@IOF
|
---|
81 | D ^%ZISC
|
---|
82 | K @REF
|
---|
83 | Q
|
---|
84 | ;
|
---|
85 | COLLECT ; Collect Information
|
---|
86 | ; Input: IBDIV, IBBDT,IBEDT
|
---|
87 | N IBDT,IBBAT,IBTRAN,IBZ,MRAUSR,NUMDIV,IBDV,ALLDIV
|
---|
88 | S IBDV=0 F NUMDIV=0:1 S IBDV=$O(IBDIV(IBDV)) Q:'IBDV
|
---|
89 | S ALLDIV=" "
|
---|
90 | I IBDIV="ALL" S ALLDIV=" *** ALL DIVISIONS ***"
|
---|
91 | I NUMDIV>1 S ALLDIV=" *** ALL SELECTED DIVISIONS ***"
|
---|
92 | ;
|
---|
93 | S MRAUSR=$$MRAUSR^IBCEMU1() ;Auto-authorizer
|
---|
94 | S IBDT=IBBDT-.000001
|
---|
95 | F S IBDT=$O(^IBA(364.1,"ALT",IBDT)) Q:'IBDT Q:IBDT\1>IBEDT D
|
---|
96 | . S IBBAT=0 F S IBBAT=$O(^IBA(364.1,"ALT",IBDT,IBBAT)) Q:'IBBAT D
|
---|
97 | .. S IBTRAN=0 F S IBTRAN=$O(^IBA(364,"C",IBBAT,IBTRAN)) Q:'IBTRAN D
|
---|
98 | ... S IBZ=$G(^IBA(364,IBTRAN,0)) Q:IBZ=""
|
---|
99 | ... N IBIFN,IBSTAT,IBSEQ,IBBILZ,IBBILST,IBFORM,IBCLERK,IBDV,IBDVN,REFX,REFS,REFT,REFTX,MRACNT,IBREJECT
|
---|
100 | ... S IBIFN=+IBZ
|
---|
101 | ... I '$P($G(^DGCR(399,IBIFN,"S")),U,7) Q ; no MRA request
|
---|
102 | ... S IBSTAT=$P(IBZ,U,3)
|
---|
103 | ... S IBSEQ=$P(IBZ,U,8) Q:"T"[IBSEQ
|
---|
104 | ... I '$$WNRBILL^IBEFUNC(IBIFN,IBSEQ) Q ; payer sequence must be Medicare for this transmission
|
---|
105 | ... S IBBILZ=$G(^DGCR(399,IBIFN,0))
|
---|
106 | ... S IBBILST=$P(IBBILZ,U,13)
|
---|
107 | ... S IBFORM=+$P(IBBILZ,U,19)
|
---|
108 | ... I IBFORM'=2,IBFORM'=3 Q ; not 1500 or UB
|
---|
109 | ... S IBCLERK=+$P($G(^DGCR(399,IBIFN,"S")),U,8) ; Who requested MRA?
|
---|
110 | ... S IBCLERK=$P($G(^VA(200,IBCLERK,0)),U)
|
---|
111 | ... S:IBCLERK="" IBCLERK="UNKNOWN"
|
---|
112 | ... S IBDV=+$P(IBBILZ,U,22) ; Default division
|
---|
113 | ... S IBDVN=$P($G(^DG(40.8,IBDV,0)),U) ; Div name
|
---|
114 | ... S:IBDVN="" IBDVN="UNKNOWN"
|
---|
115 | ... I IBDIV'="ALL",'$D(IBDIV(IBDV)) Q ;Division filter
|
---|
116 | ... I 'IBSUM S REFX=$NA(@REF@(IBDVN,IBCLERK,IBFORM)) I NUMDIV'=1 S REFTX=$NA(@REF@(ALLDIV,IBCLERK,IBFORM)) ; all divisions detail
|
---|
117 | ... S REFS=$NA(@REF@(IBDVN,0,IBFORM)) ; Summary by division
|
---|
118 | ... I NUMDIV'=1 S REFT=$NA(@REF@(ALLDIV,0,IBFORM)) ; all divisions
|
---|
119 | ... D TXSTS^IBCEMU2(IBIFN,IBTRAN,.IBREJECT) ; rejected?
|
---|
120 | ... S MRACNT=$$MRACNT^IBCEMU1(IBIFN) ; how many MRAs?
|
---|
121 | ... D INC("ALL") ; total no of requests
|
---|
122 | ... I IBSTAT="C" D INC("ALLC") ;cancelled
|
---|
123 | ... I IBSTAT="R" D INC("ALLR") ;resubmitted
|
---|
124 | ... I '$D(@REFS@("TOT",IBIFN)) S ^(IBIFN)="" D INC("TOT") ;unique requests
|
---|
125 | ... ;no response?
|
---|
126 | ... I 'IBREJECT,'MRACNT,'$D(@REFS@("NON",IBIFN)) S ^(IBIFN)="" D INC("NON")
|
---|
127 | ... ;final reject?
|
---|
128 | ... I 'MRACNT,IBREJECT,'$D(@REFS@("REJF",IBIFN)),IBTRAN=$$LAST364^IBCEF4(IBIFN) D
|
---|
129 | .... S @REFS@("REJF",IBIFN)="" D INC("REJF")
|
---|
130 | .... ; MRA?
|
---|
131 | ... I MRACNT,'$D(@REFS@("MRA",IBIFN)) S ^(IBIFN)="" D
|
---|
132 | .... D INC("MRA")
|
---|
133 | .... I $$DENIED(IBIFN) D INC("MRAD")
|
---|
134 | ... ;any secondary claims?
|
---|
135 | ... D SECOND
|
---|
136 | Q
|
---|
137 | ;
|
---|
138 | INC(NODE,VALUE) ;Increase the respective value in ^TMP
|
---|
139 | I 'IBSUM D
|
---|
140 | . S @REFX@(NODE)=$G(@REFX@(NODE))+$G(VALUE,1)
|
---|
141 | . I $D(REFTX) S @REFTX@(NODE)=$G(@REFTX@(NODE))+$G(VALUE,1)
|
---|
142 | . Q
|
---|
143 | S @REFS@(NODE)=$G(@REFS@(NODE))+$G(VALUE,1)
|
---|
144 | I $D(REFT) S @REFT@(NODE)=$G(@REFT@(NODE))+$G(VALUE,1)
|
---|
145 | Q
|
---|
146 | ;
|
---|
147 | DENIED(IBIFN) ;MRA requests denied?
|
---|
148 | ; 361.1 for this bill#
|
---|
149 | ; if at least one request is 'processed' - MRA is NOT DENIED
|
---|
150 | N IBDEN,IEN,IBZ
|
---|
151 | S IBDEN=1
|
---|
152 | S IEN=0 F S IEN=$O(^IBM(361.1,"B",+$G(IBIFN),IEN)) Q:'IEN D Q:'IBDEN
|
---|
153 | . S IBZ=$G(^IBM(361.1,IEN,0))
|
---|
154 | . I $P(IBZ,U,4)'=1 Q ; only MEDICARE
|
---|
155 | . I $P(IBZ,U,13)=1 S IBDEN=0
|
---|
156 | Q IBDEN
|
---|
157 | ;
|
---|
158 | SECOND ;Secondary claims
|
---|
159 | N IBAUT,IBTX,IBCBPS,IBNEXT,IBBILS,IBTOT,IBUNR,IB2ND,IBNODE
|
---|
160 | I $D(@REFS@("SEC",IBIFN)) Q ; Already included
|
---|
161 | S IBCBPS=$P(IBBILZ,U,21) ; current bill sequence
|
---|
162 | S IBNEXT=$S(IBSEQ="S":"T",1:"S") ;Next (after MRA) sequence
|
---|
163 | I IBCBPS'=IBNEXT Q
|
---|
164 | ; Number of unique sec claims
|
---|
165 | S @REFS@("SEC",IBIFN)=""
|
---|
166 | D INC("SEC")
|
---|
167 | S IBBILS=$G(^DGCR(399,IBIFN,"S")) Q:'$P(IBBILS,U,10) ; Not even authorized
|
---|
168 | ; Authorized but not yet printed?
|
---|
169 | I $P(IBBILS,U,10),'$P(IBBILS,U,13) D Q
|
---|
170 | . I +$$TXMT^IBCEF4(IBIFN)'=1 D INC("AUT") ; Exclude transmittable
|
---|
171 | ; Check the field 'AUTHORIZER'
|
---|
172 | S IBAUT=($P(IBBILS,U,11)=MRAUSR) ; Auto-authorized?
|
---|
173 | S IBTX=$$TRANSM(IBIFN,IBNEXT) ; Transmitted? (present in 364?)
|
---|
174 | I IBAUT,IBTX S IBNODE="AT" ; Auto-gen Tx
|
---|
175 | I 'IBAUT,IBTX S IBNODE="MT" ; Manually Tx
|
---|
176 | I IBAUT,'IBTX S IBNODE="AP" ; Auto-gen Prn
|
---|
177 | I 'IBAUT,'IBTX S IBNODE="MP" ; Manually Prn
|
---|
178 | ;
|
---|
179 | ;Calculate amounts
|
---|
180 | S IBTOT=+$G(^DGCR(399,IBIFN,"U1"))
|
---|
181 | S IBUNR=$P($G(^PRCA(430,IBIFN,13)),U,2) ; Medicare Unreimbursable
|
---|
182 | S IB2ND=$$PREOBTOT^IBCEU0(IBIFN)
|
---|
183 | D INC(IBNODE)
|
---|
184 | D INC(IBNODE_"1",IBTOT)
|
---|
185 | D INC(IBNODE_"2",IBUNR)
|
---|
186 | D INC(IBNODE_"3",IB2ND)
|
---|
187 | Q
|
---|
188 | ;
|
---|
189 | TRANSM(IBIFN,IBSEQ) ;was the claim ever transmitted?
|
---|
190 | ; Does the claim present in 364?
|
---|
191 | N RES,IBI
|
---|
192 | S RES=0
|
---|
193 | S IBI="" F S IBI=$O(^IBA(364,"B",IBIFN,IBI),-1) Q:IBI="" D Q:RES
|
---|
194 | . I $P($G(^IBA(364,IBI,0)),U,8)=IBSEQ S RES=1
|
---|
195 | Q RES
|
---|
196 | ;
|
---|