1 | PSGPLUTL ;BIR/RLW-PICK LIST UTILITIES ;06 AUG 96 / 10:54 AM
|
---|
2 | ;;5.0; INPATIENT MEDICATIONS ;**109**;16 DEC 97
|
---|
3 | ;
|
---|
4 | PAT ; find next patient or jump to a new patient
|
---|
5 | I $E(OK,1,1)="^"&($P(OK,"^",2)?1.A) D JUMP Q
|
---|
6 | S PN=$O(^PS(53.5,"AC",PSGPLG,TM,WDN,RB,PN))
|
---|
7 | Q
|
---|
8 | ;
|
---|
9 | JUMP ; try to find patient user wants to jump to and construct "AC" xref
|
---|
10 | S DIC="^PS(53.5,"_PSGPLG_",1,",DIC(0)="EQZ",X=PSGP D ^DIC K DIC
|
---|
11 | Q
|
---|
12 | ;
|
---|
13 | LOCK(PSGPLG,APPL) ; Pick List routines use an ^XTMP node instead of locking, to allow some jobs to run concurrently on the same Pick List (PRINT and SEND TO ATC).
|
---|
14 | ; PSGPLG=pick list number, APPL=option attempting to "lock", SETAPPL=option already in progress, APPLOK=if '1', option attempting to "lock" can proceed.
|
---|
15 | N SETAPPL,APPLOK,SUB,PLG
|
---|
16 | D NOW^%DTC S X1=X,X2=1 D C^%DTC S ^XTMP("PSGPL",0)=X,APPLOK=0
|
---|
17 | ; clean up XTMP nodes left by aborted jobs (for all pick lists)
|
---|
18 | S PLG=0 F S PLG=$O(^XTMP("PSGPL",PLG)) Q:PLG="" D
|
---|
19 | .S SETAPPL=0 F S SETAPPL=$O(^XTMP("PSGPL",PLG,SETAPPL)) Q:SETAPPL="" D
|
---|
20 | ..S SUB=0 F S SUB=$O(^XTMP("PSGPL",PLG,SETAPPL,SUB)) Q:SUB="" L +^XTMP("PSGPL",PLG,SETAPPL,SUB):1 I K ^XTMP("PSGPL",PLG,SETAPPL,SUB) L -^XTMP("PSGPL",PLG,SETAPPL,SUB)
|
---|
21 | I '$D(^XTMP("PSGPL",PSGPLG)) S ^XTMP("PSGPL",PSGPLG,APPL,$J)="" L +^XTMP("PSGPL",PSGPLG,APPL,$J):1 Q 1
|
---|
22 | S SETAPPL=0 F S SETAPPL=$O(^XTMP("PSGPL",PSGPLG,SETAPPL)) Q:SETAPPL="" D
|
---|
23 | .I (APPL="PSGPLR")&((SETAPPL="PSGTAP")!(SETAPPL="PSGPLR")) S ^XTMP("PSGPL",PSGPLG,APPL,$J)="" L +^XTMP("PSGPL",PSGPLG,APPL,$J):1 S:$T APPLOK=1 Q
|
---|
24 | .I (APPL="PSGTAP")&(SETAPPL="PSGPLR") S ^XTMP("PSGPL",PSGPLG,APPL,$J)="" L +^XTMP("PSGPL",PSGPLG,APPL,$J):1 S:$T APPLOK=1 Q
|
---|
25 | Q APPLOK
|
---|
26 | ;
|
---|
27 | UNLOCK(PSGPLG,APPL) ;.
|
---|
28 | L -^XTMP("PSGPL",PSGPLG,APPL,$J) K ^XTMP("PSGPL",PSGPLG,APPL,$J)
|
---|
29 | K:'$O(^XTMP("PSGPL",0)) ^XTMP("PSGPL")
|
---|
30 | Q
|
---|