| [613] | 1 | IBCEQ1 ;BSL,ALB/TMK - PROVIDER ID QUERY ;25-AUG-03 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**232,356,349**;21-MAR-94;Build 46 | 
|---|
|  | 3 | ;;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | ;QUERY TOOL HELPS IDENTIFY PLANS THAT ARE LACKING PROVIDER ID | 
|---|
|  | 6 | ;INFO OR HAVE BAD PROVIDER ID DATA FOR E-BILLING | 
|---|
|  | 7 | ; | 
|---|
|  | 8 | ;CONDITIONS TO IDENTIFY: | 
|---|
|  | 9 | ;1-BLUE CROSS LINKED TO 1500 ONLY (1) HARD ERROR | 
|---|
|  | 10 | ;2-BLUE SHIELD LINKED TO UB-04 ONLY (2) WARNING | 
|---|
|  | 11 | ;3-BLUE CROSS ID APPLIED TO BOTH FORMS (0) WARNING | 
|---|
|  | 12 | ;4-BLUE CROSS OR BLUE SHIELD IDs EXIST FOR AN INS CO, BUT ONE OR | 
|---|
|  | 13 | ;  MORE OF THE INSURANCE COMPANY'S PLANS DOES NOT HAVE AN | 
|---|
|  | 14 | ;  ELECTRONIC PLAN TYPE OF 'BL' | 
|---|
|  | 15 | ;5-NON BLUE CROSS/SHIELD ID FOR AN INS COMPANY WITH BLUE PLAN(S) | 
|---|
|  | 16 | ;6-VAD000 as an ID but not flagged as a UPIN | 
|---|
|  | 17 | ; | 
|---|
|  | 18 | EN ; | 
|---|
|  | 19 | N POP,%ZIS,ZTSK,ZTRTN,ZTDESC,IBREBLD,IBSENDM,IBTO,DIR,X,Y,DUOUT,DTOUT,Z | 
|---|
|  | 20 | S IBREBLD=$S('$D(^XTMP("IB_PLAN232")):1,1:0) | 
|---|
|  | 21 | I $D(^XTMP("IB_PLAN232")) D | 
|---|
|  | 22 | . S DIR("?")="IF YOU ANSWER NO, REPORT WILL BE RUN FROM THE EXISTING QUERY DATA",DIR("?",1)="IF YOU ANSWER YES, A NEW QUERY WILL BE RUN" | 
|---|
|  | 23 | . S DIR(0)="YA",DIR("A",1)="THE EXTRACT GLOBAL FOR THIS QUERY ALREADY EXISTS",DIR("A")="DO YOU WANT TO DELETE IT AND RERUN THE QUERY?: ",DIR("B")="NO" W ! D ^DIR K DIR | 
|---|
|  | 24 | . Q:$D(DUOUT)!$D(DTOUT)!'Y | 
|---|
|  | 25 | . S IBREBLD=1 | 
|---|
|  | 26 | ; | 
|---|
|  | 27 | N XMINSTR,Z,ZTSAVE | 
|---|
|  | 28 | K ^TMP("XMY",$J),^TMP("XMY0",$J) | 
|---|
|  | 29 | S XMINSTR("ADDR FLAGS")="R" | 
|---|
|  | 30 | D TOWHOM^XMXAPIU(DUZ,"","S",.XMINSTR) | 
|---|
|  | 31 | S Z="" F  S Z=$O(^TMP("XMY",$J,Z)) Q:Z=""  S IBTO(Z)="" | 
|---|
|  | 32 | K ^TMP("XMY",$J),^TMP("XMY0",$J) | 
|---|
|  | 33 | ; | 
|---|
|  | 34 | S %ZIS="QM" D ^%ZIS G:POP EN1Q | 
|---|
|  | 35 | I $D(IO("Q")) D  G EN1Q | 
|---|
|  | 36 | . S ZTRTN="ENT^IBCEQ1("_IBREBLD_",.IBTO)",ZTDESC="IB - HIPAA ENHANCEMENTS PROV ID QUERY",ZTSAVE("IBTO(")="" | 
|---|
|  | 37 | . D ^%ZTLOAD | 
|---|
|  | 38 | . W !!,$S($D(ZTSK):"Task # "_ZTSK_" has been queued.",1:"Unable to queue this job.") | 
|---|
|  | 39 | . K ZTSK,IO("Q") D HOME^%ZIS | 
|---|
|  | 40 | U IO | 
|---|
|  | 41 | D ENT(IBREBLD,.IBTO) | 
|---|
|  | 42 | EN1Q Q | 
|---|
|  | 43 | ; | 
|---|
|  | 44 | ENT(IBREBLD,IBTO) ; Queued job enter here | 
|---|
|  | 45 | ; | 
|---|
|  | 46 | N LOOP,Z | 
|---|
|  | 47 | K ^TMP($J,"SENDMSG") | 
|---|
|  | 48 | S ^TMP($J,"SENDMSG")=$S(IBREBLD:1,1:0) | 
|---|
|  | 49 | S Z="" F  S Z=$O(IBTO(Z)) Q:Z=""  S ^TMP($J,"SENDMSG",0,Z)="" | 
|---|
|  | 50 | I $G(IBREBLD) D | 
|---|
|  | 51 | . ; Rebld query | 
|---|
|  | 52 | . K ^XTMP("IB_PLAN232") | 
|---|
|  | 53 | . S ^XTMP("IB_PLAN232")="",^XTMP("IB_PLAN232",0)=$$FMADD^XLFDT(DT,45)_U_DT_"^IB PATCH 232 PROV ID QUERY" | 
|---|
|  | 54 | . ; | 
|---|
|  | 55 | . ; loop thru 355.91 (IB INSURANCE CO LEVEL BILLING PROV ID) | 
|---|
|  | 56 | . ;   then 355.9 (IB BILLING PRACTITIONER ID) | 
|---|
|  | 57 | . F LOOP=355.91,355.9 D LP | 
|---|
|  | 58 | . ; | 
|---|
|  | 59 | ; | 
|---|
|  | 60 | D RPTOUT^IBCEQ1A | 
|---|
|  | 61 | K ^TMP($J,"SENDMSG") | 
|---|
|  | 62 | Q | 
|---|
|  | 63 | ; | 
|---|
|  | 64 | LP ; Loop through ids | 
|---|
|  | 65 | N IB,PTYP,PAYER,PLANIEN,FTA,IEPLAN,IPROV,PPROV,EDII,EDIP,PAYERP,TYPCOV,IBPMBPID,PTYPNM,IBI3,IBI0,SEQ,BLUE,TOT,NBLUE,DIR,DTOUT,DUOUT,X,Z,Z0,Z1,BL,UPIN,BCR,BSH | 
|---|
|  | 66 | S (SEQ,X,TOT,NBLUE,BLUE)=0,(BCR,BSH,UPIN)="" | 
|---|
|  | 67 | S Z="" F  S Z=$O(^IBE(355.97,Z)) Q:'Z  S Z0=$G(^(Z,0)) D | 
|---|
|  | 68 | . I $P(Z,U)["BLUE CROSS" S BCR=Z Q | 
|---|
|  | 69 | . I $P(Z,U)["BLUE SHIELD" S BSH=Z Q | 
|---|
|  | 70 | . I $P(Z,U)["UPIN" S UPIN=Z Q | 
|---|
|  | 71 | S:UPIN="" UPIN=22 S:BCR="" BCR=1 S:BSH="" BSH=2 | 
|---|
|  | 72 | F  S X=$O(^IBA(LOOP,X)) Q:+X=0  D | 
|---|
|  | 73 | . S (PAYER,FTA,PLANIEN,IEPLAN,IPROV,PPROV,EDII,EDIP,PAYERP,TYPCOV,IBPMBPID,PTYPNM)="" | 
|---|
|  | 74 | . S SEQ=SEQ+1 | 
|---|
|  | 75 | . S IB=$G(^IBA(LOOP,X,0)) | 
|---|
|  | 76 | . S PTYP=$P(IB,U,6) ; prov id type ien | 
|---|
|  | 77 | . Q:PTYP=""  ; no prov type | 
|---|
|  | 78 | . S PTYPNM=$P($G(^IBE(355.97,PTYP,0)),U) ; prov id type desc | 
|---|
|  | 79 | . S PAYERP=$S(LOOP[".91":+IB,1:+$P(IB,U,2)) ;ins co ien | 
|---|
|  | 80 | . S IBI0=$G(^DIC(36,PAYERP,0)),IBI3=$G(^(3)),PAYER=$P(IBI0,U) | 
|---|
|  | 81 | . Q:$P(IBI0,U,5)!(IBI0="")  ; ins co inactive/deleted | 
|---|
|  | 82 | . S EDIP=$P(IBI3,U,2) ; edi id# prof | 
|---|
|  | 83 | . S EDII=$P(IBI3,U,4) ; edi id# inst | 
|---|
|  | 84 | . S IEPLAN=$P(IBI3,U,9) ; elec ins type ?1N | 
|---|
|  | 85 | . S PPROV=$P(IBI0,U,17) ; prof. prov# | 
|---|
|  | 86 | . S IPROV=$P(IBI0,U,11) ; hosp. prov# | 
|---|
|  | 87 | . S TYPCOV=$P(IBI0,U,13) ; type of cov ien;file 355.2 | 
|---|
|  | 88 | . S FTA=$P(IB,U,4) ; form type applied; 0:both, 1:ub, 2:1500 | 
|---|
|  | 89 | . S IBPMBPID=X_";"_LOOP | 
|---|
|  | 90 | . I $P(IB,U,7)="VAD000",PTYP'=UPIN D SET(6) | 
|---|
|  | 91 | . ; | 
|---|
|  | 92 | . I PTYP'=BCR&(PTYP'=BSH) D  Q    ; not BC/BS | 
|---|
|  | 93 | .. ; Only do following check once per insurance co | 
|---|
|  | 94 | .. Q:$D(^XTMP("IB_PLAN232",3,PAYERP)) | 
|---|
|  | 95 | .. S ^XTMP("IB_PLAN232",3,PAYERP)="" | 
|---|
|  | 96 | .. ; Check if BC/BS ids exist at all for ins co | 
|---|
|  | 97 | .. Q:$O(^IBA(355.9,"AC",1,PAYERP,0))!$O(^IBA(355.9,"AC",2,PAYERP,0))!$O(^IBA(355.91,"AC",PAYERP,1,0))!$O(^IBA(355.91,"AC",PAYERP,2,0)) | 
|---|
|  | 98 | .. S BL=0 | 
|---|
|  | 99 | .. S Z1=0 F  S Z1=$O(^IBA(355.3,"B",PAYERP,Z1)) Q:'Z1  D | 
|---|
|  | 100 | ... I '$P($G(^IBA(355.3,Z1,0)),U,11),$P($G(^(0)),U,15)="BL" S PLANIEN=Z1,BL=1 D SET(5) | 
|---|
|  | 101 | .. S:BL NBLUE=NBLUE+1 | 
|---|
|  | 102 | . ; | 
|---|
|  | 103 | . S BLUE=BLUE+1 | 
|---|
|  | 104 | . ; ERROR - FORM TYPE=2:1500 AND PTYP=1:BC | 
|---|
|  | 105 | . I PTYP=1&(FTA=2) D SET(1) Q | 
|---|
|  | 106 | . ; | 
|---|
|  | 107 | . I PTYP=2&(FTA=1) D SET(2) Q  ; BS applied to just UB | 
|---|
|  | 108 | . I FTA=0&(PTYP=1) D SET(3) Q  ; BC applied to both forms | 
|---|
|  | 109 | . ; | 
|---|
|  | 110 | . ; Only do following check once per insurance co | 
|---|
|  | 111 | . I '$D(^XTMP("IB_PLAN232",2,PAYERP)) D  ; Checks plans not BL | 
|---|
|  | 112 | .. S Z1=0,^XTMP("IB_PLAN232",2,PAYERP)="" | 
|---|
|  | 113 | .. F  S Z1=$O(^IBA(355.3,"B",PAYERP,Z1)) Q:'Z1  D | 
|---|
|  | 114 | ... I $P($G(^IBA(355.3,Z1,0)),U,15)'="BL",'$P(^(0),U,11) S PLANIEN=Z1 D SET(4) Q | 
|---|
|  | 115 | ; | 
|---|
|  | 116 | ; 3RD PC XTMP(IB_PLAN232)=TOTAL BLUES WITH NO BLUE IDS | 
|---|
|  | 117 | S $P(^XTMP("IB_PLAN232"),U,3)=$P($G(^XTMP("IB_PLAN232")),U,3)+NBLUE | 
|---|
|  | 118 | ; | 
|---|
|  | 119 | ; 4TH PC XTMP(IB_PLAN232)=TOT NUMBER SCANNED | 
|---|
|  | 120 | S $P(^XTMP("IB_PLAN232"),U,4)=$P($G(^XTMP("IB_PLAN232")),U,4)+SEQ | 
|---|
|  | 121 | ; | 
|---|
|  | 122 | ; 5TH PC XTMP(IB_PLAN232)=TOT BLUES IDS FOUND | 
|---|
|  | 123 | S $P(^XTMP("IB_PLAN232"),U,5)=$P($G(^XTMP("IB_PLAN232")),U,5)+BLUE | 
|---|
|  | 124 | ; | 
|---|
|  | 125 | ; 6TH PC XTMP(IB_PLAN232)=TOTAL ERRORS FOUND | 
|---|
|  | 126 | S $P(^XTMP("IB_PLAN232"),U,6)=$P($G(^XTMP("IB_PLAN232")),U,6)+TOT | 
|---|
|  | 127 | Q | 
|---|
|  | 128 | ; | 
|---|
|  | 129 | SET(Z) ;SET VALUES INTO SAVE GLOBAL | 
|---|
|  | 130 | ; Z=REASON WHY WE'RE SETTING IT | 
|---|
|  | 131 | ; 1. PAYER-ins co name (36) | 
|---|
|  | 132 | ; 2. PLAN-grp name (355.3) | 
|---|
|  | 133 | ; 3. GROUP-grp # (355.3) | 
|---|
|  | 134 | ; 4. FTA-form typ (355.9) | 
|---|
|  | 135 | ; 5. EPLAN-"BL" (355.3) | 
|---|
|  | 136 | ; 6. IEPLAN-elec ins typ (36) | 
|---|
|  | 137 | ; 7. IPROV-hosp prov# (36) | 
|---|
|  | 138 | ; 8. PPROV-prof prov# (36) | 
|---|
|  | 139 | ; 9. EDII-inst edi id# (36) | 
|---|
|  | 140 | ;10. EDIP-prof edi id# (36) | 
|---|
|  | 141 | ;11. PAYERP-ins co ien (36) | 
|---|
|  | 142 | ;12. TYPCOV-type of cov ien (36) | 
|---|
|  | 143 | ;13. PLANIEN-ien of file (355.3) | 
|---|
|  | 144 | ;14. IBPMBPID-355.9 or 355.91;ien of file | 
|---|
|  | 145 | ;15. PTYPNM-prov id type desc (355.9) | 
|---|
|  | 146 | ;16. Z-reason | 
|---|
|  | 147 | ; | 
|---|
|  | 148 | N A,DUP | 
|---|
|  | 149 | ; | 
|---|
|  | 150 | S A=$O(^XTMP("IB_PLAN232",1," "),-1)+1,TOT=TOT+1 | 
|---|
|  | 151 | S ^XTMP("IB_PLAN232",1,A,0)=PAYER_U_""_U_""_U_FTA_U_""_U_IEPLAN_U_""_U_""_U_""_U_""_U_PAYERP_U_TYPCOV_U_PLANIEN_U_IBPMBPID_U_PTYPNM_U_Z | 
|---|
|  | 152 | Q | 
|---|
|  | 153 | ; | 
|---|