developing an efficient scheduling process for ambulatory...
TRANSCRIPT
DEVELOPING AN EFFiCIENT SCHEDULING PROCESS FORAMBULATORY CARE
University of Michigan Health System Central Staffing Resource Department
April 19, 2000Programs and Operations Analysis
Ranjana RoyDhruva SreenivasanKimberly Romeike
TABLE OF CONTENTS
Executive Summary 1
Introduction and Background 2
Approach and Methodology 3
Current Situation 4
Hypotheses Considered 5
Findings 5
Recommendations and Conclusions 6
Action Plan 6
Time Studies Using Program 7
Appendices
CSR Staff Information A
Current Process Flow Diagrams B
Schedule Book Data (Historical Data) C
Forms/Codes Used by CSR D
Interview Template and Summary of Results E
Workload Analysis Data F
VisualBasic Program Prototype G
Executive Summary
The Central Staffing Resource (CSR) Department, which is responsible forscheduling both full time and temporary employees, is presently operating in a laborintensive and time-consuming environment. An Industrial and Operations Engineering481 team in conjunction with the Program and Operations Department analyzed theAmbulatory Care Unit in order to devise a more efficient scheduling system forAmbulatory Care float staff.
The team found a number of key findings:
Excessive unit cancellations occur on a daily basis (See Appendix C)> ANSOS is not usable in the actual scheduling process and requires daily rework
because it is used mainly as an administrative tool> Excessive variability occurs when creating schedules> Units may be overutilizing the float staff> Excessive amounts of time and effort occur to make daily changes in CSR schedules> Codes are difficult to remember and use (See Appendix D)> Inefficient time used on the phone to check and confirm availability of CSR staff> Outdated information exists in database (See Appendix E)
The noisy working environment makes it difficult to perform multiple tasks> Need to accommodate customer priority in a consistent format
The following resolutions are recommended to improve the efficiency of the AmbulatoryCare unit:
> Utilize a Microsoft Access database to store the information currently in oversizedbinders
> Create a Visual Basic scheduling prototype which will be able to schedule staff inclinics in a reasonable amount of time
> Implement a program taking into account the key features identified by the prototype> The program should be user-friendly and easy to update and input information
Introduction
The Central Staffing Resource Department (CSR) is a float-pool. The AmbulatoryCare Cluster fills the staffing needs of 120 clinics throughout the University of MichiganHealth System. The float staff consists of resident nurses (RNs), medical assistants(MAs), or clerical positions, o be filled for some length of time. The float staff has theability to work in more than one clinic.
The department has reported that the development of a schedule that fills theneeds of all the clinics and CSR staff is extraordinarily labor intensive and timeconsuming. Under the current schedule-making system, an estimated six months oftraining would be required before developing the knowledge and skills required tomaintain the same level of service to both the staff and clinics. The current scheduler’sknowledge is a necessity to the success of the Ambulatory Care cluster. Presently, acomputer program, Automated Nurse Scheduling Operating System (ANSOS), is beingutilized as a log for all the daily schedules and persona] data of the CSR staff. Currentlythere is one primary lead who is in charge of all the main scheduling revisions. Thedatabase has to be constantly reworked to accommodate for the daily changes when anurse calls in sick or a unit cancels for example. (See Appendix A)
f Background IWhile previous studies have focused on the inpatient operations, they have
demonstrated the inefficiencies of the scheduling process. Historical statistics from astudy and analysis conducted in December of 1999 and in April of 1998 explicitly statedthis in both of the reports. (See Appendix C)
The reoccurances of these scheduling issues demonstrate the necessity toapproach the current situation from a different angle. Obviously the scheduling withinCSR is a difficult and time-consuming skill to learn and teach to fellow employees. Amore simplified system needs to be implemented.
The current scheduling process is tedious and cumbersome. Since the scheduler isdealing with so many different clinics, locations, units, levels of staff, types of leave, etc.,numerous codes (abbreviations, color coding) are necessary to clarify the process.Currently, the scheduler has to go through a variety of sources (oversized binders and logbooks) before being able to decide on a suitable candidate to fill a position at a particularclinic. (See Appendix B)
Currently there is only one cluster lead. When this project analysis initially began,there was a Lead Administrative Assistant who was in the process of teaching anotherAdministrative Assistant the intricacies of the scheduling process. This training takes sixmonths. The Lead Administrative Assistant recently stopped working (-2 weeks ago) andnow his trainee is the sole scheduling lead. She is having a hard time learning acomplicated scheduling process which is not fully explained anywhere because the priorlead remembered a lot of the little details in his head.
Any changes to the schedule or database are inputted into ANSOS when it is mostconvenient for the scheduling lead(s). The daily and monthly activities are very time-consuming and a large portion of the process is primarily manual. A program other thanANSOS is used to determine priorities. This causes inconsistencies in the data collection
process. ANSOS is currently used only for one shift at a time, but it has the capability to
accommodate more than one shift.
Personnel
The project team consists of the Project Supervisor, the Project Coordinator, andthree Project Team Members. Lisa Floyd, Manager of Clinical Nursing, is the ProjectSupervisor. Mary Duck, a Senior Management Engineer at POA with prior experiencewith the scheduling process improvement project, functions as the Project Coordinator.The three team members are Ranjana Roy, Dhruva Sreenivasan, and Kimberly Romeike.Deb Omans and Matt Martin are the primary scheduling contacts. Matt is a LeadAdministrative Assistant and Deb is an Administrative Assistant.
Purpose and Objectives
The purpose of this project is to reduce the time requirecifor developing aworking schedule of Central Staffing Resource (CSR) nurses (RN’s) and medicalassistants (MA’s) within the Ambulatory Care Cluster. The project’s goals include:
Reducing scheduling variabilityEliminating non-value adding, time-consuming activitiesEstablishing a standardized method for CSR scheduling
> Quantifying the workload
Approach and Methodology
The main methods of analysis of the workload and procedures were conductedprimarily through observation and interviewing. Information was obtained by watchingthe main scheduling lead perform his job on a daily basis and by interviewing staffmembers within CSR.
The scheduling lead is in charge of the following tasks:
> Determining priorities
> Accommodating situations with an email message and a phone call when:-unit cancels-nurse OT request-unanticipated need-sick nurse-cut hours/termination of”employee
> Determining which CSR staff member is the most qualified for schedule holes> Updating the monthly and daily schedule> Calling in nurses to confirm their availability on a given day> Inputting data into ANSOS
In order to analyze the current scheduling process, the following method was utilized:
> Created flowchartsLooked at historical data ( number of cancellations, request for changes)
> Interviewed personnelResearched possibility of automating process by creating Visual Basic prototype
> Conducted time studies of various scheduling tasks using prototype program(See Table 1,2, and 3, on pages 7, 8, and 9)
Current Scheduling Process ]The Central Staffing Resource Department currently schedules according to the
flowcharts found in Appendix B. The preparatory steps include:
> The schedule is composed on a 4-weeldy basis according to the availability of thestaff members and the priorities of each unit
> First, the permanent and temporary staff schedules are obtainedThe names are all entered into oversized logbooks (the permanent employees writtenfirst)
> The unit shortage requests are then given to the CSR and priorities are made> The main scheduling lead then manually matches the nurses to units in the scheduling
books> The final schedule is then entered into ANSOS> A cross-check is conducted to make sure that the scheduling books are en sync with
ANSOS> The weekly updates are printed and then once again the scheduling books are verified
with ANSOS
The actual process flow used in the development of the four-week schedule can befound in Appendix B.
Alternatives Considered
While exploring all the available options, the following alternatives wereconsidered:
> Provide better training for scheduling leadsEnsure better communication within Ambulatory Care
> Increased use of ANSOS as a scheduling tool
Findings
The culmination of interviews and observations led to the following findings:
> Oversized binders take up too much surface space> ANSOS is mainly used as an administrative tool (billing purposes)> The possibility of using ANSOS more in the scheduling process has not really been
exploredToo much manual labor currently exists
> Human error exists> Need to cross-check between three sources: the book, the timecard, and ANSOS
Excessive number of phone calls (fixing problems and filling needs)> Workplace is a high traffic, noisy area- many distractions exist> Priorities are tedious due to large amounts of information> Numerous ANSOS codes exist (defining work shift, units, hours, skills, etc.)
Conclusions
According to the above findings, the following conclusions can be drawn:
A need exists for an alternate system that is easier to use and less time-consuming;
the system must be easy to update and input dataA different way of conducting daily changes needs to be implemented in order toreduce the amount of books
> A Visual Basic scheduling program will schedule staff in a reasonable amount oftime, greatly reducing the amount of time spent doing daily changesThe program needs to be user-friendly and easy to update and input information
> Through time-study comparisons, the prototype program illustrates the need for aprogram to replace the current scheduling system (See Tables 1, 2, and 3, on pages 7,8, and 9)
( Recommendations
The following recommendations are proposed to improve the scheduling process:
> Use ANSOS as minimally as possibleDeadlines for requests needs to be enforced somehow
> Email more and try to use the phone less> Utilize a program taking into account the key features identified by the prototype
Visual Basic Program and the bottleneck operations identified in the time studies
J Action Plan
The action plan is:
> Benchmark similar institutes> Orient staff to key features necessary in a good scheduling program
(See Appendix G)> Discuss whether or not a computer program is a viable solution in the provided
environment> Utilize a database in Microsoft Access to store information currently in oversized
binders
Ave
rage
Tim
eR
equi
rem
ents
By
Tas
k:
Tim
eT
oC
ompl
ete
Tas
kF
orS
ingl
eIn
cide
nt
Com
puter
Program
Method
Current
Method
Tas
ksa
mpl
esi
zere
ps/s
ampl
eav
g.tim
est
and.
Dev
sam
ple
size
reps
/sam
ple
stan
d.D
ev
Ent
er4-
wee
ksc
hed
ule
for
Em
ploy
ee
_____________________________________________________________________________________
(sam
ples
incl
uded
vary
ing
days
PTO
,11
557
sec
11se
c11
5J3
SØ
Q&
132s
ec
40-
and
35-h
our
empl
oym
ent
frac
tion,
1-
4m
orni
ngs
oraf
tern
oons
off)
Fill
Una
ntic
ipat
edA
bse
nce__
____
____
____
____
____
____
____
____
____
____
____
____
____
____
____
____
____
____
____
____
____
___
(rem
ove
empl
oyee
from
all
affe
cted
115
165se
c7s
ec11
597
sec
appo
intm
ents
,fi
ndre
plac
emen
ts
bych
ecki
ngfo
ror
ient
ed,
unsc
hedu
led
staf
f)
Fill
Cli
nic
Req
ues
tF
orC
over
age
115
5sec
76s
ec11
255s
ec
(sam
ples
incl
uded
situ
atio
nsw
here
noor
ient
edpe
rman
ent
staf
fw
as
9su
bjec
tsga
veup
duri
ngfir
stre
p
avai
labl
efo
rre
ques
ted
time,
requ
ired
Thi
sda
tais
for
2su
bjec
ts,
1re
pea
ch
rear
rang
ing
sche
dule
)
*S
ampl
esco
nsis
ted
of11
indi
vidu
als
(3m
ale,
8fe
mal
e)
All
were
given
brie
fles
son
and
allo
wed
as
muc
htim
eas
desi
red
to
fam
iliarize
them
selv
esw
ithprogram
.E
ach
experim
ental
bloc
kw
as
alte
rnat
edto
achieve
random
ness
and
redu
cenoise.
Tab
le1.
7m
ero
Co,
nple
/7€
w/.c
&q
4/n
cik
nt
n
Tot
alT
ime
Dif
fere
nce
Usi
ngP
rogr
amP
roto
type
Tot
alD
urin
gSi
ngle
Inci
dent
Sch
edul
ePe
riod
Tot
alFo
rY
ear
Tas
k(s
ingl
eem
ploy
ee)
(inc
lude
all
empl
oyee
s)(i
nclu
deal
lem
ploy
ees)
Ent
er4-
wee
ksc
hedu
lefo
rem
ploy
ee(-
297
sec)
-178
20-2
1384
0
Fill
Una
ntic
ipat
edA
bsen
ce(-
221
.5se
c)-4
430
-106
3200
Fill
Clin
icR
eque
stfo
rC
over
age
(-26
0se
c)-7
80-1
8720
0
Tot
alT
ime
Per
Yea
r(s
ec)
-146
4240
(hr)
406.7
3
Tab
le,
jvj
7ii
eD
,#1e
tW7C
ttsii’
qP
rczM
Pi-&
ohjp
e.
Recommended Features of a Program For Use By CSR Ambulatory Care Schedulers
(As Illustrated by Prototype time studies)
Schedule Automatically Prepped I(zero- time requirement)
Employees Automatically Entered As Available I(zero- time requirement) 1
Eliminates:
Choice time
(time increases exponentially
Automatic Entry of Annual PTO requests based on priority with # of choices)
Physical entry time of initial input
Automatic Update of Denied PTO Requests is comprobable to current system
Clinic Requests for Coverage:
Automatic Sorting of Candidates I Eliminates:
I Look-up time for determining
V if candidate is already scheduled
If No Candidates Are Available:
Automatic Re-Setting of Schedule Look-up time for determining if
to Maximize Number of Clinics Served candidate is oriented
Look-up time for determining if
candidate has requests for time off
Eliminates:
Automatic Updating of Schedule Into Ansos Need for manual entry into Ansos
Eliminates:Automatic E-Mail Distribution For Projected Schedules, Reminders Need for manual attachment of files
Eliminates:
Possible oversights, judgment errors
All Automated Program Processes Accidental scheduling overlaps
Table .3. PJccn1mendd Fèa’ws
km
(rIsI..
RN
.II
SN
Adu
lt(‘
rijic
al(‘
ate
iii.
ul-
5266
l’i
6743
Ph
one
-6-
3624
liarl
eite
l)av
ic,.
RN
.II
SNA
inhu
Iato
r(a
renu
il-
1189
1Pa
ge-
9965
Phon
e-
6-94
01
Mar
II
rber
.R
N.
ItSN
Ped
iatr
ic(‘
riik
al(‘
arc
mai
l-
S27
0la
ge
-7)
4I’
hone
6-’
199
Bat
hW
etul
a,R
N.
ItSN
PAC
;l’
crin
aial
IP
scl
im
ail
-l.K
83Pa
ge-
2783
Pho
ne-
3-67
0(1
ucat
iona
lN
urse
Coo
rdin
ator
iiM
arga
ret
Mer
edith
.R
N,
BSN
mai
l-
K64
7l’
agc
-23
94lit
omie
—6—
9400
Juan
ita
Parr
y.R
N.
ItS
NA
dult
Med
ical
Lm
aiI
-1.
808
Page
-23
53P
hone
-6-2
19
3O
rchi
dS
tew
art,
RN
.II
SNA
dult
Sur
gica
lli
iiai
l-
11Y
74Pu
ge-
Pho
ne-
6-38
43
Dea
nna
Itey
er.
RN
.M
SNA
mbu
lalo
ryC
are
[mai
l-
1)45
9Pa
ge-
2473
Pho
ne-
3.59
89Ju
lieW
ahi,
RN
,I3
SNA
dult
Med
ical
/ Sur
gica
l[m
ail
-N
183
Page
-674
1I’
hone
-6-
2266
Lea
dA
dmin
istr
ativ
eA
ssis
tant
s
IC
arla
Dun
har-
Dea
nA
ICLJ
,PI
CLJ
Psyc
h.C
alh
&[P
Lab
s,[C
M()
Phon
e6-
9379
IS
uppo
rtA
dmin
istr
ativ
eA
ssis
tant
s
Wat
ida
(ord
er
Iidi
nsoi
ilit
lany
Mar
sha
Dav
ison
Syl
vcrl
oolh
-Sie
war
iT
eiiip
..
cen
Ira!
affu
igR
esou
rce
Dep
artm
ent
-U
nive
r.,,
‘ofM
ichi
gan
Hea
lth
Syst
eni
1500
Eas
tM
edic
alC
ente
rD
rive
Med
-Inn
Bld
g.R
ns.C
108
Box
0804
Mai
nP
hone
-(7
34,
763-
5637
Fax
Num
ber
-(7
34,)
936-
8360
Cli
nic
alS
uper
vis
ors
I
Lis
aFl
oyd,
RN
,BSN
Clin
ical
Nur
seM
anag
erE
mai
l-
C87
3Pa
ge-
9232
Phon
e-
3-30
86
n
Non
-Cli
nica
lS
uper
viso
rs
Julie
Was
h1)
cpar
lmen
tS
ecre
tary
Ill
Phon
e-
6-93
99
Fion
a(l
iisho
lm—
Fcro
u,(‘
Icri
cul
tlam
hIec
r[m
ail
-II
140
Pag
e-6
742
Phon
e-
6-93
98
Col
leen
Kap
pC
leri
cal
Pcds
/Per
inat
al!P
sych
&A
dult
(‘ii
i ica
t(JIC
Pat
ient
Att
enda
nts
Imai
l-
1109
2Pa
ge.
6753
Phon
e-
6-47
27
Joel
leM
oroz
(.lcr
ical
Ad:
liA
cute
(‘ar
ePa
tient
Aue
ndan
b
Emai
l—
It11
7Pa
ge-
68rn
)Ph
one
t-47
1t
Edu
catio
nal
Nur
seC
oord
inat
orl)
iane
Piha
lja,
RN
,H
SNEn
mai
l-
11M
96Pa
ge-
5360
Phon
e-
3-77
59
I’at
tcA
rnol
d.
l’(C
.II
onic
Mcd
,(V
lear
n.A
l’S
Pho
ne-
6-91
8(1
Sta
ffL
)eve
lopm
cnC
oord
inat
orN
on-C
linic
alI
Ros
emar
ySi
erac
ki[m
ail
.11
146
Page
-941
2
LPh
one
-6-
653)
Pam
Sol
tman
-N
ursi
ngA
ssis
tant
sK
athy
Ileu
ton
-Pa
tient
Atte
ndan
tsP
hone
-3-
5637
Mar
ieB
rady
Tim
Rca
hurd
Bra
ndy
Cre
ps[
Jerr
iA
tkin
sD
ebra
Om
ans
l2lm
rN
ight
4Ohr
Nig
ht4O
hrE
ve4O
hrEv
e4O
hrI)
ay!E
vc
Central Staffing Resource Department
Contact Information - Listed by Job Catagory in Alphabetical Order
Cluster Leads
Pattie Arnold
Carla Dunbar Dean
Kathy Heaton
Mart Martin
Jan Resch —.
Pam Soitman
Administrative Assistant
Administrative Assistant
Administrative Assistant
Administrative Assistant
Administrative Assistant
Administrative Assistant
—
— I I I I I
Name Title Focus Area Email Pager Phone
r T r rNursing Manager [Lisa Floyd ‘Clinical Nurse Manager All Areas C873 9232 3-3086
Nursing Supervisors .1
Deanna Beyer Nursing Supervisor Ambulatory Care D459 2473 3-5989
Jan Crissey Nursing Supervisor AICU S266 6743 6-3624
Charlene Davies Nursing Supervisor Ambulatory Care B891 9965 I 6-9401
Mark Ether :Nmg Supervisor PCC S720 7141 6-2199
‘Juanita Parry Nursing Supervisor ‘MAC L808 2353 6-2193
Orchid Stewart Nursing Supervisor SAC BY74 7136 6-3843
Barb Wetula Nursing Supervisor PAC, PSYCH, WBC L883 2783 j 3-6700
Julie Wahi Nursing Supervisor MAC N183 6741 6-2226
ClericalSupervisors I 1
Fiona Chishoim-Ferrow Manager Inpatient Clerical Svs All Clerical Areas B140 6742 6-9398
Colleen Kapp Clerical Supervisor :PPP B092 6753 6-4727
Joelle Moroz Clerical Supervisor ‘UH B137 6800 6-4716
Education Resources ‘
...
Margaret Meredith Educational Nurse Coordinator MI Peds Areas, SAC. NA K647 2394 6-9400
Diane Pihalja Educational Nurse Coordinator Ambulatory Care, MAC BM96 5360 3-7759
Rosemary Sieracki Staff Development Clerical, PA B146 9412 6-6531
AGC,PGC,OR ‘ B136AICU. PCC. WBC,
PSYCH. Misc
N/A 6-9380
B204 : N/A 6-9379
Patient Attendant B157 N/A 3-5637
Ambulatory Care
Clerical
BB96 N/A 6-1490
B090 N/A 6-6530
Nursing Assistant AS2I N/A 3-5637
oa
c.1.
.e
CL
ez1.
—
.-.er
—o;
ci‘a
ri—
‘ati
as
7\
1-i‘a
%_
‘t
-1-4
-In
in‘c
‘‘
‘p‘a
-so
‘C-
C.
r—t4
—‘a
‘Ct—
00
00
4Ifl
1-1tI—
1-iIn
-d
1--—0
0‘a
00
t-1-I
1-i1-4
‘aO
s1-4
—t-
I-‘a
InIfl
‘a1-4
1-I‘a
InIn
—00
1-1q
11
—‘a
•,
1--0
0
.
•Inin
00
In0
‘1
---
-—
aa
aa
eW
iW
IW
I•0
7-
E-(
e
.a
aa—
CL
—=
•00
‘.
..
i._
1It
CL
CL
CL
—
-rw\r—
E—
aC
LILI
LI—
c.).
L.
UU
U.
;..—
I..
aa
aW
IW
IWI
WI
-a
a—
—LI
ULI
UL
IL
ILI
LILI
I-I
I.
IU
I..—
I..I..
li
ii.
II
L.
II..
I..-
-
-<--
L.
-<
..
-,
.ii
..
rti
i-.z
I.-c.
tII-
I.-.
I---
I-I--
I--
I--a.
c-)L.a.
SCIULI
CL
..I I•LI
;.
a
--.
aa.
—-
•.—
WI
,I
WI
CL
WI
LIL
IW
IS
—-
LI
CL
a-.=
:(I)
a•
-ae
,i
aa
..—
cC1
ea
aL)
i
-.<
—CC
WI
t:
..
..
aLI
‘—
‘—
I—
=—
.—LI
ci
.-‘
LI
CL
S—
LI(I)
Ifl
—LI
aE
SS
L.L
I
LI
i:CM
c•
—‘
.C1.’.
a
---E
S
CL
aa-aIWIc-)
-0
aUU,
aaCL
CC
0SUWI
I.i.
SUWI
I.’LI.
atECCI..
CCLI
I.a
LILI
a
QJ
-a
>5
CL
00Ua0CL
aa
E0a
.2a.2
LI
a
JTT
I0
0
I00
::.
‘0I4
rF-
00
tI—
90
rrK)
I-.0
00
00
,,
t‘0
00
%0
‘0,
00‘
‘0‘0
t00
0%96
‘0—
I©
—0%
‘(4
1fl
t4In
tin
00
qN
In
©0C
r0%
Iin
06’0%
o3t%
’000%
o%
I.—=int.
‘1
9000
—in
00
00
.-
F-
In—
In‘0
—
inIn
(tI
in,
inin
inin
3‘t
‘7‘
‘0‘0
‘0‘0
‘0‘0
‘0—
—-e
‘1
—
0..
‘0
06‘F
ti1—
,00
06ItK
in•
lfl
in%
go
inin
•in
in(K
in
.90
000
00
00
006
In.
00
•00
90
90
—06
06o
in.0
..
.•
•.0
••
I-
•L
..L..L
e1•.0
.Ii
Ic
c.,
.z
N—
0N
NN
NN
NN
NN
NN
02
0U
—U
U—
001
01U
0101
01
0.
00
I-0.
0.
00.
0.
0.
0.
(I)
KK
00
—ri
ff
——
0.4
.4N
--
I-I-.
I--
f--.
--
-‘-
f-.
tI0606.0•-
intIin
in0.•01N
NN
.U
ULI
c)—
I.0
.0
.
.<.
.
U—
-
I-I-
--
-
..
2•0
=0
KM
-
00
NI0
CIf)
‘.110
411
cE
t0
ç1KM
b0
00
1
KMz
ZE
o•
00.
.00
I-14
0.
.22
.0U
t—
0.
Z
aa
I,,
CU
=0.
I7.
KMC‘
0.—01
—‘
—E
01N
iW
I=
‘KM
C(I)
.0
‘
.t
0
o=,—
If)‘..d
,f.I
a
z
KM41.00
KM
NKM.0KM01CI
,01=
5K2
—0
••,•
I—
N0.
.)
.
2.
cc
z
v—)-
.P
5..I-NC022
50C-C-tC£0
5-
00
00-VI-V
00UC000
00NC01
CgoN
00I01C0.
1J
I
p
Ii 2. Arei E IM. 8-6 •VV
3H 219 m cc-T-c ñ?a_4.._p
(
<. Zr-
V.
,4R ,4 C “ I
( 5Z ‘
OH7
J-. rn7
‘
C1 2/
I f:JThi /- —
Lqg-
L-( ç- /
— rL
(oI(o17
UNiVERSITY OF MICHIGAN HEALTH SYSTEMCENTRAL STAFFING RESOURCE DEPARTMENT
Ambulatory Care ClusterEmployee Guidelines
1ha1 //L:t/SPS ilSCHEDULING! PAYROLL GUIDELINES
SCHEDULE REQUESTS
1. Each employee shall receive one of the following Scieduling Procedures appropriate for their classification.a. Regular employee- Registered Nurse or Medical Assistantb. Temporary employee- Float Registered Nurse, Medical Assistant or Nursing Assistantc. Temporary employee- Clinic based Registered Nurse, Medical Assistant or Nursing Assistant
2. It is the responsibility of all Ambulatory Care Cluster employees to check their mailbox for their schedule.Staff who do not work prior to the new time period, may call the office to receive the first requested shiftassignment of the new schedule.
3. Due to unanticipated clinic needs, employee assignments may be changed after the initial scheduledistribution. A projected staffing schedule is posted on SYSM E-mail daily, Monday through Friday for thefollowing day. CSR staff are expected to review this schedule daily for verification of the following day’sassignment. If CSR staff are not working on the day prior to a schedule change, the AC Administrative
-.. Assistant will notify them of the change via phone.
4. Float staff may not directly schedule time with an individual clinic.(EXCEPTION: all unit based staff mayschedule with their clinic and then inform CSR of the agreed upon schedule. All scheduling of float staffmust be transacted through the department.
AVAILABILITY LIST
If an employee is on the schedule to work but not initially assigned to a clinic, the employee will beconsidered AVAILABLE to work.
Employees the AVAILABLE LIST but not at home to receive a message. Will call the office to see if theyhave an assignment no later than 7am that morning.
Messages will be left on the employee’s answering machine regarding an assignment, but the employeewill need to call the office to confirm that assignment.
4. When the employee is on the “AVAILABLE LIST”, but can not be contacted about an assignment, it isconsidered a NO CALL NO SHOW shift.
5. If the employee is canceled from one clinic, they will be reassigned to the next available clinic to whichthey are oriented or will be scheduled to orient in a new clinic. Availability will not be canceled untilclinic staffing needs are met.
C ECARDS / PAYROLL
1. After completing the last work shift for the week, the employee will bring their timecard to the CentralStaffing Office or fax it to (734) 936-8360. In all cases, completed timecards must be in the office by12:OOMN on Friday before payday. Saturday shifts are recorded on a separate time card and are turned onor faxed to the office at the end of that shift.
.sharcI Iorfl1saflhcare•aflhsch2dRc
(j
2. Paydays around holidays occasionally require timecards to be turned in early. When this happens, signs
will be posted in the office and E-Mail messages will go out with the early due dates. No special checks
will be made for late cards.
3. Holidays and overtime will be paid at time and a half. All overtime must be approved by the CSR
supervisor.
FILLING OUT REQUESTS/TIMECARDS
1. When filling out a schedule request form, print your full name (if you hyphenate your last name do so
on your request sheet). Circle RNT (RN Tempor’ry), NA (Nurse Aide) or MA (Medical Assistant), fill in
your ANSOS number and your date of hire.
2. When filling in the dates on the request sheet, make sure you have the correct dates under the correct
day of the week, If your dates are incorrect, we will go by the day of the week, and you will be held
responsible for working the days requested.
3. Put an “X” on the days you cannot work and put a “D” on the days you can work. Do not leave days
blank on the request sheet. Every space should either have an “X” or a “D”.
4. Use the comment section to make any special requests about your schedule. You are responsible for
writing down special requests with every schedule turned in.
( Time cards must be filled out completely. Ensure that your complete name and ANSOS numberare filled out. The date, clinic, person you are providing coverage for, and arrival/departure
time must be complete.
If you do not know the name of the person you are providing coverage for, call the nursemanager in that area or call the CSR office.
6. Use one timecard per week. Never put two different payroll time periods on the same timecard. If you
have any questions regarding the beginning and end of payroll time periods, check with the CSR
Administrative Assistant.
Remember, if your timecard is not submitted on time you will not receive payment from our
department, until the next payday.
7. Overtime occurs in the following cases:
A. You decide during your work shift that you want to pick up additional hours at the end of the shift.
B. You stay beyond your scheduled shift to complete patient care.The CSR supervisor needs fo be notified about all CT Specify on the time card (under comments) why
overtime was necessary.
EXPECTATIONS
1. You are expected to float to all clinics to which you have been oriented.
2 You are expected to be flexible in accepting assignments. Clinic needs are based on a priority systemwith higher priority needs filled before lesser priority needs.
3. You are expected to work all dates you have requested. In the rare event of a sick call, you need to callthe office at least two hours prior to the clinic start time.
4. Because you are a temporary per diem float, there is no guarantee of work and canceled shifts are tobe expected.
I sharcd\firms\amhcarc\aihschgd
I/)
5. You will have an E-mail ID and must know how to access the computer for information. You are
responsible for all communication from the office that goes out through E-mail. If you do not have an
ID or do not know how to access E-Mail, contact a CSR Educational Coordinator. Check your E-mail
every time you work.
EXCESSIVE ABSENCES
1. Excessive absences fall into several categories:A. Excessive sick time usage: Defined as two (2) occurrences of illness within any consecutive
three month period.B. Excessive scheduled shift cancellations: Defined as two (2) occurrences of cancellations within
any consecutive three-month period for non-illness related reasons. Also, included in this
category is an employee who has made him/herself available for work and can not be reached
by phone with their assignment. When the employee cannot be reached, the assignment is
immediately given to the next available employee.C. No Call-No Show: One (1) occurrence is excessive. Defmed as: “the employee does not call in
and does not report for a scheduled shift.
All excessive absences are tracked and forwarded to your CSR Supervisor.
ADDITIONAL INFORMATION
Nurses and Medical Assistants and Nursing Assistants are expected to be BCLS certified upon hire.
The course may be taken through the Hospital. (There is no pay for attendance.) Recertification is
required every 2 years, and it is the responsibility of the employee to maintain certification.
2. Each year mandatory programs (fire, infection control, blood transfusion and safety) must be updated
to continue working. Certification is required annually and may be completed by attending or
completing one of the programs offered throughout the hospital, or through the Central Staffing
Department. (Contact an Educational Coordinator) or on the UMHC Web Home Page. If you complete
your update in a clinic, you must let your CSR supervisor know. You are required to bring a copy of
your BCLS card and/or the mandatory activity sheets to your supervisor. JACHO requires that this
information be available in your employee file.
3. A one month grace period is granted from the date your BCLS/Mandatones expire. After the grace
period expires, if you have not updated you will not be permitted to work.
4. The Central Staffing Resource Office is open 24 hours a day (except during extending circumstances,
at which time your message will be recorded on Voice Mail. Please leave a message and we will get
back to you when the office re-opens.) If it is an emergency , page the supervisor on pager #7136.
5. Additional time cards and schedule request forms may be picked up in the Central Staffing Office,
C108 Med Inn.
6. If you fax Requests and/or completed timecards to the office, you must then send us the hard copy
through campus mail, C108 MIB, Box 0804.
7. Ambulatory Care Float RN’s, MA’s and NA’s are expected to work an average of 3 days per week as a
minimum.
8. If you will not be requesting work for an extended period of time (greater than one month), it is your
responsibility to notify the Central Staffing Resource supervisor After three months of norequests/work and no notification, you will AUTOMATICALLY be taken out of the system. If the
department is hiring, you may reapply and interview for a position.
I \hared riis\athcar,\aiii bsch dRev. I/9
All employees are expected to provide written letters of resignation when they choose to leave the
department. Future work references will not be provided for those individuals who did not inform the
department of their departure.
f: \ shared \forms \ambcare \ ambschgdrevised 1/98
I: sharcdtrms\amhcare\ambcgR /98
UNIVERSITY OF MICHIGAN HEALTH SYSTEMCENTRAL STAFFING RESOURCE DEPARTMENT
MISSION STATEMENT:
Our mission is to supplement regular decentralized staffing at the University of MichiganHealth System using centralized, high quality, cost-effective, resources. We strive toprovide excellent service and leadership in all areas of supplemental staffing services.
GOAL STATEMENT:
Our goal is to facilitate a safe and effective patient care environment by providingsupplemental staffing resources.
OBJECTIVES:
• Create / maintain a centralized float pool comprised ofcompetent well-trainednurses, clerks and ancillary staff to supplement regular unit/clinic staffing
• Assist and support unit I clinic personnel in utilizing our services effectively
• Form a partnership with other IJMHS team members in order to better serve ourcustomers by establishing and maintaining safe staffing standards
• Establish an institutional environment that recognizes the value of CSR staffingresources and supports the unique needs of CSR float staff
• Partner with nurse managers to develop and implement forecasting strategies for longterm unit staffing needs
• Partner with unit / clinic charge nurses on a shift by shift basis to solve exigent shortterm staffing problems
• Evaluate needs using data driven processes which result in the equitable, consistent,and cost effective allocation of staffing resources
• Coordinate system wide resource sharing, communication and problem solving
• Support current IJMPNC contract
• Reduce excessive institutional overtime
• Provide ongoing educational opportunities to all CSR employees
• Focus on continual improvement in all areas of the department
• Make customer satisfaction paramount
APPENDIX BCurrent Process Flow Diagrams
• Monthly Scheduling Process, Bi• Daily Activities, B3
W,u’ S uctali,,y procS:Start
Reminder E-mail to CSR:4-week schedule requests are due
Blank Schedules are Prepped
___________
]
Refer to EmployeeRequest Form
And Transfer toSchedule
Update Standord.xls & Copbook.xls
Review calendar
Transcribe PTO grid onto schedule
Prepare 4 week calendar forms for eachof the CSR perm RN’s and MA’s
4 references used:
Review “Annual PTOGrid” transcribe any
approved Ff0
Sort and Review contents of“Schedule Requests” folder,
transcribe requests ontocalendar form
Refer Back toPrevious 4 Week
Schedule to DetermineRotation of Employees
Alphabetize Permanent and TemporaryCalendar Forms
Review clinics requests folder and writerequests in Copbook.xls
Input float staff availability on schedule
Review the “Clinics Requests’ folder andwrite clinic requests in Copbook.xls
Print 4 copies of Copbook.xls and PasteOnto Schedule Sheet
Add Highlighter Lines to Schedule Sheets
Alphabetically list the available float CSRemployees
White Out UBT employees if preprinted onschedule sheets
Write Clinic Assignments on the IndividualCSR staff calendar forms
Review the “Clinics Requests’ folder andwrite clinic requests in Copbook.xls
Review “Standing Orders” and Transcribe
Assign Available Float Staff
Photocopy Schedules and Send toAppropriate Clinic Managers / Schedulers
E-mail Clinic Managers and IndividualStaff regarding filled PTO requests
E-mail CSR employees to inform them ofSchedule Distribution
Distribute the CSR employees’ copies ofcalendar forms
Enter the CSR Schedule into ANSOSScheduler from calendar forms
DAILY ACTIVITIES
Ca/I ffec&o’
APPENDIX CScheduling Book Data
• Summary of historical data (March 1998), Cl
SUM
MA
RY
OF
REQ
UES
TS/C
AN
CEL
ATI
ON
SU
àoji
2Mai
cli2
CL
IUS
TE
R..
lAdu
llG
C
Requeil
s
Can
ceIâ
lio
ifl
%F
,iled
%N
oFi
lls%
Can
ceU
al.o
ns
Pç.
1.üi
iol
Can
c.Ie
loii
sby
Uni
l
IP.d
.G
CSW
6M7U
7W
484C
—-
SA5B
5C
8A6B
8C
7A
7CSA
688C
TBA
C
146
213
124
129
101
9295
4921
8268
199
152
l8
6010
272
4762
3551
2310
3132
6264
45
514%
509%
32.3
%550%
29.7
%36
.3%
36.8
%49
0%31
0%46
3%50
0%50
3%520%
401%
15%
II7
.9.
1%$
5%8.
9%24
.5%
9.5%
4.1%
259%
159%
136%
85%
59%
212.
411%
314%
581%
36.4
%61
.4%
37.2
%53
.7%
469%
31.0
%31
8%36
4%41
2%42
1.
38r.
84/.
14
2%
101%
66%
8.7%
4.9%
71%
32%
1.4%
43%
45%
II5%
69%
6i.
.
lAdul
ICU
Req
ues
ts16
412
011
850
53
Can
cell
atio
ns41
2752
1817
%F
ille
d576%
550%
38.1
%44
.0%
54,7
%
%N
oFi
lls20
1%22
5%17
.8%
20.0
%13
.2%
%C
ance
*ali
ons
223%
225%
44.1
%35
.0%
32.1
%P
oh
anat
Can
caN
anon
sby
Unn
266%
Il4%
336%
11
.6%
Ii0
%
R.q
ues
tsC
ance
llat
ions
%Fi
lled
%N
oF
ills
%C
anc.
Ilab
ons
ni
h.
IIn
..
6070
5040
R24
811
8254%
26%
116.
29.4
%
247
91
587%
45%
36.8
%IS
0%
373
136
59.2
%4
3%36
.5%
22.5
%
‘33 4$
58.6
%5.
3%36
.1%
7.9%
1TBC
4DC
211
110
105
4746
.9%
52.7
%3,
3%4.
5%49
.8%
42.7
%17
.4%
7.8%
(P.d
aIC
U14
01.
ICU
CT
UPI
CU
Req
uest
s21
332
133
644
Can
cella
tions
200
114
205
6•.
Fil
eo23
4%54
5%32
1%79
.5%
%N
oF
dIs
33%
10
0%
6.8%
6.8%
%C
ence
lLal
.ons
733%
355
./.
61.0
%13
.6%
Pob
onol
Can
cell
atio
nsby
Uni
t38
1%21
.7%
39.0
%1.
1%
APPENDIX DForms/Codes Used by CSR
• Copy of ANSOS Codes, Dl• Central Staffing Schedule Request Form, D4• Xerox Of Scheduling Book, D5
C, 0 0
(I,
‘1 0
cz 0 0 0 0
U,
(O
Tj
1 0 cj) 0 0 0 0
C’,
r) •1 0 C)
C CENTRAL STAFFING RESOURCESCHEDULE REQUEST FORM
(QO
Pef ftJ
NAME:
___
DATE: DATE OF HIRE:
HOME UNIT/CLUSTER: SCHEDULE DATES:
DAY SUN MON rUES WED THUR FRI SAT
DATEA VAILABILITY
/
X
DAY SUN MON TUES WED THUR FRI SAT
[DAiE
L4 VAJL4BILITY
-s
C DOMENTScJ 1 r; -10rk 4
DAYDATE
SUN
A VAILABILITY
MONa&3G
TUES WED
S%%/
THUR FRI SAT
! )K
DAY SUN MON TUES WED THUR FRI SAT
DATEA VAILABILITY
%5><
S:tm.I*99doc (SF99)
DATE
____
_J
OF’
)TO
KU
N
ST
I?4
U5
S
T’J
C
DE
SAI
A1
3L
FIT
ZPA
TR
ICK
GO
ftJO
tJ
HA
LL.
R0EZ
-MO
OR
E
DATE
Mon
day
‘an
uar
y2
4,
2000
cop
CE
X
CE
X
AR
LA
GE
;1T5
RO
IHT
N
O1F
IEU
M
RN
RN
AL
SUR
to
8a.5
6a-5
8a-5
73
0.4
8.4
8.-S
CC
/
CO
P
CE
X
CE
X1p
4
DATE
____
g4
/JM
AT
7iJ
I
8.4
CE
X
8._
sB
OU
NO
SG-/
CL
)Mt4
IIJG
Siz
-5j
61
MJE
JI
!_
-
Cc/
Ti
——
-—
——
—
Ti}
PtJ
Fc;4
1T
Y73t/
-ri1
L’-
1A
--—
-
SIG
&t.
J
bE
PnnA
tE
,AN
8-3
:Ci
•R
iPtE
YT
/<L
)SH
MA
N‘-co?
P-O
PS
AS
VZ
O
-rR
11,T
,vP
,J-5
——
--o-
WA
6t.J
EP
——
—-
F3uL
t1L
AJ
-5
——
cop
if.J
HoP
q/
——
—-
——
‘i,j
i6IE
i’I
——
——
coP
GO
1UoN
-siZ
A-
coP
CU
)MM
ls’J
Si-
u3
——
-—
)BIE
N1’-41cof
f’II
SEL
AJI
CZ
OA
&Ic
oR
j5C
oe
IJL
f1çE
ccO
‘-
——
—o
fiL
tJT
——
——
•iiii
•iiii
•ii
ICT
OM
ASI
K8.4
30
Icon
I[
Cf
PC
UR
TI
S5
5—
—
—,R
A1lt
J1’
4M—
——
T’1
Mti
8.4
30JO
AL
-[S
HC
,oG
E!z
——
-Fo
”JS
——
-
___
--
-f/c
LfO
4P
j—
——
.i2A
P&i
bBI
I•
flC
/z.6
Cj<
5—
co
e—
z::
z•
LE
bE
/
PE
7-6
EE
Z8
-5V
AE
s’JE
i.—
M,1
fT
L—
——
_—
-—
.—
——
-——
——
PTO
W4i
KjE
1P
oL
LL
,1A
Jz_
_
NAM
E
CC
I
GM
O
LIV
ERC
M
GS
A
PE
ND
O
OR
TH
O
UR
O
UR
O
AA
A•A
GA
LIY
AS
McC
AS
KE
Y
RA
NC
K
GO
RD
ON
cui
y,ç
BA
UM
AN
N
RU
SH
LO
W
RO
MO
OR
E
NAM
E
O1C
)4p-
9 830a-
5
Ba-
S
Ba-
S
Ba-
S
Ba-
S
9a-6
CE
X
CO
P
CE
X
MA
CO
P
CO
P
CO
P
CE
X
CO
P
AA
I,” A A A I’ A
coP
A
“4
‘A
A A
IPIN
Ff
I(3L.L
EY
A
IP
Tuii,j
&7w
rL
CH
cU
/’1A
1M
JcS
L—
—/-
lc(R
t)M
——
CC
I/f
A<
7!t
J6’
7’-L
A—
p-r
d<
s—
—
JEu1
Ow
A1I
cEP
.L
—S
,’JS
AM
&.‘/
——
.
GIA
SEA
AJ/
LE
A!
‘I-a
—-
——
.
AIcc’
-5
&—
—
——
C0A
GçofA
--
TA
CN
A—
1’E
LA
M
UM
FoA
cT
Y-/2
i4
c4gp.
L6J’44ti
-—
coP
—-
——
.[6
A40
SE
CC
C-
Ot-
SS
ON
••
.—
RA
bIC
KE
tt—
gq
AC
op
t)erT
UL
A,
I—5
-—
—-
OL
f’Jf
?fo
f&&
4R
Ty
í—1,
ST
F?A
US
SF
tJ1-K
FJr
frJO
LF
E6L
4S
EF
K,T
CH
FJ’
JE
fl)C
KE
t1-5
—-
-“
LJG
!4E
J.—
KA
I-A
/<41
10—
M/I
F//
IFF
EY
-.___
MoO
Pe
IHC
PE
DT
e,”
liq,/
(330p.7
30C
0P
AP
MG
SP
YA
1/l
N3M
aê
—btJ
I4N
CL
—
IHC
BO
NO
-CR
OC
KE
R9a-
530
CO
PA
A—
——
—
——
-N
CH
OA
RD
830a-
5LO
AC
AR
DA
A—
——
——
——
-S
CA
RD
MA
MM
OS
ER
Ba-
SC
EX
AA
SC
AR
D/tL
tE
fB
a-5
AR
NO
LD
ApE
rFE
E.
VA
ATA
AuI
/’1a-5
3O
ML
OA
f\A
TR
AU
Th4N
--
-
—-
-C
FP
fl4L
-L\1
At’T
hErE
Rc
-—
/71/iL
——
—M
1tL
——
--
—
——
-
744sI/ç
11-3
-—
—
——
—
——
——
——
-
——
CS
R1J1
CK
8-5k
CS
Rru
c,<
c!.
-iz
—
CR
tiU
4-I2-
P-r
oru
cç
NAM
E
CT
VAR
LWHT
N
Cu LA
B
Mo
VER
CM
JIM
-
END
O
END
O
UR
N
UR
N
RT
HO
DE
SAI
AT
TE
NB
ER
GE
R
UcC
ASK
EY
RA
NC
K
Ffl
ZP
AT
RIC
K
ZIO
LA
BA
UM
AN
N
1.—
8.-
12
Ba-
5
Ba-
5
830.4
84
8.4
30
8.-
S
Ba-
s
Ba-
S
830.4
Ba-
5
8.-S
LAJA
LL-A
LC
EX
CE
)
Cop
cop
CEX
cop
co
p
co
p
CEX
CEX
Co
p
co
pR
OR
OE
-MO
OR
E—
/‘pr
C.J
EL
-CeY
—-
Cd
2L
__
..P
TE
cs
G-e
-f—
——
—F
Ok1O
5-
——
—
icA
SE
LOG
AN
co,4
&j_
__
_T
4g
c’j4
4L—
L-—
——
—4G
6o
g,
1’-
——
—
—----
‘/:
-
______
.M
e.’
P
BiP
c0P
HW
P1__coP
N-
1’
-5
Co
P)
——
——
——
——
——
—
.I
==
=—
——
——
—-—
—
dl
4,1
-f-
——
—-
-—
——
-
)
—--
--
—-
---
c—
--
1-
&or
HC
PE
D_
_E1p.7çO
___
-—
--
-ór
-o.
—-
-
NC
-B
ON
O-C
RO
CK
ER
Sa53
0C
OP
--
-—
——
—
—M
I—
—-
SC
AR
D81
14A
RN
OL
D—
——
—
—,4
’l4
——
-
AA
—----
M,o
SoH
—----
;—
—-—
—
—-
—-
—-
---
I—
--
NAM
E
E,I
M;C
IT5
AR
DIH
TN
)CU
)I8
MO
T
IMO
IF
IVER
CM
IHE
UM
EN
DO
‘NE
PH
-
PUR
N
UR
N-
RT
HO
RO
pu(o1I1
LE
Y
OFO
TO
KU
N
DE
SA)
__
__
_
CH
EL
MIN
SKI
MIL
LS
FIT
ZPA
TR
ICK
HO
LO
DN
ICK
BA
UM
AN
N
RO
E-M
OO
RE
T4P
LL
CO
P
CE
X
BA
RLA
GE
CO
P-
CE
X
CE
X
Co
p
cop
Cop
CE
X
CE
X
CO
P
CO
P
8.-S
8a-5
730.4
8.5
83
0.-
!
8.-
S
e.-
s
8.-
S
h-S
8.4
1P4 8.5
8.-
!
G4J
004
(1
/CA
6g-5
7i.
i5i
1F
cC
)1-5
——
5H
wA
i,<
yF
f—
OT
O—
5Sj
f’Y
JO7-
6f
Ft’
i)11
Ei-
.jK
EiJ
L—
—-
—R
.4Jb
-rj-l
,c—
-—
cc/1
2.
——
——
S/j
OL
TS
Kr-
i’—
——
PCA
RtJE
i‘J
LPt
!!
——
—S
iCE
j,1
jc4
——
—
fsJe
V&
C1F
j.s
jcc/r
q-
——
-________
—-
-
cc/r
3—
——
——
—
‘°
/.A
For:
-—
——
AR
ci1
S—
--
IPT
,cuM
1A,q
-—
—ir
llS
1fr
V141
Ptl-
(—
—-
Pcci
35
LJB
-
&—
——
CO
Pcc
/rs
——
—-
-—
—-
——
——
CC
I—
—-
A,c
1-c
——
-
——
—-
CC
I—
—-
-oefo
c-
tJB
EL
—-
-
7vc.
4—
----
—-
-
--
—-
-
141.
1—
—-
—-
-—
&.,
t’n
HC
PE
D-
--_____
330p
.73
co
p-—
M&
Yt’
K1
I17
—W
,LL
/41L
——
ICT
OM
ASI
K9.4
30
p—
k-
——
—Jt
-’S
TE
.—
——
scA
Ro
8.5
AR
NO
LD
--
NoJI
VA
t’EN
IJ:r
,zi
——
——
fl)S
TE
P..
——
—
M.
9.-
S3
OU
LO
AC
PH
A1
51r
CF
P—
——
fj-.
c’e’
i SI’
——
——
L-l
RbR
——
—
Pro
5c
t-E
EA
-i11
,—
Appendix EInterview Summary
Interview Template and Results Summary, El
Summary of Interviews:
Conducted by: Ranjana Roy, Dhruva Sreenivasan, and Kim RomeikeDate: March 8, 2000Sample Size: 4 CSR Staff Members Affected by the Scheduling Process:
2 Administrative Assistants, 2 Clinical SupervisorsFormat: Very casual question end answer session
The questions and summary of responses are provided below:
> How useful is ANSOS in the scheduling process?
Not very useful and often a hassle to reinput data
How is the working environment?
It is okay, the people are nice... can be noisy when things get busy though.
> What form of communication is utilized most within the Ambulatory Care inCSR?
Phone and email primarily
> How could your job be made easier?
Automating tasks, eliminating redundancy, strict enforcement of deadlines, in generala more efficient scheduling system
> Can you list specific inefficiencies, problem areas, andlor time constraints, thatyou that you feel could be reduced or eliminated, within the schedulingprocedure?
1. Staff did not turn in 4 week schedule form. The Administrative Assistant(s) had tocontact each staff member and obtain their availability, and manually enter the datainto the 4 week schedule form. She has spent nearly 5 hours on this process, wherestaff members could have easily filled out their availability in less than 5 to 10minutes.
2. The Orientation Grid is not up-to-date. The Administrative Assistant(s) has to spendtime figuring out which staff members are approved to work in which clinics(checking for orientation).
3. Updating the Standing Order via email. The Administrative Assistant(s) has to spendtime confirming all vacancies prior to scheduling for holes. This is a very time-consuming and laborious ctivity.
4. Making phone calls tends to be a tedious process since one does not always get a holdof the designated person the first time so numerous phone calls are often made on adaily basis.
> How long does it take to create a 4 week schedule? Break down each task intotimed elements if possible. This will also help us determine where excessive timeis being spent.
The total time spent on one 4 week schedule, is 7 work days with 2 people. A total of84 labor hours. The Administrative Assistant(s) handed out a set of “DevelopmentGuidelines” to be referenced.
> How would you feel about a computer program taking the place of the oversizedbinders currently used for scheduling within Ambulatory Care?
Very open to the idea, but would depend upon how easily the program would adaptinto the scheduling process as a whole.
Appendix FWorkload Analysis Data
• Workload Analysis by Task, Fl• Manual Labor Versus Automated Tasks While Creating 4-Week
Schedule, F2
The
Cre
atio
nof
the
4W
eek
Sch
edule
Rem
inde
rE
mai
l
E-m
ail
CSR
empl
oyee
sto
into
rmth
emof
Sch
edut
eD
istr
ibut
ion
E-m
ail
Clin
icM
anag
ers
and
Indi
vidu
alSt
all
rega
rdin
gtil
ted
PTO
requ
ests
Tra
nscr
ibe
Em
ploy
eeR
eque
stFo
rm
Prin
tC
opie
sof
Cop
book
xis
Whi
teO
utU
8Tem
ploy
ees
itpr
epri
nted
onsc
hedu
lesh
eets
Det
erm
ine
Rot
atio
nof
Em
ploy
ees
Alp
habe
tize
Perm
and
Tem
pFo
rm
Add
Hig
htig
hter
Lin
esto
Sch
edul
eS
heet
s
Tra
nscr
ibe
the
Clin
icR
eque
stFo
lder
Rev
iew
Cal
enda
r
Bla
nkS
ched
ule
Pre
p
Alp
habe
tical
lylis
tth
eav
aila
ble
floa
tC
SRem
toye
es
Tra
nscr
ibe
PTO
Grid
Dis
trib
ute
the
CSR
empl
oyee
sco
pies
ofca
lend
arfo
rms
Ass
ign
Ava
ilabl
eFl
oat
Sta
tt
Tra
nscr
ibe
Cli
nic
sR
eque
st”
Fold
er
Upd
ate
Sla
ndor
dxls
&C
opbo
okxi
s
Pho
toco
pyS
ched
ules
and
Sen
dto
App
ropr
iate
Clin
icM
anag
ers
1S
ched
uler
s
Wri
teC
linic
Ass
ignm
ents
onth
eIn
divi
dual
CSR
staf
fca
lend
arfo
rms
inpu
tFl
oat
Stat
tA
vaila
bilit
y
Rev
iew
“Sta
ndin
gO
rder
s”an
dT
rans
crib
e
Ent
erth
eC
SRS
ched
ule
into
AN
SOS
Sch
edul
erfr
omca
lend
arfo
rms
Tra
nscr
ibe
App
rove
dPT
O
Tra
nscr
ibe
Sch
edul
esR
eque
sts
Fold
er
020
040
060
080
010
0012
0014
0016
0018
0020
00T
ime
(min
ute
s)
Individual TasksTime To Complete In Percentage
Enter the CSR Schedule into ANSOS Scheduler from calendar 7 420 69%Update Standord.xls & Copbook.xls 3 180 30%E-mail Clinic Managers and Individual Staff regarding filled PT 0.083333 5 1%E-mail CSR employees to inform them of Schedule Distributioi 0.083333 5 1%Reminder Email 0.083333 5 1%Transcribe “Schedules Requests” Folder 30 1800 295%Transcribe Approved PTO 18 1080 177% 5040Review Standing Orders and Transcribe 7 420 69%Input Float Staff Availability 4 240 39%Write Clinic Assignments on the Individual CSR staff calendar tom, 4 240 39%Photocopy Schedules and Send to Appropriate Clinic Managers/ 3.333333 200 33%Transcribe Clinic’s Request” Folder 2.5 150 25%Assign Available Float Staff 2 120 20%Distribute the CSR employees’ copies of calendar forms 2 120 20%Transcribe PTO Grid 1.5 90 15%Alphabetically list the available float CSR emloyees 1 60 10%Blank Schedule Prep 0.75 45 7%Review Calendar 0.75 45 7%Transcnbe the “Clinic Request” Folder 0.75 45 7%Add Highlighter Lines to Schedule Sheets 0.5 30 5%Alphabetize Perm and Temp Form 0.5 30 5%Determine Rotation of Employees 0.5 30 5%White Out UBT employees if preprinted on schedule sheets 0.5 30 5%Print Copies of Copbook.xls 0.25 15 2%Transcribe Employee Request Form 0.166667 10 2%
Manual Labor 80 88.6%Automated Tasks 10.25 11.4%
Manual Labor vs. Automation
C Manual Laborstomated Tasks
88.6%
!.M
anual
Lab
or
Man
ual
Lab
orvs.
Auto
mat
ion
11
AO
lI
I.‘
-t•
/0
88.6
%
APPENDIX GVisual Basic Prototype Program
• Source Code. G 1• Printouts of Screens.. G31• Basic Visual Basic Information. G-40
frrnAvaiiabilityl — 1
Cprivate Sub crndFinishedClick()
irn RecpenedOrders,I To 100), clinic As String)im i, round, deie:emade As Integerim ternDanscs, tempdate, temptimebegin, temptimeend As String
im Period As Dare‘eriod = lbiScheduePeriod.Caption
* * * * * * * * * * * * SUNDAY * * * * * * * * * * * * * * * * * * * * *
f ootSunlAvail.Vaiue = True Then
atTimeOff. Reccrdse: Move First
f datTimeOff.Recordset(”ansos”) = lblAnsos.Caption —
And datTimeOff.Recordset(”requestdate”) = lblSunl.Caption ThendatTimeOff. Recordset . DeletedatTirneOff. Recordset . MoveNext
ise: datTimeOff.Recordset.MoveNextnd Ifoop Until datTimeOff.Recordset.EOF = Truend If
f optSurilUnavaii.Value = True Then
datTimeOff. Recordset .AddNewtTimeOff.Recordset (“ansos”) = lblAnsos.Caption
tTimeOff.Recordset (“requestdate”) = lblSunl.CaptiondatTimeOff.Recordset (“aliday”) = 1datTirneOff.Recordset(”reason”) = cmbSunlReason.TextdatTimeOff.Recordset .Update
datWorkOrder. Recordset . MoveFirsti=iDoIf ((datWorkOrder.Recordset(”date”) = lblSunl.Caption) And —
(datWorkOrder.Recordset(”filledby”) = lblAnsos.Caption)) ThendatWorkOrder. Recordset . EditdatWorkOrder.Recordset (“filledby”) =
datWorkOrder. Recordset . UpdateReopenedOrders (i) = datWorkOrder.Recordset (“ordernumber”)clinic = datWorkOrder.Recordset(”clinic”)MsgBox (***The Clinic “ & clinic & “ no longer has coverage for Order#
& RecpenedOrders(i) & “““ & vbCrLf & “Reassign coverage by “ —
& “acing to Welcome screen and selecting:” —
& vbCrLf & “‘Reassign Coverage For Existing Clinic Orders’”)i=i+1datWorkOrder . Recordset . MoveNext
Else: datWorkOrder. Recordset . MoveNextEnd IfLoop Until datwcrkOrder.Recordset.EOF = True
nd If
f ootSun1Partal.Vaiue = True Then- ameSunl.Visible = True
cTimeOff . Recordset . AddNewdatTirneOff.Recordset(”ansos”) = ibiAnsos.CaptiondatTimeOff.Recordset (“requestdate”) = lblSunl.CaptiondatTimeOff.Recordset(”allday”) 0datTirneOff.Recordset(”begintimeoff”) = txtSunlFrom.TextdatTixneOff.Recordset(”endtirneoff”) = txtSunltintil.TextdatTjrneQff.Recordset (“reason”) = crnbSunlReason.TextdatTimeOff . Recorset . Update
datWorkorder. Fsecordset . MoveFirst
rtAvailabilityl - 2
:emptime.Recordset.Edit
dattemptirne.Recordset (“From”) = txtSunlFrom.Text
dattemptime.Recordset(”Untjj”) = txtSunlUntil.Text
—
Do
If (datWorkOrder.Recordset(”date”) = iblSunl.Caption) And —
(datWorkOrder.Recordset(”filledby”) lblAnsos.Caption) And —
((dattemptime.Recordset(”From”) <= datWorkOrder.Recordset(”timestart”) And
dattemptime.Recordset(”Until”) >= datWorkOrder.Recordset(”timestart”)) Or —
(dattemptime.Recordset(”Frorn”) <= datWorkOrder.Recordset(”timeend”) And
dattemptirne.Recordset(”Until”) >= datworkOrder.Recordset(”timeend”H) Then
datWorkOrder . Recordset Edit
datWorkOrder.Recordset (“filledby”) =
datWorkOrder Recordset . Update
ReopenedOrders (i) datWorkOrder.Recordset (“ordernumber”)
clinic = datWorkOrder.Recordset(”clinic”)
MsgBox (“***The Clinic “ & clinic & “ no longer has coverage for Order# “ —
& ReopenedOrders(i) & vbCrLf & “Reassign coverage by “ —
& “going to Welcome screen and selecting:” —
& vbCrLf & “‘Reassign Coverage For Existing Clinic Orders’”)
i=i+ldatWorkOrder. Recordset . MoveNext
Else: datWorkOrder. Recordset . MoveNext
End IfLoop Until datWorkOrder.Recordset.EOF = True
rid* * *** * ****** * *****MONDAY******** ** *** ******
f optMonlAvail.Value = True Then
atTimeOff. Recordset .MoveFirst
f datTimeOff.Recordset(”ansos”) = lblAnsos.Caption —
And datTimeOff.Recordset (“requestdate”) = lblMonl .Caption Then
datTimeOff. Recordset . Delete
datTiineOff. Recordset .MoveNext
lse: datTimeOff. Recordset .MoveNext
nd Ifloop Until datTimeOff.Recordset.EOF True
rid If
:f optMonlUnavail.Value = True Then
datTimeOff. Recordset .AddNew
S datTimeOff.Recordset(”ansos”) = lblAnsos.Caption
datTimeOff.Recordset (“requestdate”) = lblMonl.Caption
datTimeOff.Recordset(”allday”) = 1
datTimeOff.Recordset (“reason”) = crnbMonlReason.Text
datTimeOff. Recordset . Update
datWorkOrder. Recordset . MoveFirst
i=lS
DoIf ((datworkOrder.Recordset(”date”) = lblMonl.Caption) And —
(datWorkOrder.Recorc5set (“filledby”) = lblAnsos.Caption)) Then
k datWorkQrder.Recordset.Edjt
datWorkOrder.Recordset(”filledby”) =
datWorkOrder. Recordset . Update
ReopenedOrders (i) = datWorkOrder. Recordset (“ordernumber”)
clinic = datWorkOrder.Recordset(”cliriic”)
MsgBox (“***The Clinic “ & clinic & “ no longer has coverage for Order “
S
& ReopenedOrders(i) & “‘“ & vbCrLf & “Reassign coverage by “ —
& “going to Welcome screen and selecting:” —
& vbCrLf & “‘Reassign Coverage For Existing Clinic Orders’”)
=lt1kflr(- Reccrdset .McveNext
vailabilityl — 3
: datWorkOrder. Recordset . MoveNext
If:ocp Until datWorkOrder.Recordset.EOF = True
c.DtonlPartial.Value = True Then
frameMonl.Visible = True
dacTimeOff. Recordset . AddNew
datTimeOff.Recordset(”ansos”) = lblAnsos.Caption
datTimeOff.Recordset(”requestdate”) lblMonl.Caption
datTirneOff.Recordset (“aliday’) = 0
datTimeOff.Recordset(”begintjmeoff”) = txtMonlFrom.Text
darTimeOff.Recordset(”endtimeoff”) = txtMonlUntil.Text
datTirneOff.Recordset (“reason”) = cmbMonlReason.Text
darTirneOff Recordset. Update
datWorkOrder. Recordset . Move First
dattemptime . Recordset . MoveFirst
dattemptime . Recordset . Edit
dattemptirne.Recordset (“From”) = txtMonlFrom.Text
dattemnptimne.Recordset (“Until”) = txtMonlUntil.Text
i=lDo
(datWorkOrder.Recordset(”date”) = lblMonl.Caption) And —
(datWorkOrder.Recordset (“filledby”) = lblAnsos.CaptiQn) And —
(dattemptime.Recordset(”From”) <= datWorkOrder.Recordset(”timestart”) Arid —
datternptime.Recordset (“Until”) >= datWorkOrder.Recordset (“timestart”)) Or
(dattemptime.Recordset (“From”) <= datWorkOrder.Recordset (“timeend”) Arid
dattemptime.Recordset (“Until”) >= datworkOrder.Recordset (“timeend”H) Then
datWorkOrder. Recordset . Edit
datWorkOrder.Recordset (“filledby”) =
datWorkOrder. Recordset . Update
ReopenedOrders (i) = datWorkOrder.Recordset (“ordernumber”)
clinic = datWorkOrder.Recordset (“clinic”)
MsgBox (‘***The Clinic “ & clinic & “ no longer has coverage for Order# “ —
& ReopenedOrders(i) & ““ & vbCrLf & “Reassign coverage by “ —
& “going to Welcome screen and selecting:” —
& vbCrLf & “‘Reassign Coverage For Existing Clinic Orders’”)
i=i+1datWorkOrder. Recordset . MoveNext
ise: datWorkOrder. Recordset . MoveNext
End Ifoop Until datWorkOrder.Reccrdset.EOF = True
rieremade = 0
tTimeOff . Recordset .MoveLast
ounn =
:und > 1 Then
a:TimeOff. Recordset .MoveLast
:TimeOff . Recordset . MovePrevious
= rouna1
cp Until x = 1
:niAvailabilityl — 4
mpa.isOS = datTimeOtf.Recordset (“ansos”)
enpoate = datTirneOff.Recordset(”requestdate”)
ernptirnebegin = datTirneOff.Recordset(”begintimeoft”)
emptimeend = datTimeOff.Recordset(”endtimeoff”)
etTimeOfi Recordset Move Previous
datTimeOff.Recordset(”ansos”) tempansos
And datTimeOff.Recordset(”requestdate”) tempdate Then
datTimeOff. Recordset . Delete
deleternade = 1
datTimeOff. Recordset . MovePrevious
round = round - 1
se: datTimeOff. Recordset . MovePrevjous
ndIfDOp Until datTimeOff.Recordset.BOF = True
ouno = round + 1
ooc Until datTimeOff Recordset BOF = True
atTimeOff.Recordset.MoveLast
xtSunlFrorn.Text = “12:00am”
xtSunlUntil.Text = “11:59pm”
;rnbSunlReason.Text = “reason?”
xtMonlFrom.Text = “12:00am”
xtMonlUntil.Text = “11:59pm”
;mbMonlReason.Text = “reason?”
:xtesiFrom.Text = “12:00am”
:xtTueslUntil.Text = “11:59pm”
mbTues1Reason.Text = “reason?”
xtWed1From.Text = “12:00am”
xtWedlUntil.Text = “11:59pm”
DrnbWedlReaSon.Text = “reason?”
xtThurslFrom.Text = “12:00am”
xtThurs1Until.Text = “11:59pm”
zmbThurslReason.Text “reason?”
lxtFrilFrom.Text = “12:00am”
}xtFrilUntil.Text “11:59pm”
DmbFrilReason.Text = “reason?”
:xtSatlFrom.Text = “12:00am”
ixtSatlUntii.Text = “11:59pm”
DmbSatiReason.Text = “reason?”
rmEmployeeMenu. Show
IrmAvaiiabilityl . Hide
nd Sub
?rivate Sub cmdShowWk2Click()
ub
?rivate Sub Form Load()
im done As Integer
datTimeOff.Databaseame = App.Path & “\CSRdatabase.mdb”
‘datTimeOff.Refresh
dattemptirne.DatabaseName = App.Path & “\CSRdatabase.mdb”
datternptirne.. Refresh
oa:WorkOrder.DatabaseName = App.Path & “\CSRdatabase.mdb”
‘WorkC)rder Refresh
raAvaiiability2 — 1
C
:vae Sub cmdWeeklClick()
mAvailabilityl . Show
:mAvailability2 Hide
i Sub
;jvae Sub cmdWeek3Click()
:rAvaiiabiiity3 Show
mAvaiiabi1ity2 . Hide
d Sub
rivate Sub Form Load()
2atTimeOff.DatabaseName = App.Path & “\CSRdatabase.rndb”
iatTimeQff Refresh
attemptime.DatabaseName = App.Path & “\CSRdatabase.mdb”
attemptime Refresh
atWorkOrder.DatabaseName = App.Path & “\CSRdatabase.mdb”
ubtWorkOrder Refresh
d Sub
rnAvailabilitY3 - 1
Explicit
ivare Sub cmdWeek2Click()
raAvailability2. Show
Availability3 . Hide
Sub
:ivate Sub cmdWeek4Click()
;raAvailability4 . Show
zrvailability3 . Hide
d Sub
rivate Sub Option7Click()
a Sub
rivate Sub Form Load()
atTimeOff.DatabaseName = App. Path & “\CSRdatabase.mdb”
tTirneOff . Refresh
attemptime.DatabaseName = App.Path & “\CSRdatabase.mdb’
attemptime.Refresh
atworkorder.DatabaseName = App.Path & “\CSRdatabase.mdb”
atworkOrder. Refresh
rid Sub
rJvai1abi1ity4 — 1
ivate Sub cmdWeek3Click()
Avai1abi1ity3. Show
aAvailability4 Hide
.d Sub
-ivate Sub ForrnLoad()
tTizneOff.DatabaseName = App.Path & “\CSRdatabase.mdb”
tTimeOff. Refresh
ttemptime.DatabaseName = App.Path & “\CSRdatabase.mdb”
tternptime.Refresh
tWorkOrder.DatabaseName = App.Path & “\CSRdatabase.mdb”
tWorkOrder.Refresh
:d Sub
nCandidates - 1
v Sub cmdNextCljck()
seiected, ansos, SpacePos As String
Selectedlndex As Integer
lblNoCandidates.Caption = “0” Then
Welcome. ShownCandidates . Hide
If lstPerm.Listlndex <> —1 Then
selected = lstPerm.Text
Elself lstTemp.Listlndex <> —1 Then
selected = lstTemp.Text
ElseMsgBox (“You have not selected a name!”)
End If
acePos = InStr(1, selected, “
.sos = Trim$(Left$(selected, SpacePos — 1))
-rnEnterClinicRequest ! datOrders. Recordset . MoveLast
nnEnterClinicRequest ! datOrders . Recordset . Edit
rnEnterClinicRequest ! datOrders . Recordset (“filledby”) = ansos
rmEnterC1inicRequest !datOrders.Recordset (“filledby”) —
= ansos
ome.ShowmCandidates . Hide
ld Ifid Sub
nCliniclnfo — 1
Explicit
ivate Sub cmdBackClick()
count, k As Integer
ClinicArrayCO To 500) As String
mCliniclnfo Hide
mupdateClinic datClinic. Recordset MoveFirst
-mupdateClinic! crnbClinics . Clear
:mtipdateClinic! cnibClinics .Addltem
:mUpdateClinic!cmbClinics.Text = “(select clinic from list)”
unt 0
CiinicArray(count) = frmtipdateCiinic!datClinic.Recordset (“name”)
frm[JpdateClinic! datClinic . Recordset MoveNext
count = count + 1
:op While frmUpdateClinic!datClinic.Recordset.EOF False
rrnUpdateClinic! cmbClinics .Addltem
=0
frmUpdateClinic cmbClinics .Addltem ClinicArray (k)
k= k+ 1Dop While k < count
rrnUpdateClinic. Show
nd Sub
rivate Sub cmdFinishClick()
rmC1 iniclnfo.Hide
cm -iicMenu! lblname.Caption = lblClinicName.Caption
rmCnicMenu! iblAnsos Caption = txtAnsos Text
rmClinicMenu. Show
rid Sub
rivate Sub Form Load()
atClinic.DatabaseName = App.Path & “\CSRdatabase.mdb”
atClinic. Refreshrid Sub
rnClinicMenu - 1
Explicit
-ivate Sub cmdNextClick()
rn ClinicName, Query As String
f optRequest.ValUe = True Then
rnClinicMenu. HidernEnterClinicRequest iblAnsos . Caption = iblArisos Caption
ZinicName = lblname.Caption
rnEnterClinicRequest datOrders . Recordset . AddNew
rrnEnterClinicRequest !datOrders.Recordset (“clinic”) = ClinicName
rmEnterClinicRequest datOrders . Recordset . Update
rrnEnterClinicRequest datOrders . Recordset . MoveLast
rrnEnterClinicRequest . Show
id If
idSub
rivate Sub Form Load()
atOrders.DatabaseName = App.Path & “\CSRdatabase.mdb”
atorders . RefreshndSub
-ncurrentSchedule — 1
zi Explicit
:vate Sub CalendarlClick()
i As Integer
:a:eSelected.Caption Calendarl.Value
= grdSample.Rows
ciSarnple.Removeltem (i)
=i -1p Until I = 2
liGridSub
:ivate Sub SetupRecordset()
EmcloyeeInfo . Refresh
tTimeOff. Refresh
atWorkOrders . Refresh
d Sub
rivate Sub crndBackClick()
rinWelcome. ShowrmCurrentSchedule. Hide
rid Sub
rivate Sub Form Load()
atEmoloyeeInfo.DatabaseName = App.Path & “\CSRdatabase.mdb”
atEmDloyeeInfo. Refresh
.atTimeOff.DatabaseName App.Path & “\CSRdatabase.mdb”
iatTimeOff . Refresh.atWorkOrders.DatabaseName = App.Path & “\CSRdatabase.mdb”
iatWorkOrders . Refresh
bloateSelected.Caption = Date
etuRecordsetetupGrid-
— -- 1
nd Sub
rivae Sub SetupGrid()
‘im WideString As String
;irn C As Integer, GridWidth As Integer
\‘ideString = String$(4,
rrdSampie.ColWidth(O) =
ideString = Strings (4,
rdSarnple.ColWidth(1) =
.‘ideString = StringS (3,
;rdmple.ColWidth2)
r nple.ColWidth(3) =
rcimple.ColWidth(4) =
rdSample.ColWidth(5)
rrdSample.ColWidth(6)
rdSample . ColWidth (7) =
rdSample.ColWidth(8) =
roSample.ColWidth(9) =
rrdSample. ColWidth (10) =
rdSample.ColWidth(1l) =
:rcSlrnple . ColWidth (12) =
c-1w-t-h(13) =
“X”TextWidth (WideString)
TextWidth (WideSt ring)
“X”TextWidth (WideSt ring)
TextWidth (WideString)
TextWidth (Widest ring)
TextWidth (WideString)
TextWidth (Widest ring)
TextWidth (WideString)
TextWidth (WideStririg)
TextWidth (WideSt ring)
TextWidth (WideString)
TextWidth (WideString)
TextWidth (WideString)
TextWidth (WideString)
mCurrentSchedule - 2
:iS le.ColWidth(14) = Textwidth(WideString)
r C = 0 To 14GridWidth = GridWidth + grdSample.ColWidth(C)
:t C
Sample. TextMatrix (0,
dsample. TextMatrix (0,
3Sample. TextMatrix (0,
dSample. TextMatrix(0,
dSample. TextMatrix (0,
dSarnpie. TextMatrix (0,
:dSample TextMatrix (0,
dSarnple. TextMatrix(0,
:dSarnple TextMatrix(0,
:dSarnple. TextMatrix(D,
dSample. TextMatrix CD,
dSample. TextMatrix(0,
dSample. TextMatrix (0,
dSample TextMatrix(O,
dSainple. TextMatrix (0,
id Sub
ivate Sub FillGrid()
= “Last Name”= “First Name”= “ANSOS”= “Clinicl”= “From: “
= “Until:”= “Reason:”= “Cliriic2”= “From:”= “Until:”
= “Reason:”= “Clinic3”= “From:”= “Until:”= “Reason:”
Dnst NUMEMPLOYEES = 100
..rn NewRow, LastName, FirstName, ansos As String
im count, i, j, a, g, round, 0, p, z As Integer
irn DateSelected As Date
im eduleArray(0 To NUMEMPLOYEES, 0 To 14), q, w, e, r, t, y As String
ateSelected = lblDateSelected.Caption
atEmployeelnfo. Recordset . MoveFirst
=0
astName = datEmployeelnfo.Recordset(”lastname”)
irstName = datEmployeelnfo.Recordset (“firstname”)
.nsos = datEmployeelnfo.Recordset (“ansos”)
cheduleArray(i, 0) = LastName
cheduleArray(i, 1) = FirstName
cheduleArray(i, 2) = ansos
:atEmployeelnfo. Recordset MoveNext
=i+1
oop Until datEmployeelnfo.Recordset . EOF True
:f ScheduleArray(z, 0) > ScheduleArray(z + 1, 0) Then
z=z + 1ise
q = ScheduleArray(z, 0)
w = ScheduleArray(z + 1,
= ScheduleArray(z, 1)
= ScheduleArray(z + 1,
c = ScheduleArray(z, 2)
y = ScheduleArray(z + 1,
ScheduleArray(z, 0) = w
ScheduieArray(z + 1, 0) = q
ScheduleArray(z, 1) = r
ScheduleArray(z + 1, 1) = €
ScheduleArray(z, 2) = y
ScheduleArray(z + 1, 2) = t
0)1)2)3)4)5)6)7)8)9)10)11)12)13)14)
0)
1)
2)
-mcurrentSchedule - 3
:OD nIle z < i + 3
p=pti
:00 While p < i + 3frflAAAAAAAA A AAAAAAA A A
oTimeOff . Recordset MoveFirst
f (datTimeOff.Recordset(”requestdate”) = DateSelected And —
datTimeOff.Recordset(”ansos”) = ScheduleArray(a, 2)) Then
If ScheduleArray(a, 3) = ““ Then
ScheduleArrav(a, 3) =
If datTimeOff.Recordset(”aUday”) = 1 Then
ScheduleArray(a, 4) = “ALL DAY”
ScheduleArray(a, 6) = datTirneOff.Recordset(”reason”)
a=a+ 1Else: ScheduleArray(a, 4) = datTimeOff.Recordset(”begintimeoff”)
ScheduleArray(a, 5) = datTimeOff.Recordset(”endtimeoff”)
ScheduleArray(a, 6) = datTimeOff.Recordset(”reason”)
a=adatTimeOff. Recordset . MoveNext
End If
Elself ScheduleArray(a, 7) = ‘“ Then
ScheduleArray(a, 7) =
ScheduleArray(a, 8) = datTimeoff.Recordset(”begintimeoff”)
ScheduleArray(a, 9) = datTimeOff.Recordset(”endtirneoff”)
ScheduleArray(a, 10) = datTimeOff.Reccrdset(”reason”)
a=adatTirneOff. Recordset . MoveNext
Else: ScheduleArray(a, 11) = vv**oFF**I
ScheduleArray(a, 12) = datTimeOff.Recordset(”begintimeoff”)
ScheduleArray(a, 13) = datTimeOff.Recordset(”endtirneoff”)
ScheduleArray(a, 14) = datTimeOff.Recordset(”reason”)
a=a+ 1
End If
:15e datTirneOff. Recordset . MoveNext
d Ifoop While datTimeOff.Recordset.EOF = False
ktWorkOrders . Recordset . MoveFirst
f (datWorkOrders.Recordset(”date”) = DateSelected And —
datWorkOrders .Recordset (“filledby”) = ScheduleArray(a, 2)) Then
If ScheduleArray(a, 3) ““ Then
ScheduleArray(a, 3) = datWorkOrders.Recordset(”clinic”)
ScheduleArray(a, 4) = datWorkOrders.Recordset(”timestart”)
ScheduleArray(a, 5) = datWorkOrders.Recordset(”timeend’T)
ScheduleArray(a, 6) = datWorkOrders.Recordset(”reason”)
datWorkOrders . Recordset . MoveNext
Elself ScheduleArray(a, 7) = ““ Then
ScheduleArray(a, 7) = datWorkOrders.Recordset(”clinic”)
j ( ScheduleArray(a, 8) = datWorkOrders.Recordset(”tirnestart”)
ScheduleArray(a, 9) = datWorkOrders.Recordset(”timeend”)
ScheduleArray(a, 10) = datWorkOrders.Recordset(”reason”)
datWorkOrders . Recordset . MoveNext
Else: ScheduleArray(a, 11) = datWorkOrders.Recordset(”clinic”)
ScheduleArray(a, 12) = datWorkOrders.Recordset(’timestart”)
ScheduieArray(a, 13) = datWorkOrders.Recordset (“timeend”)
ScheduleArray(a, 14) = datWorkOrders.Recordset(”reason”)
W-rIflrders . Recordset . XoveLast
CurrentSchedule - 4
End Ifse: datworkOrders. Recordset . MoveNext
p While datworkOrders.Recordset.EOF False
=a+lop While a < i
NewRow = ScheduleArray(O, 0) & vbTab & ScheduleArray(O, 1) &
vbTab & ScheduleArray(O, 2) & vbTab & —
ScheduleArray(O, 3) & vbTab & —
ScheduleArray(O, 4) & vbTab & ScheduleArray(O, 5) & vbTab & —
ScheduleArray(O, 6) & vbTab & ScheduleAxray(O, 7) & —
vbTab & ScheduleArray(O, 8) & vbTab & —
ScheduleArray(O, 9) & vbTab & —
ScheduleArray(O, 10) & vbTab & ScheduleArray(O, 11) & vbTab &
ScheduleArray(O, 12) & vbTab & ScheduleArray(O, 13) & —
vbTab & ScheduleArray(O, 14)
grdSample .Addltem NewRow
0=0-1
oop Until C = 0 - 1
nd Sub
mEmployeelflfO - 1
Czvate Sub cmdBacClick()
count, k As IntegerEmpioyeeArray(0 To 500) As String
nEmpioyeelnfo. Hide
-mupdateEmployee! datEmployee . Recordset MoveFirstpd5teEmployee! cmbNames Clear
mUpdateEmployee cmbNames . Addltem
rnUDdateEmpioyee!crnbNames.Text = “select a name from list)”
unt=0 V
ErnpioyeeArray(count) = frmupdateEmployee! datEmployee.Recordset (“lastname”)
& “, “ & frmupdateEmployee!datEmployee.Recordset(”firstname”)
frmupdateErnployee datEmployee. Recordset MoveNext
count = count + 1op While frmtipdateErnployee!datEmployee.Recordset.EOF = False
mUpdateEmployee! cmbNames.Addltem
=0
frmtjpdateEmployee! crnbNames.Addltem EmployeeArray(k)
k=k+ 1op While k < count
:mtipdateEmployee. Show
ivate Sub crndFinishClick()
rmEmployeelnfo. HidemEmployeeMenu ibiname. Caption = lblLastName . Caption &
“ & lblFirstName.Caption
rmEmployeeMenu! lblAnsos.Captiori = txtAnsos .Text
mEmployeeMenu Calendarl . Value = Date
mEmDloyeeMenu. Show
id Sub
ivate Sub Form Load()atEmcioyee.DatabaseName = App.Path & “\CSRdatabase.mdb”
tEmDloyee . Refreshd Sub
rmEmployee4eflU - 1
ot Explicit
rivate Sub cmdCancelClick()
rrnEmployeelnfo. ShowrrnEmployeeMeflu. Hide
rid Sub
rivate Sub cmdNextClick()
im Period, InitialDate, CurrentDate, TargetDate As Date
im i, done As Integer
argetDate = Calendarl.Value
nitialDate = Calendar2.Value
optCurrent.Value = True Then
=0
• =1+1oop Until (TargetDate >= (InitialDate + (7 * U)) And
(TargetDate < (InitialDate + (7 * (i + 1))))
?er 1 = InitialDate + (7 *
j)
rmAvailabilityl lblSchedulePeriod.Caption = Period
rmAvailabilityl!lblSunl.Caption = Period + C
rmAvailability1!lblMon1.Caption = Period + 1
irrnAvailabilityl!lblTuesl.Caption = Period + 2
rmAvailabilityl!lblWedl.Caption = Period + 3
rrnAvailabilityl!lblThursl.Caption = Period + 4
:rmAvailabilityl!lblFril.Caption = Period -I- 5
rrnAvailability1!lblSat1.Caption = Period + 6
rmAvailability1 lblAnsos . Caption iblArisos Caption
rrnAvailability1 lblFullName. Caption = ibiname. Caption
‘Week 1
TrmAvailabilityl datTirneOff. Recordset .MoveFirst
lone =
jof (frmAvailabilityLdatTimeOff.Recordset(”ansos”) = lblAnsos.Caption —
/nd frmAvailabilityl!datTimeoff.Recordset(”requestdate”) = Period) Then
frrvailabilityl!datTimeOff.Recordset(”allday”) = 1 Then
frmvailabiiity1!optSunlUnavail.Value = True
frmAvailabilityl !cmbSuniReason.Text = frmAvailabilityl!datTirneoff.Recordset(”reason”)
done=1Else: frmAvailabilityl!optSunlPartial.Value = True
frmAvailabilityl!txtSuniFrorn.Text = frmAvailabilityl!datTimeOff.Recordset(”begintimeoff
frmAvailabilityl!txtSuriiUntil.Text = frmAvailabilityl!datTirneOff.Recordset(”endtimeoff”
frrnAvailabilitvl!cmbSurJReason.Text = frrnAvailabilitylldatTirneOff.Recordset(”reason”)
rrnEmployeeMeflU — 2
CEnd If
_se:rmA-;aliaDlllty! !aatTimeOff. Recordset MoveNext
op Until (frvailabilityl!datTimeOff.Recordset.EOF = True) Or (done = 1)
done = 0 ThenrvaiIabilitvl optSunlAvail .Value True
no* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
rAvailabilityl datTimeOff Recordset .MoveFirst
Dne = 0
(frmAvailabilityl!datTimeoff.Recordset(”ansos”) = lblAnsos.Caption —
And frmAvailabili:yl!datTimeOff.Recordset(”requestdate”) = Period + 1) Then
If frxnAvailabilityl!datTiineOff.Recordset(”allday”) = 1 Then
frrnAvailabilityl I optMonlUnavail Value = True
frmAvailabilityl!cmbMonlReason.Text = frrnAvailabilityl!datTimeOff.Recordset(”reason”)
done = 1Eise: frmAvailabilityl!optMoniPartial.Value = True
frmAvailabilityl!txtMonlFrom.Text = frmAvailabilityl!datTimeOff.Recordset(”begintimeoff
frinAvailabilityl!txtMonlUntil.Text = frmAvailabilityl!datTimeOff.Recordset(”endtimeoff”
frmAvailabilityl!cmbMonlReason.Text = frmAvailabilityl!datTimeOff.Recordset(”reason”)
done = 1End If
iS frrnAvailabilityl I datTimeOff. Recordset . MoveNext
ndop Until (frmAvaiiabilityl!datTimeOff.Recordset.EOF = True) Or (done = 1)
f done = 0 ThenrmAvailabilityl I optMonlAvail . Value = True
nd If* ****** * ********* ****************
rmAvailabilityl datTirneOff. Recordset . MoveFirst —
one = 00
f (frrnAvailabilityl!datTimeOff.Recordset(”ansos”) = iblAnsos.Caption —
And frmAvailabilityl!datTimeOff.Recordset(”requestdate”) = Period + 2) Then
If frvailability1!datTimeOff.Recordset(”allday”) = 1 Then
frvailabilityl!optTueslUnavail.Value = True
frmAvailabilityl!cmbTueslReason.Text = frmAvailabilityl!datTimeOff.Recordset(”reason”)
done = 1Else: frn’Availabiiityl optTueslPartial .Value = True
frmAvailabilityl!txtTueslFrom.Text = frmAvailabilityl!datTimeOff.Recordset(”begintimeof
frmAvailabilityl!txtTueslUntil.Text = frmAvailabilityl!datTimeOff.Recordset(”endtirneoff
frmAvailabilityl!cmbTueslReason.Text = frrnAvailabilityl!datTimeOff.Recordset(”reason”)
done = 1End If
1)se: frrnAvailabilityl ! datTimeOff. Recordset 4oveNext
Ifoop Until (frrnAvailabilityl!datTimeOff.Recordset.EOF = True) Or (done = 1)
done = 0 Thenrrr iiabilityl!optTueslAvaii.Value = True
:nd f
mAvaiiability1 IdatTimeOff.Recordset.Movepirst
:Dfle = 0
f (frmAvaiiabilityl!datTimeOff.Recordset(”ansos’) = lblAnsos.Caption —
And frrriAvailabilityl!datTimeOff.Recordset(”requestdate”) = Period + 3) Then
frmAvailabilitvi!datTirneOff.Recordset(”allday”) = 1 Then
frrnAvailabilitvl I optWedlUnavail .Value = True
rnEmployeeMenu - 3
( vailabilitv1!cNedlReason.Text = frvailability1!datTimeOff.Recordset(”reason”)
oone =
Else: frrvaiiabilityl!optWedlPartial.Value = True
ffrrvaiiabiiityl!txtWedlFrom.Text = frmAvailabilityl !datTirneOff.Recordset(”begintimeoff
ffraAvailabilityl!txtWedluntil.Text = frmAvailabilityl!datTimeOff.Recordset(”endtimeoff”
frrnAvailabilitylcinbWed1Reason.Text = frmAvailabilityl!datTimeOff.Recordset(”reasori’t)
done = I
End If..se: frrnAvailabilityl!datTirneOff.RecordsetjoveNext
d IfDop Until (frrrvailability1!datTimeOff.Recordset.EOF = True) Or (done 1)
done = C Then
rinAvailabilityl optWedlAvail Value = True
-d If
rrnAvailabilityl !datTimeOff.Recordset .MoveFirst
Dne = 0D
f (frmAvailabilityl!datTimeOff.Recordset(”ansos”) = lblAnsos.Caption —
And frrn.Availabilityl!datTimeOff.Recordset(”requestdate”) = Period + 4) Then
If frinAvailabilitvl!datTimeOff.Recordset(”allday”) = 1 Then
frrnAvailabilityl I optThurslUnavail Value = True
frrnAvailabilityl !cmbThurslReason.Text = frrnAvailabilityl!datTimeOff.Recordset(”reason”)
done = 1Else: frrnAvailabilityl optThurslPartial.Value = True
frrnAvailabiiityl!txtThurslFrom.Text = frmAvailabilityl!datTirneOff.Recordset(”begintimeo
frmAvailabilityl!txtThurslUntil.Text = frmAvailabilityl!datTimeOff.Recordset(endtimeof
‘I )frrnAvailabilityl!crnbThurslReason.Text = frmAvailabilityl!datTimeOff.Recordset(”reason”)
done = 1
End Ifilse: frmvailabilityl datTimeOff. Recordset . oveNext
nd Ifoop Until (frmAvailabilityl!datTimeOff.Recordset.EOF = True) Or (done 1)
f done = 0 Then
rmAvailability1loptThurslAvail.Value = True
nd If
* * * * * ** * * * * FRI DAY# 1 * * * * * * * * * * * * * * * * * * * ** * * * * *
rrnAvaiiabilityi datTimeOff. Recordset .MoveFirst
one = 0
Jf (frmAvailabilityl!datTimeOff.Recordset (“ansost’) = lblAnsos.Caption —
And frrnAvaiiabilityl!datTimeOff.Recordset.(t’requestdate”) = Period + 5) Then
If frrnAvailabiiityl!datTimeOff.Recordset(’tallday”) = 1 Then
frmAvailabilityl!optFrilUnavail.Value= True
frmAvailabilityl!crnbFrilReason.Text = frrnAvailabilityl!datTimeOff.Recordset(”reason”)
done = 1Else: frmAvailabilityl!optFrilPartial.Value = True
ffrmAvailabilitylltxtFrilFrom.Text = frrnAvailabilityl!datTinieOff.Recordset(”begintixneoff
frrnAvailabilityl!txtFrilUntil.Text = frmAvailabilitylldatTimeOff.Recordset(”endtimeoff”
I C frvailability1!cmbFriiReason.Text = frmAvailabilityl!datTimeOff.Recordset(”reason”)
done = 1;_• ,-
jise: frmAvailabilityl!datTimeOff.Recordset.MoveNext
End foop Until (frrnAvaiiabilityl!datTimeoff.Recordset.EOF = True) Or (done = 1)
f done = 0 Then
YrrnAvailabilityllcptFrilAvail.value = True
End If* * * * * * * * * * ATURDAY# 1 * * * * * * * * * * * * * * * * * * * * * * * * *
rmEmployeeMeflU - 4
ilabilityl datTimeOff Recordset . oveFirst
- 0
ffrnAvailabilityl datTimeOff. Recordset (“ansos”) = iblAnsos . Caption —
And frmAvailabilityl!datTimeOff.Recordset(”requestdate”) = Period + 6) Then
:f frrnAvailability1datTimeOff.Recordset(”allday”) = 1 Then
frmAvailabilityl optSatlUnavail . Value = True
frmAvailabilityl!crnbSatlReasori.Text = frinAvailabilityl !datTimeOff.Recordset(”reason”)
done = 1Else: frmAvailabilityl!optSatlPartial.Value = True
frrnAvailabilityl!txtSatlFrom.Text = frmAvailabilityl!datTimeOff.Recordset(”begintimeoff
frmAvailabilityl!txtSatlUntil.Text = frinAvailabilityl!datTirneOff.Recordset(”endtimeoff”
frrnAvailabilityl!cmbSatlReason.Text = frmAvailabilityl!datTimeOff.Recordset(”reason”)
done = 1End If
Ise: frmAvailabilityl datTimeOff. Recordset . MoveNext
rid Ifop Until (frmAvailabilityl!datTirneOff.Recordset.EOF = True) Or (done = 1)
done = 0 ThenrrnAvailabilityl ! optSatlAvail . Value = True
rid If
rrnAvailabilityl. ShowrmErnDloyeeMenu. Hide
0.nd Ifnd Sub
mEnterClifliCReqUeSt — 1
Explicit
ivate Sub cmdNextClick()
status, clinic, reauestdate, tirnestart, tirneend, reason, ansos, eligible As String
_rn potential, failure As Integer
atOrders Recordset MoveLast
inic = datOrders Recordset (“clinic”)
tatus = datOrders.Recordset (“i-n”)
2questdate = datOrders . Recordset (“date”)
imestart = datOrders Recordset (“timestart”)
meend datOrders.Recordset(”timeend”)
3ason = datOrders Recordset (“reason”)
ilure = 1
reason = “Orient” Then
atEmployeelnfo. Recordset . MoveFirst
risos = datEmployeelnfo.Recordset (“ansos”)
datOrient. Recordset . MoveFirst
DoIf Not (datOrient.Recordset(”clinic”) = clinic And
rtOrient.Recordset(”ansos”) = ansos) Then
Orient. Recordset . MoveNext
utential = 1Else:potential = 0End IfLoop Until datOrient.Recordset.EOF True Or potential 0
f potential = 1 Then
datOrders . Recordset . MoveFirst
Do
If ((datOrders.Recordset(”date”) = requestdate) And —
(datOrders.Recordset(”filledby”) = ansos) And —
((timestart <= datOrders.Recordset(”timestart”) And —
timeerid >= datOrders.Recordset(”tirnestart”)) Or —
(timestart <= datOrders.Recordset(”timeend”) And —
timeend >= datOrders.Recordset(”timeend”H)) Then
potential = 0
Else: potential = 1datOrders . Recordset .MoveNext
End IfLoop Until (datOrders.Recordset.EOF = True) Or potential = 0
rid If
.i potential = 1 ThendatTimeOff. Recordset . MoveFirst
- r)
f ((datTimeOff.Recordset(”requestdate”) = requestdate) And —
(datTimeOff.Recordset(”ansos”) = ansos) And —
((timestart <= datTimeOff.Recordset (“begintimeoff”) And
timeend >= datTimeOff.Recordset(”begintimeoff”)) Or
(timestart <= datTimeOff.Recordset(”endtimeoff”) And
timeend >= datTimeQff.Recordset(”endtimeoff”)) Or —
(datTimeOff.Recordset(”allday”) = 1H) Then
Potential = 0
-.EnterClinicRequest - 2
E : potential = 1
ntTirneOff . Recordset MoveNext
End IfLoop Until (datTimeOff.Recordset.EOF = True) Or potential = 0
If
potential = 1 And datEmployeelnfo.Recordset(”rn”) = status> Then
failure = 0If datEmployeelnfo.Recordset(”perrn”) = “Regular” Then
frmCandidates!lstPerm.Addltem datEmployeelnfo.Recordset(”ansos”)
& “ “ & datEmployeelnfo.Recordset(”lastname”) & “, “ & —
datEmployeelnfo.Recordset (“firstname”)
ElsefrmCandidates lstTemp.Addltem datEmployeelnfo.Recordset (“ansos”)
& “ & datEmployeelnfo.Recordset(”lastname”) & “, “ &
datEmployeelnfo.Recordset (“firstname”)
End If
d If
.tEmployeelnfo . Recordset . MoveNext
op Until datEmployeelnfo.Recordset.EOF = True
self reason = “Coverage” Then
tEr”mloyee Info. Recordset Move First
isos = datEmployeelnfo.Recordset(”ansos”)
datOrient Recordset . MoveFirst
DoIf (datOrient.Recordset(”clinic”) = clinic And —
datOrient.Recordset (“ansos”) = ansos) Then
potential = 1Else:datOrient .Recordset .MoveNext
potential = 0End IfLoop Until datOrient.Recordset.EOF = True Or potential 1
potential = 1 Then
datOrders .Recordset .MoveFirst
Do
If ((datOrders.Recordset(”date”) = requestdate) And —
(datOrders.Recordset(”filledby”) = ansos) And —
((timestart <= datOrders.Recordset(”timestart”) And
timeend >= datOrders.Recordset(”timestart”)) Or —
(timestart <= datOrders.Recordset(”timeend”) And —
timeend >= datOrders.Recordset (“timeend”)H) Then
potential = 0
Else: potential = 1
tOrders . Recordset MoveNext
id IfLoop Until (datOrders.Recordset.EOF = True) Or potential = 0
nd If
potential = 1 Then
datTimeOff. Recordset . MoveFirst
Do
) If ((datTimeOff.Recordset(”requestdate”) = requestdate) And —
datTimeOff.Recordset(”ansos”) = ansos) And
((timestart <= datTirneOff.Recordset(”begintirneoff”) And
rrnScheduleMeflu - 1
1 Explicit
Erivate Sub cmdCancelClick()rrnScheduleMenu. Hidernwelcome Showrd Sub
rivate Sub cmdNextClick()
:f optRegularRN.Value = True ThenrmCurrentSchedule Calendarl . Value = DatermCurrentSchedule. ShowrmScheduleMenu. Hide
nd Sub
rnUpdateClinic - 1
Explicit
rivate Sub cmbClinicsGotFocus()
::NewAnsos.Text =
•::NewCliriic.Text =
:tCiinicName.Text =
::Ar.sos.Text
d Sub
rivate Sub cmdCancelClick()
rmUpdateClinic Hide
rmWelcome Show
:<:tAnsos.Text =
xtNewAnsos.Text =
xtClinicNarne.Text =
xtNewClinic.Text = “I’
nd Sub
rivate Sub cmdNextClick()
im ClinicName, AnsosCode, NewClinicName, NewAnsosCode,
uery As String
n Error GoTo Warning
(txtNewAnsos.Text = ““ And Not txtNewClinic.Text = “) Or —
(txtNewClinic.Text = “ And Not txtNewAnsos.Text = “) Then
MsgBox (“You must enter the new clinic’s name AND ansos code!!”)
Exit Subnd If
f tNewAnsos.Text = “ And txtNewClinic.Text = “ And —
tAnsos.Text = “ And txtClinicName.Text = “ And
(crnbClinics.Text = “ Or cmbClinics.Text = “(select clinic from list)”)) Then
MsgBox (“You have not entered any information!!”)
Exit Sub:nd If
f Not txtClinicName.Text = “ Then
ClinicName = txtClinicName.Text
Query = “name Like “ & “‘“ & ClinicName &
datClinic . Refresh
datClinic. Recordset. FindFirst Query
frrnCliniclnfo!datClinic.Recordset. FindFirst Query
If Not frmCliniclnfo!datClinic.Recordset(”name”) = ClinicName Then
Msgox (“This clinic does not currently exist.” & vbCrLf &
“Please check spelling and letter cases!!”)
Exit SubEnd If
nd If
If Not txtNewClinic.Text = “ And Not txtNewAnsos = “ Then
NewClinicName = txtNewClinic.Text
NewAnsosCode = txtNewAnsos.Text
Query = “name Like “ & “‘“ & NewClinicName &
datClinic.Refresh
datClinic. Recordset FindFirst Query
frmCliniclnfo! datClinic Recordset. FindFirst Query
I 1Tf Not frmCliniclnfo!datClinic.Recordset(”name”) NewClinicName Then
( frmCliniclnfo! datClinic.Recordset .AddNew
/ frmCliniclnfo!datClinjc.Recorcset(”narrie”) = NewClinlcName
frmCliniclnfo!datCljnic.Recordset (“ansos”) = NewAnsosCode
frmCliniclnfo ! datClinic. Recordset . Update
ClinicName = txtClinicName.Text
Query = “name Like “ & “‘“ & NewClinicName &
datClinic. RefreshdatClinic. Recordset. FindFirst Query
frmCljniclnfo!datClinjc.Recordset.Findpirst Query
Else: MsaBox (“This clinic already exists.” & vbCrLf & —
“Please check spelling and letter cases! I”)
rnupdateCliniC - 2
t SubErd If
Nnt txtAnsos.Text ““ Then
AnsosCode = txtAnsos.Text
Query = “ansos LIke “ & “‘“ & AnsosCode &
datCilnic. Refresh
datClinic. Recordset. FindFirst Query
frrnCliniclnfo ! datClinic . Recordset. FindFirst Query
If Not frmCliniclnfo!datClinic.Recordset(”ansos”) = AnsosCode Then
MsgBox (“This clinic does not currently exist.” & vbCrLf &
“Please check spelling and letter cases!!”)
Exit SubEnd If
d If
Not cmbClinics.Text = “(select clinic from list)” And Not cmbClinics.Text = “ Then
ClinicName = cmbClinics.Text
Query = “name Like “ & “‘“ & ClinicName &
datClinic. Refresh
datClinic. Recordset . FindFirst Query
frmCliniclnfo ! datClinic. Recordset. FindFirst Query
If Not frmCliniclnfo!datCliriic.Recordset(”name”) = ClinicName Then
MsgBox (“This clinic does not currently exist.” & vbCrLf & —
“Please check spelling and letter cases! !“)
Exit Sub
“d If
datOrient . Recordset . Move First
DoIf (datOrient.Recordset(”clinic”) = datClinic.Recordset(”name”)) Then
frmCliniclnfo!lstOriented.Addltem datOrient.Recordset (“ansos”) & —
& datOrient.Recordset(”status”)
End IfdatOrienc . Recordset MoveNext
Loop Until datOrient.Recordset.EOF = True
;rmUpdateClinic. Hide
rmCliniclnfo. Show
xit Subarnlng:
MsgBox (“You have entered invalid information:” & vbCrLf & —
“A different letter—case version of this clinic already exists.”)
Ixit Sub
:nd Sub
rivate Sub Form Load()
lw one As Inteaer
atCiinic.DatabaseName = App.Path & “\CSRdatabase.mdb”
atClinic. Refresh
etOrient.DatabaseName = App.Path & “\CSRdatabase.mdb”
atOrient . Refresh
nd Sub
rivate Sub txtAnsosClick()
::tNewAnsos.Text =
.Text =
rmupdateClinic — 3
::( iicName.Text =
-bCnics.Text = “(select clinic from list)”
d Sub
:vate Sub txtClinicName Click))
::NewAnsos.Text =
:tNewClinic.Text =
•:tAnsos.Text =
bClinics.Text = “(select clinic from list)”
-d Sub
:ivate Sub txtNewAnsosClick()
:tAnsos.Text =
;::ClinicName.Text =
-bClinics.Text = “(select clinic from list)”
d Sub
rivate Sub txtNewClinic Click))
tClinicName.Text =
tAnsos.Text =
abClinics.Text = “(select clinic from list)”
nd Sub
rmUpdateErnployee - 1
Cption Explicit
rivate Sub cmbNamesGotFocus()
xtNewAnsOS.Text =
xtNewLastNarne.Text =
xtNewFirstName.Text =
xtAnsos.Text =
xtLastName =
nd Sub
rivate Sub cmdCancelClick()rrmuodateEmpioyee. HiderrrnWeicme ShowxtAnsos.Text =
:xtNewAnsos.Text =
:xtNewLascName.Text =
xtNewFirstName.Text =
xtLastName.Text =
;mbNarnes.Text = “(select name from list)”
:nd Sub
:rjvate Sub cmdNextClick()
im LastName, NewLastName, NewFirstName, AnsosCode, FirstName, —
NewAnsosCode, WholeName, Query, status As String
im ComrnaPos, line, x As Integer
)n Error GoTo Warningme=O
.stName 0ewFirstName = 0-nsosCode 0ewAnsosCode = 0
f (txtNewAnsos.Text = “ And (Not txtNewLastName.Text = “ Or Not txtNewFirstName.Text “)) 0
(txtNewLastName.Text = “ And (Not txtNewAnsos.Text = ““ Or Not txtNewFirstName.Text = ““)) 0
(txtNewFirstName.Text = “ And (Not txtNewLastName.Text = “ Or Not txtNewAnsos.Text = “)) T
MsgBox (“You must enter the new employees’s FULL name AND ansos code!!”)
Exit Sub
‘f (txtNewAnsos.Text = “ And txtNewLastName.Text = “ And
txtAnsos.Text = “ And txtLastName.Text “ And txtNewFirstName.Text = “ And
(crnbNames.Text = “ Or crnbNames.Text = “(select name from list)”)) Then
MsgBox (“You have not entered any information!!”)
Exit Subnd If
f Not :xtLastName.Text = “ ThenastName = txtLastName.Text
Query = “lastnarne Like “ & “‘“ & LastName &
dazErnployee. RefreshdatEmployee. Recordset. FindFirst Query
mEmoloyeeInfo!datEmployee.Recordset. FindFirst Query
Not frmEmoioyeeInfodatEmployee.Recordset(”lastname”) = LastNarne Then
MsgEox (“This employee does not currently exist:” & vbCrLf & —
“Please check spelling and letter case!!”)
Exit SubEnd If
Thd If
f (Not tztNewLastName.Text = ““ And Not tztNewFirstName.Text =
And Not txtNewAnscs = “) Then
mUpdateEmplOyee — 2
(‘iLastNarne = txtNewLastName.Text
.EirstName = txtNewFirstNarne.Text
NewAnsosCode = tx:NewAnsos.Text
Query = “ansos Like “ & “‘“ & NewAnsosCode &
datEmDloyee. Refresh
datEmoloyee . Recordset. FindFirst Query
frmCliniclnfo! datClinic. Recordset. FindFirst Query
If Not frmEmployeelnfo!datEmployee.Recordset(”ansos”) = NewAnsosCode Then
frmEmployeelnfo! datEmployee. Recordset .AddNew
frmErnployeelnfo!datErnployee.Recordset (“ansos”) = NewAnsosCode
frmEmployeelnfo!datErnployee.Recordset (“lastname”) = NewLastName
frmEmployeelnfo!datEmployee.Recordset (“firstname”) = NewFirstName
frmErnployeelnfo! datErnplo.yee . Recordset .Update
NewAnsosCode = txtNewAnsos.Text
Query = “ansos Like & “‘“ & NewAnsosCode &
datErnployee. Refresh
datEmloyee . Recordset. FindFirst Query
frmEmDloyeelnfo! datEmployee . Recordset . FindFirst Query
Else: MsgBox (“This employee already exists.” & vbCrLf & --
“Please check spelling and letter cases!!”)
Exit SubEnd If
d If
Not txtAnsos.Text = “ Then
( sosCode = txtAnsos.Text
.ery = “ansos Like “ & “‘“ & AnsosCode & “‘“
datEmployee. Refresh
datEmployee . Recordset. FindFirst Query
frmEmployeelnfo ! datEmployee. Recordset. FindFirst Query
If Not frmEmployeelnfo!datEmployee.Recordset(”ansos”) = AnsosCode Then
MsgBox (“This employee does not currently exist:” & vbCrLf &
“Please check spelling and letter case!!”)
Exit SubEnd If
:nd If
f Not ((crnbNames.Text = “(select name from list)”) Or (cmbNames.Text = “)) Then
iine = cmbNames..istlndex
holeName = cmbNames.Text
CommaPos = InStr(l, WholeName, “,“)
LastNarne = TrimS(Left$(WholeName, CommaPos — 1))
FirstName = Trim$(Mid$(WholeName, CornmaPos t 1))
status = 1
frmEmployeelnfo! datEmployee. Recordset . MoveFirst
DoIf (LastName = frmEmployeelnfo!datEmployee.Recordset(”lastname”) And —
FirstName = trmEmpioyeelnfo!datEmployee.Recordset (“firstname”)) Then
status = 0Else: frmEmployeelnfo ! datEmployee . Recordset . MoveNext
End If
( o Until status = 0 Or frmEmpicyeelnfo!datEmployee.Recordset.EOF = True
if Not (frmEmplcyeelnfo!datEmployee.Recordset(”lastname”) = LastName Or —
frmEmplcyeelnfo!datEmployee.Recordset(”firstname”) = FirstName) Then
MsgBox (“This employee does not currently exist:” & vbCrLf & —
“Please check spelling and letter case!!”)
Exit SubEnd If
rmUpdateEmplOYee - 3
datOrient . Reccraset 1oveFirstDoif (datOrient.Recordset (“ansos”) = frmEmployeelnfo!datEmployee.Recordset (“ansos”)) Then
frmEmployeeinfo!lstOrientation.Addltem datOrient.Recordset(”clinic”)
End IfdatOrient Recordset MoveNextLoop Until datOrient.Recordset.EOF = True
rmUpdateEmployee . HidermEmployeeInfoShow
xit Sub:arning:
MsgBox (“You have entered invalid information:” & vbCrLf & —
“Data is case—sensitive — Please check your letter cases!!”)
xit Sub
nd Sub
rivate Sub Form Load()
:atEmployee.DatabaseName = App.Path & “\CSRdatabase.mdb”
:a:Emoloyee . Refresh
nd Sub
‘ri .e Sub txtAnsosClick():xtNewAnsos.Text =
:xtNewLastName.Text =
:xtNewFirstName.Text =
xtLastName.Text:mbNames.Text = “(select name from list)”nd Sub
‘rivate Sub txtLastNameClick():xtAnsos.Text =
:xtNewAnsos.Text =
:xtNewLastName.Text =
xtNewFirstName.Text =
;oNames.iext = “(select name from list)”nd Sub
rivate Sub txtNewAnsosClick():xtAnsos.Text =
:x:LastName.Text =
:mbNames.Text = “(select name from list)”nd Sub
‘rivate Sub txtNewLastName Click ()xtAnsos.Text =
x:LastName.Text =
:bNames.Text = “(select name from list)”nd Sub
e Sub txtNewFirstNameCjjck():xt.5os.Text =
x:LastName.Text =
moNames.Text = “(select name from list)”:nd Sub
rmWelcome - 1
ri’te Sub cmdNextClick()ir. unt, k As Integer
moloyeeArray(0 To 100), ClinicArray(0 To 100) As String
opzClinicInfo True ThenrmWeicome . HiderrnUpdateClinic 1 datClinic. Recordset . MoveFirstrmupdateClinic! cmbClinics Addltem
rrnrJpdateC1inic!cmbClinics.Text = “(select clinic from list)”ount = 0
ClinicArray(count) = frmupdateC.linic!datClinic.Recordset(”narne”)frmUpdateClinic I datClinic. Recordset MoveNextcount = count + 1
cop While frmUpdateClinic!datClinic.Recordset.EOF = FalsermupdateClinic I cmbClinics .Addltem=0
frmUpdateClinic! cmbClinics .Addltem ClinicArray(k)k= k+ 1
cop While k < count
rrnUpdateClinic.Show
.** ****************************,***************
self ootErnployeelnfo = True ThenrrnupdateEmployee I datEmployee. Recordset . MoveFirstrmvpdateEmployee! cmbNames .AddltemrmU’iateEmployee!cmbNames.Text = “(select name from list)”ou =0
EmployeeArray(count) = frmupdateEmployee!datEmployee.Recordset (“lastname”) —
& “, “ & frmUpdateEmployee!datEmployee.Recordset(”firstname”)
frmupdateEmployee I datEmployee Recordset . MoveNextcount = count + 1
cop While frmUpdateEmployee!datEmployee.Recordset.EOF = FalsermupdateEmployee! cmbNames .Addltem=0
frinUpdateEmployee! cmbNames .Addltem EmployeeArray(k)= k + 1
co While k < count
rmupdateEmployee. Show
rrnWelcome. HidecmUpdateEmployee. Show
iself optSchedules = True ThenfrmWelcome. HidefrmScheduleMenu. Show
****************************** ******** ********
seIf optStats = True ThenmWeicomeHideaStatsMenu. Show
d Ifid Sub
ivate Sub cmdQuit Click()
:d Sub
D
I
0
C
,Faa? KillLI
C
I
I
_________________________________________
‘miami
C
D
J
LJor
)
)
Fmml.
For further information regarding Visual Basic topics (Tutorials. Contacts.or Basic information. etc.). please consult the following ‘ ebpage:
http ://msdn.microsoft.conilvbasic/default.asp