- FSCRPCEC ;SLC/STAFF-NOIS RPC Edit Call ;9/6/98 21:56
- ;;1.1;NOIS;;Sep 06, 1998
- ;
- EDIT(IN,OUT) ; from FSCRPX (RPCEditCall)
- N CALL,EDITED,FIELDS K FIELDS
- K ^TMP("FSC WP",$J)
- D PROCESS^FSCRPCNC(.FIELDS)
- S CALL=+$G(FIELDS("CALL"))
- I 'CALL Q
- I $O(^TMP("FSCRPC",$J,"INPUT",1)) D
- .D FIELDS(CALL,.FIELDS,.EDITED)
- .I EDITED D MRE^FSCMR(DUZ,CALL),UPDATE^FSCAUDIT(CALL)
- S ^TMP("FSCRPC",$J,"OUTPUT",1)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
- K ^TMP("FSC WP",$J)
- Q
- ;
- FIELDS(CALL,FIELDS,EDITED) ; from FSCRPCEN
- N DR,OK,STATUS,WOLDV,WNEWV K WOLDV,WNEWV
- S EDITED=0
- I $O(^TMP("FSC WP",$J,"DESC",0)) D
- .D DESC^FSCRPCNC(CALL)
- .S WOLDV("DESC")=1,WNEWV("DESC")=2
- .D DESC^FSCAUDIT(CALL,.WOLDV,.WNEWV) ; forces audit update
- D NOTE^FSCRPCNC(CALL)
- S DR=""
- I $L($G(FIELDS("SUBJECT"))) S DR=DR_";1///"_$$FIX(FIELDS("SUBJECT"))
- I $D(FIELDS("SUBJECT")),FIELDS("SUBJECT")="" S DR=DR_";1///@"
- I $L($G(FIELDS("PHONE"))) S DR=DR_";2.2///"_$$FIX(FIELDS("PHONE"))
- I $D(FIELDS("PHONE")),FIELDS("PHONE")="" S DR=DR_";2.2///@"
- I $L($G(FIELDS("PATCH"))) S DR=DR_";7///"_$$FIX(FIELDS("PATCH"))
- I $D(FIELDS("PATCH")),FIELDS("PATCH")="" S DR=DR_";7///@"
- I $L($G(FIELDS("KEYWORDS"))) S DR=DR_";1.5///"_$$FIX(FIELDS("KEYWORDS"))
- I $D(FIELDS("KEYWORDS")),FIELDS("KEYWORDS")="" S DR=DR_";1.5///@"
- I $L(DR)>100 D SETUP(CALL,"^FSCD(""CALL"",",.DR,.EDITED)
- I $G(FIELDS("MOD")) S DR=DR_";3///`"_+FIELDS("MOD")
- I $D(FIELDS("MOD")),FIELDS("MOD")="" S DR=DR_";3///@"
- I $G(FIELDS("IRM")) S DR=DR_";2.1///`"_+FIELDS("IRM")
- I $D(FIELDS("IRM")),FIELDS("IRM")="" S DR=DR_";2.1///@"
- I $G(FIELDS("PRI")) S DR=DR_";6///`"_+FIELDS("PRI")
- I $D(FIELDS("PRI")),FIELDS("PRI")="" S DR=DR_";6///@"
- I $G(FIELDS("SPEC")) S DR=DR_";5///`"_+FIELDS("SPEC")
- I $D(FIELDS("SPEC")),FIELDS("SPEC")="" S DR=DR_";5///@"
- I $G(FIELDS("SPECD")) S DR=DR_";5.1///`"_+FIELDS("SPECD")
- I $D(FIELDS("SPECD")),FIELDS("SPECD")="" S DR=DR_";5.1///@"
- I $G(FIELDS("DEVSUB")) S DR=DR_";3.2///`"_+FIELDS("DEVSUB")
- I $D(FIELDS("DEVSUB")),FIELDS("DEVSUB")="" S DR=DR_";3.2///@"
- D SETUP(CALL,"^FSCD(""CALL"",",.DR,.EDITED)
- S STATUS=+$G(FIELDS("STATUS"))
- I STATUS=2 D I 'OK Q
- .S OK=1
- .S DR="81///`"_DUZ
- .I $G(FIELDS("FUNC")) S DR=DR_";8///`"_+FIELDS("FUNC")
- .I $G(FIELDS("TASK")) S DR=DR_";9///`"_+FIELDS("TASK")
- .I $L($G(FIELDS("DATEC"))) S DR=DR_";82///"_FIELDS("DATEC")
- .I $L(DR) D I 'OK Q
- ..N DA,DIE,X,Y
- ..I $E(DR)=";" S DR=$E(DR,2,245)
- ..S DA=CALL,DIE="^FSCD(""CALL"","
- ..L +^FSCD("CALL",DA):30 I '$T S OK=0 Q ; *** needs ok
- ..D ^DIE
- ..L -^FSCD("CALL",DA)
- ..D PICKUP^FSCES(DA)
- ..S DR=""
- .D RES^FSCRPCNC(CALL)
- D STATUS(CALL,STATUS,.EDITED)
- Q
- ;
- FIX(VALUE) ; $$(input) -> correct for invalid characters
- N NEWVALUE
- S NEWVALUE=$TR(VALUE,";""^","~~~")
- I $E(NEWVALUE)="-" S NEWVALUE="~"_$E(NEWVALUE,2,245)
- I VALUE="?" S NEWVALUE="@"
- Q NEWVALUE
- ;
- SETUP(DA,DIE,DR,EDITED) ; from FSCRPCEF
- N ABBREV,CALLNUM,NEWV,OLDV,X,Y K NEWV,OLDV
- S CALLNUM=DA
- I '$L(DR),$O(^TMP("FSC WP",$J,"NOTE",0)) D Q
- .D UPDATE^FSCTASK(CALLNUM) S EDITED=1
- I '$L(DR) Q
- I $E(DR)=";" S DR=$E(DR,2,245)
- F ABBREV="SUBJECT","IRM","PHONE","MOD","SPEC","SPECD","PRI","PATCH","DEVSUB","KEYWORDS" S OLDV(ABBREV)=""
- D GET^FSCGET("CUSTOM",CALLNUM,.OLDV)
- L +^FSCD("CALL",DA):30 I '$T Q ; *** needs ok
- D ^DIE
- L -^FSCD("CALL",DA)
- D PICKUP^FSCES(DA)
- M NEWV=OLDV D GET^FSCGET("CUSTOM",CALLNUM,.NEWV)
- D AUDIT^FSCAUDIT(CALLNUM,.OLDV,.NEWV)
- D UPDATE^FSCTASK(CALLNUM) S EDITED=1
- S DR=""
- Q
- ;
- STATUS(CALL,STATUS,EDITED) ; from FSCRPCEF
- I 'STATUS Q
- N PREVSTAT
- S PREVSTAT=+$P(^FSCD("CALL",+CALL,0),U,17)
- I PREVSTAT<2 S PREVSTAT=+$P(^FSCD("CALL",+CALL,0),U,2)
- I PREVSTAT=0 D Q
- .D STATUS^FSCES(CALL,"",1)
- .D UPDATE^FSCTASK(CALL) S EDITED=1
- .I STATUS'=1 D
- ..D STATUS^FSCES(CALL,1,STATUS)
- ..D UPDATE^FSCTASK(CALL) S EDITED=1
- I STATUS,PREVSTAT=STATUS Q
- D STATUS^FSCES(CALL,PREVSTAT,STATUS)
- D UPDATE^FSCTASK(CALL) S EDITED=1
- Q
- ;
- REOPEN(IN,OUT) ; from FSCRPX (RPCReopenCall)
- N CALL,OLDSTAT
- S CALL=+$G(^TMP("FSCRPC",$J,"INPUT",1))
- I 'CALL Q
- S OLDSTAT=+$P($G(^FSCD("CALL",CALL,0)),U,2)
- I '(OLDSTAT=2!(OLDSTAT=99)) Q
- D STATUS^FSCES(CALL,OLDSTAT,1,1)
- D UPDATE^FSCTASK(CALL)
- D MRE^FSCMR(DUZ,CALL)
- D UPDATE^FSCAUDIT(CALL)
- S ^TMP("FSCRPC",$J,"OUTPUT",1)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HFSCRPCEC 4353 printed Feb 18, 2025@23:45:44 Page 2
- FSCRPCEC ;SLC/STAFF-NOIS RPC Edit Call ;9/6/98 21:56
- +1 ;;1.1;NOIS;;Sep 06, 1998
- +2 ;
- EDIT(IN,OUT) ; from FSCRPX (RPCEditCall)
- +1 NEW CALL,EDITED,FIELDS
- KILL FIELDS
- +2 KILL ^TMP("FSC WP",$JOB)
- +3 DO PROCESS^FSCRPCNC(.FIELDS)
- +4 SET CALL=+$GET(FIELDS("CALL"))
- +5 IF 'CALL
- QUIT
- +6 IF $ORDER(^TMP("FSCRPC",$JOB,"INPUT",1))
- Begin DoDot:1
- +7 DO FIELDS(CALL,.FIELDS,.EDITED)
- +8 IF EDITED
- DO MRE^FSCMR(DUZ,CALL)
- DO UPDATE^FSCAUDIT(CALL)
- End DoDot:1
- +9 SET ^TMP("FSCRPC",$JOB,"OUTPUT",1)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
- +10 KILL ^TMP("FSC WP",$JOB)
- +11 QUIT
- +12 ;
- FIELDS(CALL,FIELDS,EDITED) ; from FSCRPCEN
- +1 NEW DR,OK,STATUS,WOLDV,WNEWV
- KILL WOLDV,WNEWV
- +2 SET EDITED=0
- +3 IF $ORDER(^TMP("FSC WP",$JOB,"DESC",0))
- Begin DoDot:1
- +4 DO DESC^FSCRPCNC(CALL)
- +5 SET WOLDV("DESC")=1
- SET WNEWV("DESC")=2
- +6 ; forces audit update
- DO DESC^FSCAUDIT(CALL,.WOLDV,.WNEWV)
- End DoDot:1
- +7 DO NOTE^FSCRPCNC(CALL)
- +8 SET DR=""
- +9 IF $LENGTH($GET(FIELDS("SUBJECT")))
- SET DR=DR_";1///"_$$FIX(FIELDS("SUBJECT"))
- +10 IF $DATA(FIELDS("SUBJECT"))
- IF FIELDS("SUBJECT")=""
- SET DR=DR_";1///@"
- +11 IF $LENGTH($GET(FIELDS("PHONE")))
- SET DR=DR_";2.2///"_$$FIX(FIELDS("PHONE"))
- +12 IF $DATA(FIELDS("PHONE"))
- IF FIELDS("PHONE")=""
- SET DR=DR_";2.2///@"
- +13 IF $LENGTH($GET(FIELDS("PATCH")))
- SET DR=DR_";7///"_$$FIX(FIELDS("PATCH"))
- +14 IF $DATA(FIELDS("PATCH"))
- IF FIELDS("PATCH")=""
- SET DR=DR_";7///@"
- +15 IF $LENGTH($GET(FIELDS("KEYWORDS")))
- SET DR=DR_";1.5///"_$$FIX(FIELDS("KEYWORDS"))
- +16 IF $DATA(FIELDS("KEYWORDS"))
- IF FIELDS("KEYWORDS")=""
- SET DR=DR_";1.5///@"
- +17 IF $LENGTH(DR)>100
- DO SETUP(CALL,"^FSCD(""CALL"",",.DR,.EDITED)
- +18 IF $GET(FIELDS("MOD"))
- SET DR=DR_";3///`"_+FIELDS("MOD")
- +19 IF $DATA(FIELDS("MOD"))
- IF FIELDS("MOD")=""
- SET DR=DR_";3///@"
- +20 IF $GET(FIELDS("IRM"))
- SET DR=DR_";2.1///`"_+FIELDS("IRM")
- +21 IF $DATA(FIELDS("IRM"))
- IF FIELDS("IRM")=""
- SET DR=DR_";2.1///@"
- +22 IF $GET(FIELDS("PRI"))
- SET DR=DR_";6///`"_+FIELDS("PRI")
- +23 IF $DATA(FIELDS("PRI"))
- IF FIELDS("PRI")=""
- SET DR=DR_";6///@"
- +24 IF $GET(FIELDS("SPEC"))
- SET DR=DR_";5///`"_+FIELDS("SPEC")
- +25 IF $DATA(FIELDS("SPEC"))
- IF FIELDS("SPEC")=""
- SET DR=DR_";5///@"
- +26 IF $GET(FIELDS("SPECD"))
- SET DR=DR_";5.1///`"_+FIELDS("SPECD")
- +27 IF $DATA(FIELDS("SPECD"))
- IF FIELDS("SPECD")=""
- SET DR=DR_";5.1///@"
- +28 IF $GET(FIELDS("DEVSUB"))
- SET DR=DR_";3.2///`"_+FIELDS("DEVSUB")
- +29 IF $DATA(FIELDS("DEVSUB"))
- IF FIELDS("DEVSUB")=""
- SET DR=DR_";3.2///@"
- +30 DO SETUP(CALL,"^FSCD(""CALL"",",.DR,.EDITED)
- +31 SET STATUS=+$GET(FIELDS("STATUS"))
- +32 IF STATUS=2
- Begin DoDot:1
- +33 SET OK=1
- +34 SET DR="81///`"_DUZ
- +35 IF $GET(FIELDS("FUNC"))
- SET DR=DR_";8///`"_+FIELDS("FUNC")
- +36 IF $GET(FIELDS("TASK"))
- SET DR=DR_";9///`"_+FIELDS("TASK")
- +37 IF $LENGTH($GET(FIELDS("DATEC")))
- SET DR=DR_";82///"_FIELDS("DATEC")
- +38 IF $LENGTH(DR)
- Begin DoDot:2
- +39 NEW DA,DIE,X,Y
- +40 IF $EXTRACT(DR)=";"
- SET DR=$EXTRACT(DR,2,245)
- +41 SET DA=CALL
- SET DIE="^FSCD(""CALL"","
- +42 ; *** needs ok
- LOCK +^FSCD("CALL",DA):30
- IF '$TEST
- SET OK=0
- QUIT
- +43 DO ^DIE
- +44 LOCK -^FSCD("CALL",DA)
- +45 DO PICKUP^FSCES(DA)
- +46 SET DR=""
- End DoDot:2
- IF 'OK
- QUIT
- +47 DO RES^FSCRPCNC(CALL)
- End DoDot:1
- IF 'OK
- QUIT
- +48 DO STATUS(CALL,STATUS,.EDITED)
- +49 QUIT
- +50 ;
- FIX(VALUE) ; $$(input) -> correct for invalid characters
- +1 NEW NEWVALUE
- +2 SET NEWVALUE=$TRANSLATE(VALUE,";""^","~~~")
- +3 IF $EXTRACT(NEWVALUE)="-"
- SET NEWVALUE="~"_$EXTRACT(NEWVALUE,2,245)
- +4 IF VALUE="?"
- SET NEWVALUE="@"
- +5 QUIT NEWVALUE
- +6 ;
- SETUP(DA,DIE,DR,EDITED) ; from FSCRPCEF
- +1 NEW ABBREV,CALLNUM,NEWV,OLDV,X,Y
- KILL NEWV,OLDV
- +2 SET CALLNUM=DA
- +3 IF '$LENGTH(DR)
- IF $ORDER(^TMP("FSC WP",$JOB,"NOTE",0))
- Begin DoDot:1
- +4 DO UPDATE^FSCTASK(CALLNUM)
- SET EDITED=1
- End DoDot:1
- QUIT
- +5 IF '$LENGTH(DR)
- QUIT
- +6 IF $EXTRACT(DR)=";"
- SET DR=$EXTRACT(DR,2,245)
- +7 FOR ABBREV="SUBJECT","IRM","PHONE","MOD","SPEC","SPECD","PRI","PATCH","DEVSUB","KEYWORDS"
- SET OLDV(ABBREV)=""
- +8 DO GET^FSCGET("CUSTOM",CALLNUM,.OLDV)
- +9 ; *** needs ok
- LOCK +^FSCD("CALL",DA):30
- IF '$TEST
- QUIT
- +10 DO ^DIE
- +11 LOCK -^FSCD("CALL",DA)
- +12 DO PICKUP^FSCES(DA)
- +13 MERGE NEWV=OLDV
- DO GET^FSCGET("CUSTOM",CALLNUM,.NEWV)
- +14 DO AUDIT^FSCAUDIT(CALLNUM,.OLDV,.NEWV)
- +15 DO UPDATE^FSCTASK(CALLNUM)
- SET EDITED=1
- +16 SET DR=""
- +17 QUIT
- +18 ;
- STATUS(CALL,STATUS,EDITED) ; from FSCRPCEF
- +1 IF 'STATUS
- QUIT
- +2 NEW PREVSTAT
- +3 SET PREVSTAT=+$PIECE(^FSCD("CALL",+CALL,0),U,17)
- +4 IF PREVSTAT<2
- SET PREVSTAT=+$PIECE(^FSCD("CALL",+CALL,0),U,2)
- +5 IF PREVSTAT=0
- Begin DoDot:1
- +6 DO STATUS^FSCES(CALL,"",1)
- +7 DO UPDATE^FSCTASK(CALL)
- SET EDITED=1
- +8 IF STATUS'=1
- Begin DoDot:2
- +9 DO STATUS^FSCES(CALL,1,STATUS)
- +10 DO UPDATE^FSCTASK(CALL)
- SET EDITED=1
- End DoDot:2
- End DoDot:1
- QUIT
- +11 IF STATUS
- IF PREVSTAT=STATUS
- QUIT
- +12 DO STATUS^FSCES(CALL,PREVSTAT,STATUS)
- +13 DO UPDATE^FSCTASK(CALL)
- SET EDITED=1
- +14 QUIT
- +15 ;
- REOPEN(IN,OUT) ; from FSCRPX (RPCReopenCall)
- +1 NEW CALL,OLDSTAT
- +2 SET CALL=+$GET(^TMP("FSCRPC",$JOB,"INPUT",1))
- +3 IF 'CALL
- QUIT
- +4 SET OLDSTAT=+$PIECE($GET(^FSCD("CALL",CALL,0)),U,2)
- +5 IF '(OLDSTAT=2!(OLDSTAT=99))
- QUIT
- +6 DO STATUS^FSCES(CALL,OLDSTAT,1,1)
- +7 DO UPDATE^FSCTASK(CALL)
- +8 DO MRE^FSCMR(DUZ,CALL)
- +9 DO UPDATE^FSCAUDIT(CALL)
- +10 SET ^TMP("FSCRPC",$JOB,"OUTPUT",1)=CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
- +11 QUIT