| 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
 | 
|---|