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