| 1 | KMPRBD03 ;OAK/RAK - Resource Usage Monitor Data Compression ;5/28/03  08:38
 | 
|---|
| 2 |  ;;2.0;CAPACITY MANAGEMENT - RUM;;May 28, 2003
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; Background Driver (cont.)
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | FILE(KMPRDATE,KMPRNODE,KMPROPT,KMPRPT,KMPRNP,KMPRPTHR,KMPRNPHR,KMPROK,KMPRMSG) ;
 | 
|---|
| 7 |  ;-----------------------------------------------------------------------
 | 
|---|
| 8 |  ; KMPRDATE.... Date in $H Format
 | 
|---|
| 9 |  ; KMPRNODE.... Node Name
 | 
|---|
| 10 |  ; KMPROPT..... Option (in 2 pieces with "***" as delimiter)
 | 
|---|
| 11 |  ;                piece 1 - option name
 | 
|---|
| 12 |  ;                piece 2 - protocol (optional)
 | 
|---|
| 13 |  ; KMPRPT().... Array for Prime Time data - passed by reference
 | 
|---|
| 14 |  ;       (1)... Prime Time Data (8 elements)
 | 
|---|
| 15 |  ;       (1.1). Hour count (24 hours)
 | 
|---|
| 16 |  ;       (1.2). User count (24 hours)
 | 
|---|
| 17 |  ; KMPRNP().... Array fo Non-Prime data - passed by reference
 | 
|---|
| 18 |  ;       (1)... Non-Prime Time Data (8 elements)
 | 
|---|
| 19 |  ;       (1.1). Hour count (24 hours)
 | 
|---|
| 20 |  ;       (1.2). User count (24 hours)
 | 
|---|
| 21 |  ; KMPRPTHR.... Number of Prime Time Hours
 | 
|---|
| 22 |  ; KMPRNPHR.... Number of Non Prime Hours
 | 
|---|
| 23 |  ; KMPROK...... Returns: 0 - update not successful
 | 
|---|
| 24 |  ;                       1 - update successful
 | 
|---|
| 25 |  ; KMPRMSG..... If KMPROK = 0 then message text will be returned in this
 | 
|---|
| 26 |  ;              array (passed by reference)
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ; File data in file #8971.1 (RESOUCE USAGE MONITOR)
 | 
|---|
| 29 |  ;-----------------------------------------------------------------------
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  S KMPROK=0
 | 
|---|
| 32 |  Q:'$G(KMPRDATE)
 | 
|---|
| 33 |  Q:$G(KMPRNODE)=""
 | 
|---|
| 34 |  Q:$G(KMPROPT)=""
 | 
|---|
| 35 |  Q:'$D(KMPRPT)&('$D(KMPRNP))
 | 
|---|
| 36 |  S KMPRPTHR=+$G(KMPRPTHR),KMPRNPHR=+$G(KMPRNPHR)
 | 
|---|
| 37 |  S KMPROK=1
 | 
|---|
| 38 |  K KMPRMSG
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 |  N FDA,FMDATE,I,J,MESSAGE,OPT,WORKDAY,ZIEN
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  S FMDATE=$$HTFM^XLFDT(KMPRDATE),WORKDAY=$$WORKDAY^XUWORKDY(FMDATE)
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 |  ; date
 | 
|---|
| 45 |  S FDA($J,8971.1,"+1,",.01)=FMDATE
 | 
|---|
| 46 |  ; sent to cm national database
 | 
|---|
| 47 |  S FDA($J,8971.1,"+1,",.02)=0
 | 
|---|
| 48 |  ; cpu node
 | 
|---|
| 49 |  S FDA($J,8971.1,"+1,",.03)=KMPRNODE
 | 
|---|
| 50 |  ; option
 | 
|---|
| 51 |  S OPT=$P(KMPROPT,"***")
 | 
|---|
| 52 |  ; rum designation
 | 
|---|
| 53 |  S FDA($J,8971.1,"+1,",.08)=$$RUMDESIG(OPT)
 | 
|---|
| 54 |  ; if the first character of OPT is '`' then this is an RPC
 | 
|---|
| 55 |  I $E(OPT)="`" S FDA($J,8971.1,"+1,",.07)=$E(OPT,2,999)
 | 
|---|
| 56 |  ; if the first character of OPT is '&' then this is an HL7
 | 
|---|
| 57 |  E  I $E(OPT)="&" S FDA($J,8971.1,"+1,",.09)=$E(OPT,2,999)
 | 
|---|
| 58 |  ; option
 | 
|---|
| 59 |  E  S FDA($J,8971.1,"+1,",.04)=$$OPTION(OPT)
 | 
|---|
| 60 |  ; protocol
 | 
|---|
| 61 |  S:$P(KMPROPT,"***",2)'="" FDA($J,8971.1,"+1,",.05)=$P(KMPROPT,"***",2)
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 |  ;--Populate prime time, non-prime time and non-workday fields
 | 
|---|
| 64 |  F I=1:1:8 S J=I*.01 D
 | 
|---|
| 65 |  .;
 | 
|---|
| 66 |  .; subscript 1 - workday prime time (PT)
 | 
|---|
| 67 |  .I $P($G(KMPRPT(1)),U,I)'=""&(KMPRPTHR) D 
 | 
|---|
| 68 |  ..S FDA($J,8971.1,"+1,",1+J)=$FN($P(KMPRPT(1),U,I),"",2)
 | 
|---|
| 69 |  .;
 | 
|---|
| 70 |  .I $P($G(KMPRNP(1)),U,I)'=""&(KMPRNPHR) D
 | 
|---|
| 71 |  ..; subscript 2 - workday non-prime time (NP)
 | 
|---|
| 72 |  ..I WORKDAY S FDA($J,8971.1,"+1,",2+J)=$FN($P(KMPRNP(1),U,I),"",2)
 | 
|---|
| 73 |  ..; subscript 3 - entire non-workday time (NW)
 | 
|---|
| 74 |  ..E  S FDA($J,8971.1,"+1,",3+J)=$FN($P(KMPRNP(1),U,I),"",2)
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 |  ;--Populate workday and non-workday hourly occurrence and user counts
 | 
|---|
| 77 |  ; non-workday is considered non-prime time
 | 
|---|
| 78 |  F I=1:1:24 S J=I*.001 D
 | 
|---|
| 79 |  .;
 | 
|---|
| 80 |  .; subscript 1.1 - workday (WD) hourly occurrence counts
 | 
|---|
| 81 |  .I $P($G(KMPRPT(1.1)),U,I)'="" D 
 | 
|---|
| 82 |  ..S FDA($J,8971.1,"+1,",1.1+J)=$P(KMPRPT(1.1),U,I)
 | 
|---|
| 83 |  .;
 | 
|---|
| 84 |  .; subscript 1.2 - workday (WD) hourly user counts
 | 
|---|
| 85 |  .I $P($G(KMPRPT(1.2)),U,I)'="" D
 | 
|---|
| 86 |  ..S FDA($J,8971.1,"+1,",1.2+J)=$P(KMPRPT(1.2),U,I)
 | 
|---|
| 87 |  .;
 | 
|---|
| 88 |  .; subscript 2.1 - non-workday (NW) hourly occurrence counts
 | 
|---|
| 89 |  .I $P($G(KMPRNP(1.1)),U,I)'="" D
 | 
|---|
| 90 |  ..S FDA($J,8971.1,"+1,",2.1+J)=$P(KMPRNP(1.1),U,I)
 | 
|---|
| 91 |  .;
 | 
|---|
| 92 |  .; subscript 2.2 - non-workday (NW) hourly user counts
 | 
|---|
| 93 |  .I $P($G(KMPRNP(1.2)),U,I)'="" D
 | 
|---|
| 94 |  ..S FDA($J,8971.1,"+1,",2.2+J)=$P(KMPRNP(1.2),U,I)
 | 
|---|
| 95 |  ;
 | 
|---|
| 96 |  ; update file 8971.1
 | 
|---|
| 97 |  D UPDATE^DIE("","FDA($J)","ZIEN","MESSAGE")
 | 
|---|
| 98 |  ; if error message
 | 
|---|
| 99 |  I $D(MESSAGE) S KMPROK=0 D MSG^DIALOG("A",.KMPRMSG,60,10,"MESSAGE")
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 |  Q
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 | RUMDESIG(KMPROPT) ;-- extrinsic function - determine rum designation
 | 
|---|
| 104 |  ;-----------------------------------------------------------------------
 | 
|---|
| 105 |  ; KMPROPT... Option name
 | 
|---|
| 106 |  ;
 | 
|---|
| 107 |  ; Return: RUM Designation (see field #.08 RUM DESIGNATION in file
 | 
|---|
| 108 |  ;         #8971.1)
 | 
|---|
| 109 |  ;-----------------------------------------------------------------------
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 |  ; 5 = other
 | 
|---|
| 112 |  Q:$G(KMPROPT)="" 5
 | 
|---|
| 113 |  ; 1 = taskman
 | 
|---|
| 114 |  Q:KMPROPT="$AFTR ZTMS$"!(KMPROPT="$STRT ZTMS$")!($E(KMPROPT)="!") 1
 | 
|---|
| 115 |  ; 3 = broker
 | 
|---|
| 116 |  Q:$E(KMPROPT)="`" 3
 | 
|---|
| 117 |  ; 4 = users
 | 
|---|
| 118 |  Q:$E(KMPROPT)="#" 4
 | 
|---|
| 119 |  ; 2 - option
 | 
|---|
| 120 |  Q 2
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 | OPTION(KMPROPT) ;-- extrinsic function - option name
 | 
|---|
| 123 |  ;-----------------------------------------------------------------------
 | 
|---|
| 124 |  ; KMPROPT... Option name as it appears from ^KMPTMP("KMPR","DLY")
 | 
|---|
| 125 |  ;
 | 
|---|
| 126 |  ; Return: Option name with extraneous characters removed
 | 
|---|
| 127 |  ;-----------------------------------------------------------------------
 | 
|---|
| 128 |  ;
 | 
|---|
| 129 |  Q:$G(KMPROPT)="" ""
 | 
|---|
| 130 |  Q:$E(KMPROPT)="!" $E(KMPROPT,2,999)
 | 
|---|
| 131 |  ; rpc
 | 
|---|
| 132 |  Q:$E(KMPROPT)="`" ""
 | 
|---|
| 133 |  Q KMPROPT
 | 
|---|