| 1 | PSAV3P53 ;VMP/PDW-POST INIT *53 FIND BAD 'C' INDEX, KILL OLD, SET PROPER  'C' & 'B' INDEXES; 8/20/05
 | 
|---|
| 2 |  ;;3.0;DRUG ACCOUNTABILITY;**53**; 4/30/97
 | 
|---|
| 3 | ST ;walk 'C' entries finding bad entries , pull values, kill old, set new indexes
 | 
|---|
| 4 |  S PSASUB=3000101 ;1JAN2000
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  W:$G(PSASHOW) !,"by DATES"
 | 
|---|
| 7 |  F  S PSASUB=$O(^PSD(58.8,"C",PSASUB)) Q:PSASUB'>0  D
 | 
|---|
| 8 |  . S PSALOC=$O(^PSD(58.8,"C",PSASUB,0))
 | 
|---|
| 9 |  . S PSADRG=0 F  S PSADRG=$O(^PSD(58.8,"C",PSASUB,PSALOC,0)) Q:PSADRG'>0  D
 | 
|---|
| 10 |  .. K ^PSD(58.8,"C",PSASUB,PSALOC,PSADRG) X "S X=$ZR" W:$G(PSASHOW) !,"K ",X
 | 
|---|
| 11 |  .. K ^PSD(58.8,PSALOC,1,"B",PSASUB,PSADRG) X "S X=$ZR" W:$G(PSASHOW) !,"K ",X
 | 
|---|
| 12 |  .. S ^PSD(58.8,"C",PSADRG,PSALOC,PSADRG)="" X "S X=$ZR" W:$G(PSASHOW) !,"S ",X
 | 
|---|
| 13 |  .. S ^PSD(58.8,PSALOC,1,"B",PSADRG,PSADRG)="" X "S X=$ZR" W:$G(PSASHOW) !,"S ",X
 | 
|---|
| 14 |  W:$G(PSASHOW) !,"by LOCATION"
 | 
|---|
| 15 |  S PSALOC=0
 | 
|---|
| 16 |  F  S PSALOC=$O(^PSD(58.8,PSALOC)) Q:PSALOC'>0  D
 | 
|---|
| 17 |  . S PSADRG=0
 | 
|---|
| 18 |  . F  S PSADRG=$O(^PSD(58.8,PSALOC,1,PSADRG)) Q:PSADRG'>0  D
 | 
|---|
| 19 |  .. ;scrub B index
 | 
|---|
| 20 |  .. S PSADRG2=0
 | 
|---|
| 21 |  .. F  S PSADRG2=$O(^PSD(58.8,PSALOC,1,"B",PSADRG,PSADRG2)) Q:PSADRG2'>0  D
 | 
|---|
| 22 |  ...I PSADRG2'=PSADRG K ^PSD(58.8,PSALOC,1,"B",PSADRG,PSADRG2) X "S X=$ZR" W:$G(PSASHOW) !,"K ",X
 | 
|---|
| 23 |  .. ;check valid B index
 | 
|---|
| 24 |  .. I '$D(^PSD(58.8,PSALOC,1,"B",PSADRG,PSADRG)) S ^PSD(58.8,PSALOC,1,"B",PSADRG,PSADRG)="" X "S X=$ZR" W:$G(PSASHOW) !,"S ",X
 | 
|---|
| 25 |  .. ;check valid C index
 | 
|---|
| 26 |  .. I '$D(^PSD(58.8,"C",PSADRG,PSALOC,PSADRG)) S ^PSD(58.8,"C",PSADRG,PSALOC,PSADRG)="" X "S X=$ZR" W:$G(PSASHOW) !,"S ",X
 | 
|---|
| 27 |  W:$G(PSASHOW) !,"by C INDEX"
 | 
|---|
| 28 |  S PSADRG=0 F  S PSADRG=$O(^PSD(58.8,"C",PSADRG)) Q:PSADRG'>0  D
 | 
|---|
| 29 |  . S PSALOC=0 F  S PSALOC=$O(^PSD(58.8,"C",PSADRG,PSALOC)) Q:PSALOC'>0  D
 | 
|---|
| 30 |  .. S PSADRG2=0 F  S PSADRG2=$O(^PSD(58.8,"C",PSADRG,PSALOC,PSADRG2)) Q:PSADRG2'>0  D
 | 
|---|
| 31 |  ... I PSADRG2'=PSADRG K ^PSD(58.8,"C",PSADRG,PSALOC,PSADRG2) X "S X=$ZR" W:$G(PSASHOW) !,"K ",X
 | 
|---|
| 32 |  K PSALOC,PSADRG,PSADRG2
 | 
|---|
| 33 |  Q
 | 
|---|