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