1 | RGEQSUB ;BHM/RGY,DKM-Dequeue processor ;14-Oct-1998
|
---|
2 | ;;1.0; CLINICAL INFO RESOURCE NETWORK ;;30 Apr 99
|
---|
3 | SUBPROC ;
|
---|
4 | NEW ENT,CURTIME,HTIME,HORLOG,PARAM,STAT,PROG,ERROR,RGLOG
|
---|
5 | L +^RGEQ(TYPE):1 E Q
|
---|
6 | S ENT=$G(^RGEQASN(+$O(^RGEQASN("B",TYPE,0)),0))
|
---|
7 | S X=+$P(ENT,"^",3) S:X<1!(X>10) X=10 X ^%ZOSF("PRIORITY")
|
---|
8 | I $$NEWERR^%ZTER N $ET S $ET=""
|
---|
9 | S HTIME=+$P($G(^RGEQASN(+$O(^RGEQASN("B",TYPE,0)),0)),"^",4)
|
---|
10 | S:HTIME<30 HTIME=30
|
---|
11 | S CURTIME=0
|
---|
12 | F Q:$$ESTOP^RGEQDMN1(TYPE)!(CURTIME'<HTIME) D
|
---|
13 | .M ^RGEQ(TYPE)=^RGEQ("ADQ",TYPE)
|
---|
14 | .K ^RGEQ("ADQ")
|
---|
15 | .I $O(^RGEQ(TYPE,""))]"" D PROCESS S CURTIME=0 Q
|
---|
16 | .S CURTIME=CURTIME+5
|
---|
17 | .H 5
|
---|
18 | .Q
|
---|
19 | L -^RGEQ(TYPE)
|
---|
20 | K TYPE Q
|
---|
21 | PROCESS ;
|
---|
22 | S PARAM="",STAT=$$ENT^RGEQSTAT(TYPE),HORLOG=+$H
|
---|
23 | S PROG=$P($G(^RGEQASN(+$O(^RGEQASN("B",TYPE,0)),1)),"^",1,2)
|
---|
24 | I PROG="" S PROG="EVENT TYPE DOES NOT EXIST"
|
---|
25 | E D
|
---|
26 | .S X=$P(PROG,"^",2)
|
---|
27 | .I X="" S PROG="INVALID PROGRAM NAME"
|
---|
28 | .E D
|
---|
29 | ..X ^%ZOSF("TEST")
|
---|
30 | ..I '$T S PROG="PROGRAM DOES NOT EXIST"
|
---|
31 | ..Q
|
---|
32 | .Q
|
---|
33 | F S PARAM=$O(^RGEQ(TYPE,PARAM)) Q:PARAM="" D
|
---|
34 | .I +$H'=HORLOG S STAT=$$ENT^RGEQSTAT(TYPE),HORLOG=+$H
|
---|
35 | .I PROG'["^" D Q
|
---|
36 | ..D SET^RGEQEXC(TYPE,PROG,PARAM)
|
---|
37 | ..K ^RGEQ(TYPE,PARAM)
|
---|
38 | ..S $P(^RGSTAT(995.2,STAT,1),"^",2)=$P($G(^RGSTAT(995.2,STAT,1)),"^",2)+1
|
---|
39 | ..Q
|
---|
40 | .S X="ERROR^RGEQSUB",@^%ZOSF("TRAP"),ERROR=""
|
---|
41 | .D START^RGHLLOG(,TYPE,PARAM)
|
---|
42 | .S ^RGEQ("ADQ",TYPE,PARAM)=""
|
---|
43 | .K ^RGEQ(TYPE,PARAM)
|
---|
44 | .D @(PROG_"("""_TYPE_""","""_PARAM_""",.ERROR,"""_$P(ENT,"^",2)_""")")
|
---|
45 | .I ERROR="" S $P(^RGSTAT(995.2,STAT,1),"^")=$P($G(^RGSTAT(995.2,STAT,1)),"^")+1
|
---|
46 | .I ERROR]"" D
|
---|
47 | ..S $P(^RGSTAT(995.2,STAT,1),"^",2)=$P($G(^RGSTAT(995.2,STAT,1)),"^",2)+1
|
---|
48 | ..D EXC^RGHLLOG(ERROR),SET^RGEQEXC(TYPE,ERROR,PARAM)
|
---|
49 | ..Q
|
---|
50 | .K ^RGEQ("ADQ",TYPE,PARAM)
|
---|
51 | .D STOP^RGHLLOG(0)
|
---|
52 | .Q
|
---|
53 | Q
|
---|
54 | ERROR ;Come here on application error
|
---|
55 | N ERROR
|
---|
56 | S ERROR=$$EC^%ZOSV
|
---|
57 | S $P(^RGSTAT(995.2,STAT,1),"^",2)=$P($G(^RGSTAT(995.2,STAT,1)),"^",2)+1
|
---|
58 | D EXC^RGHLLOG(6,ERROR),SET^RGEQEXC(TYPE,ERROR,PARAM)
|
---|
59 | K ^RGEQ("ADQ",TYPE,PARAM),^RGEQ(TYPE,PARAM)
|
---|
60 | D STOP^RGHLLOG(1),^%ZTER
|
---|
61 | Q
|
---|