SDAMEVT2 ;ALB/CAW - Add/Edit Event Driver Utilities ; 10/15/92
;;5.3;Scheduling;**132**;Aug 13, 1993
;
BEFORE(SDOE,SDHDL) ;
D CAPTURE("BEFORE",.SDOE,.SDHDL)
Q
;
AFTER(SDOE,SDHDL) ;
D CAPTURE("AFTER",.SDOE,SDHDL)
Q
;
CAPTURE(SDCAP,SDOE,SDHDL) ;
N OP
; -- set up 'OP'posite variable
S OP=$S(SDCAP="BEFORE":"AFTER",1:"BEFORE")
;
; -- next lines are redunant data with OE^SDAMEVT but consistent
; with appt and disp ^TMP strurcture
S ^TMP("SDEVT",$J,SDHDL,2,"STANDALONE",0,SDCAP)=$G(^SCE(SDOE,0))
S:'$D(^TMP("SDEVT",$J,SDHDL,2,"STANDALONE",0,OP)) ^(OP)=""
;
D OE^SDAMEVT(.SDCAP,2,SDOE,SDHDL)
Q
;
EVT(SDOE,SDEVT,SDHDL,SDOEP) ;
D AFTER(SDOE,SDHDL)
D EVTGO
Q
;
EVTGO ; -- do it!
N SDATA,SDHDLX
S SDHDLX="SDHDL"_SDHDL_" SAVE"
; for compatibility in IB
D SWAP("SDAMEVT",SDHDLX)
S SDATA="0^0^0^0",(SDATA("BEFORE","STATUS"),SDATA("AFTER","STATUS"))=""
S (^TMP("SDAMEVT",$J,"BEFORE","STATUS"),^TMP("SDAMEVT",$J,"AFTER","STATUS"))=""
D EVT^SDAMEVT(.SDATA,SDEVT,0,SDHDL),SWAP(SDHDLX,"SDAMEVT")
Q
;
SWAP(FR,TO) ; -- save/restore data for compatibility
N NODE,SDCAP
K ^TMP(TO,$J)
I $D(^TMP(FR,$J)) D K ^TMP(FR,$J)
.F SDCAP="BEFORE","AFTER" S NODE="" F S NODE=$O(^TMP(FR,$J,SDCAP,NODE)) Q:NODE="" S ^TMP(TO,$J,SDCAP,NODE)=^TMP(FR,$J,SDCAP,NODE)
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDAMEVT2 1323 printed Oct 16, 2024@18:48:16 Page 2
SDAMEVT2 ;ALB/CAW - Add/Edit Event Driver Utilities ; 10/15/92
+1 ;;5.3;Scheduling;**132**;Aug 13, 1993
+2 ;
BEFORE(SDOE,SDHDL) ;
+1 DO CAPTURE("BEFORE",.SDOE,.SDHDL)
+2 QUIT
+3 ;
AFTER(SDOE,SDHDL) ;
+1 DO CAPTURE("AFTER",.SDOE,SDHDL)
+2 QUIT
+3 ;
CAPTURE(SDCAP,SDOE,SDHDL) ;
+1 NEW OP
+2 ; -- set up 'OP'posite variable
+3 SET OP=$SELECT(SDCAP="BEFORE":"AFTER",1:"BEFORE")
+4 ;
+5 ; -- next lines are redunant data with OE^SDAMEVT but consistent
+6 ; with appt and disp ^TMP strurcture
+7 SET ^TMP("SDEVT",$JOB,SDHDL,2,"STANDALONE",0,SDCAP)=$GET(^SCE(SDOE,0))
+8 if '$DATA(^TMP("SDEVT",$JOB,SDHDL,2,"STANDALONE",0,OP))
SET ^(OP)=""
+9 ;
+10 DO OE^SDAMEVT(.SDCAP,2,SDOE,SDHDL)
+11 QUIT
+12 ;
EVT(SDOE,SDEVT,SDHDL,SDOEP) ;
+1 DO AFTER(SDOE,SDHDL)
+2 DO EVTGO
+3 QUIT
+4 ;
EVTGO ; -- do it!
+1 NEW SDATA,SDHDLX
+2 SET SDHDLX="SDHDL"_SDHDL_" SAVE"
+3 ; for compatibility in IB
+4 DO SWAP("SDAMEVT",SDHDLX)
+5 SET SDATA="0^0^0^0"
SET (SDATA("BEFORE","STATUS"),SDATA("AFTER","STATUS"))=""
+6 SET (^TMP("SDAMEVT",$JOB,"BEFORE","STATUS"),^TMP("SDAMEVT",$JOB,"AFTER","STATUS"))=""
+7 DO EVT^SDAMEVT(.SDATA,SDEVT,0,SDHDL)
DO SWAP(SDHDLX,"SDAMEVT")
+8 QUIT
+9 ;
SWAP(FR,TO) ; -- save/restore data for compatibility
+1 NEW NODE,SDCAP
+2 KILL ^TMP(TO,$JOB)
+3 IF $DATA(^TMP(FR,$JOB))
Begin DoDot:1
+4 FOR SDCAP="BEFORE","AFTER"
SET NODE=""
FOR
SET NODE=$ORDER(^TMP(FR,$JOB,SDCAP,NODE))
if NODE=""
QUIT
SET ^TMP(TO,$JOB,SDCAP,NODE)=^TMP(FR,$JOB,SDCAP,NODE)
End DoDot:1
KILL ^TMP(FR,$JOB)
+5 QUIT
+6 ;