| 1 | SCRPU1 ;ALB/CMM - GENERIC PROMPTS FOR PCMM REPORTS ;1/12/96
 | 
|---|
| 2 |  ;;5.3;Scheduling;**41,45,130**;AUG 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | INST ;Prompt for institution
 | 
|---|
| 5 |  S VAUTVB="VAUTD",DIC="^DIC(4,",DIC("S")="I $D(^SCTM(404.51,""AINST"",+Y))"
 | 
|---|
| 6 |  S VAUTNI=2,VAUTSTR="Division"
 | 
|---|
| 7 |  G FIRST^VAUTOMA
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 | PRMTT ;Prompt for team.  Set VAUTTN to allow not assigned to a team as a selection
 | 
|---|
| 10 |  I '$D(VAUTD) G ERR
 | 
|---|
| 11 |  S VAUTVB="VAUTT",DIC="^SCTM(404.51,",VAUTNI=2,VAUTSTR="Team",DIC("B")=""
 | 
|---|
| 12 |  S DIC("S")="I VAUTD=1!($D(VAUTD(+$P(^(0),U,7))))"
 | 
|---|
| 13 |  G FIRST
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 | CLINIC ;Prompt for Clinic
 | 
|---|
| 16 |  I '$D(VAUTT)&'$D(VAUTCA) G ERR
 | 
|---|
| 17 |  S VAUTVB="VAUTC",VAUTSTR="Clinic",VAUTNI=2,DIC="^SC("
 | 
|---|
| 18 |  ;Set screen to only allow clinics and clinics that are associated to the teams selected
 | 
|---|
| 19 |  I '$D(VAUTCA) S DIC("S")="I $$CLSC^SCRPU1()"
 | 
|---|
| 20 |  ;VAUTCA allows for selection of any clinic in the selected
 | 
|---|
| 21 |  I $D(VAUTCA) S DIC("S")="I $$CLSC2^SCRPU1()"
 | 
|---|
| 22 |  G FIRST
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 | USER ;Prompt for User Class
 | 
|---|
| 25 |  I '$D(VAUTT) G ERR
 | 
|---|
| 26 |  I $P($G(^SD(404.91,1,"PCMM")),"^")'=1 Q  ;user class turned off
 | 
|---|
| 27 |  S VAUTVB="VAUTUC",DIC="^USR(8930,",VAUTSTR="User Class",VAUTNI=2
 | 
|---|
| 28 |  S DIC("S")="I $$USRCL^SCRPU1"
 | 
|---|
| 29 |  G FIRST
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 | USRCL() ;Screen for user class - must be related to teams selected
 | 
|---|
| 32 |  N STOP,ENT,NODE,TIEN
 | 
|---|
| 33 |  I '+$P(^(0),U,3) Q 0
 | 
|---|
| 34 |  ;check for active/exiting user class
 | 
|---|
| 35 |  S ENT=0,STOP=0
 | 
|---|
| 36 |  F  S ENT=$O(^SCTM(404.57,"AUSR",+Y,ENT)) Q:ENT=""!(STOP)  D
 | 
|---|
| 37 |  .S NODE=$G(^SCTM(404.57,ENT,0))
 | 
|---|
| 38 |  .I NODE="" S STOP=0 Q
 | 
|---|
| 39 |  .S TIEN=+$P(NODE,"^",2) ;team ien
 | 
|---|
| 40 |  .I $D(VAUTT(TIEN))!(VAUTT=1) S STOP=1 Q
 | 
|---|
| 41 |  .I VAUTT=""&(TIEN="") S STOP=1 Q  ;no team selected, no team assigned
 | 
|---|
| 42 |  .I VAUTT'=1&('$D(VAUTT(TIEN))) S STOP=0
 | 
|---|
| 43 |  Q STOP
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 | ROLE ;Prompt for Role
 | 
|---|
| 46 |  I '$D(VAUTT) G ERR
 | 
|---|
| 47 |  S VAUTVB="VAUTR",DIC="^SD(403.46,",VAUTSTR="Role",VAUTNI=2
 | 
|---|
| 48 |  S DIC("S")="I $$RL^SCRPU1()"
 | 
|---|
| 49 |  G FIRST
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 | RL() ;Screen for Role - screen on team
 | 
|---|
| 52 |  N EN,STOP,ACT,TEAM
 | 
|---|
| 53 |  S EN="",STOP=0
 | 
|---|
| 54 |  I $D(^SCTM(404.57,"AC",+Y)) D
 | 
|---|
| 55 |  .F  S EN=$O(^SCTM(404.57,"AC",+Y,EN)) Q:EN=""!(STOP)  D
 | 
|---|
| 56 |  ..S ACT=+$$ACTTP^SCMCTPU(EN) ;currently active?
 | 
|---|
| 57 |  ..I 'ACT!('$D(^SCTM(404.57,EN,0))) Q
 | 
|---|
| 58 |  ..S TEAM=$P(^SCTM(404.57,EN,0),"^",2)
 | 
|---|
| 59 |  ..I $D(VAUTT(TEAM))!(VAUTT=1) S STOP=1
 | 
|---|
| 60 |  ..I VAUTT=""&(TEAM="") S STOP=1
 | 
|---|
| 61 |  Q STOP
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 | PRACT ; Prompt for One (set VAUTPO) or One,Many,All,None Practitioner(s)
 | 
|---|
| 64 |  I '$D(VAUTT) G ERR
 | 
|---|
| 65 |  S VAUTVB="VAUTP",VAUTSTR="Practitioner",VAUTNI=2,DIC="^VA(200,"
 | 
|---|
| 66 |  S DIC("S")="I $$PRACS^SCRPU1()"
 | 
|---|
| 67 |  G FIRST
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 | PRACS() ;Practitioner screen - off of team selection
 | 
|---|
| 70 |  N EN,STOP,NODE,TEAM
 | 
|---|
| 71 |  S EN="",STOP=0
 | 
|---|
| 72 |  I '$D(^SCTM(404.52,"C",+Y)) Q 0
 | 
|---|
| 73 |  ;Position Assignment History file
 | 
|---|
| 74 |  F  S EN=$O(^SCTM(404.52,"C",+Y,EN)) Q:EN=""!(STOP)  D
 | 
|---|
| 75 |  .I '$D(^SCTM(404.52,EN)) Q
 | 
|---|
| 76 |  .S NODE=$G(^SCTM(404.52,EN,0))
 | 
|---|
| 77 |  .S TEAM=+$P($G(^SCTM(404.57,$P(NODE,"^"),0)),"^",2)
 | 
|---|
| 78 |  .I $P(NODE,"^",4),$D(VAUTT(TEAM)) S STOP=1
 | 
|---|
| 79 |  .I VAUTT=1 S STOP=1
 | 
|---|
| 80 |  Q STOP
 | 
|---|
| 81 |  ;
 | 
|---|
| 82 | FIRST ;
 | 
|---|
| 83 |  S DIC(0)="EQMNZ",DIC("A")="Select "_VAUTSTR_": " K @VAUTVB
 | 
|---|
| 84 |  S (@VAUTVB,Y)=0
 | 
|---|
| 85 | REDO W !,DIC("A") R X:DTIME G ERR:(X="^")!'$T D:X["?"!(X=""&('$G(SCOKNULL))) HELP^SCRPU3
 | 
|---|
| 86 |  G:$G(SCOKNULL)&(X="") QUIT
 | 
|---|
| 87 |  I X="A"!(X="ALL")&'$D(VAUTNA) S @VAUTVB=1 G QUIT
 | 
|---|
| 88 |  ;VAUTNA doesn't allow all to be selected
 | 
|---|
| 89 |  ;VAUTTN allows 'Not assigned to a team' as a selection
 | 
|---|
| 90 |  I X="N"!(X="NOT")!(X="NONE") I $D(VAUTTN)!($D(VAUTPP)) S @VAUTVB="" G QUIT
 | 
|---|
| 91 |  ;VAUTPP allows 'Not assigned to a practitioner' as a selection
 | 
|---|
| 92 |  S DIC("A")="Select another "_VAUTSTR_": " D ^DIC G:Y'>0 FIRST D SET
 | 
|---|
| 93 |  I '$D(VAUTPO) F VAI=1:0:19 W !,DIC("A") R X:DTIME G ERR:(X="")!(X="^")!'$T K Y D HELP^SCRPU3:X["?" S:$E(X)="-" VAUTX=X,X=$E(VAUTX,2,999) D ^DIC I Y>0 D SET G:VAX REDO S:'VAERR VAI=VAI+1
 | 
|---|
| 94 |  ;VAUTPO - only one practitioner allowed to be selected
 | 
|---|
| 95 |  G QUIT
 | 
|---|
| 96 | SET S VAX=0 I $D(VAUTX) S J=$S(VAUTNI=2:+Y,1:$P(Y(0),"^")) K VAUTX S VAERR=$S($D(@VAUTVB@(J)):0,1:1) W $S('VAERR:"...removed from list...",1:"...not on list...can't remove") Q:VAERR  S VAI=VAI-1 K @VAUTVB@(J) S:$O(@VAUTVB@(0))']"" VAX=1 Q
 | 
|---|
| 97 |  S VAERR=0 I $S($D(@VAUTVB@($P(Y(0),U))):1,$D(@VAUTVB@(+Y)):1,1:0) W !?3,*7,"You have already selected that ",VAUTSTR,".  Try again." S VAERR=1
 | 
|---|
| 98 |  S @VAUTVB@(+Y)=$P(Y(0),U)
 | 
|---|
| 99 |  Q
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 | ERR S Y=-1 I $O(@VAUTVB@(0))="" K @VAUTVB I X="^" S SCUP=""
 | 
|---|
| 102 | QUIT S:'$D(Y) Y=1
 | 
|---|
| 103 |  I $D(@VAUTVB),VAUTSTR="Team",@VAUTVB=1 D:'$G(DGQUIET) EN^DDIOL("All Teams selected, this report may take some time...","","!,?10")
 | 
|---|
| 104 |  K DIC,J,VAERR,VAI,VAJ,VAJ1,VAX,VAUTNI,VAUTSTR,VAUTVB,X
 | 
|---|
| 105 |  Q
 | 
|---|
| 106 |  ;
 | 
|---|
| 107 | CLSC() ;screen on clinic selection, must be related to team prompt
 | 
|---|
| 108 |  I $P(^(0),U,3)'="C" Q 0
 | 
|---|
| 109 |  N TRUE,EN,TEAM
 | 
|---|
| 110 |  S TRUE=0,EN=""
 | 
|---|
| 111 |  F  S EN=$O(^SCTM(404.57,"D",+Y,EN)) Q:EN=""!(TRUE)  D
 | 
|---|
| 112 |  .S TEAM=+$P($G(^SCTM(404.57,EN,0)),"^",2)
 | 
|---|
| 113 |  .I $D(VAUTT(TEAM))!(VAUTT=1) S TRUE=1
 | 
|---|
| 114 |  I VAUTT="" S TRUE=1
 | 
|---|
| 115 |  Q TRUE
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 | CLSC2() ;screen on clinic selection, must be a clinic
 | 
|---|
| 118 |  I $P(^(0),U,3)'="C" Q 0
 | 
|---|
| 119 |  Q 1
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 | CLSC2OLD() ;screen on clinic selection, must be related to division prompt
 | 
|---|
| 122 |  I $P(^(0),U,3)'="C" Q 0
 | 
|---|
| 123 |  N TRUE,EN,INST,TDIV
 | 
|---|
| 124 |  S TRUE=0,EN=""
 | 
|---|
| 125 |  S TDIV=+$P(^(0),U,15) ;clinic's division
 | 
|---|
| 126 |  Q:TDIV=0 0
 | 
|---|
| 127 |  S INST=+$P(^DG(40.8,TDIV,0),U,7)
 | 
|---|
| 128 |  I '$D(VAUTD(INST))&(VAUTD'="") S TRUE=0
 | 
|---|
| 129 |  I $D(VAUTD(INST)) S TRUE=1
 | 
|---|
| 130 |  I VAUTD=1 S TRUE=1
 | 
|---|
| 131 |  Q TRUE
 | 
|---|