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