Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: FSCRPCD

FSCRPCD.m

Go to the documentation of this file.
  1. FSCRPCD ;SLC/STAFF-NOIS RPC Duplicates ;4/28/98 12:15
  1. ;;1.1;NOIS;;Sep 06, 1998
  1. ;
  1. ASSOC(IN,OUT) ; from FSCRPX (RPCAssociate)
  1. N CALL1,CALL2
  1. S CALL1=+$G(^TMP("FSCRPC",$J,"INPUT",1)),CALL2=+$P($G(^(1)),U,2)
  1. D ASSOC^FSCLMPEA(CALL1,CALL2)
  1. Q
  1. ;
  1. EXPAND(IN,OUT) ; from FSCRPX (RPCExpand)
  1. N CALL,NEWNUM,PRIMARY,SECOND K ^TMP("FSC MERGE",$J)
  1. M ^TMP("FSC MERGE",$J)=^TMP("FSC CURRENT LIST",$J,"C")
  1. K ^TMP("FSC CURRENT LIST",$J)
  1. S CALL=0 F S CALL=$O(^TMP("FSC MERGE",$J,CALL)) Q:CALL<1 D
  1. .S PRIMARY=+$P($G(^FSCD("CALL",CALL,120)),U,24) I 'PRIMARY Q
  1. .S ^TMP("FSC MERGE",$J,"CX",PRIMARY)=""
  1. S CALL=0 F S CALL=$O(^TMP("FSC MERGE",$J,"CX",CALL)) Q:CALL<1 D
  1. .S ^TMP("FSC MERGE",$J,CALL)=""
  1. S CALL=0 F S CALL=$O(^TMP("FSC MERGE",$J,"CX",CALL)) Q:CALL<1 D
  1. .S SECOND=0 F S SECOND=$O(^FSCD("CALL","APRIMARY",CALL,SECOND)) Q:SECOND<1 D
  1. ..S ^TMP("FSC MERGE",$J,SECOND)=""
  1. S NEWNUM=0
  1. S CALL="A" F S CALL=$O(^TMP("FSC MERGE",$J,CALL),-1) Q:CALL="" D
  1. .S NEWNUM=NEWNUM+1
  1. .S ^TMP("FSC CURRENT LIST",$J,NEWNUM)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
  1. .S ^TMP("FSC CURRENT LIST",$J,"C",CALL)=NEWNUM
  1. D OUTPUT^FSCRPCA
  1. K ^TMP("FSC MERGE",$J)
  1. Q
  1. ;
  1. COLLAPSE(IN,OUT) ; from FSCRPX (RPCCollapse)
  1. N CALL,NEWNUM,PRIMARY K ^TMP("FSC MERGE",$J)
  1. M ^TMP("FSC MERGE",$J,"C")=^TMP("FSC CURRENT LIST",$J,"C")
  1. K ^TMP("FSC CURRENT LIST",$J)
  1. S CALL=0 F S CALL=$O(^TMP("FSC MERGE",$J,"C",CALL)) Q:CALL<1 D
  1. .S PRIMARY=+$P($G(^FSCD("CALL",CALL,120)),U,24) I 'PRIMARY Q
  1. .S ^TMP("FSC MERGE",$J,PRIMARY)=""
  1. S NEWNUM=0
  1. S CALL="A" F S CALL=$O(^TMP("FSC MERGE",$J,CALL),-1) Q:CALL="" D
  1. .S NEWNUM=NEWNUM+1
  1. .S ^TMP("FSC CURRENT LIST",$J,NEWNUM)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
  1. .S ^TMP("FSC CURRENT LIST",$J,"C",CALL)=NEWNUM
  1. D OUTPUT^FSCRPCA
  1. K ^TMP("FSC MERGE",$J)
  1. Q
  1. ;
  1. EXPCALL(IN,OUT) ; from FSCRPX (RPCExpandCall)
  1. N CALL,CNT,GETCALL,NEWNUM,PRIMARY K ^TMP("FSC MERGE",$J)
  1. S GETCALL=+$G(^TMP("FSCRPC",$J,"INPUT",1))
  1. I 'GETCALL Q
  1. S PRIMARY=+$P($G(^FSCD("CALL",GETCALL,120)),U,24)
  1. I 'PRIMARY Q
  1. I GETCALL=PRIMARY,'$O(^FSCD("CALL","APRIMARY",PRIMARY,0)) Q
  1. S NEWNUM=+$O(^TMP("FSC CURRENT LIST",$J,"A"),-1)
  1. I NEWNUM<1000 S NEWNUM=NEWNUM+1000
  1. I '$D(^TMP("FSC CURRENT LIST",$J,"C",PRIMARY)) D
  1. .S NEWNUM=NEWNUM+1
  1. .S ^TMP("FSC CURRENT LIST",$J,NEWNUM)=PRIMARY_U_$$SHORT^FSCRPXUS(PRIMARY,DUZ)
  1. .S ^TMP("FSC CURRENT LIST",$J,"C",PRIMARY)=NEWNUM
  1. .S ^TMP("FSC MERGE",$J,PRIMARY)=""
  1. S CALL=0 F S CALL=$O(^FSCD("CALL","APRIMARY",PRIMARY,CALL)) Q:CALL<1 D
  1. .I '$D(^TMP("FSC CURRENT LIST",$J,"C",CALL)) D
  1. ..S NEWNUM=NEWNUM+1
  1. ..S ^TMP("FSC CURRENT LIST",$J,NEWNUM)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
  1. ..S ^TMP("FSC CURRENT LIST",$J,"C",CALL)=NEWNUM
  1. ..S ^TMP("FSC MERGE",$J,CALL)=""
  1. S CNT=0
  1. S CALL=0 F S CALL=$O(^TMP("FSC MERGE",$J,CALL)) Q:CALL<1 D
  1. .S CNT=CNT+1
  1. .S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
  1. K ^TMP("FSC MERGE",$J)
  1. Q
  1. ;
  1. DUPCALL(IN,OUT) ; from FSCRPX (RPCDuplicateOfCall)
  1. N CALL,CNT,GETCALL,PRIMARY
  1. S GETCALL=+$G(^TMP("FSCRPC",$J,"INPUT",1))
  1. I 'GETCALL Q
  1. S PRIMARY=+$P($G(^FSCD("CALL",GETCALL,120)),U,24)
  1. I 'PRIMARY Q
  1. K ^TMP("FSC CURRENT LIST",$J)
  1. S CNT=1
  1. S ^TMP("FSC CURRENT LIST",$J,CNT)=PRIMARY_U_$$SHORT^FSCRPXUS(PRIMARY,DUZ)
  1. S ^TMP("FSC CURRENT LIST",$J,"C",PRIMARY)=CNT
  1. S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=PRIMARY_U_$$SHORT^FSCRPXUS(PRIMARY,DUZ)
  1. S CALL=0 F S CALL=$O(^FSCD("CALL","APRIMARY",PRIMARY,CALL)) Q:CALL<1 D
  1. .S CNT=CNT+1
  1. .S ^TMP("FSC CURRENT LIST",$J,CNT)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
  1. .S ^TMP("FSC CURRENT LIST",$J,"C",CALL)=CNT
  1. .S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
  1. Q
  1. ;
  1. DUPHIST(IN,OUT) ; from FSCRPX (RPCDuplicateHistory)
  1. N CALL,CALLID,CNT,LINE,NUM
  1. S CALL=+$G(^TMP("FSCRPC",$J,"INPUT",1))
  1. S CALLID=$P($G(^FSCD("CALL",CALL,0)),U) I '$L(CALLID) Q
  1. S CNT=1
  1. S ^TMP("FSCRPC",$J,"OUTPUT",CNT)="Primary call: "_CALLID
  1. S NUM=0 F S NUM=$O(^FSCD("CALL",CALL,103,NUM)) Q:NUM<1 S LINE=$G(^(NUM,0)) D
  1. .S CNT=CNT+1
  1. .S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=LINE
  1. Q
  1. ;
  1. LOADTREE(IN,OUT) ; from FSCRPX (RPCLoadTree)
  1. N CALL,CNT,PRIMARY,SECOND K ^TMP("FSC MERGE",$J)
  1. S CALL=0 F S CALL=$O(^TMP("FSC CURRENT LIST",$J,"C",CALL)) Q:CALL<1 D
  1. .S PRIMARY=+$P($G(^FSCD("CALL",CALL,120)),U,24) I 'PRIMARY Q
  1. .S ^TMP("FSC MERGE",$J,PRIMARY,.5)=PRIMARY_U_PRIMARY_U_$$TEXTID(PRIMARY)
  1. .S SECOND=0 F S SECOND=$O(^FSCD("CALL","APRIMARY",PRIMARY,SECOND)) Q:SECOND<1 D
  1. ..I $D(^TMP("FSC MERGE",$J,PRIMARY,SECOND)) Q
  1. ..S ^TMP("FSC MERGE",$J,PRIMARY,SECOND)=PRIMARY_U_SECOND_U_$$TEXTID(SECOND)
  1. S CNT=0,PRIMARY="A" F S PRIMARY=$O(^TMP("FSC MERGE",$J,PRIMARY),-1) Q:PRIMARY="" D
  1. .S SECOND=0 F S SECOND=$O(^TMP("FSC MERGE",$J,PRIMARY,SECOND)) Q:SECOND<.5 D
  1. ..S CNT=CNT+1,^TMP("FSCRPC",$J,"OUTPUT",CNT)=^TMP("FSC MERGE",$J,PRIMARY,SECOND)
  1. K ^TMP("FSC MERGE",$J)
  1. Q
  1. ;
  1. TEXTID(CALL) ; $$(call) -> text for tree display
  1. Q $P(^FSCD("CALL",CALL,0),U)_" "_$G(^FSCD("CALL",CALL,1))
  1. ;
  1. SAVETREE(IN,OUT) ; from FSCRPX (RPCSaveTree)
  1. N CALL1,CALL2,LINE,NUM
  1. S NUM=0 F S NUM=$O(^TMP("FSCRPC",$J,"INPUT",NUM)) Q:NUM<1 S LINE=^(NUM) D
  1. .S CALL1=$P(LINE,U),CALL2=$P(LINE,U,2)
  1. .I $P($G(^FSCD("CALL",CALL2,120)),U,24)=CALL1 Q
  1. .D SETUP^FSCLMPEA(CALL2,CALL1)
  1. Q
  1. ;
  1. TEST ;
  1. D LOADTREE(.IN,.OUT)
  1. Q