SDAMEVT ;ALB/MJK - Appt Event Driver Utilities ; 12/1/91 [ 09/19/96 1:39 PM ] ;;5.3;Scheduling;**15,132,443**;Aug 13, 1993 ; BEFORE(SDATA,DFN,SDT,SDCL,SDDA,SDHDL) ; -- get before values K ^TMP("SDAMEVT",$J) D CAPTURE("BEFORE",.SDATA,.DFN,.SDT,.SDCL,.SDDA,.SDHDL) Q ; AFTER(SDATA,DFN,SDT,SDCL,SDDA,SDHDL) ; -- get after values D CAPTURE("AFTER",.SDATA,.DFN,.SDT,.SDCL,.SDDA,.SDHDL) Q ; HANDLE(SDORG) ; -- get evt handle ; SDORG = originating process (1=appt , 2=a/e , 3=disp) S (Y,^($J))=$G(^TMP("SDEVT HANDLE",$J))+1 Q Y ; CLEAN(SDHDL) ; K ^TMP("SDEVT",$J,SDHDL) Q ; HDLKILL ; -- kill off handle data K SDHDL,^TMP("SDEVT HANDLE",$J),^TMP("SDEVT",$J) Q ; CAPTURE(SDCAP,SDATA,DFN,SDT,SDCL,SDDA,SDHDL) ; N Z S (Z,^TMP("SDAMEVT",$J,SDCAP,"DPT"),^TMP("SDEVT",$J,SDHDL,1,"DPT",0,SDCAP))=$G(^DPT(DFN,"S",SDT,0)) S (^TMP("SDAMEVT",$J,SDCAP,"SC"),^TMP("SDEVT",$J,SDHDL,1,"SC",0,SDCAP))=$G(^SC(SDCL,"S",SDT,1,+SDDA,0)) S (^TMP("SDAMEVT",$J,SDCAP,"STATUS"),SDATA(SDCAP,"STATUS"))=$TR($$STATUS^SDAM1(DFN,SDT,SDCL,Z,SDDA),";","^") D:$P(Z,U,20) OE(.SDCAP,1,$P(Z,U,20),.SDHDL) Q ; ; EVT(SDATA,SDAMEVT,SDMODE,SDHDL) ; -- calls the sdam event protocol N OROLD K DTOUT,DIROUT I $G(SDATA("BEFORE","STATUS"))=$G(SDATA("AFTER","STATUS")),'$$COMP^SDAMEVT4(SDHDL,SDAMEVT) G EVTQ ; SD*5.3*443 S:$P(SDATA,U,3) $P(SDATA,U,5)=$$REQ^SDM1A(+$P(SDATA,U,3)) S X=+$O(^ORD(101,"B","SDAM APPOINTMENT EVENTS",0))_";ORD(101," D EN^XQOR EVTQ K XQORPOP,X,^TMP("SDAMEVT",$J) D CLEAN(SDHDL) Q ; ; MAKE(DFN,SDT,SDCL,SDDA,SDMODE) ; -- make appt event #1 N SDATA,%,SDMKHDL,SDHDL K ^TMP("SDAMEVT",$J) S SDMKHDL=$$HANDLE(1) S (^TMP("SDAMEVT",$J,"BEFORE","DPT"),^TMP("SDAMEVT",$J,"BEFORE","SC"),SDATA("BEFORE","STATUS"),^TMP("SDAMEVT",$J,"BEFORE","STATUS"),^TMP("SDEVT",$J,SDMKHDL,1,"DPT",0,"BEFORE"),^TMP("SDEVT",$J,SDMKHDL,1,"SC",0,"BEFORE"))="" D AFTER(.SDATA,DFN,SDT,SDCL,SDDA,SDMKHDL) S SDATA=SDDA_U_DFN_U_SDT_U_SDCL D EVT(.SDATA,1,+$G(SDAMODE),SDMKHDL) ; -- if appt d/t is less than NOW then check-in D NOW^%DTC I SDT<% W:'$G(SDMODE) ! D .N SDACT,SDCOQUIT .S SDDA=+SDATA,DFN=$P(SDATA,U,2),SDT=$P(SDATA,U,3),SDCL=$P(SDATA,U,4) K SDATA .I $$REQ^SDM1A(SDT)="CO",'$G(SDCOACT) D ..S SDACT=$S(SDT