| 1 | FSCRPCA ;SLC/STAFF-NOIS RPC Add ;3/12/99  14:27 | 
|---|
| 2 | ;;1.1;NOIS;**1**;Sep 06, 1998 | 
|---|
| 3 | ; | 
|---|
| 4 | ALERT(IN,OUT) ; from FSCRPX (RPCAlert) | 
|---|
| 5 | N DATA,NODE,TIME,XQAID,XQAKILL | 
|---|
| 6 | D GETTIME(.TIME) I 'TIME Q | 
|---|
| 7 | S NODE=$G(^XTV(8992,DUZ,"XQA",TIME,0)),DATA=$G(^(1)) | 
|---|
| 8 | I '$L(NODE) Q | 
|---|
| 9 | S XQAID=$P(NODE,U,2) | 
|---|
| 10 | I XQAID["FSC-A" D USER^FSCRPCAP | 
|---|
| 11 | I XQAID["FSC-M" D ALERT^FSCRPCAP(DATA) | 
|---|
| 12 | S XQAKILL=1 | 
|---|
| 13 | D DELETE^XQALERT | 
|---|
| 14 | Q | 
|---|
| 15 | ; | 
|---|
| 16 | GETTIME(TIME) ; | 
|---|
| 17 | N NODEID,SUB | 
|---|
| 18 | S TIME=0 | 
|---|
| 19 | S SUB=0 F  S SUB=$O(^XTV(8992,DUZ,"XQA",SUB)) Q:SUB<1  D  I TIME>0 Q | 
|---|
| 20 | .S NODEID=$P($G(^XTV(8992,DUZ,"XQA",SUB,0)),U,2) | 
|---|
| 21 | .I NODEID["FSC-A" S TIME=SUB Q | 
|---|
| 22 | .I NODEID["FSC-M" S TIME=SUB Q | 
|---|
| 23 | Q | 
|---|
| 24 | ; | 
|---|
| 25 | LISTS(IN,OUT) ; from FSCRPX (RPCAddLists) | 
|---|
| 26 | N CALL,COUNT,INDX,INPUT,LCNT,LIMIT,LIMITNUM,LIMITDTO,LIMITDFM,LIST,LNAME,LNUM,MAX,OK,RLIST,TIME | 
|---|
| 27 | S COUNT=0,MAX=$$MAX^FSCRPCL | 
|---|
| 28 | S LNUM=0 F  S LNUM=$O(^TMP("FSCRPC",$J,"INPUT",LNUM)) Q:LNUM<1  S INPUT=^(LNUM) D  Q:COUNT'<MAX | 
|---|
| 29 | .S LIST=+INPUT,INDX=+$P(INPUT,U,2),LIMITNUM=$P(INPUT,U,3),LIMITDTO=$P(INPUT,U,4),LIMITDFM=$P(INPUT,U,5) | 
|---|
| 30 | .I 'LIST Q | 
|---|
| 31 | .D LIST(LIST,INDX,.RLIST,.OK) I 'OK Q | 
|---|
| 32 | .S LNAME=$P(^FSC("LIST",LIST,0),U) | 
|---|
| 33 | .I LNAME="MRE:" D | 
|---|
| 34 | ..S (LIMIT,LCNT)=0,TIME="" F  S TIME=$O(^FSCD("MRE","AUTC",INDX,TIME)) Q:TIME=""  D  Q:LIMIT  Q:COUNT'<MAX | 
|---|
| 35 | ...S CALL=0 F  S CALL=$O(^FSCD("MRE","AUTC",INDX,TIME,CALL)) Q:CALL<1  D  Q:LIMIT  Q:COUNT'<MAX | 
|---|
| 36 | ....I '$D(^TMP("FSC CURRENT LIST",$J,"C",CALL)) D CHECK(CALL,LIMITNUM,LIMITDTO,LIMITDFM,.LIMIT,.LCNT,.COUNT) | 
|---|
| 37 | .E  I LNAME="MRA:" D | 
|---|
| 38 | ..S (LIMIT,LCNT)=0,TIME="" F  S TIME=$O(^FSCD("MRA","AUTC",INDX,TIME)) Q:TIME=""  D  Q:LIMIT  Q:COUNT'<MAX | 
|---|
| 39 | ...S CALL=0 F  S CALL=$O(^FSCD("MRA","AUTC",INDX,TIME,CALL)) Q:CALL<1  D  Q:LIMIT  Q:COUNT'<MAX | 
|---|
| 40 | ....I '$D(^TMP("FSC CURRENT LIST",$J,"C",CALL)) D CHECK(CALL,LIMITNUM,LIMITDTO,LIMITDFM,.LIMIT,.LCNT,.COUNT) | 
|---|
| 41 | .E  D | 
|---|
| 42 | ..S (LIMIT,LCNT)=0,CALL="A" F  S CALL=$O(@RLIST@(CALL),-1) Q:CALL<1  D  Q:LIMIT  Q:COUNT'<MAX | 
|---|
| 43 | ...I '$D(^TMP("FSC CURRENT LIST",$J,"C",CALL)) D CHECK(CALL,LIMITNUM,LIMITDTO,LIMITDFM,.LIMIT,.LCNT,.COUNT) | 
|---|
| 44 | D OUTPUT | 
|---|
| 45 | Q | 
|---|
| 46 | ; | 
|---|
| 47 | CHECK(CALL,LIMITNUM,LIMITDTO,LIMITDFM,LIMIT,LCNT,COUNT) ; | 
|---|
| 48 | N DATEO | 
|---|
| 49 | I LIMITNUM D | 
|---|
| 50 | .I LCNT'<LIMITNUM S LIMIT=1 | 
|---|
| 51 | .E  D SETUP(CALL,.COUNT) | 
|---|
| 52 | E  I LIMITDTO!LIMITDFM D | 
|---|
| 53 | .S DATEO=$P(^FSCD("CALL",CALL,0),U,3) | 
|---|
| 54 | .I DATEO<LIMITDFM Q | 
|---|
| 55 | .I DATEO>LIMITDTO Q | 
|---|
| 56 | .D SETUP(CALL,.COUNT) | 
|---|
| 57 | E  D SETUP(CALL,.COUNT) | 
|---|
| 58 | S LCNT=LCNT+1 | 
|---|
| 59 | Q | 
|---|
| 60 | ; | 
|---|
| 61 | SETUP(CALL,COUNT) ; from FSCRPCQ, FSCRPCR, FSCRPCS | 
|---|
| 62 | N LNUM | 
|---|
| 63 | S COUNT=COUNT+1 | 
|---|
| 64 | S LNUM=1+$O(^TMP("FSC CURRENT LIST",$J,"A"),-1) | 
|---|
| 65 | I LNUM<1000 S LNUM=LNUM+1000 | 
|---|
| 66 | S ^TMP("FSC CURRENT LIST",$J,LNUM)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ) | 
|---|
| 67 | S ^TMP("FSC CURRENT LIST",$J,"C",CALL)=LNUM | 
|---|
| 68 | Q | 
|---|
| 69 | ; | 
|---|
| 70 | LIST(LIST,INDX,RLIST,OK) ; from FSCRPCR, FSCRPCS | 
|---|
| 71 | N L0,LNAME S OK=1 | 
|---|
| 72 | S L0=$G(^FSC("LIST",LIST,0)) | 
|---|
| 73 | I '$L(L0) S OK=0 Q | 
|---|
| 74 | S LNAME=$P(L0,U) | 
|---|
| 75 | I $L($P(L0,U,4)),'$P(L0,U,5) S RLIST="^FSCD(""CALL"","_$P(L0,U,4)_")" | 
|---|
| 76 | E  I $L($P(L0,U,4)),INDX S RLIST="^FSCD(""CALL"","_$P(L0,U,4)_","_INDX_")" | 
|---|
| 77 | E  I $P(L0,U,3)="M" D | 
|---|
| 78 | .S RLIST="^FSCD(""FSC MLC"","_$J_","_LIST_")" | 
|---|
| 79 | .D MANUAL^FSCLP(LIST) | 
|---|
| 80 | .K ^TMP("FSC LIST",$J) | 
|---|
| 81 | E  S RLIST="^FSCD(""LISTS"",""ALC"","_LIST_")" | 
|---|
| 82 | ;D MRU^FSCMR(DUZ,LIST,INDX) | 
|---|
| 83 | Q | 
|---|
| 84 | ; | 
|---|
| 85 | CALLS(IN,OUT) ; from FSCRPX (RPCAddCalls) | 
|---|
| 86 | N CALL,NEWNUM,NUM | 
|---|
| 87 | S NEWNUM=+$O(^TMP("FSC CURRENT LIST",$J,"A"),-1) | 
|---|
| 88 | I NEWNUM<1000 S NEWNUM=NEWNUM+1000 | 
|---|
| 89 | S NUM=0 F  S NUM=$O(^TMP("FSCRPC",$J,"INPUT",NUM)) Q:NUM<1  S CALL=+^(NUM) D | 
|---|
| 90 | .I '$D(^TMP("FSC CURRENT LIST",$J,"C",CALL)) D | 
|---|
| 91 | ..S NEWNUM=NEWNUM+1 | 
|---|
| 92 | ..S ^TMP("FSC CURRENT LIST",$J,NEWNUM)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ) | 
|---|
| 93 | ..S ^TMP("FSC CURRENT LIST",$J,"C",CALL)=NEWNUM | 
|---|
| 94 | D OUTPUT | 
|---|
| 95 | Q | 
|---|
| 96 | ; | 
|---|
| 97 | OUTPUT ; from FSCRPCAP, FSCRPCD, FSCRPCQ, FSCRPCR, FSCRPCS | 
|---|
| 98 | N NUM | 
|---|
| 99 | S NUM=0 F  S NUM=$O(^TMP("FSC CURRENT LIST",$J,NUM)) Q:NUM<1  S ^TMP("FSCRPC",$J,"OUTPUT",NUM)=^(NUM) | 
|---|
| 100 | Q | 
|---|
| 101 | ; | 
|---|
| 102 | INSERT(IN,OUT) ; from FSCRPCX (RPCInsertCall) | 
|---|
| 103 | N CALL,LNUM,NEWNUM | 
|---|
| 104 | S CALL=+^TMP("FSCRPC",$J,"INPUT",1) | 
|---|
| 105 | I 'CALL Q | 
|---|
| 106 | S LNUM=+$O(^TMP("FSC CURRENT LIST",$J,0)) | 
|---|
| 107 | I LNUM<1 S NEWNUM=1000 | 
|---|
| 108 | E  S NEWNUM=LNUM-1 | 
|---|
| 109 | F  Q:'$D(^TMP("FSC CURRENT LIST",$J,NEWNUM))  S NEWNUM=NEWNUM-1 | 
|---|
| 110 | I NEWNUM<1 Q | 
|---|
| 111 | S ^TMP("FSC CURRENT LIST",$J,NEWNUM)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ) | 
|---|
| 112 | S ^TMP("FSC CURRENT LIST",$J,"C",CALL)=NEWNUM | 
|---|
| 113 | Q | 
|---|