| [613] | 1 | LA66    ;DALOI/JMC - LA*5.2*66 PATCH ENVIRONMENT CHECK ROUTINE ;May 7, 2008
 | 
|---|
 | 2 |         ;;5.2;AUTOMATED LAB INSTRUMENTS;**66**;Sep 27, 1994;Build 30
 | 
|---|
 | 3 |         ;
 | 
|---|
 | 4 |         ; Pre, Post, and Environment checks for LA*5.2*66
 | 
|---|
 | 5 |         ;
 | 
|---|
 | 6 | ENV     ;
 | 
|---|
 | 7 |         ; Environment checks
 | 
|---|
 | 8 |         S XPDNOQUE=1 ; no queuing
 | 
|---|
 | 9 |         N LAERR,LAADL
 | 
|---|
 | 10 |         K ^TMP($$RTNNM(),$J)
 | 
|---|
 | 11 |         I '$G(XPDENV) D  ;
 | 
|---|
 | 12 |         . N MSG
 | 
|---|
 | 13 |         . S MSG="Transport global for patch "_$G(XPDNM,"Unknown patch")_" loaded on "_$$HTE^XLFDT($H)
 | 
|---|
 | 14 |         . D ALERT(MSG)
 | 
|---|
 | 15 |         . D BMES("Sending transport global loaded alert to mail group G.LMI")
 | 
|---|
 | 16 |         ;
 | 
|---|
 | 17 |         I $G(XPDENV) D  ;
 | 
|---|
 | 18 |         . N MSG
 | 
|---|
 | 19 |         . S MSG="Installation of patch "_$G(XPDNM,"Unknown patch")_" started on "_$$HTE^XLFDT($H)
 | 
|---|
 | 20 |         . D ALERT(MSG)
 | 
|---|
 | 21 |         . D BMES("Sending install started alert to mail group G.LMI")
 | 
|---|
 | 22 |         ;
 | 
|---|
 | 23 |         S LAERR=0
 | 
|---|
 | 24 |         I $S('$G(IOM):1,'$G(IOSL):1,$G(U)'="^":1,1:0) D  ;
 | 
|---|
 | 25 |         . D BMES("Terminal Device is not defined.")
 | 
|---|
 | 26 |         . S LAERR=2
 | 
|---|
 | 27 |         ;
 | 
|---|
 | 28 |         I $S('$G(DUZ):1,$D(DUZ)[0:1,$D(DUZ(0))[0:1,1:0) D  ;
 | 
|---|
 | 29 |         . D BMES("Please login to set local DUZ variables.")
 | 
|---|
 | 30 |         . S LAERR=2
 | 
|---|
 | 31 |         ;
 | 
|---|
 | 32 |         I 'LAERR,$P($$ACTIVE^XUSER(DUZ),"^")'=1 D  ;
 | 
|---|
 | 33 |         . D BMES("You are not a valid user on this system.")
 | 
|---|
 | 34 |         . S LAERR=2
 | 
|---|
 | 35 |         ;
 | 
|---|
 | 36 |         ; If installing, run system config
 | 
|---|
 | 37 |         I 'LAERR,$G(XPDENV) D  ;
 | 
|---|
 | 38 |         . S LAADL=$G(^LA("ADL","STOP"))
 | 
|---|
 | 39 |         . D ENV2
 | 
|---|
 | 40 |         . I $P(LAADL,"^")=0 D  ;
 | 
|---|
 | 41 |         . . D BMES("N O T E:  If you abort this installation")
 | 
|---|
 | 42 |         . . D MES("restart the Lab Universal Interface background job.")
 | 
|---|
 | 43 |         ;
 | 
|---|
 | 44 |         I LAERR!$D(XPDABORT)!$D(XPDQUIT) D  ;
 | 
|---|
 | 45 |         . S LAERR=1
 | 
|---|
 | 46 |         . S XPDABORT=2 S XPDQUIT=2
 | 
|---|
 | 47 |         . W !,$C(7) W ! D BMES("* * * Environment check FAILED * * *")
 | 
|---|
 | 48 |         ;
 | 
|---|
 | 49 |         I 'LAERR W ! D BMES("--- Environment is okay ---")
 | 
|---|
 | 50 |         ;
 | 
|---|
 | 51 |         I $G(XPDENV) S XPDDIQ("XPZ1","B")="NO"
 | 
|---|
 | 52 |         Q
 | 
|---|
 | 53 |         ;
 | 
|---|
 | 54 |         ;
 | 
|---|
 | 55 | PRE     ;
 | 
|---|
 | 56 |         ; Pre install
 | 
|---|
 | 57 |         D BMES("*** Pre install started ***")
 | 
|---|
 | 58 |         D BMES("--- No action required for pre-install ---")
 | 
|---|
 | 59 |         D BMES("*** Pre install completed ***")
 | 
|---|
 | 60 |         Q
 | 
|---|
 | 61 |         ;
 | 
|---|
 | 62 |         ;
 | 
|---|
 | 63 | POST    ;
 | 
|---|
 | 64 |         ; Post install
 | 
|---|
 | 65 |         N LAERR,LAFDA,LA7DIE,LA7FAC,LA7I,LA7X,LA7Y,LAMSG,LAPOST,DIERR
 | 
|---|
 | 66 |         S (LAERR,LAPOST)=0
 | 
|---|
 | 67 |         D BMES("*** Post install started ***")
 | 
|---|
 | 68 |         ;
 | 
|---|
 | 69 |         ; Set facility station number into FACILITY NAME field in file #771.
 | 
|---|
 | 70 |         S LA7FAC=$P($$SITE^VASITE(DT),"^",3)
 | 
|---|
 | 71 |         I 'LA7FAC D  ;
 | 
|---|
 | 72 |         . S LAERR=1
 | 
|---|
 | 73 |         . D BMES("ERROR: Could not determine Facility Number.")
 | 
|---|
 | 74 |         . D BMES("Edit file #771, FACILITY NAME field for LA7UI*")
 | 
|---|
 | 75 |         I LA7FAC'="" D
 | 
|---|
 | 76 |         . D BMES("*** Updating facility name for LA7UI* entries in file #771 ***")
 | 
|---|
 | 77 |         . ; Okayed by Thomas Grohowski
 | 
|---|
 | 78 |         . F LA7I=1:1:10 D  ;
 | 
|---|
 | 79 |         . . I LA7I S LA7X="LA7UI"_LA7I
 | 
|---|
 | 80 |         . . K DIERR
 | 
|---|
 | 81 |         . . S LA7Y=$$FIND1^DIC(771,"","OX",LA7X,"B")
 | 
|---|
 | 82 |         . . I LA7Y<1 D  Q
 | 
|---|
 | 83 |         . . . S LAERR=1
 | 
|---|
 | 84 |         . . . D BMES("ERROR: "_LA7X_" not found in file #771")
 | 
|---|
 | 85 |         . . K LAFDA,DIERR,LAMSG
 | 
|---|
 | 86 |         . . S LAFDA(1,771,LA7Y_",",3)=LA7FAC
 | 
|---|
 | 87 |         . . D FILE^DIE("","LAFDA(1)","LAMSG")
 | 
|---|
 | 88 |         . . ; notify if could not update
 | 
|---|
 | 89 |         . . S LAERR=$$FMERR("LAMSG","ERROR: unable to update "_LA7X_" in file #771")
 | 
|---|
 | 90 |         . ; delete facility ID for LA7LAB
 | 
|---|
 | 91 |         . K LAFDA,LAMSG,DIERR
 | 
|---|
 | 92 |         . S LA7Y=$$FIND1^DIC(771,"","OX","LA7LAB","B")
 | 
|---|
 | 93 |         . I 'LA7Y D
 | 
|---|
 | 94 |         . . S LAERR=1
 | 
|---|
 | 95 |         . . D BMES("*** Missing 'LA7LAB' entry in HL7 APPLICATION PARAMETER (#771) file ***")
 | 
|---|
 | 96 |         . I LA7Y D
 | 
|---|
 | 97 |         . . K DIERR,LAFDA,LAMSG
 | 
|---|
 | 98 |         . . S LAFDA(1,771,LA7Y_",",3)="@"
 | 
|---|
 | 99 |         . . D FILE^DIE("","LAFDA(1)","LAMSG")
 | 
|---|
 | 100 |         . . S LAERR=$$FMERR("LAMSG","ERROR: Failed to update LA7LAB entry in file #771.")
 | 
|---|
 | 101 |         . S LAPOST=1
 | 
|---|
 | 102 |         . D BMES("*** Updating facility name completed"_$S(LAERR:" but with errors",1:"")_" ***")
 | 
|---|
 | 103 |         ;
 | 
|---|
 | 104 |         ;
 | 
|---|
 | 105 |         I $D(^TMP("LA66",$J,"62.48")) D
 | 
|---|
 | 106 |         . D BMES("*** Restoring existing LA7UI* entries to ACTIVE in file #62.48 ***")
 | 
|---|
 | 107 |         . S LA7I=0,LAPOST=1
 | 
|---|
 | 108 |         . F  S LA7I=$O(^TMP("LA66",$J,"62.48",LA7I)) Q:'LA7I  D
 | 
|---|
 | 109 |         . . K DIERR,LAFDA,LAMSG
 | 
|---|
 | 110 |         . . S LA7Y=$P(^LAHM(62.48,LA7I,0),"^")
 | 
|---|
 | 111 |         . . D BMES("*** Updating entry "_LA7Y_" to ACTIVE in file #62.48 ***")
 | 
|---|
 | 112 |         . . S LAFDA(2,62.48,LA7I_",",2)=^TMP("LA66",$J,"62.48",LA7I)
 | 
|---|
 | 113 |         . . D FILE^DIE("","LAFDA(2)","LAMSG")
 | 
|---|
 | 114 |         . . S LAERR=$$FMERR("LAMSG","ERROR: Failed to update "_LA7Y_" entry in file #62.48.")
 | 
|---|
 | 115 |         . D BMES("*** Updating existing LA7UI* entries to ACTIVE completed ***")
 | 
|---|
 | 116 |         ;
 | 
|---|
 | 117 |         I 'LAERR,'LAPOST D BMES("--- No actions required for post install ---")
 | 
|---|
 | 118 |         ;
 | 
|---|
 | 119 |         D RESTORE
 | 
|---|
 | 120 |         D BMES("*** Post install completed"_$S(LAERR:" but with errors",1:"")_" ***")
 | 
|---|
 | 121 |         ;
 | 
|---|
 | 122 |         N MSG
 | 
|---|
 | 123 |         S MSG="Installation of patch "_$G(XPDNM,"Unknown patch")_" completed on "_$$HTE^XLFDT($H)
 | 
|---|
 | 124 |         D ALERT(MSG)
 | 
|---|
 | 125 |         D BMES("Sending install completion alert to mail group G.LMI")
 | 
|---|
 | 126 |         ;
 | 
|---|
 | 127 |         K ^TMP($$RTNNM(),$J),^TMP("LA66",$J)
 | 
|---|
 | 128 |         Q
 | 
|---|
 | 129 |         ;
 | 
|---|
 | 130 |         ;
 | 
|---|
 | 131 | BMES(STR,POS)   ;
 | 
|---|
 | 132 |         ; Display messages using BMES^XPDUTL or MES^XPDUTL
 | 
|---|
 | 133 |         ; Accepts single string or string array
 | 
|---|
 | 134 |         ; Input
 | 
|---|
 | 135 |         ;  STR The string to display (byRef or byValue)
 | 
|---|
 | 136 |         ;  POS <opt> value for $$CJ^XLFSTR (80=default)
 | 
|---|
 | 137 |         ;
 | 
|---|
 | 138 |         N I,X
 | 
|---|
 | 139 |         S POS=$G(POS,80)
 | 
|---|
 | 140 |         ; If an array, step through it and pass each node to MES since $$CJ^XLFSTR can't handle arrays
 | 
|---|
 | 141 |         I $D(STR)>9 D
 | 
|---|
 | 142 |         . S I=0
 | 
|---|
 | 143 |         . F  S I=$O(STR(I)) Q:'I  S X=STR(I) D MES^XPDUTL($$TRIM^XLFSTR($$CJ^XLFSTR(X,POS),"R"," "))
 | 
|---|
 | 144 |         ;
 | 
|---|
 | 145 |         I $D(STR)<2 D MES^XPDUTL($$TRIM^XLFSTR($$CJ^XLFSTR(STR,POS),"R"," "))
 | 
|---|
 | 146 |         Q
 | 
|---|
 | 147 |         ;
 | 
|---|
 | 148 |         ;
 | 
|---|
 | 149 | MES(STR,CJ,LM)  ;
 | 
|---|
 | 150 |         ; Displays a string using MES^XPDUTL
 | 
|---|
 | 151 |         ;  Inputs
 | 
|---|
 | 152 |         ;  STR: String to display
 | 
|---|
 | 153 |         ;   CJ: Center text?  1=yes 0=1 <dflt=1>
 | 
|---|
 | 154 |         ;   LM: Left Margin (padding)
 | 
|---|
 | 155 |         N X
 | 
|---|
 | 156 |         S STR=$G(STR)
 | 
|---|
 | 157 |         S CJ=$G(CJ,1)
 | 
|---|
 | 158 |         S LM=$G(LM)
 | 
|---|
 | 159 |         I LM<0 S LM=0
 | 
|---|
 | 160 |         I CJ S STR=$$TRIM^XLFSTR($$CJ^XLFSTR(STR,$G(IOM,80)),"R"," ")
 | 
|---|
 | 161 |         I 'CJ I LM S X="" S $P(X," ",LM)=" " S STR=X_STR
 | 
|---|
 | 162 |         D MES^XPDUTL(STR)
 | 
|---|
 | 163 |         Q
 | 
|---|
 | 164 |         ;
 | 
|---|
 | 165 |         ;
 | 
|---|
 | 166 | FMERR(LAREF,MSG)        ;
 | 
|---|
 | 167 |         ; Checks if a FileMan error occurred and displays help message
 | 
|---|
 | 168 |         ; and error text message.
 | 
|---|
 | 169 |         ; Input
 | 
|---|
 | 170 |         ;   LAREF Name of array that has the FM DIERR subscripts
 | 
|---|
 | 171 |         ;         ie FILE^DIE  msg_root variable
 | 
|---|
 | 172 |         ;     MSG <opt> Additional help text
 | 
|---|
 | 173 |         ; Output
 | 
|---|
 | 174 |         ;  1 if an error occurred, 0 if no error
 | 
|---|
 | 175 |         ;  Also writes the messages to the device
 | 
|---|
 | 176 |         N LAERRMSG,OK,FMERR
 | 
|---|
 | 177 |         S LAREF=$G(LAREF)
 | 
|---|
 | 178 |         S MSG=$G(MSG)
 | 
|---|
 | 179 |         S FMERR=0
 | 
|---|
 | 180 |         D MSG^DIALOG("AE",.LAERRMSG,,,LAREF)
 | 
|---|
 | 181 |         I $D(LAERRMSG) D  ;
 | 
|---|
 | 182 |         . I MSG'="" D BMES(MSG)
 | 
|---|
 | 183 |         . D BMES(.LAERRMSG)
 | 
|---|
 | 184 |         . S FMERR=1
 | 
|---|
 | 185 |         Q FMERR
 | 
|---|
 | 186 |         ;
 | 
|---|
 | 187 |         ;
 | 
|---|
 | 188 | ENV2    ;
 | 
|---|
 | 189 |         ; Secondary Environment checks
 | 
|---|
 | 190 |         N X,I
 | 
|---|
 | 191 |         ; check and shutdown Auto Download job.
 | 
|---|
 | 192 |         S X=$G(^LA("ADL","STOP"))
 | 
|---|
 | 193 |         I $P(X,"^")=0 D  ;
 | 
|---|
 | 194 |         . D SETSTOP^LA7ADL1(2,DUZ)
 | 
|---|
 | 195 |         . D BMES("Shutting down Lab Universal Interface Auto Download Job")
 | 
|---|
 | 196 |         . S ^TMP($$RTNNM(),$J,"ADL")=1
 | 
|---|
 | 197 |         . F I=1:1:10 W "." H 1
 | 
|---|
 | 198 |         ;
 | 
|---|
 | 199 |         ;
 | 
|---|
 | 200 |         ; If previously installed then save current ACTIVE LA7UI* entries.
 | 
|---|
 | 201 |         K ^TMP("LA66",$J,"62.48")
 | 
|---|
 | 202 |         S I=0
 | 
|---|
 | 203 |         F  S I=$O(^LAHM(62.48,I)) Q:'I  I $E($P(^LAHM(62.48,I,0),"^"),1,5)="LA7UI",$P(^LAHM(62.48,I,0),"^",3)=1 S ^TMP("LA66",$J,"62.48",I)=1
 | 
|---|
 | 204 |         Q
 | 
|---|
 | 205 |         ;
 | 
|---|
 | 206 |         ;
 | 
|---|
 | 207 | RESTORE ;
 | 
|---|
 | 208 |         ; Restore system after install
 | 
|---|
 | 209 |         N LAADL,X
 | 
|---|
 | 210 |         ; Restart auto download process status if stopped by install
 | 
|---|
 | 211 |         S LAADL=$G(^TMP($$RTNNM(),$J,"ADL"))
 | 
|---|
 | 212 |         I LAADL=1 D  ;
 | 
|---|
 | 213 |         . D ZTSK^LA7ADL
 | 
|---|
 | 214 |         . D SETSTOP^LA7ADL1(1,DUZ)
 | 
|---|
 | 215 |         . D BMES("Restarting Lab Universal Interface Auto Download Job")
 | 
|---|
 | 216 |         . K ^TMP($$RTNNM(),$J,"ADL")
 | 
|---|
 | 217 |         . H 3
 | 
|---|
 | 218 |         ;
 | 
|---|
 | 219 |         ; If ADL not started, notify user to restart
 | 
|---|
 | 220 |         S X=$G(^LA("ADL","STOP"))
 | 
|---|
 | 221 |         S X=$P(X,"^")
 | 
|---|
 | 222 |         I X'=0 D BMES("Be sure to restart the Lab Universal Interface Auto Download Job")
 | 
|---|
 | 223 |         K ^TMP($$RTNNM(),$J)
 | 
|---|
 | 224 |         Q
 | 
|---|
 | 225 |         ;
 | 
|---|
 | 226 |         ;
 | 
|---|
 | 227 | ALERT(MSG,RECIPS)       ;
 | 
|---|
 | 228 |         N DA,DIK,XQA,XQAMSG
 | 
|---|
 | 229 |         S XQAMSG=$G(MSG)
 | 
|---|
 | 230 |         S XQA("G.LMI")=""
 | 
|---|
 | 231 |         I $D(RECIPS) M XQA=RECIPS
 | 
|---|
 | 232 |         D SETUP^XQALERT
 | 
|---|
 | 233 |         Q
 | 
|---|
 | 234 |         ;
 | 
|---|
 | 235 |         ;
 | 
|---|
 | 236 | RTNNM() ;
 | 
|---|
 | 237 |         Q $T(+0)
 | 
|---|