| 1 | SCMCMU ;ALB/MJK - PCMM Mass Team/Position Unassignment Utility ; 10 Jul 98
 | 
|---|
| 2 |  ;;5.3;Scheduling;**148**;AUG 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EN ; -- entry point for mass unassignment (mu)
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  N SCMUTYPE,SCTEAM,SCPOS,SCABORT,SCDATE,SCDIS,SCTPDIS
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  S (SCTEAM,SCPOS,SCDIS)=0
 | 
|---|
| 9 |  S SCABORT=-1
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ; -- get type of md (team or position)
 | 
|---|
| 12 |  S SCMUTYPE=$$TYPE()
 | 
|---|
| 13 |  IF SCMUTYPE=SCABORT G ENQ
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  ; -- get effective date
 | 
|---|
| 16 |  S SCDATE=$$DATE()
 | 
|---|
| 17 |  IF SCDATE=SCABORT G ENQ
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  ; -- get team
 | 
|---|
| 20 |  S SCTEAM=$$TEAM(SCDATE)
 | 
|---|
| 21 |  IF SCTEAM=SCABORT G ENQ
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  ; -- get position if position md
 | 
|---|
| 24 |  IF SCMUTYPE="T" D  IF SCDIS=SCABORT G ENQ
 | 
|---|
| 25 |  . S SCDIS=$$TMDIS(SCTEAM,SCDATE,.SCTPDIS)
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 |  ; -- get position if position md
 | 
|---|
| 28 |  IF SCMUTYPE="P" D  IF SCPOS=SCABORT!(SCDIS=SCABORT) G ENQ
 | 
|---|
| 29 |  . S SCPOS=$$POS(SCTEAM,SCDATE)
 | 
|---|
| 30 |  . S SCDIS=$$TPDIS(SCPOS,.SCTPDIS)
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  ; -- call lm routine
 | 
|---|
| 33 |  D EN^SCMCMU1(SCTEAM,SCPOS,.SCTPDIS,SCMUTYPE,SCDATE)
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 | ENQ Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | TYPE() ; -- get type of mu
 | 
|---|
| 38 |  N DIR,DIRUT,Y
 | 
|---|
| 39 |  S DIR(0)="SABM^T:Team;P:Position"
 | 
|---|
| 40 |  S DIR("A")="Select Type of Mass Unassignment: "
 | 
|---|
| 41 |  S DIR("B")="Team"
 | 
|---|
| 42 |  D ^DIR
 | 
|---|
| 43 |  Q $S($D(DIRUT):-1,1:Y)
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 | DATE() ; -- get effective date
 | 
|---|
| 46 |  N DIR,DIRUT,Y
 | 
|---|
| 47 |  S DIR(0)="DA^::EX"
 | 
|---|
| 48 |  S DIR("A")="Effective Date: "
 | 
|---|
| 49 |  S DIR("B")="T-1"
 | 
|---|
| 50 |  D ^DIR
 | 
|---|
| 51 |  Q $S($D(DIRUT):-1,1:Y)
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 | TEAM(SCDATE) ; -- get team
 | 
|---|
| 54 |  N DIC,Y,SCDTE
 | 
|---|
| 55 |  D DATE^SCMCMU1(SCDATE,.SCDTE)
 | 
|---|
| 56 |  S DIC("S")="IF +$$ACTHIST^SCAPMCU2(404.58,+Y,SCDTE)=1"
 | 
|---|
| 57 |  S DIC="^SCTM(404.51,",DIC(0)="AEQM"
 | 
|---|
| 58 |  D ^DIC
 | 
|---|
| 59 |  Q +Y
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | POS(SCTEAM,SCDATE) ; -- get position for team
 | 
|---|
| 62 |  N DIC,Y,SCDTE,SCPOS,SCPOSI,I
 | 
|---|
| 63 |  D DATE^SCMCMU1(SCDATE,.SCDTE)
 | 
|---|
| 64 |  S SCPOS=$NA(^TMP("SCMU",$J,"POSITION"))
 | 
|---|
| 65 |  K @SCPOS
 | 
|---|
| 66 |  IF '$$TPTM^SCAPMC24(SCTEAM,SCDTE,"","",SCPOS) S Y=-1 G POSQ
 | 
|---|
| 67 |  S I=0 F  S I=$O(@SCPOS@(I)) Q:'I  S SCPOSI(+@SCPOS@(I))=""
 | 
|---|
| 68 |  S DIC="^SCTM(404.57,"
 | 
|---|
| 69 |  S DIC(0)="AEQM"
 | 
|---|
| 70 |  S DIC("S")="IF $D(SCPOSI(+Y)),$P(^(0),U,2)=+SCTEAM,+$$ACTHIST^SCAPMCU2(404.59,+Y,SCDTE)=1"
 | 
|---|
| 71 |  D ^DIC
 | 
|---|
| 72 | POSQ K @SCPOS
 | 
|---|
| 73 |  Q +Y
 | 
|---|
| 74 |  ;
 | 
|---|
| 75 | TMDIS(SCTEAM,SCDATE,SCTPDIS) ; -- discharge patient from clinics
 | 
|---|
| 76 |  N DIR,Y,SCDTE,SCPOS,SCPOSI,I,SCOK,SCCL,SCCLNM,SCPOS0,SCTEAMNM
 | 
|---|
| 77 |  S SCOK=1
 | 
|---|
| 78 |  D DATE^SCMCMU1(SCDATE,.SCDTE)
 | 
|---|
| 79 |  W !!,">>> Checking to see if any team positions are associated with clinics..."
 | 
|---|
| 80 |  S SCPOS=$NA(^TMP("SCMU",$J,"POSITION"))
 | 
|---|
| 81 |  K @SCPOS
 | 
|---|
| 82 |  IF '$$TPTM^SCAPMC24(SCTEAM,SCDTE,"","",SCPOS) S Y=-1 G TMDISQ
 | 
|---|
| 83 |  S I=0 F  S I=$O(@SCPOS@(I)) Q:'I  S SCPOSI(+@SCPOS@(I))=""
 | 
|---|
| 84 |  K @SCPOS
 | 
|---|
| 85 |  S SCPOS=0
 | 
|---|
| 86 |  F  S SCPOS=$O(SCPOSI(SCPOS)) Q:'SCPOS  D  Q:SCOK=SCABORT
 | 
|---|
| 87 |  . S SCPOS0=$G(^SCTM(404.57,+SCPOS,0))
 | 
|---|
| 88 |  . S SCCL=+$P(SCPOS0,U,9)
 | 
|---|
| 89 |  . IF 'SCCL Q
 | 
|---|
| 90 |  . S SCCLNM=$P($G(^SC(SCCL,0)),U)
 | 
|---|
| 91 |  . S SCTEAMNM=$P($G(^SCTM(404.51,SCTEAM,0),"Unknown"),U)
 | 
|---|
| 92 |  . S DIR(0)="YA"
 | 
|---|
| 93 |  . S DIR("A",1)="----------------------------------------------------------------------------"
 | 
|---|
| 94 |  . S DIR("A",2)="             Team             : "_SCTEAMNM
 | 
|---|
| 95 |  . S DIR("A",3)="             Position         : "_$P(SCPOS0,U)
 | 
|---|
| 96 |  . S DIR("A",4)="             Associated Clinic: "_SCCLNM
 | 
|---|
| 97 |  . S DIR("A",5)=" "
 | 
|---|
| 98 |  . S DIR("A")=">>> Do you want to discharge patients from this clinic? (Yes/No) "
 | 
|---|
| 99 |  . D ^DIR
 | 
|---|
| 100 |  . IF $D(DIRUT) S SCOK=SCABORT Q
 | 
|---|
| 101 |  . IF Y=1 S SCTPDIS(SCPOS)=1
 | 
|---|
| 102 |  . Q
 | 
|---|
| 103 | TMDISQ Q SCOK
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 | TPDIS(SCPOS,SCTPDIS) ; -- discharge patient from clinic
 | 
|---|
| 106 |  N SCPOS0,SCCL,SCCL0,DIR,DIRUT,Y,SCOK
 | 
|---|
| 107 |  S SCOK=1
 | 
|---|
| 108 |  S SCPOS0=$G(^SCTM(404.57,+SCPOS,0))
 | 
|---|
| 109 |  S SCCL=+$P(SCPOS0,U,9)
 | 
|---|
| 110 |  IF 'SCCL S Y=0 G TPDISQ
 | 
|---|
| 111 |  S SCCLNM=$P($G(^SC(SCCL,0)),U)
 | 
|---|
| 112 |  S DIR(0)="YA"
 | 
|---|
| 113 |  S DIR("A",1)=" "
 | 
|---|
| 114 |  S DIR("A")="Also discharge patients from the '"_SCCLNM_"' clinic? (Yes/No) "
 | 
|---|
| 115 |  D ^DIR
 | 
|---|
| 116 |  IF $D(DIRUT) S SCOK=SCABORT
 | 
|---|
| 117 |  IF Y=1 S SCTPDIS(+SCPOS)=1
 | 
|---|
| 118 | TPDISQ Q SCOK
 | 
|---|
| 119 |  ;
 | 
|---|