[613] | 1 | FSCRPCTF ;SLC/STAFF-NOIS RPC Text Finder ;5/18/98 14:58
|
---|
| 2 | ;;1.1;NOIS;;Sep 06, 1998
|
---|
| 3 | ;
|
---|
| 4 | TEXT(IN,OUT) ; from FSCRPX (RPCTextFinder)
|
---|
| 5 | N CNT,FIELDS,LINE,METHOD,NUM,TEXT K TEXT
|
---|
| 6 | S METHOD=$G(^TMP("FSCRPC",$J,"INPUT",1)),FIELDS=$G(^(2))
|
---|
| 7 | Q:'$L(METHOD) Q:'$L(FIELDS)
|
---|
| 8 | S CNT=0,NUM=2 F S NUM=$O(^TMP("FSCRPC",$J,"INPUT",NUM)) Q:NUM<1 S LINE=^(NUM) D
|
---|
| 9 | .I '$L(LINE) Q
|
---|
| 10 | .S CNT=CNT+1
|
---|
| 11 | .S TEXT(CNT)=$$UP^XLFSTR(LINE)
|
---|
| 12 | I '$O(TEXT(0)) Q
|
---|
| 13 | D
|
---|
| 14 | .I METHOD=1 D CURRENT(FIELDS,.TEXT) Q
|
---|
| 15 | .I +METHOD=2 D LAST(FIELDS,.TEXT,+$P(METHOD,";",2)) Q
|
---|
| 16 | K TEXT
|
---|
| 17 | Q
|
---|
| 18 | ;
|
---|
| 19 | CURRENT(FIELDS,TEXT) ;
|
---|
| 20 | N CALL,CNT
|
---|
| 21 | K ^TMP("FSC LIST",$J)
|
---|
| 22 | S CNT=0,CALL=0 F S CALL=$O(^TMP("FSC CURRENT LIST",$J,"C",CALL)) Q:CALL<1 D ROUTE(CALL,FIELDS,.TEXT,.CNT)
|
---|
| 23 | K ^TMP("FSC CURRENT LIST",$J)
|
---|
| 24 | M ^TMP("FSC CURRENT LIST",$J)=^TMP("FSC LIST",$J)
|
---|
| 25 | K ^TMP("FSC LIST",$J)
|
---|
| 26 | S CNT=0 F S CNT=$O(^TMP("FSC CURRENT LIST",$J,CNT)) Q:CNT<1 S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=^(CNT)
|
---|
| 27 | Q
|
---|
| 28 | ;
|
---|
| 29 | LAST(FIELDS,TEXT,LAST) ;
|
---|
| 30 | N CALL,CNT,NUM
|
---|
| 31 | K ^TMP("FSC LIST",$J)
|
---|
| 32 | S NUM=0,CNT=0,CALL="A" F S CALL=$O(^FSCD("CALL",CALL),-1) Q:CALL="" S NUM=NUM+1 Q:NUM>LAST D ROUTE(CALL,FIELDS,.TEXT,.CNT)
|
---|
| 33 | K ^TMP("FSC CURRENT LIST",$J)
|
---|
| 34 | M ^TMP("FSC CURRENT LIST",$J)=^TMP("FSC LIST",$J)
|
---|
| 35 | K ^TMP("FSC LIST",$J)
|
---|
| 36 | S CNT=0 F S CNT=$O(^TMP("FSC CURRENT LIST",$J,CNT)) Q:CNT<1 S ^TMP("FSCRPC",$J,"OUTPUT",CNT)=^(CNT)
|
---|
| 37 | Q
|
---|
| 38 | ;
|
---|
| 39 | ROUTE(CALL,FIELDS,TEXT,CNT) ;
|
---|
| 40 | N IEN,OK
|
---|
| 41 | S OK=0
|
---|
| 42 | D
|
---|
| 43 | .S IEN=+$G(^FSCD("CALL USER","AUC",DUZ,CALL))
|
---|
| 44 | .I IEN D I OK Q
|
---|
| 45 | ..I $P(FIELDS,U,8) D PSHORT(IEN,.TEXT,.OK) I OK Q
|
---|
| 46 | ..I $P(FIELDS,U,9) D PLONG(IEN,.TEXT,.OK) I OK Q
|
---|
| 47 | ..I $P(FIELDS,U,7) D PNOTE(IEN,.TEXT,.OK) I OK Q
|
---|
| 48 | .I $P(FIELDS,U) D SUBJECT(CALL,.TEXT,.OK) I OK Q
|
---|
| 49 | .I $P(FIELDS,U,2) D KEYWORDS(CALL,.TEXT,.OK) I OK Q
|
---|
| 50 | .I $P(FIELDS,U,3) D PATCH(CALL,.TEXT,.OK) I OK Q
|
---|
| 51 | .I $P(FIELDS,U,4) D DESC(CALL,.TEXT,.OK) I OK Q
|
---|
| 52 | .I $P(FIELDS,U,5) D RES(CALL,.TEXT,.OK) I OK Q
|
---|
| 53 | .I $P(FIELDS,U,6) D NOTES(CALL,.TEXT,.OK) I OK Q
|
---|
| 54 | I 'OK Q
|
---|
| 55 | S CNT=CNT+1
|
---|
| 56 | S ^TMP("FSC LIST",$J,CNT)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
|
---|
| 57 | S ^TMP("FSC LIST",$J,"C",CALL)=CNT
|
---|
| 58 | Q
|
---|
| 59 | ;
|
---|
| 60 | SUBJECT(CALL,TEXT,OK) ;
|
---|
| 61 | N NUM,SUBJECT
|
---|
| 62 | S SUBJECT=$G(^FSCD("CALL",CALL,1))
|
---|
| 63 | I '$L(SUBJECT) Q
|
---|
| 64 | S SUBJECT=$$UP^XLFSTR(SUBJECT)
|
---|
| 65 | S NUM=0 F S NUM=$O(TEXT(NUM)) Q:NUM<1 I SUBJECT[TEXT(NUM) S OK=1 Q
|
---|
| 66 | Q
|
---|
| 67 | ;
|
---|
| 68 | KEYWORDS(CALL,TEXT,OK) ;
|
---|
| 69 | N KEYWORDS,NUM
|
---|
| 70 | S KEYWORDS=$G(^FSCD("CALL",CALL,1.5))
|
---|
| 71 | I '$L(KEYWORDS) Q
|
---|
| 72 | S KEYWORDS=$$UP^XLFSTR(KEYWORDS)
|
---|
| 73 | S NUM=0 F S NUM=$O(TEXT(NUM)) Q:NUM<1 I KEYWORDS[TEXT(NUM) S OK=1 Q
|
---|
| 74 | Q
|
---|
| 75 | ;
|
---|
| 76 | PATCH(CALL,TEXT,OK) ;
|
---|
| 77 | N NUM,PATCH
|
---|
| 78 | S PATCH=$P($G(^FSCD("CALL",CALL,120)),U,14)
|
---|
| 79 | I '$L(PATCH) Q
|
---|
| 80 | S PATCH=$$UP^XLFSTR(PATCH)
|
---|
| 81 | S NUM=0 F S NUM=$O(TEXT(NUM)) Q:NUM<1 I PATCH[TEXT(NUM) S OK=1 Q
|
---|
| 82 | Q
|
---|
| 83 | ;
|
---|
| 84 | DESC(CALL,TEXT,OK) ;
|
---|
| 85 | N LNUM,NUM,LINE
|
---|
| 86 | S LNUM=0 F S LNUM=$O(^FSCD("CALL",CALL,30,LNUM)) Q:LNUM<1 S LINE=$G(^(LNUM,0)) D Q:OK
|
---|
| 87 | .I '$L(LINE) Q
|
---|
| 88 | .S LINE=$$UP^XLFSTR(LINE)
|
---|
| 89 | .S NUM=0 F S NUM=$O(TEXT(NUM)) Q:NUM<1 I LINE[TEXT(NUM) S OK=1 Q
|
---|
| 90 | S LNUM=0 F S LNUM=$O(^FSCD("CALL",CALL,30,LNUM)) Q:LNUM<1 S LINE=$G(^(LNUM,0)) D Q:OK
|
---|
| 91 | .I '$L(LINE) Q
|
---|
| 92 | .S NUM=0 F S NUM=$O(TEXT(NUM)) Q:NUM<1 I LINE[TEXT(NUM) S OK=1 Q
|
---|
| 93 | Q
|
---|
| 94 | ;
|
---|
| 95 | RES(CALL,TEXT,OK) ;
|
---|
| 96 | N LNUM,NUM,LINE
|
---|
| 97 | S LNUM=0 F S LNUM=$O(^FSCD("CALL",CALL,80,LNUM)) Q:LNUM<1 S LINE=$G(^(LNUM,0)) D Q:OK
|
---|
| 98 | .I '$L(LINE) Q
|
---|
| 99 | .S LINE=$$UP^XLFSTR(LINE)
|
---|
| 100 | .S NUM=0 F S NUM=$O(TEXT(NUM)) Q:NUM<1 I LINE[TEXT(NUM) S OK=1 Q
|
---|
| 101 | Q
|
---|
| 102 | ;
|
---|
| 103 | NOTES(CALL,TEXT,OK) ;
|
---|
| 104 | N LNUM,NUM,LINE
|
---|
| 105 | S LNUM=0 F S LNUM=$O(^FSCD("CALL",CALL,50,LNUM)) Q:LNUM<1 S LINE=$G(^(LNUM,0)) D Q:OK
|
---|
| 106 | .I '$L(LINE) Q
|
---|
| 107 | .S LINE=$$UP^XLFSTR(LINE)
|
---|
| 108 | .S NUM=0 F S NUM=$O(TEXT(NUM)) Q:NUM<1 I LINE[TEXT(NUM) S OK=1 Q
|
---|
| 109 | Q
|
---|
| 110 | ;
|
---|
| 111 | PSHORT(IEN,TEXT,OK) ;
|
---|
| 112 | N NUM,PSHORT
|
---|
| 113 | S PSHORT=$P($G(^FSCD("CALL USER",IEN,0)),U,3)
|
---|
| 114 | I '$L(PSHORT) Q
|
---|
| 115 | S PSHORT=$$UP^XLFSTR(PSHORT)
|
---|
| 116 | S NUM=0 F S NUM=$O(TEXT(NUM)) Q:NUM<1 I PSHORT[TEXT(NUM) S OK=1 Q
|
---|
| 117 | Q
|
---|
| 118 | ;
|
---|
| 119 | PLONG(IEN,TEXT,OK) ;
|
---|
| 120 | N NUM,PLONG
|
---|
| 121 | S PLONG=$G(^FSCD("CALL USR",IEN,1))
|
---|
| 122 | I '$L(PLONG) Q
|
---|
| 123 | S PLONG=$$UP^XLFSTR(PLONG)
|
---|
| 124 | S NUM=0 F S NUM=$O(TEXT(NUM)) Q:NUM<1 I PLONG[TEXT(NUM) S OK=1 Q
|
---|
| 125 | Q
|
---|
| 126 | ;
|
---|
| 127 | PNOTE(IEN,TEXT,OK) ;
|
---|
| 128 | N LNUM,NUM,LINE
|
---|
| 129 | S LNUM=0 F S LNUM=$O(^FSCD("CALL USER",IEN,2,LNUM)) Q:LNUM<1 S LINE=$G(^(LNUM,0)) D Q:OK
|
---|
| 130 | .I '$L(LINE) Q
|
---|
| 131 | .S LINE=$$UP^XLFSTR(LINE)
|
---|
| 132 | .S NUM=0 F S NUM=$O(TEXT(NUM)) Q:NUM<1 I LINE[TEXT(NUM) S OK=1 Q
|
---|
| 133 | Q
|
---|