[613] | 1 | DVBA278P ;ALB/GTS - PATCH DVBA*2.7*8 TO CLEANUP 396.1 DD ; 4/29/96
|
---|
| 2 | ;;2.7;AMIE;**8**;Apr 10, 1995
|
---|
| 3 | ;
|
---|
| 4 | TEXT ; write lines for user
|
---|
| 5 | ;; This routine will loop through all fields in the AMIE SITE PARAMETER
|
---|
| 6 | ;; file looking for fields not supported with class I software. When
|
---|
| 7 | ;; such a field is found, the installer will be asked if they want to
|
---|
| 8 | ;; delete the field. When all fields are checked, a message will be
|
---|
| 9 | ;; sent to the installer indicating what they selected to delete.
|
---|
| 10 | ;; This message serves as record of what was selected for a particular
|
---|
| 11 | ;; install and can be used to check if existing class III fields are
|
---|
| 12 | ;; needed. The user may abort the install by entering an '^' at
|
---|
| 13 | ;; the Device selection prompt. If you are unsure that the fields
|
---|
| 14 | ;; you have selected for deletion are not used by any class III
|
---|
| 15 | ;; programming at your site, PLEASE '^' AT THE DEVICE SELECTION
|
---|
| 16 | ;; PROMPT AND REVIEW THE MAIL MESSAGE THAT IS DELIVERED. You may
|
---|
| 17 | ;; rerun the install at any time after you have reviewed the mail
|
---|
| 18 | ;; message.
|
---|
| 19 | ;;
|
---|
| 20 | ;;QUIT
|
---|
| 21 | ;
|
---|
| 22 | ENVCHKQ QUIT ;** Quit the environment check. Only called so routine is
|
---|
| 23 | ; ** available from Pre-Init questions.
|
---|
| 24 | ;
|
---|
| 25 | QUEST ;** Entry point - Question Class III fields
|
---|
| 26 | N TXTVAR
|
---|
| 27 | D KVARS
|
---|
| 28 | D MES^XPDUTL(" "),MES^XPDUTL(" ")
|
---|
| 29 | F I=1:1 S TXTVAR=$P($T(TEXT+I),";;",2) Q:TXTVAR="QUIT" DO
|
---|
| 30 | .S:TXTVAR="" TXTVAR=" "
|
---|
| 31 | .D MES^XPDUTL(TXTVAR)
|
---|
| 32 | D START
|
---|
| 33 | Q
|
---|
| 34 | ;
|
---|
| 35 | ;
|
---|
| 36 | START ;** Start processing
|
---|
| 37 | S (I,NODE,COUNT,QUESDA)=0
|
---|
| 38 | ;
|
---|
| 39 | ;** Look for unsupported fields
|
---|
| 40 | D MES^XPDUTL(" ")
|
---|
| 41 | D MES^XPDUTL("Inspecting file 396.1 for unsupported fields.")
|
---|
| 42 | ;
|
---|
| 43 | ;** Class I fld array
|
---|
| 44 | F FILE=396.1,396.12,396.13,396.14,396.115 DO
|
---|
| 45 | .F I=(I+1):1 S FIELDVAR=$P($T(FIELDS+I),";;",2) Q:(FIELDVAR="QUIT") DO
|
---|
| 46 | ..S CLASSI(FILE,FIELDVAR)=""
|
---|
| 47 | ;
|
---|
| 48 | ;** Fields at site
|
---|
| 49 | F FILE=396.1,396.12,396.13,396.14,396.115 DO
|
---|
| 50 | .F FLDDA=0:0 S FLDDA=$O(^DD(FILE,FLDDA)) Q:'FLDDA DO
|
---|
| 51 | ..I $D(^DD(FILE,FLDDA,0)),'$D(CLASSI(FILE,FLDDA)) DO
|
---|
| 52 | ...S CLASSIII(FILE,FLDDA)=$P(^DD(FILE,FLDDA,0),"^",1)_"^"_$P(^(0),"^",4)
|
---|
| 53 | ;
|
---|
| 54 | ;** If no Class III fields
|
---|
| 55 | I '$D(CLASSIII) DO
|
---|
| 56 | .D MES^XPDUTL(" ")
|
---|
| 57 | .D MES^XPDUTL(".....no unsupported fields were found!")
|
---|
| 58 | ;
|
---|
| 59 | ;** Nullify all XPDQUES nodes
|
---|
| 60 | S QUESSUB=""
|
---|
| 61 | F S QUESSUB=$O(XPDQUES(QUESSUB)) Q:(QUESSUB']"") DO
|
---|
| 62 | .S XPDQUES(QUESSUB)=""
|
---|
| 63 | .S XPDQUES(QUESSUB,"A")=""
|
---|
| 64 | ;
|
---|
| 65 | ;** Set up XPDQUES nodes
|
---|
| 66 | S FILE=""
|
---|
| 67 | F S FILE=$O(CLASSIII(FILE)) Q:('FILE!($D(DVBAOUT))) DO
|
---|
| 68 | .S FLDDA=""
|
---|
| 69 | .F S FLDDA=$O(CLASSIII(FILE,FLDDA)) Q:('FLDDA!($D(DVBAOUT))) DO
|
---|
| 70 | ..W !!!,?1,"Field #",?12,"Field Name",?45,"Node;Piece"
|
---|
| 71 | ..W !,?3,FLDDA
|
---|
| 72 | ..W ?12,$P(CLASSIII(FILE,FLDDA),U,1)
|
---|
| 73 | ..W ?48,$P(CLASSIII(FILE,FLDDA),U,2)
|
---|
| 74 | ..S DIR(0)="YAO^",DIR("A")="Do you want to delete this field? "
|
---|
| 75 | ..S DIR("B")="YES" D ^DIR
|
---|
| 76 | ..I $D(DTOUT)!($D(DUOUT)!($D(DIROUT))) S DVBAOUT=""
|
---|
| 77 | ..I '$D(DVBAOUT)&(+Y=1) DO
|
---|
| 78 | ...S QUESDA=QUESDA+1
|
---|
| 79 | ...S QUESSUB="PRE"_QUESDA
|
---|
| 80 | ...S XPDQUES(QUESSUB)=$P(CLASSIII(FILE,FLDDA),U,1)_"^"_FLDDA_"^"_FILE
|
---|
| 81 | ...S XPDQUES(QUESSUB,"A")=$P(CLASSIII(FILE,FLDDA),U,1)_" selected for deletion!"
|
---|
| 82 | ..K DIR,X,Y
|
---|
| 83 | I $D(DVBAOUT) K XPDQUES
|
---|
| 84 | I '$D(DVBAOUT) D MAIL
|
---|
| 85 | KVARS K COUNT,DFN,I,NODE,NODENM,FIELDVAR,FLDDA,FILE,QUESDA
|
---|
| 86 | K CLASSI,CLASSIII,DVBAOUT
|
---|
| 87 | K DTOUT,DUOUT,DIROUT
|
---|
| 88 | Q
|
---|
| 89 | ;
|
---|
| 90 | MAIL ; mail message of bogus nodes found
|
---|
| 91 | N DIFROM
|
---|
| 92 | S XMY(DUZ)="",XMDUZ=.5
|
---|
| 93 | S XMSUB="AMIE SITE PARAMETER file field cleanup"
|
---|
| 94 | S XMTEXT="^TMP(""DVBA V2.7 P8 E-MAIL"","_$J_","
|
---|
| 95 | S I=0,COUNT=0
|
---|
| 96 | S TEXT="This Mailman message records the Class III fields selected for deletion"
|
---|
| 97 | D LINE(TEXT)
|
---|
| 98 | S TEXT=" with patch DVBA*2.7*8. These fields are only deleted if/when the"
|
---|
| 99 | D LINE(TEXT)
|
---|
| 100 | S TEXT=" installation was/is completed."
|
---|
| 101 | D LINE(TEXT)
|
---|
| 102 | D LINE(" ")
|
---|
| 103 | S TEXT=" The following fields were selected to delete from the AMIE SITE"
|
---|
| 104 | D LINE(TEXT)
|
---|
| 105 | S TEXT=" PARAMETER file (#396.1) (Multiples included):"
|
---|
| 106 | D LINE(TEXT)
|
---|
| 107 | D LINE(" ")
|
---|
| 108 | I '$D(XPDQUES) DO
|
---|
| 109 | .S TEXT=" No fields selected for deletion!"
|
---|
| 110 | .D LINE(TEXT)
|
---|
| 111 | I $D(XPDQUES("PRE1")),(XPDQUES("PRE1")="") DO
|
---|
| 112 | .S TEXT=" No fields selected for deletion!"
|
---|
| 113 | .D LINE(TEXT)
|
---|
| 114 | I $D(XPDQUES("PRE1")),(XPDQUES("PRE1")'="") DO
|
---|
| 115 | .S TEXT=" FIELD NAME FIELD # FILE #"
|
---|
| 116 | .D LINE(TEXT)
|
---|
| 117 | .S TEXT=" ========== ======= ======"
|
---|
| 118 | .D LINE(TEXT)
|
---|
| 119 | .S I="PRE0"
|
---|
| 120 | .F S I=$O(XPDQUES(I)) Q:(I']"") D
|
---|
| 121 | ..S (BLANK1,BLANK2)=""
|
---|
| 122 | ..S $P(BLANK1," ",(37-$L($P(XPDQUES(I),"^",1))))=""
|
---|
| 123 | ..S TEXT=" "_$P(XPDQUES(I),"^",1)_BLANK1_$P(XPDQUES(I),"^",2)
|
---|
| 124 | ..S $P(BLANK2," ",(53-$L(TEXT)))=""
|
---|
| 125 | ..S TEXT=TEXT_BLANK2_$P(XPDQUES(I),"^",3)
|
---|
| 126 | ..D LINE(TEXT)
|
---|
| 127 | D ^XMD
|
---|
| 128 | K XMDUZ,XMY,XMTEXT,XMSUB,BLANK1,BLANK2,TEXT,QUESSUB
|
---|
| 129 | K ^TMP("DVBA V2.7 P8 E-MAIL",$J)
|
---|
| 130 | Q
|
---|
| 131 | ;
|
---|
| 132 | ;
|
---|
| 133 | LINE(TEXT) ; add line to array for e-mail
|
---|
| 134 | S COUNT=COUNT+1,^TMP("DVBA V2.7 P8 E-MAIL",$J,COUNT)=TEXT
|
---|
| 135 | Q
|
---|
| 136 | ;
|
---|
| 137 | FLDCLEAN ;**Delete selected fields
|
---|
| 138 | I $D(XPDQUES) DO
|
---|
| 139 | .N I,SITEDA,MULTDA,FLDDA,FILEDA1,NODE,CLEANFLD
|
---|
| 140 | .S SITEDA=0
|
---|
| 141 | .S SITEDA=$O(^DVB(396.1,SITEDA))
|
---|
| 142 | .S I="PRE0"
|
---|
| 143 | .F S I=$O(XPDQUES(I)) Q:(I']"") Q:(XPDQUES(I)="") D
|
---|
| 144 | ..S FILEDA1=$P(XPDQUES(I),"^",3)
|
---|
| 145 | ..S FLDDA=$P(XPDQUES(I),"^",2)
|
---|
| 146 | ..;
|
---|
| 147 | ..;** Remove data in fields deleted
|
---|
| 148 | ..I FILEDA1=396.1 DO
|
---|
| 149 | ...S DIE="^DVB(396.1,",DA=SITEDA
|
---|
| 150 | ...S DR=FLDDA_"////@"
|
---|
| 151 | ...D ^DIE
|
---|
| 152 | ...K DIE,DA,DR
|
---|
| 153 | ..I FILEDA1'=396.1 DO
|
---|
| 154 | ...S (CLEANFLD,MULTDA)=0
|
---|
| 155 | ...S MULTDA=$O(^DD(396.1,"SB",FILEDA1,0))
|
---|
| 156 | ...S:MULTDA CLEANFLD=1,NODE=$P($P(^DD(396.1,MULTDA,0),"^",4),";",1)
|
---|
| 157 | ...I CLEANFLD DO
|
---|
| 158 | ....S MULTDA=0
|
---|
| 159 | ....F S MULTDA=$O(^DVB(396.1,SITEDA,NODE,MULTDA)) Q:'MULTDA DO
|
---|
| 160 | .....S DIE="^DVB(396.1,"_SITEDA_","_NODE_","
|
---|
| 161 | .....S DA=MULTDA,DA(1)=SITEDA
|
---|
| 162 | .....S DR=FLDDA_"////@"
|
---|
| 163 | .....D ^DIE
|
---|
| 164 | .....K DIE,DA,DR
|
---|
| 165 | ..;
|
---|
| 166 | ..;** Remove from DD
|
---|
| 167 | ..S DA=FLDDA
|
---|
| 168 | ..S DA(1)=FILEDA1
|
---|
| 169 | ..S DIK="^DD("_DA(1)_","
|
---|
| 170 | ..D ^DIK
|
---|
| 171 | ..K DA,DIK
|
---|
| 172 | Q
|
---|
| 173 | ;
|
---|
| 174 | FIELDS ; list of fields in 396.1
|
---|
| 175 | ;;.01
|
---|
| 176 | ;;.11
|
---|
| 177 | ;;2
|
---|
| 178 | ;;3
|
---|
| 179 | ;;4
|
---|
| 180 | ;;6
|
---|
| 181 | ;;7
|
---|
| 182 | ;;8
|
---|
| 183 | ;;9
|
---|
| 184 | ;;10
|
---|
| 185 | ;;11
|
---|
| 186 | ;;12
|
---|
| 187 | ;;14
|
---|
| 188 | ;;15
|
---|
| 189 | ;;16
|
---|
| 190 | ;;17
|
---|
| 191 | ;;18
|
---|
| 192 | ;;50
|
---|
| 193 | ;;90
|
---|
| 194 | ;;QUIT
|
---|
| 195 | P12 ;;.01
|
---|
| 196 | ;;QUIT
|
---|
| 197 | P13 ;;.01
|
---|
| 198 | ;;1
|
---|
| 199 | ;;QUIT
|
---|
| 200 | P14 ;;.01
|
---|
| 201 | ;;1
|
---|
| 202 | ;;QUIT
|
---|
| 203 | P115 ;;.01
|
---|
| 204 | ;;QUIT
|
---|