1 | IBCEQ1A ;ALB/BSL,TMK - PROVIDER ID QUERY REPORT ;25-AUG-03
|
---|
2 | ;;2.0;INTEGRATED BILLING;**232,348,349**;21-MAR-94;Build 46
|
---|
3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | RPTOUT ; Print from data in ^XTMP
|
---|
6 | N IBP,IBA,IBI,IBIN,IBPNM,IBPNUM,IBSTOP,IBX,IBZ,IBPG,IBICONT,Z
|
---|
7 | K ^TMP($J,"IBZ232")
|
---|
8 | F Z=1:1:6 S ^TMP($J,"IBZ232",Z)=""
|
---|
9 | S (IBPG,IBSTOP)=0
|
---|
10 | S IBA=0 F S IBA=$O(^XTMP("IB_PLAN232",1,IBA)) Q:'IBA D
|
---|
11 | . S IBX=$G(^XTMP("IB_PLAN232",1,IBA,0))
|
---|
12 | . ; Sort by err type, ins co ien
|
---|
13 | . S ^TMP($J,"IBZ232",+$P(IBX,U,16),+$P(IBX,U,11),IBA)=IBX
|
---|
14 | ;
|
---|
15 | S IBZ=0 F S IBZ=$O(^TMP($J,"IBZ232",IBZ)) Q:'IBZ!IBSTOP!(IBZ>6) D HDR1(.IBPG,.IBSTOP,IBZ,0) S IBI=0 F S IBI=$O(^TMP($J,"IBZ232",IBZ,IBI)) Q:'IBI!IBSTOP D
|
---|
16 | . S IBIN=$P($G(^DIC(36,+IBI,0)),U)_" ("_$S(+$G(^(3))=1:"",1:"NOT ")_"SET TO TRANSMIT LIVE)"
|
---|
17 | . D INSHDR(.IBPG,.IBSTOP,IBIN,IBZ,0) S IBICONT=0
|
---|
18 | . S IBA=0 F S IBA=$O(^TMP($J,"IBZ232",IBZ,IBI,IBA)) Q:'IBA!IBSTOP S IBX=$G(^(IBA)) D
|
---|
19 | .. I ($Y+5)>IOSL D INSHDR(.IBPG,.IBSTOP,IBIN,IBZ,IBICONT) Q:IBSTOP
|
---|
20 | .. ;
|
---|
21 | .. I IBZ'=4,IBZ'=5 D
|
---|
22 | ... S IBP=+$P(IBX,U,14)
|
---|
23 | ... I $P(IBX,U,14)[".91" S IBPNM="ALL PROVIDERS"
|
---|
24 | ... I $P(IBX,U,14)'[".91" D
|
---|
25 | .... N Z
|
---|
26 | .... S Z=$P($G(^IBA(355.9,IBP,0)),U)
|
---|
27 | .... S IBPNM=$S(Z["VA(200":"",1:"#")_$$EXTERNAL^DILFD(355.9,.01,"",Z)
|
---|
28 | ... S IBPNUM=$P($G(^IBA(+$P($P(IBX,U,14),";",2),IBP,0)),U,7)
|
---|
29 | ... D WRT(1," "_$E($P("BOTH^UB-04^CMS-1500",U,$P(IBX,U,4)+1)_$J("",9),1,9)_" "_$E($P(IBX,U,15)_$J("",23),1,23)_" "_$E(IBPNM_$J("",28),1,28)_" "_$E(IBPNUM,1,11))
|
---|
30 | .. ;
|
---|
31 | .. I IBZ=4!(IBZ=5) D
|
---|
32 | ... N Z
|
---|
33 | ... S Z=$G(^IBA(355.3,+$P(IBX,U,13),0))
|
---|
34 | ... D WRT(1," "_$E($P(Z,U,3)_$J("",20),1,20)_" "_$E($P(Z,U,4)_$J("",17),1,17)_" "_$$EXTERNAL^DILFD(355.3,.15,"",$P(Z,U,15)))
|
---|
35 | .. S:'IBICONT IBICONT=1
|
---|
36 | ;
|
---|
37 | I 'IBSTOP D ;Totals
|
---|
38 | . N Z
|
---|
39 | . S Z=$G(^XTMP("IB_PLAN232"))
|
---|
40 | . I ($Y+10)>IOSL!'IBPG D HDR(.IBPG,.IBSTOP,"") Q:IBSTOP
|
---|
41 | . D WRT(2,$J("",25)_"TOTAL # OF IDs CHECKED: "_+$P(Z,U,4))
|
---|
42 | . D WRT(1,$J("",14)_"TOT # BLUE CROSS/SHIELD IDS FOUND: "_+$P(Z,U,5))
|
---|
43 | . D WRT(1,"TOTAL # OF INS CO. W/BLUE PLANS AND NO BLUE IDS: "_+$P(Z,U,3))
|
---|
44 | . D WRT(1,$J("",21)_"TOTAL # OF ERRORS/WARNINGS: "_+$P(Z,U,6))
|
---|
45 | ;
|
---|
46 | I '$D(ZTQUEUED) D ^%ZISC I 'IBSTOP,IBPG D ASK()
|
---|
47 | I $D(ZTQUEUED),'IBSTOP S ZTREQ="@"
|
---|
48 | I $G(^TMP($J,"SENDMSG")),'IBSTOP D
|
---|
49 | . N XMDUZ,XMSUBJ,XMBODY,XMTO,XMZ
|
---|
50 | . S XMDUZ=DUZ,XMSUBJ=$E("PROVIDER ID QUERY FROM "_$P($G(^DIC(4,+$P($G(^IBE(350.9,1,0)),U,2),0)),U),1,65),XMBODY="^TMP($J,""SENDMSG"",1)"
|
---|
51 | . M XMTO=^TMP($J,"SENDMSG",0)
|
---|
52 | . S Z="" F S Z=$O(^TMP($J,"SENDMSG",0,Z)) Q:Z="" S XMZ(Z)=""
|
---|
53 | . D SENDMSG^XMXAPI(XMDUZ,XMSUBJ,XMBODY,.XMTO,"",.XMZ)
|
---|
54 | K ^TMP($J,"IBZ232"),^TMP($J,"SENDMSG")
|
---|
55 | Q
|
---|
56 | ;
|
---|
57 | HDR(IBPG,IBSTOP,IBZ,FF) ; Main hdr
|
---|
58 | ; FF = 0 if continuation pg so it writes it to report, but not mail msg
|
---|
59 | N Z,IBT
|
---|
60 | Q:$G(IBSTOP)
|
---|
61 | I $D(ZTQUEUED),$$S^%ZTLOAD S (IBSTOP,ZTSTOP)=1 K ZTREQ I +$G(IBPG) D WRT(2,"***TASK STOPPED BY USER***") Q
|
---|
62 | I IBPG&($E(IOST,1,2)="C-") D ASK(.IBSTOP) Q:IBSTOP
|
---|
63 | S IBT=$S(IBPG:1,1:0)
|
---|
64 | S IBPG=IBPG+1
|
---|
65 | S Z="PROVIDER ID VERIFICATION QUERY REPORT"
|
---|
66 | S Z=$$SETSTR^VALM1($J("",80-$L(Z)\2)_Z,"",1,79)
|
---|
67 | S Z=$$SETSTR^VALM1("Page: "_IBPG,Z,70,10)
|
---|
68 | D WRT(0,"@IOF",$G(FF))
|
---|
69 | D WRT(1,Z,$G(FF))
|
---|
70 | S Z="RUN DATE: "_$$FMTE^XLFDT(DT,2),Z=$J("",80-$L(Z)\2)_Z
|
---|
71 | D WRT(1,Z,$G(FF))
|
---|
72 | I IBZ'="",IBZ'=4,IBZ'=5 D
|
---|
73 | . D WRT(2," FORM TYPE PROV ID TYPE"_$J("",12)_"PROVIDER NAME (#=Non-VA)"_$J("",6)_"PROV ID",$G(FF))
|
---|
74 | I IBZ=4!(IBZ=5) D
|
---|
75 | . D WRT(2," GROUP NAME"_$J("",12)_"GROUP NUMBER"_$J("",7)_"ELECTRONIC PLAN TYPE",$G(FF))
|
---|
76 | D WRT(1,$TR($J("",IOM-1)," ","-"),$G(FF))
|
---|
77 | Q
|
---|
78 | ;
|
---|
79 | HDR1(IBPG,IBSTOP,IBZ,IBCONT) ; Hdr err typ
|
---|
80 | N Z,Z0,Z1
|
---|
81 | D HDR(.IBPG,.IBSTOP,IBZ,IBCONT) Q:IBSTOP
|
---|
82 | S Z="",$P(Z,"*",80)="" D WRT(1,Z,IBCONT)
|
---|
83 | S Z0="* "_$S(IBZ>1:"WARNING: ",1:"ERROR: ")
|
---|
84 | ;
|
---|
85 | I IBZ'=4,IBZ'=5 D
|
---|
86 | . N X
|
---|
87 | . S X="BLUE CROSS ID FOUND FOR A 1500 FORM TYPE ONLY^BLUE SHIELD ID FOUND FOR A UB-04 FORM TYPE ONLY^BLUE CROSS ID FOUND FOR BOTH FORM TYPES^BL CROSS/BL SHIELD IDs FOUND FOR PLANS NOT HAVING 'BL' ELECTRONIC PLAN TYPE"
|
---|
88 | . S Z0=Z0_$S(IBZ<6:$P(X,U,IBZ),IBZ=6:"""VAD000"" PROVIDER ID FOUND NOT SET UP AS A UPIN PROVIDER ID TYPE",1:"")
|
---|
89 | I IBZ=4 D
|
---|
90 | . S Z0=Z0_"BL CROSS/BL SHIELD IDs FOUND FOR PLANS NOT HAVING 'BL' ELECTRONIC" D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
91 | . S Z0="*"_$J("",10)_"PLAN TYPE"
|
---|
92 | ;
|
---|
93 | I IBZ=5 D
|
---|
94 | . S Z0=Z0_"INSURANCE CO HAS BL CROSS/SHIELD PLANS, BUT NO BL CROSS/SHIELD IDs"
|
---|
95 | ;
|
---|
96 | S Z0=Z0_$S(IBCONT:" (CONT)",1:"")
|
---|
97 | D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
98 | ;
|
---|
99 | I 'IBCONT D
|
---|
100 | . I IBZ=1 D
|
---|
101 | .. D WRT(1,"*"_$J("",77)_"*",IBCONT)
|
---|
102 | .. S Z0="* SOLUTION: THIS ID WILL NEVER BE USED ELECTRONICALLY." D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
103 | .. S Z0="*"_$J("",11)_"CHANGE PROVIDER ID TYPE TO BLUE SHIELD IF THIS ID SHOULD BE" D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
104 | .. S Z0="*"_$J("",11)_"TRANSMITTED ON A 1500." D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
105 | . ;
|
---|
106 | . I IBZ=2 D
|
---|
107 | .. D WRT(1,"*"_$J("",77)_"*",IBCONT)
|
---|
108 | .. S Z0="* SUGGESTION: VISTA WILL TRANSMIT THIS ID ELECTRONICALLY, BUT IT IS OPTIMAL" D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
109 | .. S Z0="*"_$J("",13)_"TO HAVE THIS ID SET UP AS BLUE CROSS." D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
110 | . ;
|
---|
111 | . I IBZ=3 D
|
---|
112 | .. D WRT(1,"*"_$J("",77)_"*",IBCONT)
|
---|
113 | .. S Z0="* SUGGESTION: A BLUE CROSS ID CAN ONLY BE APPLIED TO A UB-04 FORM TYPE." D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
114 | .. S Z0="*"_$J("",13)_"EDIT THE 'APPLIED TO FORM TYPE' FOR THE ID TO BE UB-04 ONLY." D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
115 | .. S Z0="*"_$J("",13)_"IF YOU NEED THIS ID ON A 1500, SET IT UP AS A BLUE SHIELD ID" D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
116 | .. S Z0="*"_$J("",13)_"APPLIED TO A CMS-1500 FORM TYPE." D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
117 | . ;
|
---|
118 | . I IBZ=4 D
|
---|
119 | .. D WRT(1,"*"_$J("",77)_"*",IBCONT)
|
---|
120 | .. S Z0="* SUGGESTION: A BLUE CROSS OR BLUE SHIELD ID IS DEFINED FOR THE INSURANCE" D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
121 | .. S Z0="*"_$J("",13)_"COMPANY, BUT THE ELECTRONIC PLAN TYPE FOR ONE OR MORE OF THE" D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
122 | .. S Z0="*"_$J("",13)_"COMPANY'S PLANS IS NOT SET TO 'BL' (BLUE CROSS/BLUE SHIELD)." D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
123 | .. S Z0="*"_$J("",13)_"IF BLUE CROSS/BLUE SHIELD IDs ARE NEEDED TO PRINT FOR ANY" D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
124 | .. S Z0="*"_$J("",13)_"OF THESE PLANS, ITS ELECTRONIC PLAN TYPE MUST BE CHANGED TO BL." D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
125 | . ;
|
---|
126 | . I IBZ=5 D
|
---|
127 | .. D WRT(1,"*"_$J("",77)_"*",IBCONT)
|
---|
128 | .. S Z0="* SUGGESTION: A BLUE CROSS OR BLUE SHIELD PLAN IS DEFINED FOR THE INSURANCE" D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
129 | .. S Z0="*"_$J("",13)_"COMPANY, BUT YOU HAVE ONLY NON-BLUE CROSS/SHIELD IDS SET UP." D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
130 | .. S Z0="*"_$J("",13)_"YOU MUST SET UP THE APPROPRIATE BLUE CROSS/BLUE SHIELD IDs" D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
131 | .. S Z0="*"_$J("",13)_"FOR THE INSURANCE COMPANY." D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
132 | . ;
|
---|
133 | . I IBZ=6 D
|
---|
134 | .. D WRT(1,"*"_$J("",77)_"*",IBCONT)
|
---|
135 | .. S Z0="* SUGGESTION: CHANGE PROVIDER ID TYPE TO UPIN."
|
---|
136 | .. D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
137 | .. S Z0="*"_$J("",13)_"ONCE ALL PAYERS FULLY IMPLEMENT HIPAA EDITS, YOU"
|
---|
138 | .. D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
139 | .. S Z0="*"_$J("",13)_"MUST USE THE CORRECT ID TYPE FOR THE ID ENTERED."
|
---|
140 | .. D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
141 | . ;
|
---|
142 | . D WRT(1,"*"_$J("",77)_"*",IBCONT)
|
---|
143 | . S Z1="*"_$J("",$S(IBZ'=1:13,1:11))_"VISTA OPTION TO USE: "
|
---|
144 | . I IBZ'=4 D
|
---|
145 | .. S Z0=Z1_"PROVIDER ID MAINTENANCE"
|
---|
146 | . I IBZ=4 D
|
---|
147 | .. S Z0=Z1_"INSURANCE COMPANY ENTRY/EDIT"
|
---|
148 | . D WRT(1,Z0_$J("",78-$L(Z0))_"*",IBCONT)
|
---|
149 | ;
|
---|
150 | D WRT(1,Z,IBCONT)
|
---|
151 | ;
|
---|
152 | I '$O(^TMP($J,"IBZ232",IBZ,0)) D WRT(2,"***** NOTHING FOUND FOR THIS ERROR/WARNING *****",IBCONT)
|
---|
153 | Q
|
---|
154 | ;
|
---|
155 | INSHDR(IBPG,IBSTOP,IBINM,IBZ,IBICONT) ; Ins Co info
|
---|
156 | I ($Y+7)>IOSL D HDR1(.IBPG,.IBSTOP,IBZ,1)
|
---|
157 | Q:IBSTOP
|
---|
158 | D WRT(2,"INSURANCE CO NAME: "_IBINM_$S($G(IBICONT):" (Continued)",1:""),IBICONT)
|
---|
159 | Q
|
---|
160 | ;
|
---|
161 | ASK(IBSTOP) ; Ask continue
|
---|
162 | ; If passed by ref, IBSTOP returned = 1 if print aborted
|
---|
163 | I $E(IOST,1,2)'["C-" Q
|
---|
164 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT
|
---|
165 | S DIR(0)="E" W ! D ^DIR
|
---|
166 | I ($D(DIRUT))!($D(DUOUT)) S IBSTOP=1 Q
|
---|
167 | Q
|
---|
168 | ;
|
---|
169 | WRT(FF,TEXT,NOT) ; Wrt/store line
|
---|
170 | N Z,A
|
---|
171 | S A=+$O(^TMP($J,"SENDMSG",1,""),-1),NOT=$G(NOT)
|
---|
172 | I FF F Z=1:1:FF W ! I $G(^TMP($J,"SENDMSG")),'NOT,Z>1 S A=A+1,^TMP($J,"SENDMSG",1,A)=" "
|
---|
173 | ;
|
---|
174 | I TEXT="@IOF" D Q
|
---|
175 | . W @IOF
|
---|
176 | . I $G(^TMP($J,"SENDMSG")),'NOT,IBPG>1 D
|
---|
177 | .. S A=A+1,^TMP($J,"SENDMSG",1,A)=" "
|
---|
178 | .. F Z=1:1:2 S A=A+1,^TMP($J,"SENDMSG",1,A)="*** TOP OF NEW PAGE ***"
|
---|
179 | .. S A=A+1,^TMP($J,"SENDMSG",1,A)=" "
|
---|
180 | ;
|
---|
181 | W TEXT
|
---|
182 | I $G(^TMP($J,"SENDMSG")),'NOT S A=A+1,^TMP($J,"SENDMSG",1,A)=TEXT
|
---|
183 | Q
|
---|
184 | ;
|
---|