| 1 | RMPRPS34 ;HISC/RVD/HNC -Check 661.1 and Save Inventory flag ;9/2/04  12:13 | 
|---|
| 2 | ;;3.0;PROSTHETICS;**34,39,48,58,64,69,76,84,91**;FEB 09,1996 | 
|---|
| 3 | ;RVD patch #76 - 2003 HCPCS update | 
|---|
| 4 | ;                replace inactive CPT Code in #660, starting 1/1/03 | 
|---|
| 5 | ; | 
|---|
| 6 | ;AAC Patch #84 - 2004 HCPCS Update | 
|---|
| 7 | ;                Replace all CPT Codes with pointer 104840 - code A9900 1/1/04 | 
|---|
| 8 | ;                Update all Modifier codes with null | 
|---|
| 9 | ; | 
|---|
| 10 | ;HNC Patch #91 - 2004 HCPCS Update - 6/2004 | 
|---|
| 11 | ;                Convert R10 to R10 A | 
|---|
| 12 | Q | 
|---|
| 13 | EN ;entry point | 
|---|
| 14 | S U="^",RMEXIT=0 | 
|---|
| 15 | ;Check on 2907, shipping and null 2804 (patch 48) | 
|---|
| 16 | ;Check on 2972, shipping and null 2973 (patch 58) | 
|---|
| 17 | ;Check on 3475, shipping and null 3476 (patch 69) | 
|---|
| 18 | ;Check on 3915 for patch 84. | 
|---|
| 19 | ;check for the last entry and next available entry. | 
|---|
| 20 | ; | 
|---|
| 21 | ;Patch 76 | 
|---|
| 22 | ;Wheelchair HCPCS not grouped together prior to calculation flag update. | 
|---|
| 23 | ;hnc/April 2003 | 
|---|
| 24 | ;Wheelchair HCPCS list under HLST | 
|---|
| 25 | ; | 
|---|
| 26 | S RM661=$P($G(^RMPR(661.1,0)),U,3) D:RM661'=3915!($D(^RMPR(661.1,3916)))  G:$G(RMEXIT) EXIT | 
|---|
| 27 | . W !,"*********************************************************" | 
|---|
| 28 | . W !,"* Your RMPR(661.1 global is CORRUPTED,  DO NOT INSTALL  *" | 
|---|
| 29 | . W !,"* the new RMPR(661.1 global.  Please, contact           *" | 
|---|
| 30 | . W !,"* National IRM Help Desk at 1-888-596-4357 for HELP!!!! *" | 
|---|
| 31 | . W !,"*********************************************************",! | 
|---|
| 32 | . H 1 S RMEXIT=1 | 
|---|
| 33 | . Q | 
|---|
| 34 | ; | 
|---|
| 35 | ; Continue with post init... | 
|---|
| 36 | SAVE W !,"Saving Inventory Data ...." | 
|---|
| 37 | K RM0 | 
|---|
| 38 | K ^RMPR("INV") | 
|---|
| 39 | S BDC=0 | 
|---|
| 40 | F  S BDC=$O(^RMPR(661.1,BDC)) Q:'+BDC  D | 
|---|
| 41 | . S RM0=$P(^RMPR(661.1,BDC,0),U,9) | 
|---|
| 42 | . Q:RM0="" | 
|---|
| 43 | . S ^RMPR("INV",BDC)=1 | 
|---|
| 44 | . Q | 
|---|
| 45 | W !,"Done Saving Inventory Data, please load the ^RMPR(661.1) global now" | 
|---|
| 46 | W !,"File RMPR_3_84.GBL",! | 
|---|
| 47 | K RM661,RMEXIT,RM0,BDC | 
|---|
| 48 | Q | 
|---|
| 49 | ; | 
|---|
| 50 | RESET W !,"Start Reset of the Inventory flag...." | 
|---|
| 51 | S U="^" | 
|---|
| 52 | S BDC=0 | 
|---|
| 53 | F  S BDC=$O(^RMPR("INV",BDC)) Q:BDC'>0  D | 
|---|
| 54 | . S $P(^RMPR(661.1,BDC,0),U,9)=1 | 
|---|
| 55 | . Q | 
|---|
| 56 | W !!,"End Reset of the Inventory flag.",! | 
|---|
| 57 | ; | 
|---|
| 58 | ; Patch 58 - call utilities to merge duplicate HCPCS and replace | 
|---|
| 59 | ;            DVG specified old HCPCS with new HCPCS | 
|---|
| 60 | ; ********** Remove or update this call for the next HCPCS update | 
|---|
| 61 | ;D PATCH58^RMPRPS35 | 
|---|
| 62 | ; Patch 69 - replace specified deactivated HCPCS with new HCPCS. | 
|---|
| 63 | ; | 
|---|
| 64 | ;conversion for site with patch #61 | 
|---|
| 65 | I $D(^RMPR(661.6)),$D(^RMPR(661.7)),$D(^RMPR(661.9)) D CONV^RMPRPS36 | 
|---|
| 66 | ;conversion for site without patch #61 | 
|---|
| 67 | I '$D(^RMPR(661.6)),'$D(^RMPR(661.7)),'$D(^RMPR(661.9)) D PAT76^RMPRPS35 | 
|---|
| 68 | ; | 
|---|
| 69 | UPCPT ;update Inactive CPT code starting 4/1/02 | 
|---|
| 70 | W !,"Start Converting Inactive CPT code....",! | 
|---|
| 71 | K RMUPD | 
|---|
| 72 | S U="^" | 
|---|
| 73 | F ROI=3031231:0 S ROI=$O(^RMPR(660,"B",ROI)) Q:ROI'>0  F ROJ=0:0 S ROJ=$O(^RMPR(660,"B",ROI,ROJ)) Q:ROJ'>0  S RM0=$G(^RMPR(660,ROJ,0)) D | 
|---|
| 74 | .S RMCPI=$P(RM0,U,22) | 
|---|
| 75 | .Q:'$G(RMCPI) | 
|---|
| 76 | .S RM60=ROJ | 
|---|
| 77 | .S RMCPT="104840" | 
|---|
| 78 | .S RMUPD(660,RM60_",",4.1)=RMCPT | 
|---|
| 79 | .D FILE^DIE("","RMUPD","") | 
|---|
| 80 | .;Update PCE, if Inactive CPT code was generated with PCE data. | 
|---|
| 81 | .K RMUPD | 
|---|
| 82 | .I $D(^RMPR(660,RM60,10)),$P(^RMPR(660,RM60,10),U,12) D | 
|---|
| 83 | ..S RMCHK=$$SENDPCE^RMPRPCEA(RM60) | 
|---|
| 84 | K RMUPD,ROI,ROJ,RMCPT,RMCPI,RM0,RM60 | 
|---|
| 85 | W !,"Done Converting Inactive CPT code....",! | 
|---|
| 86 | ; | 
|---|
| 87 | DUP ;repoint duplicate HCPCS (660, 664, 664.1, 665, 661.2, 661.3 | 
|---|
| 88 | ;and delete from file 661.1 | 
|---|
| 89 | ;D HCPCD^RMPRPS35(113,952) | 
|---|
| 90 | ;convert amis grouper for entries w/ wheelchair hcpcs. | 
|---|
| 91 | ;D WHUP | 
|---|
| 92 | ; | 
|---|
| 93 | KILLB ;kill & set 'B' cross reference in 661.1. | 
|---|
| 94 | K ^RMPR(661.1,"B"),DIK | 
|---|
| 95 | S DIK="^RMPR(661.1,",DIK(1)=".01^B" D ENALL^DIK | 
|---|
| 96 | ; | 
|---|
| 97 | ; | 
|---|
| 98 | KILLC ;kill & set 'C' cross reference in 661.1. | 
|---|
| 99 | K ^RMPR(661.1,"C"),DIK | 
|---|
| 100 | S DIK="^RMPR(661.1,",DIK(1)=".02^C" D ENALL^DIK | 
|---|
| 101 | ; | 
|---|
| 102 | KILLE ;kill & set 'E' cross reference in 661.1. | 
|---|
| 103 | K ^RMPR(661.1,"E"),DIK | 
|---|
| 104 | ; Line below commented out for Patch 84 - Multi-index Lookup for "A9900" | 
|---|
| 105 | ; S DIK="^RMPR(661.1,",DIK(1)="2^E" D ENALL^DIK K DIK | 
|---|
| 106 | ; | 
|---|
| 107 | W !,"Done with Installation of Patch RMPR*3*84" | 
|---|
| 108 | ; | 
|---|
| 109 | EXIT ;EXIT | 
|---|
| 110 | K ^RMPR("INV"),^RMPR(661.1,"RMPR"),I,RMEXIT,RM661,BDC | 
|---|
| 111 | Q | 
|---|
| 112 | ; Patch 64 Fixes to HCPCS file | 
|---|
| 113 | PAT64 N RMPR,RMPRFME,RMPRI,RMPR11,I | 
|---|
| 114 | ; | 
|---|
| 115 | ; Change NPPD NEW CODE | 
|---|
| 116 | S RMPR11("D5924")="" | 
|---|
| 117 | S RMPR11("D5934")="" | 
|---|
| 118 | S RMPR11("L8500")="" | 
|---|
| 119 | S RMPR11("L8501")="" | 
|---|
| 120 | S RMPR11("L8614")="" | 
|---|
| 121 | S RMPR11("L8619")="" | 
|---|
| 122 | S I="" F  S I=$O(RMPR11(I)) Q:I=""  D | 
|---|
| 123 | .S RMPRI=$O(^RMPR(661.1,"B",I,"")) | 
|---|
| 124 | .Q:RMPRI="" | 
|---|
| 125 | .S RMPRI=RMPRI_"," | 
|---|
| 126 | .S RMPR(661.1,RMPRI,6)="960 A" | 
|---|
| 127 | .D FILE^DIE("","RMPR","RMPRFME") | 
|---|
| 128 | .W !,"HCPCS ",I," updated" | 
|---|
| 129 | W !!,"Done HCPCS update!!!" | 
|---|
| 130 | W !!,"Start Reindexing the 'B' cross reference of file #661.1 ..." | 
|---|
| 131 | K ^RMPR(661.1,"B") | 
|---|
| 132 | S DIK="^RMPR(661.1,",DIK(1)=".01^B" D ENALL^DIK | 
|---|
| 133 | W !!,"Done Reindexing file #661.1!!!",!! | 
|---|
| 134 | PAT64X Q | 
|---|
| 135 | WHUP ;Wheelchair Update Record with new Grouper Number | 
|---|
| 136 | ; | 
|---|
| 137 | Q  ;DO NOT RUN | 
|---|
| 138 | N RMPRI,RMPR,RMPRFME,RMPRY,RMPRPH,RMPRPHE,RMPRPHL,RMPRG,RMPRSTN,RMPRSITE | 
|---|
| 139 | ;loop H xref PSAS HCPCS | 
|---|
| 140 | S RMPRPH=0 | 
|---|
| 141 | F  S RMPRPH=$O(^RMPR(660,"H",RMPRPH)) Q:RMPRPH'>0  D | 
|---|
| 142 | .S RMPRPHE=$P($G(^RMPR(661.1,RMPRPH,0)),U,1) | 
|---|
| 143 | .;RMPRPHE external psas hcpcs file 660 | 
|---|
| 144 | .Q:RMPRPHE="" | 
|---|
| 145 | .S RMPRI="" | 
|---|
| 146 | .F RMPRI=1:1:58 S RMPRY=$P($T(HLST+RMPRI),";",3) D | 
|---|
| 147 | ..Q:RMPRY="" | 
|---|
| 148 | ..;RMPRY is wheelchair hcpcs | 
|---|
| 149 | ..Q:RMPRY'=RMPRPHE | 
|---|
| 150 | ..;hcpcs to update records | 
|---|
| 151 | ..S RMPRPHL=0 | 
|---|
| 152 | ..F  S RMPRPHL=$O(^RMPR(660,"H",RMPRPH,RMPRPHL)) Q:RMPRPHL'>0  D | 
|---|
| 153 | ...;record level | 
|---|
| 154 | ...;need site param and grouper number | 
|---|
| 155 | ...;field 8 station p4 translate to 699.9 rmprsite | 
|---|
| 156 | ...Q:'$D(^RMPR(660,RMPRPHL,0)) | 
|---|
| 157 | ...S RMPRSTN=$P(^RMPR(660,RMPRPHL,0),U,10) | 
|---|
| 158 | ...Q:RMPRSTN="" | 
|---|
| 159 | ...S RMPRSITE=0 | 
|---|
| 160 | ...S RMPRSITE=$O(^RMPR(669.9,"C",RMPRSTN,RMPRSITE)) | 
|---|
| 161 | ...Q:RMPRSITE="" | 
|---|
| 162 | ...L +^RMPR(669.9,RMPRSITE,0):9999 I $T=0 S RMPRG=8822 | 
|---|
| 163 | ...S RMPRG=$P(^RMPR(669.9,RMPRSITE,0),U,7),RMPRG=RMPRG-1,$P(^RMPR(669.9,RMPRSITE,0),U,7)=RMPRG L -^RMPR(669.9,RMPRSITE,0) | 
|---|
| 164 | ...S RMPRPHLL=RMPRPHL_"," | 
|---|
| 165 | ...S RMPR(660,RMPRPHLL,68)=RMPRG | 
|---|
| 166 | ...D FILE^DIE("","RMPR","RMPRFME") | 
|---|
| 167 | Q | 
|---|
| 168 | KILLNDS ; | 
|---|
| 169 | F L=0:0 S PD=$O(^RMPR(661.1,L)) W !,PD,"   ",L Q:L="" | 
|---|
| 170 | Q | 
|---|
| 171 | P91 ;Patch 91 | 
|---|
| 172 | S RMPRI="" | 
|---|
| 173 | F RMPRI=1:1:56 S RMPRY=$P($T(HLST+RMPRI),";",3) D | 
|---|
| 174 | .S $P(^RMPR(661.1,RMPRY,0),U,6)="R10 A" | 
|---|
| 175 | S $P(^RMPR(661.1,2763,0),U,6)="R10 B" | 
|---|
| 176 | S $P(^RMPR(661.1,2770,0),U,6)="R10 B" | 
|---|
| 177 | S $P(^RMPR(661.1,2864,0),U,7)="960 D" | 
|---|
| 178 | W !,"ALL DONE" | 
|---|
| 179 | K RMPRI,RMPRY | 
|---|
| 180 | Q | 
|---|
| 181 | HLST ;Wheelchair IEN to update to R10 A | 
|---|
| 182 | ;;245 | 
|---|
| 183 | ;;246 | 
|---|
| 184 | ;;249 | 
|---|
| 185 | ;;252 | 
|---|
| 186 | ;;254 | 
|---|
| 187 | ;;340 | 
|---|
| 188 | ;;341 | 
|---|
| 189 | ;;342 | 
|---|
| 190 | ;;344 | 
|---|
| 191 | ;;346 | 
|---|
| 192 | ;;348 | 
|---|
| 193 | ;;351 | 
|---|
| 194 | ;;354 | 
|---|
| 195 | ;;359 | 
|---|
| 196 | ;;360 | 
|---|
| 197 | ;;363 | 
|---|
| 198 | ;;364 | 
|---|
| 199 | ;;365 | 
|---|
| 200 | ;;366 | 
|---|
| 201 | ;;367 | 
|---|
| 202 | ;;368 | 
|---|
| 203 | ;;369 | 
|---|
| 204 | ;;370 | 
|---|
| 205 | ;;371 | 
|---|
| 206 | ;;372 | 
|---|
| 207 | ;;373 | 
|---|
| 208 | ;;374 | 
|---|
| 209 | ;;386 | 
|---|
| 210 | ;;387 | 
|---|
| 211 | ;;392 | 
|---|
| 212 | ;;393 | 
|---|
| 213 | ;;395 | 
|---|
| 214 | ;;396 | 
|---|
| 215 | ;;400 | 
|---|
| 216 | ;;401 | 
|---|
| 217 | ;;417 | 
|---|
| 218 | ;;418 | 
|---|
| 219 | ;;426 | 
|---|
| 220 | ;;427 | 
|---|
| 221 | ;;438 | 
|---|
| 222 | ;;439 | 
|---|
| 223 | ;;445 | 
|---|
| 224 | ;;447 | 
|---|
| 225 | ;;453 | 
|---|
| 226 | ;;2095 | 
|---|
| 227 | ;;2096 | 
|---|
| 228 | ;;2097 | 
|---|
| 229 | ;;2099 | 
|---|
| 230 | ;;2100 | 
|---|
| 231 | ;;2101 | 
|---|
| 232 | ;;2102 | 
|---|
| 233 | ;;2103 | 
|---|
| 234 | ;;2104 | 
|---|
| 235 | ;;2790 | 
|---|
| 236 | ;;2791 | 
|---|
| 237 | ;;3591 | 
|---|
| 238 | ;end | 
|---|