| 1 | FSCRPCEC ;SLC/STAFF-NOIS RPC Edit Call ;9/6/98  21:56 | 
|---|
| 2 | ;;1.1;NOIS;;Sep 06, 1998 | 
|---|
| 3 | ; | 
|---|
| 4 | EDIT(IN,OUT) ; from FSCRPX (RPCEditCall) | 
|---|
| 5 | N CALL,EDITED,FIELDS K FIELDS | 
|---|
| 6 | K ^TMP("FSC WP",$J) | 
|---|
| 7 | D PROCESS^FSCRPCNC(.FIELDS) | 
|---|
| 8 | S CALL=+$G(FIELDS("CALL")) | 
|---|
| 9 | I 'CALL Q | 
|---|
| 10 | I $O(^TMP("FSCRPC",$J,"INPUT",1)) D | 
|---|
| 11 | .D FIELDS(CALL,.FIELDS,.EDITED) | 
|---|
| 12 | .I EDITED D MRE^FSCMR(DUZ,CALL),UPDATE^FSCAUDIT(CALL) | 
|---|
| 13 | S ^TMP("FSCRPC",$J,"OUTPUT",1)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ) | 
|---|
| 14 | K ^TMP("FSC WP",$J) | 
|---|
| 15 | Q | 
|---|
| 16 | ; | 
|---|
| 17 | FIELDS(CALL,FIELDS,EDITED) ; from FSCRPCEN | 
|---|
| 18 | N DR,OK,STATUS,WOLDV,WNEWV K WOLDV,WNEWV | 
|---|
| 19 | S EDITED=0 | 
|---|
| 20 | I $O(^TMP("FSC WP",$J,"DESC",0)) D | 
|---|
| 21 | .D DESC^FSCRPCNC(CALL) | 
|---|
| 22 | .S WOLDV("DESC")=1,WNEWV("DESC")=2 | 
|---|
| 23 | .D DESC^FSCAUDIT(CALL,.WOLDV,.WNEWV) ; forces audit update | 
|---|
| 24 | D NOTE^FSCRPCNC(CALL) | 
|---|
| 25 | S DR="" | 
|---|
| 26 | I $L($G(FIELDS("SUBJECT"))) S DR=DR_";1///"_$$FIX(FIELDS("SUBJECT")) | 
|---|
| 27 | I $D(FIELDS("SUBJECT")),FIELDS("SUBJECT")="" S DR=DR_";1///@" | 
|---|
| 28 | I $L($G(FIELDS("PHONE"))) S DR=DR_";2.2///"_$$FIX(FIELDS("PHONE")) | 
|---|
| 29 | I $D(FIELDS("PHONE")),FIELDS("PHONE")="" S DR=DR_";2.2///@" | 
|---|
| 30 | I $L($G(FIELDS("PATCH"))) S DR=DR_";7///"_$$FIX(FIELDS("PATCH")) | 
|---|
| 31 | I $D(FIELDS("PATCH")),FIELDS("PATCH")="" S DR=DR_";7///@" | 
|---|
| 32 | I $L($G(FIELDS("KEYWORDS"))) S DR=DR_";1.5///"_$$FIX(FIELDS("KEYWORDS")) | 
|---|
| 33 | I $D(FIELDS("KEYWORDS")),FIELDS("KEYWORDS")="" S DR=DR_";1.5///@" | 
|---|
| 34 | I $L(DR)>100 D SETUP(CALL,"^FSCD(""CALL"",",.DR,.EDITED) | 
|---|
| 35 | I $G(FIELDS("MOD")) S DR=DR_";3///`"_+FIELDS("MOD") | 
|---|
| 36 | I $D(FIELDS("MOD")),FIELDS("MOD")="" S DR=DR_";3///@" | 
|---|
| 37 | I $G(FIELDS("IRM")) S DR=DR_";2.1///`"_+FIELDS("IRM") | 
|---|
| 38 | I $D(FIELDS("IRM")),FIELDS("IRM")="" S DR=DR_";2.1///@" | 
|---|
| 39 | I $G(FIELDS("PRI")) S DR=DR_";6///`"_+FIELDS("PRI") | 
|---|
| 40 | I $D(FIELDS("PRI")),FIELDS("PRI")="" S DR=DR_";6///@" | 
|---|
| 41 | I $G(FIELDS("SPEC")) S DR=DR_";5///`"_+FIELDS("SPEC") | 
|---|
| 42 | I $D(FIELDS("SPEC")),FIELDS("SPEC")="" S DR=DR_";5///@" | 
|---|
| 43 | I $G(FIELDS("SPECD")) S DR=DR_";5.1///`"_+FIELDS("SPECD") | 
|---|
| 44 | I $D(FIELDS("SPECD")),FIELDS("SPECD")="" S DR=DR_";5.1///@" | 
|---|
| 45 | I $G(FIELDS("DEVSUB")) S DR=DR_";3.2///`"_+FIELDS("DEVSUB") | 
|---|
| 46 | I $D(FIELDS("DEVSUB")),FIELDS("DEVSUB")="" S DR=DR_";3.2///@" | 
|---|
| 47 | D SETUP(CALL,"^FSCD(""CALL"",",.DR,.EDITED) | 
|---|
| 48 | S STATUS=+$G(FIELDS("STATUS")) | 
|---|
| 49 | I STATUS=2 D  I 'OK Q | 
|---|
| 50 | .S OK=1 | 
|---|
| 51 | .S DR="81///`"_DUZ | 
|---|
| 52 | .I $G(FIELDS("FUNC")) S DR=DR_";8///`"_+FIELDS("FUNC") | 
|---|
| 53 | .I $G(FIELDS("TASK")) S DR=DR_";9///`"_+FIELDS("TASK") | 
|---|
| 54 | .I $L($G(FIELDS("DATEC"))) S DR=DR_";82///"_FIELDS("DATEC") | 
|---|
| 55 | .I $L(DR) D  I 'OK Q | 
|---|
| 56 | ..N DA,DIE,X,Y | 
|---|
| 57 | ..I $E(DR)=";" S DR=$E(DR,2,245) | 
|---|
| 58 | ..S DA=CALL,DIE="^FSCD(""CALL""," | 
|---|
| 59 | ..L +^FSCD("CALL",DA):30 I '$T S OK=0 Q  ; *** needs ok | 
|---|
| 60 | ..D ^DIE | 
|---|
| 61 | ..L -^FSCD("CALL",DA) | 
|---|
| 62 | ..D PICKUP^FSCES(DA) | 
|---|
| 63 | ..S DR="" | 
|---|
| 64 | .D RES^FSCRPCNC(CALL) | 
|---|
| 65 | D STATUS(CALL,STATUS,.EDITED) | 
|---|
| 66 | Q | 
|---|
| 67 | ; | 
|---|
| 68 | FIX(VALUE) ; $$(input) -> correct for invalid characters | 
|---|
| 69 | N NEWVALUE | 
|---|
| 70 | S NEWVALUE=$TR(VALUE,";""^","~~~") | 
|---|
| 71 | I $E(NEWVALUE)="-" S NEWVALUE="~"_$E(NEWVALUE,2,245) | 
|---|
| 72 | I VALUE="?" S NEWVALUE="@" | 
|---|
| 73 | Q NEWVALUE | 
|---|
| 74 | ; | 
|---|
| 75 | SETUP(DA,DIE,DR,EDITED) ; from FSCRPCEF | 
|---|
| 76 | N ABBREV,CALLNUM,NEWV,OLDV,X,Y K NEWV,OLDV | 
|---|
| 77 | S CALLNUM=DA | 
|---|
| 78 | I '$L(DR),$O(^TMP("FSC WP",$J,"NOTE",0)) D  Q | 
|---|
| 79 | .D UPDATE^FSCTASK(CALLNUM) S EDITED=1 | 
|---|
| 80 | I '$L(DR) Q | 
|---|
| 81 | I $E(DR)=";" S DR=$E(DR,2,245) | 
|---|
| 82 | F ABBREV="SUBJECT","IRM","PHONE","MOD","SPEC","SPECD","PRI","PATCH","DEVSUB","KEYWORDS" S OLDV(ABBREV)="" | 
|---|
| 83 | D GET^FSCGET("CUSTOM",CALLNUM,.OLDV) | 
|---|
| 84 | L +^FSCD("CALL",DA):30 I '$T Q  ; *** needs ok | 
|---|
| 85 | D ^DIE | 
|---|
| 86 | L -^FSCD("CALL",DA) | 
|---|
| 87 | D PICKUP^FSCES(DA) | 
|---|
| 88 | M NEWV=OLDV D GET^FSCGET("CUSTOM",CALLNUM,.NEWV) | 
|---|
| 89 | D AUDIT^FSCAUDIT(CALLNUM,.OLDV,.NEWV) | 
|---|
| 90 | D UPDATE^FSCTASK(CALLNUM) S EDITED=1 | 
|---|
| 91 | S DR="" | 
|---|
| 92 | Q | 
|---|
| 93 | ; | 
|---|
| 94 | STATUS(CALL,STATUS,EDITED) ; from FSCRPCEF | 
|---|
| 95 | I 'STATUS Q | 
|---|
| 96 | N PREVSTAT | 
|---|
| 97 | S PREVSTAT=+$P(^FSCD("CALL",+CALL,0),U,17) | 
|---|
| 98 | I PREVSTAT<2 S PREVSTAT=+$P(^FSCD("CALL",+CALL,0),U,2) | 
|---|
| 99 | I PREVSTAT=0 D  Q | 
|---|
| 100 | .D STATUS^FSCES(CALL,"",1) | 
|---|
| 101 | .D UPDATE^FSCTASK(CALL) S EDITED=1 | 
|---|
| 102 | .I STATUS'=1 D | 
|---|
| 103 | ..D STATUS^FSCES(CALL,1,STATUS) | 
|---|
| 104 | ..D UPDATE^FSCTASK(CALL) S EDITED=1 | 
|---|
| 105 | I STATUS,PREVSTAT=STATUS Q | 
|---|
| 106 | D STATUS^FSCES(CALL,PREVSTAT,STATUS) | 
|---|
| 107 | D UPDATE^FSCTASK(CALL) S EDITED=1 | 
|---|
| 108 | Q | 
|---|
| 109 | ; | 
|---|
| 110 | REOPEN(IN,OUT) ; from FSCRPX (RPCReopenCall) | 
|---|
| 111 | N CALL,OLDSTAT | 
|---|
| 112 | S CALL=+$G(^TMP("FSCRPC",$J,"INPUT",1)) | 
|---|
| 113 | I 'CALL Q | 
|---|
| 114 | S OLDSTAT=+$P($G(^FSCD("CALL",CALL,0)),U,2) | 
|---|
| 115 | I '(OLDSTAT=2!(OLDSTAT=99)) Q | 
|---|
| 116 | D STATUS^FSCES(CALL,OLDSTAT,1,1) | 
|---|
| 117 | D UPDATE^FSCTASK(CALL) | 
|---|
| 118 | D MRE^FSCMR(DUZ,CALL) | 
|---|
| 119 | D UPDATE^FSCAUDIT(CALL) | 
|---|
| 120 | S ^TMP("FSCRPC",$J,"OUTPUT",1)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ) | 
|---|
| 121 | Q | 
|---|