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