[613] | 1 | FSCLP ;SLC/STAFF-NOIS List Process ;1/13/98 13:18
|
---|
| 2 | ;;1.1;NOIS;;Sep 06, 1998
|
---|
| 3 | ;
|
---|
| 4 | UPDATE(CALL,LIST) ; from FSCLMPD, FSCTASKA, FSCTASKU
|
---|
| 5 | I $G(LIST),$P($G(^FSC("LIST",LIST,0)),U,3)'="A" Q
|
---|
| 6 | I $G(LIST),$G(CALL) D PROCESS(LIST,CALL) Q
|
---|
| 7 | I '$G(LIST),$G(CALL) D CALL(CALL) Q
|
---|
| 8 | I $G(LIST),'$G(CALL) D LIST(LIST) Q
|
---|
| 9 | I '$G(LIST),'$G(CALL) D Q
|
---|
| 10 | .N DAYDATE,DOW,REBUILD
|
---|
| 11 | .S DOW=$$DOW^XLFDT(DT)
|
---|
| 12 | .S DAYDATE=+$E(DT,6,7)
|
---|
| 13 | .S LIST=0 F S LIST=$O(^FSC("LIST","AU","A",LIST)) Q:LIST<1 D
|
---|
| 14 | ..S REBUILD=$P($G(^FSC("LIST",LIST,0)),U,10)
|
---|
| 15 | ..I REBUILD="NEVER" Q
|
---|
| 16 | ..I REBUILD="DAILY" D LIST(LIST) Q
|
---|
| 17 | ..I REBUILD="WEEKLY",DOW="Saturday" D LIST(LIST) Q
|
---|
| 18 | ..I REBUILD="",DOW="Saturday" D LIST(LIST) Q
|
---|
| 19 | ..I REBUILD="MONTHLY",DOW="Saturday",DAYDATE<8 D LIST(LIST) Q
|
---|
| 20 | Q
|
---|
| 21 | ;
|
---|
| 22 | CALL(CALLNUM) ;
|
---|
| 23 | N ADD,EVAL,EXP,LEVEL,LIST,LNUM,NUM,Q,VALUE,X K Q,VALUE,X
|
---|
| 24 | D GET^FSCGET("ALL",CALLNUM,.VALUE)
|
---|
| 25 | S LIST=0 F S LIST=$O(^FSC("LIST","AU","A",LIST)) Q:LIST<1 D
|
---|
| 26 | .L +^XTMP("FSC LIST DEF",LIST):20 I '$T Q
|
---|
| 27 | .I '$D(^XTMP("FSC LIST DEF",LIST,"XOP")) K ^XTMP("FSC LIST DEF",LIST)
|
---|
| 28 | .I '$D(^XTMP("FSC LIST DEF",LIST)) D BUILD^FSCLDU(LIST)
|
---|
| 29 | .S NUM=0 F S NUM=$O(^XTMP("FSC LIST DEF",LIST,"Q",NUM)) Q:NUM<1 S EXP=^(NUM) S Q(NUM)=0 I @EXP S Q(NUM)=1
|
---|
| 30 | .S LEVEL=0 F S LEVEL=$O(^XTMP("FSC LIST DEF",LIST,"X",LEVEL)) Q:LEVEL<1 S EXP=$P(^(LEVEL),U,2) S X(LEVEL)=0 I @EXP S X(LEVEL)=1
|
---|
| 31 | .S EVAL=^XTMP("FSC LIST DEF",LIST,"XOP")
|
---|
| 32 | .L -^XTMP("FSC LIST DEF",LIST)
|
---|
| 33 | .I @EVAL D Q
|
---|
| 34 | ..S ADD=0 D ADD^FSCLMPS(CALLNUM,LIST,.OK) I OK S ADD=1
|
---|
| 35 | ..D NOTIFY(CALLNUM,LIST,ADD)
|
---|
| 36 | .S LNUM=+$O(^FSCD("LISTS","ALC",LIST,CALLNUM,0)) I LNUM D DELETE^FSCLMPS(LNUM)
|
---|
| 37 | Q
|
---|
| 38 | ;
|
---|
| 39 | LIST(LIST) ;
|
---|
| 40 | N ADD,CALL,CNT,CRITERIA,LNUM,LSTART,LSTOP,OPNUM K CRITERIA,^TMP("FSC LIST",$J)
|
---|
| 41 | S LSTART=$$NOW^XLFDT
|
---|
| 42 | D TMP(LIST)
|
---|
| 43 | S (CNT,OPNUM)=0 F S OPNUM=$O(^TMP("FSC LIST DEF",$J,LIST,"CRITERIA",OPNUM)) Q:OPNUM<1 D
|
---|
| 44 | .K CRITERIA M CRITERIA=^TMP("FSC LIST DEF",$J,LIST,"CRITERIA",OPNUM)
|
---|
| 45 | .D QUERY^FSCQR("",.CNT,.CRITERIA)
|
---|
| 46 | K ^TMP("FSC LIST DEF",$J)
|
---|
| 47 | S CALL=0 F S CALL=$O(^FSCD("LISTS","ALC",LIST,CALL)) Q:CALL<1 D
|
---|
| 48 | .I '$D(^TMP("FSC LIST",$J,CALL)) S LNUM=+$O(^FSCD("LISTS","ALC",LIST,CALL,0)) D:LNUM DELETE^FSCLMPS(LNUM) Q
|
---|
| 49 | .K ^TMP("FSC LIST",$J,CALL)
|
---|
| 50 | S CALL=0 F S CALL=$O(^TMP("FSC LIST",$J,CALL)) Q:CALL<1 D
|
---|
| 51 | .S ADD=0 D ADD^FSCLMPS(CALL,LIST,.OK) I OK S ADD=1
|
---|
| 52 | .D NOTIFY(CALL,LIST,ADD)
|
---|
| 53 | S LSTOP=$$NOW^XLFDT
|
---|
| 54 | S $P(^FSC("LIST",LIST,0),U,11)=$$FMDIFF^XLFDT(LSTOP,LSTART,2)
|
---|
| 55 | Q
|
---|
| 56 | ;
|
---|
| 57 | PROCESS(LISTNUM,CALLNUM) ;
|
---|
| 58 | I '$D(^FSC("LIST",LISTNUM)) Q
|
---|
| 59 | D TMP(LISTNUM)
|
---|
| 60 | N ADD,EVAL,EXP,FIELD,LEVEL,LNUM,NUM,Q,VALUE,X K Q,VALUE,X
|
---|
| 61 | S FIELD=0 F S FIELD=$O(^TMP("FSC LIST DEF",$J,LISTNUM,"VAR",FIELD)) Q:FIELD<1 S VALUE(^(FIELD))=""
|
---|
| 62 | D GET^FSCGET("CUSTOM",CALLNUM,.VALUE)
|
---|
| 63 | S NUM=0 F S NUM=$O(^TMP("FSC LIST DEF",$J,LISTNUM,"Q",NUM)) Q:NUM<1 S EXP=^(NUM) S Q(NUM)=0 I @EXP S Q(NUM)=1
|
---|
| 64 | S LEVEL=0 F S LEVEL=$O(^TMP("FSC LIST DEF",$J,LISTNUM,"X",LEVEL)) Q:LEVEL<1 S EXP=$P(^(LEVEL),U,2) S X(LEVEL)=0 I @EXP S X(LEVEL)=1
|
---|
| 65 | S EVAL=^TMP("FSC LIST DEF",$J,LISTNUM,"XOP")
|
---|
| 66 | K ^TMP("FSC LIST DEF",$J)
|
---|
| 67 | I @EVAL D Q
|
---|
| 68 | .S ADD=0 D ADD^FSCLMPS(CALLNUM,LISTNUM,.OK) I OK S ADD=1
|
---|
| 69 | .D NOTIFY(CALLNUM,LISTNUM,ADD)
|
---|
| 70 | S LNUM=+$O(^FSCD("LISTS","ALC",LISTNUM,CALLNUM,0)) I LNUM D DELETE^FSCLMPS(LNUM)
|
---|
| 71 | Q
|
---|
| 72 | ;
|
---|
| 73 | NOTIFY(CALL,LIST,ADD) ;
|
---|
| 74 | I '$L($P(^FSC("LIST",LIST,0),U,6)) Q
|
---|
| 75 | I $D(^FSCD("NOTIFY","ACLIST",CALL,LIST)) Q
|
---|
| 76 | I 'ADD,$P(^FSC("LIST",LIST,0),U,7)="ADDED" Q
|
---|
| 77 | D SETUP^FSCNOT(CALL,LIST)
|
---|
| 78 | Q
|
---|
| 79 | ;
|
---|
| 80 | MANUAL(LIST) ; from FSCLML, FSCLMPQU, FSCRPCA, FSCRPCL
|
---|
| 81 | N CNT,OPNUM,CRITERIA K CRITERIA,^TMP("FSC LIST",$J)
|
---|
| 82 | D TMP(LIST)
|
---|
| 83 | S (CNT,OPNUM)=0 F S OPNUM=$O(^TMP("FSC LIST DEF",$J,LIST,"CRITERIA",OPNUM)) Q:OPNUM<1 D
|
---|
| 84 | .K CRITERIA M CRITERIA=^TMP("FSC LIST DEF",$J,LIST,"CRITERIA",OPNUM)
|
---|
| 85 | .D QUERY^FSCQR("",.CNT,.CRITERIA)
|
---|
| 86 | K ^TMP("FSC LIST DEF",$J)
|
---|
| 87 | Q
|
---|
| 88 | ;
|
---|
| 89 | TMP(LIST) ; builds ^TMP("FSC LIST DEF",$J,LIST) from ^XTMP
|
---|
| 90 | K ^TMP("FSC LIST DEF",$J,LIST)
|
---|
| 91 | L +^XTMP("FSC LIST DEF",LIST):20 I '$T Q
|
---|
| 92 | I '$D(^XTMP("FSC LIST DEF",LIST,"XOP")) K ^XTMP("FSC LIST DEF",LIST)
|
---|
| 93 | I '$D(^XTMP("FSC LIST DEF",LIST)) D BUILD^FSCLDU(LIST)
|
---|
| 94 | M ^TMP("FSC LIST DEF",$J,LIST)=^XTMP("FSC LIST DEF",LIST)
|
---|
| 95 | L -^XTMP("FSC LIST DEF",LIST)
|
---|
| 96 | Q
|
---|