1 | IBTRD ;ALB/AAS - CLAIMS TRACKING - DENIAL/ APPEALS ; 10-AUG-1993
|
---|
2 | ;;2.0; INTEGRATED BILLING ;**1,199**; 21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | % ;
|
---|
6 | EN ; -- main entry point for IBT APPEAL/DENAIL EDITOR
|
---|
7 | I '$D(DT) D DT^DICRW
|
---|
8 | K XQORS,VALMEVL,IBTRD,DFN,IBCNS,IBTRN,IBTRV,IBTRC,IBFASTXT,VALMQUIT
|
---|
9 | D ASK
|
---|
10 | G:$D(VALMQUIT) ENQ
|
---|
11 | I IBTRD["DPT(" S IBTYPE="P",DFN=+IBTRD D EN^VALM("IBT APPEAL/DENIAL EDITOR") G ENQ
|
---|
12 | I IBTRD["DIC(" S IBTYPE="I",IBCNS=+IBTRD D EN^VALM("IBT APPEAL/DENIAL INS EDITOR")
|
---|
13 | ENQ K XQORS,VALMEVL,IBTRD,DFN,IBCNS,IBTRN,IBTRV,IBTRC,IBFASTXT,VALMQUIT
|
---|
14 | K IBAMT,IBAPR,IBADG,IBDA,IBDGCR,IBDGCRU1,IBDV,IBETYP,IBETYPD,IBI,IBICD,IBLCNT,IBSEL,IBT,IBTEXT,IBTNOD,IBTSAV,VAUTD
|
---|
15 | K IBAPEAL,IBCDFN,IBCNT,IBDEN,IBDENIAL,IBDENIAL,IBPARNT,IBPEN,IBPENAL,IBTCOD,IBTRDD,IBTRSV,IBTYPE,VAINDT,VA,VALMBCK,OFFSET,I1,I3,IBNEW,IBDENT,IBOE,Z1,T,SDCNT
|
---|
16 | D KVAR^VADPT
|
---|
17 | Q
|
---|
18 | ;
|
---|
19 | HDR ; -- header code
|
---|
20 | I $G(IBTYPE)="P" D HDRP
|
---|
21 | I $G(IBTYPE)="I" D HDRI
|
---|
22 | Q
|
---|
23 | ;
|
---|
24 | HDRI ; -- header code for by ins. co.
|
---|
25 | S VALMHDR(1)="Denials and Appeals for: "_$P(^DIC(36,+IBCNS,0),"^")
|
---|
26 | S VALMHDR(2)=" "
|
---|
27 | Q
|
---|
28 | ;
|
---|
29 | HDRP ; -- header code for by pat.
|
---|
30 | D PID^VADPT
|
---|
31 | S VALMHDR(1)="Denials and Appeals for: "_$$PT^IBTUTL1(DFN)
|
---|
32 | S VALMHDR(2)=" "
|
---|
33 | Q
|
---|
34 | ;
|
---|
35 | INIT ; -- init variables and list array
|
---|
36 | S U="^",VALMCNT=0,VALMBG=1
|
---|
37 | K ^TMP("IBTRC",$J),^TMP("IBTRCDX",$J)
|
---|
38 | K I,X,XQORNOD,DA,DR,DIE,DNM,DQ,IBTRC
|
---|
39 | I '$G(IBTRD),$G(DFN) S IBTRD=DFN_";DPT("
|
---|
40 | I '$G(IBTRD) S VALMQUIT=""
|
---|
41 | S IBTRSV=""
|
---|
42 | Q:$D(VALMQUIT)
|
---|
43 | ;
|
---|
44 | BLD ; -- build list
|
---|
45 | K ^TMP("IBTRD",$J),^TMP("IBTRDDX",$J)
|
---|
46 | N IBI,J,IBTRC,IBTRCD,IBTRCD1,IBTRN
|
---|
47 | I IBTRD["DPT(" S IBTYPE="P",DFN=+IBTRD D BLDP
|
---|
48 | I IBTRD["DIC(" S IBTYPE="I",IBCNS=+IBTRD D BLDI
|
---|
49 | Q
|
---|
50 | ;
|
---|
51 | BLDI ; -- Build list of appeals/denials by ins. co.
|
---|
52 | D HDRI
|
---|
53 | S (IBTRC,IBCNT,VALMCNT)=0
|
---|
54 | S IBDEN=$O(^IBE(356.7,"ACODE",20,0))
|
---|
55 | S IBTRC=0 F S IBTRC=$O(^IBT(356.2,"AIACT",IBCNS,IBDEN,IBTRC)) Q:'IBTRC D 1
|
---|
56 | S IBPEN=$O(^IBE(356.7,"ACODE",30,0))
|
---|
57 | S IBTRC=0 F S IBTRC=$O(^IBT(356.2,"AIACT",IBCNS,IBPEN,IBTRC)) Q:'IBTRC D 1
|
---|
58 | Q
|
---|
59 | ;
|
---|
60 | BLDP ; -- Build list of appeals/denials by patient
|
---|
61 | D HDRP
|
---|
62 | S (IBTRC,IBCNT,VALMCNT)=0
|
---|
63 | S VALMSG=$$MSG^IBTUTL3(DFN)
|
---|
64 | S IBDEN=$O(^IBE(356.7,"ACODE",20,0))
|
---|
65 | S IBTRC=0 F S IBTRC=$O(^IBT(356.2,"APACT",DFN,IBDEN,IBTRC)) Q:'IBTRC D 1
|
---|
66 | S IBPEN=$O(^IBE(356.7,"ACODE",30,0))
|
---|
67 | S IBTRC=0 F S IBTRC=$O(^IBT(356.2,"APACT",DFN,IBPEN,IBTRC)) Q:'IBTRC D 1
|
---|
68 | Q
|
---|
69 | 1 ; -- first add denial, then add appeal
|
---|
70 | S IBTRN=$P(^IBT(356.2,+IBTRC,0),"^",2)
|
---|
71 | S IBTRSV=+IBTRC
|
---|
72 | D 2
|
---|
73 | N IBTRC,IBTRCD,IBTRCD1
|
---|
74 | S IBAPEAL=$O(^IBE(356.11,"ACODE",60,0)) ; find appeals
|
---|
75 | S IBTRC=0 F S IBTRC=$O(^IBT(356.2,"AP",IBTRSV,IBTRC)) Q:'IBTRC D 2
|
---|
76 | ;
|
---|
77 | Q
|
---|
78 | 2 ; -- add items to list
|
---|
79 | S IBTRCD=$G(^IBT(356.2,+IBTRC,0))
|
---|
80 | S IBTRCD1=$G(^IBT(356.2,+IBTRC,1))
|
---|
81 | Q:'+$P(IBTRCD,"^",19) ;quit if inactive
|
---|
82 | ;
|
---|
83 | ; -- if not the denial, must be from parent
|
---|
84 | I IBTRC'=IBTRSV&($P(IBTRCD,"^",18)'=IBTRSV) Q
|
---|
85 | ;
|
---|
86 | S IBCNT=IBCNT+1
|
---|
87 | W "."
|
---|
88 | I IBTYPE="I" S DFN=$P(IBTRCD,"^",5) D PID^VADPT
|
---|
89 | S X=""
|
---|
90 | S X=$$SETFLD^VALM1(IBCNT,X,"NUMBER")
|
---|
91 | ;
|
---|
92 | I IBTYPE="I" D
|
---|
93 | .S X=$$SETFLD^VALM1($P(^DPT(DFN,0),"^"),X,"PATIENT")
|
---|
94 | .S X=$$SETFLD^VALM1(VA("BID"),X,"ID")
|
---|
95 | ;
|
---|
96 | I IBTYPE="P" D
|
---|
97 | .S X=$$SETFLD^VALM1($P($G(^DIC(36,+$P(IBTRCD,"^",8),0)),"^"),X,"INS CO")
|
---|
98 | .S X=$$SETFLD^VALM1($$GRP^IBCNS(+$P($G(^DPT(DFN,.312,+$P(IBTRCD1,"^",5),0)),"^",18)),X,"POLICY")
|
---|
99 | ;
|
---|
100 | S X=$$SETFLD^VALM1($P($$DAT1^IBOUTL(+IBTRCD,"2P")," "),X,"DATE")
|
---|
101 | I $P(IBTRCD,"^",11) S X=$$SETFLD^VALM1($$EXPAND^IBTRE(356.2,.11,$P(IBTRCD,"^",11)),X,"ACTION")
|
---|
102 | I $P(IBTRCD,"^",11)="" S X=$$SETFLD^VALM1($P($G(^IBE(356.11,+$P(IBTRCD,"^",4),0)),"^",3),X,"ACTION")
|
---|
103 | ;
|
---|
104 | S X=$$SETFLD^VALM1($P($G(^IBE(356.6,+$P(^IBT(356,+IBTRN,0),"^",18),0)),"^",2),X,"EVENT")
|
---|
105 | S X=$$SETFLD^VALM1($$DAT1^IBOUTL(+$P(^IBT(356,+IBTRN,0),"^",6),"2P"),X,"EV DATE")
|
---|
106 | S X=$$SETFLD^VALM1($$EXPAND^IBTRE(356.2,.04,$P(IBTRCD,"^",4)),X,"TYPE")
|
---|
107 | S X=$$SETFLD^VALM1($J($$DAY^IBTUTL3($P(IBTRCD,"^",15),$P(IBTRCD,"^",16),IBTRN),3),X,"DAYS")
|
---|
108 | S X=$$SETFLD^VALM1($$EXPAND^IBTRE(356,.31,$P(^IBT(356,IBTRN,0),"^",31)),X,"ROI")
|
---|
109 | S X=$$SETFLD^VALM1($P(IBTRCD,"^",6),X,"CONTACT")
|
---|
110 | S X=$$SETFLD^VALM1($P(IBTRCD,"^",7),X,"PHONE")
|
---|
111 | S X=$$SETFLD^VALM1($P(IBTRCD,"^",9),X,"REF NO")
|
---|
112 | D SET(X)
|
---|
113 | Q
|
---|
114 | ;
|
---|
115 | SET(X) ; -- set arrays
|
---|
116 | S VALMCNT=VALMCNT+1
|
---|
117 | S ^TMP("IBTRD",$J,VALMCNT,0)=X
|
---|
118 | S ^TMP("IBTRD",$J,"IDX",VALMCNT,IBCNT)=""
|
---|
119 | S ^TMP("IBTRDDX",$J,IBCNT)=VALMCNT_"^"_IBTRC
|
---|
120 | Q
|
---|
121 | HELP ; -- help code
|
---|
122 | S X="?" D DISP^XQORM1 W !!
|
---|
123 | Q
|
---|
124 | ;
|
---|
125 | EXIT ; -- exit code
|
---|
126 | K ^TMP("IBTRD",$J),^TMP("IBTRDDX",$J),IBTRD
|
---|
127 | D CLEAN^VALM10
|
---|
128 | Q
|
---|
129 | ;
|
---|
130 | ASK ; -- ask for patient or ins. co.
|
---|
131 | N DIR
|
---|
132 | S DIR(0)="350.9,4.02",DIR("A")="Select Patient Name or Insurance Co."
|
---|
133 | N DPTNOFZY S DPTNOFZY=1 ;Suppress PATIENT file fuzzy lookups
|
---|
134 | D ^DIR K DIR I $D(DIRUT) S VALMQUIT="" G ASKQ
|
---|
135 | S IBTRD=Y
|
---|
136 | I +IBTRD<1 S VALMQUIT=""
|
---|
137 | ASKQ Q
|
---|