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