| 1 | KMPRSSA ;OAK/RAK - Resource Usage Monitor Status ;11/19/04  10:32 | 
|---|
| 2 | ;;2.0;CAPACITY MANAGEMENT - RUM;**1**;May 28, 2003 | 
|---|
| 3 | ; | 
|---|
| 4 | FORMAT(KMPRLN) ;-format text for dislay | 
|---|
| 5 | ;----------------------------------------------------------------------------- | 
|---|
| 6 | ; KMPRLN.... return number of lines - called by reference | 
|---|
| 7 | ;----------------------------------------------------------------------------- | 
|---|
| 8 | ; | 
|---|
| 9 | N CHECK,LN,VERSION S LN=0 K TMP | 
|---|
| 10 | ; | 
|---|
| 11 | ; check environment | 
|---|
| 12 | ;D ENVCHECK^KMPRUTL1(.CHECK,1) | 
|---|
| 13 | ; if RUM turned on but background job not queued ask user if they want | 
|---|
| 14 | ; to queue it at this time. | 
|---|
| 15 | ;D:(+CHECK)=200 ENVCHECK^KMPRUTL1(.CHECK) | 
|---|
| 16 | ; | 
|---|
| 17 | ; if no kmprutl routine | 
|---|
| 18 | S X="KMPRUTL" X ^%ZOSF("TEST") I '$T D  Q | 
|---|
| 19 | .D SET^VALM10(LN,"The CAPACITY MANAGEMENT - RUM package is not installed!") | 
|---|
| 20 | .S LN=LN+1 | 
|---|
| 21 | ; | 
|---|
| 22 | W !," formatting..." | 
|---|
| 23 | W "." | 
|---|
| 24 | ; option data | 
|---|
| 25 | D OPT | 
|---|
| 26 | W "." | 
|---|
| 27 | ; bacground data | 
|---|
| 28 | D BKGRND | 
|---|
| 29 | W "." | 
|---|
| 30 | ; file data | 
|---|
| 31 | D FILES | 
|---|
| 32 | W "." | 
|---|
| 33 | ; routine version check | 
|---|
| 34 | D ROUCHK("R") | 
|---|
| 35 | W "." | 
|---|
| 36 | ; node/cpu data | 
|---|
| 37 | D CPU | 
|---|
| 38 | W "." | 
|---|
| 39 | ; legend | 
|---|
| 40 | D LEGEND | 
|---|
| 41 | ; | 
|---|
| 42 | S KMPRLN=LN-1 | 
|---|
| 43 | ; | 
|---|
| 44 | Q | 
|---|
| 45 | ; | 
|---|
| 46 | BKGRND ; hl7 background info | 
|---|
| 47 | ; | 
|---|
| 48 | N DATA,DELTA,ENDT,I,STAT,STDT,Z | 
|---|
| 49 | ; | 
|---|
| 50 | D SET^VALM10(LN,"   Temporary collection global..") | 
|---|
| 51 | S LN=LN+1 | 
|---|
| 52 | D SET^VALM10(LN,"   ^KMPTMP(""KMPR"").............. "_$S('$D(^KMPTMP("KMPR")):"NOT ",1:"")_"Present") | 
|---|
| 53 | S LN=LN+1 | 
|---|
| 54 | D SET^VALM10(LN,"") | 
|---|
| 55 | S LN=LN+1 | 
|---|
| 56 | ; | 
|---|
| 57 | D PARAMS^KMPDUT("DATA") Q:'$D(DATA) | 
|---|
| 58 | S DATA(2)=$G(DATA(2)) | 
|---|
| 59 | S STDT=$P(DATA(2),U,5),ENDT=$P(DATA(2),U,6),DELTA=$P(DATA(2),U,7) | 
|---|
| 60 | S:$E(DELTA)=" " $E(DELTA)="0" | 
|---|
| 61 | D SET^VALM10(LN,"") | 
|---|
| 62 | S LN=LN+1 | 
|---|
| 63 | D SET^VALM10(LN,"   RUM Dly Bckgrnd Last Start... "_$$FMTE^XLFDT(STDT)) | 
|---|
| 64 | S LN=LN+1 | 
|---|
| 65 | D SET^VALM10(LN,"   RUM Dly Bckgrnd Last Stop.... "_$$FMTE^XLFDT(ENDT)) | 
|---|
| 66 | S LN=LN+1 | 
|---|
| 67 | D SET^VALM10(LN,"   RUM Dly Bkgrnd Total Time.... "_DELTA) | 
|---|
| 68 | S LN=LN+1 | 
|---|
| 69 | D SET^VALM10(LN,"") | 
|---|
| 70 | S LN=LN+1 | 
|---|
| 71 | S STDT=$P(DATA(2),U,8),ENDT=$P(DATA(2),U,9),DELTA=$P(DATA(2),U,10) | 
|---|
| 72 | S:$E(DELTA)=" " $E(DELTA)="0" | 
|---|
| 73 | D SET^VALM10(LN,"   RUM Wkly Backgrnd Last Start. "_$$FMTE^XLFDT(STDT)) | 
|---|
| 74 | S LN=LN+1 | 
|---|
| 75 | D SET^VALM10(LN,"   RUM Wkly Bckgrnd Last Stop... "_$$FMTE^XLFDT(ENDT)) | 
|---|
| 76 | S LN=LN+1 | 
|---|
| 77 | D SET^VALM10(LN,"   RUM Wkly Bckgrnd Total Time.. "_DELTA) | 
|---|
| 78 | S LN=LN+1 | 
|---|
| 79 | D SET^VALM10(LN,"   RUM Purge Data After......... "_$P(DATA(2),U,11)_" weeks") | 
|---|
| 80 | S LN=LN+1 | 
|---|
| 81 | D TRANSTO^KMPDUTL7(1,2,.Z) | 
|---|
| 82 | I '$D(Z) D SET^VALM10(LN,"   RUM Transmit Data to......... <>") S LN=LN+1 | 
|---|
| 83 | E  D | 
|---|
| 84 | .S I=$O(Z("")) D:I'="" SET^VALM10(LN,"   RUM Transmit Data to......... "_I) S LN=LN+1 | 
|---|
| 85 | .F  S I=$O(Z(I)) Q:I=""  D SET^VALM10(LN,$J(" ",33)_I) S LN=LN+1 | 
|---|
| 86 | D SET^VALM10(LN,"") | 
|---|
| 87 | S LN=LN+1 | 
|---|
| 88 | ; | 
|---|
| 89 | Q | 
|---|
| 90 | ; | 
|---|
| 91 | CPU ;-- cpu/node data | 
|---|
| 92 | ; | 
|---|
| 93 | N COUNT,DATA,I,LEN,TEXT | 
|---|
| 94 | ; | 
|---|
| 95 | D CPUGET^KMPDUTL6(.DATA) | 
|---|
| 96 | Q:'$D(DATA) | 
|---|
| 97 | D SET^VALM10(LN,"") | 
|---|
| 98 | S LN=LN+1 | 
|---|
| 99 | S TEXT="   Node/CPU Data............... " | 
|---|
| 100 | S (COUNT,I,LEN)=0 | 
|---|
| 101 | F  S I=$O(DATA(I)) Q:'I  D | 
|---|
| 102 | .S COUNT=COUNT+1,DATA=$G(DATA(I,0)) Q:DATA="" | 
|---|
| 103 | .; length of node name | 
|---|
| 104 | .S:'LEN LEN=$L($P(DATA,U))+2 | 
|---|
| 105 | .S TEXT=$S(COUNT=1:TEXT,1:$J(" ",32))_$P(DATA,U) | 
|---|
| 106 | .S TEXT=TEXT_$J(" ",30-$L(TEXT)+LEN)_$P(DATA,U,2)_" ("_$P(DATA,U,3)_")" | 
|---|
| 107 | .D SET^VALM10(LN,TEXT) | 
|---|
| 108 | .S LN=LN+1 | 
|---|
| 109 | ; | 
|---|
| 110 | Q | 
|---|
| 111 | ; | 
|---|
| 112 | LEGEND ;-- display legend | 
|---|
| 113 | ; | 
|---|
| 114 | D SET^VALM10(LN,"") | 
|---|
| 115 | S LN=LN+1 | 
|---|
| 116 | D SET^VALM10(LN,"") | 
|---|
| 117 | S LN=LN+1 | 
|---|
| 118 | D SET^VALM10(LN,"     RUM = Resource Usage Monitor") | 
|---|
| 119 | S LN=LN+1 | 
|---|
| 120 | ; | 
|---|
| 121 | Q | 
|---|
| 122 | ; | 
|---|
| 123 | OPT ;-- option data | 
|---|
| 124 | ; | 
|---|
| 125 | ; daily/weekly background job info | 
|---|
| 126 | N DIR,KMPRX,KMPRX1,TEXT,X,Y | 
|---|
| 127 | ; | 
|---|
| 128 | ; if background option is missing | 
|---|
| 129 | I '$O(^DIC(19,"B","KMPR BACKGROUND DRIVER",0)) D | 
|---|
| 130 | .D SET^VALM10(LN,"   The 'RUM Background Driver' option [KMPR BACKGROUND DRIVER] is missing!") | 
|---|
| 131 | .S LN=LN+1 | 
|---|
| 132 | ; background option is present | 
|---|
| 133 | E  D | 
|---|
| 134 | .S KMPRX=+$O(^DIC(19,"B","KMPR BACKGROUND DRIVER",0)) | 
|---|
| 135 | .S KMPRX=+$O(^DIC(19.2,"B",KMPRX,0)) | 
|---|
| 136 | .; if not scheduled or no task id | 
|---|
| 137 | .I 'KMPRX!('$G(^DIC(19.2,+KMPRX,1))) D  Q:'Y | 
|---|
| 138 | ..K DIR S DIR(0)="YO",DIR("B")="YES" | 
|---|
| 139 | ..S DIR("A")="Do you want to queue this option to run each night at 1am" | 
|---|
| 140 | ..W ! D ^DIR I 'Y D  Q | 
|---|
| 141 | ...D SET^VALM10(LN,"   The 'RUM Background Driver' [KMPR BACKGROUND DRIVER] is not scheduled") | 
|---|
| 142 | ...S LN=LN+1 | 
|---|
| 143 | ...D SET^VALM10(LN,"   to run!"),SET^VALM10(LN,"") | 
|---|
| 144 | ...S LN=LN+1 | 
|---|
| 145 | ..D QUEBKG^KMPRUTL1 | 
|---|
| 146 | .S KMPRX=+$O(^DIC(19,"B","KMPR BACKGROUND DRIVER",0)) | 
|---|
| 147 | .S KMPRX=+$O(^DIC(19.2,"B",KMPRX,0)) | 
|---|
| 148 | .S KMPRX=$G(^DIC(19.2,KMPRX,0)),KMPRX1=$G(^(1)) | 
|---|
| 149 | .S $P(KMPRX,U,2)=$$FMTE^XLFDT($P(KMPRX,U,2)) | 
|---|
| 150 | .D SET^VALM10(LN,"   RUM Background Driver........ KMPR BACKGROUND DRIVER") | 
|---|
| 151 | .S LN=LN+1 | 
|---|
| 152 | .D SET^VALM10(LN,"   QUEUED TO RUN AT............. "_$P(KMPRX,U,2)) | 
|---|
| 153 | .S LN=LN+1 | 
|---|
| 154 | .D SET^VALM10(LN,"   RESCHEDULING FREQUENCY....... "_$P(KMPRX,U,6)) | 
|---|
| 155 | .S LN=LN+1 | 
|---|
| 156 | .D SET^VALM10(LN,"   TASK ID...................... "_+KMPRX1) | 
|---|
| 157 | .S LN=LN+1 | 
|---|
| 158 | .; user info. | 
|---|
| 159 | .S KMPRX1=$G(^%ZTSK(+KMPRX1,0)) | 
|---|
| 160 | .S TEXT="   QUEUED BY.................... "_$P($G(^VA(200,+$P(KMPRX1,U,3),0)),U) | 
|---|
| 161 | .; if user | 
|---|
| 162 | .I (+$P(KMPRX1,U,3)) D | 
|---|
| 163 | ..; user 'active' or 'terminated' | 
|---|
| 164 | ..S KMPRX1=$$ACTIVE^XUSER(+$P(KMPRX1,U,3)) | 
|---|
| 165 | ..S TEXT=TEXT_"  ("_$S($P(KMPRX1,U,2)["TERMINATED":"Terminated - "_$$FMTE^XLFDT($P(KMPRX1,U,3),2),1:"Active")_")" | 
|---|
| 166 | .D SET^VALM10(LN,TEXT) | 
|---|
| 167 | .S LN=LN+1 | 
|---|
| 168 | D SET^VALM10(LN,"") | 
|---|
| 169 | S LN=LN+1 | 
|---|
| 170 | ; | 
|---|
| 171 | Q | 
|---|
| 172 | ; | 
|---|
| 173 | ; | 
|---|
| 174 | FILES ;-- file data | 
|---|
| 175 | ; | 
|---|
| 176 | N TEXT,X | 
|---|
| 177 | ; | 
|---|
| 178 | D SET^VALM10(LN,$J(" ",35)_" # of     Oldest     Recent") | 
|---|
| 179 | S LN=LN+1 | 
|---|
| 180 | D SET^VALM10(LN,"   File"_$J(" ",28)_"Entries    Date       Date") | 
|---|
| 181 | S LN=LN+1 | 
|---|
| 182 | D SET^VALM10(LN,"   -------------------------       -------   -------   -------") | 
|---|
| 183 | S LN=LN+1 | 
|---|
| 184 | ; file name | 
|---|
| 185 | S TEXT="   8971.1-"_$P($G(^DIC(8971.1,0)),U) | 
|---|
| 186 | ; number of entries | 
|---|
| 187 | S TEXT=TEXT_$J(" ",35-$L(TEXT))_$J($FN($P($G(^KMPR(8971.1,0)),U,4),",",0),7) | 
|---|
| 188 | ; oldest date | 
|---|
| 189 | S X=$$FMTE^XLFDT(+$O(^KMPR(8971.1,"B",0)),2) | 
|---|
| 190 | S X=$S(X=0:"---",1:X) | 
|---|
| 191 | S TEXT=TEXT_$J(" ",45-$L(TEXT))_X | 
|---|
| 192 | ; current date | 
|---|
| 193 | S X=$$FMTE^XLFDT(+$O(^KMPR(8971.1,"B","A"),-1),2) | 
|---|
| 194 | S X=$S(X=0:"---",1:X) | 
|---|
| 195 | S TEXT=TEXT_$J(" ",55-$L(TEXT))_X | 
|---|
| 196 | D SET^VALM10(LN,TEXT) | 
|---|
| 197 | S LN=LN+1 | 
|---|
| 198 | ; | 
|---|
| 199 | Q | 
|---|
| 200 | ; | 
|---|
| 201 | ROUCHK(KMPDPKG) ;--display routine version info | 
|---|
| 202 | ;----------------------------------------------------------------------- | 
|---|
| 203 | ; KMPDPKG... CM Package: | 
|---|
| 204 | ;            "D" - CM Tools | 
|---|
| 205 | ;            "R" - RUM | 
|---|
| 206 | ;            "S" - SAGG | 
|---|
| 207 | ;----------------------------------------------------------------------- | 
|---|
| 208 | ; | 
|---|
| 209 | Q:$G(KMPDPKG)="" | 
|---|
| 210 | Q:KMPDPKG'="D"&(KMPDPKG'="R")&(KMPDPKG'="S") | 
|---|
| 211 | ; | 
|---|
| 212 | N I,TEXT,X | 
|---|
| 213 | ; | 
|---|
| 214 | ; routine check | 
|---|
| 215 | D VERPTCH^KMPDUTL1(KMPDPKG,.X) | 
|---|
| 216 | D SET^VALM10(LN,"") | 
|---|
| 217 | S LN=LN+1 | 
|---|
| 218 | D SET^VALM10(LN,"") | 
|---|
| 219 | S LN=LN+1 | 
|---|
| 220 | S TEXT="   "_$S(KMPDPKG="D":"CM TOOLS",KMPDPKG="R":"RUM",1:"SAGG")_" routines" | 
|---|
| 221 | S TEXT=TEXT_$$REPEAT^XLFSTR(".",31-$L(TEXT))_" " | 
|---|
| 222 | I '$P($G(X(0)),U,3) D SET^VALM10(LN,TEXT_+X(0)_" Routines - No Problems") S LN=LN+1 Q | 
|---|
| 223 | D SET^VALM10(LN,TEXT) | 
|---|
| 224 | S LN=LN+1 | 
|---|
| 225 | D SET^VALM10(LN,$J(" ",20)_"Current Version"_$J(" ",20)_"Should be") | 
|---|
| 226 | S LN=LN+1 | 
|---|
| 227 | S I=0 F  S I=$O(X(I)) Q:I=""  I $P(X(I),U) D | 
|---|
| 228 | .S TEXT="   "_I | 
|---|
| 229 | .S TEXT=TEXT_$J(" ",20-$L(TEXT))_$P(X(I),U,4) | 
|---|
| 230 | .S:$P(X(I),U,5)]"" TEXT=TEXT_" - "_$P(X(I),U,5) | 
|---|
| 231 | .S TEXT=TEXT_$J(" ",55-$L(TEXT))_$P(X(I),U,2) | 
|---|
| 232 | .S:$P(X(I),U,3)]"" TEXT=TEXT_" - "_$P(X(I),U,3) | 
|---|
| 233 | .D SET^VALM10(LN,TEXT) | 
|---|
| 234 | .S LN=LN+1 | 
|---|
| 235 | ; | 
|---|
| 236 | Q | 
|---|