| 1 | FSCRPCLS ;SLC/STAFF-NOIS RPC List Short ;7/23/98  14:17 | 
|---|
| 2 | ;;1.1;NOIS;;Sep 06, 1998 | 
|---|
| 3 | ; | 
|---|
| 4 | FILE(IN,OUT) ; from FSCRPX (RPCStaticFile) | 
|---|
| 5 | N DIR,FILE,FROM,LINE,NUM | 
|---|
| 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 | I FILE="STATUS" D STATUS Q | 
|---|
| 9 | I FILE="SSTATUS" D SSTATUS Q | 
|---|
| 10 | I FILE="RSTATUS" D RSTATUS Q | 
|---|
| 11 | I FILE="SPEC" D SPEC Q | 
|---|
| 12 | I FILE="PRI" D PRI Q | 
|---|
| 13 | I $E(FILE,1,3)="SUB" D  Q | 
|---|
| 14 | .I $P(FILE,";",2) D SUBPACK(+$P(FILE,";",2)) Q | 
|---|
| 15 | .D SUB Q | 
|---|
| 16 | I FILE="ISC" D ISC Q | 
|---|
| 17 | I FILE="FUNC" D FUNC Q | 
|---|
| 18 | I FILE="TASK" D TASK Q | 
|---|
| 19 | I FILE="LTYPE" D LTYPE Q | 
|---|
| 20 | I FILE="PACKGP" D PACKGP Q | 
|---|
| 21 | I FILE="VISN" D VISN Q | 
|---|
| 22 | I FILE="EPTYPE" D EPTYPE Q | 
|---|
| 23 | I FILE="SYSTEM" D SYSTEM Q | 
|---|
| 24 | I FILE="FIELD" D FIELD Q | 
|---|
| 25 | I FILE="FORMAT_SORT" D SORT Q | 
|---|
| 26 | I FILE="FORMAT_DISPLAY" D DISPLAY Q | 
|---|
| 27 | I FILE="USER_AFFIL" D UPACK Q | 
|---|
| 28 | I FILE="USER_FORMAT_SORT" D USORT Q | 
|---|
| 29 | I FILE="USER_FORMAT_DISPLAY" D UDISPLAY Q | 
|---|
| 30 | I FILE="COMMON_LISTS" D CLISTS Q | 
|---|
| 31 | I $P(FILE,";")="USER_LISTS" D ULISTS Q | 
|---|
| 32 | I $E(FILE,1,3)="WEB" D WEB(+$P(FILE,";",2)) Q | 
|---|
| 33 | Q | 
|---|
| 34 | ; | 
|---|
| 35 | SSTATUS ; | 
|---|
| 36 | N FROM,IEN,NUM S NUM=0 | 
|---|
| 37 | S FROM="" F  S FROM=$O(^FSC("STATUS","B",FROM)) Q:FROM=""  D | 
|---|
| 38 | .S IEN=0 F  S IEN=$O(^FSC("STATUS","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 39 | ..I $P($G(^FSC("STATUS",IEN,0)),U,2)="D" Q | 
|---|
| 40 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("STATUS",IEN,0)) | 
|---|
| 41 | Q | 
|---|
| 42 | ; | 
|---|
| 43 | RSTATUS ; | 
|---|
| 44 | N FROM,IEN,NUM S NUM=0 | 
|---|
| 45 | S FROM="" F  S FROM=$O(^FSC("STATUS","B",FROM)) Q:FROM=""  D | 
|---|
| 46 | .S IEN=0 F  S IEN=$O(^FSC("STATUS","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 47 | ..I $P($G(^FSC("STATUS",IEN,0)),U,2)="S" Q | 
|---|
| 48 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("STATUS",IEN,0)) | 
|---|
| 49 | Q | 
|---|
| 50 | ; | 
|---|
| 51 | STATUS ; | 
|---|
| 52 | N FROM,IEN,NUM S NUM=0 | 
|---|
| 53 | S FROM="" F  S FROM=$O(^FSC("STATUS","B",FROM)) Q:FROM=""  D | 
|---|
| 54 | .S IEN=0 F  S IEN=$O(^FSC("STATUS","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 55 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("STATUS",IEN,0)) | 
|---|
| 56 | Q | 
|---|
| 57 | ; | 
|---|
| 58 | SPEC ; | 
|---|
| 59 | K ^TMP("FSC SPEC",$J) | 
|---|
| 60 | N FROM,IEN,NUM,ZERO S NUM=0 | 
|---|
| 61 | S IEN=0 F  S IEN=$O(^FSC("SPEC",IEN)) Q:IEN<1  S ZERO=$G(^(IEN,0)) I $L(ZERO),'$P(ZERO,U,2) D | 
|---|
| 62 | .S NAME=$P($G(^VA(200,IEN,0)),U) I $P($G(^(0)),U,11),$P($G(^(0)),U,11)<DT Q | 
|---|
| 63 | .I $L(NAME) S ^TMP("FSC SPEC",$J,NAME,IEN)=NAME_U_$P(ZERO,U,2,99) | 
|---|
| 64 | S FROM="" F  S FROM=$O(^TMP("FSC SPEC",$J,FROM)) Q:FROM=""  D | 
|---|
| 65 | .S IEN=0 F  S IEN=$O(^TMP("FSC SPEC",$J,FROM,IEN)) Q:'IEN  D | 
|---|
| 66 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_^TMP("FSC SPEC",$J,FROM,IEN) | 
|---|
| 67 | K ^TMP("FSC SPEC",$J) | 
|---|
| 68 | Q | 
|---|
| 69 | ; | 
|---|
| 70 | PRI ; | 
|---|
| 71 | N FROM,IEN,NUM S NUM=0 | 
|---|
| 72 | S FROM="" F  S FROM=$O(^FSC("PRI","B",FROM)) Q:FROM=""  D | 
|---|
| 73 | .S IEN=0 F  S IEN=$O(^FSC("PRI","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 74 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("PRI",IEN,0)) | 
|---|
| 75 | Q | 
|---|
| 76 | ; | 
|---|
| 77 | SUB ; | 
|---|
| 78 | N FROM,IEN,NUM,PACK,PACKNAME S NUM=0 | 
|---|
| 79 | S FROM="" F  S FROM=$O(^FSC("SUB","B",FROM)) Q:FROM=""  D | 
|---|
| 80 | .S IEN=0 F  S IEN=$O(^FSC("SUB","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 81 | ..S PACK=+$P($G(^FSC("SUB",IEN,0)),U,2) | 
|---|
| 82 | ..I 'PACK Q | 
|---|
| 83 | ..S PACKNAME=$P($G(^FSC("PACK",PACK,0)),U) | 
|---|
| 84 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$P(^FSC("SUB",IEN,0),U)_" - "_PACKNAME_U_$P(^(0),U) | 
|---|
| 85 | Q | 
|---|
| 86 | ; | 
|---|
| 87 | SUBPACK(PACK) ; | 
|---|
| 88 | N FROM,IEN,LINE,NAME,NUM,PACKNAME K ^TMP("FSC TEMP",$J) | 
|---|
| 89 | S PACKNAME=$P($G(^FSC("PACK",PACK,0)),U) | 
|---|
| 90 | S IEN=0 F  S IEN=$O(^FSC("SUB","AC",PACK,IEN)) Q:IEN=""  D | 
|---|
| 91 | .S NAME=$P($G(^FSC("SUB",IEN,0)),U) | 
|---|
| 92 | .I '$L(NAME) Q | 
|---|
| 93 | .S ^TMP("FSC TEMP",$J,NAME,IEN)=IEN_U_NAME_" - "_PACKNAME_U_NAME | 
|---|
| 94 | S NUM=0 | 
|---|
| 95 | S NAME="" F  S NAME=$O(^TMP("FSC TEMP",$J,NAME)) Q:NAME=""  D | 
|---|
| 96 | .S IEN=0 F  S IEN=$O(^TMP("FSC TEMP",$J,NAME,IEN)) Q:IEN<1  S LINE=^(IEN) D | 
|---|
| 97 | ..S NUM=NUM+1 | 
|---|
| 98 | ..S ^TMP("FSCRPC",$J,"OUTPUT",NUM)=LINE | 
|---|
| 99 | K ^TMP("FSC TEMP",$J) | 
|---|
| 100 | Q | 
|---|
| 101 | ; | 
|---|
| 102 | ISC ; | 
|---|
| 103 | N FROM,IEN,NUM S NUM=0 | 
|---|
| 104 | S FROM="" F  S FROM=$O(^FSC("ISC","B",FROM)) Q:FROM=""  D | 
|---|
| 105 | .S IEN=0 F  S IEN=$O(^FSC("ISC","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 106 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("ISC",IEN,0)) | 
|---|
| 107 | Q | 
|---|
| 108 | ; | 
|---|
| 109 | FUNC ; | 
|---|
| 110 | N FROM,IEN,NUM,ZERO S NUM=0 | 
|---|
| 111 | S FROM="" F  S FROM=$O(^FSC("FUNC","B",FROM)) Q:FROM=""  D | 
|---|
| 112 | .S IEN=0 F  S IEN=$O(^FSC("FUNC","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 113 | ..S ZERO=$G(^FSC("FUNC",IEN,0)) Q:'$L(ZERO)  Q:$P(ZERO,U,2) | 
|---|
| 114 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_ZERO | 
|---|
| 115 | Q | 
|---|
| 116 | ; | 
|---|
| 117 | TASK ; | 
|---|
| 118 | N FROM,IEN,NUM,ZERO S NUM=0 | 
|---|
| 119 | S FROM="" F  S FROM=$O(^FSC("TASK","B",FROM)) Q:FROM=""  D | 
|---|
| 120 | .S IEN=0 F  S IEN=$O(^FSC("TASK","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 121 | ..S ZERO=$G(^FSC("TASK",IEN,0)) Q:'$L(ZERO)  Q:$P(ZERO,U,2) | 
|---|
| 122 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_ZERO | 
|---|
| 123 | Q | 
|---|
| 124 | ; | 
|---|
| 125 | LTYPE ; | 
|---|
| 126 | N FROM,IEN,NUM S NUM=0 | 
|---|
| 127 | S FROM="" F  S FROM=$O(^FSC("LTYPE","B",FROM)) Q:FROM=""  D | 
|---|
| 128 | .S IEN=0 F  S IEN=$O(^FSC("LTYPE","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 129 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("LTYPE",IEN,0)) | 
|---|
| 130 | Q | 
|---|
| 131 | ; | 
|---|
| 132 | PACKGP ; | 
|---|
| 133 | N FROM,IEN,NUM S NUM=0 | 
|---|
| 134 | S FROM="" F  S FROM=$O(^FSC("PACKG","B",FROM)) Q:FROM=""  D | 
|---|
| 135 | .S IEN=0 F  S IEN=$O(^FSC("PACKG","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 136 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("PACKG",IEN,0)) | 
|---|
| 137 | Q | 
|---|
| 138 | ; | 
|---|
| 139 | VISN ; | 
|---|
| 140 | N FROM,IEN,NUM S NUM=0 | 
|---|
| 141 | S FROM="" F  S FROM=$O(^FSC("VISN","B",FROM)) Q:FROM=""  D | 
|---|
| 142 | .S IEN=0 F  S IEN=$O(^FSC("VISN","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 143 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("VISN",IEN,0)) | 
|---|
| 144 | Q | 
|---|
| 145 | ; | 
|---|
| 146 | WEB(PACK) ; | 
|---|
| 147 | N IEN,NUM S NUM=0 | 
|---|
| 148 | S IEN=0 F  S IEN=$O(^FSCD("WEB","C",PACK,IEN)) Q:'IEN  D | 
|---|
| 149 | .S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSCD("WEB",IEN,1)) | 
|---|
| 150 | Q | 
|---|
| 151 | EPTYPE ; | 
|---|
| 152 | N FROM,IEN,NUM S NUM=0 | 
|---|
| 153 | S FROM="" F  S FROM=$O(^FSC("EPTYPE","B",FROM)) Q:FROM=""  D | 
|---|
| 154 | .S IEN=0 F  S IEN=$O(^FSC("EPTYPE","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 155 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("EPTYPE",IEN,0)) | 
|---|
| 156 | Q | 
|---|
| 157 | ; | 
|---|
| 158 | SYSTEM ; | 
|---|
| 159 | N FROM,IEN,NUM S NUM=0 | 
|---|
| 160 | S FROM="" F  S FROM=$O(^FSC("SYSTEM","B",FROM)) Q:FROM=""  D | 
|---|
| 161 | .S IEN=0 F  S IEN=$O(^FSC("SYSTEM","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 162 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("SYSTEM",IEN,0)) | 
|---|
| 163 | Q | 
|---|
| 164 | ; | 
|---|
| 165 | FIELD ; | 
|---|
| 166 | N FROM,IEN,NUM S NUM=0 | 
|---|
| 167 | S FROM="" F  S FROM=$O(^FSC("FLD","B",FROM)) Q:FROM=""  D | 
|---|
| 168 | .S IEN=0 F  S IEN=$O(^FSC("FLD","B",FROM,IEN)) Q:'IEN  D | 
|---|
| 169 | ..S NUM=NUM+1,^TMP("FSCRPC",$J,"OUTPUT",NUM)=IEN_U_$G(^FSC("FLD",IEN,0)) | 
|---|
| 170 | Q | 
|---|
| 171 | ; | 
|---|
| 172 | UPACK ; | 
|---|
| 173 | N CNT,LINE,NUM,PACK | 
|---|
| 174 | S (CNT,NUM)=0 F  S NUM=$O(^FSC("SPEC",DUZ,30,NUM)) Q:NUM<1  S PACK=+$G(^(NUM,0)) I PACK D | 
|---|
| 175 | .S LINE=$G(^FSC("PACK",PACK,0)) | 
|---|
| 176 | .I '$L(LINE) Q | 
|---|
| 177 | .S CNT=CNT+1,^TMP("FSCRPC",$J,"OUTPUT",CNT)=PACK_U_LINE | 
|---|
| 178 | Q | 
|---|
| 179 | ; | 
|---|
| 180 | USORT ; | 
|---|
| 181 | N DESCEND,FIELD,LINE,LINE1,NUM,SUBNUM | 
|---|
| 182 | S NUM=0 F  S NUM=$O(^FSC("FORMAT","C",DUZ,NUM)) Q:NUM<1  S LINE=$G(^FSC("FORMAT",NUM,0)) I $P(LINE,U,2)="S" D | 
|---|
| 183 | .S FIELD="",DESCEND="" | 
|---|
| 184 | .S SUBNUM=0 F  S SUBNUM=$O(^FSC("FORMAT",NUM,2,SUBNUM)) Q:SUBNUM<1  S LINE1=$G(^(SUBNUM,0)) D | 
|---|
| 185 | ..I +LINE1<1 Q | 
|---|
| 186 | ..S DESCEND=$P(LINE1,U,8) I 'DESCEND S DESCEND=0 | 
|---|
| 187 | ..S FIELD=FIELD_$P(LINE1,U)_":"_DESCEND_";" | 
|---|
| 188 | .S ^TMP("FSCRPC",$J,"OUTPUT",NUM)=NUM_U_LINE S $P(^(NUM),U,7)=FIELD | 
|---|
| 189 | Q | 
|---|
| 190 | ; | 
|---|
| 191 | UDISPLAY ; | 
|---|
| 192 | N FIELD,LINE,LINE1,NUM,SUBNUM | 
|---|
| 193 | S NUM=0 F  S NUM=$O(^FSC("FORMAT","C",DUZ,NUM)) Q:NUM<1  S LINE=$G(^FSC("FORMAT",NUM,0)) I $P(LINE,U,2)="F" D | 
|---|
| 194 | .S FIELD="" | 
|---|
| 195 | .S SUBNUM=0 F  S SUBNUM=$O(^FSC("FORMAT",NUM,2,SUBNUM)) Q:SUBNUM<1  S LINE1=$G(^(SUBNUM,0)) D | 
|---|
| 196 | ..I +LINE1<1 Q | 
|---|
| 197 | ..S FIELD=FIELD_$P(LINE1,U)_";" | 
|---|
| 198 | .S ^TMP("FSCRPC",$J,"OUTPUT",NUM)=NUM_U_LINE S $P(^(NUM),U,7)=FIELD | 
|---|
| 199 | Q | 
|---|
| 200 | ; | 
|---|
| 201 | SORT ; | 
|---|
| 202 | N DESCEND,FIELD,LINE,LINE1,NUM,SUBNUM | 
|---|
| 203 | S NUM=0 F  S NUM=$O(^FSC("FORMAT",NUM)) Q:NUM<1  S LINE=$G(^(NUM,0)) I $P(LINE,U,2)="S" D | 
|---|
| 204 | .S FIELD="",DESCEND="" | 
|---|
| 205 | .S SUBNUM=0 F  S SUBNUM=$O(^FSC("FORMAT",NUM,2,SUBNUM)) Q:SUBNUM<1  S LINE1=$G(^(SUBNUM,0)) D | 
|---|
| 206 | ..I +LINE1<1 Q | 
|---|
| 207 | ..S DESCEND=$P(LINE1,U,8) I 'DESCEND S DESCEND=0 | 
|---|
| 208 | ..S FIELD=FIELD_$P(LINE1,U)_":"_DESCEND_";" | 
|---|
| 209 | .S ^TMP("FSCRPC",$J,"OUTPUT",NUM)=NUM_U_LINE S $P(^(NUM),U,7)=FIELD | 
|---|
| 210 | Q | 
|---|
| 211 | ; | 
|---|
| 212 | DISPLAY ; | 
|---|
| 213 | N FIELD,LINE,LINE1,NUM,SUBNUM | 
|---|
| 214 | S NUM=0 F  S NUM=$O(^FSC("FORMAT",NUM)) Q:NUM<1  S LINE=$G(^(NUM,0)) I $P(LINE,U,2)="F" D | 
|---|
| 215 | .S FIELD="" | 
|---|
| 216 | .S SUBNUM=0 F  S SUBNUM=$O(^FSC("FORMAT",NUM,2,SUBNUM)) Q:SUBNUM<1  S LINE1=$G(^(SUBNUM,0)) D | 
|---|
| 217 | ..I +LINE1<1 Q | 
|---|
| 218 | ..S FIELD=FIELD_$P(LINE1,U)_";" | 
|---|
| 219 | .S ^TMP("FSCRPC",$J,"OUTPUT",NUM)=NUM_U_LINE S $P(^(NUM),U,7)=FIELD | 
|---|
| 220 | Q | 
|---|
| 221 | ; | 
|---|
| 222 | CLISTS ; | 
|---|
| 223 | N CNT,LIST,LISTNAME,NUM,ZERO | 
|---|
| 224 | S CNT=0 | 
|---|
| 225 | S LISTNAME="" F  S LISTNAME=$O(^FSC("LIST","B",LISTNAME)) Q:LISTNAME=""  D | 
|---|
| 226 | .S NUM=0 F  S NUM=$O(^FSC("LIST","B",LISTNAME,NUM)) Q:NUM<1  D | 
|---|
| 227 | ..S ZERO=$G(^FSC("LIST",NUM,0)) | 
|---|
| 228 | ..I $L(ZERO),'$P(ZERO,U,2) D | 
|---|
| 229 | ...S CNT=CNT+1 | 
|---|
| 230 | ...S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=NUM_U_ZERO | 
|---|
| 231 | Q | 
|---|
| 232 | ; | 
|---|
| 233 | ULISTS ; | 
|---|
| 234 | N CNT,LINE,LIST,LISTNAME,NUM,USER,ZERO K ^TMP("FSC MERGE",$J) | 
|---|
| 235 | S USER=+$P(FILE,";",2) | 
|---|
| 236 | I '$D(^VA(200,USER,0)) Q | 
|---|
| 237 | S CNT=0 | 
|---|
| 238 | S NUM=0 F  S NUM=$O(^FSC("LIST","C",USER,NUM)) Q:NUM<1  D | 
|---|
| 239 | .S ZERO=$G(^FSC("LIST",NUM,0)) | 
|---|
| 240 | .Q:'$L(ZERO)  Q:$P(ZERO,U,2)'=USER | 
|---|
| 241 | .S ^TMP("FSC MERGE",$J,$P(ZERO,U),NUM)=NUM_U_ZERO | 
|---|
| 242 | S CNT=0 | 
|---|
| 243 | S LISTNAME="" F  S LISTNAME=$O(^TMP("FSC MERGE",$J,LISTNAME)) Q:LISTNAME=""  D | 
|---|
| 244 | .S NUM=0 F  S NUM=$O(^TMP("FSC MERGE",$J,LISTNAME,NUM)) Q:NUM<1  S LINE=^(NUM) D | 
|---|
| 245 | ..S CNT=CNT+1 | 
|---|
| 246 | ..S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=LINE | 
|---|
| 247 | K ^TMP("FSC MERGE",$J) | 
|---|
| 248 | Q | 
|---|