| 1 | MCDUPP ;WASH/DCB-Post process for the Duplicatation ;Nov 3, 1993 | 
|---|
| 2 | ;;2.3;Medicine;;09/13/1996 | 
|---|
| 3 | START ; | 
|---|
| 4 | N DIR,Y,DTOUT,DUOUT,DIRUT,DIROUT | 
|---|
| 5 | I '$D(^TMP($J,"DUP")) W !,"You must first D ^MCDUPE" Q | 
|---|
| 6 | W @IOF,!,"This process will repoint your files and " | 
|---|
| 7 | W !,"remove the duplicates from the static table." | 
|---|
| 8 | S DIR(0)="Y",DIR("A")="Do you want to continue",DIR("B")="NO" D ^DIR | 
|---|
| 9 | Q:((Y=0)!$D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT)) | 
|---|
| 10 | D REP | 
|---|
| 11 | Q | 
|---|
| 12 | REP ;do the repointing of the files | 
|---|
| 13 | N TEMP,REC,LOC,TMP S FILE="",TMP(0)="Re-Indexing global" | 
|---|
| 14 | F  S FILE=$O(^TMP($J,"DUP","F",FILE)) Q:FILE=""  D  ;go through the file list | 
|---|
| 15 | .I ^TMP($J,"DUP","F",FILE)=1 D REPOINT(FILE,.TMP),DELETE(FILE) ;if the statics files has duplicates do the repointing | 
|---|
| 16 | Q | 
|---|
| 17 | REPOINT(FILE,TMP) ;Repoints the file | 
|---|
| 18 | N TEMP,LOOP,VAL,LOC,CO,DIE,DA,DR,MCSUB,MCDR,MCDIE,MCDA,TYPE,MCVAL | 
|---|
| 19 | Q:'$D(^TMP($J,"DUP","J",FILE)) | 
|---|
| 20 | W !,"----------------------------------------------------------" | 
|---|
| 21 | W !,"Repointing File pointing to ",FILE S VAL="",CO="," | 
|---|
| 22 | F  S VAL=$O(^TMP($J,"DUP","J",FILE,VAL)) Q:VAL=""  D | 
|---|
| 23 | .S TEMP=^TMP($J,"DUP","J",FILE,VAL,1) | 
|---|
| 24 | .F LOOP="OLD","NEW" D | 
|---|
| 25 | ..S MCVAL=+^TMP($J,"DUP","J",FILE,VAL,LOOP) | 
|---|
| 26 | ..S TYPE=$P(TEMP,U,1),LOC="REP"_TYPE_"(TEMP,MCVAL,CO,LOOP)" | 
|---|
| 27 | ..D @LOC | 
|---|
| 28 | Q | 
|---|
| 29 | REPM(TEMP,MCVAL,CO,LOOP) ;Repoint in main file | 
|---|
| 30 | N DA,DR,DIE,SL0 | 
|---|
| 31 | S SL0=$P(TEMP,U,2) | 
|---|
| 32 | S DIE=$$GET1^DID($P(TEMP,U,2),"","","GLOBAL NAME") | 
|---|
| 33 | S DA=$P(TEMP,U,3),DR=$P(TEMP,U,4)_"////"_MCVAL | 
|---|
| 34 | I LOOP="NEW" D | 
|---|
| 35 | .W !,"----------------------------------------------------------" | 
|---|
| 36 | .W !,"   Updating:     File: ",SL0,?30,"        record # ",DA | 
|---|
| 37 | .W !,"                 With: ",MCVAL | 
|---|
| 38 | D ^DIE | 
|---|
| 39 | Q | 
|---|
| 40 | REPS(TEMP,MCVAL,CO,LOOP) ;Repoint in a sub-file | 
|---|
| 41 | N DA,DR,DIE,SL1,SL0 | 
|---|
| 42 | S DIE=$$GET1^DID($P(TEMP,U,2),"","","GLOBAL NAME")_$P(TEMP,U,3)_CO_$P(TEMP,U,5)_CO | 
|---|
| 43 | S DA(1)=$P(TEMP,U,3),DA=$P(TEMP,U,7) | 
|---|
| 44 | S DR=$P(TEMP,U,8)_"////"_MCVAL | 
|---|
| 45 | S LOOK1=$$GET1^DID($P(TEMP,U,2),"","","GLOBAL NAME")_$P(TEMP,U,3)_CO_$P(TEMP,U,5)_CO_"0)" | 
|---|
| 46 | S SL0=+$P(TEMP,U,2) | 
|---|
| 47 | S SL1=+$P(TEMP,U,6) | 
|---|
| 48 | I LOOP="NEW" D | 
|---|
| 49 | .W !,"----------------------------------------------------------" | 
|---|
| 50 | .W !,"   Updating:     File: ",SL0,?30,"        record # ",DA(1) | 
|---|
| 51 | .W !,"              Subfile: ",SL1,?30,"     subrecord # ",DA | 
|---|
| 52 | .W !,"                 With: ",MCVAL | 
|---|
| 53 | D ^DIE | 
|---|
| 54 | Q | 
|---|
| 55 | REPSS(TEMP,MCVAL,CO,LOOP) ;Repoint in a sub-sub-file | 
|---|
| 56 | N DA,DR,DIE,SL1,SL2,SL0 | 
|---|
| 57 | S DIE=$$GET1^DID($P(TEMP,U,2),"","","GLOBAL NAME")_$P(TEMP,U,3)_CO_$P(TEMP,U,5)_CO_$P(TEMP,U,7)_CO_$P(TEMP,U,9)_CO | 
|---|
| 58 | S SL1=+$P(TEMP,U,10) | 
|---|
| 59 | S SL2=$P(TEMP,U,6) | 
|---|
| 60 | S SL0=+$P(TEMP,U,2) | 
|---|
| 61 | S DR=$P(TEMP,U,12)_"////"_MCVAL | 
|---|
| 62 | S DA=$P(TEMP,U,11) | 
|---|
| 63 | S DA(1)=$P(TEMP,U,7),DA(2)=$P(TEMP,U,3) | 
|---|
| 64 | I LOOP="NEW" D | 
|---|
| 65 | .W !,"----------------------------------------------------------" | 
|---|
| 66 | .W !,"   Updating:     File: ",SL0,?30,"        record # ",DA(2) | 
|---|
| 67 | .W !,"              Subfile: ",SL1,?30,"     subrecord # ",DA(1) | 
|---|
| 68 | .W !,"          Sub-Subfile: ",SL2,?30," sub-subrecord # ",DA | 
|---|
| 69 | .W !,"                 With: ",MCVAL | 
|---|
| 70 | D ^DIE | 
|---|
| 71 | Q | 
|---|
| 72 | DELETE(FILE) ;Delete the Duplicates | 
|---|
| 73 | N VAL,NEWREC,OLDREC,DIK,DA | 
|---|
| 74 | Q:'$D(^TMP($J,"DUP","RT",FILE)) | 
|---|
| 75 | W !,"----------------------------------------------------------" | 
|---|
| 76 | W !,"  Deleting the static entries in "_FILE | 
|---|
| 77 | S OLDREC=0 F  S OLDREC=$O(^TMP($J,"DUP","RT",FILE,OLDREC)) Q:OLDREC=""  D | 
|---|
| 78 | .S NEWREC=+^TMP($J,"DUP","RT",FILE,OLDREC) | 
|---|
| 79 | .I OLDREC'=NEWREC D | 
|---|
| 80 | ..W !,?4,"Entry # ",OLDREC | 
|---|
| 81 | ..S DIK=$$GET1^DID(FILE,"","","GLOBAL NAME") | 
|---|
| 82 | ..S %X=DIK_OLDREC_",",%Y="^TMP($J,""DUP"",""STAT"",FILE," | 
|---|
| 83 | ..D %XY^%RCR ;Copy the static record to the ^TMP($J,"DUP","STAT") | 
|---|
| 84 | ..S DA=OLDREC D ^DIK ;Delete the static entries | 
|---|
| 85 | W ! | 
|---|
| 86 | Q | 
|---|