| 1 | SD53P495 ;ALB/RBS - ENV/POST-INSTALL FOR PATCH SD*5.3*495 ; 5/2/07 12:24pm | 
|---|
| 2 | ;;5.3;Scheduling;**495**;Aug 13, 1993;Build 50 | 
|---|
| 3 | Q | 
|---|
| 4 | ENV ;Environment check | 
|---|
| 5 | S XPDABORT="" | 
|---|
| 6 | ;checks programmer variables | 
|---|
| 7 | D PROGCHK(.XPDABORT) | 
|---|
| 8 | ;check if install is running | 
|---|
| 9 | D ISRUNING(.XPDABORT) | 
|---|
| 10 | I XPDABORT="" K XPDABORT | 
|---|
| 11 | Q | 
|---|
| 12 | POST ;Post-Install | 
|---|
| 13 | D POST1 | 
|---|
| 14 | ;Check for SCOUT file | 
|---|
| 15 | I '$D(^ANUSB(626140)) D  Q | 
|---|
| 16 | . D NOFILE | 
|---|
| 17 | D TASK | 
|---|
| 18 | Q | 
|---|
| 19 | POST1 ;Set parameter value | 
|---|
| 20 | N SDDAYS,SDERR,SDPARM | 
|---|
| 21 | S SDPARM="SDSC SITE PARAMETER",SDDAYS=30 | 
|---|
| 22 | D EN^XPAR("DIV",SDPARM,1,SDDAYS,.SDERR) | 
|---|
| 23 | D BMES^XPDUTL("******") | 
|---|
| 24 | I '$G(SDERR) D | 
|---|
| 25 | . D MES^XPDUTL(SDPARM_" parameter set to "_SDDAYS_" days SUCCESSFULLY.") | 
|---|
| 26 | E  D | 
|---|
| 27 | . D MES^XPDUTL(SDPARM_" parameter set FAILED.") | 
|---|
| 28 | D MES^XPDUTL("******") | 
|---|
| 29 | Q | 
|---|
| 30 | START ;Background job entry point | 
|---|
| 31 | N SDAIEN,SDANUSB,SDX,SDFDAIEN,SDARAY,SDERAY,SDSAVE | 
|---|
| 32 | N SDTOT,SDTOT1,SDTOT2,SDTOT3,SDENCPTR,SDCKCNT,SDSTOP,SDENT,SDFIL,DFN | 
|---|
| 33 | D XTMP | 
|---|
| 34 | ;seed var's if Re-Run | 
|---|
| 35 | I $D(^XTMP("SD53P495","TOT")) D | 
|---|
| 36 | . S SDTOT=+$G(^XTMP("SD53P495","TOT")) | 
|---|
| 37 | . S SDTOT1=+$G(^XTMP("SD53P495","TOT1")) | 
|---|
| 38 | . S SDTOT2=+$G(^XTMP("SD53P495","TOT2")) | 
|---|
| 39 | . S SDTOT3=+$G(^XTMP("SD53P495","TOT3")) | 
|---|
| 40 | . S (SDSAVE,SDENCPTR)=+$G(^XTMP("SD53P495","ENCOUNTER")) | 
|---|
| 41 | E  D | 
|---|
| 42 | . S (SDAIEN,SDENCPTR,SDSAVE,SDTOT,SDTOT1,SDTOT2,SDTOT3)=0 | 
|---|
| 43 | S SDCKCNT=100,SDSTOP=0 | 
|---|
| 44 | F  S SDENCPTR=$O(^ANUSB(626140,"B",SDENCPTR)) Q:'SDENCPTR  D  Q:SDSTOP | 
|---|
| 45 | . S SDSAVE=SDENCPTR | 
|---|
| 46 | . K SDANUSB,SDARAY,SDERAY,SDENT | 
|---|
| 47 | . I +SDTOT#SDCKCNT=0,$$S^%ZTLOAD() S SDSTOP=1 Q | 
|---|
| 48 | . S SDAIEN=$O(^ANUSB(626140,"B",SDENCPTR,""),-1) | 
|---|
| 49 | . Q:'$G(SDAIEN) | 
|---|
| 50 | . S SDANUSB=$G(^ANUSB(626140,SDAIEN,0)) | 
|---|
| 51 | . Q:'SDANUSB | 
|---|
| 52 | . S SDTOT=SDTOT+1 | 
|---|
| 53 | . I $D(^SDSC(409.48,SDENCPTR,0)) S SDTOT3=SDTOT3+1 Q | 
|---|
| 54 | . I '$$GETOE^SDOE(SDENCPTR) D  Q | 
|---|
| 55 | . . S DFN=$P(SDANUSB,U,11) D DEM^VADPT S DFN=$E(VADM(1),1,15) | 
|---|
| 56 | . . S SDENT=DFN_" "_$$FMTE^XLFDT($P(SDANUSB,U,7),2) | 
|---|
| 57 | . . D UPXTMP(SDENCPTR,"NO (O/P) ENCOUNTER RECORD (#409.68)",SDENT) S SDTOT2=SDTOT2+1 | 
|---|
| 58 | . D GETS^DIQ(626140,SDAIEN_",","**","I","SDARAY","SDERAY") | 
|---|
| 59 | . I $D(SDERAY) D  Q | 
|---|
| 60 | . . S SDENT=$G(SDERAY("DIERR",1,"TEXT",1)) | 
|---|
| 61 | . . D UPXTMP(SDENCPTR,"NO (SCOUT) FILE DATA (#626140)",SDENT) S SDTOT2=SDTOT2+1 | 
|---|
| 62 | . S SDFIL=$$FILE(SDENCPTR,SDAIEN,.SDARAY) | 
|---|
| 63 | . I '+SDFIL D  Q | 
|---|
| 64 | . . D UPXTMP(SDENCPTR,"FILING ERROR TO (#409.48)",$P(SDFIL,"^",2)) S SDTOT2=SDTOT2+1 | 
|---|
| 65 | . E  D | 
|---|
| 66 | . . S SDTOT1=SDTOT1+1 | 
|---|
| 67 | I SDSTOP D | 
|---|
| 68 | . S ^XTMP("SD53P495","STOPPED")=$$NOW^XLFDT() | 
|---|
| 69 | . S ZTSTOP=1 | 
|---|
| 70 | E  D | 
|---|
| 71 | . S ^XTMP("SD53P495","COMPLETED")=$$NOW^XLFDT() | 
|---|
| 72 | S ^XTMP("SD53P495","ENCOUNTER")=SDSAVE | 
|---|
| 73 | S ^XTMP("SD53P495","TOT")=SDTOT,^XTMP("SD53P495","TOT1")=SDTOT1 | 
|---|
| 74 | S ^XTMP("SD53P495","TOT2")=SDTOT2,^XTMP("SD53P495","TOT3")=SDTOT3 | 
|---|
| 75 | K ^XTMP("SD53P495","RUNNING") D KVA^VADPT | 
|---|
| 76 | D SENDMSG(SDSTOP) | 
|---|
| 77 | Q | 
|---|
| 78 | FILE(SDENCPTR,SDAIEN,SDARAY) ;file new entry | 
|---|
| 79 | ; create #409.48 file | 
|---|
| 80 | ; Input: | 
|---|
| 81 | ;   SDENCPTR - [required] O/P Encounter file pointer (#409.68) | 
|---|
| 82 | ;     SDAIEN - [required] IEN of (#626140) record to convert | 
|---|
| 83 | ;     SDARAY - [required] Array of Internal values of all fields | 
|---|
| 84 | ; Output: | 
|---|
| 85 | ;   Function Value - returns 1 on success, 0 on failure and error msg | 
|---|
| 86 | I '+$G(SDENCPTR)!'+$G(SDAIEN)!('$D(SDARAY)) Q 0 | 
|---|
| 87 | N SDERR,SDFDA,SDFLD,SDFDAIEN,SDI,SDIENS,SDNUM,SDSTR,SDSTR1,SDSUB | 
|---|
| 88 | N DIC,DICR,DIE,DIERR,DD,DG,DO,DR,DA | 
|---|
| 89 | ; DINUM=X setup so new file IEN = O/P Encounter IEN | 
|---|
| 90 | S SDFDAIEN(1)=SDENCPTR | 
|---|
| 91 | ; setup main fields | 
|---|
| 92 | S SDIENS="+1,",SDAIEN=SDAIEN_"," | 
|---|
| 93 | S SDSTR=".01^.02^.03^.04^.05^.06^.07^.08^.09^.1^.11^.12" | 
|---|
| 94 | F SDI=1:1:12 D | 
|---|
| 95 | . S SDFLD=$P(SDSTR,U,SDI) | 
|---|
| 96 | . S SDFDA(409.48,SDIENS,SDFLD)=$G(SDARAY(626140,SDAIEN,SDFLD,"I")) | 
|---|
| 97 | S SDFDA(409.48,SDIENS,.13)=1  ;SCOUT was always a 1 (SC) | 
|---|
| 98 | ; setup fields of (#409.481) multiple | 
|---|
| 99 | I $D(SDARAY(626140.01)) D | 
|---|
| 100 | . S SDSTR1=".01^.02^.03^.04^.05^.06",SDNUM=1,(SDSUB,SDIENS)="" | 
|---|
| 101 | . F  S SDSUB=$O(SDARAY(626140.01,SDSUB)) Q:SDSUB=""  D | 
|---|
| 102 | . . S SDNUM=SDNUM+1 | 
|---|
| 103 | . . F SDI=1:1:6 S SDFLD=$P(SDSTR1,U,SDI) D | 
|---|
| 104 | . . . S SDIENS="+"_SDNUM_",+1," | 
|---|
| 105 | . . . S SDFDA(409.481,SDIENS,SDFLD)=$G(SDARAY(626140.01,SDSUB,SDFLD,"I")) | 
|---|
| 106 | D UPDATE^DIE("","SDFDA","SDFDAIEN","SDERR") | 
|---|
| 107 | Q $S($D(SDERR):0,1:1)_"^"_$S($D(SDERR):$G(SDERR("DIERR",1,"TEXT",1)),1:"") | 
|---|
| 108 | SENDMSG(SDSTOP) ;send MailMan msg to patch installer | 
|---|
| 109 | N DIFROM,SDMSG,SDTXT,SDLN,XMY,XMDUZ,XMSUB,XMTEXT,XMDUN,XMZ | 
|---|
| 110 | K ^TMP("SD53P495",$J) | 
|---|
| 111 | S XMSUB="SD*5.3*495 (SCOUT) FILE CONVERSION REPORT" | 
|---|
| 112 | S XMTEXT="^TMP(""SD53P495"",$J,",XMDUZ=.5,(XMY(DUZ),XMY(XMDUZ))="" | 
|---|
| 113 | S SDLN=0 | 
|---|
| 114 | D ADD(.SDLN,"Patch:  SD*5.3*495 Automated Service Connected Designation") | 
|---|
| 115 | D ADD(.SDLN," "),ADD(.SDLN,"************") | 
|---|
| 116 | D ADD(.SDLN,"The existing Class III (SCOUT) file, ANU SERVICE CONNECTED CHANGES (#626140),") | 
|---|
| 117 | D ADD(.SDLN,"which contains O/P Encounter records that have been compiled for additional") | 
|---|
| 118 | D ADD(.SDLN,"Service Connected (SC) review, has been used to create a new Class I file") | 
|---|
| 119 | D ADD(.SDLN,"which will provide the same functionality.") | 
|---|
| 120 | D ADD(.SDLN," ") | 
|---|
| 121 | D ADD(.SDLN,"Only valid O/P Encounter records from the Class III (SCOUT) file,") | 
|---|
| 122 | D ADD(.SDLN,"ANU SERVICE CONNECTED CHANGES (#626140), have been filed into") | 
|---|
| 123 | D ADD(.SDLN,"the new SDSC SERVICE CONNECTED CHANGES (#409.48) file.") | 
|---|
| 124 | D ADD(.SDLN," ") | 
|---|
| 125 | D ADD(.SDLN,"The new Automated Service Connected Designation (ASCD) Menu Options") | 
|---|
| 126 | D ADD(.SDLN,"enable user access to the O/P Encounter records in the (#409.48) file.") | 
|---|
| 127 | D ADD(.SDLN,"************"),ADD(.SDLN," "),ADD(.SDLN," ") | 
|---|
| 128 | D ADD(.SDLN,"SUMMARY OF PROCESSING RESULTS:") | 
|---|
| 129 | D ADD(.SDLN,"==============================") | 
|---|
| 130 | D ADD(.SDLN," ") | 
|---|
| 131 | D ADD(.SDLN,"<<< The Class III (SCOUT) File Conversion has "_$S(+$G(SDSTOP):"NOT ",1:"")_"Completed. >>>") | 
|---|
| 132 | I +$G(SDSTOP) D | 
|---|
| 133 | . D ADD(.SDLN,"    Please restart the post-install process from the following") | 
|---|
| 134 | . D ADD(.SDLN,"    programmer's prompt:") | 
|---|
| 135 | . D ADD(.SDLN,"                          D POST^SD53P495") | 
|---|
| 136 | D ADD(.SDLN," "),ADD(.SDLN," ") | 
|---|
| 137 | D ADD(.SDLN,"  DATE/TIME TASK STARTED: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","START")),"P")) | 
|---|
| 138 | I $G(SDSTOP) D | 
|---|
| 139 | . D ADD(.SDLN,"  DATE/TIME TASK STOPPED: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","STOPPED")),"P")) | 
|---|
| 140 | E  D | 
|---|
| 141 | . D ADD(.SDLN,"DATE/TIME TASK COMPLETED: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","COMPLETED")),"P")) | 
|---|
| 142 | I $D(^XTMP("SD53P495","LAST RUN")) D | 
|---|
| 143 | . D ADD(.SDLN,"      DATE/TIME LAST RUN: "_$$FMTE^XLFDT(+$G(^XTMP("SD53P495","LAST RUN")),"P")) | 
|---|
| 144 | D ADD(.SDLN," "),ADD(.SDLN," ") | 
|---|
| 145 | D ADD(.SDLN,"        TOTAL O/P ENCOUNTER RECORDS FOUND: "_+$G(^XTMP("SD53P495","TOT"))) | 
|---|
| 146 | I +$G(^XTMP("SD53P495","TOT3")) D | 
|---|
| 147 | . D ADD(.SDLN,"       TOTAL RECORDS PREVIOUSLY CONVERTED: "_+$G(^XTMP("SD53P495","TOT3"))) | 
|---|
| 148 | D ADD(.SDLN,"    TOTAL O/P ENCOUNTER RECORDS CONVERTED: "_+$G(^XTMP("SD53P495","TOT1"))) | 
|---|
| 149 | D ADD(.SDLN,"TOTAL O/P ENCOUNTER RECORDS NOT CONVERTED: "_+$G(^XTMP("SD53P495","TOT2"))) | 
|---|
| 150 | I +$G(^XTMP("SD53P495","TOT2")) D | 
|---|
| 151 | . D ADD(.SDLN,"                                         :") | 
|---|
| 152 | . N SDSUB,SDIEN,SDENT | 
|---|
| 153 | . S (SDSUB,SDIEN)="" | 
|---|
| 154 | . F  S SDSUB=$O(^XTMP("SD53P495","TOT2",SDSUB)) Q:SDSUB=""  D | 
|---|
| 155 | . . D ADD(.SDLN,"                     REASON NOT CONVERTED: "_SDSUB) | 
|---|
| 156 | . . D ADD(.SDLN,"                        O/P ENCOUNTER IEN:") | 
|---|
| 157 | . . F  S SDIEN=$O(^XTMP("SD53P495","TOT2",SDSUB,SDIEN)) Q:'SDIEN  D | 
|---|
| 158 | . . . S SDENT=$E(^XTMP("SD53P495","TOT2",SDSUB,SDIEN),1,30) | 
|---|
| 159 | . . . D ADD(.SDLN,"                                         : "_SDIEN_"-"_SDENT) | 
|---|
| 160 | . . D ADD(.SDLN,"                                         :") | 
|---|
| 161 | D ADD(.SDLN,"                         <END OF REPORT> :") | 
|---|
| 162 | D ^XMD | 
|---|
| 163 | K ^TMP("SD53P495",$J) | 
|---|
| 164 | Q | 
|---|
| 165 | ADD(SDLN,SDTXT) ;add line | 
|---|
| 166 | Q:$L(SDTXT)'>0 | 
|---|
| 167 | S SDLN=$G(SDLN)+1 | 
|---|
| 168 | S ^TMP("SD53P495",$J,SDLN)=SDTXT | 
|---|
| 169 | Q | 
|---|
| 170 | PROGCHK(XPDABORT) ;checks programmer variables | 
|---|
| 171 | I '$G(DUZ)!($G(DUZ(0))'="@")!('$G(DT))!($G(U)'="^") D | 
|---|
| 172 | . D BMES^XPDUTL("******") | 
|---|
| 173 | . D MES^XPDUTL("Your programming variables are not set up properly.") | 
|---|
| 174 | . D MES^XPDUTL("Installation aborted.") | 
|---|
| 175 | . D MES^XPDUTL("******") | 
|---|
| 176 | . S XPDABORT=2 | 
|---|
| 177 | Q | 
|---|
| 178 | ISRUNING(XPDABORT) ;check if running | 
|---|
| 179 | I +$G(^XTMP("SD53P495","RUNNING")) D | 
|---|
| 180 | . D BMES^XPDUTL("******") | 
|---|
| 181 | . D MES^XPDUTL("This patch is currently being Installed.  Try later.") | 
|---|
| 182 | . D MES^XPDUTL("Installation aborted...") | 
|---|
| 183 | . D MES^XPDUTL("******") | 
|---|
| 184 | . S XPDABORT=2 | 
|---|
| 185 | Q | 
|---|
| 186 | NOFILE ;no File | 
|---|
| 187 | D BMES^XPDUTL("******") | 
|---|
| 188 | D MES^XPDUTL("The Class III (SCOUT) File Conversion is NOT necessary because") | 
|---|
| 189 | D MES^XPDUTL("the ANU SERVICE CONNECTED CHANGES (#626140) file does not exist") | 
|---|
| 190 | D MES^XPDUTL("on this system.") | 
|---|
| 191 | D MES^XPDUTL("Post-Install process terminated...") | 
|---|
| 192 | D MES^XPDUTL("******") | 
|---|
| 193 | Q | 
|---|
| 194 | TASK ;run TaskMan | 
|---|
| 195 | N ZTSK,ZTDTH,ZTRTN,ZTDESC,ZTIO,ZTSAVE,ZTREQ,ZTSTOP,SDSTOP | 
|---|
| 196 | S SDSTOP=+$G(^XTMP("SD53P495","STOPPED")) | 
|---|
| 197 | S ZTRTN="START^SD53P495" | 
|---|
| 198 | S ZTDESC="SD*5.3*495 (SCOUT) FILE CONVERSION PROCESSING" | 
|---|
| 199 | S ZTIO="",ZTDTH=$H,ZTREQ="@",ZTSAVE("ZTREQ")="" | 
|---|
| 200 | D ^%ZTLOAD | 
|---|
| 201 | D BMES^XPDUTL("******") | 
|---|
| 202 | I '$D(ZTSK) D | 
|---|
| 203 | . D MES^XPDUTL("Unable to schedule TaskMan task to run the Class III (SCOUT) File") | 
|---|
| 204 | . D MES^XPDUTL("Conversion.") | 
|---|
| 205 | . D BMES^XPDUTL("Please re-run Post-Install routine POST^SD53P495 from") | 
|---|
| 206 | . D MES^XPDUTL("the programmer prompt.") | 
|---|
| 207 | . ; | 
|---|
| 208 | E  D | 
|---|
| 209 | . D MES^XPDUTL("Task "_ZTSK_" has been "_$S(+SDSTOP:"Re-",1:"")_"started to run the Class III (SCOUT) File") | 
|---|
| 210 | . D MES^XPDUTL("Conversion.") | 
|---|
| 211 | . I SDSTOP D | 
|---|
| 212 | . . D MES^XPDUTL("  <<< The last task run was STOPPED on "_$$FMTE^XLFDT(SDSTOP,"P")_". >>>") | 
|---|
| 213 | . D BMES^XPDUTL("You will receive a MailMan message when this task is completed") | 
|---|
| 214 | . D MES^XPDUTL("or if it has been manually stopped.") | 
|---|
| 215 | D MES^XPDUTL("******") | 
|---|
| 216 | Q | 
|---|
| 217 | XTMP ;setup ^XTMP to control output for 90 days | 
|---|
| 218 | I $D(^XTMP("SD53P495",0)) D | 
|---|
| 219 | . S ^XTMP("SD53P495","LAST RUN")=$G(^XTMP("SD53P495","START")) | 
|---|
| 220 | E  D | 
|---|
| 221 | . N SDX | 
|---|
| 222 | . S SDX=$$FMADD^XLFDT($$NOW^XLFDT(),90)_U_$$NOW^XLFDT() | 
|---|
| 223 | . S SDX=SDX_"^SD*5.3*495 (SCOUT) FILE CONVERSION PROCESSING" | 
|---|
| 224 | . S ^XTMP("SD53P495",0)=SDX | 
|---|
| 225 | S ^XTMP("SD53P495","START")=$$NOW^XLFDT() | 
|---|
| 226 | S ^XTMP("SD53P495","RUNNING")="1" | 
|---|
| 227 | Q | 
|---|
| 228 | UPXTMP(SDENCPTR,NODE,SDENT) ;add to ^XTMP | 
|---|
| 229 | ; Input: | 
|---|
| 230 | ;   SDENCPTR - Encounter IEN | 
|---|
| 231 | ;       NODE - Unique subscript | 
|---|
| 232 | ; Output: none | 
|---|
| 233 | Q:'$G(SDENCPTR) | 
|---|
| 234 | I $G(NODE)="" S NODE="UNKNOWN" | 
|---|
| 235 | S ^XTMP("SD53P495","TOT2",NODE,SDENCPTR)=$G(SDENT) | 
|---|
| 236 | Q | 
|---|