| 1 | FSCRPCWR ;SLC/STAFF-NOIS RPC Workload Review ;1/13/98  16:15
 | 
|---|
| 2 |  ;;1.1;NOIS;;Sep 06, 1998
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | WORK(IN,OUT) ; from FSCRPX (RPCWorkload Review)
 | 
|---|
| 5 |  N CALL,COL,COLNUM,DATE,DATE0,DATE1,DATE2,FLDS,FMT,LASTNUM,LISTNUM,LISTFLAG,LNUM,MAX,NODE,NUM,SPEC,STOP,TYPE,WKLD
 | 
|---|
| 6 |  S STOP=0,MAX=2000
 | 
|---|
| 7 |  S LISTFLAG=+$G(^TMP("FSCRPC",$J,"INPUT",1)),DATE1=$P($G(^(1)),U,2),DATE2=$P($G(^(1)),U,3),FLDS=$P($G(^(1)),U,4)
 | 
|---|
| 8 |  I DATE1>DATE2 S DATE0=DATE2,DATE2=DATE1,DATE1=DATE0
 | 
|---|
| 9 |  S FMT="CUSTOM"
 | 
|---|
| 10 |  D INFO(.FMT,FLDS,.NODE,.TYPE)
 | 
|---|
| 11 |  S ^TMP("FSCRPC",$J,"OUTPUT",2)="0^1^Hours"
 | 
|---|
| 12 |  S ^TMP("FSCRPC",$J,"OUTPUT",3)="0^2^Date"
 | 
|---|
| 13 |  S ^TMP("FSCRPC",$J,"OUTPUT",4)="0^3^Spec"
 | 
|---|
| 14 |  S LASTNUM=4,LISTNUM=0,COLNUM=3
 | 
|---|
| 15 |  S COL=0 F  S COL=$O(FMT(COL)) Q:COL<1  D
 | 
|---|
| 16 |  .S COLNUM=COLNUM+1
 | 
|---|
| 17 |  .S LASTNUM=LASTNUM+1
 | 
|---|
| 18 |  .S ^TMP("FSCRPC",$J,"OUTPUT",LASTNUM)="0^"_COLNUM_U_$P(FMT(COL),U,2)
 | 
|---|
| 19 |  I LISTFLAG D
 | 
|---|
| 20 |  .S LNUM=0 F  S LNUM=$O(^TMP("FSC CURRENT LIST",$J,LNUM)) Q:LNUM<1  S CALL=+^(LNUM) D  Q:STOP
 | 
|---|
| 21 |  ..I $O(^TMP("FSCRPC",$J,"INPUT",1)) D  Q
 | 
|---|
| 22 |  ...S NUM=1  F  S NUM=$O(^TMP("FSCRPC",$J,"INPUT",NUM)) Q:NUM<1  S SPEC=+^(NUM) D  Q:STOP
 | 
|---|
| 23 |  ....I 'SPEC Q
 | 
|---|
| 24 |  ....S DATE=0 F  S DATE=$O(^FSCD("WKLD","AK",CALL,SPEC,DATE)) Q:DATE<1  S WKLD=^(DATE) D SETUP(WKLD,.FMT,.LASTNUM,.LISTNUM) I LASTNUM'<MAX S STOP=1 Q
 | 
|---|
| 25 |  ..S WKLD=0 F  S WKLD=$O(^FSCD("WKLD","B",CALL,WKLD)) Q:WKLD<1  D SETUP(WKLD,.FMT,.LASTNUM,.LISTNUM) I LASTNUM'<MAX S STOP=1 Q
 | 
|---|
| 26 |  I 'LISTFLAG D
 | 
|---|
| 27 |  .I $O(^TMP("FSCRPC",$J,"INPUT",1)) D  Q
 | 
|---|
| 28 |  ..S NUM=1 F  S NUM=$O(^TMP("FSCRPC",$J,"INPUT",NUM)) Q:NUM<1  S SPEC=+^(NUM) D  Q:STOP
 | 
|---|
| 29 |  ...I 'SPEC Q
 | 
|---|
| 30 |  ...S DATE=DATE1 F  S DATE=$O(^FSCD("WKLD","AUD",SPEC,DATE)) Q:DATE<1  Q:DATE>DATE2  D  Q:STOP
 | 
|---|
| 31 |  ....S WKLD=0 F  S WKLD=$O(^FSCD("WKLD","AUD",SPEC,DATE,WKLD)) Q:WKLD<1  D SETUP(WKLD,.FMT,.LASTNUM,.LISTNUM) I LASTNUM'<MAX S STOP=1 Q
 | 
|---|
| 32 |  .S DATE=DATE1 F  S DATE=$O(^FSCD("WKLD","D",DATE)) Q:DATE<1  Q:DATE>DATE2  D  Q:STOP
 | 
|---|
| 33 |  ..S WKLD=0 F  S WKLD=$O(^FSCD("WKLD","D",DATE,WKLD)) Q:WKLD<1  D SETUP(WKLD,.FMT,.LASTNUM,.LISTNUM) I LASTNUM'<MAX S STOP=1 Q
 | 
|---|
| 34 |  S ^TMP("FSCRPC",$J,"OUTPUT",1)=(1+LISTNUM)_";"_(1+COLNUM)
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | SETUP(WKLD,FMT,LASTNUM,LISTNUM) ;
 | 
|---|
| 38 |  N CALL,CALLID,COL,DATE,FIELD,HOURS,INVALID,SPEC,ZERO K FIELD
 | 
|---|
| 39 |  S ZERO=$G(^FSCD("WKLD",+WKLD,0))
 | 
|---|
| 40 |  S CALL=+ZERO,SPEC=+$P(ZERO,U,2),DATE=+$P(ZERO,U,3),HOURS=+$P(ZERO,U,4),INVALID=+$P(ZERO,U,5)
 | 
|---|
| 41 |  Q:'CALL  Q:'DATE  Q:'SPEC  Q:'HOURS  Q:INVALID
 | 
|---|
| 42 |  S CALLID=$P($G(^FSCD("CALL",CALL,0)),U)
 | 
|---|
| 43 |  S DATE=$$FMTE^XLFDT(DATE)
 | 
|---|
| 44 |  S SPEC=$P($G(^VA(200,SPEC,0)),U)
 | 
|---|
| 45 |  S LISTNUM=LISTNUM+1
 | 
|---|
| 46 |  S LASTNUM=LASTNUM+1
 | 
|---|
| 47 |  S ^TMP("FSCRPC",$J,"OUTPUT",LASTNUM)=LISTNUM_"^0^"_CALLID
 | 
|---|
| 48 |  S LASTNUM=LASTNUM+1
 | 
|---|
| 49 |  S ^TMP("FSCRPC",$J,"OUTPUT",LASTNUM)=LISTNUM_"^1^"_HOURS
 | 
|---|
| 50 |  S LASTNUM=LASTNUM+1
 | 
|---|
| 51 |  S ^TMP("FSCRPC",$J,"OUTPUT",LASTNUM)=LISTNUM_"^2^"_DATE
 | 
|---|
| 52 |  S LASTNUM=LASTNUM+1
 | 
|---|
| 53 |  S ^TMP("FSCRPC",$J,"OUTPUT",LASTNUM)=LISTNUM_"^3^"_SPEC
 | 
|---|
| 54 |  S COL=0 F  S COL=$O(FMT(COL)) Q:COL<1  D
 | 
|---|
| 55 |  .I '$L($P(FMT(COL),U,7)) S $P(FMT(COL),U,7)=" "
 | 
|---|
| 56 |  .S FIELD($P(FMT(COL),U,7))=""
 | 
|---|
| 57 |  D GET^FSCGET("CUSTOM",CALL,.FIELD)
 | 
|---|
| 58 |  S COL=0 F  S COL=$O(FMT(COL)) Q:COL<1  D
 | 
|---|
| 59 |  .S LASTNUM=LASTNUM+1
 | 
|---|
| 60 |  .I $P(FMT(COL),U,7)="SUBJECT" D
 | 
|---|
| 61 |  ..S ^TMP("FSCRPC",$J,"OUTPUT",LASTNUM)=LISTNUM_U_COL_U_FIELD($P(FMT(COL),U,7))
 | 
|---|
| 62 |  .E  D
 | 
|---|
| 63 |  ..S ^TMP("FSCRPC",$J,"OUTPUT",LASTNUM)=LISTNUM_U_COL_U_$P(FIELD($P(FMT(COL),U,7)),U,2)
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 | INFO(FMT,FLDS,NODE,TYPE) ;
 | 
|---|
| 67 |  N CNT,FIELD,FORMAT,NUM,PIECE
 | 
|---|
| 68 |  S TYPE="FSC VIEW "
 | 
|---|
| 69 |  S NODE=TYPE_FMT
 | 
|---|
| 70 |  S NUM=3
 | 
|---|
| 71 |  I $E(FLDS)="{" D
 | 
|---|
| 72 |  .S FORMAT=+$P(FLDS,"{",2)
 | 
|---|
| 73 |  .S CNT=0 F  S CNT=$O(^FSC("FORMAT",FORMAT,2,CNT)) Q:CNT<1  S FIELD=+^(CNT,0) D
 | 
|---|
| 74 |  ..S NUM=NUM+1
 | 
|---|
| 75 |  ..S FMT(NUM)=$G(^FSC("FLD",FIELD,0))
 | 
|---|
| 76 |  E  D
 | 
|---|
| 77 |  .F PIECE=1:1 S FIELD=$P(FLDS,";",PIECE) Q:FIELD=""  D
 | 
|---|
| 78 |  ..S NUM=NUM+1
 | 
|---|
| 79 |  ..S FMT(NUM)=$G(^FSC("FLD",+FIELD,0))
 | 
|---|
| 80 |  Q
 | 
|---|
| 81 |  ;
 | 
|---|