| 1 | FSCRPCLL ;SLC/STAFF-NOIS RPC List Long ;4/4/98  17:56
 | 
|---|
| 2 |  ;;1.1;NOIS;;Sep 06, 1998
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | FILE(IN,OUT) ; from FSCRPX (RPCStaticFile)
 | 
|---|
| 5 |  N DIR,FILE,FROM,LINE
 | 
|---|
| 6 |  S LINE=$G(^TMP("FSCRPC",$J,"INPUT",1)),FILE=$P(LINE,U),FROM=$P(LINE,U,2),DIR=$P(LINE,U,3)
 | 
|---|
| 7 |  I '$L(FILE) Q
 | 
|---|
| 8 |  S FROM=$$FROM(FROM,FILE)
 | 
|---|
| 9 |  I $E(FROM,$L(FROM)-1,$L(FROM))="`~" S $E(FROM,$L(FROM)-1,$L(FROM))="@~"
 | 
|---|
| 10 |  I FILE="LOC" D LOC(FROM,DIR) Q
 | 
|---|
| 11 |  I FILE="ACLLOC" D ACLLOC(FROM,DIR) Q
 | 
|---|
| 12 |  I FILE="MOD" D MOD(FROM,DIR) Q
 | 
|---|
| 13 |  I FILE="ACLMOD" D ACLMOD(FROM,DIR) Q
 | 
|---|
| 14 |  I FILE="PACK" D PACK(FROM,DIR) Q
 | 
|---|
| 15 |  I FILE="ACLPACK" D ACLPACK(FROM,DIR) Q
 | 
|---|
| 16 |  I FILE="MAILGP" D MAILGP(FROM,DIR) Q
 | 
|---|
| 17 |  I FILE="PATCH" D PATCH(FROM,DIR) Q
 | 
|---|
| 18 |  I FILE="USER" D USER(FROM,DIR) Q
 | 
|---|
| 19 |  I FILE="LIST" D LIST(FROM,DIR) Q
 | 
|---|
| 20 |  I FILE="CALL" D CALL(FROM,DIR) Q
 | 
|---|
| 21 |  Q
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 | LOC(FROM,DIR) ;
 | 
|---|
| 24 |  N IEN,CNT,NUM,ZERO S CNT=44,NUM=0
 | 
|---|
| 25 |  F  Q:NUM>CNT  S FROM=$O(^FSC("SITE","B",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 26 |  .S IEN=0 F  S IEN=$O(^FSC("SITE","B",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 27 |  ..S ZERO=$G(^FSC("SITE",IEN,0)) Q:'$L(ZERO)  Q:$P(ZERO,U,2)
 | 
|---|
| 28 |  ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_ZERO
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 | ACLLOC(FROM,DIR) ;
 | 
|---|
| 32 |  N IEN,IEN1,CNT,NUM,TEXT,ZERO S CNT=44,NUM=0
 | 
|---|
| 33 |  S FROM=$$UP^XLFSTR(FROM)
 | 
|---|
| 34 |  F  Q:NUM>CNT  S FROM=$O(^FSC("SITE","ACL",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 35 |  .S IEN=0 F  S IEN=$O(^FSC("SITE","ACL",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 36 |  ..S ZERO=$G(^FSC("SITE",IEN,0)) Q:'$L(ZERO)  Q:$P(ZERO,U,2)
 | 
|---|
| 37 |  ..S IEN1=0 F  S IEN1=$O(^FSC("SITE","ACL",FROM,IEN,IEN1)) Q:IEN1<1  D
 | 
|---|
| 38 |  ...S TEXT=$G(^FSC("SITE",IEN,99,IEN1,0)) Q:'$L(TEXT)
 | 
|---|
| 39 |  ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_TEXT_U_$P(ZERO,U,2,99)
 | 
|---|
| 40 |  Q
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 | ACLMOD(FROM,DIR) ;
 | 
|---|
| 43 |  N IEN,IEN1,CNT,NUM,TEXT,ZERO S CNT=44,NUM=0
 | 
|---|
| 44 |  S FROM=$$UP^XLFSTR(FROM)
 | 
|---|
| 45 |  F  Q:NUM>CNT  S FROM=$O(^FSC("MOD","ACL",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 46 |  .S IEN=0 F  S IEN=$O(^FSC("MOD","ACL",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 47 |  ..S ZERO=$G(^FSC("MOD",IEN,0)) Q:'$L(ZERO)  Q:$P(ZERO,U,2)
 | 
|---|
| 48 |  ..S IEN1=0 F  S IEN1=$O(^FSC("MOD","ACL",FROM,IEN,IEN1)) Q:IEN1<1  D
 | 
|---|
| 49 |  ...S TEXT=$G(^FSC("MOD",IEN,99,IEN1,0)) Q:'$L(TEXT)
 | 
|---|
| 50 |  ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_TEXT_U_$P(ZERO,U,2,99)
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 | MOD(FROM,DIR) ;
 | 
|---|
| 54 |  N IEN,CNT,NUM,ZERO S CNT=44,NUM=0
 | 
|---|
| 55 |  F  Q:NUM>CNT  S FROM=$O(^FSC("MOD","B",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 56 |  .S IEN=0 F  S IEN=$O(^FSC("MOD","B",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 57 |  ..S ZERO=$G(^FSC("MOD",IEN,0)) Q:'$L(ZERO)  Q:$P(ZERO,U,2)
 | 
|---|
| 58 |  ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_ZERO
 | 
|---|
| 59 |  Q
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | PACK(FROM,DIR) ;
 | 
|---|
| 62 |  N IEN,CNT,NUM S CNT=44,NUM=0
 | 
|---|
| 63 |  F  Q:NUM>CNT  S FROM=$O(^FSC("PACK","B",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 64 |  .S IEN=0 F  S IEN=$O(^FSC("PACK","B",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 65 |  ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("PACK",IEN,0))
 | 
|---|
| 66 |  Q
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 | ACLPACK(FROM,DIR) ;
 | 
|---|
| 69 |  N IEN,IEN1,CNT,NUM,TEXT,ZERO S CNT=44,NUM=0
 | 
|---|
| 70 |  S FROM=$$UP^XLFSTR(FROM)
 | 
|---|
| 71 |  F  Q:NUM>CNT  S FROM=$O(^FSC("MOD","ACL",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 72 |  .S IEN=0 F  S IEN=$O(^FSC("MOD","ACL",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 73 |  ..S ZERO=$G(^FSC("MOD",IEN,0)) Q:'$L(ZERO)  Q:$P(ZERO,U,2)
 | 
|---|
| 74 |  ..S IEN1=0 F  S IEN1=$O(^FSC("MOD","ACL",FROM,IEN,IEN1)) Q:IEN1<1  D
 | 
|---|
| 75 |  ...S TEXT=$G(^FSC("MOD",IEN,99,IEN1,0)) Q:'$L(TEXT)
 | 
|---|
| 76 |  ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_TEXT_U_$P(ZERO,U,2,99)
 | 
|---|
| 77 |  Q
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 | MAILGP(FROM,DIR) ;
 | 
|---|
| 80 |  N IEN,CNT,NUM,ZERO S CNT=44,NUM=0
 | 
|---|
| 81 |  F  Q:NUM>CNT  S FROM=$O(^XMB(3.8,"B",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 82 |  .S IEN=0 F  S IEN=$O(^XMB(3.8,"B",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 83 |  ..S ZERO=$G(^XMB(3.8,IEN,0)) Q:'$L(ZERO)  Q:$P(ZERO,U,2)="PR"  Q:$O(^XMB(3.8,IEN,4,0))
 | 
|---|
| 84 |  ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_ZERO
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 | PATCH(FROM,DIR) ;
 | 
|---|
| 88 |  N IEN,CNT,NUM,ZERO S CNT=44,NUM=0
 | 
|---|
| 89 |  F  Q:NUM>CNT  S FROM=$O(^A1AE(11005,"B",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 90 |  .S IEN=0 F  S IEN=$O(^A1AE(11005,"B",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 91 |  ..S ZERO=$G(^A1AE(11005,IEN,0)) Q:'$L(ZERO)
 | 
|---|
| 92 |  ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$P(ZERO,U)_"   Seq# "_$P(ZERO,U,6)_"  "_$P(ZERO,U,5)
 | 
|---|
| 93 |  Q
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 | USER(FROM,DIR) ;
 | 
|---|
| 96 |  N IEN,CNT,NUM,ZERO S CNT=44,NUM=0
 | 
|---|
| 97 |  F  Q:NUM>CNT  S FROM=$O(^VA(200,"B",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 98 |  .S IEN=0 F  S IEN=$O(^VA(200,"B",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 99 |  ..S ZERO=$G(^VA(200,IEN,0)) Q:'$L(ZERO)  Q:ZERO  I $P(ZERO,U,11),$P(ZERO,U,11)<DT Q
 | 
|---|
| 100 |  ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$P(ZERO,U)
 | 
|---|
| 101 |  Q
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 | LIST(FROM,DIR) ;
 | 
|---|
| 104 |  N IEN,CNT,NUM S CNT=44,NUM=0
 | 
|---|
| 105 |  F  Q:NUM>CNT  S FROM=$O(^FSC("LIST","B",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 106 |  .S IEN=0 F  S IEN=$O(^FSC("LIST","B",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 107 |  ..Q:$P($G(^FSC("LIST",IEN,0)),U,99)="INACTIVE"  ;*** fix
 | 
|---|
| 108 |  ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("LIST",IEN,0))
 | 
|---|
| 109 |  Q
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 | CALL(FROM,DIR) ;
 | 
|---|
| 112 |  N IEN,CNT,NUM S CNT=44,NUM=0
 | 
|---|
| 113 |  F  Q:NUM>CNT  S FROM=$O(^FSCD("CALL","B",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 114 |  .S IEN=0 F  S IEN=$O(^FSCD("CALL","B",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 115 |  ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSCD("CALL",IEN,0))
 | 
|---|
| 116 |  Q
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 | FROM(FROM,FILE) ; $$(from) -> exteral value for `ien lookups
 | 
|---|
| 119 |  N EXACT
 | 
|---|
| 120 |  I $E(FROM)="`" D  Q FROM
 | 
|---|
| 121 |  .I $E(FROM,$L(FROM)-1)="/" S EXACT=+$E(FROM,2,245)*10
 | 
|---|
| 122 |  .E  S EXACT=1+$E(FROM,2,245)
 | 
|---|
| 123 |  .I FILE="USER" S FROM=$P($G(^VA(200,EXACT,0)),U)
 | 
|---|
| 124 |  .I FILE="MOD" S FROM=$P($G(^FSC("MOD",EXACT,0)),U)
 | 
|---|
| 125 |  .I FILE="ACLMOD" S FROM=$G(^FSC("MOD",EXACT,99,+$O(^FSC("MOD",EXACT,99,0)),0))
 | 
|---|
| 126 |  .I FILE="LOC" S FROM=$P($G(^FSC("SITE",EXACT,0)),U)
 | 
|---|
| 127 |  .I FILE="ACLLOC" S FROM=$G(^FSC("SITE",EXACT,99,+$O(^FSC("SITE",EXACT,99,0)),0))
 | 
|---|
| 128 |  .I FILE="MAILGP" S FROM=$P($G(^XMB(3.8,EXACT,0)),U)
 | 
|---|
| 129 |  .I FILE="PATCH" S FROM=$P($G(^A1AE(11005,EXACT,0)),U)
 | 
|---|
| 130 |  .I FILE="PACK" S FROM=$P($G(^FSC("PACK",EXACT,0)),U)
 | 
|---|
| 131 |  .I FILE="ACLPACK" S FROM=$G(^FSC("PACK",EXACT,99,+$O(^FSC("PACK",EXACT,99,0)),0))
 | 
|---|
| 132 |  .I FILE="LIST" S FROM=$P($G(^FSC("LIST",EXACT,0)),U)
 | 
|---|
| 133 |  .S FROM=$E(FROM,1,$L(FROM)-1)_$C($A($E(FROM,$L(FROM)))-1)_"~"
 | 
|---|
| 134 |  Q FROM
 | 
|---|