[613] | 1 | FSCRPCD ;SLC/STAFF-NOIS RPC Duplicates ;4/28/98 12:15
|
---|
| 2 | ;;1.1;NOIS;;Sep 06, 1998
|
---|
| 3 | ;
|
---|
| 4 | ASSOC(IN,OUT) ; from FSCRPX (RPCAssociate)
|
---|
| 5 | N CALL1,CALL2
|
---|
| 6 | S CALL1=+$G(^TMP("FSCRPC",$J,"INPUT",1)),CALL2=+$P($G(^(1)),U,2)
|
---|
| 7 | D ASSOC^FSCLMPEA(CALL1,CALL2)
|
---|
| 8 | Q
|
---|
| 9 | ;
|
---|
| 10 | EXPAND(IN,OUT) ; from FSCRPX (RPCExpand)
|
---|
| 11 | N CALL,NEWNUM,PRIMARY,SECOND K ^TMP("FSC MERGE",$J)
|
---|
| 12 | M ^TMP("FSC MERGE",$J)=^TMP("FSC CURRENT LIST",$J,"C")
|
---|
| 13 | K ^TMP("FSC CURRENT LIST",$J)
|
---|
| 14 | S CALL=0 F S CALL=$O(^TMP("FSC MERGE",$J,CALL)) Q:CALL<1 D
|
---|
| 15 | .S PRIMARY=+$P($G(^FSCD("CALL",CALL,120)),U,24) I 'PRIMARY Q
|
---|
| 16 | .S ^TMP("FSC MERGE",$J,"CX",PRIMARY)=""
|
---|
| 17 | S CALL=0 F S CALL=$O(^TMP("FSC MERGE",$J,"CX",CALL)) Q:CALL<1 D
|
---|
| 18 | .S ^TMP("FSC MERGE",$J,CALL)=""
|
---|
| 19 | S CALL=0 F S CALL=$O(^TMP("FSC MERGE",$J,"CX",CALL)) Q:CALL<1 D
|
---|
| 20 | .S SECOND=0 F S SECOND=$O(^FSCD("CALL","APRIMARY",CALL,SECOND)) Q:SECOND<1 D
|
---|
| 21 | ..S ^TMP("FSC MERGE",$J,SECOND)=""
|
---|
| 22 | S NEWNUM=0
|
---|
| 23 | S CALL="A" F S CALL=$O(^TMP("FSC MERGE",$J,CALL),-1) Q:CALL="" D
|
---|
| 24 | .S NEWNUM=NEWNUM+1
|
---|
| 25 | .S ^TMP("FSC CURRENT LIST",$J,NEWNUM)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
|
---|
| 26 | .S ^TMP("FSC CURRENT LIST",$J,"C",CALL)=NEWNUM
|
---|
| 27 | D OUTPUT^FSCRPCA
|
---|
| 28 | K ^TMP("FSC MERGE",$J)
|
---|
| 29 | Q
|
---|
| 30 | ;
|
---|
| 31 | COLLAPSE(IN,OUT) ; from FSCRPX (RPCCollapse)
|
---|
| 32 | N CALL,NEWNUM,PRIMARY K ^TMP("FSC MERGE",$J)
|
---|
| 33 | M ^TMP("FSC MERGE",$J,"C")=^TMP("FSC CURRENT LIST",$J,"C")
|
---|
| 34 | K ^TMP("FSC CURRENT LIST",$J)
|
---|
| 35 | S CALL=0 F S CALL=$O(^TMP("FSC MERGE",$J,"C",CALL)) Q:CALL<1 D
|
---|
| 36 | .S PRIMARY=+$P($G(^FSCD("CALL",CALL,120)),U,24) I 'PRIMARY Q
|
---|
| 37 | .S ^TMP("FSC MERGE",$J,PRIMARY)=""
|
---|
| 38 | S NEWNUM=0
|
---|
| 39 | S CALL="A" F S CALL=$O(^TMP("FSC MERGE",$J,CALL),-1) Q:CALL="" D
|
---|
| 40 | .S NEWNUM=NEWNUM+1
|
---|
| 41 | .S ^TMP("FSC CURRENT LIST",$J,NEWNUM)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
|
---|
| 42 | .S ^TMP("FSC CURRENT LIST",$J,"C",CALL)=NEWNUM
|
---|
| 43 | D OUTPUT^FSCRPCA
|
---|
| 44 | K ^TMP("FSC MERGE",$J)
|
---|
| 45 | Q
|
---|
| 46 | ;
|
---|
| 47 | EXPCALL(IN,OUT) ; from FSCRPX (RPCExpandCall)
|
---|
| 48 | N CALL,CNT,GETCALL,NEWNUM,PRIMARY K ^TMP("FSC MERGE",$J)
|
---|
| 49 | S GETCALL=+$G(^TMP("FSCRPC",$J,"INPUT",1))
|
---|
| 50 | I 'GETCALL Q
|
---|
| 51 | S PRIMARY=+$P($G(^FSCD("CALL",GETCALL,120)),U,24)
|
---|
| 52 | I 'PRIMARY Q
|
---|
| 53 | I GETCALL=PRIMARY,'$O(^FSCD("CALL","APRIMARY",PRIMARY,0)) Q
|
---|
| 54 | S NEWNUM=+$O(^TMP("FSC CURRENT LIST",$J,"A"),-1)
|
---|
| 55 | I NEWNUM<1000 S NEWNUM=NEWNUM+1000
|
---|
| 56 | I '$D(^TMP("FSC CURRENT LIST",$J,"C",PRIMARY)) D
|
---|
| 57 | .S NEWNUM=NEWNUM+1
|
---|
| 58 | .S ^TMP("FSC CURRENT LIST",$J,NEWNUM)=PRIMARY_U_$$SHORT^FSCRPXUS(PRIMARY,DUZ)
|
---|
| 59 | .S ^TMP("FSC CURRENT LIST",$J,"C",PRIMARY)=NEWNUM
|
---|
| 60 | .S ^TMP("FSC MERGE",$J,PRIMARY)=""
|
---|
| 61 | S CALL=0 F S CALL=$O(^FSCD("CALL","APRIMARY",PRIMARY,CALL)) Q:CALL<1 D
|
---|
| 62 | .I '$D(^TMP("FSC CURRENT LIST",$J,"C",CALL)) D
|
---|
| 63 | ..S NEWNUM=NEWNUM+1
|
---|
| 64 | ..S ^TMP("FSC CURRENT LIST",$J,NEWNUM)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
|
---|
| 65 | ..S ^TMP("FSC CURRENT LIST",$J,"C",CALL)=NEWNUM
|
---|
| 66 | ..S ^TMP("FSC MERGE",$J,CALL)=""
|
---|
| 67 | S CNT=0
|
---|
| 68 | S CALL=0 F S CALL=$O(^TMP("FSC MERGE",$J,CALL)) Q:CALL<1 D
|
---|
| 69 | .S CNT=CNT+1
|
---|
| 70 | .S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
|
---|
| 71 | K ^TMP("FSC MERGE",$J)
|
---|
| 72 | Q
|
---|
| 73 | ;
|
---|
| 74 | DUPCALL(IN,OUT) ; from FSCRPX (RPCDuplicateOfCall)
|
---|
| 75 | N CALL,CNT,GETCALL,PRIMARY
|
---|
| 76 | S GETCALL=+$G(^TMP("FSCRPC",$J,"INPUT",1))
|
---|
| 77 | I 'GETCALL Q
|
---|
| 78 | S PRIMARY=+$P($G(^FSCD("CALL",GETCALL,120)),U,24)
|
---|
| 79 | I 'PRIMARY Q
|
---|
| 80 | K ^TMP("FSC CURRENT LIST",$J)
|
---|
| 81 | S CNT=1
|
---|
| 82 | S ^TMP("FSC CURRENT LIST",$J,CNT)=PRIMARY_U_$$SHORT^FSCRPXUS(PRIMARY,DUZ)
|
---|
| 83 | S ^TMP("FSC CURRENT LIST",$J,"C",PRIMARY)=CNT
|
---|
| 84 | S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=PRIMARY_U_$$SHORT^FSCRPXUS(PRIMARY,DUZ)
|
---|
| 85 | S CALL=0 F S CALL=$O(^FSCD("CALL","APRIMARY",PRIMARY,CALL)) Q:CALL<1 D
|
---|
| 86 | .S CNT=CNT+1
|
---|
| 87 | .S ^TMP("FSC CURRENT LIST",$J,CNT)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
|
---|
| 88 | .S ^TMP("FSC CURRENT LIST",$J,"C",CALL)=CNT
|
---|
| 89 | .S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
|
---|
| 90 | Q
|
---|
| 91 | ;
|
---|
| 92 | DUPHIST(IN,OUT) ; from FSCRPX (RPCDuplicateHistory)
|
---|
| 93 | N CALL,CALLID,CNT,LINE,NUM
|
---|
| 94 | S CALL=+$G(^TMP("FSCRPC",$J,"INPUT",1))
|
---|
| 95 | S CALLID=$P($G(^FSCD("CALL",CALL,0)),U) I '$L(CALLID) Q
|
---|
| 96 | S CNT=1
|
---|
| 97 | S ^TMP("FSCRPC",$J,"OUTPUT",CNT)="Primary call: "_CALLID
|
---|
| 98 | S NUM=0 F S NUM=$O(^FSCD("CALL",CALL,103,NUM)) Q:NUM<1 S LINE=$G(^(NUM,0)) D
|
---|
| 99 | .S CNT=CNT+1
|
---|
| 100 | .S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=LINE
|
---|
| 101 | Q
|
---|
| 102 | ;
|
---|
| 103 | LOADTREE(IN,OUT) ; from FSCRPX (RPCLoadTree)
|
---|
| 104 | N CALL,CNT,PRIMARY,SECOND K ^TMP("FSC MERGE",$J)
|
---|
| 105 | S CALL=0 F S CALL=$O(^TMP("FSC CURRENT LIST",$J,"C",CALL)) Q:CALL<1 D
|
---|
| 106 | .S PRIMARY=+$P($G(^FSCD("CALL",CALL,120)),U,24) I 'PRIMARY Q
|
---|
| 107 | .S ^TMP("FSC MERGE",$J,PRIMARY,.5)=PRIMARY_U_PRIMARY_U_$$TEXTID(PRIMARY)
|
---|
| 108 | .S SECOND=0 F S SECOND=$O(^FSCD("CALL","APRIMARY",PRIMARY,SECOND)) Q:SECOND<1 D
|
---|
| 109 | ..I $D(^TMP("FSC MERGE",$J,PRIMARY,SECOND)) Q
|
---|
| 110 | ..S ^TMP("FSC MERGE",$J,PRIMARY,SECOND)=PRIMARY_U_SECOND_U_$$TEXTID(SECOND)
|
---|
| 111 | S CNT=0,PRIMARY="A" F S PRIMARY=$O(^TMP("FSC MERGE",$J,PRIMARY),-1) Q:PRIMARY="" D
|
---|
| 112 | .S SECOND=0 F S SECOND=$O(^TMP("FSC MERGE",$J,PRIMARY,SECOND)) Q:SECOND<.5 D
|
---|
| 113 | ..S CNT=CNT+1,^TMP("FSCRPC",$J,"OUTPUT",CNT)=^TMP("FSC MERGE",$J,PRIMARY,SECOND)
|
---|
| 114 | K ^TMP("FSC MERGE",$J)
|
---|
| 115 | Q
|
---|
| 116 | ;
|
---|
| 117 | TEXTID(CALL) ; $$(call) -> text for tree display
|
---|
| 118 | Q $P(^FSCD("CALL",CALL,0),U)_" "_$G(^FSCD("CALL",CALL,1))
|
---|
| 119 | ;
|
---|
| 120 | SAVETREE(IN,OUT) ; from FSCRPX (RPCSaveTree)
|
---|
| 121 | N CALL1,CALL2,LINE,NUM
|
---|
| 122 | S NUM=0 F S NUM=$O(^TMP("FSCRPC",$J,"INPUT",NUM)) Q:NUM<1 S LINE=^(NUM) D
|
---|
| 123 | .S CALL1=$P(LINE,U),CALL2=$P(LINE,U,2)
|
---|
| 124 | .I $P($G(^FSCD("CALL",CALL2,120)),U,24)=CALL1 Q
|
---|
| 125 | .D SETUP^FSCLMPEA(CALL2,CALL1)
|
---|
| 126 | Q
|
---|
| 127 | ;
|
---|
| 128 | TEST ;
|
---|
| 129 | D LOADTREE(.IN,.OUT)
|
---|
| 130 | Q
|
---|