1 | IBJPI ;DAOU/BHS - IBJP IIV SITE PARAMETERS SCREEN ;14-JUN-2002
|
---|
2 | ;;2.0;INTEGRATED BILLING;**184,271,316**;21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; IIV - Insurance Identification and Verification Interface
|
---|
6 | ;
|
---|
7 | EN ; main entry pt for IBJP IIV SITE PARAMS
|
---|
8 | N POP,X,CTRLCOL,VALMHDR,VALMCNT,%DT
|
---|
9 | D EN^VALM("IBJP IIV SITE PARAMETERS")
|
---|
10 | Q
|
---|
11 | ;
|
---|
12 | HDR ; header
|
---|
13 | S VALMHDR(1)="Only authorized persons may edit this data."
|
---|
14 | Q
|
---|
15 | ;
|
---|
16 | INIT ; init vars & list array
|
---|
17 | K ^TMP($J,"IBJPI")
|
---|
18 | ; Kills data and video control arrays with active list
|
---|
19 | D CLEAN^VALM10
|
---|
20 | D BLD
|
---|
21 | Q
|
---|
22 | ;
|
---|
23 | HELP ; help
|
---|
24 | D FULL^VALM1
|
---|
25 | W @IOF
|
---|
26 | W !,"This screen displays all of the eIIV Site Parameters used to manage the"
|
---|
27 | W !,"eIIV application used for Insurance Identification and Verification."
|
---|
28 | W !!,"The first section, General Parameters, concerns overall parameters"
|
---|
29 | W !,"for monitoring the interface and controlling IIV communication"
|
---|
30 | W !,"between VistA and the EC located in Austin."
|
---|
31 | W !!,"The second section, Batch Extracts, concerns extract specific parameters"
|
---|
32 | W !,"including active status, selection criteria and maximum records extracted"
|
---|
33 | W !,"per day."
|
---|
34 | W !!,"The third section, Patients without Insurance, concerns whether or not"
|
---|
35 | W !,"identification inquiries should be made for patients without insurance on"
|
---|
36 | ;W !,"inactive policies or the Most Popular Payers list below to see if the"
|
---|
37 | W !,"inactive policies to see if the patient is covered by one of those companies"
|
---|
38 | ;W !,"patient is covered by one of those companies or payers."
|
---|
39 | W !,"or payers."
|
---|
40 | ;D PAUSE^VALM1
|
---|
41 | ;W !!,"The final section, Most Popular Payers, is a list maintained by users"
|
---|
42 | ;W !,"of the most popular payers for that site. This list is site-specific and"
|
---|
43 | ;W !,"is based on the payers selected by the user as those most likely to have"
|
---|
44 | ;W !,"coverage for a patient at the site. The columns display whether or not the"
|
---|
45 | ;W !,"payer is locally active or nationally active and the national payer id."
|
---|
46 | ;W !,"The locally active flag can be updated by the site as long as the eIIV"
|
---|
47 | ;W !,"application has not been deactivated. The nationally active flag"
|
---|
48 | ;W !,"is only updated by the Eligibility Communicator. Both flags must be set"
|
---|
49 | ;W !,"to YES for an insurance inquiry to be transmitted to the Eligibility"
|
---|
50 | ;W !,"Communicator."
|
---|
51 | D PAUSE^VALM1
|
---|
52 | W @IOF
|
---|
53 | S VALMBCK="R"
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | EXIT ; exit
|
---|
57 | K ^TMP($J,"IBJPI")
|
---|
58 | D CLEAN^VALM10
|
---|
59 | Q
|
---|
60 | ;
|
---|
61 | BLD ; build screen array
|
---|
62 | N IBLN,IBCOL,IBWID,IBIIV,IBIIVB,IBIEN,CT,IBEX1,IBEX2,IBEX,IEN
|
---|
63 | N IBST,IBDATA,DISYS,X,STATUS,AIEN,ADATA
|
---|
64 | ;
|
---|
65 | S (IBLN,VALMCNT)=0,IBCOL=3,IBIIV=$G(^IBE(350.9,1,51))
|
---|
66 | ; -- Gen Params
|
---|
67 | ; Skip line
|
---|
68 | S IBLN=$$SET("","",IBLN,0),IBWID=48
|
---|
69 | S IBLN=$$SETN("General Parameters",IBLN,IBCOL,1,)
|
---|
70 | S IBLN=$$SET("Days between electronic reverification checks: ",$P(IBIIV,U),IBLN,IBWID)
|
---|
71 | S IBLN=$$SET("Send daily statistical report via MailMan: ",$S($P(IBIIV,U,2):"YES",$P(IBIIV,U,2)=0:"NO",1:""),IBLN,IBWID)
|
---|
72 | I $P(IBIIV,U,2) S IBLN=$$SET("Time of day for daily statistical report: ",$P(IBIIV,U,3),IBLN,IBWID)
|
---|
73 | S IBLN=$$SET("Mail Group for eIIV messages: ",$$MGRP^IBCNEUT5,IBLN,IBWID)
|
---|
74 | S IBLN=$$SET("HL7 Response Processing Method: ",$S($P(IBIIV,U,13)="B":"BATCH",$P(IBIIV,U,13)="I":"IMMEDIATE",1:""),IBLN,IBWID)
|
---|
75 | I $P(IBIIV,U,13)="B" D
|
---|
76 | . S IBLN=$$SET("HL7 Batch Start Time: ",$P(IBIIV,U,14),IBLN,IBWID)
|
---|
77 | . S IBLN=$$SET("HL7 Batch Stop Time: ",$P(IBIIV,U,19),IBLN,IBWID)
|
---|
78 | S IBLN=$$SET("Daily Maximum HL7 Messages: ",$P(IBIIV,U,15),IBLN,IBWID)
|
---|
79 | S IBLN=$$SET("Contact Person: ",$S($P(IBIIV,U,16)'="":$$GET1^DIQ(200,$P(IBIIV,U,16)_",",.01,"E"),1:""),IBLN,IBWID)
|
---|
80 | S IBWID=62
|
---|
81 | S IBLN=$$SET("","",IBLN,0)
|
---|
82 | S IBLN=$$SET("Receive MailMan message when unable to electronically","",IBLN,IBWID-12)
|
---|
83 | S IBLN=$$SET("confirm insurance due to communication problem: ",$S($P(IBIIV,U,20):"YES",$P(IBIIV,U,20)=0:"NO",1:""),IBLN,IBWID-6)
|
---|
84 | ; Skip lines to force Batch Extracts to next page
|
---|
85 | S IBLN=$$SET("","",IBLN,0)
|
---|
86 | S IBLN=$$SET("","",IBLN,0)
|
---|
87 | S IBLN=$$SET("","",IBLN,0)
|
---|
88 | ; Skip lines for Immediate
|
---|
89 | I $P(IBIIV,U,13)'="B" D
|
---|
90 | . S IBLN=$$SET("","",IBLN,0)
|
---|
91 | . S IBLN=$$SET("","",IBLN,0)
|
---|
92 | ;
|
---|
93 | ; -- Batch Extracts
|
---|
94 | S IBWID=43
|
---|
95 | S IBLN=$$SETN("Batch Extracts",IBLN,IBCOL,1,)
|
---|
96 | S IBLN=$$SET("","",IBLN,0)
|
---|
97 | S IBLN=$$SET("Extract Selection Maximum # to","",IBLN,IBWID)
|
---|
98 | S IBLN=$$SETN(" Name On/Off Criteria Extract/Day",IBLN,IBCOL+1,,1)
|
---|
99 | ; Loop thru extracts
|
---|
100 | S IEN=0 F S IEN=$O(^IBE(350.9,1,51.17,IEN)) Q:'IEN D
|
---|
101 | . S IBIIVB=$G(^IBE(350.9,1,51.17,IEN,0))
|
---|
102 | . S IBEX=+$P(IBIIVB,U) ; Type
|
---|
103 | . S IBST=$$FO^IBCNEUT1($S($P(IBIIVB,U)'="":$$GET1^DIQ(350.9002,$P(IBIIVB,U)_",1,",.01,"E"),1:""),14)
|
---|
104 | . S IBST=IBST_$$FO^IBCNEUT1($S(+$P(IBIIVB,U,2):"ON",1:"OFF"),8)
|
---|
105 | . S IBEX1=$S(+$P(IBIIVB,U,3)'=0:+$P(IBIIVB,U,3),1:$P(IBIIVB,U,3))
|
---|
106 | . S IBEX2=$S(+$P(IBIIVB,U,4)'=0:+$P(IBIIVB,U,4),1:$P(IBIIVB,U,4))
|
---|
107 | . S IBST=IBST_$$FO^IBCNEUT1($S(IBEX=1:"N/A",IBEX=2:IBEX1,IBEX=3!(IBEX=4):IBEX1_"/"_IBEX2,1:"ERROR"),11)
|
---|
108 | . S IBST=IBST_$$FO^IBCNEUT1($S(+$P(IBIIVB,U,5):+$P(IBIIVB,U,5),1:$P(IBIIVB,U,5)),14)
|
---|
109 | . S IBLN=$$SET(IBST,"",IBLN,IBWID)
|
---|
110 | S IBLN=$$SET("","",IBLN,0)
|
---|
111 | ;
|
---|
112 | ; -- Pts w/o Ins
|
---|
113 | ; Skip line
|
---|
114 | S IBLN=$$SET("","",IBLN,0),IBWID=41
|
---|
115 | S IBLN=$$SETN("Patients Without Insurance",IBLN,IBCOL,1,)
|
---|
116 | S IBLN=$$SET("Look at a patient's inactive insurance? ",$S($P(IBIIV,U,8):"YES",$P(IBIIV,U,8)=0:"NO",1:""),IBLN,IBWID)
|
---|
117 | ;S IBLN=$$SET("Attempt inquiry by most popular payers? ",$S($P(IBIIV,U,9):"YES",$P(IBIIV,U,9)=0:"NO",1:""),IBLN,IBWID)
|
---|
118 | ;S IBLN=$$SET("How many payers to try? ",$P(IBIIV,U,10),IBLN,IBWID)
|
---|
119 | S IBLN=$$SET("","",IBLN,0)
|
---|
120 | S VALMCNT=IBLN
|
---|
121 | Q
|
---|
122 | ; No longer allowing the use of Most Popular Payers
|
---|
123 | ;
|
---|
124 | ; -- Most Popular Payers
|
---|
125 | ; Skip line
|
---|
126 | S IBLN=$$SET("","",IBLN,0),IBWID=12
|
---|
127 | S IBLN=$$SETN("Most Popular Payers",IBLN,IBCOL,1,)
|
---|
128 | ;
|
---|
129 | S IBLN=$$SET(" Saved By: ",$$GET1^DIQ(350.9,1,51.24),IBLN,IBWID)
|
---|
130 | S IBLN=$$SET("Last Saved: ",$$FMTE^XLFDT($P(IBIIV,U,21),"5Z"),IBLN,IBWID)
|
---|
131 | S IBWID=48
|
---|
132 | S IBST=" "_$$FO^IBCNEUT1(" ",36)_" "_$$FO^IBCNEUT1(" ",11)_" "_$$FO^IBCNEUT1("Nationally",10)_" "_$$FO^IBCNEUT1("Locally",7)
|
---|
133 | S IBLN=$$SET(IBST,"",IBLN,IBWID)
|
---|
134 | S IBST=" # "_$$FO^IBCNEUT1("Payer Name",36)_" "_$$FO^IBCNEUT1("National ID",11)_" "_$$FO^IBCNEUT1(" Active?",10)_" "_$$FO^IBCNEUT1(" Active?",8)
|
---|
135 | S IBLN=$$SETN(IBST,IBLN,IBCOL+1,,1)
|
---|
136 | ; Loop thru the current List of Payers
|
---|
137 | S (IEN,CT)=0 F S IEN=$O(^IBE(350.9,1,51.18,IEN)) Q:'IEN D
|
---|
138 | . S IBIEN=$P($G(^IBE(350.9,1,51.18,IEN,0)),U) Q:'IBIEN ; Bad IEN
|
---|
139 | . S CT=CT+1,IBST=$$FO^IBCNEUT1(CT,2,"R")_". "
|
---|
140 | . ; Payer Name
|
---|
141 | . S IBST=IBST_$$FO^IBCNEUT1($P($G(^IBE(365.12,IBIEN,0)),U),36)
|
---|
142 | . ; National ID
|
---|
143 | . S IBST=IBST_" "_$$FO^IBCNEUT1($P($G(^IBE(365.12,IBIEN,0)),U,2),11)
|
---|
144 | . ; Look up the payer application data
|
---|
145 | . S AIEN=$$PYRAPP^IBCNEUT5("IIV",IBIEN)
|
---|
146 | . ; WARNING - IIV application does not exist
|
---|
147 | . I AIEN="" D Q
|
---|
148 | . . S IBLN=$$SET(IBST,"",IBLN,IBWID)
|
---|
149 | . . S IBST=" ** Please remove from this list: Payer not configured for IIV **"
|
---|
150 | . . S IBLN=$$SET(IBST,"",IBLN,"")
|
---|
151 | . S ADATA=$G(^IBE(365.12,+IBIEN,1,+AIEN,0))
|
---|
152 | . S IBST=IBST_" "_$$FO^IBCNEUT1($S('$P(ADATA,U,2):" NO",1:" YES"),9)
|
---|
153 | . S IBST=IBST_" "_$$FO^IBCNEUT1($S('$P(ADATA,U,3):" NO",1:" YES"),7)
|
---|
154 | . S IBLN=$$SET(IBST,"",IBLN,"")
|
---|
155 | . ; WARNING - IIV application deactivated
|
---|
156 | . I +$P(ADATA,U,11) D Q
|
---|
157 | . . S IBST=" ** Please remove from this list: Payer is deactivated for IIV **"
|
---|
158 | . . S IBLN=$$SET(IBST,"",IBLN,"")
|
---|
159 | . ; WARNING - Id Inq Req ID = YES & Use SSN as ID = NO
|
---|
160 | . I +$P(ADATA,U,8),'$P(ADATA,U,9) D Q
|
---|
161 | . . S IBST=" ** Please remove from this list: Inquiries w/o subscriber ID rejected **"
|
---|
162 | . . S IBLN=$$SET(IBST,"",IBLN,"")
|
---|
163 | ; No Data Found if CT=0
|
---|
164 | I CT=0 S IBLN=$$SET($$FO^IBCNEUT1("*** NO DATA FOUND!!!! ***",60),"",IBLN,IBWID)
|
---|
165 | S IBLN=$$SET("","",IBLN,0),IBWID=71
|
---|
166 | S IBLN=$$SET("A payer will be available for electronic identification only if it is","",IBLN,IBWID)
|
---|
167 | S IBLN=$$SET($$FO^IBCNEUT1(" both nationally and locally active.",IBWID),"",IBLN,IBWID)
|
---|
168 | ;
|
---|
169 | S VALMCNT=IBLN
|
---|
170 | ;
|
---|
171 | Q
|
---|
172 | ;
|
---|
173 | SET(TTL,DATA,LN,WID) ;
|
---|
174 | ; TTL = caption for field
|
---|
175 | ; DATA = field value
|
---|
176 | ; LN = current line #
|
---|
177 | ; WID = right justify width
|
---|
178 | N IBY
|
---|
179 | ; update line ct
|
---|
180 | S LN=LN+1
|
---|
181 | ; offset line by 3 spaces
|
---|
182 | S IBY=" "_$J(TTL,WID)_DATA D SET1(IBY,LN,0,$L(IBY))
|
---|
183 | Q LN
|
---|
184 | ;
|
---|
185 | SETN(TTL,LN,COL,RV,UN) ;
|
---|
186 | ; TTL = caption for field
|
---|
187 | ; LN = current line #
|
---|
188 | ; COL = column at which to start video attribute
|
---|
189 | ; RV = 0/1 flag for reverse video
|
---|
190 | ; UN = 0/1 flag for underline
|
---|
191 | N IBY
|
---|
192 | ; update line ct
|
---|
193 | S LN=LN+1
|
---|
194 | ; offset line by 2 spaces
|
---|
195 | S IBY=" "_TTL D SET1(IBY,LN,COL,$L(TTL),$G(RV),$G(UN))
|
---|
196 | Q LN
|
---|
197 | ;
|
---|
198 | SET1(STR,LN,COL,WD,RV,UN) ; Set up ^TMP array with screen data
|
---|
199 | ; STR = line text
|
---|
200 | ; LN = current line #
|
---|
201 | ; COL = column at which to start video attribute
|
---|
202 | ; WD = width of video attribute
|
---|
203 | ; RV = 0/1 flag for reverse video
|
---|
204 | ; UN = 0/1 flag for underline
|
---|
205 | D SET^VALM10(LN,STR)
|
---|
206 | I $G(RV)'="" D CNTRL^VALM10(LN,COL,WD,IORVON,IORVOFF)
|
---|
207 | I $G(UN)'="" D CNTRL^VALM10(LN,COL,WD-1,IOUON,IOUOFF)
|
---|
208 | Q
|
---|
209 | ;
|
---|