1 | IBAMTED ;ALB/CPM,GN,PHH,EG - MEANS TEST EVENT DRIVER INTERFACE ; 11/30/05 1:48pm
|
---|
2 | ;;2.0;INTEGRATED BILLING;**15,255,269,321,312**;21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ;IB*2*269 add IVM converted RX Copay Test update calls to a new API.
|
---|
6 | ;
|
---|
7 | ; -- do medication copayment exemption processing
|
---|
8 | ;
|
---|
9 | ;Z06 processing for RX Copay then Quit
|
---|
10 | I $D(EASZ06),DGMTYPT=2 D ^IBAMTED2 G END ;IB*2*269
|
---|
11 | ;Original Non-Z06 Copay processing
|
---|
12 | I '$D(EASZ06) D
|
---|
13 | . ;this routine is called from the DG namespace and IB namespace
|
---|
14 | . ;when coming in from the DG namespace, variable DGMTD and DGMTDT is
|
---|
15 | . ;used to define the means test test. When coming in
|
---|
16 | . ;from the IB namespace, variable IBDT OR IVMMTDT is used
|
---|
17 | . I '$D(IBDT) N IBDT
|
---|
18 | . S IBDT=$S($D(IBDT):IBDT,$D(IVMMTDT):IVMMTDT,$D(DGMTDT):DGMTDT,$D(DGMTD):DGMTD,1:0)
|
---|
19 | . I $P($G(^DGMT(408.31,+$$LST^DGMTCOU1(DFN,IBDT,2),0)),"^",23)=2 Q
|
---|
20 | . I $G(^DGMT(408.31,+$$LST^DGMTCOU1(DFN,IBDT,2),"C",1,0))["Z06 MT via Edb" Q
|
---|
21 | . D ^IBAMTED1
|
---|
22 | . Q
|
---|
23 | ;
|
---|
24 | ; -- end medication copayment exemption processing
|
---|
25 | ;
|
---|
26 | Q:+$$SWSTAT^IBBAPI() ;IB*2.0*312
|
---|
27 | ;
|
---|
28 | ; Quit if supported variables are unavailable.
|
---|
29 | Q:'$D(DFN)!('$D(DGMTA))!('$D(DGMTP))!('$D(DUZ))!('$D(DGMTINF))!('$D(DGMTACT))
|
---|
30 | ;
|
---|
31 | ;***
|
---|
32 | ;S XRTL=$ZU(0),XRTN="IBAMTED-1" D T0^%ZOSV ;start rt clock
|
---|
33 | ;
|
---|
34 | ; -- quit if copay exemption test
|
---|
35 | I $P(DGMTA,"^",19)=2!($P(DGMTP,"^",19)=2) G END
|
---|
36 | ;
|
---|
37 | ; Quit if test is a Category change resulting from a deleted test.
|
---|
38 | I DGMTA]"",DGMTP]"",+DGMTA'=+DGMTP G END ; on-line deletion
|
---|
39 | I DGMTA]"",DGMTP]"",DGMTACT="DEL" G END ; IVM 'delete' transmission
|
---|
40 | ;
|
---|
41 | ; Process Means Tests uploaded by IVM.
|
---|
42 | I DGMTACT="UPL"!(DGMTACT="DUP") D G END
|
---|
43 | .;
|
---|
44 | .; - if IVM is uploading a verified test, create new MT charges
|
---|
45 | .I $P(DGMTP,"^",23)<2,$P(DGMTA,"^",23)>1,'$$CK^DGMTUB(DGMTP),$$CK^DGMTUB(DGMTA) D ^IBAMTV Q
|
---|
46 | .;
|
---|
47 | .; - if IVM is sending a 'Delete' transmission, cancel previous charges
|
---|
48 | .I $P(DGMTP,"^",23)>1,$P(DGMTA,"^",23)<2,$$CK^DGMTUB(DGMTP),'$$CK^DGMTUB(DGMTA) D CANC^IBAMTV
|
---|
49 | ;
|
---|
50 | ; Quit if the most current Means Test was not altered.
|
---|
51 | S IBMT=$S(DGMTA="":DGMTP,1:DGMTA)
|
---|
52 | S X=$$LST^DGMTU(DFN) I X,$P(X,"^",2)>+IBMT G END
|
---|
53 | ;
|
---|
54 | ; Quit if an added or deleted test is a Required test.
|
---|
55 | I (DGMTA=""!(DGMTP="")),$P(IBMT,"^",3)=1 G END
|
---|
56 | ;
|
---|
57 | ; Determine the billable status before and after the transaction.
|
---|
58 | D NOW^%DTC S IBCATCA=$$BIL^DGMTUB(DFN,%)
|
---|
59 | S IBCATCP=$S(DGMTP="":$$ADD,DGMTA="":$$CK^DGMTUB(DGMTP),1:$$EDIT)
|
---|
60 | ;
|
---|
61 | ; Generate a bulletin if the patient's billing status has changed.
|
---|
62 | I (IBCATCP&('IBCATCA))!('IBCATCP&(IBCATCA)) D
|
---|
63 | .S IBEFDT=$S($P(IBMT,"^",7):+$P(IBMT,"^",7),1:+IBMT)
|
---|
64 | .I IBCATCP,'IBCATCA,'$$CHG^IBAMTEDU(IBEFDT) Q ; hasn't been billed since going c->a
|
---|
65 | .I 'IBCATCP,IBCATCA,'$$EP^IBAMTEDU(IBEFDT) Q ; hasn't been treated since going a->c
|
---|
66 | .D MT^IBAMTBU2 ; create bulletin
|
---|
67 | ;
|
---|
68 | END K IBARR,IBCANCEL,IBCATCA,IBCATCP,IBDIQ,IBDUZ,IBEFDT,IBMT,IBI,IBC,IBPT,IBT
|
---|
69 | K DIC,DIQ,DR,DA,VA,VAERR,VAEL,X,X1,X2,XMDUZ,XMTEXT,XMY,XMSUB
|
---|
70 | ;***
|
---|
71 | ;I $D(XRT0) S:'$D(XRTN) XRTN="IBAMTED" D T1^%ZOSV ;stop rt clock
|
---|
72 | Q
|
---|
73 | ;
|
---|
74 | ;
|
---|
75 | ADD() ; Determine the billable status before adding a Means Test.
|
---|
76 | S X1=$S($P(DGMTA,"^",3)=3:+DGMTA,1:+$P(DGMTA,"^",7)\1),X2=-1 D C^%DTC
|
---|
77 | Q $$BIL^DGMTUB(DFN,X)
|
---|
78 | ;
|
---|
79 | ;
|
---|
80 | EDIT() ; Determine the billable status before editing a Means Test.
|
---|
81 | I $P(DGMTP,"^",3)'=1 Q $$CK^DGMTUB(DGMTP)
|
---|
82 | S X1=+DGMTP,X2=-1 D C^%DTC Q $$BIL^DGMTUB(DFN,X)
|
---|