| 1 | SCMCMU11 ;ALB/MJK - PCMM Mass Team/Position Unassignment ; 10-JUL-1998 | 
|---|
| 2 | ;;5.3;Scheduling;**148**;AUG 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | ; | 
|---|
| 5 | PTTPLST(SCTEAM,SCDATE,SCPTTP) ; -- create list of patients assigned to team positions | 
|---|
| 6 | ; -- sort list by dfn and position ien | 
|---|
| 7 | N SCPOS,SCDTE,SCPR,SCPRX | 
|---|
| 8 | ; | 
|---|
| 9 | ; -- check for patient-position assignments | 
|---|
| 10 | D DATE^SCMCMU1(SCDATE,.SCDTE) | 
|---|
| 11 | S SCPOS=$NA(^TMP("SCMU",$J,"POSITION")) | 
|---|
| 12 | ; | 
|---|
| 13 | ; -- get list of positions for team | 
|---|
| 14 | K @SCPOS | 
|---|
| 15 | IF '$$TPTM^SCAPMC24(SCTEAM,SCDTE,"","",SCPOS) S Y=-1 G PTTPLSTQ | 
|---|
| 16 | S SCPR=0 | 
|---|
| 17 | F  S SCPR=$O(@SCPOS@(SCPR)) Q:'SCPR  D | 
|---|
| 18 | . S SCPRX=@SCPOS@(SCPR) | 
|---|
| 19 | . ; -- create sorted list of dfn by position ien | 
|---|
| 20 | . D PTTP(+SCPRX,SCDATE,SCPTTP) | 
|---|
| 21 | . Q | 
|---|
| 22 | PTTPLSTQ K @SCPOS | 
|---|
| 23 | Q | 
|---|
| 24 | ; | 
|---|
| 25 | PTTP(SCPOS,SCDATE,SCPTTP) ; -- create list of pats assigned to position sort by dfn, position | 
|---|
| 26 | N SCPAT,SCPATX,SCPATS,SCDTE | 
|---|
| 27 | D DATE^SCMCMU1(SCDATE,.SCDTE) | 
|---|
| 28 | S SCPATS=$NA(^TMP("SCMU",$J,"PATIENT")) | 
|---|
| 29 | K @SCPATS | 
|---|
| 30 | IF '$$PTTP^SCAPMC(SCPOS,SCDTE,SCPATS) S SCOK=0 G PTTPQ | 
|---|
| 31 | S SCPAT=0 | 
|---|
| 32 | F  S SCPAT=$O(@SCPATS@(SCPAT)) Q:'SCPAT  D | 
|---|
| 33 | . S SCPATX=@SCPATS@(SCPAT) | 
|---|
| 34 | . ; -- store by dfn / pos data | 
|---|
| 35 | . S @SCPTTP@(+SCPATX,SCPOS)=SCPATX | 
|---|
| 36 | . Q | 
|---|
| 37 | PTTPQ K @SCPATS | 
|---|
| 38 | Q | 
|---|
| 39 | ; | 
|---|
| 40 | UNASSIGN ; -- unassign selected | 
|---|
| 41 | ;    protocol: SCMC MU UNASSIGN PATIENTS | 
|---|
| 42 | N DIR,Y | 
|---|
| 43 | IF 'SCSELCNT D  G UNQ | 
|---|
| 44 | . W !!,"No patients have been selected.",! | 
|---|
| 45 | . D PAUSE^SCMCMU1 | 
|---|
| 46 | . D BACK^SCMCMU1("") | 
|---|
| 47 | . Q | 
|---|
| 48 | ELSE  D | 
|---|
| 49 | . D FULL^VALM1 | 
|---|
| 50 | . W @IOF | 
|---|
| 51 | . S DIR(0)="YA" | 
|---|
| 52 | . D SET("----------------------------------------------------------------------------") | 
|---|
| 53 | . D SET("                      Team"_$S(SCMUTYPE="P":" Position",1:"")_" Unassignment Definition") | 
|---|
| 54 | . D SET("----------------------------------------------------------------------------") | 
|---|
| 55 | . D SET("    Team             : "_$P($G(^SCTM(404.51,SCTEAM,0),"Unknown"),U)) | 
|---|
| 56 | . IF SCMUTYPE="P" D SET("    Position         : "_$P($G(^SCTM(404.57,SCPOS,0),"Unknown"),U)) | 
|---|
| 57 | . D SET("    Effective Date   : "_$$FMTE^XLFDT($E(SCDATE,1,7),"5Z")) | 
|---|
| 58 | . D SET("    # of Patients    : "_SCSELCNT) | 
|---|
| 59 | . D CLINIC | 
|---|
| 60 | . D SET(" ") | 
|---|
| 61 | . S DIR("A")="Are you sure you want to continue? " | 
|---|
| 62 | . S DIR("B")="No" | 
|---|
| 63 | . D ^DIR | 
|---|
| 64 | . IF Y=1 D | 
|---|
| 65 | . . N DIR,SCTSK | 
|---|
| 66 | . . S SCTSK=$$QUE^SCMCMU2() | 
|---|
| 67 | . . IF SCTSK="" D | 
|---|
| 68 | . . . D BACK^SCMCMU1("R") | 
|---|
| 69 | . . ELSE  D | 
|---|
| 70 | . . . W !!,"Task#: ",SCTSK,! | 
|---|
| 71 | . . D PAUSE^SCMCMU1 | 
|---|
| 72 | . . Q | 
|---|
| 73 | . ELSE  D | 
|---|
| 74 | . . D BACK^SCMCMU1("R") | 
|---|
| 75 | . . Q | 
|---|
| 76 | . Q | 
|---|
| 77 | UNQ Q | 
|---|
| 78 | ; | 
|---|
| 79 | CLINIC ; -- display clinic to be discharged from | 
|---|
| 80 | N SCPOS,SCX,Y | 
|---|
| 81 | D SET(" ") | 
|---|
| 82 | IF '$O(SCTPDIS(0)) D  G CLINICQ | 
|---|
| 83 | . D SET("    Clinic Discharges:  None") | 
|---|
| 84 | ; | 
|---|
| 85 | S Y="" | 
|---|
| 86 | S Y=$$SETSTR^VALM1("Clinic Discharges:",Y,5,20) | 
|---|
| 87 | S Y=$$SETSTR^VALM1("Position",Y,25,25) | 
|---|
| 88 | S Y=$$SETSTR^VALM1("Associated Clinic",Y,55,25) | 
|---|
| 89 | D SET(Y) | 
|---|
| 90 | S Y="" | 
|---|
| 91 | S Y=$$SETSTR^VALM1("--------",Y,25,25) | 
|---|
| 92 | S Y=$$SETSTR^VALM1("-----------------",Y,55,25) | 
|---|
| 93 | D SET(Y) | 
|---|
| 94 | ; | 
|---|
| 95 | S SCPOS=0 | 
|---|
| 96 | F  S SCPOS=$O(SCTPDIS(SCPOS)) Q:'SCPOS  D | 
|---|
| 97 | . S SCX=$G(^SCTM(404.57,SCPOS,0),"Unknown") | 
|---|
| 98 | . S Y="" | 
|---|
| 99 | . S Y=$$SETSTR^VALM1($E($P(SCX,U),1,25),Y,25,25) | 
|---|
| 100 | . S Y=$$SETSTR^VALM1($E($P($G(^SC(+$P(SCX,U,9),0),"Unknown"),U),1,25),Y,55,25) | 
|---|
| 101 | . D SET(Y) | 
|---|
| 102 | . Q | 
|---|
| 103 | ; | 
|---|
| 104 | CLINICQ Q | 
|---|
| 105 | ; | 
|---|
| 106 | SET(X) ; -- set DIR text | 
|---|
| 107 | S DIR("A",$O(DIR("A",""),-1)+1)=X | 
|---|
| 108 | Q | 
|---|
| 109 | ; | 
|---|
| 110 | QUIT ; -- quit logic | 
|---|
| 111 | ;    protocol: SCMC MU QUIT | 
|---|
| 112 | N DIR,Y | 
|---|
| 113 | S Y=0 | 
|---|
| 114 | IF SCSELCNT D | 
|---|
| 115 | . W ! | 
|---|
| 116 | . S DIR(0)="YA" | 
|---|
| 117 | . S DIR("A",1)="You have "_SCSELCNT_" patient"_$S(SCSELCNT=1:"",1:"s")_" selected." | 
|---|
| 118 | . S DIR("A",2)=" " | 
|---|
| 119 | . S DIR("A")="Are you sure you want to quit? " | 
|---|
| 120 | . S DIR("B")="No" | 
|---|
| 121 | . D ^DIR | 
|---|
| 122 | . IF Y'=1 D BACK^SCMCMU1("") | 
|---|
| 123 | . Q | 
|---|
| 124 | Q | 
|---|
| 125 | ; | 
|---|