[613] | 1 | IBCEP7 ;ALB/TMP - Functions for fac level PROVIDER ID MAINT ;11-07-00
|
---|
| 2 | ;;2.0;INTEGRATED BILLING;**137,232,320,348,349**;21-MAR-94;Build 46
|
---|
| 3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | HDR ; -- hdr code
|
---|
| 6 | I '$D(^TMP("IBCE_PRVFAC_MAINT",$J)) D INIT
|
---|
| 7 | N IBINS,PCF,PCDISP,IBPARAM,IBEFTFL
|
---|
| 8 | K VALMHDR
|
---|
| 9 | S IBPARAM=$G(^TMP("IBCE_PRVFAC_MAINT_INS",$J))
|
---|
| 10 | S IBEFTFL=$P(IBPARAM,U) ; Electronic Form type flag
|
---|
| 11 | S IBINS=+$P(IBPARAM,U,2) ; Insurance co
|
---|
| 12 | S PCF=$P($G(^DIC(36,+IBINS,3)),U,13),PCDISP=$S(PCF="P":"(Parent)",1:"")
|
---|
| 13 | S VALMHDR(1)="Insurance Co: "_$P($G(^DIC(36,+IBINS,0)),U)_PCDISP
|
---|
| 14 | S VALMHDR(1)=VALMHDR(1)_$S(IBEFTFL="E":" Billing Provider Secondary IDs",IBEFTFL="A":" Additional Billing Provider Sec. IDs",IBEFTFL="LF":" VA-Lab/Facility Secondary IDs",1:"")
|
---|
| 15 | I IBEFTFL="LF" S VALMHDR(2)="VA-Lab/Facility Primary ID: Federal Tax ID"
|
---|
| 16 | Q
|
---|
| 17 | ;
|
---|
| 18 | INIT ; Initialize
|
---|
| 19 | N IBCT,IBD,Z,Z0,Z00,Z1,IBS,IBX,IBDIV,IBEFTFL,IBINS,IBPARAM,IBLCT,IBCU
|
---|
| 20 | K ^TMP("IBCE_PRVFAC_MAINT",$J)
|
---|
| 21 | S (IBLCT,IBCT)=0
|
---|
| 22 | S IBPARAM=$G(^TMP("IBCE_PRVFAC_MAINT_INS",$J))
|
---|
| 23 | S IBEFTFL=$P(IBPARAM,U) ; Electronic Form type flag
|
---|
| 24 | S IBINS=+$P(IBPARAM,U,2) ; Insurance co
|
---|
| 25 | ;
|
---|
| 26 | I IBEFTFL="A" D
|
---|
| 27 | . K VALM("PROTOCOL")
|
---|
| 28 | . S Y=$$FIND1^DIC(101,,,"IBCE PRVFAC ADDIDS MAINT")
|
---|
| 29 | . I Y S VALM("PROTOCOL")=+Y_";ORD(101,"
|
---|
| 30 | ;
|
---|
| 31 | I IBEFTFL="LF" D
|
---|
| 32 | . S VALM("TITLE")="VA-Lab/Facility IDs"
|
---|
| 33 | . K VALM("PROTOCOL")
|
---|
| 34 | . S Y=$$FIND1^DIC(101,,,"IBCE PRVFAC VALF MAINT")
|
---|
| 35 | . I Y S VALM("PROTOCOL")=+Y_";ORD(101,"
|
---|
| 36 | ;
|
---|
| 37 | ; Compile the appropriate list of IDs
|
---|
| 38 | S Z=0 F S Z=$O(^IBA(355.92,"B",IBINS,Z)) Q:'Z D
|
---|
| 39 | . S Z0=$G(^IBA(355.92,Z,0))
|
---|
| 40 | . Q:'$P(Z0,U,6)!($P(Z0,U,7)="") ; Quit if no provider id or id type
|
---|
| 41 | . Q:'($P(Z0,U,8)=IBEFTFL)
|
---|
| 42 | . ;Q:$S($P(IBPARAM,U,3)=1:'$P($G(^IBE(355.97,+$P(Z0,U,6),1)),U,9),1:$P($G(^IBE(355.97,+$P(Z0,U,6),1)),U,9))
|
---|
| 43 | . S Z1=$G(^IBE(355.97,+$P(Z0,U,6),0))
|
---|
| 44 | . S IBS(+$P(Z0,U,5),+$P(Z0,U,3),+$P(Z1,U,2)_";"_Z,$P(Z1,U))=+$P(Z0,U,6)_U_$P(Z0,U,7)_U_Z
|
---|
| 45 | ;
|
---|
| 46 | S IBD="" F S IBD=$O(IBS(IBD)) Q:IBD="" D
|
---|
| 47 | . D:IBCT SET1(.IBLCT," ",IBCT+1)
|
---|
| 48 | . D SET1(.IBLCT,"Division: "_$$DIV(IBD),IBCT+1)
|
---|
| 49 | . S IBCU="" F S IBCU=$O(IBS(IBD,IBCU)) Q:IBCU="" D
|
---|
| 50 | .. I IBCU D SET1(.IBLCT," Care Unit: "_$$EXTERNAL^DILFD(355.92,.03,"",IBCU),IBCT+1)
|
---|
| 51 | .. S Z="" F S Z=$O(IBS(IBD,IBCU,Z),-1) Q:Z="" D
|
---|
| 52 | ... S Z0="" F S Z0=$O(IBS(IBD,IBCU,Z,Z0)) Q:Z0="" S IBX=IBS(IBD,IBCU,Z,Z0) D
|
---|
| 53 | .... S IBCT=IBCT+1
|
---|
| 54 | .... I $P(Z,";",2) D Q
|
---|
| 55 | ..... S Z00=$G(^IBA(355.92,+$P(Z,";",2),0))
|
---|
| 56 | ..... S Z1=$E(IBCT_$J("",3),1,3)_" "_$E(Z0_$J("",25),1,25)_" "_$E($S($P(IBX,U,2)'="":$P(IBX,U,2),1:$$IDNUM^IBCEP7A(+IBX))_$J("",15),1,15)_" "_$P("BOTH^UB04^1500^RX",U,$P(Z00,U,4)+1)
|
---|
| 57 | ..... D SET1(.IBLCT,Z1,IBCT)
|
---|
| 58 | ..... S ^TMP("IBCE_PRVFAC_MAINT",$J,"ZIDX",IBCT)=+$P(Z,";",2)
|
---|
| 59 | ;
|
---|
| 60 | I 'IBLCT D
|
---|
| 61 | . D SET1(1," ")
|
---|
| 62 | . N TEXT
|
---|
| 63 | . I IBEFTFL="E" S TEXT="No Billing Provider Secondary IDs found"
|
---|
| 64 | . I IBEFTFL="A" S TEXT="No Billing Provider Additional IDs found"
|
---|
| 65 | . I IBEFTFL="LF" S TEXT="No VA Lab/Facility IDs found"
|
---|
| 66 | . D SET1(2,TEXT)
|
---|
| 67 | . S IBLCT=2
|
---|
| 68 | S VALMBG=1,VALMCNT=IBLCT
|
---|
| 69 | Q
|
---|
| 70 | ;
|
---|
| 71 | SET1(IBLCT,TEXT,IBCT) ;
|
---|
| 72 | S IBLCT=IBLCT+1 D SET^VALM10(IBLCT,TEXT,$G(IBCT))
|
---|
| 73 | Q
|
---|
| 74 | ;
|
---|
| 75 | DIV(IBD) ; Returns 'ALL/DEFAULT' or div NAME whose ien=IBD
|
---|
| 76 | N MAIN
|
---|
| 77 | I IBD Q $$EXTERNAL^DILFD(355.92,.05,"",IBD)
|
---|
| 78 | S MAIN=$$MAIN^IBCEP2B()
|
---|
| 79 | S MAIN=$$EXTERNAL^DILFD(355.92,.05,"",MAIN)
|
---|
| 80 | S MAIN=MAIN_"/Default for All Divisions"
|
---|
| 81 | Q MAIN
|
---|
| 82 | ;
|
---|
| 83 | EDIT1 ;
|
---|
| 84 | N IBFUNC,IBINS,IBDA,Z,DIR,X,Y,DTOUT,DUOUT,DP,IBPARAM,IBEFTFL
|
---|
| 85 | D FULL^VALM1
|
---|
| 86 | S IBPARAM=$G(^TMP("IBCE_PRVFAC_MAINT_INS",$J))
|
---|
| 87 | S IBEFTFL=$P(IBPARAM,U) ; Electronic Form type flag
|
---|
| 88 | S IBINS=+$P(IBPARAM,U,2) ; Insurance co
|
---|
| 89 | S IBFUNC="E"
|
---|
| 90 | D SEL
|
---|
| 91 | I $G(IBDA) S Z=$$EDITFAC(IBDA,IBFUNC,IBEFTFL) I Z D INIT
|
---|
| 92 | ;
|
---|
| 93 | EDIT1Q S VALMBCK="R"
|
---|
| 94 | Q
|
---|
| 95 | EXPND ;
|
---|
| 96 | Q
|
---|
| 97 | HELP ;
|
---|
| 98 | Q
|
---|
| 99 | EXIT ;
|
---|
| 100 | N IBPARAM,IBEFTFL
|
---|
| 101 | S IBPARAM=$G(^TMP("IBCE_PRVFAC_MAINT_INS",$J))
|
---|
| 102 | S IBEFTFL=$P(IBPARAM,U) ; Electronic Form type flag
|
---|
| 103 | I IBEFTFL="A" D COPYPROV^IBCEP5A(0)
|
---|
| 104 | ;
|
---|
| 105 | S (IBLCT,IBCT)=0
|
---|
| 106 | K ^TMP("IBCE_PRVFAC_MAINT",$J),^TMP("IBCE_PRVFAC_MAINT_INS",$J)
|
---|
| 107 | D CLEAN^VALM10
|
---|
| 108 | Q
|
---|
| 109 | SEL ;
|
---|
| 110 | N Z
|
---|
| 111 | K IBDA
|
---|
| 112 | D FULL^VALM1,EN^VALM2($G(XQORNOD(0)),"OS")
|
---|
| 113 | S Z=+$O(VALMY(0)) Q:'Z
|
---|
| 114 | ; fac/ins co default
|
---|
| 115 | S IBDA=$G(^TMP("IBCE_PRVFAC_MAINT",$J,"ZIDX",Z))
|
---|
| 116 | Q
|
---|
| 117 | ;
|
---|
| 118 | EDITFAC(IBDA,IBFUNC,IBEFTFL) ; edits ins co facility id (355.92), entry IBDA
|
---|
| 119 | N IBRBLD,Z,Z0,DIK,DIE,DP,DA,DR,DIR,X,Y,IBDA0,IBDIV,IBITYP,IBFORM,IBCAREUN,NEXTONE
|
---|
| 120 | S IBRBLD=0 S:$G(IBDA) IBDA0=$G(^IBA(355.92,+IBDA,0))
|
---|
| 121 | ; "E"diting 355.92 entry
|
---|
| 122 | I IBFUNC="E" D
|
---|
| 123 | . S Z0=$TR(IBDA0,U)
|
---|
| 124 | . Q:'$$FACFLDS^IBCEP7C(IBDA,IBINS,.IBITYP,.IBFORM,.IBDIV,"E",.IBCAREUN,IBEFTFL)
|
---|
| 125 | . S DIE="^IBA(355.92,",DA=IBDA
|
---|
| 126 | . S DR=".03////"_$S($G(IBCAREUN)]""&($G(IBCAREUN)'="*N/A*"):IBCAREUN,1:"")_";.04////"_IBFORM_$S(IBDIV:";.05////"_IBDIV,1:"")_";.06////"_IBITYP_";"
|
---|
| 127 | . S DR=DR_".07"_$S(IBEFTFL="E"!(IBEFTFL="A"):"Billing Provider Secondary ID",1:"VA Lab or Facility Secondary ID")
|
---|
| 128 | . I IBEFTFL="A" D
|
---|
| 129 | .. S NEXTONE=$$NEXTONE()
|
---|
| 130 | .. S ^TMP("IB_EDITED_IDS",$J,NEXTONE)=IBDA_U_"MOD"_U_355.92
|
---|
| 131 | .. S ^TMP("IB_EDITED_IDS",$J,NEXTONE,"OLD0")=^IBA(355.92,IBDA,0)
|
---|
| 132 | . D ^DIE
|
---|
| 133 | . I IBEFTFL="A" S ^TMP("IB_EDITED_IDS",$J,NEXTONE,0)=^IBA(355.92,IBDA,0)
|
---|
| 134 | . I $TR($G(^IBA(355.92,IBDA,0)),U)'=Z0 S IBRBLD=1
|
---|
| 135 | ;
|
---|
| 136 | ; "D"eleting 355.92 entry
|
---|
| 137 | I IBFUNC="D" D
|
---|
| 138 | . W !!," Insurance Co: ",$P($G(^DIC(36,+IBDA0,0)),U)
|
---|
| 139 | . W !," Division: ",$$DIV($P(IBDA0,U,5))
|
---|
| 140 | . W:$P(IBDA0,U,3)]"" !," Care Unit: ",$$EXTERNAL^DILFD(355.92,.03,"",$P(IBDA0,U,3))
|
---|
| 141 | . W !," ID Qualifier: ",$$EXTERNAL^DILFD(355.92,.06,"",$P(IBDA0,U,6))
|
---|
| 142 | . W !," Form Type: ",$$EXTERNAL^DILFD(355.92,.04,"",$P(IBDA0,U,4))
|
---|
| 143 | . W !," ID: ",$P(IBDA0,U,7),!
|
---|
| 144 | . S DIR(0)="YA",DIR("A")="ARE YOU SURE YOU WANT TO DELETE THIS ID RECORD?: ",DIR("B")="NO" D ^DIR K DIR
|
---|
| 145 | . S DIR("A")="NOTHING DELETED - PRESS RETURN TO CONTINUE: "
|
---|
| 146 | . I Y=1 D
|
---|
| 147 | .. S DIK="^IBA(355.92,",DA=IBDA
|
---|
| 148 | .. D ^DIK
|
---|
| 149 | .. I IBEFTFL="A" D
|
---|
| 150 | ... N NEXTONE
|
---|
| 151 | ... S NEXTONE=$$NEXTONE()
|
---|
| 152 | ... S ^TMP("IB_EDITED_IDS",$J,NEXTONE)=IBDA_U_"DEL"_U_355.92
|
---|
| 153 | ... S ^TMP("IB_EDITED_IDS",$J,NEXTONE,0)=IBDA0
|
---|
| 154 | .. S DIR("A")="ID DELETED - PRESS RETURN TO CONTINUE: ",IBRBLD=1
|
---|
| 155 | .. S DIR(0)="EA" W ! D ^DIR K DIR
|
---|
| 156 | ;
|
---|
| 157 | Q IBRBLD
|
---|
| 158 | ;
|
---|
| 159 | FACID(Y) ;
|
---|
| 160 | N Z,Z1,Z2
|
---|
| 161 | S Z=U_$P($G(^IBE(355.97,+Y,0)),U,3)_U,Z1=$$SUB2^IBCEF73(1),Z2=$$SUB2^IBCEF73(2)
|
---|
| 162 | I Z1[Z!(Z2[Z) Q 1
|
---|
| 163 | Q 0
|
---|
| 164 | ;
|
---|
| 165 | ADD1 ;
|
---|
| 166 | N IBFUNC,IBINS,IBDA,Z,DIR,X,Y,DTOUT,DUOUT,DP,IBPARAM,IBEFTFL,IBINS
|
---|
| 167 | D FULL^VALM1
|
---|
| 168 | ;
|
---|
| 169 | S IBPARAM=$G(^TMP("IBCE_PRVFAC_MAINT_INS",$J))
|
---|
| 170 | S IBEFTFL=$P(IBPARAM,U) ; Electronic Form type flag
|
---|
| 171 | S IBINS=+$P(IBPARAM,U,2) ; Insurance co ;
|
---|
| 172 | ;
|
---|
| 173 | S Z=$$ADDFAC^IBCEP7A(IBINS,IBEFTFL) I Z D INIT
|
---|
| 174 | ;
|
---|
| 175 | ADD1Q S VALMBCK="R"
|
---|
| 176 | Q
|
---|
| 177 | ;
|
---|
| 178 | DEL1 ;
|
---|
| 179 | N IBFUNC,IBINS,IBDA,Z,DIR,X,Y,DTOUT,DUOUT,DP,IBPARAM,IBEFTDL,IBINS
|
---|
| 180 | D FULL^VALM1
|
---|
| 181 | ;
|
---|
| 182 | S IBPARAM=$G(^TMP("IBCE_PRVFAC_MAINT_INS",$J))
|
---|
| 183 | S IBEFTFL=$P(IBPARAM,U) ; Electronic Form type flag
|
---|
| 184 | S IBINS=+$P(IBPARAM,U,2) ; Insurance co
|
---|
| 185 | ;
|
---|
| 186 | S IBFUNC="D"
|
---|
| 187 | D SEL
|
---|
| 188 | I $G(IBDA) S Z=$$EDITFAC(IBDA,IBFUNC,IBEFTFL) I Z D INIT
|
---|
| 189 | ;
|
---|
| 190 | DEL1Q S VALMBCK="R"
|
---|
| 191 | Q
|
---|
| 192 | ;
|
---|
| 193 | ; Get the next number so that the edits can be replicated in order for other providers/insurance companies
|
---|
| 194 | NEXTONE() ;
|
---|
| 195 | Q $O(^TMP("IB_EDITED_IDS",$J,""),-1)+1
|
---|