| [613] | 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 | 
|---|