- SCMCCV1 ;ALB/JLU;PC Attending conversion;5/6/99
- ;;5.3;Scheduling;**195**;AUG 13, 1993
- ;
- MAIN I $$XTMP() D XTMPW G MAINQ ;is there another conversion job?
- ;
- N SCMCTM,SCMCPOS,SCMCSTOP,SCMCFIX,SCMCTYPE
- S SCMCSTOP=0
- ;
- S SCMCFIX=$$CNTFIX ;fix or check mode?
- I SCMCFIX=0 G MAINQ ;uparrowed out
- ;
- S SCMCSTOP=$$ASKQUEST ;how to sort for conversion? SETS SCMCTM, SCMCPOS
- I SCMCSTOP G MAIN Q
- ;
- D SUMARIZE ; display what was selected
- S SCMCSTOP=$$ASKCONT ;ask user if they wish to continue.
- I SCMCSTOP G MAINQ
- ;
- D QOFF ;queue off the conversion job
- ;
- MAINQ Q
- ;
- XTMPW ;writes to the user.
- ;
- N VAR
- S VAR=$O(^XTMP("SCMCATTCONV",0))
- ;
- W *7,!!,"A conversion job (#"_VAR_") has already been started."
- W !,"You will not be able to start another conversion job until this one finishes.",!!
- D PAUSE^SCMCMU1
- Q
- ;
- XTMP() ;checks to see if another job is running.
- ;
- Q $S($D(^XTMP("SCMCATTCONV")):1,1:0)
- ;
- CNTFIX() ;ask the user if they want to FIX(Convert) or CHECK
- ;Output F for FIX mode
- ; C for Check mode
- ;
- N DIR
- S DIR(0)="SM^C:CHECK;F:FIX"
- S DIR("?")="Check mode will only count the entries that could or could not be converted."
- S DIR("?",1)="Fix mode will actually convert these entries."
- S DIR("A")="In which mode would you like to run the conversion?"
- D ^DIR
- Q $S($D(DIRUT):0,1:Y)
- ;
- ASKQUEST() ;askes the user how they wish to sort or break up the conversion.
- ;Outputs
- ;sets up the SCMCTM and SCMCPOS arrays
- ;returns a 1 if to stop
- ;returns a zero to not stop
- ;
- N STOP
- S STOP=0
- S SCMCTYPE=$$TYPE() ;gets the type of selection (team, position or all)
- I SCMCTYPE=0 S STOP=1 G ASKQSTQ
- ;
- I SCMCTYPE="T" D TMLP S:'$D(SCMCTM) STOP=1 ;team selection
- ;
- I SCMCTYPE="P" D POS S:'$D(SCMCTM)!('$D(SCMCPOS)) STOP=1 ;position selection
- ;
- I SCMCTYPE="A" K SCMCTM,SCMCPOS
- ;
- ASKQSTQ Q STOP
- ;
- ;
- TYPE() ;askes the user how they wish to sort or select the conversion.
- ;A for All teams and positions
- ;T for by selecting teams. All positions for each team.
- ;P for by selection positions. Only one team and specific positions.
- ;
- ;returns a zero to quit
- ;returns a one to continue
- ;
- N DIR
- S DIR(0)="SM^A:All teams and positions;T:Specific teams;P:One team, specifc positions"
- S DIR("?",1)="Select A for a conversion of all teams and all positions on those teams."
- S DIR("?",2)="Select T to select specific teams. All positions for each team are reviewed."
- S DIR("?",3)="Select P to be able to select specific positions from a single team."
- S DIR("?")=" "
- ;
- D ^DIR
- Q $S($D(DIRUT):0,1:Y)
- ;
- ;
- TMLP ;allows the user to select which teams. Allows the selection of
- ;multiple teams.
- ;sets up the SCMCTM array with the teams
- ;sets stop=1 if need to stop
- ;
- N SCSTOP
- S SCSTOP=0
- F D I SCSTOP Q
- .N TM
- .S TM=$$TEAM^SCMCMU(DT)
- .I TM>0 S SCMCTM(TM)=""
- .E S SCSTOP=1
- .Q
- Q
- ;
- POSLP(TM) ;allows the user to select one team and multiple positions from that
- ;team.
- ;the SCMCTM and SCMCPOS arrays will be populated.
- ;
- N SCSTOP
- S SCSTOP=0
- K SCMCPOS
- F DO I SCSTOP Q
- .N POS
- .S POS=$$POS^SCMCMU(TM,DT) ; get positions using today.
- .I POS>0 S SCMCPOS(POS)=""
- .E S SCSTOP=1
- .Q
- Q
- ;
- POS ;gets the team first then calls POSLP to get the positions
- ;populates the SCMCTM array
- ;
- N TTM
- K SCMCTM
- S TTM=$$TEAM^SCMCMU(DT)
- I TTM>0 DO
- .S SCMCTM(TTM)=""
- .D POSLP(TTM)
- .Q
- Q
- ;
- ;
- SUMARIZE ;presents the selections to the user.
- ;
- W !!!,"You have made the following selections."
- W !,"Please verify they are what you want:",!
- ;
- I SCMCTYPE="A" D TYPEA
- I SCMCTYPE="T" D TYPET
- I SCMCTYPE="P" D TYPEP
- ;
- W !!,*7,"** This job will be run in a ",$S(SCMCFIX="F":"FIX",1:"CHECK")," mode. **",!
- Q
- ;
- ;
- TYPEA ;
- W !,"You have selected to convert assignments in all teams and positions."
- Q
- ;
- ;
- TYPET ;
- N VAR
- W !,"You have selected to convert PC Attending assignments in the following teams:"
- ;
- S VAR=0
- F S VAR=$O(SCMCTM(VAR)) Q:VAR="" W !,$P(^SCTM(404.51,VAR,0),U,1)
- ;
- W !!,"All position assignments for each team will be reviewed."
- Q
- ;
- ;
- TYPEP ;
- N LP,VAR
- S VAR=$O(SCMCTM(0)) Q:VAR=""
- ;
- W !,"You have selected to convert PC Attending assignments for team:"
- W !,$P(^SCTM(404.51,VAR,0),U,1)
- W !!,"The positions that were selected are:"
- ;
- S VAR=0
- F S VAR=$O(SCMCPOS(VAR)) Q:VAR="" W !,$P(^SCTM(404.57,VAR,0),U,1)
- Q
- ;
- ;
- ASKCONT() ;ask the user if they wish to continue.
- ;
- N Y,DIR
- S DIR(0)="Y^"
- S DIR("A")="Are these selections correct? Do you wish to continue"
- D ^DIR
- Q $S(Y=1:0,1:1) ; CHANGING TO MATCH STOP FORMAT.
- ;
- ;
- SETLOCK ; sets the global to lock out other attempted jobs
- ;
- S ^XTMP("SCMCATTCONV",0)=DT+1_"^"_DT
- Q
- ;
- ;
- QOFF ;queue the task off to be processed in the background.
- ;
- N ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTSAVE
- S ZTRTN="STRTQJOB^SCMCCV2"
- S ZTDESC="PCMM conversion of PC Attending assignments."
- S ZTDTH=$H
- S ZTIO=""
- S ZTSAVE("SCMCTM(")=""
- S ZTSAVE("SCMCPOS(")=""
- S ZTSAVE("SCMCFIX")=""
- S ZTSAVE("SCMCTYPE")=""
- D ^%ZTLOAD
- I $D(ZTSK) W !!,"Task queued. ",ZTSK D SETLOCK ;LOCKS FOR NEXT ATTEMPT
- E W !!,"Task NOT queued."
- K ZTSK
- Q
- ;
- ;
- FUTURE ;checks if can make an assignment for today.
- ;
- N VARTWO
- K ERR
- S VARTWO=$$YSPTTPPC^SCMCTPU2(DFN,DT,1)
- I 'VARTWO S ERR="-"_$P(VARTWO,U,2) D SETERR^SCMCCV2(ERR) Q
- S REASSIGN=1
- Q
- ;
- ;
- REOPEN ;reactivate old assignment.
- ;
- N DA,DR,DIE
- S DIE="^SCPT(404.43,"
- S DA=POSASGN
- D NOW^%DTC
- S DR=".04///@;.08///"_$G(DUZ,.5)_";.09///"_%
- K X
- D ^DIE
- Q
- ;
- ;
- CHANGE(AIEN) ;the actual FM call to convert.
- N DIE,DA,DR
- S DIE="^SCPT(404.43,"
- S DA=AIEN
- S DR=".05///1"
- D ^DIE
- Q
- ;
- ;
- INIT ;set up variables
- ;
- S XMDUZ=.5
- S XMY($S($G(DUZ):DUZ,1:XMDUZ))=""
- S XMSUB="PC Attending conversion"
- S XMTEXT="^TMP(""SCMC"",$J,""MSG"","
- S CNTR=0
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSCMCCV1 5936 printed Feb 19, 2025@00:06:26 Page 2
- SCMCCV1 ;ALB/JLU;PC Attending conversion;5/6/99
- +1 ;;5.3;Scheduling;**195**;AUG 13, 1993
- +2 ;
- MAIN ;is there another conversion job?
- IF $$XTMP()
- DO XTMPW
- GOTO MAINQ
- +1 ;
- +2 NEW SCMCTM,SCMCPOS,SCMCSTOP,SCMCFIX,SCMCTYPE
- +3 SET SCMCSTOP=0
- +4 ;
- +5 ;fix or check mode?
- SET SCMCFIX=$$CNTFIX
- +6 ;uparrowed out
- IF SCMCFIX=0
- GOTO MAINQ
- +7 ;
- +8 ;how to sort for conversion? SETS SCMCTM, SCMCPOS
- SET SCMCSTOP=$$ASKQUEST
- +9 IF SCMCSTOP
- GOTO MAIN
- QUIT
- +10 ;
- +11 ; display what was selected
- DO SUMARIZE
- +12 ;ask user if they wish to continue.
- SET SCMCSTOP=$$ASKCONT
- +13 IF SCMCSTOP
- GOTO MAINQ
- +14 ;
- +15 ;queue off the conversion job
- DO QOFF
- +16 ;
- MAINQ QUIT
- +1 ;
- XTMPW ;writes to the user.
- +1 ;
- +2 NEW VAR
- +3 SET VAR=$ORDER(^XTMP("SCMCATTCONV",0))
- +4 ;
- +5 WRITE *7,!!,"A conversion job (#"_VAR_") has already been started."
- +6 WRITE !,"You will not be able to start another conversion job until this one finishes.",!!
- +7 DO PAUSE^SCMCMU1
- +8 QUIT
- +9 ;
- XTMP() ;checks to see if another job is running.
- +1 ;
- +2 QUIT $SELECT($DATA(^XTMP("SCMCATTCONV")):1,1:0)
- +3 ;
- CNTFIX() ;ask the user if they want to FIX(Convert) or CHECK
- +1 ;Output F for FIX mode
- +2 ; C for Check mode
- +3 ;
- +4 NEW DIR
- +5 SET DIR(0)="SM^C:CHECK;F:FIX"
- +6 SET DIR("?")="Check mode will only count the entries that could or could not be converted."
- +7 SET DIR("?",1)="Fix mode will actually convert these entries."
- +8 SET DIR("A")="In which mode would you like to run the conversion?"
- +9 DO ^DIR
- +10 QUIT $SELECT($DATA(DIRUT):0,1:Y)
- +11 ;
- ASKQUEST() ;askes the user how they wish to sort or break up the conversion.
- +1 ;Outputs
- +2 ;sets up the SCMCTM and SCMCPOS arrays
- +3 ;returns a 1 if to stop
- +4 ;returns a zero to not stop
- +5 ;
- +6 NEW STOP
- +7 SET STOP=0
- +8 ;gets the type of selection (team, position or all)
- SET SCMCTYPE=$$TYPE()
- +9 IF SCMCTYPE=0
- SET STOP=1
- GOTO ASKQSTQ
- +10 ;
- +11 ;team selection
- IF SCMCTYPE="T"
- DO TMLP
- if '$DATA(SCMCTM)
- SET STOP=1
- +12 ;
- +13 ;position selection
- IF SCMCTYPE="P"
- DO POS
- if '$DATA(SCMCTM)!('$DATA(SCMCPOS))
- SET STOP=1
- +14 ;
- +15 IF SCMCTYPE="A"
- KILL SCMCTM,SCMCPOS
- +16 ;
- ASKQSTQ QUIT STOP
- +1 ;
- +2 ;
- TYPE() ;askes the user how they wish to sort or select the conversion.
- +1 ;A for All teams and positions
- +2 ;T for by selecting teams. All positions for each team.
- +3 ;P for by selection positions. Only one team and specific positions.
- +4 ;
- +5 ;returns a zero to quit
- +6 ;returns a one to continue
- +7 ;
- +8 NEW DIR
- +9 SET DIR(0)="SM^A:All teams and positions;T:Specific teams;P:One team, specifc positions"
- +10 SET DIR("?",1)="Select A for a conversion of all teams and all positions on those teams."
- +11 SET DIR("?",2)="Select T to select specific teams. All positions for each team are reviewed."
- +12 SET DIR("?",3)="Select P to be able to select specific positions from a single team."
- +13 SET DIR("?")=" "
- +14 ;
- +15 DO ^DIR
- +16 QUIT $SELECT($DATA(DIRUT):0,1:Y)
- +17 ;
- +18 ;
- TMLP ;allows the user to select which teams. Allows the selection of
- +1 ;multiple teams.
- +2 ;sets up the SCMCTM array with the teams
- +3 ;sets stop=1 if need to stop
- +4 ;
- +5 NEW SCSTOP
- +6 SET SCSTOP=0
- +7 FOR
- Begin DoDot:1
- +8 NEW TM
- +9 SET TM=$$TEAM^SCMCMU(DT)
- +10 IF TM>0
- SET SCMCTM(TM)=""
- +11 IF '$TEST
- SET SCSTOP=1
- +12 QUIT
- End DoDot:1
- IF SCSTOP
- QUIT
- +13 QUIT
- +14 ;
- POSLP(TM) ;allows the user to select one team and multiple positions from that
- +1 ;team.
- +2 ;the SCMCTM and SCMCPOS arrays will be populated.
- +3 ;
- +4 NEW SCSTOP
- +5 SET SCSTOP=0
- +6 KILL SCMCPOS
- +7 FOR
- Begin DoDot:1
- +8 NEW POS
- +9 ; get positions using today.
- SET POS=$$POS^SCMCMU(TM,DT)
- +10 IF POS>0
- SET SCMCPOS(POS)=""
- +11 IF '$TEST
- SET SCSTOP=1
- +12 QUIT
- End DoDot:1
- IF SCSTOP
- QUIT
- +13 QUIT
- +14 ;
- POS ;gets the team first then calls POSLP to get the positions
- +1 ;populates the SCMCTM array
- +2 ;
- +3 NEW TTM
- +4 KILL SCMCTM
- +5 SET TTM=$$TEAM^SCMCMU(DT)
- +6 IF TTM>0
- Begin DoDot:1
- +7 SET SCMCTM(TTM)=""
- +8 DO POSLP(TTM)
- +9 QUIT
- End DoDot:1
- +10 QUIT
- +11 ;
- +12 ;
- SUMARIZE ;presents the selections to the user.
- +1 ;
- +2 WRITE !!!,"You have made the following selections."
- +3 WRITE !,"Please verify they are what you want:",!
- +4 ;
- +5 IF SCMCTYPE="A"
- DO TYPEA
- +6 IF SCMCTYPE="T"
- DO TYPET
- +7 IF SCMCTYPE="P"
- DO TYPEP
- +8 ;
- +9 WRITE !!,*7,"** This job will be run in a ",$SELECT(SCMCFIX="F":"FIX",1:"CHECK")," mode. **",!
- +10 QUIT
- +11 ;
- +12 ;
- TYPEA ;
- +1 WRITE !,"You have selected to convert assignments in all teams and positions."
- +2 QUIT
- +3 ;
- +4 ;
- TYPET ;
- +1 NEW VAR
- +2 WRITE !,"You have selected to convert PC Attending assignments in the following teams:"
- +3 ;
- +4 SET VAR=0
- +5 FOR
- SET VAR=$ORDER(SCMCTM(VAR))
- if VAR=""
- QUIT
- WRITE !,$PIECE(^SCTM(404.51,VAR,0),U,1)
- +6 ;
- +7 WRITE !!,"All position assignments for each team will be reviewed."
- +8 QUIT
- +9 ;
- +10 ;
- TYPEP ;
- +1 NEW LP,VAR
- +2 SET VAR=$ORDER(SCMCTM(0))
- if VAR=""
- QUIT
- +3 ;
- +4 WRITE !,"You have selected to convert PC Attending assignments for team:"
- +5 WRITE !,$PIECE(^SCTM(404.51,VAR,0),U,1)
- +6 WRITE !!,"The positions that were selected are:"
- +7 ;
- +8 SET VAR=0
- +9 FOR
- SET VAR=$ORDER(SCMCPOS(VAR))
- if VAR=""
- QUIT
- WRITE !,$PIECE(^SCTM(404.57,VAR,0),U,1)
- +10 QUIT
- +11 ;
- +12 ;
- ASKCONT() ;ask the user if they wish to continue.
- +1 ;
- +2 NEW Y,DIR
- +3 SET DIR(0)="Y^"
- +4 SET DIR("A")="Are these selections correct? Do you wish to continue"
- +5 DO ^DIR
- +6 ; CHANGING TO MATCH STOP FORMAT.
- QUIT $SELECT(Y=1:0,1:1)
- +7 ;
- +8 ;
- SETLOCK ; sets the global to lock out other attempted jobs
- +1 ;
- +2 SET ^XTMP("SCMCATTCONV",0)=DT+1_"^"_DT
- +3 QUIT
- +4 ;
- +5 ;
- QOFF ;queue the task off to be processed in the background.
- +1 ;
- +2 NEW ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTSAVE
- +3 SET ZTRTN="STRTQJOB^SCMCCV2"
- +4 SET ZTDESC="PCMM conversion of PC Attending assignments."
- +5 SET ZTDTH=$HOROLOG
- +6 SET ZTIO=""
- +7 SET ZTSAVE("SCMCTM(")=""
- +8 SET ZTSAVE("SCMCPOS(")=""
- +9 SET ZTSAVE("SCMCFIX")=""
- +10 SET ZTSAVE("SCMCTYPE")=""
- +11 DO ^%ZTLOAD
- +12 ;LOCKS FOR NEXT ATTEMPT
- IF $DATA(ZTSK)
- WRITE !!,"Task queued. ",ZTSK
- DO SETLOCK
- +13 IF '$TEST
- WRITE !!,"Task NOT queued."
- +14 KILL ZTSK
- +15 QUIT
- +16 ;
- +17 ;
- FUTURE ;checks if can make an assignment for today.
- +1 ;
- +2 NEW VARTWO
- +3 KILL ERR
- +4 SET VARTWO=$$YSPTTPPC^SCMCTPU2(DFN,DT,1)
- +5 IF 'VARTWO
- SET ERR="-"_$PIECE(VARTWO,U,2)
- DO SETERR^SCMCCV2(ERR)
- QUIT
- +6 SET REASSIGN=1
- +7 QUIT
- +8 ;
- +9 ;
- REOPEN ;reactivate old assignment.
- +1 ;
- +2 NEW DA,DR,DIE
- +3 SET DIE="^SCPT(404.43,"
- +4 SET DA=POSASGN
- +5 DO NOW^%DTC
- +6 SET DR=".04///@;.08///"_$GET(DUZ,.5)_";.09///"_%
- +7 KILL X
- +8 DO ^DIE
- +9 QUIT
- +10 ;
- +11 ;
- CHANGE(AIEN) ;the actual FM call to convert.
- +1 NEW DIE,DA,DR
- +2 SET DIE="^SCPT(404.43,"
- +3 SET DA=AIEN
- +4 SET DR=".05///1"
- +5 DO ^DIE
- +6 QUIT
- +7 ;
- +8 ;
- INIT ;set up variables
- +1 ;
- +2 SET XMDUZ=.5
- +3 SET XMY($SELECT($GET(DUZ):DUZ,1:XMDUZ))=""
- +4 SET XMSUB="PC Attending conversion"
- +5 SET XMTEXT="^TMP(""SCMC"",$J,""MSG"","
- +6 SET CNTR=0
- +7 QUIT