1 | SCMCEV2 ;ALB/CMM - TEAM EVENT DRIVER UTILITIES ; 03/20/96
|
---|
2 | ;;5.3;Scheduling;**41**;AUG 13, 1993
|
---|
3 | ;
|
---|
4 | ACT(DFN,TIEN) ; active team assignment
|
---|
5 | N ACTD,FND,ENT
|
---|
6 | S ACTD="",FND=0
|
---|
7 | F S ACTD=$O(^SCPT(404.42,"AIDT",DFN,TIEN,ACTD)) Q:ACTD=""!(FND) D
|
---|
8 | .S ENT=$O(^SCPT(404.42,"AIDT",DFN,TIEN,ACTD,""))
|
---|
9 | .Q:ENT=""
|
---|
10 | .I $P($G(^SCPT(404.42,ENT,0)),"^",9)="" S FND=1
|
---|
11 | Q FND
|
---|
12 | ;
|
---|
13 | CHK(DFN,CLIEN,FLG) ;
|
---|
14 | ;check if auto enroll/discharge is appropriate
|
---|
15 | ;DFN - patient ien
|
---|
16 | ;EN1 - "DE" entry ien
|
---|
17 | ;CLIEN - clinic ien
|
---|
18 | ;FLG - add-1/del-2/both-3 flag
|
---|
19 | ;
|
---|
20 | ;RETURNS: 1^team ien = auto enroll/discharge
|
---|
21 | ; 0 - don't allow auto enroll/discharge
|
---|
22 | ;
|
---|
23 | N RETURN,LIST,ERR,OKAY,ACTIVE,TNODE,TIEN
|
---|
24 | S RETURN=0,LIST="TCLIST",ERR="ERR1"
|
---|
25 | K @LIST,@ERR
|
---|
26 | S OKAY=$$TMCL^SCAPMC16(CLIEN,"",.LIST,.ERR)
|
---|
27 | G:'OKAY EXIT
|
---|
28 | G:@LIST@(0)<0!(@LIST@(0)>1) EXIT
|
---|
29 | ;unique team
|
---|
30 | S TIEN=+$P($G(@LIST@(1)),"^")
|
---|
31 | I FLG=1!(FLG=3),$P($G(^SCTM(404.51,TIEN,0)),"^",11)'=1 G EXIT
|
---|
32 | I FLG=2!(FLG=3),$P($G(^SCTM(404.51,TIEN,0)),"^",12)'=1 G EXIT
|
---|
33 | ;auto enroll/discharge flag on to allow
|
---|
34 | S TNODE=$G(^SCTM(404.51,TIEN,0))
|
---|
35 | I $P(TNODE,"^",10)=1 G EXIT ;team close to future assignments
|
---|
36 | I $P(TNODE,"^",5)=1&($G(^DPT(DFN,"VET"))'="Y") G EXIT ;pc team but not vet
|
---|
37 | S ACTIVE=0
|
---|
38 | I $D(^SCPT(404.42,"AIDT",DFN,TIEN)) S ACTIVE=$$ACT(DFN,TIEN)
|
---|
39 | ;enrolled on team but is it still active
|
---|
40 | I ACTIVE&(FLG=1) G EXIT ;already enrolled
|
---|
41 | S RETURN="1^"_TIEN ;update/enroll
|
---|
42 | EXIT ;
|
---|
43 | K @LIST,@ERR
|
---|
44 | Q RETURN
|
---|
45 | ;
|
---|
46 | POSASS(DFN,TM) ;patient assigned to position on team TM
|
---|
47 | ;DFN - patient ien
|
---|
48 | ;TM - team ien
|
---|
49 | N PPLIST,ERR,OKAY,CNT,STOP
|
---|
50 | S STOP=0
|
---|
51 | S OKAY=$$TPPT^SCAPMC23(DFN,"","","","","","","PPLIST","ERR")
|
---|
52 | ;returns all positions patient assigned to today
|
---|
53 | Q:'OKAY -1
|
---|
54 | Q:'$D(PPLIST) 1 ;no associated positions
|
---|
55 | S CNT=0
|
---|
56 | F S CNT=$O(PPLIST(CNT)) Q:CNT=""!(CNT'?.N)!(STOP) D
|
---|
57 | .I +$P($G(PPLIST(CNT)),"^",3)=TM S STOP=1
|
---|
58 | I 'STOP Q 1
|
---|
59 | Q 0
|
---|