| 1 | KMPRUTL2 ;OAK/RAK - RUM Data for All Nodes (Graph) ;5/28/03  09:15 | 
|---|
| 2 | ;;2.0;CAPACITY MANAGEMENT - RUM;;May 28, 2003 | 
|---|
| 3 | ; | 
|---|
| 4 | ELEMDATA(KMPRELMT,KMPRST,KMPREN,KMPRNODE,KMPRARRY,KMPRQIET) ;-- elements | 
|---|
| 5 | ; compile rum element stats. | 
|---|
| 6 | ;----------------------------------------------------------------------- | 
|---|
| 7 | ; KMPRELMT... Element.  This represents the ^piece of where the | 
|---|
| 8 | ;             element data is located in file 8971.1. | 
|---|
| 9 | ;             Example: 5 would be piece 5 of node 1 - M COMMANDS (PT) | 
|---|
| 10 | ;                              or piece 5 of node 2 - M COMMANDS (NP) | 
|---|
| 11 | ; KMPRST..... Start date in internal fileman format. | 
|---|
| 12 | ; KMPREN..... End date in internal fileman format. | 
|---|
| 13 | ; KMPRNODE... Array (passed by reference) containing name of nodes to | 
|---|
| 14 | ;             process in format:  KMPRNODE("NODENAME")="" | 
|---|
| 15 | ; KMPRARRY... Array (passed by value) that will contain results of | 
|---|
| 16 | ;             search in format: | 
|---|
| 17 | ;             KMPRARRY(KMPRNODE,DATE)=element/per second | 
|---|
| 18 | ;             where DATE will be in internal filemat format. | 
|---|
| 19 | ; KMPRQIET... Output date/dots during search. | 
|---|
| 20 | ;             0 - not quiet. | 
|---|
| 21 | ;             1 - quiet. | 
|---|
| 22 | ;----------------------------------------------------------------------- | 
|---|
| 23 | ; | 
|---|
| 24 | Q:'$G(KMPRELMT) | 
|---|
| 25 | Q:'$G(KMPRST) | 
|---|
| 26 | Q:'$G(KMPREN) | 
|---|
| 27 | Q:'$D(KMPRNODE) | 
|---|
| 28 | Q:$G(KMPRARRY)="" | 
|---|
| 29 | S KMPRQIET=+$G(KMPRQIET) | 
|---|
| 30 | ; | 
|---|
| 31 | K @KMPRARRY | 
|---|
| 32 | ; | 
|---|
| 33 | N DATE,DATA,DCOUNT,END,IEN,NODE,OCCURR,OPTION,START | 
|---|
| 34 | ; | 
|---|
| 35 | ; DATE.... Current date being processed. | 
|---|
| 36 | ; END..... Ending date. | 
|---|
| 37 | ; NODE.... Computer node. | 
|---|
| 38 | ; OCCURR.. # of Occurrences | 
|---|
| 39 | ; OPTION.. Option name. | 
|---|
| 40 | ; START... Starting date. | 
|---|
| 41 | ; | 
|---|
| 42 | S END=KMPREN,START=KMPRST | 
|---|
| 43 | S DATE=START-.1,OCCURR=0 | 
|---|
| 44 | F  S DATE=$O(^KMPR(8971.1,"B",DATE)) Q:'DATE!(DATE>END)  D | 
|---|
| 45 | .I 'KMPRQIET W:$X>68 !?23 W $$FMTE^XLFDT(DATE,5),"." | 
|---|
| 46 | .S IEN=0 | 
|---|
| 47 | .F  S IEN=$O(^KMPR(8971.1,"B",DATE,IEN)) Q:'IEN  D | 
|---|
| 48 | ..I 'KMPRQIET&('(IEN#1000)) W:$X>78 !?23 W "." | 
|---|
| 49 | ..Q:'$D(^KMPR(8971.1,IEN,0))  S DATA(0)=^(0),DATA(1)=$G(^(1)),DATA(2)=$G(^(2)) | 
|---|
| 50 | ..S NODE=$P(DATA(0),U,3) Q:NODE="" | 
|---|
| 51 | ..Q:'$D(KMPRNODE(NODE)) | 
|---|
| 52 | ..S @KMPRARRY@(NODE,DATE)=$G(@KMPRARRY@(NODE,DATE))+$P(DATA(1),U,+KMPRELMT) | 
|---|
| 53 | ..S @KMPRARRY@(NODE,DATE)=$G(@KMPRARRY@(NODE,DATE))+$P(DATA(2),U,+KMPRELMT) | 
|---|
| 54 | ..; count occurrences. | 
|---|
| 55 | ..S OCCURR=OCCURR+$P(DATA(1),U,8)+$P(DATA(2),U,8) | 
|---|
| 56 | ; | 
|---|
| 57 | ; calculate element per second or per occurrence. | 
|---|
| 58 | S NODE="" | 
|---|
| 59 | F  S NODE=$O(@KMPRARRY@(NODE)) Q:NODE=""  S DATE="" D | 
|---|
| 60 | .F  S DATE=$O(@KMPRARRY@(NODE,DATE)) Q:'DATE  D | 
|---|
| 61 | ..; elements 1 and 7 are per Occurrence. | 
|---|
| 62 | ..I KMPRELMT=1!(KMPRELMT=7) D | 
|---|
| 63 | ...S @KMPRARRY@(NODE,DATE)=$FN(@KMPRARRY@(NODE,DATE)/(OCCURR),"",2) | 
|---|
| 64 | ..; all other elements are per second. | 
|---|
| 65 | ..E  S @KMPRARRY@(NODE,DATE)=$FN(@KMPRARRY@(NODE,DATE)/(24*3600),"",2) | 
|---|
| 66 | ; | 
|---|
| 67 | Q | 
|---|
| 68 | ; | 
|---|
| 69 | PKGDATA(KMPRPKG,KMPRSTR,KMPREND,KMPRARRY,KMPRQIET) ;-- package data. | 
|---|
| 70 | ;----------------------------------------------------------------------- | 
|---|
| 71 | ; KMPRPKG... Package name (case sensitive, free text). | 
|---|
| 72 | ; KMPRSTR... Start date in internal fileman format. | 
|---|
| 73 | ; KMPREND... End date in internal fileman format. | 
|---|
| 74 | ; KMPRARRY.. Array to hold data (by value). | 
|---|
| 75 | ; KMPRQIET.. Output date/dots during search. | 
|---|
| 76 | ;            0 - not quiet. | 
|---|
| 77 | ;            1 - quiet. | 
|---|
| 78 | ;----------------------------------------------------------------------- | 
|---|
| 79 | ; | 
|---|
| 80 | Q:$G(KMPRPKG)=""!($G(KMPRPKG)="^") | 
|---|
| 81 | Q:'$G(KMPRSTR) | 
|---|
| 82 | Q:'$G(KMPREND) | 
|---|
| 83 | Q:$G(KMPRARRY)="" | 
|---|
| 84 | S KMPRQIET=+$G(KMPRQIET) | 
|---|
| 85 | ; | 
|---|
| 86 | N DATE,DESIG,HL7,I,IEN,NODE,OPTION,PROTOCOL,RPC,TOTALS,TYP | 
|---|
| 87 | ; | 
|---|
| 88 | S DATE=KMPRSTR-.1 | 
|---|
| 89 | F  S DATE=$O(^KMPR(8971.1,"B",DATE)) Q:'DATE!(DATE>KMPREND)  S IEN=0 D | 
|---|
| 90 | .I 'KMPRQIET W:$X>68 !?23 W $$FMTE^XLFDT(DATE,5),"." | 
|---|
| 91 | .F  S IEN=$O(^KMPR(8971.1,"B",DATE,IEN)) Q:'IEN  D | 
|---|
| 92 | ..I 'KMPRQIET&('(IEN#1000)) W:$X>78 !?23 W "." | 
|---|
| 93 | ..Q:'$D(^KMPR(8971.1,IEN,0))  S DATA(0)=^(0),DATA(1)=$G(^(1)),DATA(2)=$G(^(2)) | 
|---|
| 94 | ..S NODE=$P(DATA(0),U,3) S:NODE="" NODE="N/A" | 
|---|
| 95 | ..S OPTION=$P(DATA(0),U,4) S:OPTION="" OPTION="N/A" | 
|---|
| 96 | ..S PROTOCOL=$P(DATA(0),U,5) | 
|---|
| 97 | ..S RPC=$P(DATA(0),U,7) | 
|---|
| 98 | ..S HL7=$P(DATA(0),U,9) | 
|---|
| 99 | ..; rum designation: 1 - TASKMAN | 
|---|
| 100 | ..;                  2 - USER | 
|---|
| 101 | ..;                  3 - BROKER | 
|---|
| 102 | ..;                  4 - HL7 | 
|---|
| 103 | ..;                  5 OTHER | 
|---|
| 104 | ..S DESIG=$P(DATA(0),U,8) | 
|---|
| 105 | ..; | 
|---|
| 106 | ..; TYP: KMPRPKG. options within namespace | 
|---|
| 107 | ..;      HL7..... hl7 within namespace. | 
|---|
| 108 | ..;      RPC..... rpc within namespace | 
|---|
| 109 | ..;      PRTCL... protocol within namespace | 
|---|
| 110 | ..;      TASK.... tasked option within namespace | 
|---|
| 111 | ..;      OTH..... all other options/protocols | 
|---|
| 112 | ..; | 
|---|
| 113 | ..S TYP="OTH" | 
|---|
| 114 | ..; if option is in namespace. | 
|---|
| 115 | ..I $E(OPTION,1,$L(KMPRPKG))=KMPRPKG S TYP=KMPRPKG | 
|---|
| 116 | ..; if option in namespace and protocol was called. | 
|---|
| 117 | ..I TYP=KMPRPKG I PROTOCOL]"" S TYP="PRTCL" | 
|---|
| 118 | ..; if option in namespace and tasked. | 
|---|
| 119 | ..I TYP=KMPRPKG&(DESIG=1)&($E(OPTION,1,$L(KMPRPKG))=KMPRPKG) S TYP="TASK" | 
|---|
| 120 | ..; if broker and in namespace. | 
|---|
| 121 | ..I DESIG=3&($E(RPC,1,$L(KMPRPKG))=KMPRPKG) S TYP="RPC" | 
|---|
| 122 | ..; if hl7 and in namespace. | 
|---|
| 123 | ..I DESIG=4&($E(HL7,1,$L(KMPRPKG))=KMPRPKG) S TYP="HL7" | 
|---|
| 124 | ..; get current totals (if any). | 
|---|
| 125 | ..S TOTALS=$G(@KMPRARRY@(NODE,TYP)) | 
|---|
| 126 | ..; add prime time and non-prime time totals | 
|---|
| 127 | ..F I=1:1:8 D | 
|---|
| 128 | ...S $P(@KMPRARRY@(NODE,TYP),U,I)=$P($G(@KMPRARRY@(NODE,TYP)),U,I)+$P(DATA(1),U,I) | 
|---|
| 129 | ...S $P(@KMPRARRY@(NODE,TYP),U,I)=$P($G(@KMPRARRY@(NODE,TYP)),U,I)+$P(DATA(2),U,I) | 
|---|
| 130 | ...S $P(@KMPRARRY@(NODE,"TOTALS"),U,I)=$P($G(@KMPRARRY@(NODE,"TOTALS")),U,I)+$P(DATA(1),U,I) | 
|---|
| 131 | ...S $P(@KMPRARRY@(NODE,"TOTALS"),U,I)=$P($G(@KMPRARRY@(NODE,"TOTALS")),U,I)+$P(DATA(2),U,I) | 
|---|
| 132 | ; | 
|---|
| 133 | Q | 
|---|