1 | IBCECOB ;ALB/CXW - IB COB MANAGEMENT SCREEN ;16-JUN-1999
|
---|
2 | ;;2.0;INTEGRATED BILLING;**137,155,288**;21-MAR-1994
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | EN ; -- main entry point for COB management
|
---|
6 | K IBSRT,IBMRADUP
|
---|
7 | D EN^VALM("IBCEM MRA MANAGEMENT")
|
---|
8 | Q
|
---|
9 | ;
|
---|
10 | HDR ; -- header code
|
---|
11 | Q
|
---|
12 | ;
|
---|
13 | INIT ; -- init variables and list array
|
---|
14 | N DIC,DIRUT,DIROUT,DTOUT,DUOUT,X,Y,DIR,IB1
|
---|
15 | K ^TMP("IBBIL",$J)
|
---|
16 | S IBSRT=""
|
---|
17 | S IB1=1
|
---|
18 | W !
|
---|
19 | F S DIC="^VA(200,",DIC(0)="AEMQ",DIC("A")="Select "_$S('IB1:"Another ",1:"")_"BILLER: "_$S('IB1:"",1:"ALL//") D ^DIC K DIC D Q:Y<0
|
---|
20 | . Q:Y<0
|
---|
21 | . I $D(^TMP("IBBIL",$J,+Y)) W !,"This biller has already been selected" Q
|
---|
22 | . S ^TMP("IBBIL",$J,+Y)=""
|
---|
23 | . S IB1=0
|
---|
24 | I $D(DTOUT)!$D(DUOUT) S VALMQUIT=1 G INITQ
|
---|
25 | ;
|
---|
26 | S DIR("A")="Sort By: ",DIR("B")="BILLER"
|
---|
27 | S DIR(0)="SBA^B:BILLER;D:DAYS SINCE TRANSMISSION OF LATEST BILL;L:DATE LAST MRA RECEIVED;I:SECONDARY INSURANCE COMPANY;M:MRA STATUS;P:PATIENT NAME;R:PATIENT RESPONSIBILITY;S:SERVICE DATE"
|
---|
28 | S DIR("?")="Enter the code to indicate how the list should be sorted." D ^DIR K DIR
|
---|
29 | I $D(DTOUT)!$D(DUOUT) S VALMQUIT=1 G INITQ
|
---|
30 | S IBSRT=Y
|
---|
31 | ;
|
---|
32 | W !
|
---|
33 | S IBMRADUP=0
|
---|
34 | S DIR("A")="Do you want to include Denied MRAs for Duplicate Claim/Service",DIR("B")="No",DIR(0)="YO"
|
---|
35 | D ^DIR K DIR
|
---|
36 | I $D(DTOUT)!$D(DUOUT) S VALMQUIT=1 G INITQ
|
---|
37 | I Y S IBMRADUP=1
|
---|
38 | ;
|
---|
39 | D BLD^IBCECOB1
|
---|
40 | INITQ Q
|
---|
41 | ;
|
---|
42 | HELP ; -- help code
|
---|
43 | S X="?" D DISP^XQORM1 W !!
|
---|
44 | Q
|
---|
45 | ;
|
---|
46 | EXIT ; -- exit code
|
---|
47 | K ^TMP("IBCECOB",$J),^TMP("IBCOBST",$J),^TMP("IBBIL",$J)
|
---|
48 | K ^TMP("IBCECOB1",$J),^TMP("IBCOBSTX",$J)
|
---|
49 | D CLEAN^VALM10
|
---|
50 | Q
|
---|
51 | ;
|
---|
52 | EXP ; -- expand code to show additional details of the EOB record
|
---|
53 | NEW IBDA,IBIFN,LSTENTRY
|
---|
54 | D SEL^IBCECOB2(.IBDA,1) ; selects a bill
|
---|
55 | S LSTENTRY=+$O(IBDA(0)) I 'LSTENTRY G EXPQ ; list entry number
|
---|
56 | S IBIFN=+$G(IBDA(LSTENTRY)) I 'IBIFN G EXPQ ; bill#
|
---|
57 | ;
|
---|
58 | ; If only one MRA on file, call the listman screen and quit
|
---|
59 | I $$MRACNT^IBCEMU1(IBIFN)=1 D EN^VALM("IBCEM MRA DETAIL") G EXPQ
|
---|
60 | ;
|
---|
61 | EXPLOOP ; At this point, we know there are multiple MRA's on file
|
---|
62 | ;
|
---|
63 | D FULL^VALM1
|
---|
64 | I $$SEL^IBCEMU1(IBIFN,1,LSTENTRY) D G EXPLOOP ; MRA lister/selection
|
---|
65 | . NEW IBIFN,LSTENTRY,IBDASAVE ; protect variables
|
---|
66 | . M IBDASAVE=IBDA ; save off IBDA array
|
---|
67 | . D EN^VALM("IBCEM MRA DETAIL") ; call the listman
|
---|
68 | . M IBDA=IBDASAVE ; restore IBDA array
|
---|
69 | . Q
|
---|
70 | EXPQ ;
|
---|
71 | S VALMBCK="R"
|
---|
72 | Q
|
---|
73 | ;
|
---|
74 | COBPOSS(IB364) ; Returns 1 if transmit bill ien in IB364 is currently
|
---|
75 | ; in a status where COB may be performed on the bill
|
---|
76 | ; Used by index "ACOB", file 364
|
---|
77 | N IBWNR,IBNSEQ,IB01,IBM1,IBU1,IB0,IBOK,IBMRA
|
---|
78 | S IBOK=1
|
---|
79 | S IB0=$G(^IBA(364,IB364,0))
|
---|
80 | S IBWNR=$$WNRBILL^IBEFUNC(+IB0),IBMRA=$P($G(^DGCR(399,+IB0,"TX")),U,5)
|
---|
81 | S IB01=$G(^DGCR(399,+IB0,0)),IBM1=$G(^("M1")),IBU1=$G(^("U1"))
|
---|
82 | I 'IBWNR,IBU1-$P(IBU1,U,2)'>0 S IBOK=0 G COBQ ; Bill has a 0 balance
|
---|
83 | I $S('IBWNR:$E($P(IB0,U,3))'="A",1:IBMRA'="1N"&(IBMRA'="A")) S IBOK=0 G COBQ ; Not in correct transmit status
|
---|
84 | S IBNSEQ=+$TR($P(IB0,U,8),"PST","230")
|
---|
85 | I 'IBNSEQ!'$D(^DGCR(399,+IB0,"I"_IBNSEQ)) S IBOK=0 G COBQ ; No next ins
|
---|
86 | I "234"'[$P(IB01,U,13) S IBOK=0 G COBQ ; Bill invalid status for COB
|
---|
87 | I IBNSEQ D
|
---|
88 | . N Z,IBSTOP
|
---|
89 | . S IBSTOP=0
|
---|
90 | . F Z=IBNSEQ:1:3 D Q:IBSTOP
|
---|
91 | .. I $D(^DGCR(399,+IB0,"I"_Z)) D
|
---|
92 | ... ;Insurance must reimburse
|
---|
93 | ... I $P($G(^DIC(36,+^DGCR(399,+IB0,"I"_Z),0)),U,2)="N" S IBOK=0 Q
|
---|
94 | ... I $P(IBM1,U,4+Z) S IBOK=0,IBSTOP=1 Q ; Already has a next seq bill
|
---|
95 | ... S (IBOK,IBSTOP)=1
|
---|
96 | ;
|
---|
97 | COBQ Q IBOK
|
---|
98 | ;
|
---|