[613] | 1 | DG53705I ;ALB/TMK - DG*5.3*705 Pre-Install Routine ; 05-APR-2006
|
---|
| 2 | ;;5.3;Registration;**705**;Aug 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | EN ; Description: This entry point will be used as a driver for
|
---|
| 5 | ; pre-installation updates.
|
---|
| 6 | ; DBIA: 4542 for direct DD global access/kills and for one-time
|
---|
| 7 | ; call to Fileman PT node cleanup (PT^DDUCHK1)
|
---|
| 8 | ;
|
---|
| 9 | ; If the patch DVB*4*54 was not installed, skip the cleanup
|
---|
| 10 | N %
|
---|
| 11 | K ^TMP("DG*5.3*705",$J)
|
---|
| 12 | S %=$$CKUPD^DG53705E()
|
---|
| 13 | I '% D Q
|
---|
| 14 | . N ZMES,I
|
---|
| 15 | . F I=1,2 S ZMES(I)=" "
|
---|
| 16 | . S ZMES(3)="**** PATCH IS BEING INSTALLED IN NON-UPDATE MODE ****"
|
---|
| 17 | . S ZMES(4)=" "
|
---|
| 18 | . S ZMES(5)="NOTE: THE SYSTEM HAS DETERMINED THAT YOUR PATIENT FILE DOES NOT HAVE BAD"
|
---|
| 19 | . S ZMES(6)=" DATA FROM PATCH DVB*4*54. THEREFORE, THE STATUS OF PATCH DG*5.3*705"
|
---|
| 20 | . S ZMES(7)=" WILL BE 'INSTALLED', HOWEVER NO UPDATES TO YOUR SYSTEM WILL BE MADE."
|
---|
| 21 | . D MES^XPDUTL(.ZMES)
|
---|
| 22 | ;
|
---|
| 23 | D BMES^XPDUTL("**** PATCH IS BEING INSTALLED IN UPDATE MODE ****")
|
---|
| 24 | D DELMISC
|
---|
| 25 | D DELPTR
|
---|
| 26 | D DELXREF
|
---|
| 27 | D DELID
|
---|
| 28 | D DELDESCR
|
---|
| 29 | D DONE
|
---|
| 30 | Q
|
---|
| 31 | ;
|
---|
| 32 | DELMISC ; Delete various miscellaneous nodes:
|
---|
| 33 | ; write access, help, executable help, audit, etc
|
---|
| 34 | D BMES^XPDUTL(">>> Deleting bad write access, help, audit, other miscellaneous nodes")
|
---|
| 35 | K ^DD(2,.12113,9),^DD(2,.14112,9)
|
---|
| 36 | K ^DD(2,.108,3)
|
---|
| 37 | K ^DD(2,.391,4)
|
---|
| 38 | F Z=.01,.2924,.3111,.3192,991.07 K ^DD(2,Z,"AUDIT")
|
---|
| 39 | K ^DD(2.312,.18,"AUDIT")
|
---|
| 40 | K ^DIC(2,0,"AUDIT")
|
---|
| 41 | K ^DD(2,0,"VR")
|
---|
| 42 | K ^DD(2,0,"VRPK")
|
---|
| 43 | K ^DIC(2,"%",7,0)
|
---|
| 44 | K ^DIC(2,"%","B","QAM",7)
|
---|
| 45 | D STEP
|
---|
| 46 | Q
|
---|
| 47 | ;
|
---|
| 48 | DELPTR ; Delete bad pointer nodes
|
---|
| 49 | N Z,Z0
|
---|
| 50 | D BMES^XPDUTL(">>> Deleting bad pointer nodes")
|
---|
| 51 | S DDUCFI=2,DDUCFIX=1 D PT^DDUCHK1 ; IA
|
---|
| 52 | D STEP
|
---|
| 53 | Q
|
---|
| 54 | ;
|
---|
| 55 | DELID ; Delete bad identifier nodes
|
---|
| 56 | N Z
|
---|
| 57 | D BMES^XPDUTL(">>> Deleting bad identifier nodes")
|
---|
| 58 | F Z=.2924,.302,.351,"GARB","WARD","WR","ZREW" K ^DD(2,0,"ID",Z)
|
---|
| 59 | D STEP
|
---|
| 60 | Q
|
---|
| 61 | ;
|
---|
| 62 | DELDESCR ;Delete excess description nodes
|
---|
| 63 | N Z
|
---|
| 64 | D BMES^XPDUTL(">>> Deleting bad field description nodes")
|
---|
| 65 | S Z=1 F S Z=$O(^DD(2,.107,21,Z)) Q:'Z K ^DD(2,.107,21,Z,0)
|
---|
| 66 | D STEP
|
---|
| 67 | Q
|
---|
| 68 | ;
|
---|
| 69 | DELXREF ; Delete cross references and indexes
|
---|
| 70 | N DGZ,DGZF,DGZFLD,DGZN,DGDEL,DGXREF,X,Z
|
---|
| 71 | D BMES^XPDUTL(">>> Deleting bad cross references and indexes")
|
---|
| 72 | ;
|
---|
| 73 | ; Delete indexes 'ADGFM01', 'ADGFM03', 'ADGFM09', 'ADGFM351'
|
---|
| 74 | F DGZ="ADGFM01","ADGFM03","ADGFM09","ADGFM351" D DELIXN^DDMOD(2,DGZ)
|
---|
| 75 | ; Delete a trigger xref for file 2.01, field 100.03
|
---|
| 76 | S Z=0 F S Z=$O(^DD(2.01,100.03,1,Z)) Q:'Z I $P($G(^DD(2.01,100.03,1,Z,0)),U,3,5)="TRIGGER^20^.01" D DELIX^DDMOD(2.01,100.03,Z) Q
|
---|
| 77 | ;
|
---|
| 78 | F Z=2:1 S X=$P($T(@("XREF+"_Z)),";;",2) Q:X="" S DGZ(+X,+$P(X,U,2),$P(X,U,4))=$P(X,U,3) ;Extracts xrefs to delete
|
---|
| 79 | ;
|
---|
| 80 | S DGZF=0
|
---|
| 81 | F S DGZF=$O(DGZ(DGZF)) Q:'DGZF S DGZFLD=0 F S DGZFLD=$O(DGZ(DGZF,DGZFLD)) Q:'DGZFLD S DGZN="" F S DGZN=$O(DGZ(DGZF,DGZFLD,DGZN)) Q:DGZN="" D
|
---|
| 82 | . S DGZ=$G(DGZ(DGZF,DGZFLD,DGZN))
|
---|
| 83 | . I 'DGZ,'$$CHK1(DGZF,DGZFLD,DGZN) K ^DD(DGZF,0,"IX",DGZN,DGZF,DGZFLD)
|
---|
| 84 | . I DGZ S Z=$$CHK2(DGZF,DGZFLD,DGZN,DGZ) I Z D DELIX^DDMOD(DGZF,DGZFLD,Z)
|
---|
| 85 | K ^TMP("DIERR",$J)
|
---|
| 86 | D STEP
|
---|
| 87 | Q
|
---|
| 88 | ;
|
---|
| 89 | CHK1(FILE,FLD,XREFNM) ; Check if xref exists
|
---|
| 90 | ; Functon returns 1 if it exists, 0 if it doesn't
|
---|
| 91 | N Z,OK
|
---|
| 92 | S (OK,Z)=0
|
---|
| 93 | F S Z=$O(^DD(FILE,FLD,1,Z)) Q:'Z I $P($G(^(Z,0)),U,2)=XREFNM S OK=1 Q
|
---|
| 94 | Q OK
|
---|
| 95 | ;
|
---|
| 96 | CHK2(FILE,FLD,XREFNM,XREFNO) ; Returns ien of xref
|
---|
| 97 | N Z,NUM
|
---|
| 98 | S Z=0
|
---|
| 99 | S NUM=$S($P($G(^DD(FILE,FLD,1,XREFNO,0)),U,2)=XREFNM:XREFNO,1:0)
|
---|
| 100 | I 'NUM F S Z=$O(^DD(FILE,FLD,1,Z)) Q:'Z I $P($G(^DD(FILE,FLD,1,Z,0)),U,2)=XREFNM S NUM=Z Q
|
---|
| 101 | Q NUM
|
---|
| 102 | ;
|
---|
| 103 | STEP D BMES^XPDUTL(">>> Step Completed.")
|
---|
| 104 | Q
|
---|
| 105 | ;
|
---|
| 106 | DONE D BMES^XPDUTL(">>> Pre-install Cleanup Completed.")
|
---|
| 107 | S ^TMP("DG*5.3*705",$J)="1^PATCH DVB*4*54 INSTALLED"
|
---|
| 108 | Q
|
---|
| 109 | ;
|
---|
| 110 | CLEAN ; Erase TMP global used to screen DD update
|
---|
| 111 | K ^TMP("DG*5.3*705",$J)
|
---|
| 112 | Q
|
---|
| 113 | ;
|
---|
| 114 | XREF ; Xrefs that must be deleted
|
---|
| 115 | ;; Pieces are: File #^Fld #^xref default #or null^xref name
|
---|
| 116 | ;;2^.01^^AHL
|
---|
| 117 | ;;2^.02^^AHL2
|
---|
| 118 | ;;2^.03^^AHL3
|
---|
| 119 | ;;2^.03^5^DGFCMON
|
---|
| 120 | ;;2^.05^993^AENR05
|
---|
| 121 | ;;2^.06^^AHL5
|
---|
| 122 | ;;2^.09^^AHL4
|
---|
| 123 | ;;2^.102^^A4EC
|
---|
| 124 | ;;2^.118^3^AENR118
|
---|
| 125 | ;;2^.121^1^AENR121
|
---|
| 126 | ;;2^.12111^1^AENR12111
|
---|
| 127 | ;;2^.1219^1^AENR1219
|
---|
| 128 | ;;2^.14111^1^AENR14111
|
---|
| 129 | ;;2^.152^4^AU
|
---|
| 130 | ;;2^.1656^1^AENR1656
|
---|
| 131 | ;;2^.293^1^AENR293
|
---|
| 132 | ;;2^.302^^ACP
|
---|
| 133 | ;;2^.302^^AP
|
---|
| 134 | ;;2^.3025^3^AENR3025
|
---|
| 135 | ;;2^.3025^^CHK4
|
---|
| 136 | ;;2^.304^1^AENR304
|
---|
| 137 | ;;2^.307^1^AENR307
|
---|
| 138 | ;;2^.3111^2^AENR3111
|
---|
| 139 | ;;2^.31115^^AEMP
|
---|
| 140 | ;;2^.31115^992^AENR31115
|
---|
| 141 | ;;2^.31115^^MAC
|
---|
| 142 | ;;2^.312^2^AENR312
|
---|
| 143 | ;;2^.313^992^AENR313
|
---|
| 144 | ;;2^.3192^1^AENR3192
|
---|
| 145 | ;;2^.32102^^AI
|
---|
| 146 | ;;2^.32103^^AK
|
---|
| 147 | ;;2^.323^992^AENR323
|
---|
| 148 | ;;2^.351^^AEXP
|
---|
| 149 | ;;2^.351^^AHL6
|
---|
| 150 | ;;2^.351^^AT
|
---|
| 151 | ;;2^.353^1^AENR353
|
---|
| 152 | ;;2^.354^1^AENR354
|
---|
| 153 | ;;2^.361^^AR
|
---|
| 154 | ;;2^.3611^3^AENR3611
|
---|
| 155 | ;;2^.3612^2^AENR3612
|
---|
| 156 | ;;2^.3615^1^AENR3615
|
---|
| 157 | ;;2^.3617^1^AENR3617
|
---|
| 158 | ;;2^.3618^1^AENR3618
|
---|
| 159 | ;;2^.36205^^BEN
|
---|
| 160 | ;;2^.36205^^CHK1
|
---|
| 161 | ;;2^.36215^^CHK2
|
---|
| 162 | ;;2^.36235^^CHK3
|
---|
| 163 | ;;2^.381^^AT
|
---|
| 164 | ;;2^.382^1^AENR382
|
---|
| 165 | ;;2^.391^1^AENR391
|
---|
| 166 | ;;2^.392^1^AENR392
|
---|
| 167 | ;;2^.393^1^AENR393
|
---|
| 168 | ;;2^.394^1^AENR394
|
---|
| 169 | ;;2^.395^1^AENR395
|
---|
| 170 | ;;2^.532^2^AENR532
|
---|
| 171 | ;;2^.533^1^AENR533
|
---|
| 172 | ;;2^1010.1511^1^AENR10101511
|
---|
| 173 | ;;2^1010.159^1^AENR1010159
|
---|
| 174 | ;;2^1901^2^AN
|
---|
| 175 | ;;2.04^.01^1^AENR01
|
---|
| 176 | ;;2.04^2^1^AENR2
|
---|
| 177 | ;;2.04^3^1^AENR3
|
---|
| 178 | ;;2.312^.01^6^AENR01
|
---|
| 179 | ;;2.312^.18^2^AENR18
|
---|
| 180 | ;;2.312^1^2^AENR1
|
---|
| 181 | ;;2.312^2^1^AENR2
|
---|
| 182 | ;;2.312^3^2^AENR3
|
---|
| 183 | ;;2.312^6^1^AENR6
|
---|
| 184 | ;;2.312^8^2^AENR8
|
---|
| 185 | ;;2.312^17^1^AENR17
|
---|
| 186 | ;;2.396^.01^2^AENR01
|
---|
| 187 | ;;2.397^.01^2^AENR01
|
---|
| 188 | ;;2.397^1^1^AENR1
|
---|
| 189 | ;;2.398^.01^2^AENR01
|
---|
| 190 | ;;2.398^1^1^AENR1
|
---|
| 191 | ;;2.398^2^1^AENR2
|
---|