| 1 | XOBUENV ;; ld/alb - VistaLink Environment Check ; 08/08/2003  08:44 | 
|---|
| 2 | ;;1.5;Foundations;;Sep 09, 2005 | 
|---|
| 3 | ;;Foundations Toolbox Release v1.5 [Build: 1.5.0.026] | 
|---|
| 4 | ; | 
|---|
| 5 | ; | 
|---|
| 6 | EN ;- entry point | 
|---|
| 7 | ; | 
|---|
| 8 | ;- programmer variables check | 
|---|
| 9 | DO PROG IF $GET(XPDABORT) GOTO ENQ | 
|---|
| 10 | ; | 
|---|
| 11 | ;- operating system check | 
|---|
| 12 | DO OSCHK IF $GET(XPDABORT) GOTO ENQ | 
|---|
| 13 | ; | 
|---|
| 14 | ;- check for presence of obsolete SYSTEM file (#18) | 
|---|
| 15 | DO FILE18 | 
|---|
| 16 | ; | 
|---|
| 17 | ;- passed load check | 
|---|
| 18 | IF '$GET(XPDENV),'$GET(XPDABORT) WRITE !!?1,">>> VistALink environment check completed for KIDS Load a Distribution option.",! | 
|---|
| 19 | ; | 
|---|
| 20 | ;- passed install check | 
|---|
| 21 | IF $GET(XPDENV)=1,'$GET(XPDABORT) WRITE !!?1,">>> VistALink environment check completed for KIDS Install Package option.",! | 
|---|
| 22 | ; | 
|---|
| 23 | ENQ QUIT | 
|---|
| 24 | ; | 
|---|
| 25 | PROG ;- check enviroment for programmer variables | 
|---|
| 26 | ; | 
|---|
| 27 | WRITE !?1,">>> Checking environment...",! | 
|---|
| 28 | IF +$GET(DUZ)'>0!($GET(DUZ(0))'="@") DO | 
|---|
| 29 | . SET XPDABORT=1 | 
|---|
| 30 | . WRITE !,"     You must first initialize programmer environment by running ^XUP.",! | 
|---|
| 31 | QUIT | 
|---|
| 32 | ; | 
|---|
| 33 | OSCHK ;- check enviroment for operating system (DSM or OpenM) | 
|---|
| 34 | ; | 
|---|
| 35 | NEW XOBOS | 
|---|
| 36 | SET XOBOS=$PIECE($GET(^%ZOSF("OS")),"^") | 
|---|
| 37 | IF XOBOS'["DSM"&(XOBOS'["OpenM") DO | 
|---|
| 38 | . SET XPDABORT=1 | 
|---|
| 39 | . DO PRNTXT("OSMSG") | 
|---|
| 40 | QUIT | 
|---|
| 41 | ; | 
|---|
| 42 | FILE18 ;- check for obsolete Kernel file #18 which is in VistALink's numberspace | 
|---|
| 43 | ; | 
|---|
| 44 | NEW I,LINE,XOBABORT,XOBASK | 
|---|
| 45 | ; | 
|---|
| 46 | ;- file #18 not found | 
|---|
| 47 | IF '$$FILECHK() GOTO FILE18Q | 
|---|
| 48 | ; | 
|---|
| 49 | ;- file found; display user msg | 
|---|
| 50 | DO PRNTXT("INTRO") | 
|---|
| 51 | ; | 
|---|
| 52 | ;- if load, ask if they want file deletion instructions | 
|---|
| 53 | IF 'XPDENV DO  GOTO FILE18Q | 
|---|
| 54 | . DO:$$ASKINSTR()>0 TOP,PRNTXT("INSTR1"),PAUSE,PRNTXT("INSTR2"),PAUSE | 
|---|
| 55 | ; | 
|---|
| 56 | ;- if install, ask if user wants to abort install | 
|---|
| 57 | ;- if yes, ask if they want file deletion instructions | 
|---|
| 58 | SET XOBABORT=$$ASKINSTL() | 
|---|
| 59 | IF XOBABORT DO  QUIT | 
|---|
| 60 | . IF XOBABORT=1 DO:$$ASKINSTR()>0 TOP,PRNTXT("INSTR1"),PAUSE,PRNTXT("INSTR2"),PAUSE | 
|---|
| 61 | . SET XPDABORT=2 | 
|---|
| 62 | ; | 
|---|
| 63 | ;- if user wants to continue install, ask again to be sure | 
|---|
| 64 | IF XOBABORT=0 DO | 
|---|
| 65 | . SET XOBASK=$$REASK() | 
|---|
| 66 | . IF XOBASK<1 DO | 
|---|
| 67 | .. IF XOBASK=0 DO:$$ASKINSTR()>0 TOP,PRNTXT("INSTR1"),PAUSE,PRNTXT("INSTR2"),PAUSE | 
|---|
| 68 | .. SET XPDABORT=2 | 
|---|
| 69 | FILE18Q QUIT | 
|---|
| 70 | ; | 
|---|
| 71 | ASKINSTL() ;- ask if user wants to abort install | 
|---|
| 72 | ; | 
|---|
| 73 | NEW XOB0,XOBA,XOBARR,XOBB | 
|---|
| 74 | SET XOB0="YAO" | 
|---|
| 75 | SET XOBA=" Do you want to abort the installation now? " | 
|---|
| 76 | SET XOBB="YES" | 
|---|
| 77 | SET XOBARR(1)="     NOTE:" | 
|---|
| 78 | SET XOBARR(2)="       If you choose to abort the installation, please do a global listing" | 
|---|
| 79 | SET XOBARR(3)="       of file ^DIC(18, and ^DD(18, after deleting the file to ensure that" | 
|---|
| 80 | SET XOBARR(4)="       the SYSTEM file (#18) is completely deleted from your system before" | 
|---|
| 81 | SET XOBARR(5)="       reinstalling the VistALink package.  If you need additional help" | 
|---|
| 82 | SET XOBARR(6)="       deleting the file, please contact National VistA Support (NVS)." | 
|---|
| 83 | SET XOBARR(7)=" " | 
|---|
| 84 | QUIT $$ANSWER(XOB0,XOBA,XOBB,.XOBARR) | 
|---|
| 85 | ; | 
|---|
| 86 | REASK() ;- ask user again if they want to continue with install (pre-init will | 
|---|
| 87 | ;         delete file #18) | 
|---|
| 88 | ; | 
|---|
| 89 | NEW XOB0,XOBA,XOBARR,XOBB | 
|---|
| 90 | SET XOB0="YAO" | 
|---|
| 91 | SET XOBA=" Are you sure you want to continue? " | 
|---|
| 92 | SET XOBB="NO" | 
|---|
| 93 | SET XOBARR(1)=" " | 
|---|
| 94 | SET XOBARR(2)="     NOTE:" | 
|---|
| 95 | SET XOBARR(3)="       Continuing with the installation will delete the SYSTEM file (#18)" | 
|---|
| 96 | SET XOBARR(4)="       using the FileMan Data Dictionary Deletion call (EN^DIU2)." | 
|---|
| 97 | SET XOBARR(5)=" " | 
|---|
| 98 | QUIT $$ANSWER(XOB0,XOBA,XOBB,.XOBARR) | 
|---|
| 99 | ; | 
|---|
| 100 | ASKINSTR() ;- ask if user wants file deletion instructions | 
|---|
| 101 | ; | 
|---|
| 102 | NEW XOB0,XOBA,XOBARR,XOBB | 
|---|
| 103 | SET XOB0="YAO" | 
|---|
| 104 | SET XOBA=" Would you like instructions on how to delete SYSTEM file (#18)? " | 
|---|
| 105 | SET XOBB="YES" | 
|---|
| 106 | SET XOBARR(1)=" " | 
|---|
| 107 | QUIT $$ANSWER(XOB0,XOBA,XOBB,.XOBARR) | 
|---|
| 108 | ; | 
|---|
| 109 | ANSWER(XOB0,XOBA,XOBB,XOBARR) ;wrap FileMan DIR Reader call | 
|---|
| 110 | ; | 
|---|
| 111 | ;  Input: | 
|---|
| 112 | ;    XOB0   - DIR(0) string | 
|---|
| 113 | ;    XOBA   - DIR("A") string | 
|---|
| 114 | ;    XOBB   - DIR("B") string | 
|---|
| 115 | ;    XOBARR - DIR("A",x) string | 
|---|
| 116 | ; | 
|---|
| 117 | ;  Output: | 
|---|
| 118 | ;   Function Value - Internal value returned from ^DIR (0 for No, 1 for | 
|---|
| 119 | ;                    YES) or -1 if user up-arrows or the read times out. | 
|---|
| 120 | ; | 
|---|
| 121 | NEW DIR,DIRUT,X,Y  ; ^DIR variables | 
|---|
| 122 | ; | 
|---|
| 123 | SET DIR(0)=XOB0 | 
|---|
| 124 | SET DIR("A")=$GET(XOBA) | 
|---|
| 125 | IF $DATA(XOBARR)>1 MERGE DIR("A")=XOBARR | 
|---|
| 126 | IF $GET(XOBB)'="" SET DIR("B")=XOBB | 
|---|
| 127 | DO ^DIR KILL DIR | 
|---|
| 128 | QUIT $SELECT($DATA(DIRUT):-1,1:$PIECE(Y,U)) | 
|---|
| 129 | ; | 
|---|
| 130 | FILECHK() ;- Check for file 18 | 
|---|
| 131 | ; | 
|---|
| 132 | NEW XOBA,XOBFIL | 
|---|
| 133 | SET XOBA=0 | 
|---|
| 134 | DO FILE^DID(18,"","NAME","XOBFIL") | 
|---|
| 135 | IF $GET(XOBFIL("NAME"))="SYSTEM",($$VFILE^DILFD(18)) SET XOBA=1 | 
|---|
| 136 | IF $DATA(^DIC(18))!$DATA(^DD(18)) SET XOBA=1 | 
|---|
| 137 | QUIT XOBA | 
|---|
| 138 | ; | 
|---|
| 139 | PRNTXT(TEXT) ;- display user text | 
|---|
| 140 | ; | 
|---|
| 141 | QUIT:$GET(TEXT)="" | 
|---|
| 142 | NEW I,LINE | 
|---|
| 143 | FOR I=1:1 SET LINE=$PIECE($TEXT(@TEXT+I),";;",2) QUIT:LINE="$END"  WRITE !,LINE | 
|---|
| 144 | QUIT | 
|---|
| 145 | ; | 
|---|
| 146 | TOP ;- top of screen | 
|---|
| 147 | ; | 
|---|
| 148 | QUIT:$EXTRACT(IOST,1,2)'="C-" | 
|---|
| 149 | IF $Y>1 WRITE @IOF | 
|---|
| 150 | QUIT | 
|---|
| 151 | ; | 
|---|
| 152 | PAUSE ;- enhance readability of text | 
|---|
| 153 | ; | 
|---|
| 154 | QUIT:$EXTRACT(IOST,1,2)'="C-" | 
|---|
| 155 | WRITE ! SET DIR(0)="E",DIR("A")="Press return to continue" DO ^DIR KILL DIR WRITE ! | 
|---|
| 156 | QUIT | 
|---|
| 157 | ; | 
|---|
| 158 | INTRO ;- display message to user explaining file #18 | 
|---|
| 159 | ;; >>>>>>>>>> ATTENTION: File SYSTEM (#18) was found on your system. <<<<<<<<<< | 
|---|
| 160 | ;; | 
|---|
| 161 | ;;     SYSTEM file #18 was the precursor to the KERNEL SYSTEMS PARAMETER | 
|---|
| 162 | ;;     file and is obsolete.  The SYSTEM file uses the same numberspace | 
|---|
| 163 | ;;     that VistALink is assigned and must be deleted before VistALink | 
|---|
| 164 | ;;     can be installed.  You may wish to manually backup and manually | 
|---|
| 165 | ;;     delete file #18. | 
|---|
| 166 | ;; | 
|---|
| 167 | ;;     If you do not manually delete file #18 and it is still on your system | 
|---|
| 168 | ;;     during the installation phase, you will be prompted with a series of | 
|---|
| 169 | ;;     questions.  The questions will allow you to abort the installation or | 
|---|
| 170 | ;;     allow the installation to safely delete the SYSTEM file for you. | 
|---|
| 171 | ;; | 
|---|
| 172 | ;;$END | 
|---|
| 173 | ; | 
|---|
| 174 | INSTR1 ;- user instructions to delete file #18 | 
|---|
| 175 | ;; | 
|---|
| 176 | ;; | 
|---|
| 177 | ;;     ********      How to delete the SYSTEM file (#18)     ******** | 
|---|
| 178 | ;; | 
|---|
| 179 | ;; | 
|---|
| 180 | ;;     1)  From the programmer prompt, go to the FileMan main menu | 
|---|
| 181 | ;; | 
|---|
| 182 | ;;     2)  Choose option 6, UTILITY FUNCTIONS | 
|---|
| 183 | ;; | 
|---|
| 184 | ;;     3)  Choose option 6, EDIT FILE | 
|---|
| 185 | ;; | 
|---|
| 186 | ;;     4)  MODIFY WHAT FILE: // 18  SYSTEM | 
|---|
| 187 | ;; | 
|---|
| 188 | ;;     5)  Do you want to use the screen-mode version? YES// YES | 
|---|
| 189 | ;;         (recommend using screen-mode because you can exit out without | 
|---|
| 190 | ;;         saving your changes if necessary) | 
|---|
| 191 | ;; | 
|---|
| 192 | ;;     6)  At the FILE NAME: prompt (which should have the name SYSTEM | 
|---|
| 193 | ;;         in it), type @ | 
|---|
| 194 | ;;$END | 
|---|
| 195 | ; | 
|---|
| 196 | INSTR2 ;- user instructions to delete file #18 (continued) | 
|---|
| 197 | ;; | 
|---|
| 198 | ;; | 
|---|
| 199 | ;;     7)  It will then ask the following questions: | 
|---|
| 200 | ;;           DO YOU WANT JUST TO DELETE THE FILE CONTENTS, | 
|---|
| 201 | ;;                    & KEEP THE FILE DEFINITION? No// No   (No) | 
|---|
| 202 | ;;              IS IT OK TO DELETE THE '^DIC(18)' GLOBAL? Yes// Yes   (Yes) | 
|---|
| 203 | ;;                  SURE YOU WANT TO DELETE THE ENTIRE FILE? No// Yes  (Yes) | 
|---|
| 204 | ;;           Deleting the DATA DICTIONARY... | 
|---|
| 205 | ;;           Deleting the INPUT TEMPLATES.... | 
|---|
| 206 | ;;           Deleting the PRINT TEMPLATES... | 
|---|
| 207 | ;;           Deleting the SORT TEMPLATES... | 
|---|
| 208 | ;;           Deleting the FORMS... | 
|---|
| 209 | ;; | 
|---|
| 210 | ;;     8)  The last step is a global listing to check that file #18 and its DD | 
|---|
| 211 | ;;         have been deleted.  Here's an example: | 
|---|
| 212 | ;;           cor> D ^%G | 
|---|
| 213 | ;;           Global ^DIC(18, | 
|---|
| 214 | ;;           DIC(18, | 
|---|
| 215 | ;;           Global ^DD(18, | 
|---|
| 216 | ;;           DD(18, | 
|---|
| 217 | ;;           Global ^ | 
|---|
| 218 | ;;$END | 
|---|
| 219 | ; | 
|---|
| 220 | OSMSG ;- Message to user if operating system is not Cache or DSM | 
|---|
| 221 | ;; | 
|---|
| 222 | ;;     VistALink has been tested on Cache and DSM. It has not been tested | 
|---|
| 223 | ;;     or programmed to be compatible yet on other M implementations, | 
|---|
| 224 | ;;     therefore installation will abort. | 
|---|
| 225 | ;; | 
|---|
| 226 | ;;$END | 
|---|
| 227 | ; | 
|---|