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

RGEQSUB.m

Go to the documentation of this file.
  1. RGEQSUB ;BHM/RGY,DKM-Dequeue processor ;14-Oct-1998
  1. ;;1.0; CLINICAL INFO RESOURCE NETWORK ;;30 Apr 99
  1. SUBPROC ;
  1. NEW ENT,CURTIME,HTIME,HORLOG,PARAM,STAT,PROG,ERROR,RGLOG
  1. L +^RGEQ(TYPE):1 E Q
  1. S ENT=$G(^RGEQASN(+$O(^RGEQASN("B",TYPE,0)),0))
  1. S X=+$P(ENT,"^",3) S:X<1!(X>10) X=10 X ^%ZOSF("PRIORITY")
  1. I $$NEWERR^%ZTER N $ET S $ET=""
  1. S HTIME=+$P($G(^RGEQASN(+$O(^RGEQASN("B",TYPE,0)),0)),"^",4)
  1. S:HTIME<30 HTIME=30
  1. S CURTIME=0
  1. F Q:$$ESTOP^RGEQDMN1(TYPE)!(CURTIME'<HTIME) D
  1. .M ^RGEQ(TYPE)=^RGEQ("ADQ",TYPE)
  1. .K ^RGEQ("ADQ")
  1. .I $O(^RGEQ(TYPE,""))]"" D PROCESS S CURTIME=0 Q
  1. .S CURTIME=CURTIME+5
  1. .H 5
  1. .Q
  1. L -^RGEQ(TYPE)
  1. K TYPE Q
  1. PROCESS ;
  1. S PARAM="",STAT=$$ENT^RGEQSTAT(TYPE),HORLOG=+$H
  1. S PROG=$P($G(^RGEQASN(+$O(^RGEQASN("B",TYPE,0)),1)),"^",1,2)
  1. I PROG="" S PROG="EVENT TYPE DOES NOT EXIST"
  1. E D
  1. .S X=$P(PROG,"^",2)
  1. .I X="" S PROG="INVALID PROGRAM NAME"
  1. .E D
  1. ..X ^%ZOSF("TEST")
  1. ..I '$T S PROG="PROGRAM DOES NOT EXIST"
  1. ..Q
  1. .Q
  1. F S PARAM=$O(^RGEQ(TYPE,PARAM)) Q:PARAM="" D
  1. .I +$H'=HORLOG S STAT=$$ENT^RGEQSTAT(TYPE),HORLOG=+$H
  1. .I PROG'["^" D Q
  1. ..D SET^RGEQEXC(TYPE,PROG,PARAM)
  1. ..K ^RGEQ(TYPE,PARAM)
  1. ..S $P(^RGSTAT(995.2,STAT,1),"^",2)=$P($G(^RGSTAT(995.2,STAT,1)),"^",2)+1
  1. ..Q
  1. .S X="ERROR^RGEQSUB",@^%ZOSF("TRAP"),ERROR=""
  1. .D START^RGHLLOG(,TYPE,PARAM)
  1. .S ^RGEQ("ADQ",TYPE,PARAM)=""
  1. .K ^RGEQ(TYPE,PARAM)
  1. .D @(PROG_"("""_TYPE_""","""_PARAM_""",.ERROR,"""_$P(ENT,"^",2)_""")")
  1. .I ERROR="" S $P(^RGSTAT(995.2,STAT,1),"^")=$P($G(^RGSTAT(995.2,STAT,1)),"^")+1
  1. .I ERROR]"" D
  1. ..S $P(^RGSTAT(995.2,STAT,1),"^",2)=$P($G(^RGSTAT(995.2,STAT,1)),"^",2)+1
  1. ..D EXC^RGHLLOG(ERROR),SET^RGEQEXC(TYPE,ERROR,PARAM)
  1. ..Q
  1. .K ^RGEQ("ADQ",TYPE,PARAM)
  1. .D STOP^RGHLLOG(0)
  1. .Q
  1. Q
  1. ERROR ;Come here on application error
  1. N ERROR
  1. S ERROR=$$EC^%ZOSV
  1. S $P(^RGSTAT(995.2,STAT,1),"^",2)=$P($G(^RGSTAT(995.2,STAT,1)),"^",2)+1
  1. D EXC^RGHLLOG(6,ERROR),SET^RGEQEXC(TYPE,ERROR,PARAM)
  1. K ^RGEQ("ADQ",TYPE,PARAM),^RGEQ(TYPE,PARAM)
  1. D STOP^RGHLLOG(1),^%ZTER
  1. Q