| 1 | IBCNSC1 ;ALB/NLR - IBCNS INSURANCE COMPANY ;23-MAR-93 | 
|---|
| 2 | ;;2.0;INTEGRATED BILLING;**62,137,232,291,320,348,349**;21-MAR-94;Build 46 | 
|---|
| 3 | ;;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | % G EN^IBCNSC | 
|---|
| 6 | ; | 
|---|
| 7 | AI ; -- (In)Activate Company | 
|---|
| 8 | D FULL^VALM1 W !! | 
|---|
| 9 | I '$D(^XUSEC("IB INSURANCE SUPERVISOR",DUZ)) D SORRY G EXIT | 
|---|
| 10 | D ^IBCNSC2 | 
|---|
| 11 | G EXIT | 
|---|
| 12 | CC ; -- Change Insurance Company | 
|---|
| 13 | D FULL^VALM1 W !! | 
|---|
| 14 | S IBCNS1=IBCNS K IBCNS D INSCO^IBCNSC | 
|---|
| 15 | I '$D(IBCNS) S IBCNS=IBCNS1 | 
|---|
| 16 | K IBCNS1,VALMQUIT | 
|---|
| 17 | G EXIT | 
|---|
| 18 | EA ; -- Billing,Claims,Appeals,Inquiry,Telephone,Main,Remarks,Synonyms | 
|---|
| 19 | D FULL^VALM1 | 
|---|
| 20 | ; | 
|---|
| 21 | ; IB*2*320 - check key for associate company action | 
|---|
| 22 | I $G(IBY)=",13,",'$$KCHK^XUSRB("IB EDI INSURANCE EDIT") D  G EXIT | 
|---|
| 23 | . W !!?5,"You must hold the IB EDI INSURANCE EDIT key to access this option." | 
|---|
| 24 | . D PAUSE^VALM1 | 
|---|
| 25 | . Q | 
|---|
| 26 | ; | 
|---|
| 27 | W !! | 
|---|
| 28 | D MAIN | 
|---|
| 29 | ; | 
|---|
| 30 | ; -- was company deleted | 
|---|
| 31 | I '$D(^DIC(36,IBCNS)) W !!,"<DELETED>",!! S VALMQUIT="" Q | 
|---|
| 32 | ; | 
|---|
| 33 | EXIT ; | 
|---|
| 34 | D HDR^IBCNSC,BLD^IBCNSC | 
|---|
| 35 | S VALMBCK="R" | 
|---|
| 36 | Q | 
|---|
| 37 | MAIN ; -- Call edit template | 
|---|
| 38 | N IBEDIKEY,Z | 
|---|
| 39 | L +^DIC(36,+IBCNS):5 I '$T D LOCKED^IBTRCD1 G MAINQ | 
|---|
| 40 | I $G(IBY)=",12," D FACID | 
|---|
| 41 | F Z=1,2,4,9,13,14 S IBEDIKEY(Z)=$P($G(^DIC(36,+IBCNS,3)),U,Z)   ; save EDI data fields | 
|---|
| 42 | I $G(IBY)'=",12," N DIE,DA,DR S DIE="^DIC(36,",(DA,Y)=IBCNS,DR="[IBEDIT INS CO1]" D ^DIE K DIE I $D(Y) S IB("^")=1 | 
|---|
| 43 | I $G(IBY)=",12," D EDITID^IBCEP(+IBCNS) | 
|---|
| 44 | I $F(",6,13,",$G(IBY)) D PARENT^IBCNSC02(+IBCNS)   ; parent/child management | 
|---|
| 45 | L -^DIC(36,+IBCNS) | 
|---|
| 46 | MAINQ Q | 
|---|
| 47 | ; | 
|---|
| 48 | FACID ; -- Edit facility ids | 
|---|
| 49 | D FACID^IBCEP2B(+IBCNS,"E") | 
|---|
| 50 | Q | 
|---|
| 51 | ; | 
|---|
| 52 | SORRY ; -- can't inactivate, don't have key | 
|---|
| 53 | W !!,"You do not have access to Inactivate entries.  See your application coordinator.",! D PAUSE^VALM1 | 
|---|
| 54 | Q | 
|---|
| 55 | PRESCR ; | 
|---|
| 56 | N OFFSET,START,IBCNS18,IBADD | 
|---|
| 57 | S IBCNS18=$$ADDRESS^IBCNSC0(IBCNS,.18,11) | 
|---|
| 58 | S START=34,OFFSET=2 | 
|---|
| 59 | D SET^IBCNSP(START,OFFSET+19," Prescription Claims Office Information ",IORVON,IORVOFF) | 
|---|
| 60 | D SET^IBCNSP(START+1,OFFSET," Company Name: "_$P($G(^DIC(36,+$P(IBCNS18,"^",7),0)),"^",1)) | 
|---|
| 61 | D SET^IBCNSP(START+2,OFFSET,"       Street: "_$P(IBCNS18,"^",1)) | 
|---|
| 62 | D SET^IBCNSP(START+3,OFFSET,"     Street 2: "_$P(IBCNS18,"^",2)) | 
|---|
| 63 | ; D SET^IBCNSP(START+4,OFFSET,"Claim Off. ID: "_$P(IBCNS18,"^",11)) | 
|---|
| 64 | N OFFSET S OFFSET=45 | 
|---|
| 65 | D SET^IBCNSP(START+1,OFFSET,"     Street 3: "_$P(IBCNS18,"^",3)) S IBADD=1 | 
|---|
| 66 | D SET^IBCNSP(START+1+IBADD,OFFSET,"   City/State: "_$E($P(IBCNS18,"^",4),1,15)_$S($P(IBCNS18,"^",4)="":"",1:", ")_$P($G(^DIC(5,+$P(IBCNS18,"^",5),0)),"^",2)_" "_$E($P(IBCNS18,"^",6),1,5)) | 
|---|
| 67 | D SET^IBCNSP(START+2+IBADD,OFFSET,"        Phone: "_$P(IBCNS18,"^",8)) | 
|---|
| 68 | D SET^IBCNSP(START+3+IBADD,OFFSET,"          Fax: "_$P(IBCNS18,"^",9)) | 
|---|
| 69 | Q | 
|---|
| 70 | ; | 
|---|
| 71 | PROVID N OFFSET,START,IBCNS4,IBCNS3,IBDISP,Z,LINE | 
|---|
| 72 | S START=$O(^TMP("IBCNSC",$J,""),-1)+1 | 
|---|
| 73 | S (IB1ST("PROVID"),LINE)=START | 
|---|
| 74 | S OFFSET=2,IBCNS4=$G(^DIC(36,IBCNS,4)),IBCNS3=$G(^(3)) | 
|---|
| 75 | ; | 
|---|
| 76 | D SET^IBCNSP(LINE,OFFSET+25,"Provider IDs",IORVON,IORVOFF) | 
|---|
| 77 | N OFFSET | 
|---|
| 78 | S LINE=LINE+1,OFFSET=1 | 
|---|
| 79 | D SET^IBCNSP(LINE,OFFSET,"Billing Provider Secondary ID") | 
|---|
| 80 | ; | 
|---|
| 81 | N Z,Z0,Z1,IBS,I,DIV,FT,CU,CUF,DIVISION,FORMTYPE,PIDT | 
|---|
| 82 | S Z=0 F  S Z=$O(^IBA(355.92,"B",+IBCNS,Z)) Q:'Z  D | 
|---|
| 83 | . S Z0=$G(^IBA(355.92,Z,0)) | 
|---|
| 84 | . Q:'$P(Z0,U,6)!($P(Z0,U,7)="")  ; Quit if no provider id or id type | 
|---|
| 85 | . Q:'($P(Z0,U,8)="E") | 
|---|
| 86 | . S IBS(+$P(Z0,U,5),+$P(Z0,U,3),+$P(Z0,U,4))=$P(Z0,U,6)_U_$P(Z0,U,7) | 
|---|
| 87 | ; | 
|---|
| 88 | S DIV="" F  S DIV=$O(IBS(DIV)) Q:DIV=""  D | 
|---|
| 89 | . S DIVISION=$$DIV^IBCEP7(DIV) | 
|---|
| 90 | . S CU="",CUF=0 F  S CU=$O(IBS(DIV,CU)) Q:CU=""  D | 
|---|
| 91 | .. S FT="" F  S FT=$O(IBS(DIV,CU,FT)) Q:FT=""  D | 
|---|
| 92 | ... S FORMTYPE=$S(FT=1:"UB-04",FT=2:"1500",1:"UNKNOWN") | 
|---|
| 93 | ... S LINE=LINE+1 | 
|---|
| 94 | ... I 'CUF,+CU S CUF=1 S TEXT=$P(DIVISION,"/")_" Care Units :",OFFSET=5 D SET^IBCNSP(LINE,OFFSET,TEXT) S LINE=LINE+1 | 
|---|
| 95 | ... I CU=0 S TEXT=DIVISION_"/"_FORMTYPE_": "_$$GET1^DIQ(355.97,$P(IBS(DIV,CU,FT),U),.03,"E")_" "_$P(IBS(DIV,CU,FT),U,2),OFFSET=2 | 
|---|
| 96 | ... I +CU S TEXT=$$EXPAND^IBTRE(355.92,.03,CU)_"/"_FORMTYPE_": "_$$GET1^DIQ(355.97,$P(IBS(DIV,CU,FT),U),.03,"E")_" "_$P(IBS(DIV,CU,FT),U,2),OFFSET=5 | 
|---|
| 97 | ... D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 98 | ; | 
|---|
| 99 | S LINE=LINE+1 D SET^IBCNSP(LINE,2," ") | 
|---|
| 100 | ; | 
|---|
| 101 | K IBS | 
|---|
| 102 | S OFFSET=1,LINE=LINE+1 | 
|---|
| 103 | D SET^IBCNSP(LINE,OFFSET,"Additional Billing Provider Secondary IDs") | 
|---|
| 104 | S Z=0 F  S Z=$O(^IBA(355.92,"B",+IBCNS,Z)) Q:'Z  D | 
|---|
| 105 | . S Z0=$G(^IBA(355.92,Z,0)) | 
|---|
| 106 | . Q:'$P(Z0,U,6)!($P(Z0,U,7)="")  ; Quit if no provider id or id type | 
|---|
| 107 | . Q:'($P(Z0,U,8)="A") | 
|---|
| 108 | . ; IBS(DIVISION,FORMTYPE,IDTYPE)=ID | 
|---|
| 109 | . S IBS(+$P(Z0,U,5),+$P(Z0,U,4),+$P(Z0,U,6))=$P(Z0,U,7) | 
|---|
| 110 | ; | 
|---|
| 111 | S DIVISION=$$DIV^IBCEP7(0) | 
|---|
| 112 | S DIV="" F  S DIV=$O(IBS(DIV)) Q:DIV=""  D | 
|---|
| 113 | . S FT="" F  S FT=$O(IBS(DIV,FT)) Q:FT=""  D | 
|---|
| 114 | .. S FORMTYPE=$S(FT=1:"UB-04",FT=2:"1500",1:"UNKNOWN") | 
|---|
| 115 | .. S TEXT=DIVISION_"/"_FORMTYPE_": " | 
|---|
| 116 | .. S LINE=LINE+1,OFFSET=2 | 
|---|
| 117 | .. D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 118 | .. S PIDT="" F  S PIDT=$O(IBS(DIV,FT,PIDT)) Q:PIDT=""  D | 
|---|
| 119 | ... S LINE=LINE+1 | 
|---|
| 120 | ... S TEXT=$$GET1^DIQ(355.97,PIDT,.03,"E")_" "_IBS(DIV,FT,PIDT),OFFSET=5 | 
|---|
| 121 | ... D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 122 | ; | 
|---|
| 123 | S LINE=LINE+1 D SET^IBCNSP(LINE,2," ") | 
|---|
| 124 | ; | 
|---|
| 125 | K IBS | 
|---|
| 126 | S OFFSET=1,LINE=LINE+1 | 
|---|
| 127 | D SET^IBCNSP(LINE,OFFSET,"VA-Laboratory or Facility Secondary IDs") | 
|---|
| 128 | S Z=0 F  S Z=$O(^IBA(355.92,"B",+IBCNS,Z)) Q:'Z  D | 
|---|
| 129 | . S Z0=$G(^IBA(355.92,Z,0)) | 
|---|
| 130 | . Q:'$P(Z0,U,6)!($P(Z0,U,7)="")  ; Quit if no provider id or id type | 
|---|
| 131 | . Q:'($P(Z0,U,8)="LF") | 
|---|
| 132 | . ; IBS(DIVISION,FORMTYPE,IDTYPE)=ID | 
|---|
| 133 | . S IBS(+$P(Z0,U,5),+$P(Z0,U,4),+$P(Z0,U,6))=$P(Z0,U,7) | 
|---|
| 134 | ; | 
|---|
| 135 | S DIVISION=$$DIV^IBCEP7(0) | 
|---|
| 136 | S DIV="" F  S DIV=$O(IBS(DIV)) Q:DIV=""  D | 
|---|
| 137 | . S FT="" F  S FT=$O(IBS(DIV,FT)) Q:FT=""  D | 
|---|
| 138 | .. S FORMTYPE=$S(FT=1:"UB-04",FT=2:"1500",1:"UNKNOWN") | 
|---|
| 139 | .. S TEXT=DIVISION_"/"_FORMTYPE_": " | 
|---|
| 140 | .. S LINE=LINE+1,OFFSET=2 | 
|---|
| 141 | .. D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 142 | .. S PIDT="" F  S PIDT=$O(IBS(DIV,FT,PIDT)) Q:PIDT=""  D | 
|---|
| 143 | ... S LINE=LINE+1 | 
|---|
| 144 | ... ;S TEXT=$$EXPAND^IBTRE(355.92,.06,PIDT)_" "_IBS(DIV,FT,PIDT),OFFSET=5 | 
|---|
| 145 | ... S TEXT=$$GET1^DIQ(355.97,PIDT,.03,"E")_" "_IBS(DIV,FT,PIDT),OFFSET=5 | 
|---|
| 146 | ... D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 147 | ; | 
|---|
| 148 | ; | 
|---|
| 149 | S LINE=LINE+1 D SET^IBCNSP(LINE,2," ") | 
|---|
| 150 | S LINE=LINE+1 D SET^IBCNSP(LINE,2," ") | 
|---|
| 151 | S OFFSET=2 | 
|---|
| 152 | S LINE=LINE+1 D SET^IBCNSP(LINE,OFFSET+25,"ID Parameters",IORVON,IORVOFF) | 
|---|
| 153 | ; | 
|---|
| 154 | S IBCNS4=$G(^DIC(36,IBCNS,4)),IBCNS3=$G(^(3)),OFFSET=1 | 
|---|
| 155 | S TEXT="Attending/Rendering Provider Secondary ID Qualifier (1500): "_$$EXPAND^IBTRE(36,4.01,+$P(IBCNS4,U)) | 
|---|
| 156 | S LINE=LINE+1 | 
|---|
| 157 | D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 158 | ; | 
|---|
| 159 | S TEXT="Attending/Rendering Provider Secondary ID Qualifier (UB-04): "_$$EXPAND^IBTRE(36,4.02,+$P(IBCNS4,U,2)) | 
|---|
| 160 | S LINE=LINE+1 | 
|---|
| 161 | D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 162 | ; | 
|---|
| 163 | S TEXT="Attending/Rendering Secondary ID Requirement: "_$$EXPAND^IBTRE(36,4.03,+$P(IBCNS4,U,3)) | 
|---|
| 164 | S LINE=LINE+1 | 
|---|
| 165 | D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 166 | ; | 
|---|
| 167 | S TEXT="Referring Provider Secondary ID Qualifier (1500): "_$$EXPAND^IBTRE(36,4.04,+$P(IBCNS4,U,4)) | 
|---|
| 168 | S LINE=LINE+1 | 
|---|
| 169 | D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 170 | ; | 
|---|
| 171 | S TEXT="Referring Provider Secondary ID Requirement: "_$$EXPAND^IBTRE(36,4.05,+$P(IBCNS4,U,5)) | 
|---|
| 172 | S LINE=LINE+1 | 
|---|
| 173 | D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 174 | ; | 
|---|
| 175 | S TEXT="Use Att/Rend ID as Billing Provider Sec. ID (1500): "_$$EXPAND^IBTRE(36,4.06,+$P(IBCNS4,U,6)) | 
|---|
| 176 | S LINE=LINE+1 | 
|---|
| 177 | D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 178 | ; | 
|---|
| 179 | S TEXT="Use Att/Rend ID as Billing Provider Sec. ID (UB-04): "_$$EXPAND^IBTRE(36,4.08,+$P(IBCNS4,U,8)) | 
|---|
| 180 | S LINE=LINE+1 | 
|---|
| 181 | D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 182 | ; | 
|---|
| 183 | S TEXT="Send VA Lab/Facility IDs or Facility Data for VAMC?: "_$$EXPAND^IBTRE(36,4.07,+$P(IBCNS4,U,7)) | 
|---|
| 184 | S LINE=LINE+1 | 
|---|
| 185 | D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 186 | ; | 
|---|
| 187 | S TEXT="Transmit no Billing Provider Sec. ID for the Electronic Plan Types: " | 
|---|
| 188 | S LINE=LINE+1 | 
|---|
| 189 | D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 190 | ; | 
|---|
| 191 | N TAR,ERR,IBCT | 
|---|
| 192 | D LIST^DIC(36.013,","_IBCNS_",",".01",,10,,,,,,"TAR","ERR") | 
|---|
| 193 | F IBCT=1:1:+$G(TAR("DILIST",0)) D | 
|---|
| 194 | . S TEXT=TAR("DILIST",1,IBCT) | 
|---|
| 195 | . S LINE=LINE+1 | 
|---|
| 196 | . D SET^IBCNSP(LINE,OFFSET,TEXT) | 
|---|
| 197 | ; | 
|---|
| 198 | S LINE=LINE+1 D SET^IBCNSP(LINE,2," ") | 
|---|
| 199 | S LINE=LINE+1 D SET^IBCNSP(LINE,2," ") | 
|---|
| 200 | Q | 
|---|
| 201 | ; | 
|---|
| 202 | INSDEF(IBINS,IBPTYP) ; Returns the default id # for an ins co, if possible | 
|---|
| 203 | N X | 
|---|
| 204 | S X="" | 
|---|
| 205 | I IBINS,IBPTYP S X=$P($G(^IBA(355.91,+$O(^IBA(355.91,"AC",IBINS,IBPTYP,"*N/A*","")),0)),U,7) | 
|---|
| 206 | Q X | 
|---|