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