[613] | 1 | XDRMRG ;IHS/OHPRD/JCM - MERGE DUPLICATE RECORDS ;02/10/95 11:15
|
---|
| 2 | ;;7.3;TOOLKIT;;Apr 25, 1995
|
---|
| 3 | START ;
|
---|
| 4 | D INIT
|
---|
| 5 | D:XDRM("PRE-MERGE")]"" @XDRM("PRE-MERGE")
|
---|
| 6 | G:XDRMRG("QFLG") END
|
---|
| 7 | D @$S('$D(XDRM("DINUMS")):"SINGLE",1:"MULTI")
|
---|
| 8 | G:XDRMRG("QFLG") END
|
---|
| 9 | I XDRM("POST-MERGE")]"" W:'$D(XDRM("NOTALK")) !!,"I will now do any post merge action that needs to occur, this may take some time please be patient." D @XDRM("POST-MERGE")
|
---|
| 10 | I XDRM("POST-MERGE")']"",$P(XDRM(0),U,26) D DELETE
|
---|
| 11 | D STATUS
|
---|
| 12 | END D EOJ
|
---|
| 13 | Q
|
---|
| 14 | ;
|
---|
| 15 | INIT ;
|
---|
| 16 | F XDRI="XDRMRGFR","XDRMRGTO" K ^TMP(XDRI,$J)
|
---|
| 17 | S %X=XDRGL_XDRMRG("FR")_",",%Y="^TMP(""XDRMRGFR"",$J,"_XDRMRG("FR")_"," D %XY^%RCR
|
---|
| 18 | S %X=XDRGL_XDRMRG("TO")_",",%Y="^TMP(""XDRMRGTO"",$J,"_XDRMRG("TO")_"," D %XY^%RCR
|
---|
| 19 | K %X,%Y
|
---|
| 20 | S (XDRQFLG,XDRMRG("QFLG"))=0
|
---|
| 21 | I $D(XDRM("AUTO")),'$D(XDRM("NOTALK")) S (XDRM("NOTALK"),XDRM("NON-INTERACTIVE"))=""
|
---|
| 22 | I '$D(XDRM("DINUMS")),$O(^VA(15.1,XDRFL,12,0)) F XDRI=0:0 S XDRI=$O(^(XDRI)) Q:'XDRI S XDRM("DINUMS",XDRI)=""
|
---|
| 23 | K XDRI
|
---|
| 24 | Q
|
---|
| 25 | ;
|
---|
| 26 | SINGLE ;
|
---|
| 27 | S XDRMRGFL=XDRFL,XDRMRGL=XDRGL
|
---|
| 28 | I '$D(XDRM("NON-INTERACTIVE")) K DITM D DITM2 G:XDRMRG("QFLG") SINGLEX I 1
|
---|
| 29 | E D DIT0
|
---|
| 30 | D PACKAGE
|
---|
| 31 | D DITMGMRG
|
---|
| 32 | SINGLEX Q
|
---|
| 33 | ;
|
---|
| 34 | MULTI ;
|
---|
| 35 | S XDRMRGFL=XDRFL,XDRMRGL=XDRGL
|
---|
| 36 | I '$D(XDRM("NON-INTERACTIVE")) K DITM D DITM2 G:XDRMRG("QFLG") MULTIX I 1
|
---|
| 37 | E D DIT0
|
---|
| 38 | F XDRMRGFL=0:0 S XDRMRGFL=$O(XDRM("DINUMS",XDRMRGFL)) Q:'XDRMRGFL!(XDRMRG("QFLG")) S XDRMRGL=^DIC(XDRMRGFL,0,"GL") D @$S('$D(XDRM("NON-INTERACTIVE")):"DITM2",1:"DIT0")
|
---|
| 39 | G:XDRMRG("QFLG") MULTIX
|
---|
| 40 | S XDRMRGFL=XDRFL,XDRMRGL=XDRGL
|
---|
| 41 | D PACKAGE
|
---|
| 42 | F XDRI=0:0 S XDRI=$O(XDRM("DINUMS",XDRI)) Q:'XDRI S DITMGMRG("EXCLUDE",XDRI)=""
|
---|
| 43 | K XDRI
|
---|
| 44 | D DITMGMRG
|
---|
| 45 | F XDRMRGFL=0:0 S XDRMRGFL=$O(XDRM("DINUMS",XDRMRGFL)) Q:'XDRMRGFL S XDRMRGL=^DIC(XDRMRGFL,0,"GL") D DITMGMRG
|
---|
| 46 | MULTIX Q
|
---|
| 47 | ;
|
---|
| 48 | DITM2 ;
|
---|
| 49 | S:XDRMRGFL'=XDRFL X="DITM2^XDRMRG1",@^%ZOSF("TRAP") K X
|
---|
| 50 | S:$D(XDRM("NOTALK")) DITM("NOTALK")=""
|
---|
| 51 | S:'$D(DITM("NOTALK")) DITM("DDSP")=""
|
---|
| 52 | S DITM("DIMERGE")=1
|
---|
| 53 | S DITM("DFF")=XDRMRGFL,DITM("DIC")=XDRMRGL
|
---|
| 54 | S DITM("DIT(1)")=XDRMRG("FR"),DITM("DIT(2)")=XDRMRG("TO"),DITM("DDEF")=2
|
---|
| 55 | S DITM("PACKAGE")="",DITM("EXCLUDE",15)="",IOP=IO(0)
|
---|
| 56 | W:'$D(XDRM("NOTALK")) !!,"I will now merge the ",$P(^DIC(XDRMRGFL,0),U,1)," file, this may take some time please be patient."
|
---|
| 57 | D ^DITM2 K DITM,IOP
|
---|
| 58 | D:$D(DIRUT)!($D(DMSG))!($D(DUOUT)) ASK
|
---|
| 59 | K DIRUT,DMSG
|
---|
| 60 | Q
|
---|
| 61 | ;
|
---|
| 62 | ASK ;
|
---|
| 63 | W !!
|
---|
| 64 | S DIR(0)="YO",DIR("A")="Do you wish to continue MERGING these records",DIR("B")="N"
|
---|
| 65 | D ^DIR
|
---|
| 66 | I $D(DTOUT)!($D(DUOUT)) S XDRMRG("QFLG")=1 G ASKX
|
---|
| 67 | S:'Y XDRMRG("QFLG")=1
|
---|
| 68 | ASKX K DIR,DA,Y
|
---|
| 69 | Q
|
---|
| 70 | ;
|
---|
| 71 | DIT0 ;
|
---|
| 72 | S:XDRMRGFL'=XDRFL X="DIT0^XDRMRG1",@^%ZOSF("TRAP") K X
|
---|
| 73 | W:'$D(XDRM("NOTALK")) !!,"I will now merge the ",$P(^DIC(XDRMRGFL,0),U,1)," file, this may take some time please be patient."
|
---|
| 74 | K DA
|
---|
| 75 | S (DIT("T"),DIT("F"))=XDRMRGL
|
---|
| 76 | S (D0,DA("T"))=XDRMRG("TO"),DA("F")=XDRMRG("FR")
|
---|
| 77 | D EN^DIT0 K D0,DA,DIC,DIK,DIT
|
---|
| 78 | Q
|
---|
| 79 | ;
|
---|
| 80 | PACKAGE ;
|
---|
| 81 | F XDRMPKGE=0:0 S XDRMPKGE=$O(^VA(15,XDRMPDA,11,XDRMPKGE)) Q:'XDRMPKGE D:$P(^VA(15,XDRMPDA,11,XDRMPKGE,0),U,2)=1 MERGE
|
---|
| 82 | K XDRMPKGE
|
---|
| 83 | Q
|
---|
| 84 | ;
|
---|
| 85 | MERGE ;
|
---|
| 86 | S X="MERGE^XDRMRG1",@^%ZOSF("TRAP") K X
|
---|
| 87 | W:'$D(XDRM("NOTALK")) !!,"I will now merge all files associated with the ",$P(^DIC(9.4,XDRMPKGE,0),U,1)," package."
|
---|
| 88 | W:'$D(XDRM("NOTALK")) !,"This may take some time, Please be patient."
|
---|
| 89 | I $D(^DIC(9.4,XDRMPKGE,20,XDRFL,0))#2,$P(^(0),U,3)]"" S XDRMRG("PKGMRG")=U_$P(^(0),U,3) D @XDRMRG("PKGMRG")
|
---|
| 90 | W:'$D(XDRM("NOTALK")) !!,"Completed merging all files associated with the ",$P(^DIC(9.4,XDRMPKGE,0),U,1)," package."
|
---|
| 91 | Q
|
---|
| 92 | DITMGMRG ;
|
---|
| 93 | S X="DITMGMRG^XDRMRG1",@^%ZOSF("TRAP") K X
|
---|
| 94 | W:'$D(XDRM("NOTALK")) !!,"I will now merge all files that point to the ",$P(^DIC(XDRMRGFL,0),U,1)," file that do not have a specific package merge ... This may take some time, please be patient."
|
---|
| 95 | S DITMGMRG("FILE")=XDRMRGFL,DITMGMRG("FR")=XDRMRG("FR"),DITMGMRG("TO")=XDRMRG("TO")
|
---|
| 96 | S DITMGMRG("EXCLUDE",15)="",DITMGMRG("PACKAGE")=""
|
---|
| 97 | S:$D(XDRM("NOTALK")) DITMGMRG("NOTALK")=""
|
---|
| 98 | S:$G(XDRM("TOP FILE")) DITMGMRG("TOP FILE")=XDRM("TOP FILE")
|
---|
| 99 | D EN^DITMGMRG K DITMGMRG
|
---|
| 100 | Q
|
---|
| 101 | ;
|
---|
| 102 | DELETE ;
|
---|
| 103 | W:'$D(XDRM("NOTALK")) !!,"I will now delete the From Record from the ",$P(^DIC(XDRFL,0),U,1)," file and any files that were excluded from the repointing. This may take some time, please be patient."
|
---|
| 104 | K XDRMRGFL,XDRMRGL
|
---|
| 105 | I $D(XDRM("DINUMS")) F XDRMRGFL=0:0 S XDRMRGFL=$O(XDRM("DINUMS",XDRMRGFL)) Q:'XDRMRGFL S XDRMRGL=^DIC(XDRMRGFL,0,"GL") S DIK=XDRMRGL,DA=XDRMRG("FR") D DIK
|
---|
| 106 | S DIK=XDRGL,DA=XDRMRG("FR") D DIK
|
---|
| 107 | Q
|
---|
| 108 | ;
|
---|
| 109 | DIK ;
|
---|
| 110 | S X="DIK^XDRMRG1",@^%ZOSF("TRAP") K X
|
---|
| 111 | D ^DIK K DIK,DA
|
---|
| 112 | Q
|
---|
| 113 | STATUS ;
|
---|
| 114 | S DIE="^VA(15,",DA=XDRMPDA,DR=".05////2;.08////"_DT D ^DIE K DIE,DR,DA
|
---|
| 115 | Q
|
---|
| 116 | EOJ ;
|
---|
| 117 | F XDRI="XDRMRGFR","XDRMRGTO" K ^TMP(XDRI,$J)
|
---|
| 118 | K DITM,DITMGMRG,XDRMRGFL,XDRMGL
|
---|
| 119 | Q
|
---|