| 1 | IBCNERPB ;DAOU/RO -  IIV PAYER LINK REPORT ;AUG-2003 | 
|---|
| 2 | ;;2.0;INTEGRATED BILLING;**184,252,271**;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 | ; Input parameters: N/A | 
|---|
| 8 | ; Other relevant variables ZTSAVED for queueing: | 
|---|
| 9 | ;  IBCNERTN = "IBCNERPB" (current routine name for queueing the | 
|---|
| 10 | ;   COMPILE process) | 
|---|
| 11 | ; ******** | 
|---|
| 12 | ;  IBCNESPC("REP")=1 for Payer List report, 2 for Company List | 
|---|
| 13 | ;  IBCNESPC("PTYPE")=Payer type (1-no active ins linked, 2-at least 1 ins linked, 3-All Payers) | 
|---|
| 14 | ;  IBCNESPC("PSORT")=Primary Sort for Payer report | 
|---|
| 15 | ;  IBCNESPC("PPYR")=single Payer name or '' for all | 
|---|
| 16 | ;  IBCNESPC("PDET")=Ins detail on payer report (1-include list of ins,2-do not list) | 
|---|
| 17 | ; | 
|---|
| 18 | ;  IBCNESPC("ITYPE")=Ins Company type (1-no payer link, 2-linked to payer, 3-All ins companies) | 
|---|
| 19 | ;  IBCNESPC("ISORT")=Primary Sort for Payer Insurance report | 
|---|
| 20 | ;  IBCNESPC("IMAT")=Partial matching Ins carriers | 
|---|
| 21 | ; Only call this routine at a tag | 
|---|
| 22 | Q | 
|---|
| 23 | ; | 
|---|
| 24 | EN ; Main entry pt | 
|---|
| 25 | ; Init vars | 
|---|
| 26 | N STOP,IBCNERTN,POP,IBCNESPC | 
|---|
| 27 | ; | 
|---|
| 28 | S STOP=0 | 
|---|
| 29 | S IBCNERTN="IBCNERPB" | 
|---|
| 30 | W @IOF | 
|---|
| 31 | W !,"IIV Payer Link Report",! | 
|---|
| 32 | W !,"In order for an Insurance Company to be eligible for electronic insurance" | 
|---|
| 33 | W !,"eligibility communications via the IIV software, the Insurance Company" | 
|---|
| 34 | W !,"needs to be linked to an appropriate payer from the National EDI Payer list." | 
|---|
| 35 | W !,"The National EDI Payer list contains the names of the payers that are" | 
|---|
| 36 | W !,"currently participating with the IIV process." | 
|---|
| 37 | W !!,"This report option provides information to assist with finding unlinked" | 
|---|
| 38 | W !,"insurance companies or payers, which can subsequently be linked through the" | 
|---|
| 39 | W !,"INSURANCE COMPANY EDIT option." | 
|---|
| 40 | ; | 
|---|
| 41 | ; Report type | 
|---|
| 42 | R05 D RTYPE I STOP G:$$STOP EXIT G R05 | 
|---|
| 43 | S IBCNESPC("PPYR")="" | 
|---|
| 44 | ; If rpt by ins company, go to questions | 
|---|
| 45 | I $G(IBCNESPC("REP"))=2 G R120 | 
|---|
| 46 | ; Payer type params | 
|---|
| 47 | R20 D PAYER I STOP G:$$STOP EXIT G R05 | 
|---|
| 48 | I IBCNESPC("PPYR")'="" S IBCNESPC("PTYPE")=3 G R30 | 
|---|
| 49 | ; Payer details | 
|---|
| 50 | R25 D PTYPE I STOP G:$$STOP EXIT G R20 | 
|---|
| 51 | S IBCNESPC("PDET")=2 I IBCNESPC("PTYPE")=1 G R40 | 
|---|
| 52 | ; insurance company details | 
|---|
| 53 | R30 D PDET I STOP G:$$STOP EXIT G R25 | 
|---|
| 54 | I IBCNESPC("PPYR")'="" S IBCNESPC("ISORT")=1 G R100 | 
|---|
| 55 | ; Type of data to return param | 
|---|
| 56 | R40 D PSORT I STOP G:$$STOP EXIT G R20 | 
|---|
| 57 | G R100 | 
|---|
| 58 | ; Payer type params | 
|---|
| 59 | R120 D ITYPE^IBCNERPC I STOP G:$$STOP EXIT G R05 | 
|---|
| 60 | ; Partial Ins Name to include | 
|---|
| 61 | R130 D IMAT^IBCNERPC I STOP G:$$STOP EXIT G R120 | 
|---|
| 62 | I IBCNESPC("ITYPE")=1 S IBCNESPC("ISORT")=1 G R100 | 
|---|
| 63 | ; Type of data to return param | 
|---|
| 64 | R140 D ISORT^IBCNERPC I STOP G:$$STOP EXIT G R130 | 
|---|
| 65 | ; Select output device | 
|---|
| 66 | R100 ; Issue output width warning if not queued | 
|---|
| 67 | I IBCNERTN="IBCNERPB",'$D(ZTQUEUED) W !!!,"*** This report is 132 characters wide ***",! | 
|---|
| 68 | D DEVICE(IBCNERTN,.IBCNESPC) I STOP G:$$STOP EXIT G R05 | 
|---|
| 69 | G EXIT | 
|---|
| 70 | ; | 
|---|
| 71 | EXIT ; Exit pt | 
|---|
| 72 | Q | 
|---|
| 73 | ; | 
|---|
| 74 | ; | 
|---|
| 75 | COMPILE(IBCNERTN,IBCNESPC) ; | 
|---|
| 76 | ; Entry point called from EN^XUTMDEVQ in either direct or queued mode. | 
|---|
| 77 | ; Input params: | 
|---|
| 78 | ;  IBCNERTN = Routine name for ^TMP($J,... | 
|---|
| 79 | ;  IBCNESPC = Array passed by ref of the report params | 
|---|
| 80 | ; | 
|---|
| 81 | ; Init scratch globals | 
|---|
| 82 | K ^TMP($J,IBCNERTN) | 
|---|
| 83 | ; Compile | 
|---|
| 84 | I IBCNERTN="IBCNERPB" D EN^IBCNERPC(IBCNERTN,.IBCNESPC) | 
|---|
| 85 | ; Print | 
|---|
| 86 | I '$G(ZTSTOP) D | 
|---|
| 87 | . I IBCNERTN="IBCNERPB" D EN3^IBCNERPD(IBCNERTN,.IBCNESPC) | 
|---|
| 88 | ; Close device | 
|---|
| 89 | D ^%ZISC | 
|---|
| 90 | ; Kill scratch globals | 
|---|
| 91 | K ^TMP($J,IBCNERTN) | 
|---|
| 92 | ; Purge task record | 
|---|
| 93 | I $D(ZTQUEUED) S ZTREQ="@" | 
|---|
| 94 | ; | 
|---|
| 95 | COMPILX ; COMPILE exit pt | 
|---|
| 96 | Q | 
|---|
| 97 | ; | 
|---|
| 98 | STOP() ; Determine if user wants to exit out of the whole option | 
|---|
| 99 | ; Init vars | 
|---|
| 100 | N DIR,X,Y,DIRUT | 
|---|
| 101 | ; | 
|---|
| 102 | W ! | 
|---|
| 103 | S DIR(0)="Y" | 
|---|
| 104 | S DIR("A")="Do you want to exit out of this option entirely" | 
|---|
| 105 | S DIR("B")="YES" | 
|---|
| 106 | S DIR("?",1)="  Enter YES to immediately exit out of this option." | 
|---|
| 107 | S DIR("?")="  Enter NO to return to the previous question." | 
|---|
| 108 | D ^DIR K DIR | 
|---|
| 109 | I $D(DIRUT) S (STOP,Y)=1 G STOPX | 
|---|
| 110 | I 'Y S STOP=0 | 
|---|
| 111 | ; | 
|---|
| 112 | STOPX ; STOP exit pt | 
|---|
| 113 | Q Y | 
|---|
| 114 | ; | 
|---|
| 115 | RTYPE ; Prompt to allow users to select main report option | 
|---|
| 116 | ; Init vars | 
|---|
| 117 | N DIR,X,Y,DIRUT | 
|---|
| 118 | ; | 
|---|
| 119 | S DIR(0)="S^1:Payer List;2:Insurance Company List" | 
|---|
| 120 | S DIR("A")="Select a report option" | 
|---|
| 121 | S DIR("B")=1 | 
|---|
| 122 | S DIR("?",1)="  1 - Payer List:   This option lists the payers in the National" | 
|---|
| 123 | S DIR("?",2)="                    Payer list, and optionally provides information about" | 
|---|
| 124 | S DIR("?",3)="                    the insurance companies that are linked to that payer" | 
|---|
| 125 | S DIR("?",4)="  2 - Insurance" | 
|---|
| 126 | S DIR("?",5)="      Company List: This option lists insurance companies and" | 
|---|
| 127 | S DIR("?")="                    optionally displays linked payer information" | 
|---|
| 128 | D ^DIR K DIR | 
|---|
| 129 | I $D(DIRUT) S STOP=1 G RTYPEX | 
|---|
| 130 | S IBCNESPC("REP")=Y | 
|---|
| 131 | ; | 
|---|
| 132 | RTYPEX ; RTYPE exit pt | 
|---|
| 133 | Q | 
|---|
| 134 | ; | 
|---|
| 135 | PTYPE ; Prompt to select Payer Type to include | 
|---|
| 136 | ; Init vars | 
|---|
| 137 | N DIR,X,Y,DIRUT | 
|---|
| 138 | ; | 
|---|
| 139 | S DIR(0)="S^1:Unlinked Payers;2:Linked Payers;3:ALL Payers" | 
|---|
| 140 | S DIR("A")="Select the type of payers to display" | 
|---|
| 141 | S DIR("B")="3" | 
|---|
| 142 | S DIR("?",1)="  1 - Only payers with no active insurance companies linked" | 
|---|
| 143 | S DIR("?",2)="  2 - Only payers with at least one insurance company linked" | 
|---|
| 144 | S DIR("?")="  3 - ALL Payers" | 
|---|
| 145 | D ^DIR K DIR | 
|---|
| 146 | I $D(DIRUT) S STOP=1 G PTYPEX | 
|---|
| 147 | S IBCNESPC("PTYPE")=Y | 
|---|
| 148 | ; | 
|---|
| 149 | PTYPEX ; TYPE exit pt | 
|---|
| 150 | Q | 
|---|
| 151 | PAYER ; Select Payer - File #365.12 | 
|---|
| 152 | ; Init vars | 
|---|
| 153 | NEW DIC,DTOUT,DUOUT,X,Y | 
|---|
| 154 | ; | 
|---|
| 155 | W !!! | 
|---|
| 156 | S DIC(0)="ABEQ" | 
|---|
| 157 | S DIC("A")=$$FO^IBCNEUT1("Select a Payer (RETURN for ALL Payers): ",39,"L") | 
|---|
| 158 | ; Do not allow '~NO PAYER' or non-IIV payers | 
|---|
| 159 | S DIC("S")="I ($P(^(0),U,1)'=""~NO PAYER""),$$PYRAPP^IBCNEUT5(""IIV"",$G(Y))'=""""" | 
|---|
| 160 | S DIC="^IBE(365.12," | 
|---|
| 161 | D ^DIC | 
|---|
| 162 | I $D(DUOUT)!$D(DTOUT) S Y="" S STOP=1 G PAYERX | 
|---|
| 163 | I Y=-1 S Y="" | 
|---|
| 164 | S IBCNESPC("PPYR")=Y | 
|---|
| 165 | PAYERX ; Prompt for ending Payer value | 
|---|
| 166 | Q | 
|---|
| 167 | PDET ; Prompt to select to display Insurance Company details to include | 
|---|
| 168 | ; Init vars | 
|---|
| 169 | N DIR,X,Y,DIRUT | 
|---|
| 170 | ; | 
|---|
| 171 | S DIR(0)="S^1:List linked insurance company detail;2:Do not list linked insurance company detail" | 
|---|
| 172 | S DIR("A")="Select insurance company detail option" | 
|---|
| 173 | S DIR("B")="1" | 
|---|
| 174 | S DIR("?",1)="  1 - Include a list of insurance companies linked to the payers" | 
|---|
| 175 | S DIR("?")="  2 - Do not list linked insurance companies, total number only" | 
|---|
| 176 | D ^DIR K DIR | 
|---|
| 177 | I $D(DIRUT) S STOP=1 G PDETEX | 
|---|
| 178 | S IBCNESPC("PDET")=Y | 
|---|
| 179 | ; | 
|---|
| 180 | PDETEX ; TYPE exit pt | 
|---|
| 181 | Q | 
|---|
| 182 | ; | 
|---|
| 183 | PSORT ; Prompt to allow users to select primary sort | 
|---|
| 184 | ; Init vars | 
|---|
| 185 | N DIR,X,Y,DIRUT | 
|---|
| 186 | ; | 
|---|
| 187 | S DIR(0)="S^1:Payer Name;2:VA National Payer ID;3:Nationally Enabled Status;4:Locally Enabled Status;5:# of Linked Insurance Companies" | 
|---|
| 188 | S DIR("A")="Select the primary sort field" | 
|---|
| 189 | S DIR("B")=1 | 
|---|
| 190 | S DIR("?")="  Select a data field by which this report should be primarily sorted." | 
|---|
| 191 | D ^DIR K DIR | 
|---|
| 192 | I $D(DIRUT) S STOP=1 G PSORTX | 
|---|
| 193 | S IBCNESPC("PSORT")=Y | 
|---|
| 194 | ; | 
|---|
| 195 | PSORTX ; SORT exit pt | 
|---|
| 196 | Q | 
|---|
| 197 | ; | 
|---|
| 198 | DEVICE(IBCNERTN,IBCNESPC) ; Device Handler and possible TaskManager calls | 
|---|
| 199 | ; | 
|---|
| 200 | ; Input params: | 
|---|
| 201 | ;  IBCNERTN = Routine name for ^TMP($J,... | 
|---|
| 202 | ;  IBCNESPC = Array passed by ref of the report params | 
|---|
| 203 | ; | 
|---|
| 204 | ; Init vars | 
|---|
| 205 | N ZTRTN,ZTDESC,ZTSAVE,POP | 
|---|
| 206 | ; | 
|---|
| 207 | S ZTRTN="COMPILE^IBCNERPB("""_IBCNERTN_""",.IBCNESPC)" | 
|---|
| 208 | S ZTDESC="IBCNE IIV Payer Link Report" | 
|---|
| 209 | S ZTSAVE("IBCNESPC(")="" | 
|---|
| 210 | S ZTSAVE("IBCNERTN")="" | 
|---|
| 211 | D EN^XUTMDEVQ(ZTRTN,ZTDESC,.ZTSAVE) | 
|---|
| 212 | I POP S STOP=1 | 
|---|
| 213 | ; | 
|---|
| 214 | DEVICEX ; DEVICE exit pt | 
|---|
| 215 | Q | 
|---|