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
|
---|