1 | RORKIDS ;HCIOFO/SG - INSTALL UTILITIES (LOW-LEVEL) ; 4/21/05 2:02pm
|
---|
2 | ;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006
|
---|
3 | ;
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ;***** DISPLAYS THE MESSAGE IF THE INSTALLATION ABORTS
|
---|
7 | ABTMSG() ;
|
---|
8 | ;;You can use the Print Log Files [RORMNT PRINT LOGS] option from
|
---|
9 | ;;the Clinical Case Registries Maintenance [RORMNT MAIN] menu to
|
---|
10 | ;;review the log file(s). The Install File Print [XPD PRINT INSTALL
|
---|
11 | ;;FILE] option from the Utilities [XPD UTILITY] can help also.
|
---|
12 | ;;Please fix the error(s) and restart the installation.
|
---|
13 | ;;
|
---|
14 | ;;NOTE: You must have the ROR VA IRM key to be able to access
|
---|
15 | ;; the Clinical Case Registries files and view the logs.
|
---|
16 | ;
|
---|
17 | N I,INFO,MODE,TMP
|
---|
18 | S MODE=+$G(RORPARM("KIDS"))
|
---|
19 | S MODE=$S(MODE=1:"PRE-INSTALL",MODE=2:"POST-INSTALL",1:"")
|
---|
20 | Q:MODE=""
|
---|
21 | F I=1:1 S TMP=$T(ABTMSG+I) Q:TMP'[";;" S INFO(I)=$P(TMP,";;",2,99)
|
---|
22 | D BMES("FATAL ERROR(S) DURING THE REGISTRY "_MODE_"!",.INFO)
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | ;***** SENDS AN ALERT
|
---|
26 | ;
|
---|
27 | ; DUZ DUZ of the addressee
|
---|
28 | ;
|
---|
29 | ; MSG Text of the message or negative error code. The '^'
|
---|
30 | ; characters are replaced with spaces in the text.
|
---|
31 | ;
|
---|
32 | ; [REGNAME] Registry name
|
---|
33 | ;
|
---|
34 | ; [PATIEN] Patient IEN
|
---|
35 | ;
|
---|
36 | ; [ARG2-ARG5] Optional parameters as for $$ERROR^RORERR
|
---|
37 | ;
|
---|
38 | ALERT(DUZ,MSG,REGNAME,PATIEN,ARG2,ARG3,ARG4,ARG5) ;
|
---|
39 | Q:'$G(DUZ)
|
---|
40 | N XQA,XQADATA,XQAFLG,XQAMSG,XQAROU,TMP
|
---|
41 | S XQA(DUZ)=""
|
---|
42 | ;--- Get text of the error message
|
---|
43 | I +MSG=MSG Q:MSG'<0 D
|
---|
44 | . S MSG=$$MSG^RORERR20(+MSG,,.PATIEN,.ARG2,.ARG3,.ARG4,.ARG5)
|
---|
45 | S MSG=$TR(MSG,"^","~"),XQAMSG="ROR: ",TMP=70-$L(XQAMSG)-3
|
---|
46 | S XQAMSG=XQAMSG_$S($L(MSG)>TMP:$E(MSG,1,TMP)_"...",1:MSG)
|
---|
47 | ;--- Setup alert processing routine
|
---|
48 | S $P(XQADATA,U,1)=$E(MSG,1,78)
|
---|
49 | S $P(XQADATA,U,2)=$G(REGNAME)
|
---|
50 | S $P(XQADATA,U,3)=$G(PATIEN)
|
---|
51 | S XQAROU="ALERTRTN^RORKIDS"
|
---|
52 | ;--- Send the alert
|
---|
53 | S XQAFLG="D" D SETUP^XQALERT
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | ;***** ALERT PROCESSING ROUTINE
|
---|
57 | ;
|
---|
58 | ; XQADATA Alert data
|
---|
59 | ; ^1: Message
|
---|
60 | ; ^2: Registry name
|
---|
61 | ; ^3: Patient DFN
|
---|
62 | ;
|
---|
63 | ALERTRTN ;
|
---|
64 | ;;Registry Name:
|
---|
65 | ;;Patient DFN:
|
---|
66 | ;
|
---|
67 | Q:$G(XQADATA)=""
|
---|
68 | N I,TMP
|
---|
69 | W !!,$P(XQADATA,"^"),!
|
---|
70 | F I=1:1:2 S TMP=$P(XQADATA,"^",I+1) D:TMP'=""
|
---|
71 | . W $P($T(ALERTRTN+I),";;",2),?15,TMP,!
|
---|
72 | Q
|
---|
73 | ;
|
---|
74 | ;***** OUTPUTS THE MESSAGE AND PUTS IT INTO THE LOG
|
---|
75 | BMES(MSG,INFO) ;
|
---|
76 | N I
|
---|
77 | D BMES^XPDUTL(" "_MSG)
|
---|
78 | S I=""
|
---|
79 | F S I=$O(INFO(I)) Q:I="" D MES^XPDUTL(" "_INFO(I))
|
---|
80 | D LOG^RORLOG(,MSG,,.INFO)
|
---|
81 | Q
|
---|
82 | ;
|
---|
83 | ;***** CHECKS THE SCHEDULED OPTION
|
---|
84 | ;
|
---|
85 | ; OPTION Option name
|
---|
86 | ;
|
---|
87 | ; Return Values:
|
---|
88 | ; <0 Error code
|
---|
89 | ; 0 Ok
|
---|
90 | ;
|
---|
91 | ; This function can be used in the environment check routines to
|
---|
92 | ; check if the option is running and/or scheduled to run.
|
---|
93 | ;
|
---|
94 | ; The function displays appropriate error messages and warnings
|
---|
95 | ; using the WRITE command. So, it MUST NOT be called from the
|
---|
96 | ; pre-install or post-install routines.
|
---|
97 | ;
|
---|
98 | ; The function uses the ^UTILITY($J,"W") node (^DIWP and ^DIWW).
|
---|
99 | ;
|
---|
100 | CHKOPT(OPTION) ;
|
---|
101 | N DIWF,DIWL,DIWR,RC,RORBUF,RORI,RORSDT,TMP,X,ZTSK
|
---|
102 | ;--- Check status of the option
|
---|
103 | D OPTSTAT^XUTMOPT(OPTION,.RORBUF)
|
---|
104 | S (RC,RORSDT)=0
|
---|
105 | F RORI=1:1:$G(RORBUF) K ZTSK D I $G(ZTSK(1))=2 S RC=-76 Q
|
---|
106 | . S ZTSK=$P(RORBUF(RORI),"^") Q:'ZTSK
|
---|
107 | . D STAT^%ZTLOAD
|
---|
108 | . S TMP=$P(RORBUF(RORI),"^",2)
|
---|
109 | . I TMP>0 S:'RORSDT!(TMP<RORSDT) RORSDT=TMP
|
---|
110 | ;--- Display an error message if the option is running
|
---|
111 | I RC D Q RC
|
---|
112 | . W !,$$MSG^RORERR20(RC,,,OPTION),!
|
---|
113 | ;--- Display an apropriate warning
|
---|
114 | S DIWL=5,DIWR=$G(IOM,80)-DIWL
|
---|
115 | K ^UTILITY($J,"W")
|
---|
116 | CM1 I RORSDT>0 D
|
---|
117 | . ;;"The ["_OPTION_"] option is scheduled to run "_RORSDT_"."
|
---|
118 | . ;;"If you are going to schedule the installation, please, choose"
|
---|
119 | . ;;"an appropriate time so that the post-install will either"
|
---|
120 | . ;;"finish well before the ["_OPTION_"] scheduled time or start"
|
---|
121 | . ;;"after the option completion."
|
---|
122 | . ;---
|
---|
123 | . S RORSDT=$$FMTE^XLFDT(RORSDT)
|
---|
124 | . S RORSDT="on "_$P(RORSDT,"@")_" at "_$P(RORSDT,"@",2)
|
---|
125 | . F RORI=1:1 S X=$T(CM1+RORI) Q:X'[";;" D
|
---|
126 | . . X "S X="_$P(X,";;",2) D ^DIWP
|
---|
127 | CM2 E D
|
---|
128 | . ;;"The ["_OPTION_"] option is not scheduled. Do not forget"
|
---|
129 | . ;;"to schedule it after completion of the installation."
|
---|
130 | . ;---
|
---|
131 | . F RORI=1:1 S X=$T(CM2+RORI) Q:X'[";;" D
|
---|
132 | . . X "S X="_$P(X,";;",2) D ^DIWP
|
---|
133 | W ! D ^DIWW
|
---|
134 | Q 0
|
---|
135 | ;
|
---|
136 | ;***** PROCESSES THE INSTALL CHECKPOINT
|
---|
137 | ;
|
---|
138 | ; CPNAME Checkpoint name
|
---|
139 | ;
|
---|
140 | ; CALLBACK Callback entry point ($$TAG^ROUTINE). This function
|
---|
141 | ; accepts no parameters and must return either 0 if
|
---|
142 | ; everything is Ok or a negative error code.
|
---|
143 | ;
|
---|
144 | ; [PARAM] Value to set checkpoint parameter to.
|
---|
145 | ;
|
---|
146 | ; The function checks if the checkpoint is completed. If it is not,
|
---|
147 | ; the callback entry point is XECUTEd. If everything is Ok, the
|
---|
148 | ; function will complete the checkpoint.
|
---|
149 | ;
|
---|
150 | ; Return Values:
|
---|
151 | ; <0 Error code
|
---|
152 | ; 0 Ok
|
---|
153 | ;
|
---|
154 | CP(CPNAME,CALLBACK,PARAM) ;
|
---|
155 | N RC
|
---|
156 | ;--- Verify the checkpoint and quit if it is completed
|
---|
157 | S RC=$$VERCP^XPDUTL(CPNAME) Q:RC>0 0
|
---|
158 | ;--- Create the new checkpoint
|
---|
159 | I RC<0 D Q:'RC $$ERROR^RORERR(-50,,,,CPNAME)
|
---|
160 | . S RC=$$NEWCP^XPDUTL(CPNAME,,.PARAM)
|
---|
161 | ;--- Reset the KIDS progress bar
|
---|
162 | S XPDIDTOT=0 D UPDATE^XPDID(0)
|
---|
163 | ;--- Execute the callback entry point
|
---|
164 | X "S RC="_CALLBACK Q:RC<0 RC
|
---|
165 | ;--- Complete the check point
|
---|
166 | S RC=$$COMCP^XPDUTL(CPNAME)
|
---|
167 | Q:'RC $$ERROR^RORERR(-51,,,,CPNAME)
|
---|
168 | Q 0
|
---|
169 | ;
|
---|
170 | ;***** DELETES THE (SUB)FILE DD AND DATA (IF REQUESTED)
|
---|
171 | ;
|
---|
172 | ; FILE File number
|
---|
173 | ;
|
---|
174 | ; [FLAGS] String that contains flags for EN^DIU2:
|
---|
175 | ; "D" Delete the data as well as the DD
|
---|
176 | ; "E" Echo back information during deletion
|
---|
177 | ; "S" Subfile data dictionary is to be deleted
|
---|
178 | ; "T" Templates are to be deleted
|
---|
179 | ;
|
---|
180 | ; [SILENT] If this parameters is defined and non-zero, the
|
---|
181 | ; function will work in "silent" mode.
|
---|
182 | ; Nothing (except error messages if debug mode >1 is
|
---|
183 | ; enabled) will be displayed on the console or stored
|
---|
184 | ; into the INSTALLATION file.
|
---|
185 | ;
|
---|
186 | ; Return Values:
|
---|
187 | ; <0 Error code
|
---|
188 | ; 0 Ok
|
---|
189 | ;
|
---|
190 | ; NOTE: This entry point can also be called as a procedure:
|
---|
191 | ; D DELFILE^RORKIDS(...) if you do not need its return value.
|
---|
192 | ;
|
---|
193 | DELFILE(FILE,FLAGS,SILENT) ;
|
---|
194 | I '$$VFILE^DILFD(+FILE) Q:$QUIT 0 Q
|
---|
195 | N DIU,FT,RC
|
---|
196 | S DIU=+FILE,DIU(0)=$G(FLAGS)
|
---|
197 | I '$G(SILENT) D
|
---|
198 | . S FT=$S(DIU(0)["S":"subfile",1:"file")
|
---|
199 | . D BMES("Deleting the "_FT_" #"_(+FILE)_"...")
|
---|
200 | D EN^DIU2
|
---|
201 | D:'$G(SILENT) MES("The "_FT_" has been deleted.")
|
---|
202 | Q:$QUIT 0 Q
|
---|
203 | ;
|
---|
204 | ;***** DELETES FIELD DEFENITIONS FROM THE DD
|
---|
205 | ;
|
---|
206 | ; FILE File number
|
---|
207 | ;
|
---|
208 | ; FLDLST String that contains list of field numbers to
|
---|
209 | ; delete (separated with the ';').
|
---|
210 | ;
|
---|
211 | ; [SILENT] If this parameters is defined and non-zero, the
|
---|
212 | ; function will work in "silent" mode.
|
---|
213 | ; Nothing (except error messages if debug mode >1 is
|
---|
214 | ; enabled) will be displayed on the console or stored
|
---|
215 | ; into the INSTALLATION file.
|
---|
216 | ;
|
---|
217 | ; Return Values:
|
---|
218 | ; <0 Error code
|
---|
219 | ; 0 Ok
|
---|
220 | ;
|
---|
221 | ; NOTE: This entry point can also be called as a procedure:
|
---|
222 | ; D DELFLDS^RORKIDS(...) if you do not need its return value.
|
---|
223 | ;
|
---|
224 | DELFLDS(FILE,FLDLST,SILENT) ;
|
---|
225 | I '$$VFILE^DILFD(+FILE) Q:$QUIT 0 Q
|
---|
226 | N DA,DIK,I,RC
|
---|
227 | D:'$G(SILENT)
|
---|
228 | . D BMES("Deleting the field definitions...")
|
---|
229 | . D MES("File #"_(+FILE)_", Fields: '"_FLDLST_"'")
|
---|
230 | S DA(1)=+FILE,DIK="^DD("_DA(1)_","
|
---|
231 | F I=1:1 S DA=$P(FLDLST,";",I) Q:'DA D ^DIK
|
---|
232 | D:'$G(SILENT) MES("The definitions have been deleted.")
|
---|
233 | Q:$QUIT 0 Q
|
---|
234 | ;
|
---|
235 | ;***** OUTPUTS THE MESSAGE AND PUTS IT INTO THE LOG
|
---|
236 | MES(MSG,INFO) ;
|
---|
237 | N I
|
---|
238 | D MES^XPDUTL(" "_MSG)
|
---|
239 | S I=""
|
---|
240 | F S I=$O(INFO(I)) Q:I="" D MES^XPDUTL(" "_INFO(I))
|
---|
241 | D LOG^RORLOG(,MSG,,.INFO)
|
---|
242 | Q
|
---|
243 | ;
|
---|
244 | ;***** RETURNS A VALUE OF THE INSTALLATION PARAMETER
|
---|
245 | ;
|
---|
246 | ; NAME Name of the parameter
|
---|
247 | ;
|
---|
248 | PARAM(NAME) ;
|
---|
249 | Q $G(RORPARM("KIDS",NAME))
|
---|
250 | ;
|
---|
251 | ;***** UPDATES THE FILE'S PACKAGE REVISION DATA (IF NECESSARY)
|
---|
252 | ;
|
---|
253 | ; FILE File number
|
---|
254 | ;
|
---|
255 | ; [PRD] Package revision data
|
---|
256 | ; ^01: Revision number (N.N)
|
---|
257 | ; ^02: Patch name
|
---|
258 | ;
|
---|
259 | ; If this entry point is called as a function, it returns the
|
---|
260 | ; previous value of the PACKAGE REVISION DATA attribute.
|
---|
261 | ;
|
---|
262 | PRD(FILE,PRD) ;
|
---|
263 | N OLDPRD,RORMSG
|
---|
264 | S OLDPRD=$$GET1^DID(FILE,,,"PACKAGE REVISION DATA",,"RORMSG")
|
---|
265 | D:$G(PRD)>OLDPRD PRD^DILFD(FILE,PRD)
|
---|
266 | Q:$QUIT OLDPRD Q
|
---|