Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: KMPRBD03

KMPRBD03.m

Go to the documentation of this file.
  1. KMPRBD03 ;OAK/RAK - Resource Usage Monitor Data Compression ;5/28/03 08:38
  1. ;;2.0;CAPACITY MANAGEMENT - RUM;;May 28, 2003
  1. ;
  1. ; Background Driver (cont.)
  1. ;
  1. FILE(KMPRDATE,KMPRNODE,KMPROPT,KMPRPT,KMPRNP,KMPRPTHR,KMPRNPHR,KMPROK,KMPRMSG) ;
  1. ;-----------------------------------------------------------------------
  1. ; KMPRDATE.... Date in $H Format
  1. ; KMPRNODE.... Node Name
  1. ; KMPROPT..... Option (in 2 pieces with "***" as delimiter)
  1. ; piece 1 - option name
  1. ; piece 2 - protocol (optional)
  1. ; KMPRPT().... Array for Prime Time data - passed by reference
  1. ; (1)... Prime Time Data (8 elements)
  1. ; (1.1). Hour count (24 hours)
  1. ; (1.2). User count (24 hours)
  1. ; KMPRNP().... Array fo Non-Prime data - passed by reference
  1. ; (1)... Non-Prime Time Data (8 elements)
  1. ; (1.1). Hour count (24 hours)
  1. ; (1.2). User count (24 hours)
  1. ; KMPRPTHR.... Number of Prime Time Hours
  1. ; KMPRNPHR.... Number of Non Prime Hours
  1. ; KMPROK...... Returns: 0 - update not successful
  1. ; 1 - update successful
  1. ; KMPRMSG..... If KMPROK = 0 then message text will be returned in this
  1. ; array (passed by reference)
  1. ;
  1. ; File data in file #8971.1 (RESOUCE USAGE MONITOR)
  1. ;-----------------------------------------------------------------------
  1. ;
  1. S KMPROK=0
  1. Q:'$G(KMPRDATE)
  1. Q:$G(KMPRNODE)=""
  1. Q:$G(KMPROPT)=""
  1. Q:'$D(KMPRPT)&('$D(KMPRNP))
  1. S KMPRPTHR=+$G(KMPRPTHR),KMPRNPHR=+$G(KMPRNPHR)
  1. S KMPROK=1
  1. K KMPRMSG
  1. ;
  1. N FDA,FMDATE,I,J,MESSAGE,OPT,WORKDAY,ZIEN
  1. ;
  1. S FMDATE=$$HTFM^XLFDT(KMPRDATE),WORKDAY=$$WORKDAY^XUWORKDY(FMDATE)
  1. ;
  1. ; date
  1. S FDA($J,8971.1,"+1,",.01)=FMDATE
  1. ; sent to cm national database
  1. S FDA($J,8971.1,"+1,",.02)=0
  1. ; cpu node
  1. S FDA($J,8971.1,"+1,",.03)=KMPRNODE
  1. ; option
  1. S OPT=$P(KMPROPT,"***")
  1. ; rum designation
  1. S FDA($J,8971.1,"+1,",.08)=$$RUMDESIG(OPT)
  1. ; if the first character of OPT is '`' then this is an RPC
  1. I $E(OPT)="`" S FDA($J,8971.1,"+1,",.07)=$E(OPT,2,999)
  1. ; if the first character of OPT is '&' then this is an HL7
  1. E I $E(OPT)="&" S FDA($J,8971.1,"+1,",.09)=$E(OPT,2,999)
  1. ; option
  1. E S FDA($J,8971.1,"+1,",.04)=$$OPTION(OPT)
  1. ; protocol
  1. S:$P(KMPROPT,"***",2)'="" FDA($J,8971.1,"+1,",.05)=$P(KMPROPT,"***",2)
  1. ;
  1. ;--Populate prime time, non-prime time and non-workday fields
  1. F I=1:1:8 S J=I*.01 D
  1. .;
  1. .; subscript 1 - workday prime time (PT)
  1. .I $P($G(KMPRPT(1)),U,I)'=""&(KMPRPTHR) D
  1. ..S FDA($J,8971.1,"+1,",1+J)=$FN($P(KMPRPT(1),U,I),"",2)
  1. .;
  1. .I $P($G(KMPRNP(1)),U,I)'=""&(KMPRNPHR) D
  1. ..; subscript 2 - workday non-prime time (NP)
  1. ..I WORKDAY S FDA($J,8971.1,"+1,",2+J)=$FN($P(KMPRNP(1),U,I),"",2)
  1. ..; subscript 3 - entire non-workday time (NW)
  1. ..E S FDA($J,8971.1,"+1,",3+J)=$FN($P(KMPRNP(1),U,I),"",2)
  1. ;
  1. ;--Populate workday and non-workday hourly occurrence and user counts
  1. ; non-workday is considered non-prime time
  1. F I=1:1:24 S J=I*.001 D
  1. .;
  1. .; subscript 1.1 - workday (WD) hourly occurrence counts
  1. .I $P($G(KMPRPT(1.1)),U,I)'="" D
  1. ..S FDA($J,8971.1,"+1,",1.1+J)=$P(KMPRPT(1.1),U,I)
  1. .;
  1. .; subscript 1.2 - workday (WD) hourly user counts
  1. .I $P($G(KMPRPT(1.2)),U,I)'="" D
  1. ..S FDA($J,8971.1,"+1,",1.2+J)=$P(KMPRPT(1.2),U,I)
  1. .;
  1. .; subscript 2.1 - non-workday (NW) hourly occurrence counts
  1. .I $P($G(KMPRNP(1.1)),U,I)'="" D
  1. ..S FDA($J,8971.1,"+1,",2.1+J)=$P(KMPRNP(1.1),U,I)
  1. .;
  1. .; subscript 2.2 - non-workday (NW) hourly user counts
  1. .I $P($G(KMPRNP(1.2)),U,I)'="" D
  1. ..S FDA($J,8971.1,"+1,",2.2+J)=$P(KMPRNP(1.2),U,I)
  1. ;
  1. ; update file 8971.1
  1. D UPDATE^DIE("","FDA($J)","ZIEN","MESSAGE")
  1. ; if error message
  1. I $D(MESSAGE) S KMPROK=0 D MSG^DIALOG("A",.KMPRMSG,60,10,"MESSAGE")
  1. ;
  1. Q
  1. ;
  1. RUMDESIG(KMPROPT) ;-- extrinsic function - determine rum designation
  1. ;-----------------------------------------------------------------------
  1. ; KMPROPT... Option name
  1. ;
  1. ; Return: RUM Designation (see field #.08 RUM DESIGNATION in file
  1. ; #8971.1)
  1. ;-----------------------------------------------------------------------
  1. ;
  1. ; 5 = other
  1. Q:$G(KMPROPT)="" 5
  1. ; 1 = taskman
  1. Q:KMPROPT="$AFTR ZTMS$"!(KMPROPT="$STRT ZTMS$")!($E(KMPROPT)="!") 1
  1. ; 3 = broker
  1. Q:$E(KMPROPT)="`" 3
  1. ; 4 = users
  1. Q:$E(KMPROPT)="#" 4
  1. ; 2 - option
  1. Q 2
  1. ;
  1. OPTION(KMPROPT) ;-- extrinsic function - option name
  1. ;-----------------------------------------------------------------------
  1. ; KMPROPT... Option name as it appears from ^KMPTMP("KMPR","DLY")
  1. ;
  1. ; Return: Option name with extraneous characters removed
  1. ;-----------------------------------------------------------------------
  1. ;
  1. Q:$G(KMPROPT)="" ""
  1. Q:$E(KMPROPT)="!" $E(KMPROPT,2,999)
  1. ; rpc
  1. Q:$E(KMPROPT)="`" ""
  1. Q KMPROPT