1 | IBTRV3 ;ALB/AAS - CLAIMS TRACKING - REVIEW ACTIONS ; 14-JUL-93
|
---|
2 | ;;Version 2.0 ; INTEGRATED BILLING ;**40,58**; 21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | % G EN^IBTRV
|
---|
6 | ;
|
---|
7 | ADNXT(IBTRN) ; -- Add next Hospital Review
|
---|
8 | ; -- Input ibtrn = internal entry in claims tracking (356)
|
---|
9 | ;
|
---|
10 | N IBETYP,IBTRTP,IBQUIT,IBDGPM,IBTRVDT,IBTRV,IBRDAY,IBMORE,IBSAME,IBSEL
|
---|
11 | D FULL^VALM1
|
---|
12 | S VALMBCK="R",IBQUIT=0
|
---|
13 | S IBTRVDT=DT
|
---|
14 | S IBETYP=$$TRTP^IBTRE1(IBTRN)
|
---|
15 | I IBETYP>2 W !!,"This doesn't appear to be an admission or outpatient visit.",!,"I don't know how to review this.",! D PAUSE^VALM1 G ADNXTQ
|
---|
16 | I IBETYP=2 D I IBQUIT D PAUSE^VALM1 G ADNXTQ
|
---|
17 | .S IBTDAY=1
|
---|
18 | .S IBTRTP=50
|
---|
19 | .I '$D(^IBT(356.1,"ATRTP",IBTRN,IBTRTP)) Q
|
---|
20 | .W !!,"You have already entered a Review for this Outpatient Encounter.",!,"Use Quick Edit to Edit."
|
---|
21 | .S IBQUIT=1
|
---|
22 | .Q
|
---|
23 | ;
|
---|
24 | ; -- inpatient review type
|
---|
25 | I IBETYP=1 S IBTRTP=15 I $D(^IBT(356.1,"ATRTP",IBTRN,15)) S IBTRTP=30
|
---|
26 | S IBRDAY=$$RDAY^IBTRV31(IBTRN)
|
---|
27 | ;
|
---|
28 | INPT D REV(IBTRN,IBTRTP)
|
---|
29 | D:$G(IBSEL)'["^" EN^IBTRE3(IBTRN)
|
---|
30 | D:$G(IBSEL)'["^" EN^IBTRE4(IBTRN)
|
---|
31 | D:$G(IBSEL)'["^" EN^IBTRE5(IBTRN)
|
---|
32 | D EDIT^IBTRVD1(".21////10;.21",1)
|
---|
33 | G:$G(IBSEL)["^" ANOTHER
|
---|
34 | I IBETYP'=1 G ADNXTQ
|
---|
35 | ;
|
---|
36 | ANOTHER ; -- ask if add another if no ask next review date/status
|
---|
37 | S IBMORE=$$ASKMORE^IBTRV31()
|
---|
38 | I IBMORE["^" D G ADNXTQ
|
---|
39 | .D EDIT^IBTRVD1("1.13////0;1.15////1;.2",1)
|
---|
40 | .Q
|
---|
41 | ;
|
---|
42 | ; -- if yes ask set next review date ="" ask status
|
---|
43 | I IBMORE D
|
---|
44 | .D EDIT^IBTRVD1(".2///@",1) ;delete next review date
|
---|
45 | .Q
|
---|
46 | ; -- if no g adnxtq
|
---|
47 | I 'IBMORE S VALMBCK="R" D G ADNXTQ
|
---|
48 | .D EDIT^IBTRVD1("1.13////0;1.15;I 'X S Y=""@9"";.2//^S X=$$DAT1^IBOUTL($$NXTRVDT^IBTRV31(IBTRV));@9;1.17;S Y=""@99"";.2///@;@99",1)
|
---|
49 | ;
|
---|
50 | SAME ; -- ask if same
|
---|
51 | S IBSAME=$$ASKSAME^IBTRV31()
|
---|
52 | D EDIT^IBTRVD1("1.13////1;1.14////"_+IBSAME,1)
|
---|
53 | ;
|
---|
54 | I IBSAME["^" G ADNXTQ
|
---|
55 | ;
|
---|
56 | ; -- if yes file / increment day ask status/clinical data g another
|
---|
57 | I IBSAME D G ANOTHER
|
---|
58 | .S IBRDAY=IBRDAY+1
|
---|
59 | .S IBTRTP=30
|
---|
60 | .D MESS
|
---|
61 | .D COPY^IBTRV31(IBTRV) ; after copy ibtrv will be value of new review
|
---|
62 | .Q
|
---|
63 | ;
|
---|
64 | ; -- if no edit g another
|
---|
65 | I 'IBSAME D G INPT
|
---|
66 | .S IBRDAY=IBRDAY+1
|
---|
67 | .S IBTRTP=30
|
---|
68 | ;
|
---|
69 | ADNXTQ Q
|
---|
70 | ;
|
---|
71 | REV(IBTRN,IBTRTP) ; -- Add review
|
---|
72 | ; -- input ibtrtp = tracking type code,
|
---|
73 | ; ibtrn = internal id of tracking entry
|
---|
74 | I '$G(IBTRTP)!('$G(IBTRN)) W !!,"DUH, Nothing Added!" D PAUSE^VALM1 G REVQ ; only stupid programmers should get this message
|
---|
75 | N IBQUIT,IBDGPMD,IBTRVDT
|
---|
76 | S IBQUIT=0,IBTRVDT=$$RDT^IBTRV31(IBTRN)
|
---|
77 | ;
|
---|
78 | I IBTRTP=30 D G:IBQUIT REVQ
|
---|
79 | .I '$D(^IBT(356.1,"ATRTP",IBTRN,15)) W !!,"There must be an admission review first" S IBQUIT=1 Q
|
---|
80 | .Q
|
---|
81 | ;
|
---|
82 | ; -- reviews after discharge date don't make sense
|
---|
83 | S IBDGPMD=$P($G(^DGPM(+$P(^IBT(356,IBTRN,0),"^",5),0)),"^",17)
|
---|
84 | ; finish this here
|
---|
85 | ;
|
---|
86 | D PRE^IBTUTL2(+$P(IBTRVDT,"."),IBTRN,IBTRTP)
|
---|
87 | D MESS
|
---|
88 | I '$D(IBTRV) G REVQ
|
---|
89 | S VA200="" D INP^VADPT
|
---|
90 | D @IBTRTP D EDIT^IBTRVD1(.DR,1)
|
---|
91 | REVQ Q
|
---|
92 | ;
|
---|
93 | 15 ; -- Initial edit of admission review
|
---|
94 | S DR=".03////1;D UNIT^IBTRV3(IBTRV);.01;.07////^S X=IBSPEC;.07;.23//INTERQUAL;I X'=1 S Y=""@20"";.04;.05;.06;I X=1 S Y=""@20"";12;.1;I 'X S Y=""@20"";.11;@20;11;"
|
---|
95 | Q
|
---|
96 | ;
|
---|
97 | 30 ; -- Initial edit for continued stay
|
---|
98 | S DR=".01;.03//^S X=$$RDAY^IBTRV31(IBTRN);D UNIT^IBTRV3(IBTRV);.07////^S X=$G(IBSPEC);.07;.23//INTERQUAL;I X'=1 S Y=""@20"";.05;.04;I $P(^IBT(356.1,DA,0),U,4),$P(^(0),U,5) S Y=""@20"";.12;13;"
|
---|
99 | S DR=DR_".1;I 'X S Y=""@20"";.11;@20;11;"
|
---|
100 | ;S DR="[IBTRV NEW CONT]"
|
---|
101 | Q
|
---|
102 | ;
|
---|
103 | 50 ; -- outpatient review
|
---|
104 | D 15
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | UNIT(X) ; -- determine if specialty is a specialized unit
|
---|
108 | ; input (review)
|
---|
109 | ; output 1 if unit, 0 if not
|
---|
110 | N Y,VAIN,VAINDT,VA200
|
---|
111 | S IBUNIT=0,VA200=""
|
---|
112 | I '$D(DA),$G(IBTRV) N DA S DA=IBTRV
|
---|
113 | S VAINDT=$$VDT(IBTRN,DA),VA200="" D INP^VADPT
|
---|
114 | I $P(VAIN(3),"^",2)["ICU"!$P(VAIN(3),"^",2)["CCU" S IBUNIT=1
|
---|
115 | S IBSPEC=$P(VAIN(3),U),IBPROV=$P(VAIN(2),U),IBATD=$P(VAIN(11),U)
|
---|
116 | Q
|
---|
117 | ;
|
---|
118 | INSURD(X) ; -- determine if this is tracked as an ins. claim
|
---|
119 | Q +$P(^IBT(356,+$P(^IBT(356.1,X,0),"^",2),0),"^",24)
|
---|
120 | ;
|
---|
121 | VDT(IBTRN,IBTRV) ; compute vaindt for day of review
|
---|
122 | N IBX,DAY
|
---|
123 | ;patch 40
|
---|
124 | S IBX=$P($P(^IBT(356,+IBTRN,0),"^",6),".")_.2359 ; midnight of admission day
|
---|
125 | I $G(IBTRV) S DAY=$P($G(^IBT(356.1,+IBTRV,0)),"^",3)
|
---|
126 | I $G(DAY)>1 S IBX=$P($$FMADD^XLFDT(IBX,DAY-1),".")_.2359 ; midnight of review day (day1 = admission day) ; patch 40 corrects the time problem +.24
|
---|
127 | Q IBX
|
---|
128 | ;
|
---|
129 | MESS ; -- add message
|
---|
130 | W:IBTRTP=30 !!,"Adding a Continued Stay Review for Review Day ",$G(IBRDAY),".",!
|
---|
131 | W:IBTRTP=15 !!,"Adding an Admission Review",!
|
---|
132 | W:IBTRTP=50 !!,"Adding an Outpatient Visit Review",!
|
---|
133 | Q
|
---|