| [613] | 1 | IBAMTS2 ;ALB/CPM - PROCESS UPDATED OUTPATIENT ENCOUNTERS ; 25-AUG-93 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**52,91,117,132,153,156,167,247,339**;21-MAR-94;Build 2 | 
|---|
|  | 3 | ;;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | UPD ; Perform encounter update actions. | 
|---|
|  | 6 | N IBCBK,IBFILTER,IBVAL | 
|---|
|  | 7 | ; | 
|---|
|  | 8 | ; - was check out deleted? | 
|---|
|  | 9 | I IBAST'=2,IBBST=2 S IBCRES=$S(IBAST=8:5,1:1) | 
|---|
|  | 10 | ; | 
|---|
|  | 11 | ; - see if checked out appt classifications were changed | 
|---|
|  | 12 | I IBAST=2,IBBST=2 D CLSF^IBAMTS1(1,.IBCLSF) S IBACT=$$CLUPD() G:'IBACT UPDQ D  I IBACT'=1 G UPDQ | 
|---|
|  | 13 | .I IBACT=1 S IBCRES=2 Q | 
|---|
|  | 14 | .I IBACT=2 N IBCLSF D NEW^IBAMTS1 | 
|---|
|  | 15 | ; | 
|---|
|  | 16 | ; - cancel charge if there is a cancellation reason, and the billed | 
|---|
|  | 17 | ; - charge was for the appointment that is no longer billable | 
|---|
|  | 18 | I '$G(IBCRES) G UPDQ | 
|---|
|  | 19 | I '$$LINK(IBOE,$S(IBEVT:IBEVT,1:IBEV0),IBBILLED) G UPDQ | 
|---|
|  | 20 | D CANC G:IBY<0 UPDQ | 
|---|
|  | 21 | ; | 
|---|
|  | 22 | ; - look for other billable visits if Means Test billable | 
|---|
|  | 23 | I '$$BIL^DGMTUB(DFN,IBDT) G UPDQ | 
|---|
|  | 24 | S IBBILLED=0 | 
|---|
|  | 25 | ; | 
|---|
|  | 26 | S IBVAL("DFN")=DFN,IBVAL("BDT")=IBDAT-.1,IBVAL("EDT")=IBDAT_.99 | 
|---|
|  | 27 | S IBFILTER="" | 
|---|
|  | 28 | ; Skip encounter just cancelled, | 
|---|
|  | 29 | ;  consider only parent encounters, appts checked out | 
|---|
|  | 30 | S IBCBK="I Y'=IBOE,'$P(Y0,U,6),$P(Y0,U,12)=2 D BEDIT^IBAMTS2(Y,Y0) S:IBBILLED SDSTOP=1" | 
|---|
|  | 31 | D SCAN^IBSDU("PATIENT/DATE",.IBVAL,IBFILTER,IBCBK,1) K ^TMP("DIERR",$J) | 
|---|
|  | 32 | ; | 
|---|
|  | 33 | UPDQ K IBCLSF,IBACT,IBC,IBOEN,IBEVT | 
|---|
|  | 34 | Q | 
|---|
|  | 35 | ; | 
|---|
|  | 36 | BEDIT(IBOEN,IBEVT) ; - perform batch edit | 
|---|
|  | 37 | I $P(IBEVT,U,10)=1 S UNBILLED=1 Q  ; C&P exam -- stop looking | 
|---|
|  | 38 | S IBORG=+$P(IBEVT,U,8),IBAPTY=+$P(IBEVT,U,10) | 
|---|
|  | 39 | I IBORG=3 S IBDISP=+$$DISND^IBSDU(IBOEN,IBEVT,7) Q:'IBDISP | 
|---|
|  | 40 | Q:'$$CHKS^IBAMTS1 | 
|---|
|  | 41 | ; | 
|---|
|  | 42 | ; - check classifications | 
|---|
|  | 43 | S IBCLSF=$$ENCL(IBOEN) | 
|---|
|  | 44 | I IBCLSF[1 Q  ; care was related to ao/ir/swa/sc/mst/hnc/cv/shad | 
|---|
|  | 45 | S IBSL="409.68:"_IBOEN ; set softlink | 
|---|
|  | 46 | ; | 
|---|
|  | 47 | ; - ready to bill another encounter | 
|---|
|  | 48 | D BLD^IBAMTS1 S IBBILLED=1 | 
|---|
|  | 49 | Q | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | CRES ; List of cancellation reasons | 
|---|
|  | 52 | ;;CHECK OUT DELETED | 
|---|
|  | 53 | ;;CLASSIFICATION CHANGED | 
|---|
|  | 54 | ;;MT OP APPT NO-SHOW | 
|---|
|  | 55 | ;;MT OP APPT CANCELLED | 
|---|
|  | 56 | ;;RECD INPATIENT CARE | 
|---|
|  | 57 | ;;BILLED AT HIGHER TIER RATE | 
|---|
|  | 58 | ; | 
|---|
|  | 59 | LINK(IBOE,IBEVT,IBN) ; Was the billed charge for the current appointment? | 
|---|
|  | 60 | ;  Input:     IBOE  --  Pointer to outpatient encounter in file #409.68 | 
|---|
|  | 61 | ;            IBEVT  --  Zeroth node of encounter in file #409.68 | 
|---|
|  | 62 | ;              IBN  --  Pointer to charge in file #350 | 
|---|
|  | 63 | ;  Output:       0  --  Charge was not for current appointment | 
|---|
|  | 64 | ;                1  --  Charge was for current appointment | 
|---|
|  | 65 | N IBSL,Y | 
|---|
|  | 66 | I '$G(IBOE)!'$G(IBEVT)!'$G(IBN) G LINKQ | 
|---|
|  | 67 | S IBSL=$P($G(^IB(IBN,0)),"^",4) | 
|---|
|  | 68 | I +IBSL=44 S Y=$P(IBSL,";",1,2)=("44:"_$P(IBEVT,"^",4)_";S:"_+IBEVT) G LINKQ | 
|---|
|  | 69 | I +IBSL=409.68 S Y=IBSL=("409.68:"_IBOE) | 
|---|
|  | 70 | LINKQ Q +$G(Y) | 
|---|
|  | 71 | ; | 
|---|
|  | 72 | CLUPD() ; Examine changes in the classification. | 
|---|
|  | 73 | ;  Output:    0  --  no changes | 
|---|
|  | 74 | ;             1  --  changes require charges to be cancelled | 
|---|
|  | 75 | ;             2  --  changes require appt to be billed | 
|---|
|  | 76 | ;             3  --  [ec/swa] cancel charge, create deferred charge | 
|---|
|  | 77 | ;             4  --  [ec/swa] pass deferred charge, disposition case | 
|---|
|  | 78 | N I,Y S Y=0 | 
|---|
|  | 79 | I IBCLSF("BEFORE")=IBCLSF("AFTER") G CLUPDQ | 
|---|
|  | 80 | F I=1,2,3,4,5,6,7,8 I '$P(IBCLSF("BEFORE"),U,I),$P(IBCLSF("AFTER"),U,I) S Y=$S(I=4:3,1:1) G CLUPDQ | 
|---|
|  | 81 | F I=1,2,3,4,5,6,7,8 I $P(IBCLSF("BEFORE"),U,I),'$P(IBCLSF("AFTER"),U,I) S Y=$S(I=4:4,1:2) Q | 
|---|
|  | 82 | CLUPDQ Q Y | 
|---|
|  | 83 | ; | 
|---|
|  | 84 | CANC ; Determine cancellation reason and cancel charge | 
|---|
|  | 85 | ;  Input variables:   IBCRES  --  Code for reason to be determined | 
|---|
|  | 86 | ;                   IBBILLED  --  Charge to be cancelled | 
|---|
|  | 87 | S IBCRES=$P($T(CRES+IBCRES),";;",2),IBCRES=+$O(^IBE(350.3,"B",IBCRES,0)) | 
|---|
|  | 88 | D CANCH^IBECEAU4(IBBILLED,IBCRES) | 
|---|
|  | 89 | Q | 
|---|
|  | 90 | ; | 
|---|
|  | 91 | ENCL(IBOE) ; Return classification results for an encounter. | 
|---|
|  | 92 | ;  Input:    IBOE  --  Pointer to outpatient encounter in file #409.68 | 
|---|
|  | 93 | ;  Output:   ao^ir^sc^swa^mst^hnc^cv^shad, where, for each piece, | 
|---|
|  | 94 | ;                      1 - care was related to condition, and | 
|---|
|  | 95 | ;                      0 (or null) - care not related to condition | 
|---|
|  | 96 | N CL,CLD,X,Y S Y="" | 
|---|
|  | 97 | S CL=0 F  S CL=$O(^SDD(409.42,"OE",+$G(IBOE),CL)) Q:'CL  S CLD=$G(^SDD(409.42,CL,0)) I CLD S $P(Y,U,+CLD)=+$P(CLD,U,3) | 
|---|
|  | 98 | Q Y | 
|---|