| 1 | FSCRPCEB ;SLC/STAFF-NOIS RPC Edit Batch ;9/6/98  21:55 | 
|---|
| 2 | ;;1.1;NOIS;;Sep 06, 1998 | 
|---|
| 3 | ; | 
|---|
| 4 | BATCH(IN,OUT) ; from FSCRPX (RPCEditBatch) | 
|---|
| 5 | N CALL,EDITDATA,EDITED,FIELDS,NUM,PDATA K FIELDS | 
|---|
| 6 | K ^TMP("FSC BATCH CALLS",$J),^TMP("FSC WP",$J) | 
|---|
| 7 | D CALLS | 
|---|
| 8 | D PROCESS^FSCRPCNC(.FIELDS) | 
|---|
| 9 | S EDITDATA=$$EDITDATA(.FIELDS) | 
|---|
| 10 | S PDATA=$$PDATA(.FIELDS) | 
|---|
| 11 | I $L($G(FIELDS("SUBJECT"))) S FIELDS("SUBJECT")=$$FIX^FSCRPCEC(FIELDS("SUBJECT")) | 
|---|
| 12 | I $L($G(FIELDS("PHONE"))) S FIELDS("PHONE")=$$FIX^FSCRPCEC(FIELDS("PHONE")) | 
|---|
| 13 | I $L($G(FIELDS("PATCH"))) S FIELDS("PATCH")=$$FIX^FSCRPCEC(FIELDS("PATCH")) | 
|---|
| 14 | I $L($G(FIELDS("KEYWORDS"))) S FIELDS("KEYWORDS")=$$FIX^FSCRPCEC(FIELDS("KEYWORDS")) | 
|---|
| 15 | I $L($G(FIELDS("WEB"))) S FIELDS("WEB")=$$FIX^FSCRPCEC(FIELDS("WEB")) | 
|---|
| 16 | I $L($G(FIELDS("PLONG"))) S FIELDS("PLONG")=$$FIX^FSCRPCEC(FIELDS("PLONG")) | 
|---|
| 17 | I $L($G(FIELDS("PSHORT"))) S FIELDS("PSHORT")=$$FIX^FSCRPCEC(FIELDS("PSHORT")) | 
|---|
| 18 | I $L($G(FIELDS("PNUM"))) S FIELDS("PNUM")=+FIELDS("PNUM") | 
|---|
| 19 | I $L($G(FIELDS("HRS"))) S FIELDS("HRS")=+FIELDS("HRS") | 
|---|
| 20 | S NUM=0 F  S NUM=$O(^TMP("FSC BATCH CALLS",$J,NUM)) Q:NUM<1  S CALL=+^(NUM) D | 
|---|
| 21 | .I '$D(^FSCD("CALL",CALL,0)) Q | 
|---|
| 22 | .S EDITED=0 | 
|---|
| 23 | .I EDITDATA D FIELDS^FSCRPCEF(CALL,.FIELDS,.EDITED) | 
|---|
| 24 | .I $D(FIELDS("WEB")) D WEB(CALL,FIELDS("WEB"),.EDITED) | 
|---|
| 25 | .I EDITED D UPDATE^FSCAUDIT(CALL) | 
|---|
| 26 | .I PDATA D PFIELDS(CALL,.FIELDS,.EDITED) | 
|---|
| 27 | .I EDITED D MRE^FSCMR(DUZ,CALL) | 
|---|
| 28 | .I $D(FIELDS("HRS")) D WKLD(CALL,.FIELDS) | 
|---|
| 29 | .S ^TMP("FSC CURRENT LIST",$J,+$G(^TMP("FSC CURRENT LIST",$J,"C",CALL)))=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ) | 
|---|
| 30 | K ^TMP("FSC BATCH CALLS",$J),^TMP("FSC WP",$J) | 
|---|
| 31 | Q | 
|---|
| 32 | ; | 
|---|
| 33 | CALLS ; | 
|---|
| 34 | N CALL,DONE,LINE,NUM | 
|---|
| 35 | S NUM=0 F  S NUM=$O(^TMP("FSCRPC",$J,"INPUT",NUM)) Q:NUM<1  S LINE=^(NUM) I LINE="{CALLS}" D  Q | 
|---|
| 36 | .K ^TMP("FSCRPC",$J,"INPUT",NUM) | 
|---|
| 37 | .F  S NUM=$O(^TMP("FSCRPC",$J,"INPUT",NUM)) Q:NUM<1  S LINE=^(NUM) S DONE=0 D  I DONE Q | 
|---|
| 38 | ..K ^TMP("FSCRPC",$J,"INPUT",NUM) | 
|---|
| 39 | ..I LINE="{{{}}}" S DONE=1 Q | 
|---|
| 40 | ..S ^TMP("FSC BATCH CALLS",$J,NUM)=LINE | 
|---|
| 41 | Q | 
|---|
| 42 | ; | 
|---|
| 43 | EDITDATA(FIELDS) ; $$(fields) -> 1 if used to edit call's fields, else 0 | 
|---|
| 44 | N OK,FNAME | 
|---|
| 45 | S OK=0 | 
|---|
| 46 | F FNAME="STATUS","SUBJECT","PHONE","PATCH","KEYWORDS","MOD","IRM","PRI","SPEC","SPECD","DEVSUB" I $D(FIELDS(FNAME)) S OK=1 Q | 
|---|
| 47 | I 'OK F FNAME="DESC","NOTE","RES" I $O(^TMP("FSC WP",$J,FNAME,0)) S OK=1 Q | 
|---|
| 48 | Q OK | 
|---|
| 49 | ; | 
|---|
| 50 | PDATA(FIELDS) ; $$(fields) -> 1 if edit personal fields, else 0 | 
|---|
| 51 | N OK,FNAME | 
|---|
| 52 | S OK=0 | 
|---|
| 53 | F FNAME="PSHORT","PLONG","PNUM","PNOTE" I $D(FIELDS(FNAME)) S OK=1 Q | 
|---|
| 54 | Q OK | 
|---|
| 55 | ; | 
|---|
| 56 | WEB(CALL,VALUE,EDITED) ; from FSCRPCWS | 
|---|
| 57 | N DA,DIE,DR,NEWV,OLDV,URL,X,Y K NEWV,OLDV | 
|---|
| 58 | S URL=$P($G(^FSCD("CALL",CALL,1.7)),U) | 
|---|
| 59 | I URL=VALUE Q | 
|---|
| 60 | S EDITED=1 | 
|---|
| 61 | S OLDV("WEB")=U_URL | 
|---|
| 62 | S DA=CALL,DIE="^FSCD(""CALL""," | 
|---|
| 63 | I $L(VALUE) S DR="1.7///"_VALUE | 
|---|
| 64 | E  S DR="1.7///@" | 
|---|
| 65 | D ^DIE | 
|---|
| 66 | S NEWV("WEB")=U_$P($G(^FSCD("CALL",CALL,1.7)),U) | 
|---|
| 67 | D AUDIT^FSCAUDIT(CALL,.OLDV,.NEWV) | 
|---|
| 68 | K NEWV,OLDV | 
|---|
| 69 | Q | 
|---|
| 70 | ; | 
|---|
| 71 | PFIELDS(CALL,FIELDS,EDITED) ; | 
|---|
| 72 | N CNT,DA,DIE,DIK,DR,LINE,NUM,OK,X,Y | 
|---|
| 73 | S EDITED=1 | 
|---|
| 74 | S DA=+$G(^FSCD("CALL USER","AUC",DUZ,CALL)) | 
|---|
| 75 | I DA D | 
|---|
| 76 | .S DR="" | 
|---|
| 77 | .I $D(FIELDS("PSHORT")) D | 
|---|
| 78 | ..I $L(FIELDS("PSHORT")) S DR=DR_";2///"_FIELDS("PSHORT") Q | 
|---|
| 79 | ..S DR=DR_";2///@" | 
|---|
| 80 | .I $D(FIELDS("PNUM")) D | 
|---|
| 81 | ..I $L(FIELDS("PNUM")) S DR=DR_";3///"_FIELDS("PNUM") Q | 
|---|
| 82 | ..S DR=DR_";3///@" | 
|---|
| 83 | .I $D(FIELDS("PLONG")) D | 
|---|
| 84 | ..I $L(FIELDS("PLONG")) S DR=DR_";4///"_FIELDS("PLONG") Q | 
|---|
| 85 | ..S DR=DR_";4///@" | 
|---|
| 86 | .I '$L(DR) Q | 
|---|
| 87 | .I $E(DR)=";" S DR=$E(DR,2,255) | 
|---|
| 88 | .S DIE="^FSCD(""CALL USER""," | 
|---|
| 89 | .D ^DIE | 
|---|
| 90 | E  D | 
|---|
| 91 | .L +^FSCD("CALL USER",0):5 I '$T Q | 
|---|
| 92 | .S DA=1+$P(^FSCD("CALL USER",0),U,3) | 
|---|
| 93 | .F  Q:'$D(^FSCD("CALL USER",DA,0))  S DA=DA+1 | 
|---|
| 94 | .S $P(^FSCD("CALL USER",0),U,3)=DA,$P(^(0),U,4)=$P(^(0),U,4)+1 | 
|---|
| 95 | .S ^FSCD("CALL USER",DA,0)=CALL_U_DUZ_U_$G(FIELDS("PSHORT"))_U_$G(FIELDS("PNUM")) | 
|---|
| 96 | .I $L($G(FIELDS("PLONG"))) S ^FSCD("CALL USER",DA,1)=FIELDS("PLONG") | 
|---|
| 97 | .L -^FSCD("CALL USER",0) | 
|---|
| 98 | .S DIK="^FSCD(""CALL USER""," | 
|---|
| 99 | .D IX1^DIK | 
|---|
| 100 | I $G(FIELDS("PNOTE"))=0 K ^FSCD("CALL USER",DA,2) | 
|---|
| 101 | I $O(^TMP("FSC WP",$J,"PNOTE",0)) D | 
|---|
| 102 | .I $G(FIELDS("PNOTE"))=2 K ^FSCD("CALL USER",DA,2) | 
|---|
| 103 | .S CNT=+$P($G(^FSCD("CALL USER",DA,2,0)),U,3) | 
|---|
| 104 | .S NUM=0 F  S NUM=$O(^TMP("FSC WP",$J,"PNOTE",NUM)) Q:NUM<1  S LINE=^(NUM) D | 
|---|
| 105 | ..S CNT=CNT+1 | 
|---|
| 106 | ..S ^FSCD("CALL USER",DA,2,CNT,0)=LINE | 
|---|
| 107 | .I CNT S ^FSCD("CALL USER",DA,2,0)="^^"_CNT_U_CNT_U_DT_U | 
|---|
| 108 | S OK=1 D | 
|---|
| 109 | .Q:$L($P(^FSCD("CALL USER",DA,0),U,3))  Q:$L($P(^(0),U,4))  Q:$L($G(^(1)))  Q:$O(^(2,0)) | 
|---|
| 110 | .S OK=0 | 
|---|
| 111 | I 'OK D DEL^FSCUCD("^FSCD(""CALL USER"",",DA) | 
|---|
| 112 | Q | 
|---|
| 113 | ; | 
|---|
| 114 | WKLD(CALL,FIELDS) ; | 
|---|
| 115 | N DATE,DCLOSE,DOPEN,HRS,USER | 
|---|
| 116 | S USER=DUZ | 
|---|
| 117 | S DATE=$G(FIELDS("DATEW")) I 'DATE Q | 
|---|
| 118 | S HRS=+$G(FIELDS("HRS")) I 'HRS Q | 
|---|
| 119 | S DOPEN=$P($G(^FSCD("CALL",+CALL,0)),U,3),DCLOSE=$P($G(^(0)),U,4) | 
|---|
| 120 | I 'DOPEN Q | 
|---|
| 121 | I DCLOSE,DATE>$$FMADD^XLFDT(DCLOSE,+$P($G(^FSC("PARAM",1,0)),U,10)) Q | 
|---|
| 122 | I DATE<DOPEN S DATE=DOPEN | 
|---|
| 123 | I DCLOSE,DATE>DCLOSE S DATE=DCLOSE | 
|---|
| 124 | D UPDATE^FSCEWKLD(CALL,HRS,DATE,USER) | 
|---|
| 125 | Q | 
|---|