| 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 | 
|---|