Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SDEC23

SDEC23.m

Go to the documentation of this file.
  1. SDEC23 ;ALB/SAT - VISTA SCHEDULING RPCS ;JAN 15, 2016
  1. ;;5.3;Scheduling;**627**;Aug 13, 1993;Build 249
  1. ;
  1. Q
  1. ;
  1. ;
  1. EVENT(SDECEVENT,SDECPARAM,SDECSIP,SDECSPT) ;EP
  1. ;Raise event to interested clients
  1. ;Clients are listed in ^TMP("SDEC23",$J,"EVENT",EVENT_NAME,IP,PORT)
  1. ;SDECSIP and SDECSPT represent the sender's IP and PORT.
  1. ;The event will not be raised back to the sender if these are non-null
  1. ;
  1. N POP,X
  1. Q:'$D(^TMP("SDEC23",$J,"EVENT",SDECEVENT))
  1. S SDECIP=0 F S SDECIP=$O(^TMP("SDEC23",$J,"EVENT",SDECEVENT,SDECIP)) Q:SDECIP="" D
  1. . S SDECPORT=0 F S SDECPORT=$O(^TMP("SDEC23",$J,"EVENT",SDECEVENT,SDECIP,SDECPORT)) Q:'+SDECPORT D
  1. . . I SDECIP=SDECSIP Q ;,SDECPORT=SDECSPT Q
  1. . . D CALL^%ZISTCP(SDECIP,SDECPORT,5)
  1. . . I POP K ^TMP("SDEC23",$J,"EVENT",SDECEVENT,SDECIP,SDECPORT) Q
  1. . . ;U IO R X#3:5
  1. . . I X'="ACK" K ^TMP("SDEC23",$J,"EVENT",SDECEVENT,SDECIP,SDECPORT) Q
  1. . . S SDECPARAM=$S(SDECPARAM="":"",1:U_SDECPARAM)
  1. . . U IO W SDECEVENT,SDECPARAM,!
  1. . . D ^%ZISC
  1. . . Q
  1. . Q
  1. Q
  1. ;
  1. EVERR(SDECEVENT,SDECIP,SDECPORT) ;
  1. ;
  1. Q:$G(SDECEVENT)=""
  1. Q:$G(SDECIP)=""
  1. Q:$G(SDECIP)=""
  1. K ^TMP("SDEC23",$J,"EVENT",SDECEVENT,SDECIP,SDECPORT)
  1. Q
  1. ;
  1. REGET ;EP
  1. ;Error trap from REGEVNT
  1. ;
  1. I '$D(SDECI) N SDECI S SDECI=999
  1. S SDECI=SDECI+1
  1. D REGERR(SDECI,99)
  1. Q
  1. ;
  1. REGERR(SDECI,SDECERID) ;Error processing
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)=SDECERID_$C(30)
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)=$C(31)
  1. Q
  1. ;
  1. ;
  1. REGEVENT(SDECY,SDECEVENT,SDECIP,SDECPORT) ;Called by client to inform VISTA server of client's interest in SDECEVENT
  1. ;REGEVENT(SDECY,SDECEVENT,SDECIP,SDECPORT) external parameter tag is in SDEC
  1. ;SDECEVENT - Event to register with VistA
  1. ;SDECIP - Client IP address
  1. ;SDECPORT - Client Port
  1. ;Returns RECORDSET with field ERRORID.
  1. ;If everything ok then ERRORID = 0;
  1. ;
  1. N SDECI
  1. S SDECI=0
  1. S SDECY="^TMP(""SDEC"","_$J_")"
  1. K @SDECY
  1. S ^TMP("SDEC",$J,0)="I00020ERRORID"_$C(30)
  1. I '+SDECPORT D REGERR(SDECI,1) Q
  1. I SDECIP="" D REGERR(SDECI,2) Q
  1. S ^TMP("SDEC23",$J,"EVENT",SDECEVENT,SDECIP,SDECPORT)=""
  1. ;
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)="0"_$C(30)_$C(31)
  1. Q
  1. ;
  1. UNREGEV(SDECY,SDECEVENT,SDECIP,SDECPORT) ;Called by client to Unregister client's interest in SDECEVENT
  1. ;UNREGEV(SDECY,SDECEVENT,SDECIP,SDECPORT) external parameter tag in SDEC
  1. ;Returns RECORDSET with field ERRORID.
  1. ;If everything ok then ERRORID = 0;
  1. ;
  1. N SDECI
  1. S SDECI=0
  1. S SDECY="^TMP(""SDEC"","_$J_")"
  1. K @SDECY
  1. S ^TMP("SDEC",$J,0)="I00020ERRORID"_$C(30)
  1. I '+SDECPORT D REGERR(SDECI,1) Q
  1. I SDECIP="" D REGERR(SDECI,2) Q
  1. K ^TMP("SDEC23",$J,"EVENT",SDECEVENT,SDECIP,SDECPORT)
  1. ;
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)="0"_$C(30)_$C(31)
  1. Q
  1. ;
  1. RAISEVNT(SDECY,SDECEVENT,SDECPARAM,SDECSIP,SDECSPT) ;RAISE EVENT
  1. ;RAISEVNT(SDECY,SDECEVENT,SDECPARAM,SDECSIP,SDECSPT) external parameter tag is in SDEC
  1. ;RPC Called to raise event SDECEVENT with parameter SDECPARAM
  1. ;SDECSIP and SDECSPT represent the sender's IP and PORT.
  1. ;If not null, these will prevent the event from being raised back
  1. ;to the sender.
  1. ;Returns a RECORDSET wit the field ERRORID.
  1. ;If everything ok then ERRORID = 0;
  1. ;
  1. N SDECI
  1. S SDECI=0
  1. S SDECY="^TMP(""SDEC"","_$J_")"
  1. K @SDECY
  1. S ^TMP("SDEC",$J,0)="I00020ERRORID"_$C(30)
  1. ;
  1. D EVENT(SDECEVENT,SDECPARAM,SDECSIP,SDECSPT)
  1. ;
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)="0"_$C(30)_$C(31)
  1. Q