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