| 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
 | 
|---|