[613] | 1 | FSCQR ;SLC/STAFF-NOIS Query Routing ;1/11/98 18:46
|
---|
| 2 | ;;1.1;NOIS;;Sep 06, 1998
|
---|
| 3 | ;
|
---|
| 4 | QUERY(LIST,LISTCNT,CRITERIA) ; from FSCLP, FSCQB, FSCRPCQ
|
---|
| 5 | ; ***make lists globals
|
---|
| 6 | N NEWCALL,NEWSTEP,OP,SEQNUM
|
---|
| 7 | S OP=$P(CRITERIA(0),U)
|
---|
| 8 | I OP="Add" D Q
|
---|
| 9 | .I $P(CRITERIA(0),U,2)>1,$P(CRITERIA(0),U,2)<4 D Q ;*** test when multiple passes better than all calls
|
---|
| 10 | ..S $P(CRITERIA(0),U,2)=1
|
---|
| 11 | ..S NEWSTEP=0 F S NEWSTEP=$O(CRITERIA(NEWSTEP)) Q:NEWSTEP<1 D
|
---|
| 12 | ...K ^TMP("FSC USELIST",$J)
|
---|
| 13 | ...D SEARCH^FSCQS(0,.CRITERIA)
|
---|
| 14 | ...S NEWCALL=0 F S NEWCALL=$O(^TMP("FSC NEWLIST",$J,NEWCALL)) Q:NEWCALL<1 S ^TMP("FSC LIST",$J,NEWCALL,0)=NEWCALL
|
---|
| 15 | ...S LISTCNT=$$COUNT
|
---|
| 16 | ...K CRITERIA(NEWSTEP)
|
---|
| 17 | ...S SEQNUM=0 F S SEQNUM=$O(CRITERIA("O",SEQNUM)) Q:SEQNUM<1 I CRITERIA("O",SEQNUM)=NEWSTEP K CRITERIA("O",SEQNUM) Q
|
---|
| 18 | .K ^TMP("FSC USELIST",$J)
|
---|
| 19 | .D SEARCH^FSCQS(0,.CRITERIA)
|
---|
| 20 | .S NEWCALL=0 F S NEWCALL=$O(^TMP("FSC NEWLIST",$J,NEWCALL)) Q:NEWCALL<1 S ^TMP("FSC LIST",$J,NEWCALL,0)=NEWCALL
|
---|
| 21 | .S LISTCNT=$$COUNT
|
---|
| 22 | I OP="Remove" D Q
|
---|
| 23 | .I LISTCNT=0 Q
|
---|
| 24 | .K ^TMP("FSC USELIST",$J) S NEWCALL=0 F S NEWCALL=$O(^TMP("FSC LIST",$J,NEWCALL)) Q:NEWCALL<1 S ^TMP("FSC USELIST",$J,NEWCALL)=""
|
---|
| 25 | .D SEARCH^FSCQS(LISTCNT,.CRITERIA)
|
---|
| 26 | .S NEWCALL=0 F S NEWCALL=$O(^TMP("FSC NEWLIST",$J,NEWCALL)) Q:NEWCALL<1 K ^TMP("FSC LIST",$J,NEWCALL)
|
---|
| 27 | .S LISTCNT=$$COUNT
|
---|
| 28 | ; select
|
---|
| 29 | I LISTCNT=0 Q
|
---|
| 30 | K ^TMP("FSC USELIST",$J),LIST S NEWCALL=0 F S NEWCALL=$O(^TMP("FSC LIST",$J,NEWCALL)) Q:NEWCALL<1 S ^TMP("FSC USELIST",$J,NEWCALL)=""
|
---|
| 31 | D SEARCH^FSCQS(LISTCNT,.CRITERIA)
|
---|
| 32 | K ^TMP("FSC LIST",$J),LIST
|
---|
| 33 | S NEWCALL=0 F S NEWCALL=$O(^TMP("FSC NEWLIST",$J,NEWCALL)) Q:NEWCALL<1 S ^TMP("FSC LIST",$J,NEWCALL,0)=NEWCALL
|
---|
| 34 | S LISTCNT=$$COUNT
|
---|
| 35 | Q
|
---|
| 36 | ;
|
---|
| 37 | COUNT() ; $$() -> number of calls in list
|
---|
| 38 | N CALL,CNT S (CALL,CNT)=0 F S CALL=$O(^TMP("FSC LIST",$J,CALL)) Q:CALL<1 S CNT=CNT+1
|
---|
| 39 | Q CNT
|
---|