1 | IBARXEPV ;ALB/AAS - RX COPAY EXEMPTION VERIFY STATUS ; 02/12/2004
|
---|
2 | ;;2.0;INTEGRATED BILLING;**262**; 21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | % ; -- print/verify patients whose current exemption does not match
|
---|
6 | ; what is currently computed.
|
---|
7 | I '$D(DT) D DT^DICRW
|
---|
8 | S IBQUIT=0
|
---|
9 | I '$D(IOF) D HOME^%ZIS
|
---|
10 | W @IOF,"Verify Medication Copayment Exemption Status"
|
---|
11 | W !! D DATE^IBOUTL
|
---|
12 | I 'IBBDT!('IBEDT)!(IBEDT<IBBDT) G END
|
---|
13 | ;
|
---|
14 | ; -- update patient status
|
---|
15 | W !
|
---|
16 | S DIR("?")="Answer 'YES' if you want to automatically update patient status to the computed status, or 'NO' to print a report of discrepancies."
|
---|
17 | S DIR(0)="Y",DIR("A")="Update Patient Status",DIR("B")="NO" D ^DIR K DIR S IBUP=+Y
|
---|
18 | I $D(DIRUT) G END
|
---|
19 | W !
|
---|
20 | ;
|
---|
21 | DEV W !!,"You will need a 132 column printer for this report!",!
|
---|
22 | S %ZIS="QM" D ^%ZIS G:POP END
|
---|
23 | I $D(IO("Q")) S ZTRTN="DQ^IBARXEPV",ZTSAVE("IB*")="",ZTDESC="IB Verify Medication Copayment exemption" D ^%ZTLOAD K ZTSK,IO("Q") D HOME^%ZIS G END
|
---|
24 | I '$D(ZTQUEUED) W !,"HMMMM, LET ME THINK ABOUT THIS FOR A MINUTE"
|
---|
25 | U IO
|
---|
26 | ;
|
---|
27 | DQ ; -- entry point from task man to start comparison
|
---|
28 | S (IBPCNT,IBPAG)=0,IBOK=1 D NOW^%DTC S Y=% D D^DIQ S IBPDAT=$P(Y,"@")_" "_$E($P(Y,"@",2),1,5)
|
---|
29 | K ^TMP($J,"IBUNVER")
|
---|
30 | ;
|
---|
31 | ; -- look through inverse date x-ref
|
---|
32 | S IBDT=IBBDT-.00001
|
---|
33 | F S IBDT=$O(^IBA(354.1,"B",IBDT)) Q:'IBDT!(IBDT>(IBEDT+.9)) S IBDA=0 F S IBDA=$O(^IBA(354.1,"B",IBDT,IBDA)) Q:'IBDA D CHK I 'IBOK D UP:IBUP,SET
|
---|
34 | D REPORT,PAUSE^IBOUTL:'IBQUIT
|
---|
35 | G END
|
---|
36 | ;
|
---|
37 | END K ^TMP($J,"IBUNVER")
|
---|
38 | I $D(ZTQUEUED) S ZTREQ="@" Q
|
---|
39 | D ^%ZISC
|
---|
40 | K DFN,DIR,DIRUT,DIC,DIE,DA,DR,X,Y
|
---|
41 | K IBBDT,IBDA,IBDATA,IBDEPEN,IBDFN,IBDT,IBEDT,IBER,IBERR,IBEXREA,IBEXREAN,IBEXREAO,IBJ,IBMESS,IBNAM,IBOK,IBP,IBPAG,IBPCNT,IBPDAT,IBQUIT,IBUP
|
---|
42 | Q
|
---|
43 | ;
|
---|
44 | REPORT ; -- print report
|
---|
45 | D HDR S IBDCNT=0
|
---|
46 | I '$D(^TMP($J,"IBUNVER")) W !,"No discrepancies found in ",IBPCNT," exemptions checked." G REPORTQ
|
---|
47 | ;
|
---|
48 | S IBNAM=""
|
---|
49 | F S IBNAM=$O(^TMP($J,"IBUNVER",IBNAM)) Q:IBNAM=""!(IBQUIT) S IBDFN="" F S IBDFN=$O(^TMP($J,"IBUNVER",IBNAM,IBDFN)) Q:IBDFN=""!(IBQUIT) S IBER=^(IBDFN) D LINE
|
---|
50 | ;
|
---|
51 | W !!,"There were ",IBDCNT," discrepancies found in ",IBPCNT," exemptions checked."
|
---|
52 | ;
|
---|
53 | REPORTQ Q
|
---|
54 | ;
|
---|
55 | LINE ; -- write each line
|
---|
56 | S DFN=+IBDFN,IBDCNT=IBDCNT+1
|
---|
57 | I $Y>(IOSL-5) D PAUSE^IBOUTL Q:IBQUIT D HDR
|
---|
58 | W !,$E(IBNAM,1,20),?22,$P(IBER,"^",8)
|
---|
59 | S X=$P(IBER,"^",5) W ?39,$S(X=3:"Exemption incorrect",X=1!(X=2)!(X=5):"Not Current Status",X=4:"Name Missing",1:"Hmmmm")
|
---|
60 | W ?61,$$DAT1^IBOUTL($P(IBER,"^",2))_" "_$E($P($G(^IBE(354.2,+IBER,0)),"^"),1,15)
|
---|
61 | W ?88,$$DAT1^IBOUTL($P(IBER,"^",4))_" "_$E($P($G(^IBE(354.2,+$P(IBER,"^",3),0)),"^"),1,15)
|
---|
62 | W ?115,$P(IBER,"^",6)
|
---|
63 | Q
|
---|
64 | ;
|
---|
65 | CHK ; -- check if current status = computed status
|
---|
66 | S IBOK=1,IBMESS="Nothing Updated",IBERR=""
|
---|
67 | S X=$G(^IBA(354.1,+IBDA,0)) G CHKQ:'$P(X,"^",10) ;not active skip
|
---|
68 | S DFN=$P(X,"^",2)
|
---|
69 | S Y=$G(^IBA(354,DFN,0)) I +X<$P(Y,"^",3) G CHKQ ;not current exemption
|
---|
70 | ;
|
---|
71 | N DGMT,CONV,CLN S (CLN,CONV)=0,DGMT=$$LST^DGMTU(DFN,+X,1)
|
---|
72 | I $P(DGMT,U,5)=2 D G:CONV CHKQ ; skip Edb conv. tests
|
---|
73 | .; Loop through the MT comments, Check for EDB converted test
|
---|
74 | .; No comments to check
|
---|
75 | .Q:'$D(^DGMT(408.31,+DGMT,"C",1,0))
|
---|
76 | .F S CLN=$O(^DGMT(408.31,+DGMT,"C",CLN)) Q:'CLN!(CONV) D
|
---|
77 | ..I ^DGMT(408.31,+DGMT,"C",CLN,0)["Z06 MT via Edb" S CONV=1
|
---|
78 | ;
|
---|
79 | S IBPCNT=IBPCNT+1
|
---|
80 | I '+Y S IBOK=0,IBERR=4
|
---|
81 | S IBEXREAO=$P(X,"^",5)_"^"_+X ;current exemption
|
---|
82 | I $P($G(^IBE(354.2,+IBEXREAO,0)),"^",5)=2010 G CHKQ ; hardships don't report
|
---|
83 | I +X>$P(Y,"^",3) S IBOK=0,IBERR=1 ;most current exemption not in 354
|
---|
84 | I $P(X,"^",5)'=$P(Y,"^",5) S IBOK=0,IBERR=2 ;Current exemption not in 354
|
---|
85 | I $P(X,"^",4)'=$P(Y,"^",4) S IBOK=0,IBERR=5 ;current status in exemption not in 354
|
---|
86 | S IBEXREAN=$$STATUS^IBARXEU1(DFN,DT)
|
---|
87 | I +IBEXREAO'=+IBEXREAN S IBOK=0,IBERR=3
|
---|
88 | CHKQ Q
|
---|
89 | ;
|
---|
90 | UP ; -- update current exemption status
|
---|
91 | Q:IBOK
|
---|
92 | S IBJOB=15,IBWHER=16
|
---|
93 | I IBERR=4 D G UPQ
|
---|
94 | .S DIE="^IBA(354,",DA=DFN,DR=".01////"_DFN D ^DIE
|
---|
95 | .K DIE,DA,DR,DIC
|
---|
96 | .S IBMESS="Name Corrected"
|
---|
97 | UP1 N IBOLDAUT S IBOLDAUT=""
|
---|
98 | ;
|
---|
99 | ; -- if currently not auto exempt make sure not more recent autoexempt
|
---|
100 | I $L($P($G(^IBE(354.2,+IBEXREAN,0)),"^",5))>2 D OLDAUT^IBARXEX1(IBEXREAN)
|
---|
101 | S IBFORCE=$P(IBEXREAN,"^",2)
|
---|
102 | D MOSTR^IBARXEU5($P(IBEXREAN,"^",2),+IBEXREAN)
|
---|
103 | D ADDEX^IBAUTL6(+IBEXREAN,$P(IBEXREAN,"^",2),1,1,IBOLDAUT)
|
---|
104 | S IBMESS="Updated"
|
---|
105 | UPQ K IBFORCE Q
|
---|
106 | ;
|
---|
107 | SET ; -- set ^tmp node if not okay
|
---|
108 | Q:IBOK
|
---|
109 | S IBP=$$PT^IBEFUNC(DFN)
|
---|
110 | S IBDFN=DFN
|
---|
111 | I $D(^TMP($J,"IBUNVER",$P(IBP,"^"),DFN)) S IBDFN=DFN_"-"_IBPCNT
|
---|
112 | S ^TMP($J,"IBUNVER",$P(IBP,"^"),IBDFN)=IBEXREAO_"^"_IBEXREAN_"^"_IBERR_"^"_IBMESS_"^"_IBP
|
---|
113 | Q
|
---|
114 | ;
|
---|
115 | HDR ; -- print header
|
---|
116 | I IBPAG!($E(IOST,1,2)="C-") W @IOF
|
---|
117 | S IBPAG=IBPAG+1
|
---|
118 | W !,"Medication Copayment Exemption Problem Report",?(IOM-31),IBPDAT," Page ",IBPAG
|
---|
119 | W !,"Patient",?22,"PT. ID",?39,"Error",?61,"Current Exemption",?88,"Computed Exemption",?115,"Action"
|
---|
120 | W !,$TR($J(" ",IOM)," ","-")
|
---|
121 | Q
|
---|