1 | PXUALOCK ;ISA/KWP - PCE LOCK/UNLOCK UTILITY;3/29/1999
|
---|
2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**67**;AUG 12, 1996
|
---|
3 | ;+ LOCK(PXGLOBAL,PXWAIT,PXATT,PXMSG,PXBKG)
|
---|
4 | ;+ Returns 1 success 0 failure
|
---|
5 | ;+ PXGLOBAL -Global to be locked
|
---|
6 | ;+ PXWAIT -seconds for wait, default of 0
|
---|
7 | ;+ PXATT -Number of attempts to lock before failing
|
---|
8 | ;+ 0 would mean until canceled,default
|
---|
9 | ;+ PXMSG -a message to be printed above the wait message
|
---|
10 | ;+ PXBKG -0 foreground, default
|
---|
11 | ;+ 1 background, if background max 20 attempts
|
---|
12 | LOCK(PXGLOBAL,PXWAIT,PXATT,PXMSG,PXBKG) ;
|
---|
13 | I '$G(PXWAIT) S PXWAIT=0
|
---|
14 | I '$G(PXATT) S PXATT=0
|
---|
15 | I '$G(PXBKG) S PXBKG=0
|
---|
16 | N PXTMP,PXSPACE,PXEXIT,PXRESVAL S (PXEXIT,PXRESVAL)=0
|
---|
17 | F PXTMP=1:1:$S(PXATT:PXATT,PXBKG&('PXATT):20,1:9999999) D Q:PXEXIT
|
---|
18 | .L +@PXGLOBAL:PXWAIT
|
---|
19 | .I S (PXRESVAL,PXEXIT)=1 Q
|
---|
20 | .I 'PXBKG D
|
---|
21 | ..I 'PXBKG,PXTMP=1 W:$G(PXMSG)'="" !,PXMSG W !,"Waiting for file access, press ENTER to cancel..."
|
---|
22 | ..R PXSPACE:0
|
---|
23 | ..I S PXEXIT=1 Q
|
---|
24 | ..W "."
|
---|
25 | Q PXRESVAL
|
---|
26 | ;+ UNLOCK (PXGLOBAL,PXMSG)
|
---|
27 | ;+ PXGLOBAL -Global to unlock
|
---|
28 | ;+ PXMSG -message to be printed when unlocked, if any
|
---|
29 | UNLOCK(PXGLOBAL,PXMSG) ;
|
---|
30 | L -@PXGLOBAL
|
---|
31 | I $G(PXMSG)'="" W !,PXMSG
|
---|
32 | Q
|
---|