1 | IB20P336 ;OAK/ELZ - IB*2*336 POST INIT TO REPORT CLAIMS TRACKING PROBLEMS ;15-DEC-2005
|
---|
2 | ;;2.0;INTEGRATED BILLING;**336**;21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; With the release of CIDC (IB*2*260), PSO added a new node for storage of SC/EI determinations. However it turns
|
---|
6 | ; out this new node is not always there. If the node is there the data contained in that node is correct for SC/EI
|
---|
7 | ; determination. But if the node was not there IB needed to revert back to its original process for marking CT
|
---|
8 | ; entries. That reversion was not included in IB*2*260, but is included in this IB*2*336 patch. This post init
|
---|
9 | ; routine will look through CT entries for Pharmacy that were created after IB*2*260 was installed and evaluate
|
---|
10 | ; those CT entries. Since some sites spend time manually reviewing these entries the entries cannot be auto-
|
---|
11 | ; matically marked and bills cannot be automatically cancelled. So this post init routine will provide an e-mail
|
---|
12 | ; report of CT entries that should be reviewed by the site. Also as a note the PSO IBQ node is not a reliable
|
---|
13 | ; node to look at for patients >49% SC, in fact should not ever be populated for these patients. So if anyone
|
---|
14 | ; does a comparison they are likely to find invalid data. PSO stopped populating IBQ for >49% SC with the
|
---|
15 | ; release of PSO*7*219.
|
---|
16 | ;
|
---|
17 | ;
|
---|
18 | POST ; post init entry point
|
---|
19 | ;
|
---|
20 | N IBIDT,IBX,IBSTOP,IBDATA,IBDPT,IBL,IBPNM,IBZ,XMDUZ,XMSUB,XMY,XMZ
|
---|
21 | ;
|
---|
22 | D BMES^XPDUTL("Starting Post Install to evaluate CT entries...")
|
---|
23 | ;
|
---|
24 | K ^TMP("IB20P336",$J)
|
---|
25 | ;
|
---|
26 | ; dbia #2197
|
---|
27 | S IBIDT=$P($G(^XPD(9.7,+$O(^XPD(9.7,"B","IB*2.0*260",0)),1)),"^")
|
---|
28 | I 'IBIDT D BMES^XPDUTL("Cannot find first install of IB*2*260!!! LOG A REMEDY TICKET") Q
|
---|
29 | ;
|
---|
30 | ; start at end of CT file and work backwards to beginning
|
---|
31 | S IBSTOP=0,IBX=":" F S IBX=$O(^IBT(356,IBX),-1) Q:'IBX!(IBSTOP) D
|
---|
32 | . S IBZ=$G(^IBT(356,IBX,0))
|
---|
33 | . Q:'$P(IBZ,"^",8)
|
---|
34 | . ;
|
---|
35 | . ; can i end?
|
---|
36 | . S IBDT=+$G(^IBT(356,IBX,1)) I IBDT,IBDT<IBIDT S IBSTOP=1 Q
|
---|
37 | . ;
|
---|
38 | . ; entry has a RNB no need to check out
|
---|
39 | . Q:$P(IBZ,"^",19)
|
---|
40 | . ;
|
---|
41 | . ; PSO has an ICD node so it was done right
|
---|
42 | . Q:$D(^PSRX($P(IBZ,"^",8),"ICD"))
|
---|
43 | . ;
|
---|
44 | . ;determine RNB would have been had CIDC not been installed, if none quit
|
---|
45 | . S IBRMARK=$$RNB($P(IBZ,"^",2),$P(IBZ,"^",6),$P(IBZ,"^",8),$G(^PSRX($P(IBZ,"^",8),0)))
|
---|
46 | . I IBRMARK="" Q
|
---|
47 | . ;
|
---|
48 | . S IBDPT=$G(^DPT(+$P(IBZ,"^",2),0)) Q:'$L(IBDPT)
|
---|
49 | . S IBDATA=$$TXT($P(IBDPT,"^"),15)_$$TXT($E($P(IBDPT,"^",9),6,9),4)
|
---|
50 | . S IBDATA=IBDATA_$$TXT($$FMTE^XLFDT($P(IBZ,"^",6),"2DZ"),8)_$$TXT($P($G(^PSRX($P(IBZ,"^",8),0)),"^"),10)
|
---|
51 | . S IBDATA=IBDATA_$$TXT($P($G(^DGCR(399,+$P(IBZ,"^",11),0)),"^"),10)_$$TXT(IBRMARK,14)
|
---|
52 | . ;
|
---|
53 | . ; get AR status
|
---|
54 | . S:$P(IBZ,"^",11) IBDATA=IBDATA_$E($P($$STA^PRCAFN(+$P(IBZ,"^",11)),"^",2),1,4)
|
---|
55 | . ;
|
---|
56 | . S ^TMP("IB20P336",$J,$P(IBDPT,"^"),IBX)=IBDATA
|
---|
57 | ;
|
---|
58 | D BMES^XPDUTL("Sending report message...")
|
---|
59 | ;
|
---|
60 | ; get message and send
|
---|
61 | RETRY ;
|
---|
62 | S XMSUB="CLAIMS TRACKING PHARMACY IB*2*336"
|
---|
63 | S XMDUZ="INTEGRATED BILLING PACKAGE"
|
---|
64 | D XMZ^XMA2
|
---|
65 | I XMZ<1 G RETRY
|
---|
66 | ;
|
---|
67 | ;set priority on message
|
---|
68 | S DIE=3.9,DA=XMZ,DR="1.7////P" D ^DIE
|
---|
69 | ;
|
---|
70 | S ^XMB(3.9,XMZ,2,1,0)="With the install of the CIDC software (IB*2*260) some pharmacy related"
|
---|
71 | S ^XMB(3.9,XMZ,2,2,0)="Claims Tracking (CT) entries may not have been assigned a Reason Not"
|
---|
72 | S ^XMB(3.9,XMZ,2,3,0)="Billable (RNB). Below is a list of CT entries that do not have a RNB"
|
---|
73 | S ^XMB(3.9,XMZ,2,4,0)="with a RNB that should have been originally assigned to them. Please"
|
---|
74 | S ^XMB(3.9,XMZ,2,5,0)="review the list below and assign a RNB if appropriate."
|
---|
75 | S ^XMB(3.9,XMZ,2,6,0)=" "
|
---|
76 | S ^XMB(3.9,XMZ,2,7,0)="Name SSN Date Rx# Bill# RNB AR"
|
---|
77 | S ^XMB(3.9,XMZ,2,8,0)="--------------- ---- -------- ---------- ---------- -------------- ----"
|
---|
78 | S IBL=8
|
---|
79 | S IBPNM="" F S IBPNM=$O(^TMP("IB20P336",$J,IBPNM)) Q:IBPNM="" S IBX=0 F S IBX=$O(^TMP("IB20P336",$J,IBPNM,IBX)) Q:'IBX D
|
---|
80 | . S IBL=IBL+1
|
---|
81 | . S ^XMB(3.9,XMZ,2,IBL,0)=^TMP("IB20P336",$J,IBPNM,IBX)
|
---|
82 | I '$D(^TMP("IB20P336",$J)) S ^XMB(3.9,XMZ,2,IBL+1,0)=" <None Found>"
|
---|
83 | S ^XMB(3.9,XMZ,2,0)="^3.92^"_IBL_"^"_IBL_"^"_DT
|
---|
84 | ;
|
---|
85 | S XMDUZ="INTEGRATED BILLING PACKAGE"
|
---|
86 | S XMY(DUZ)="" ; Individual as a recipient
|
---|
87 | F IBX="IB SUPERVISOR","IB CLAIMS SUPERVISOR" S IBZ=0 F S IBZ=$O(^XUSEC(IBX,IBZ)) Q:'IBZ S XMY(IBZ)=""
|
---|
88 | ;
|
---|
89 | D ENT1^XMD
|
---|
90 | ;
|
---|
91 | D BMES^XPDUTL("Message number "_XMZ_" sent...")
|
---|
92 | ;
|
---|
93 | K ^TMP("IB20P336",$J)
|
---|
94 | ;
|
---|
95 | D BMES^XPDUTL("Post Install Complete...")
|
---|
96 | ;
|
---|
97 | Q
|
---|
98 | ;
|
---|
99 | ;
|
---|
100 | RNB(DFN,IBDT,IBRXN,IBRXDATA) ; determines what the RNB would have been had the new ICD node not been checked
|
---|
101 | ;
|
---|
102 | N VAEL,IBRMARK,VA,IBPOWUNV,IBAUTRET
|
---|
103 | ;
|
---|
104 | D ELIG^VADPT
|
---|
105 | ;if the patient is covered by insurance for pharmacy ($G(IBRMARK)="")
|
---|
106 | ;AND if no copay in #350
|
---|
107 | ;then we need to determine the non billable reason and set IBRMARK
|
---|
108 | ;
|
---|
109 | ;IF VAEL(3) -- if this is a veteran with SC(service connection) status
|
---|
110 | I VAEL(3),'$G(^PSRX(IBRXN,"IB")) D
|
---|
111 | . I $P(VAEL(3),"^",2)>49 S IBRMARK="NEEDS SC DETERMINATION"
|
---|
112 | . ;in case of POW and Unempl. vet we cannot decide if the 3rd party should be exempt
|
---|
113 | . S IBAUTRET=$$AUTOINFO^DGMTCOU1(DFN),IBPOWUNV=$S($P(IBAUTRET,U,8):1,$P(IBAUTRET,U,9):1,1:0)
|
---|
114 | . I $P(VAEL(3),"^",2)<50 S IBRMARK=$S(IBPOWUNV:"NEEDS SC DETERMINATION",1:"SC TREATMENT")
|
---|
115 | . I $$RXST^IBARXEU(DFN,$P(IBRXDATA,U,13))>0 S IBRMARK="NEEDS SC DETERMINATION"
|
---|
116 | ;
|
---|
117 | ;IF +VAEL(3)=0 if the veteran doesn't have SC status, but
|
---|
118 | ;the veteran still may have CV status active
|
---|
119 | I $G(IBRMARK)="",+VAEL(3)=0,'$G(^PSRX(IBRXN,"IB")) D
|
---|
120 | . I $$CVEDT^IBACV(DFN,IBDT) S IBRMARK="NEEDS SC DETERMINATION" ;SC-because IB staff usually is using this reason to search for cases that need to be reviewed. COMBAT VETERAN reason will be used after review if this was the case
|
---|
121 | ;
|
---|
122 | ;
|
---|
123 | Q $G(IBRMARK)
|
---|
124 | ;
|
---|
125 | ;
|
---|
126 | TXT(X,Y) ; make text Y characters long adding 2 spaces
|
---|
127 | Q $$LJ^XLFSTR($E(X,1,Y),Y+2)
|
---|
128 | ;
|
---|