Prévia do material em texto
USER MANUAL
Version FlexSim HC 5.0.2
Date Published
01 JUN 2015
2
Table of Contents
Introduction
Welcome to FlexSim Healthcare
Using This Manual
Activating Your License
Customer Support
Training Classes
What's New in FlexSim HC
Getting Started
Getting Started
Overview of the Model Building Process
FlexSim HC at a Glance
Key Terms and Definitions
Using the Toolbox and Toolbar
o Using the Toolbox and Toolbar
o Introduction to the Toolbox and
Toolbar
o Adding a New Tool Component
o Opening and Closing a Tool
Component
o Renaming a Tool Component
o Copying a Tool Component
o Reorganizing Tool Components
o Deleting a Tool Component
Navigating in FlexSim HC
Arranging Windows and Tabs
o Arranging Windows and Tabs
o Introduction to Windows and Tabs
o Rearranging Windows and Tabs
o Resizing Windows and Panes
Planning a Simulation Model
What are Simulations?
Planning a New Simulation Model
Data Gathering Strategies
Using ExpertFit
Building a Layout of Your Facility
Building a Layout of Your Facility
Introduction to Building a Layout
Creating or Importing Floor Plans
o Creating or Importing Floor Plans
o Introduction to Floor Plans
o Importing a Floor Plan File
o Changing Floor Plans
o Floor Plan Settings
o Troubleshooting Floor Plans
Introduction to Library Objects
Adding Objects to a Model
Adding Locations to an Area
Customizing Object Properties and
Settings
o Customizing Object Properties and
Settings
o Customizing Object Properties and
Settings
o Moving, Resizing, and Rotating
Objects
o Changing the Shape and
Appearance of Objects
o Additional Patient Location Settings
Connecting Locations and Item Objects
o Connecting Locations and Item
Objects
o Introduction to Connecting Locations
and Objects
o The Flowchart Tool at a Glance
o Using the Flowchart Tool
Adding Staff and Resources
Adding Staff and Resources
Introduction to Staff and Resources
Adding Resources to a Model
Selecting a Resource Group or Group
Member
Renaming Groups and Group Members
Moving Groups and Group Members
Changing the Appearance of Staff
Resources
Creating Alternate Resource Groups
Patient-Centered Activities
3
Patient-Centered Activities
Introduction to Patient-Centered Activities
Key Concepts about Activities
o Key Concepts about Activities
o Introduction to Key Concepts about
Activities
o Most Activities are Patient-Centered
o Building Complex Patient Tracks
and Activity Lists
o How Activities Begin
o What Happens During an Activity
o How Patients and Staff Move to
Locations or Areas
o How Staff and Resources Are
Assigned to an Activity
o Staff and Resource Priorities
Adding and Managing Patient Tracks
The Patient Track Manager at a Glance
Overview of Adding and Managing Activities
Adding an Activity
Basic Activity Settings
o Basic Activity Settings
o Introduction to Basic Activity
Settings
o Activity IDs
o Activity Names
o Milestones
o Predecessors
Activity Types
o Activity Types
o Overview of Activity Types
o Process
o Process > Send Message
o Process > Send Item
o Move Equipment > Process
o Move Transports > Process
o Escort Patient > Process
o Transport Patient > Process
o Patient Travels Unattended
o Decision Point
o Custom
Specific Activity Type Settings
o Specific Activity Type Settings
o Introduction to Specific Activity Type
Settings
o Patient Destination
o Processing Time
o Staff Requirements
o Staff Destination
o Equipment Requirements
o Transport Requirements
o Next Activity
Advanced Activity Settings
o Advanced Activity Settings
o Advanced Functions
o Advanced Time Controls
o Costs
Adding Patients
Adding Patients
Introduction to Patients
Patient Classifications
o Patient Classifications
o Introduction to Patient
Classifications
o The Patient Classifications Tool at a
Glance
Patient Visuals
o Patient Visuals
o Introduction to Patient Visuals
o The Patient Visuals Tool at a Glance
o Managing Visual Profiles
o Visual Profile Settings
o Assigning a Visual Profile to a PCI or
Activity
o Patient Overhead Text Display
Patient Arrival Patterns
o Patient Arrival Patterns
o Introduction to Patient Arrival
Patterns
o Inter-Arrival Times
4
o Hourly Arrivals
o Appointments
o Custom Arrivals
Related Patient Arrival Tools
o Related Patient Arrival Tools
o The Distribution Chooser
o Creating a Warm-up Period
Routine Staff or Location Activities
Routine Staff or Location Activities
Introduction to Routine Staff or Location
Activities
The Shift Schedules Tools
Introduction to the Shift Schedules Tool
Adding and Managing Schedules
The Shift Schedules Tool at a Glance
Adding Staff or Resources to a Schedule
Resource Break Options Settings
Adding Locations and Areas to a Schedule
Location Break Options Settings
The Global Processes Tool
Introduction to the Global Process Tool
Adding and Managing Processes
Process Example 1: Checking Patient Vitals
Process Example 2: Phone Call Answering
System
Process Example 3: Staff Meetings
The Random Interrupts Tool
Introduction to the Random Interrupts Tool
Running a Simulation
Introduction to Running a Simulation
Using the Simulation Control Bar
Preventing Simulation Model Errors
Getting Data from a Simulation
Getting Data from a Simulation
Introduction to Getting Data from a
Simulation
Dashboards
Introduction to Statistics Dashboards
Adding and Managing Dashboards
Introduction to Widgets
Adding Widgets
Moving and Resizing Widget Display Boxes
Widget Settings at a Glance
Widget Overview
The Data Collector
The Experimenter
Introduction to Experimenter
Key Terms and Concepts
The Experimenter at a Glance
Designing Scenarios and Testing Variables
Running an Experiment
Saving and Exporting Data
Tutorials
Tutorials
Introduction to Tutorials
Tutorial Case Study
Tutorial 1 - Building a Layout of Your
Facility
o Tutorial 1 - Building a Layout of Your
Facility
o Tutorial 1.1 - Importing a Floor Plan
o Tutorial 1.1 Introduction
o Step One - Create and Save a New
Simulation Model
o Step Two - Import a Floor Plan File
o Step Three - Change the Floor
Plan's Visual Settings
o Step Four - Scale the Floor Plan
Drawing
o Tutorial 1.2 - Adding Location and
Item Objects
o Tutorial 1.2 Introduction
o Step One - Add the Objects to the
Model
o Step Two - Resize and Rotate the
Objects
o Step Three - Change Object Shapes
and Appearance
o Step Four - Change Object Settings
o Step Five - Add Locations to a
Custom Area
o Tutorial 1.3 - Connecting Location
and Item Objects
o Tutorial 1.3 Introduction
o Step One - Add the Objects to the
Model
o Step Two - Resize and Rotate the
Objects
Tutorial 2 - Adding Staff and Resources
5
o Tutorial 2 - Adding Staff and
Resources
o Tutorial 2.1 - Adding and Changing
Staff and Resources
o Tutorial 2.1 Introduction
o Step One - Add Staff and Resources
to a Model
o Step Two - Add Group Members to a
Resource
o Step Three - Rename Groups and
Group Members
o Step Four - Move and Rotate Group
Members
o Step Five - Change Staff Member's
Appearance
o Tutorial 2.2 - Creating Alternate
Resource Groups
o Tutorial 2.2 Introductiono Step One - Create Alternate
Resource Groups
o Step Two - Add Members to the
Alternate Groups
Tutorial 3 - Patient-Centered Activities
o Tutorial 3 - Patient-Centered
Activities
o Tutorial 3.1 - Creating Patient Tracks
and Activities
o Tutorial 3.1 Introduction
o Step One - Create a New Patient
Track
o Step Two - Add a Milestone and a
Location
o Step Three - Add a Processing Time
o Step Four - Assign Staff
o Step Five - Keep a Staff Member
o Step Six - Assign Equipment
o Step Seven - Release a Staff
Member
o Step Eight - Reuse Staff Members
o Tutorial 3.2 - Creating Decision Point
Activities
o Tutorial 3.2 Introduction
o Step One - Create a Doctor
Examination Activity
o Step Two - Create Variable Activities
o Step Three - Change Next Activity
Settings
o Step Four - Change Predecessor
Settings
o Step Five - Send Staff to a Different
Location
o Step Six - Send Items to a Lab
o Step Seven - Require Additional
Staff
o Step Eight - Assign a Transport
o Step Nine - Return to a Reserved
Location
o Tutorial 3.3 - Creating Additional
Patient Tracks
o Tutorial 3.3 Introduction
o Step One - Copy a Track
o Step Two - Change Activity Priority
Levels
o Step Three - Delete Activities
Tutorial 4 - Adding Patients
o Tutorial 4 - Adding Patients
o Tutorial 4.1 - Creating Patient
Classifications
o Tutorial 4.1 Introduction
o Step One - Create Different Patient
Classifications
o Step Two - Assign Patients to a
Patient Track
o Tutorial 4.2 - Changing Patient
Visuals
o Tutorial 4.2 Introduction
o Step One - Create New Visual
Profiles
o Step Two - Change Visual Profiles
o Step Three - Assign Visual Profiles
to a PCI
o Step Four - Assign Visual Profiles to
an Activity
o Tutorial 4.3 - Creating Patient Arrival
Patterns
o Tutorial 4.3 Introduction
o Step One - Create an Hourly Arrival
Schedule
o Step Two - Create an Inter-Arrival
Pattern
o Step Three - Set the Hours of
Operation
Reference Manual
License Activation
Concepts
Example
Reference
6
FlexScript Coding
o FlexScript Coding
o Writing Logic in FlexSim
o Basic Modeling Functions
o Code Editor
Debugging
Debugging
Overview
Breakpoints
Call Stack
Code Profiler
Event List
Event Log
Local Variables
Watch Variables
o Command Helper
FlexScript Commands
7
Welcome to FlexSim Healthcare
FlexSim Healthcare (HC) is the most robust, comprehensive, and easy-to-use simulation software
designed specifically to solve the unique problems faced by today's healthcare facilities. FlexSim HC
allows you to analyze all of the components of your healthcare facility and evaluate the impact they have
on patient outcomes. It will help you find accurate solutions to your problems and make decisions about
how to make your healthcare organization run as efficiently as possible without the costly risk of trial and
error. Ultimately, FlexSim HC will help practitioners do what they do best: help patients get better.
Real Data
FlexSim HC can help you track and display a wide variety of statistics and data that can help you make
well-informed decisions for your healthcare facility. You can also run many different types of experiments to
see what would happen if you changed some element of your medical facility or process. This valuable
data can help you solve many different kinds of problems, such as:
Ensuring human resources are not over- or under-utilized
Estimating the cost of proposed changes
Reducing patient waiting times by identifying possible bottlenecks
Cutting costs from inefficient use of resources
Identifying the best strategy for handling variations in patient volumes
All of this data can be displayed in any format you would like, such as charts, graphs, etc. Any data you
create in FlexSim HC can easily be exported to spreadsheet programs such as Excel. Data can also be
easily imported into your simulation model from many different spreadsheet formats.
3D Visuals
Simulation should be just as capable of being visually compelling as it is analytically compelling. FlexSim
HC's fully 3D visuals allow you to see exactly what's going on in the model as its running. It's much easier
to compare results when you can visualize what's happening to your simulated healthcare system.
The 3D visuals also create opportunities for communication and teamwork among all the stakeholders in
patients' outcomes. A simulation with accurate 3D models of the personnel, equipment, and furniture found
in your actual healthcare facility is far more compelling than a simple chart.
Patient Track Manager
Using the Patient Track Manager, you can create plans for patients to follow based on the patient's acuity,
diagnosis, or any other criteria you determine. These plans can include different activities or processes that
should occur from the moment a patient arrives to the time they depart. The Patient Track Manager can
also pull the necessary human resources to provide patient care and guide them to the appropriate next
step in their treatment.
8
Using this Manual
The right pane (the Quick Properties pane) contains the Table of Contents for the User Manual. The Table
of Contents is divided into multiple chapters, each containing several topics. To open a chapter, either click
the chapter title or the Book button next to its title. This will open the chapter and display all the topics
listed in that chapter. You can read a topic by clicking the topic title or by clicking the Topic button next
to its title. You can also navigate between topics in the order they are listed in the Table of Contents by
clicking the Previous or Next buttons at the top and bottom of each topic.
Many topics contain hyper-links to other parts of the User Manual for your convenience. If you ever click a
link and find that you want to go back to the page you were just barely looking at, you can click the Back
button above the Table of Contents to return to the previous page.
Tips and Important Notes
Information that requires special attention will be formatted using the following icons:
Tip Box Title
The tip for the text will be included in this text box.
Important Note Box Title
The text for the important note will be included in this text box.
User Manual Display
If you want, you can change way this window displays the User Manual. For example, you could make the
User Manual expand to the full size of the window if you wanted to see an image. See Arranging Windows
and Tabs for more information.
9
Activating Your License
In order to activate your license, you will need:
1. Your FlexSim Account
2. Your Activation ID
FlexSim Account
First, you will need your login information for your FlexSim Account. There are two possible ways to set up
a FlexSim Account:
If you downloaded a trial version of FlexSim Healthcare (HC), you set up your FlexSim account at that
time.
If you purchased FlexSim HC without downloading a trial version, a customer service representative
should have sent you an email with your FlexSim account information at the time of purchase.
If you have forgotten your FlexSim Account login information or need to set up your account for the first
time, please contact FlexSim Customer Support.
Activation ID
Using your FlexSim Account, you can obtain an Activation ID. An Activation ID is a product key that is used
to activate your FlexSim HC license on a PC or LAN license server. Each Activation ID has a defined
number of seats associated with it. The seat number determines how many computers using that particular
Activation IDwill be authorized to run the full version of FlexSim HC at a given time.
What does an Activation ID look like?
A typical Activation ID looks like this:
company.com08-ABCDE-FGHIJ-KLMNO-FESENT7.3
Once you have your FlexSim account information, follow the steps below to activate your license:
1. Go to http://www.flexsim.com/account/ and login to your FlexSim Account.
2. Once logged in, click My Licenses on the left menu bar. This will take you to a page that lists the
current software licenses that are associated with your FlexSim Account.
3. Click on the folder named FlexSim Enterprise to expand it. This will display all the Activation IDs that
are available for your account, as shown in the following image. It will also indicate how many seats are
available for that particular Activation ID, which refers to the maximum number of computers that can
run a licensed copy of FlexSim HC at a time.
10
4. Use your mouse to highlight and copy (Ctrl+V) the Activation ID.
5. In FlexSim on the main menu, click Help, then License Activation. This will open the License
Activation dialog box, as shown in the following image:
6. On the Activate tab, paste (Ctrl +P) the Activation ID into the Activation ID field.
7. If you are activating your license directly from FlexSim, click Activate through Flexsim. If you are
using your company's server instead, click Activate through your company's license server.
8. Click Activate. The status box underneath the Activate button will alert you whether the activation
process was successful or not.
11
Returning and Repairing Licenses
For more information about activating, returning, and repairing licenses, see License Activation in the
Reference Manual.
12
Customer Support
You are welcome to contact FlexSim for customer support at any time using the contact information listed
below. Be aware that for technical assistance, you will need a current FlexSim maintenance agreement
unless you are using an evaluation version of FlexSim HC.
FlexSim's in-house technical support is available from 9:00 AM to 7:00 PM Eastern Time. Technical
support will be closed on major US holidays.
Technical support services are provided through phone, email, and online web conferencing. FlexSim
provides additional community resources, including an online forum. To access FlexSim's technical support
and resources:
Phone: Call (801) 224-6914 and ask for technical support.
Email: Visit http://www.flexsim.com/support/ to submit a support case using an online form. A customer
service representative will respond to you by email and will continue to work with you through email
until your case is successfully resolved.
Online Community Forum: Visit http://www.flexsim.com/forum/ to connect to other end-users,
including FlexSim partners and distributors who are also ready to assist you. The Online Community
Forum also includes sample models, tips and tricks for modeling and managing simulation projects,
and other general support topics.
Training Classes: FlexSim regularly offers in-person, instructor-led training sessions. Many FlexSim
software license purchases include training sessions for at least two people. Additional training
sessions can be purchased for a fee. See Training Classes for more information.
Consulting Projects: FlexSim can provide you with consulting services if you have a big simulation
project that needs to be completed quickly or if you'd like one-on-one help with model building. Use the
contact information above to discuss consulting fees and projects.
Feel free to use FlexSim's support services and resources at any time you feel you need assistance.
FlexSim prides itself on its excellent customer service.
13
Training Classes
FlexSim regularly offers in-person, instructor-led training sessions. Many FlexSim software license
purchases include training sessions for at least two people. Additional training sessions can be purchased
for a fee.
The training sessions for first-time FlexSim users includes a 3-day hands-on course which runs Monday
through Wednesday. Attendees learn to use the software by creating and analyzing simulation models.
Attendees are then invited to remain at FlexSim's offices for the Thursday through Friday for one-on-one
model-building help. There is no additional cost for this optional one-on-one training and support. This is an
opportunity for attendees to be paired with a FlexSim engineer to start your initial simulation project.
The current FlexSim training schedule can be found at http://www.flexsim.com/calendar/.
14
What's New?
Version 5.0.2 (May 22, 2015)
New Features
1. PCI table now has a Visuals and Speed column
2. Dashboard widgets size according to dashboard size when dragged out
3. Objects are selected after being dragged out so their properties are immediately available
4. Moving members of resource groups in the 3D view sets their offsets
5. Line Graphs set their start time based off the model start time
6. Dashboard widgets can be created with the click and drop edit mode
7. You can now specify the random stream of patient arrival tables
8. Flowchart blocks resize based on name length
Bug Fixes
1. Various interface issues
2. Fixed some issues with elevators
3. Fixed some Flowchart issues
4. Fixed some dashboard widgets
Version 5.0.0 (April 7, 2015)
New Features
1. 64-bit version (enables FlexSim to use more RAM)
2. Windowing interface overhaul to use a docked window paradigm
3. Created a Quick Properties docked window that is context sensitive. The window will display properties
based on the current selection or the active document window
4. Removed Properties windows and put all object properties in the Quick Properties panel so they can be
accessed just by clicking an object
5. Removed the Tools menu and added an organizable Toolbox
6. Library is context sensitive and changes its display based on the current selection or the active
document window
7. New Library icons
8. Library objects have been reorganized to be more intuitive
9. Library enhancements to include collapsible groups and edit modes
10. Clicking on library icons shows images of all possible shapes allowing you to select the shape that will
be dragged out
11. Track Manager UI redesign to make use of new Quick Properties panel
12. Improved the Staff Destination field so that it behaves more like the other fields and can use
pickoptions
13. Advanced Function window is now in the Quick properties and displays with the other options for
activities
14. Added a Patient Visuals window
15. Added a trigger to change a patient's visuals using new visual profiles
16. Moved Dashboards into a document window that can now be closed and reopened whenever
17. Added dashboard widgets to the library and can now be dragged out
15
18. Improved the Shift Schedule so that you can specify different types of down times
19. Added a sampler button that is placed throughout the software to allow users to sample objects, colors,
and images. The sampler helps to improve ease of use, speed up model building, and eliminate some
need for writing code
20. Most drop down lists have been organized into a hierarchical structure with objects being placed in
groups according to area and resource group
21. Added and updated several picklist popups removing all text based picklist options from Track fields
22. New By Simulation Time pickoption that generates a global table based off the number of time divisions
you need
23. Sample Sets can be chosen from a table to speed up multiple selection
24. Moved the User Manual into FlexSim as a dockable window
25. User Manual completely rewritten
26. Added doubleclick to open colors panel to most color wells
27. Added an autosave feature to global preferences
28. Added capability to model patients who stay on gurneys/wheelchairs through processes
29. Improved staff and patient animations and staff positioning
30. Added a picklist to allow a patient to stop at an intermediate destination before going to their final
destination
31. Added a Measure/Convert tool
32. Tree Find/Replace is now integrated with the Quick Properties window and has support for case-
insensitive searches as well as searching for node names
33. Improved script console allowing scripts to be saved both in individual models and to the user
environment. You can also now debug your script console code
34. Improved the Item Bin interface. Item shapes may be changed through a drag and drop from the
Library Icon Grid
35. Improvement in the Code Editor and other areas where logic is defined through draggable constructs in
the library icon grid and sampler buttons throughout popups and picklist widgets to automatically add
code, etc. FlexSim commands also display a short description when typing in the code editor
36. Picklist fields and many popups' fields have code highlighting and autocomplete
37. Added support for user libraries
38. Better debugger that allows you to access the tree and other areas of FlexSim while in debug mode.
Hovering over variables during debug mode will display their current value
39. Better support for importing 3D shapes. FlexSim now supports the following formats: *.wrl; *.3ds; *.dxf;
*.stl; *.skp; *.dae; *.obj; *.ac; *.x; *.ase; *.ply; *.ms3d; *.cob;*.md5mesh; *.irr; *.irrmesh; *.ter; *.lxo;
*.csm; *.scn; *.q3o; *. q3s; *.raw; *.off; *.mdl; *.hmp; *.scn; *.xgl; *.zgl; *.lvo; *.lvs; *.blend
40. Added a new mesh class for drawing in OpenGL
41. Stereographic 3d rendering (requires workstation Quadro or FireGL card for frame-sequential
rendering)
42. Enhanced graphical compatibility with integrated Intel cards
43. Improved 3d rendering, including shadow rendering, specular highlights on 3ds objects, bump maps,
parallax maps, etc
44. Updated visual studio wizards that work with VS 2012
Backwards Compatibility Note: the following changes may slightly change the way updated
models behave.
1. Improved Resource request logic so that queued requests on a resource that goes off schedule
are given to their group and requests are not given to resources with an off schedule event in
their queue
2. Removed the Preempt checkbox from activities since the tier system in the priority field already
does this
16
Version 4.3.10 (June 2014)
New Features
1. User sees a warning message if the model start time is set to something greater than 7 days
Bug Fixes
1. The experiment variable to update an Arrival Table now sets the PCI column correctly
2. The Data Collector's "List of Locations" recording criteria option now accepts Areas as well as
Locations
3. Data Collectors now pass the correct value for "lastval" in column calculation functions
4. Fixed the "Standard Down" function for Time Tables and Random Interrupts so that it doesn't cause
exceptions later in certain memory conditions
5. Updated the "Resume Object Flow" function for Time Tables and Random Interrupts so that locations
don't receive extra patients when they resume
6. Fixed an animation problem when patients try to sit down while carrying something
7. If a Location's Area is changed to an Area that does not yet exist, the Location's input and output ports
are deleted
8. Fixed an exception that occurred when switching from a bar chart to a dot plot in the Patient Waiting
Time dashboard widget
9. Standing animation is now applied to staff called as operators to ItemProcessing objects
10. Removed a warning that occurred if a model had just item class objects
11. The <none> shape on Patient Processing objects will now either do nothing or animate patient
according to patient's last known position as recorded in the frame attribute.
12. Fixed problems with Patient Rounds option for Custom Activities
Version 4.3.8 (May 2014)
New Features
1. Utilization box plots only record a single value per period per day - this applies to Resources, Locations
and Item Object widgets
2. Added box plots to State widgets for Resources, Locations and Item Objects that work like the
Utilization box plots
3. Improved look and behavior of box plots
4. Added box plot to Resource Distance Traveled widget
Bug fixes
1. Fixed how the box plot displays the range on the y-axis if the number of decimals being displayed is 0
2. Patient Throughput box plots no longer have extra observations if the model starts at a time other than
01:00:00
3. Fixed a bug in Census box plot that was causing too many 0s to be recorded
4. Resource State dot plots are now refreshed correctly during a model run
5. Long DataCollector names are handled better when they are exported to Excel
6. Correct spacing between multiple options in a trigger field is now ensured
7. Patients no longer line up at Arrival objects - it was causing replications to not repeat predictably
8. GlobalProcesses can no longer start before 0.000011 - this keeps them from having issues with early
events on Patients
17
9. The version number is now displayed as 4.3.8 (instead of 4.38)
10. Stopped some irritating messages when models were opened in Demo or Runtime mode
Version 4.3.6 (April 2014)
Bug fixes
1. Stacked bar charts are displayed correctly again
2. When models from older versions are opened, all Item Objects will appear in the Flowchart GUI
Version 4.3.4 (April 2014)
New Features
1. Reordered and improved the information in the popup display in the box plot
2. Added Acuity to the labels that can be edited by a Patient Arrivals Schedule
3. Added Help button to Dashboard, move the tab control buttons to the left to be with the other buttons
4. When models are updated from previous versions, a list of the old versions is kept
5. Dot plots now list the replication number of an observation in the popup window
6. Bar charts and box plots now support and display negative results
Bug fixes
1. Fixed how line charts merge data from multiple replications
2. Fixed how throughput box plots handle start times, warmup times and empty periods
3. Utilization bar charts now show the percentage by the bar names
4. Fixed a bug where states were being set incorrectly when a model was stopped
5. Improved and fixed the behavior of the Areas drop-down list on Location parameter GUIs
6. Fixed an exception in Resource, Location and Item State and Utilization dot plots
7. Fixed an exception in Utilization Box Plots if the model ran more than one day
8. Copying and pasting item objects now adds them to the Flowcharting View as well
9. Sample Set names are now checked for validity before they are applied
10. Making nearly any change to the model will set the active scenario number to 0
11. Choosing an Area in a Location Parameters GUI now applies immediately
12. Histograms manage the size of their y-axis better
13. Replaced a lot of uses of getlabelval() with getlabelvalue()
14. GUI improvements
Version 4.3.2 (January 2014)
New Features
1. Added some support for the FlexSim web interface
2. Improved the patchfile functionality
3. Track import/export now includes the Item Created Trigger
18
Bug Fixes
1. Supports large memory addresses in 32-bit systems (helpful for large models)
2. Fixed how Patient Distance Traveled is reported
3. Cleaned up a lot of pickoptions that used intarray when they should have used treenodearray
4. Fixed and improved the "By Label Value" picklist option
5. Cleaned up syntax errors/warnings in pickoptions
6. Track import/export does notsupport multi-line code (it was badly broken before)
Version 4.3 (November 2013)
New Features
1. Updated help files
2. The "Based on condition (two lists)" pickoption for destinations has a nice GUI
3. Combined Custom Excel Import/Export into the Excel Communications Options GUI
4. Added toolbar buttons for Excel communication
5. Added Staff Distance Traveled dashboard widget
6. Added Interarrival Times Parameter to Experimenter's list of variables
7. Updated the Experimenter's other variables
8. Updated the list of variables that can be edited on different object classes by the Experimenter
9. Added Photo Eye capability to Item Conveyors
10. Added Location Name and Resource Name to Data Collector column options
11. Global Processes are included in some history tables and can be used in dashboards
Bug Fixes
1. GUI fixes
2. The PCI column of the Appointment table is now imported from Excel correctly
3. Improved how line graphs using VALUE_EXACT merge replication data together
4. Fixed an exception in Experiments if Data Collectors only had 1 or 2 columns
5. Row headers in the PCI table can not be edited (this was a regresion from a previous version)
Version 4.1 (October 2013)
New Features
1. Line charts aggregate data from multiple replications faster
2. The data points in a dot plot are now listed in scenario/replication order
3. Clicking "Add Resource" in the Track Manager automatically opens the resource selection GUI
4. Removed Copy/Paste options from the PCI table since they didn't work well
5. Appointment Table can now have label value defined for each appointment
6. DataCollectors now have a Model Stopped event they can use for recording data
7. DataCollectors now define columns for a raw data table - no more "Sample Set" and "Category" fields
8. User-Defined dashboard widgets now allow the user to select multiple columns from a DataCollector to
report
9. Renamed "Choose destination, staff and/or transport based on various criteria" picklist option to "Based
on destination status" and improved explanatory wording
10. Search/Replace GUI now automatically resizes the table column to fill the available width
11. Experimenter GUI now remembers the width of columns in the variables table
19
12. Changed how the custom sample set GUI is placed and sized when it is opened
13. Export Dashboard Data GUI now includes DataCollectors as options to export
14. Improved "Experiment Complete" message and dashboard refreshing
15. Added "Explore" tab to Experimenter to allow a user to select a specific replication to run
16. Added getlabelvalue() and gettablevalue() commands
17. Simplified a number of pick-options using the getlabelvalue() and gettablevalue() commands
18. Improved the "Set Location, Rotation, Size" pick-options
19. Fixed or improved other pick-options
20. Includes all new features and bug fixes of previous versions
Bug Fixes
1. Dashboards with dot plots in them now save and load correctly
2. Dot Plot should not slow down as badly after it has been moved or resized
3. Fixed syntax error in "Based on simulation time (table)" pickoption
4. Patient Appointment table has "Actual Times" column cleared on reset - like it used to work
5. Fixed Excel import/export of labels in the PCI table
6. Dashboard widgets that use "Current Value" calculate their averages more accurately
7. Experimenter works with DataCollectors better now
8. Fixed a bug in saving dashboards with model controls in them
9. Fixed a bug that was requiring users to choose a pickoption before code they wrote in the code editor
would be saved
10. Cleaned up how nodes in /Tools/Experimenter and /project/exec/replications are set
Version 4.0.4 (October 2013)
New Features
1. Replaced the Flowchart GUI's pop-out side panel with a toolbar
2. The Flowchart GUI now has a button to reset all areas to default locations in the window
3. The input ports of an object/area can now be edited in the Flowchart GUI
4. Removed the Connections tab from item objects
5. Added an Ultrasound shape to the Equipment
6. The color of an object in the Flowchart GUI is no longer connected to the color of the actual
object/locations in the model
7. Stacked bar charts no longer show the percentage next to the bar if "By Percentage" is checked - it was
always 100%
8. Added labels to all history tables so that widgets can filter with them
9. Fixed bar/text/etc spacing in a lot of dashboard widgets
10. Patient GUI has Visuals tab again
11. Patient Wait Times widget now has a Pie Chart option
12. Dwell Time/LOS, Patient Travel Distance widgets now have a Histogram display
13. Dashboard widgets with only 1 category have their legend hidden by default
14. Model start time must be divisible by 15 minutes if Shift Schedules are used
15. Box plots now show their N value (the number of observations)
16. Room reservations now work for both PatientProcessing and PatientQueueing objects
17. Added Dot Plots to any metric that can display bar charts
18. Added the ability to export dashboard/history data to CSV files
19. When equipment/transports are taken to their primary group, they are automatically snapped into their
default positions
20. Added new color palettes (Palette #10 has 80+ colors)
21. Dashboard are not updated automatically at the end of an experiment run
20
22. Users can manually rerun a specific iteration of an experiment using matched random streams
23. Dashboard GUI now has buttons to Add, Remove or Rename tabs
Bug Fixes
1. Dashboard can now be used if the user does not have admin rights to the Program Files directory
2. Multiple new or improved pick-options
3. Cleaned up or improved GUIs
4. Long lists of object names now have scroll bars so they are fully visible
5. The Processing Utilization widget now allows the correct selection of locations for custom sample sets
6. Fixed an occasional crash when adding a widget to a dashboard
7. If history tables are too large to export to a single Excel tab, they are split up across multiple tabs
8. Fixed the Connect to Path checkbox on the Alternate Group GUI
9. Fixed a recurring "floor does not exist" error message in Elevators
10. The line graph shows the times better and its scroll-bars work better now
11. Removed a pointless error message when copying color between item objects
12. Line charts' x-axis lines are now drawn more accurately
13. Removed a barely visible buttons from the main view - they caused crashes
14. Fixed "First activity satisfying location and resource requirements" option for decision point activities
15. Fixed some dashboard exceptions when moving the mouse around or changing the graph type
16. Fixed how percentages are calculated in bar charts
17. Utilization is now calculated more accurately, especially in box plots
18. Improved placement of dashboard widget GUIs
19. Dashboard widgets should always have recent menus when old ones are opened
20. The Interval field for DataCollectors is enabled/disabled correctly now
21. Fixed an exception that occurred when trying to export Histograms to Excel
22. Fixed the widgettype for Length of Stay widgets
23. Desk object now has an ObjectType variable
24. UserCommands GUI has had extra controls removed
25. Fixed exceptions in Resource OnDraw behavior
26. Changed getgroupstat() so that it considers any member that is not in an idle state to be busy
27. The getcensus() command now returns correct values when locations are reserved manually
28. Item Object sample sets now work correctly with Experiments
29. By Percentage pick-option preserves the user's values when adding/deleting entries
30. Code editor places "Custom Code" where needed
31. The Patient Classification tab no longer overwrites PCI row names
32. Added decimals variable to LWBS widget
33. Fixedhow LOS and Dwell Time dashboard widgets interact with warmup times
34. Fixed box plot calculations of Utilization over multiple days
35. Improved management of pre-process cost calculations
36. The tasksequence created to return equip/trans is now given a priority matching that of the activity that
specifies the return process.
37. The "ActivityWaitTime_" columns in an Output file needed a reference to the activity rank concatenated
onto the header.
38. Changed GlobalProcesses and Patients so that the Earliest Start Time is only evaluated once if it's an
expression
39. Box plots should be calculated faster and with fewer crashes
40. Models are now always reset when they are saved
21
Version 4.0.2 (July 2013)
New Features
1. Added Item Object dashboard widgets
2. Added Utilization dashboard widgets
3. Added Dwell Time and LOS dashboard widgets
4. State dashboard widgets have simplified state selection in their GUIs - They now use standard
checkboxes instead of red/yellow/green options
5. Resource, Location and ItemObject dataset selection GUI controls are now consistent with the Patient
dataset selection controls
6. Dashboard widgets use colors from palettes more intelligently
7. Palettes are repeated in dashboards if there are not enough colors available
8. Closing the Dashboard GUI closes the GUIs of all of the widgets in it
9. getstaffgroupstat() is now getgroupstat() and works with all group types
10. setnumresources() is more robust and can sometimes be used during runtime
11. getnumresources() can be used to get the total number of usable resources for alternate groups as well
as primary groups
12. Many GUIs have been updated with new drop-down lists and code-edit controls
13. Lots of clean-up and work to picklist options all over the place
14. Dashboard is larger by default so that all metric names are fully visible
15. Removed "Exact" from the display types list for most metrics
16. Many dashboard widgets now automatically set and update their title nicely
17. A message is now shown when an experiment is complete
18. Removed the default milestone-to-milestone entry
19. Bar charts always show the value next to the bar - makes them easier to read
20. User-defined widget has "Current Value" option, but nothing else does
21. Line plot now shows times in day:hour:minute format
22. Patient State graph now has "By Percentage" option
23. Added Export Dashboard Data GUI
24. Blocked state is now called WaitingToSend
25. Location Census and Throughput can now report for individual locations
26. Added Patient Throughput dashboard widget
27. Added "Duplicate Graph" option to the right-click menu in the dashboard
28. Added Elevators to Resource State/Utilization graphs
29. A box plot with a single period can define a range of hours to report
30. Added functionality to Track Manager GUI, simplified the Advanced Functions
31. Added spinners to Source arrival/sequence table GUIs
32. Added Location and Patient Throughput box plots
33. Simplified naming of new Global Processes and Tracks
34. Custom sample sets automatically have "Custom_" added to their names
35. Dashboard widget GUIs are opened in better places on the screen
36. Minor cleanup to the Model Documentation GUI
37. Added custom scaling to the Floor Plan import wizard
38. getareastat() has been deprecated - use getnumlocations() and getcensus()
Bug Fixes
1. Various fixes for GUIs (thrown exceptions, control placement, etc.)
2. Visual tab is now consistent across non-patient objects - removed the unit-conversion controls
3. Removed THIS_GROUP from the pick-option generated for Home Base selection
4. Item Object Stats tab now shows state information correctly
5. Patient Census no longer throws exceptions if only 1 period was selected
22
6. State and Utilization dashboard widgets have the correct state lists
7. The toolbar in the Dashboard can be clicked to take focus from a widget
8. Datasets are now updated automatically more intelligently
9. An idle elevator should no longer steal requests that are already scheduled for another elevator
10. The Dashboard does a better job of saving and loading dashboards with tabs
11. Opening saved Dashboard does a better job of creating sample sets if needed
12. Changed default priority for maintenance task sequences to 150
13. Fixed a bug when maintenance staff were called to a preempting escort patient activity
14. Box plots can now plot a single value (before they needed at least 2)
15. Staff used for maintenance now start their standing animation correctly
16. Experimenter will always have at least 1 variable
17. Bar charts now expand correctly if there is only one member of a group
18. Fixed an exception that occurred when saving a file after a replication
19. Fixed an exception in the Milestone-to-milestone Histogram
20. Text display widgets no longer show decimals for integer values
21. Census box plot is more accurate when there are no arrivals during a period
22. Average Milestone Time and Wait Time calculations are more accurate now
23. Milestone and milestone-to-milestone box plots are more accurate now
24. Item Objects have a Connections tab again
25. FlowCharting tool does a better job of managing connections for item objects
26. Changes to port order on item objects is no longer lost in the FlowChart GUI
27. Bar charts now show the name of a sample set, even if that set is pointing to a set with a different name
28. Bar charts show the name of the sample set, not the group being displayed
29. Location/Resource State/Utilization show data when the sample set names don't match the group
names
30. Experimenter takes Model Start Time into account better
31. Census and Throughput widgets take warmup time into account better
32. Box plots only set their visible range based on confidence intervals if the graph is actually showing
confidence intervals
33. Improved vertical spacing in bar charts if there were values of 0
34. Fixed undo capability in some GUIs
35. Improved how/when census values are recorded or calculated
36. Fixed object GUIs so that text isn't displayed when the shape is changed
37. Fixed bugs in the naming of Global Processes and Tracks
38. Census of an area is incremented when a location in the area is reserved
39. Improved the output tab of the Experimenter
40. Removed a lot of legacy code and nodes used with old dashboards
41. Staff no longer travel up/down when they pick up flowitems
Version 4.0 (April 2013)
New Features
1. Added the Recent Files menu option.
2. Changed the Experimenter so that it performs multi-core experiments.
3. Item objects can now have their connections edited in the Flowchart GUI.
4. The order of an Area's downstream areas can be edited in the Flowchart GUI. Double-click on an Area,
the downstream areas can be dragged around to change their connection order.
5. The connection order of locations in an Area can also be edited.
6. Arrival objects can now be stopped with the setnumlocations() command and with the OnTimerEvent of
Areas.
7. Entirely new Dashboard and widgets and integration with Experiments.
23
8. Added commands to handle the new bundle data type
9. Floor plans can now be .dwg files.
10. Layers on .dwg floor plans can be hidden/shown, or have their color edited.
11. Floor Plan wizard now has a "Scale" field to make resizing the drawing easier.
12. Down and Resume functions for Interrupts and Shift Schedules have been improved.
13. Item/Message Destination and Item Created Trigger have been added to the Global Process Advanced
Function Editor.
14. When an object name changes, references in patient tracks and global processes are automatically
updated.
15. When an activity is renamed, Resource Requirements that refer to it are updated.16. Models now pack their media by default.
17. Added Lab and Workbench to Patient Processing objects' shapes.
18. Revised shape lists for Item objects.
19. Wait cursor is now shown during search/replace and Excel import/export.
20. User Verification can now be disabled by the admin user.
21. Implemented a new task sequence priority tiering system. A new request will preempt an active
request if the active request is in a lower tier. Competing requests within the same tier will be executed
according to priority, higher numbers indicating higher priorities. Tiers follow the pattern:
1. Tier 1 0-99
2. Tier 2 100-199
3. Etc.
22. Added new staff states: Break1, Break2, Lunch.
23. Added or improved keep/releaseresource() and reserve/releaselocation() commands.
24. Kept resources now have a colored square around their base - the color matches the color of the
patient keeping the resource.
25. ElevatorBanks now update the OnArrival code on their nodes (assumes that the nodes still have the
default code).
26. PatientProcessing objects are now shown with a base and a red border when they are set to be
unavailable in the FlowChart view.
27. Added a button to the FlowChart view that toggles between Patient and Item object views.
28. Changed the default condition in the Travel To Home Base pickoption so that staff don't go home if they
are kept.
29. PCI Table is now available for Excel import/export.
30. Labels in the PCI Table can now be given lists or tables.
31. Removed Elevator's default OnLoad code.
32. Changed how travelers are placed in an Elevator.
33. Fewer errors are shown now if the user reaches the model limit in demo mode.
34. Advanced Function Editor GUI now ensures that there is default code when the code edit button is
pressed before the template button.
35. Patient datasets in the Dashboard are automatically created/removed when PCIs and Scenarios are
created/removed.
36. Track Resource tables now have a <placeholder> option.
37. Dashboard widgets that implement the Box Plot chart now have pop-up data to show the actual values
in the chart.
38. There are now three kinds of reporting datasets: Patients, Resources, Location. These are used in
dashboard widgets so that they can record data during experiments.
39. PatientProcessing objects are now placed in WaitingForMaintenance state until a staff member arrives
to perform maintenance.
40. Added Maintenance Start and End triggers to PatientProcessing object.
41. The PatientProcessing maintenance table can now have "patient" and "location" used in the staff and
time functions.
42. Added a Box Plot graph for Patient Travel Distance and Area Census dashboard widgets.
43. New GUI and pickoptions for User-Defined dashbaord widget.
44. Removed Tracks and Processes tabs from Track Manager and Global Process Manager GUIs.
24
45. When the Patient Destination function is reevaluated by the Entrance Criteria, param(3) is set so that
these reevaluations can be distinguished from normal calls.
46. Added buttons to GUIs that open Google 3D Warehouse so the use can search for .skp files.
47. Added the Desk to the library as a nice visual for models. (It can not be used as a location - it is simply
there for visuals.)
48. Updated triggers tabs of GUIs to use newer, better-looking GUI controls.
49. Updated Advanced Functions GUIs for Track Manager and Global Process Manager to use newer GUI
controls.
50. Removed "Triangle" as a patient display mode.
51. Added global preferences to show/hide the indicator boxes for Kept or OffSchedule resources.
52. Implemented new and improved task sequence handling behavior.
53. Added "Custom Request Selection Process and Idle Staff Handling" pickoption.
54. Added new 3D shapes and animation for patients. This includes patients with slings, crutches and
wheelchairs.
55. Added new 3D shapes for locations including: Licac, and Phone.
56. Added other shapes that can be browsed for including: clothes hamper, sink.
57. Removed Connections and Members tabs from many resource and group GUIs because the
complicated connections schemes are no longer valid.
58. Added Global Variable display to the Text object.
59. Elevator travelers are placed randomly around the network node connected to the Elevator while they
wait. This helps the user see how many are waiting. They are also placed randomly inside the Elevator.
60. User's Manual now has a nice "Welcome to FlexSim HealthCare" page when it is opened.
61. Added "Node Value" experiment variable type.
62. Added experiment variable type to activate/deactivate arrival modes on an Arrival object.
63. Added experiment variable to copy data from a Global Table to an Arrival table.
64. Changed the numbering scheme when activities are inserted between two existing activities.
65. Updated "Choose from a list of destinations based on various selection criteria" pickoption.
66. Census and Throughput are now tracked at each location and area by PCI.
67. Added a lot of functionality to getcensus() and getthroughput() commands to report the new tracking.
68. Replaced old getcensus() and getthroughput() calls with gettrackcensus() and gettrackthroughput()
calls.
69. Added Output tab to Experimenter to show the output and system console output from experiment
replication runs.
70. The Experimenter now shows a message if any exceptions were reported during experiment runs.
71. New default background and grid colors.
72. New background and grid colors available in the Background Color menu option (right-click on the
model).
73. The getcensus() and getthroughput() commands can be used to get information by PCI for locations,
areass, and model.
74. Activities created between two activities that already exist are assigned numbers in a better way.
75. Developed a standard down function for resources with many new options (i.e. maxdelay, extendbreak,
down/resume states, locations, variance, etc.).
76. Improved random placement of staff at locations other than primary group, and staff snap to non-
primary group locations at model start if off schedule.
77. Colored floor shows for staff on break/lunch as well as offschedule now.
78. Default priority for activities in Tracks and GlobalProcesses is 150.
79. Old models have the activity templates for Tracks and GlobalProcesses changed so that the default
priority is 150.
80. Added copyobjectcolor() command.
81. Added "Resource Request Selection Policy" and "OnResourceIdle" fields to Groups.
Bug Fixes
1. Changed CheckLocationAvailability() so that it checks a Queuing Area's maxcontent variable correctly.
25
2. Added a default activity to some of the Next Activity picklist options.
3. Fixed Process > Send Item activity so that it calls the Item Created trigger.
4. Periods in Custom Arrivals that overlap or are defined out of order are handled better.
5. Custom Arrivals repeat intervals have been improved.
6. Improvements to pickoptions and GUIs.
7. Global Settings can now be accessed when in trial mode.
8. Popups work in template windows again.
9. Number precision is now handled better when switching from one model to another.
10. Bitmap on Edit Schedule button no longer disappears randomly.
11. CloseOutputFiles() is now called correctly when a single run ends because of a finish time.
12. Fixed a bug in importing/exporting of Patient Track and Global Process .fst files.
13. Changing a track's shape no longer prints useless information to the Output Console.
14. Updated Patient Queuing areas so that they are chair and bed layout is easier to edit. Old models will
need to be updated manually.
15. New dashboard widgets are always placed above the others.
16. Fixed a bug that was causing staff to go to their homebase when they reached a 'Break' task.
17. Varioussmall fixes to dashboard widgets.
18. Experimenter's "Go To Scenario" button now works correctly.
19. Track Manager's Advanced Functions GUI is kept up-to-date when different tracks are selected.
20. Fixed an exception in the Object Tracker that was thrown if an Alternate Group was connected to
another Group.
21. Fixed a bug that was preventing staff member from taking task sequences from their tasksequence
queue in priority order.
22. Various GUI updates.
23. Wall posts are now drawn centered along the wall.
24. Floor Plan GUI now shows all 5 types of image files that it can support.
25. Old Milestone stacked bar chart now resets the throughput values at the end of the warmup time.
26. Various pickoption fixes.
27. Fixed the Rounds pickoption so that it doesn't throw exceptions when equipment isn't used.
28. Patient Milestone dashboard widget GUI now keeps its milestone list more in sync with the model's
master list.
29. Patient Wait Times dashboard widget no longer allows Groups and their Members to be selected at the
same time.
30. Updates to command documentation.
31. New blocks in the FlowChart view should never be hidden behind other blocks.
32. A user can now select "none" in the PatientProcessing maintenance table.
33. The Recent Models menu is now empty when FlexSim Healthcare is first installed.
34. Patient Processing object no longer change state if they are in the OffSchedule state when the
processing time finishes.
35. PatientProcessing objects no longer use the Blocked state.
36. PatientProcessing objects now treat the Interrupted state like OffSchedule when maintenance is
needed.
37. Fixed some problems in the User Events GUI.
38. All attempts to Copy/Paste in the FlowChart GUI are now ignored.
39. Saving Default Workspaces works better now.
40. Time displays should not show X:010 or X:60 anymore.
41. Time displays are not rounded to the nearest minute (real clocks don't round, this shouldn't either).
42. The "Patient's Name" display mode no longer shows extra information over a patient's head.
43. Fixed syntax errors in many pickoptions.
44. Converted workbench.wrl to a .3ds file to avoid reported crashes.
45. Triggers should always have at least header text when the Edit Code button is pressed.
46. Staff, Equipment, Transports now clear their keepingpatient variable correctly if they were kept by a
Global Process.
47. Removed "Add Table to MTEI" button from several GUIs.
26
48. Created some new text displays and fixed others (divide by zero error).
49. Consolidated default Entrance Criteria for PatientQueuing, PatientProcessing and PatientExit into a
function called DefaultEntranceCriteria().
50. Fixed how Hourly Arrivals assign PCI so that the "row" variable can be used correctly in the PCI
function if there is a start time defined.
51. All triggers should have header text added to them when an pick-option is selected from the list.
52. Logic Builder should be disabled by default, and can't be turned back on.
53. The totals output file is now recorded when the box is checked.
54. New activities in Tracks or Global Processes now have the same number of leading spaces in their
names as the activity before them in the list.
55. Cleaned up or fixed various GUIs and pickoptions.
Version 3.14 (June 2012)
Bug Fixes
1. The Scheduled Arrivals mode on the Patient Arrivals object sets the ApptTime label correctly again.
2. Added getelapsedtime() command. This returns the amount of time that has passed since either the
model started, or the warmup time ended.
3. Used getelapsedtime() in a number of utilization calculations and picklists including:
o Area Occupancy
o Staff Group Utilization
o Group Member Utilization
o Object State
o User-defined values and Custom Displays
4. If code is edited but does not have any template code in it, it is given "Custom Code" text automatically.
Version 3.12 (May 10, 2012)
Bug Fixes
1. Fixed GlobalProcesses so that they do not throw exceptions when they occur
2. It is no longer possible to import a model that was made in a different version
3. The Help button on the Path Node's Parameters window now opens the correct help page for each tab
4. Updated the comment header on several pickoptions so that GetRequiredGroup() is demonstrated
5. Added some commands to the documentation
6. Fixed syntax errors in the Activity Start Condition pick-option called "No Staff Currently Allocated to
Activities in List"
7. Fixed syntax errors in "Stop or Resume Flow" pickoptions
8. The GlobalProcess Parameters GUI no longer shows the "There is already an object named X"
message when it shouldn't
9. Fixed the getwarmuptime() command so that pick-options that calculations that are based on warm-up
time are more accurate.
10. Fixed a bug with the numeric precision being set to 0 (which, in turn, caused other problems in a
model).
11. Updated the Area Occupancy Level dashboard widget so that it is update when the model stops
running.
12. GlobalProcesses now have global variables created to point to them when a model is opened.
13. Changing the name of a Location in the model will now change most references to that Location in
Global Processes and Tracks.
27
Version 3.1 (April 6, 2012)
New Features
1. Updated the Track Manager so that certain fields are disabled and/or cleared out when needed.
2. Added SortModel() command and included the functionality in Tools|Maintenance.
3. The ItemConveyor is no longer a roller conveyor by default. It is now a more abstract series of arrows.
4. The help now includes commands that start with capital letters in the index pages.
5. Added getobjecttype() command.
6. Updates to model update code.
7. Added checkbox to the Predecessor list in the Track Manager and Global Process Manager so that
users can easily enable/disable predecessor lists.
8. Added "Dispatch Companions" pick-option to Message Received trigger.
9. Added an arrow on the floor of the WaitingArea and WaitingLine so that the user can easily see what
direction the patients will be facing.
10. Removed a lot of unnecessary fields from the Staff/Equipment/Transport Advanced Editor GUIs.
11. Added "Create Activity for Multiple People" pick-option.
12. Added getnumresources() command.
13. Patients now record how long they had to wait for Locations or Resources to become available. This is
available in the output files.
14. Added "Total Wait Times by Track" stacked bar-graph to the Dashboard.
15. Added new 'scale' shape for Patient Processing objects.
16. Added Infant Scale 3d shape (not yet available in the drop-down list).
17. Added ClockTime column to output files.
18. Updated Tutorial models.
19. Added "Based on Location" and "Center Port connection" pick-options to some Advanced Functions for
tracks.
Bug Fixes
1. Put some 3d shapes back in that were missing from 3.0 (baby, baby in bassinet, man in bed, woman in
bed).
2. Redesigned the "Based on Probability" pick-option so that the user can select the number of entries in
the array. This fixes an error that was reported frequently that said that the percentages didn't add up
to 100.
3. The Excel import process no longer reports "Import Complete" if something didn't import correctly.
4. Fixed the .csv and .txt files that are generated when a Track is exported. There were problems when a
file was exported, edited in Excel, saved, and then re-imported.
5. The warning message in the Shift Schedule GUI about Groups and Members is no longer shown at
incorrect times.
6. Fixed the ItemConveyor's GUI so that it highlights/de-highlights the selected conveyor section correctly.
7. Fixed the Item objects so that their table shape is shown now.
8. Changed the Item objects so that their default shapes are allcolor-changeable.
9. Removed extra print statements.
10. Fixed an exception that could occur when tasks were re-dispatched from Groups to members.
11. Fixed an exception in the Experimenter results that occurred if all replications returned the same
number.
12. Fixed the TaskExecuter (staff, equipment, transports) so that they can be preempted if they are kept,
but are idle.
13. Fixed a bug that was causing Shift Schedules to not repeat correctly in some cases.
14. Fixed a bug in the 2.7-3.0 model update code that was placing PatientProcessing objects at z-location
of 0, instead of whatever z-location they previously had.
15. The Message/Item Destination field can now use its access variables correctly.
28
16. The Message/Item Destination field can no longer use "patient's location" as a drop-down list. (But the
location can still be selected in the Advanced Functions.)
17. Fixed a bug in the PatientQueuing object that was causing a single patient to be "released" multiple
times.
18. Updated/clarified some tooltips throughout the GUIs.
19. Fixed a bug in the Custom Arrivals that was causing extra patients to arrive if two time periods started
at the same time.
20. Users no longer need to press "Apply" in order to have the PatientArrivals Parameters GUI recognize
the difference between two arrivals in the Appointments tab.
Version 3.0 (January 30, 2012)
New Features
1. The PatientQueuing Layout tab has been updated to be easier to use and to allow the user to specify
the direction that rows of chair face.
2. Added "Milestone Times (by Track)" dashboard widget.
3. Various improvements to graphics and animations .
4. Updates to the default Entrance Criteria that will allow patients who have a room reserved to safely
enter objects that are upstream of their reserved room without negative consequences.
5. Shortened the default list of milestones.
6. Added password-based login.
7. Added user audit log support.
8. Added Object Tracker GUI (Tools|Debugging|Object Tracker).
9. Placing a new object on a Display that is acting as a floor will automatically create a selection set
named after the Display (if needed) and will add the newly-created object to the set.
10. Multiple staff that are required to be at the same node in a path will spread out.
11. Changed the behavior of the Appointment and Custom Arrivals tables in the GUI so that the user can
use the arrow keys while editing time cells.
12. Removed unnecessary pick-options from several pick-lists throughout the software.
13. Added many new pick-options throughout the software.
14. Fixed problem of equipment being deallocated too early in a MoveEquipment>Process activity, and yet
it's state is still utilized.
15. Improved patient overhead display.
16. Added activity start times to patient's Paramters GUI for ongoing activity display.
29
17. An open Patient GUI now displays the patient correctly, no matter where it is in the model.
18. Patient Destination can now be a specific location as well as an Area.
19. ItemArrivals now have batch arrivals as part of their interarrival time.
20. Itemtype field for ItemArrival's interarrival time mode can now be an expression.
21. New icons and splash-screen graphics.
22. New "Patient Rounds" pick-option for Custom Activities.
23. Floors are hidden by default for many location types.
24. Modified floor and object colors for improved color separation.
25. Lightened area block colors in order to read the area names in the Flowcharting GUI.
26. Removed "Group" from the default name for equipment and transport groups.
27. Patient Classification tab, originally implemented as part of the Patient Arrivals object, has been moved
to the Track Manager. This serves to better organize settings that belong to patients in the model, and
also fixes a bug that would sometimes cause multiple arrival objects with individually configured PCI
tabs to conflict.
28. The previously required action of making manual connections from Path nodes to patient location
objects has been supplimented with a check box on the object's properties. You may still create manual
connections between objects and Path nodes, including group objects.
29. Added check box for “Arrival at time 0” on the Interrarrival Times tab .
30. A new Item Conveying object has been added to the Library of Objects.
31. Added a new Patient Processing object shape: Bathroom.
32. The Stop Watch icon on the toolbar has had its features expanded. Click the Stop Watch now opens a
small dropdown window of available runtime options for the model. Here you will find the model Start
time definition, the model Warmup Period length and the model total run length.
33. Some error messages related to Activity IDs and names have been removed in favor of silently fixing
the warnings rather than displaying an error pop up every time.
34. Display objects:
A time Display object will be created automatically for new models, located in the upper right
hand corner of the grid.
New pick options for the Display object have been added to support different time display
formats.
30
Management of Display objects has been moved to a new drop down menu element in the
toolbar, to the right of the run speed slider. From here you may create new Display objects and
more easily manage existing ones.
Display objects now have a non-selectable option added to their Properties tab
35. Changed the name of the EmergencyBed to Gurney. Only new instances of objects with this shape
should be affected.
36. Replaced the Allocate/Deallocate Activity types with the more flexible “Custom” activity type. Old
models that used Allocate/Deallocate, should not be affected.
37. Elevators:
The Elevator object has been redesigned and renamed “Elevator Bank” to allow a Group of
elevators to work together more seamlessly.
Elevators now take into account the size of the traveler and the anything it is holding to
determine how much space travelers take up.
38. Added the ability to view and edit the number of active locations in an Area via the Flowcharting tool.
39. Due to limited and often misunderstood functionality, the Allocate Patient check box on all activity
properties has been removed and replaced with additional picklist option under the Advanced
Functions. Only affects new models, older models will have that feature preserved.
40. Added increased appearance customization options to Staff members and Patients.
41. Added new pickoptions (including options to add/remove accessories from a patient)
42. New options to the Staff Requirement table on the track manager, including the new "Keep" feature
43. Extensive revisions to the code behind the scenes for all the activity types which should improve patient
state management and runtime performance.
44. Added a terminateactivity() command that is a more complete way of forcing an activity to be completed
vs finishactivity() which wasn't intended to be used in this manner.
45. Improvements to the way repeating activities work.
46. Added an Advanced Function for using an expression to define the item/message destination.
47. Integration with the FlexSim 5 Engine.
48. New undo (Ctrl-z) /redo (Ctrl-y) capability.
49. New debugging capabilities, including:
50. An in-line, step-by-step Flexscript debugger. Just go to the code editor and click in the left margin to set
a break point.
51. More strict syntax rules for Flexscript, including parameter cardinality and type checking.
31
52. An event log that lets you see all events that have fired in the model, filter those events, export them to
csv, etc.
53. An event list that gives youa view of the list of pending events.
54. A Flexscript code profiler that lets you see what Flexscript functionality is being called, how often, and
how much time is being taken up.
55. A new Animation Creator that allows you to create movable sub-components of objects as well as
custom animations for those sub-components.
56. New .skp 3D file import capability, for using files from Google Sketchup and Google 3D Warehouse.
57. Improved 3D refresh rate.
58. Improved compatibility with ATI, NVIDIA, and integrated graphics cards.
59. New software-based licensing using Flexnet.
60. Faster and more seamless compiling process, with no creation of a new FlexSim instance.
61. Fixed compiling issues for Windows Vista and Windows 7
62. More detailed, navigable and configurable Experiment reporting, with additional histogram and
correlation plots.
63. Support for png, ico and gif texturing on 3D objects, allowing transparency without requiring the .tmp
and .tpg files.
64. New all-in-one code editor with tabbing and an apply button.
65. Improved interface for defining Conveyor layout.
66. Fixed AVI Maker for Windows Vista and Windows 7.
67. New and improved xml save features, allowing multiple developers to work on the same model
simultaneously, as well as better integration with version management systems.
68. Various improvements for advanced modelers and developers.
69. Much more intuitive manipulation of objects in the 3D view.
70. Users can now click on objects below the grid plane.
71. Improved support for traversing window controls with the keyboard.
72. Improved Find/Replace in Tree feature.
73. Improved refresh rate on table views.
74. Fixed a crashing issue with auto-completion hints.
32
75. Fixed a bug with renaming labels.
76. Fixed an issue with spline points being invisible if the 3D view has a black background.
77. Several new Flexscript commands for string parsing.
78. You can now Ctrl-Tab to switch between open windows.
79. FlexSim's 3D view now has a "hover" highlight so you can see what object is under the mouse.
80. More descriptive exception handling.
81. Added TASKTYPE_STARTANIMATION, TASKTYPE_STOPANIMATION, and
TASKTYPE_FREEOPERATORS.
82. Animation of the 3D View continues while panning/zooming.
83. Various minor fixes and improvements
Bug Fixes
1. Fixed a bug with the Global Processes (formerly Global Activity List) that sometimes allowed activities
from previous runs of the model to stay active in subsequent runs, causing unexpected activities to take
place.
2. Changed the name of the “Pass to” property on Group objects to “Task Assignment Strategy” for clarity.
3. The AVI maker now warns users to of Microsoft Vista and Windows 7 to switch to the “Basic” or
“Classic” theme during recording, as special window effects and transparencies can cause performance
issues.
4. User Events can now accept the “00:00:00” time string formatting in the First Event Time property field.
5. Fixed a bug that would sometimes cause a Milestone to be created from the “select or add new option”
if it was selected from the Milestone drop down menu.
6. Increased consistency of object properties tabs; the Stats tab is now correctly displayed for all objects
and any objects that had a General tab, it has been renamed to Visuals.
7. Fixed a bug with the Output files option that could cause a crash when trying to write to a file that has
not been opened yet.
8. Fixed a bug in Staff Groups OnResourceAvailable trigger that incorrectly managed a Staff member's
return to home base functionality when carrying more than one Item.
9. Fixed a bug when “Verbose” is checked when creating Model Documentation from the View menu that
would cause the program to crash.
10. Fixed a bug that would incorrectly display an error message when clicking on a Spline point, after
creating a new Path node that has a connection.
33
11. Graphical display of reporting variables, such as Milestones, performance measures and Dashboards
will only be drawn if the value is greater than zero.
12. Fixed a bug that sometimes wouldn't allow the user to rename Model Layouts from the Utilities tool.
13. In the Experiment Manager, switched placement the “Replication: “and “Scenario:” fields for increased
clarity.
14. Fixed a bug when using the toolbar run control buttons (Stop, Run, etc.) with an Experiment running,
that would cause random numbers preferences to be incorrectly set.
15. Fixed a bug that could cause a saved model with an Experiment defined, to have its start time
interpreted incorrectly upon opening the model.
16. Fixed a bug in the Performance Measures tab of the Experiment manager that would cause
Performance Measure names to not update when the Apply button is clicked.
17. Fixed a bug in the Experiment Manager that would cause a syntax error upon opening a saved model
that had an experiment variable that used the XX replacement system.
18. Fixed a bug in Performance measure calculations that would not properly account for locations or staff
that were disabled as part of experiment variable. Calculations were being made based on the total
number of staff and locations, rather than the actual number available.
19. Fixed a bug that would require at least one Experiment variable to be defined if the desire was to simply
run multiple replications of the model, as is.
20. Fixed problems found in updating v2.77 models to v3.0.
21. Fixed several minor bugs in user interfaces.
Version 2.771 (Sep 17, 2010)
New Features (v2.771)
1. Added the following picklist options for the Activity Finished Trigger:
2. Send Staff to Home Base
3. Occupy and Reserve Transport
4. Position Patient on Transport
5. Position Transport at Location
6. Added a new picklist option for the Process Location field titled: Reserve Location
7. Added a new User Condition to the Pass To field option that checks whether the candidate's "reserve"
label is currently zero.
34
8. The simulation minutes displayed in the status bar at the bottom of the screen now takes into account
the user-defined simulation start time.
9. The ApptTime and ArrivalTime labels of a patient take into account the user-defined simulation start
time.
10. Added two new commands: getsimtime() and getsimstarttime()
Bug Fixes (v2.771)
1. Fixed problem with Shift Schedules rolling over from one week to the next.
2. Fixed problem with patient overhead displays disappearing at the conclusion of a transfer activity.
3. Fixed the legend on the Milestone Chart of a patient's Properties window.
Version 2.77 (Aug 13, 2010)
New Features (v2.77)
1. Added a new time series graph to dashboards for plotting patient attributes, object states, object
variables, and global variables over time.
2. A patient’s total distance traveled is now recorded automatically. Options have been added to show
distance traveled for both patients and staff in output files and dynamic dashboards.
3. Added a picklist option to the “Pass To” field of resource groups that selects resources in a round robin
fashion according to their availability.
4. Added a picklist option to the Activity Started Trigger that allows the user to choose a resource used in
a previous activity step for the current activity.
5. Added a direct link in the Help menu to the new community site created specifically for FlexSim
Healthcare users.
6. Further refinements have been made in an effort to keep staff members from standing on top of each
other when multiple staff are performing independent process activities at the same location at the
same time. If multiple nodes are connected to the common location,then the staff member will travel to
the first, second, third etc. node connected to the location based on whether there are none, one, two,
etc. active tasks underway respectively at the time the staff member is called.
7. Output data files can either use decimal points or decimal commas based on the country settings of the
computer. In addition, both numeric and text label values can now be written to output files, and there
are several good examples for defining Custom Fields within the Output Data Settings interface.
8. Patient and Patient Processing object state profiles have been expanded to include more states (see
user manual for more information).
9. The simulation start time can now be defined in minute resolution using Tools> Simulation Start Time
menu option.
35
10. An option has been added to the Hourly Arrivals tab of the Patient Arrival’s Properties window allowing
the user to specify whether patient arrivals are equally spread or randomly distributed across the
hour. Previously, the arrivals were always distributed randomly across each hour.
11. All patient transfer activities now require the allocation of the patient prior to the start of the transfer.
This will allow the user more control over when a transfer activity occurs in relationship to other
activities that also require the allocation of the patient.
12. Revisions have been made to the online User Manual, including new tutorials.
13. An optometry chair has been added to the list of 3D shapes available for a Patient Processing object.
14. Two new picklist options have been added to the Activity Start Condition field which allows for the
inclusion/exclusion of a specific activity completion.
15. The picklist option titled "Choose from a list of areas" for the Patient Destination field is now extremely
powerful with its list of selection rules. This option also allows for the continuous reevaluation of the
Patient Destination field whenever downstream locations become available.
16. The optimization tool called OptQuest is now available as an optional add-on to FlexSim
Healthcare. To learn more, follow this link: http://www.FlexSim.com/products/optquest
Bug Fixes (v2.77)
1. The “Entrance Criteria for Next Patient” field for a Patient Queuing object wasn't being checked when a
patient to be escorted to another location defaulted to traveling unattended to the Patient Queuing
object when no staff member is available. This has been corrected so that now the entrance criteria
must be met before travel to the queue is allowed.
2. Fixed problem where defining a Repeat Interval for an activity on a patient track would cause errors at
the time the patient exited the model. It is now possible to stop a repeating activity with the
finishactivity() command now as well.
3. Added exception handling when staff are not correctly defined, or broken references appear as a result
of using “same as above activity” or “previous from group” staff selection options.
4. Time series dashboard graphs now take into account simulation start times as defined by the Tools >
Simulation Start Time menu option.
5. Corrections have been made to the stop time field on the main toolbar so that it will correctly display the
stop time defined in a model immediately after opening the model. The stop time field will also continue
to display a stop time in dd:hh:mm format (if so entered in that format) rather than convert it into
minutes. As before, the stop time needs to be entered in terms of any offset to the start time as defined
in Tools > Simulation Start Time.
6. The Move Equipment/Transport Process activities have been updated to use the same travel rules as
the Process activity in terms of how the staff choose between multiple path nodes connected to a
location to travel to, and whether to offset travel from a node to a patient within a location.
7. Fixed problem with the vertical scroll bar in the track manager’s activity list box. The scroll bar no longer
jumps when selecting activities at the bottom of a long list.
36
8. Fixed the “Patient Rounds” picklist option in the Activity Finished Trigger. Equipment (if used) are now
allocated properly before the start of the rounds.
9. HC based states are now updated on staff members when they are called by Item Class objects for
processing and/or transporting purposes. Previously, HC states were only updated on staff members
called as part of a track activity.
10. Fixed a problem that could occur in the unlikely event that two or more transfer activities were spawned
simultaneously for the same patient. Now a check is made to ensure that only one transfer activity can
occur at a time for the same patient.
11. All patient transfer activities now require the allocation of the patient prior to the start of the transfer.
This will allow the user more control over when a transfer activity occurs in relationship to other
activities that require the allocation of the patient directly.
12. When an activity is added/removed from the activity list in the Track Manager, it now correctly
renumbers any "Assigned Activity ID" fields as needed.
13. PatientProcessing objects that are reserved for the patient's return, now correctly transition from a
"Blocked" or "Occupied" state to a "Holding For Patient" state.
14. Fixed problem with updating old models occurring on one or two user's computers where the main view
panel would become unresponsive.
Version 2.75 (May 31, 2010)
New Features (v2.75)
1. Added a Multi Line Text Box widget to dashboards.
2. Added a new option for the Patient Destination field called "Choose From List of Areas" which will
choose from a list of areas based on one of two user-defined selection rules: "First Available Location"
or "Fewest Occupied Locations".
3. Added a new option for Activity Started/Finished Trigger called "Assign Staff Based on Patient's Current
Area".
4. Added a new option for Activity Finished Trigger called "Record Staff Used by an Alternate Group".
5. Added a new option for the Send To field of Item Class objects called “Based on Patient ’ s Location”.
6. Previously it was necessary to refresh connections in the model by reopening the Flowcharting tool and
closing it after a new object was added to the model, or the area of an object was changed. From now
on, if a new object is created in the model or an object's area is set to an existing area in the model that
already has connections established in the Flowcharting tool, the object is automatically connected
according to the connections associated with its new area.
7. The Auto Connect button found in the side bar of the Flowcharting tool was replaced with a Refresh
Connections button.
8. Added a Stop/Resume Arrivals to the Down/Resume Functions for Shift Schedules.
37
9. A simulation start time can now be defined globally in Tools> Simulation Start Time instead of on each
of the Shift Schedules as was necessary previously.
10. You can now define a simulation stop time on the toolbar using 00:00:00 format taking into account a
modified simulation start time.
11. The warmup time and simulation run time defined in an Experiment now take into consideration a
modified simulation start time.
12. There are now user-defined dashboard options for a stacked bar chart.
13. A user-defined option for a line graph dashboards has been added called “Patient Data Categorized by
Label” which uses an option named “Record Patient Data” found in entry/exit trigger fields to record
patient data during a run.
14. Created a shorter list of commands in the Help menu titled “Most Used Commands”.
Bug Fixes (v2.75)
1. Fixed the problem discovered in the basic training model with patients not continuingon to Xray
sometimes from their treatment rooms. This bug occurred in the function responsible for transferring a
patient from one location to another only if the patient was not able to transfer immediately, but must
wait for both an available location to transfer the patient to AND an available staff member for escorting
the patient.
2. Reinserted the "Patient Rounds" picklist option in the Activity Finished Trigger field (it was accidentally
removed from the 2.703 release).
3. Fixed problem where a patient not using path network walks several feet off the floor from locations
with custom shapes.
4. Fixed problem with patients standing off the floor in locations with <none> chosen for their shape.
5. Redesigned the Appointments tab slightly for the Patient Arrivals object properties window, and rewrote
some of the tooltips.
6. Fixed problem with the Item Destination field not showing the destination entered by the user when the
Track Manager was first opened.
7. Creating/Duplicating/Deleting tracks now refreshes the other tabs in the window consistently.
8. Fixed problem with importing/exporting track activity tables using the Files tab of the Track Manager
where Id's were not being converted to row numbers.
9. Renamed the Flowcharting window from "Area Connections" to "Flowcharting" like it should have been
all along.
10. Resetting the size and rotation of an object using the context menu (i.e. right-click menu) of the main
view now works properly.
11. Fixed problem with the Flowcharting window sometimes showing area blocks for Item class object.
38
12. Fixed problem with FlexSim Healthcare crashing occasionally when writing outputs to an external file
during a model run.
13. Fixed problem with the Start Time and Repeat Interval not occurring at the correct time when the
model's simulation time was offset from midnight.
14. The + button for the Activity Started Trigger and Activity Finished Trigger fields will now correctly
append rather than replace a selection.
15. The getareastat() and getstaffgroupstat() commands will now accept global pointers for the area and
group designations.
16. The "Stop Model Based on Condition" option in triggers has been repaired.
17. Fixed problem with contents of certain fields disappearing/changing when windows were resized with
the mouse.
18. Item class objects are no longer automatically connected to the previous item class object found in the
model (this cause more confusion than benefits).
19. Whether duplicating the highlighted object or a set of selected objects, the duplicates are offset from
the original(s) by 4 grid spacings in the -y direction.
20. Fixed the problem seen with Shift Schedules not going down at the right time sometimes.
21. The default "User Applied Score" found in the Pass To option for resource and alternate groups has
been changed from -gettimeinstate(candidate, STAT_PerformingTask) to 0, because it was found to be
overpowering the score applied based on proximity and yet proximity is probably the more desired
scoring criteria.
Version 2.70 (April 16, 2010)
New Features (v2.70)
1. The HASP driver install is no longer included as part of the FlexSim Healthcare software installation
function. This was done to satisfy the request of some users who needed a “silent” install of the
software. The HASP driver is needed for the dongle key to be recognized by the computer, and only
needs to be installed once (i.e. not with every new version of the software). First time users will need to
install the HASP driver through the Start > All Programs > FlexsimHC > Install HASP Driver option that
will be available after installing the FlexSim Healthcare software.
2. The free trial version downloadable from the FlexSim.com web site, can now run models of any size. It
will not allow models to be modified or saved that have more than 20 objects, 2 tracks, or 12 activities
per track. More of the Tools have been made available in the trial version, but valid analysis will
continue to be frustrated by forcing the random number generator to repeat the same stream for every
run. There are also blocks on importing and exporting data.
3. New shortcut key combinations have been added for those users who like to use the keyboard rather
than the mouse where possible. Here's a complete list of keyboard shortcuts now available in the
software:
39
Ctrl+Up arrow to increase run speed (rounds off to the nearest reasonable speed, so it's easy to
change to 1= real time, if desired)
Ctrl+Down arrow to decrease run speed
Ctrl+Left arrow to reset the model
Ctrl+Right arrow to step through events of model
Ctrl+Space bar to toggle between run and stop the model run
Ctrl+T to open the Track Manager
Ctrl+R to open the Flowcharting tool (R as in "Routes" - sorry but F is reserved for Find)
Ctrl+D to duplicate the highlighted or selected objects in the model view window
Ctrl+C to copy selected text, tree nodes, or table cells to the clipboard
Ctrl+V to paste text, tree nodes or table cells from the clipboard
Ctrl+F to find text within a text editor
Ctrl+Z to undo typing within a text editor
Ctrl+Y to redo typing within a text editor
4. The File > Import Another Model menu option, has been added to allow users to combine two or
models into one big model. This is a handy feature when multiple users are working together to build
the same model, or a single user desires to build and validate small models of individual parts of a
larger system, and then combine the models into one big model at a later date. After choosing the
menu option, a file open dialogue window appears allowing you to browse for a model you wish to
import into the currently opened model. After the import is finished a report pops up listing what was
imported and what was not. During the import process, if a duplicate track name is encountered, rather
than import the duplicate track; the activity list of the duplicate track is scanned for unique activity
names, and any unique activities are appended to the end of the existing track ’ s activity list. Global
Activity Lists are managed the same as Tracks. For all other objects, duplicate named objects are
skipped and only uniquely named objects are imported into the existing model. The report will list
exactly what was imported, what was skipped, and what activities were appended to an existing list of
activities.
5. Removed the speed control editor button from the toolbar now that shortcut keys are available for
quickly setting the run speed.
6. Toolbar buttons are spaced more uniformly, tooltips have been improved, and some icons have been
modified to improve the look.
7. Spinner controls (up/down arrows next to a numeric entry field) have replaced basic numeric edit fields
to allow the user to quickly change values with the mouse.
8. A new tool has been added (see Tools > Color Palettes) allowing you to create your own or modify
existing color palettes. Wherever color is applied in a model (e.g. patient shirts, location floors,
40
dashboard bar charts, etc.), you will be able to reference the color palettes you ’ ve defined. The color
palettes are saved with the model.
9. Unnecessary prompts to save a current model before opening or starting a new model have been
suppressed if no changes have been detected since the last save. You should not depend on the
software detecting every change to the model, and always save your model before opening or starting
a new model. Better safe than sorry!
10. Global tables, shift schedules, random interrupts and global activity lists can now be referenced in script
anywhere in a model using auto generated global variables having thesame name as the name of the
object declared in the Tools menu.
11. When a new Shift Schedule is created, it will have no operational time defined, rather than the previous
default which arbitrarily had the hours between 8am and 4pm Mon-Fri marked as operational time. This
often was overlooked by users.
12. Dashboard widgets can now be edited by simply double-clicking on the widget, and can be deleted by
simply hitting the delete key. These options are still available through the context pop-up menu
accessed via a right-click on the widget.
13. The, “Occupancy Levels by Area,” and, “Staff Utilization by Group,” dashboard widgets are explained in
detail with a context menu option (right-click) named, “View Calculation”.
14. User-defined bar charts are now recalculated on a repeating time interval specified by the user, rather
than with every screen refresh making them much faster and easier to set up. The following options are
available as a starting point for defining your own bar charts:
Group Member Utilizations
Tabular Data
Total Throughput by Area
Current Occupancy by Area
Total Throughput by Location
Current Occupancy by Location
User-defined line graphs are now possible, with the following options currently available as a
start:
Patient Data Categorized by Label
Tabular Data
15. Object Queue vs. Time graph has been changed from a line graph to a solid area graph which is a
much nicer way to view queue/time plots.
16. Reduced the number of options by consolidating options having similar behavior.
17. Alphabetized some of the longer lists of options.
18. Now that the user has the flexibility to create and define their own palettes, all triggers that change color
of objects do so using a specified color palette and index.
19. Pick option templates have been modified to improve their readability and to hide unnecessary text
from displaying in the field when the template view closes. More choices have also been added to
many of the pop-up lists found in template views.
41
20. There's a text display option for the Display object that will show the current values for year, week, day,
shift, hour and minute. Since the displayed values take into account the simulation start time as defined
in Shift Schedules, it is helpful in checking your understanding of the terms as they are used in the new,
“Based on Simulation Time” picklist option.
21. A new option named, “User Configurable Resource Selection Algorithm,” has been added to the list of
options in the, “Pass To,” field for group objects . It is very flexible and can be configured to handle just
about any conceivable requirement for choosing a resource or group to pass resource requests to.
Because of its flexibility, this new option is the default option for groups. You should consider updating
the, “Pass To,” field of groups in your existing model to this new picklist option. Be sure and review the
several default entries associated with this option to ensure they are what you expect. If you do not fully
understand the entries, open the script editor for the field after choosing the option to read more about
how the option was designed.
22. Added options for setting and incrementing labels, table cells, global variables, and patient attributes in
triggers.
23. Added option for recording patient attributes and other data in triggers.
24. Improved the options available for reading/writing to tables and external files.
25. There is a new selection choice available called, “OriginalResource,” for the, “Preempted Task
Reassignment," found in the “User Configurable Resource Selection Algorithm” option for ”Pass To”
fields. By choosing, “OriginalResource,” you are stating that you want tasks preempted away from a
resource to be given back to the same resource to be done later. The default is to give the task to the
resource's primary group to be passed to another available resource.
26. The <delete> and “Custom Code” options have been added to all advanced function fields.
27. Added a new option to the “Entrance Criteria for Next Patient” field that will only accept patients having
a specified label with a value matching a list of specified values. The option is named, “Only patients
with specific label values”.
28. The arrows connecting area blocks are sized to better match the default scale.
29. The default positioning of area blocks is improved to avoid blocks from hiding behind other blocks.
30. The default color of an Area block is a derivative of the first location within the area, but care is taken to
not have a block color so dark that its area name cannot be read. You may now change the color and
width of an area block by double-clicking the block to open a small editor.
31. The slide out bar on the left side of the flowcharting window has been redesigned to hopefully improve
understanding of the available options.
32. Area blocks can be connected with click-drag from one block to the next, or by using a click-click from
one block to the next. The yellow indicator line will now disappear after a connection is made, rather
than remain visible which caused confusion before.
33. It's now easier to distinguish between creating a brand new track with no activities and duplicating an
existing track with activities. On the Tracks tab there is now a separate button to Create, Duplicate and
Delete a track. There are also up/down arrows to change the rank of a track in the list.
34. The tooltips now describe things better and more accurately.
42
35. Some fields have been given shorter names that better describe their function. We realize it can be
frustrating when field names you've become accustomed to change, so we will refrain from future
changes unless absolutely required. Here's a list of new field names with their previous name shown in
parenthesis:
Patient Destination (Patient's Next Area)
Reserve Current Location (Hold room during absence)
Fixed Cost (Total Activity costs = ____ $)
Variable Cost Rate ( + _____ $/hr)
Allocation Priority (Resource Allocation Priority)
Preempt Resources (Preemption Rule with two picklist options is now converted to a check box)
Allocate Patient (Patient's exclusivity is required)
36. The Process Time field has been modified to allow either numbers or script to be typed directly into the
field itself, or a per-defined option to be selected from a list and then modified. The, “Choose a
Statistical Distribution,” option is handy when using a distribution function with unfamiliar parameters
because you ’ ll be prompted for the required parameters. Although this Process Time field is similar in
form to the other fields found on the Advanced Functions window, it has some differences. Rather than
click on a button (e.g. paper icon button) to open the so-called template view for a selected option to
read or modify, simply click on the top option found in the drop-down list. The top option in the list is
always associated with the current entry for the field. The “AI” button to the right of the field is used to
open a full text editor for viewing or modifying the raw script associated with the current entry for the
field.
37. Activities will automatically have the activity ID attached as a prefix to the name of the activity. When
the activity ID is changed, the name is automatically updated with the new ID number. Hopefully, this
will help users avoid mistakes made in declaring predecessors by reading an activity's name rather
than its actual ID number, because the two will now coincide.
38. With the recent changes made to the Track Manager, the need to access the Advanced Functions will
be infrequent.
39. Expressions can now be used in both the Start Time and RepeatInterval fields for an activity. This will
allow you to use statistical distributions to define the times if desired.
40. A slight change to the timing associated with checks to start an activity has been made. When the list of
activities is scanned for possible activities to start, only the predecessors and start time of the activities
are checked. All activities passing these two checks will be considered for an actual start. It's at this
time that the Activity Start Condition will be checked to determine if the activity can continue.
Previously, the start condition was evaluated at the same time as the other two checks during a scan of
the entire activity list; however this limited flexibility with activities being repeated. Each repetition of a
repeating activity will now check the condition before starting, but will continue with the repetitive chain
of events regardless of the condition of a single repetition. The startactivity() command also checks the
start condition for an activity before actually starting it.
41. A new activity type called, “Decision Point,” has been added for use when a decision between two or
more activity steps in a track needs to be made during run time. This is the formalization of an existing
option to declare the next activity to begin upon completion of a current activity using the, “Next
Activity,” field found in the Advanced Function editor for all activity types.
42. Previously, when the “return” box was checked for Equipment or Transport resources used in an
activity, the return request was dispatched to the first staff member involved in the activity upon
completion of the activity, regardless of any other considerations. The return functionality now works
43
this way: Upon completion of the activity, a return request is only generated if there is no other
allocation request pending for the equipment/transport involved. If the return request is generated, and
the involved staff member is allocated to another activity, then the return request will be dispatched to
the staff member'ss primary group. In addition, if the primary group is also a member of a group such
as an alternate group, then a quick check of the primary group's other members will be made, and if no
other members are currently available, the request will be dispatched to the alternate group. In all
cases, the original activity with the, “return,” box checked is considered complete at the end of the
process time, and the return task is considered a totally separate and independent task.
43. A change has been made to the way resources are selected when a, “previous from…” option is used
to define an activity's resource assignment. Until now, and regardless of the state of the resource, the
resource request was always dispatched to the first resource from a particular group previously used by
the Patient. Now, with one exception, if the resource member used previously is in an, “Off Schedule,”
state at the time of the request, the request will be dispatched to the primary group of the resource. If
the primary group is also a member of a group, such as an alternate group, the other members of the
primary group are checked first for an Off Schedule state in order to determine whether the dispatch will
go to the primary group or to the alternate group.
44. In a Transport Patient > Process activity, when a transport moving a patient arrives at its destination, it
will be released immediately unless it's retained by the activity using the, “same as above activity,”
command, or the box is not checked to, “return,” the transport upon release.
45. Patient and staff walking speeds are now dynamically updated during run time to equal the slowest
included object's defined speed . For example, if a staff member with a normal speed of 80m/min and a
wheelchair with a normal speed of 70m/min are used to transfer a patient with a normal speed of
60m/min, the staff member will travel at 80m/min to the wheelchair, push the wheelchair to the patient
at 70m/min, and then push the patient in the wheelchair at 60m/min to the transfer location. The
walking speed of patients can be defined by track type using the Visuals tab of the Track Manager, and
the speed for staff, equipment and transports can be defined by individual resource using the primary
group ’ s Properties window.
46. New Command finishreplication() added to the “Stop Model Based on Condition,” option found in trigger
fields.
47. New Command getarea(object); If the object is a location, you'll get the location's area. If the object is a
patient in a location, then you'll get the area of the patient's location.
48. New Command getareastat(area, stat); If stat = 1, gets the number of active locations within the area. If
stat = 2, gets the number of currently occupied locations within the area. If stat = 3, gets the percent
occupancy for the area calculated in the same manner as the Occupancy Levels by Area dashboard
graph.
49. New Command getcensus(object, trackname); Gets the number of patients in a single location (e.g.
getcensus(WaitingRoom)), or in the entire model (e.g. getcensus()). If a valid trackname is given, only
the number of patients for that track is counted (e.g. getcensus(WaitingRoom, Track1)). Otherwise, all
patient types are counted.
50. New Command getstaffgroupstat(group, stat); If stat = 1, gets the number of active staff members in
the group. If stat = 2, gets the number of currently utilized staff members. If stat = 3, gets the staff group
utilization percentage calculated in the same manner as the Staff Utilization by Group dashboard graph.
51. New Command getthroughput(object, hourly, trackname); Gets the number of patients who have exited
a single location or the entire model. If a valid trackname is given, then only the number of patients for
that track is counted; otherwise, all patient types are counted. If the hourly flag is 1, then the value
returned is a per hour figure.
52. New Commandstoparrivals(object); Stops a PatientArrivals or ItemArrivals object from generating any
new arrivals, while letting any patients or items already in the object leave.
44
53. New Command resumearrivals(object); Resumes the generation of arrivals at a PatientArrivals or
ItemArrivals object that was previously stopped with the stoparrivals() command.
54. New Command setrunspeed(speed); Sets the simulation run speed. Value entered is the number of
simulated minutes per one real minute. A value of 1 would run the model in real time. This command
will also update the slide bar and value displayed on the toolbar above the view window.
55. Even though more than one path node may be connected to a location, travelers will, by default, use
the shortest path when traveling to that location. However, by checking the, “Alternate Exit,” box found
in the arrival node's Properties window, it's also possible to have travelers leave a location using a
different path node than the one they used to reach the location.
56. When multiple staff members, using the path network to travel to a Patient Processing location, arrive,
they'll occupy the path nodes attached to that location in the same order as they are assigned in the
staff table for that activity. In other words, the staff member associated with the staff assignment
defined in the first row of the staff table of the activity, will be directed to travel to the first path node
connected to the location, and the second staff member to the second path node, and so on. If you
forget the order you connected the path nodes to the location, you can view the connection order
number by changing the Information Display to, “Show object names” (see right-click context menu for
the view), and then clicking on a path node to reveal its order number.
57. Improved positioningof multiple staff while escorting and transporting patients.
58. Improved staggering of multiple staff assigned to the same process.
59. Improved staggering of multiple patients arriving at the same location.
60. Multiple patients arriving at a Patient Processing object that has <none> selected for its shape will be
positioned according to a grid pattern across the footprint of the object after they have entered the
object.
61. New picklist options have been added to facilitate repositioning of patients arriving at locations.
62. A custom transparency level can now be assigned to a Display object for text and floor displays.
63. Patient Arrivals and Patient Exit Objects:
64. The Properties window has been updated to resemble the Patient Queuing and Patient Processing
objects' Properties windows.
65. The Users Manual is in need of a rewrite, but there are a few new sections added recently that are
worth reviewing. The Users Manual > Modeling Tools > Track Manager contains a good explanation of
what a track is, and at the bottom, there's a short description of the various Activity Types.
66. The Users Manual > Modeling Tools > Track Manager Advanced Functions contains short explanations
of the Advanced Functions.
67. Sample Model: This release includes a sample model of a small emergency department. The model is
named Demo_ER_1.fsm and can be found in the user>Documents>FlexsimHC Projects folder. The
model uses a CAD drawing for a floor plan. There are two simplified tracks defined in the model: Basic
and Xray. The Basic track has the following activities: arrival, registration, triage, bed placement, nurse
assessment, nurse/doctor consult, doctor exam and discharge. The Xray track is the same up through
nurse/doctor consult, then xray, return to bed, and discharge. Walking paths are used to connect the
various locations in the model.
Bug Fixes (v2.70)
1. Fixed the, "By Time of Day," option in several of the picklists, and renamed the option to: “Based on
Simulation Time.” It now correctly accounts for simulation start times that are offset from time zero as
defined by the user when creating shift schedules. The pick option allows use of the following terms
when referencing simulation time: year, week, day, hour, minute and shift, with a shift being further
defined as any given number of minutes.
2. Fixed problem with shift schedules switching from an available state to a down state between 00:00
and 00:15 even when the table displayed an available state.
3. Tooltips have been rewritten to improve the clarity and accuracy of the text displayed.
45
4. The picklist options designed to stop a model run based on a condition were not working correctly with
the Experimenter. This has been fixed with the new picklist option titled, “Stop Model Based on
Condition.”
5. Fixed problem with the library view not opening after the, “Close All Windows,” option is selected in the
main view's context menu.
6. Fixed crash which sometimes occurred while running a model and simultaneously trying to save
dashboards, tracks, etc. It's still not a good idea to do such things while a model is running, but at least
it does not crash the software now.
7. Fixed crash which occurred when a model was stopped using script in the Entry Trigger of a Patient
Exit object.
8. The, “By Percent,” picklist option had a typo that mistakenly defined the random number used to obtain
an empirical value as ranging from 0 to 102 instead of 0 to 100. This has been corrected. The P()
option used a different function which was always correct.
9. Path names as displayed in a path node ’ s properties window are now updated correctly to reflect any
changes made to node names.
10. The main view window is now refreshed after variables are copied using the Utilities Tool, so that visual
effects that depend on certain variables will be recognized immediately.
11. Since the Presentation Builder does not work properly when the main view is orthographic, a warning
message is displayed indicating such.
12. The, “return,” flag for equipment is now included in the import/export track files as it should be.
13. Information entered on a Label tab is now applied when the Apply/OK button is pressed immediately
after entering data. Previously, it was necessary to first click off the cell the data was typed into.
14. Fixed problems found in many of the dashboard widgets:
o Axis label display errors on line graphs
o Displayed values for Object Queue vs. Time charts were sometimes off depending on size of
graph boundary
o The words “In-Process” have been changed to “Census” in graph titles
15. Fixed conflicts between global variable definitions and definitions associated with other libraries
(custom user libraries that might be added by advanced user/developers).
16. Fixed error with auto-naming activities with milestone names when another activity was clicked on in
the list before Apply button was pressed. This is okay to do now.
17. When a user erroneously checked the, “Reserve Current Location,” box (previously named “Hold room
during absence”) when transferring a patient from a Patient Arrivals object to another location, it caused
the Patient Arrivals object to stop creating patients. The problem has been solved by ignoring the
request to reserve a Patient Arrivals object.
18. The list of Global Variables is refreshed when the window's Apply button is pressed.
46
19. Previously missing “break;” statements have been added to the end of each example script line in the,
“Based on Multiple Cases,” option in the Next Activity field. This addition will prevent the example script
from rolling over to the last case rather than executing a singular case as intended.
20. The, “Based on Percentages,” option for the Next Activity field did not convert the ID number to a row
number as it should have. The script to convert ID number to row number has been inserted.
21. Fixed problems encountered when answering, “Yes,” to, “Save before creating new model?” prompt
prior to opening a new model.
22. Fixed problem with the Start Activity Condition field returning false when an expression is entered and
then erased.
23. Fixed the problem where activity parameters were not being properly updated between scenarios when
parameters were defined as variables in the Experimenter.
24. The staff selection box in the table on the Maintenance tab of a location will now re-size correctly to
match the size of the Staff column.
Version 2.50 (December 11, 2009)
New Features (v2.50)
1. A check is now made for availability of both a location and a staff member when a patient is to be
escorted to their next area. When there is a PatientQueuing object connected, the patient will walk
unattended to the queue. Previously, only a location needed to be available to keep the patient from
walking unattended to the queue.
2. Added option to lock the position of walls to avoid accidentally moving them.
3. User can now easily specify where preempted tasks are re-dispatched for completion (or force the
preempted task to be completed by the resource that was preempted).
4. When the OK button is pressed on the Track Manager, the window will no longer close if an error is
detected in the activities, to avoid having to reopen the window to fix the error.
5. Improved the elevator dispatching logic so that the elevator will only pick up passengers who are going
in the same direction as current riders (capacity is limited by a user-defined number of passengers).
The animation has been improved to not shut the door in the face of multiple passengers
loading/unloading at the same floor too.
6. Added an option to send staff on patient rounds using a single activity step. One or morestaff will be
sent to locations in a specified order to perform a task. If equipment is specified, then the staff will first
pickup the equipment, and carry it with them to each of the location listed. A process time expression
will be evaluated for each staff at each location they visit to determine their stay time. Only locations
that are in a chosen state (i.e. vacant, occupied, etc.) will be visited.
7. User can now add their own custom fields to the automatically generated output files. The custom fields
can be calculated derivations of existing fields, or completely new data. The number of decimal places
for numeric variables written to output files is now based on the global setting for decimals rather than
always using 2 decimal places.
8. Added an option to easily modify patient arrival rates as one of the experiment variables.
9. The Excel table importer now has options for importing Global Tables, Arrival Tables (e.g. Hourly
Arrivals, Appointments), Object Tables (e.g. maintenance tables, component lists, user-defined label
tables, etc.), and Shift Schedules. A new field has been added to the importer called “Post Import
Trigger” which can be used to execute script immediately following the importing of the tables from
Excel.
47
10. As with locations, resources (i.e. staff, equipment, transports) are visually marked with a red square
around their base when not available.
11. Added a new overhead display option for patients that will only show the in process activities for the
patient currently highlighted in the model. This has been made the default rather than the option that
shows the overhead display for all patients concurrently.
12. Added option in “Next Activity Chooser” picklist to choose an activity based on occupancy of a given
location.
13. Added option in triggers to dynamically create patients on the fly (e.g. babies in the maternity ward).
14. Made it possible to reset, create, and/or delete activity steps dynamically during runtime.
15. Added a checkbox to “return” equipment and transports to their home base (primary group) after
finishing the activity they are used in. The return activity is a separate task sequence with low priority so
as not to delay the completion of the initial activity step.
16. An individual or group of selected objects can now be duplicated with a right-click option on the 3D
model view, or with the quicker but largely unknown Ctrl-D shortcut key combination.
17. Added many new 3D shapes to the dropdown lists for Patient Processing, Group, Item Queuing and
Item Processing objects.
18. Replaced the “AutoConnect” button with a “Flowcharting” button on the main toolbar. This new button
opens a window that allows you to graphically map the flow routes of the various patient types in your
model. Multi-colored connection arrows are available to help you define and organize your routes. The
routes are defined by area rather than location, so they are quick and easy to create. There is still the
option of having FlexSim automatically try to create the connections between areas in your model
based on information derived from the track definitions. However, as you ’ ve probably discovered,
these automatic connections are not always what you want, so the new flowcharting tool will help you
make your connections correct right from the start, and it is also a very nice way to graphically present
your patient flows to others.
19. The “Probably Early Exit” option for the Patient Leaves Early field on the Patient Condition tab of a
Patient Queuing object ’ s Properties window has been expanded to allow for a conditional query as
well as a probability percentage in deciding if a patient leaves early. The option will also create a user-
defined label on the patients leaving early so that the patients can be identified in the output reports.
20. A new simplified format for the csv file used to import and export patient tracks between FlexsimHC and
Excel has been developed. Multiple resources defined for the same activity step can now be specified
in one cell by separating the list of resources with a comma. If the Next Activity Chooser and Activity
Start Condition fields were defined with a single line expression, they too will be imported/exported.
21. To facilitate quick and easy data entry, two new commands have been included in the software: T() and
P(). The first is just a substitute for the triangular() command. However the second, allows you to
specify a list of values to be returned based on a corresponding list of probabilities. The format for the
data typed into the P() command, is P(, percent1, , percent2, …) for up to nine different values. If more
are required, then the dempirical() or cempirical() commands which can reference an unlimited list of
values/percents in a global table must still be used.
22. The following commands have been added: drawobjectfloor(), finishactivity(), firstavailableresource(),
firstpreemptableresource(), getobjectstate(), getiteminstate(), gettraveldistance(), getwarmuptime(),
reservelocation(), scanactivities(), setcolorbypalette(), setnextarea(), setnumlocations(),
setnumresources(), setobjectstate(), startactivity(), timestringtominutes(), toid(), torownum().
23. Resources being used to transfer a patient are no longer allowed to be preempted; however when the
transfer is complete, the request queue is immediately evaluated for preempting requests that have not
been satisfied.
24. Using the mouse wheel to change the height of a selected object will restrict moving the object below
floor level.
25. The Display object is a nice way to make a floor. Any objects dropped onto the floor will be placed at
the same height as the floor by default. This can be useful in multi-floor models.
26. The Utilities tool window can now be used to change the ranking of nodes in the model tree. This is
useful for those who like to organize the list of objects in the tree view. Keep in mind that the order of
the objects listed in the model tree is the same order they are listed in many of the dropdown lists.
48
27. The “Maintenance” shape for staff objects has been enhanced to include a cleaning cart. It is now the
shape of woman pushing a standard cleaning cart.
28. The User-Defined Bar Graph in a Dashboard has been made more general to include all object types.
Another picklist option has been added to show an example of collecting and graphing data found in an
object label.
Bug Fixes (v2.50)
1. Fixed bug with equipment not being disconnected from network when “Connect with Path Network” box
is unchecked.
2. Fixed bug so new resources added after the “Connect with Path Network” box has already been
checked will also be connected.
3. Fixed problem where experimenter was not updating variables associated with the “Next Activity” field
and global variables.
4. Removed visual glitch (green box) shown on dashboard line graphs.
5. Fixed bug with repetitive activities not always working when running a model for multiple replications.
6. When staff members are preempted away from a patient, the patient ’ s state is now changed to
“Waiting For Staff”.
7. The problem with requests getting caught in an infinite loop when passed between multiple resource
groups, as could happen when using Alternate Groups, has been fixed. Group members should now be
able to contain both resources and other groups without a problem.
8. A problem with assigning labels to patients has been fixed by forcing the user to always create labels
on a patient using the Patient Classification tab of the Patient Arrivals Properties window.
9. Fixed problem with some models requiring the Track Manager to be opened and the Apply button
clicked before they would work.
10. Fixed bug withPatient Processing objects not allowing multiple patients even when the “Maximum
Occupancy” was set greater than 1.
Version 2.01 (September 18, 2009)
New Features (v2.01)
1. More predefined dashboard widgets are available.
2. Many new user-configurable Dashboard graph and text display widgets.
3. Each widget now has a data structure associated with it that the user can take a look at and export if
desired.
4. The user is prompted to save dashboards before closing when changes were made.
5. Multiple dashboards within one model are now allowed.
6. Staff now use a default picklist option for returning to their primary group object when unavailable due
to Shift Schedules or Random Interrupts
7. Resources such as staff, equipment and transports can now be chosen for an activity in a variety of
user-defined ways using the “Pass To” field found on the Advanced Group Editor, the Advanced
Resource Editor, and the Alternative Group Editor. The purpose of the field is to allow the user to
choose the manner in which activity requests (otherwise known as task sequences) are dispatched
from group to group and from group to resource. In other words, which resource connected to the group
specified for the activity’s staff, equipment and transport requirements do you want to be chosen for the
activity. The default option for the “Pass To” field for resources and resource groups has been improved
to handle more situations in a more realistic manner, but you may easily change the selection criteria
with the new picklist options provided.
8. The “previous from ___group” option that has been available for assigning staff to an activity is now an
available option for assigning equipment and transports as well.
49
9. The Patient Tracks and Track Properties windows have been combined and renamed Track Manager.
This was done to reduce the number of windows required to be opened at one time. The new Tracks
and Files tabs on the Track Manager essentially make up what used to be the Patient Tracks window.
The Tracks tab now allows you to change the name and order of existing tracks. When adding new
tracks, you can make a blank track or create a duplicate of an existing track you have highlighted in the
list.
10. The Visual tab of the Track Manger lets you change and visualize more parameters than before. Be
sure to check out the new options for dynamic overhead displays for patients in the model. The frame
selector is handy for viewing the available frames for a patient should you decide to override the
defaults and assign your own frame to a patient for a specific event in the simulation.
11. The Labels tab has been changed to restrict users from adding their own labels this way. User-defined
patient labels are meant to be added using the Patient Classifications tab of the Patient Arrivals edit
window. You’ll note that there are two new system defined labels for a patient: ApptTime and
ArrivalTime. These are used when the patients arrive by appointment as defined on the Patient Arrivals
object. A patient’s scheduled appointment time versus their actual arrival time may be useful to you to
query within your model.
12. It is now possible to import and export tracks using a simplified tabular format (ref. Comma Delimited
(*.csv) option) making it very easy to export track activity lists to a table in Excel for reporting purposes,
but it also gives you the possibility of making changes to the activity list within a worksheet, and re-
importing your changes to test in the model. If a track with the same name already exists, the imported
information will replace existing information for the track; otherwise, a new track will be created and the
imported information applied to it.
13. For simplification purposes, the Activities tab of the Track Manager window will now only show those
fields which are applicable to the chosen activity type. You’ll notice for instance, that the Process
Location field only shows up once you’ve selected staff for a Process activity. This is because the
Process Location is only used when staff are going to be utilized during the process time, in which case
the staff must first travel to the Process Location before the Process Time begins. These little changes,
plus a host of “sanity checks” that get executed when the Apply button is pressed, will hopefully help
the user to avoid data entry errors.
14. You’ll notice a new checkbox on the Activities tab for the first five process activity types that is “Patient’s
exclusivity is required”. If a patient’s exclusivity is required for a process, then the patient will be
allocated for the process. This means the patient cannot be allocated by any other process while
allocated by this process. Normally there are multiple activities that can be occurring for a single patient
at any given time.
15. The “Transport Patient > Process” activity type now has an option requiring the staff return the transport
to the transport’s group object after dropping off the patient. This option is invoked by simply checking
the box labeled “return” found in the Transport selection pane for the activity.
16. The Process Location can now be defined with an expression in Advanced Functions rather than just
selecting a specific location on the Track Manager’s Activities tab. This will allow the process location to
be determined during runtime according to system dynamics at the time the decision needs to be
made.
17. A very powerful field has been added to Advanced Functions called “Activity Start Condition”. This new
option requires that a user-definable condition be true before an activity is kicked off. The condition is
rechecked every time the activity list is scanned for another activity to begin, and the user may create
custom events to force reevaluation of the list at any time! With this condition field, conditional based
activity list traversal within a given track is easier than ever.
18. An “Activity Started Trigger” has also been added to Advanced Functions giving you the opportunity to
modify the parameters of an activity before it starts allowing you to make changes based on the state of
the model at the time of the activity. An extensive list of user pick options makes this an easy task.
19. The list of user pick options for Advanced Functions has been expanded to include improved options
for making selections based on system state and availability of resources and locations. New options
have been added for making decisions based on patient attributes and time of day as well.
20. User-defined milestones are now included in the drop-down list, and saved with the model.
50
21. The prev/next arrow buttons at the bottom of the Advanced Functions editor can be used to quickly step
through the advanced functions of all activities of a selected track.
22. The AutoConnect features now interprets connections based on the full list of Next Areas, and is smart
enough not to connect locations to each other within the same area.
23. A global start time for offsetting the simulation clock can be defined and saved with a model.
24. Source code has been streamlined and compiled to improve runtime speed of a simulation
substantially.
25. Application code has been removed from user fields to avoid confusion with user-defined options.
26. Global system variables have been separated from user-defined global variable to avoid confusion and
provide a clean slate for users to define their own list of global variables if they want.
27. A large number of commands have been added that allow a user to easily modify resources, tracks and
locations on the fly. For instance the command ReserveLocation allows you to reserve a location for a
specific patient in advance of an activity that would use the location.
28. ThePatientArrivals object has been greatly improved. For starters, the bugs have been worked out of
the Hourly Arrivals table, but the arrivals will now repeat on a weekly basis. If distributions are used to
define the number of patients arriving each hour of the week, the distributions will be resampled at the
start of every day.
29. The scheduled arrivals (now called Appointments) can have variability about their scheduled arrival
times. Because the arrivals are generated independent of each other, patients may arrive early or late
to their appointed times, and consequently may overlap another patient’s appointment time. The
appointment schedule may also be repeated if required. If the PCI value for a specific arrival is 0, the
PCI classification index can now be assigned randomly from the empirical distribution defined on the
Patient Classification table rather than explicitly defined by the user. The appointment times may be
entered in days:hours:min format, or in terms of total simulated minutes as before. This now applies to
all time entry fields!
30. Interarrival times may now be tied to a specific PCI number if desired, making more than one
interarrival time distribution more useful.
31. The Patient Processing object can now have more than one patient in it at a time by simply specifying
the “Maximum Occupancy” to a number greater than 1.
32. The status of the library (open/closed), the main view settings, any open windows, and all saved views
are now saved with the model, and are loaded automatically when reopening the model.
33. The right-click popup menu for the main view window has been expanded to include more colors,
standard views, and other display settings than before.
34. The object library window is placed on top of other windows when opened/closed in order to give you
access to the library when other windows are in front of it. By the way, did you know you can right click
on an object in the library and get a list of objects in the model of that type? Very useful in large models
when you want to find and edit a specific object.
35. The default directory for saving and opening files is a directory in the user’s personal Documents folder
called FlexsimHC Projects. This is the default directory until changed by opening or saving a file to a
different directory.
36. Ctrl-D is a shortcut key available in the main view for quickly duplicating a group of selected objects
(red bounding box), or a single highlighted object (yellow bounding box).
37. New Excel import and export options available under Tools>Excel menu.
38. All tables in the application including those found on the Patient Arrivals object have right-click popup
menu options for easily copying/pasting or importing/exporting the entire table or portions thereof.
39. Many more 3D shapes are included for locations, equipment and transports.
40. Staff Groups can now be assigned 3D shapes from a dropdown list.
41. Location objects show a colored band around their floor when being held by a patient. The color of the
band matches the patient’s color.
42. Location objects show a red band around their floor when not available due to a shift schedule or
experiment scenario.
43. Staff and patients now have more realistic travel patterns. They no longer stop at a node when using
walking paths, but will offset travel all the way to their final process point when discernible.
51
44. When equipment and transports are dropped off, they are placed more intelligently. For instance,
wheelchairs are placed in such a way as to hopefully not overlap with patients or beds when possible.
When a resource (e.g. staff, equipment, transport) returns to its group, it is placed back in its original
default position relative to the group.
45. Positioning of all patient shapes (e.g. man, woman, boy, girl, baby, baby in bassinet, and man in bed)
have been improved for when the patient is placed in any of the standard locations. The user may
manually position patients within locations as well.
46. Improvements have been made to the positioning of patients relative to transports, and staff relative to
equipment or transports during travel.
47. You can now choose to display information above a patients head as they progress through the model.
The information includes the patient’s name and a list of the activities that are currently in process for
the patient.
48. Patient Queues can now be visualized represented with chairs, beds, a single file line, or open floor
space. Single file lines now have a truer representation with patients shuffling forward after a patient at
the front of the line leaves the queue.
49. An elevator object has been added to the library. Using an elevator in a model is extremely easy when
using walking paths. Simply connect the elevator up to nodes in the walking path. As patients or staff
cross a node connected to an elevator, it is determined whether or not the person(s) need to use the
elevator based on the level of their destination compared to their current level. If the levels are different,
a request to use the elevator is dispatched automatically. By default, the elevator will stop and pickup
passengers who are along the way who are headed in the same direction the elevator is currently going
so long as the elevator capacity has not been exceeded. Other control algorithms can be chosen by the
user as well.
50. The text display options have been updated and expanded to match those available for dashboards
and output files.
51. You now have the option to create nine separate output files rather than what was previously one file
with the recorded data tagged with nine different codes. This should make it much easier for most users
to deal with. The nine files are: PatientHistory, StateHistory_PatientQueuingLocations,
StateHistory_PatientProcessingLocations, StateHistory_ItemQueuingLocations,
StateHistory_ItemProcessingLocations, StateHistory_Staff, StateHistory_Equipment,
StateHistory_Transorts and StateHistory_Totals. The delimiter for the column separator can now be
one of four types (e.g. tab, semicolon, comma, space) for international compatibility.
52. Data is not written to the output files until after the user-defined warmup time has transpired. When the
warmup time transpires, an event occurs which resets all statistical parameters as required. The times
associated with data written to the output files is corrected to account for any user-defined start time.
53. Newly designed Experiment Manager interface is more user friendly and hopefully easier to use. One
thing’s for sure, it is much more powerful.
54. The user now has a very large list of experimentation variables to choose from. You may choose from
predefined lists of location, resource, patient, and global variables; or create your own user-defined
variables by selecting from a list of examples or defining one from scratch. A variable no longer needs
to be associated with a single value on a single node in the tree, but can be an expression such as an
existing algorithm that has been modified to contain an experiment variable you may have embedded in
the code. It is now a simple thing to experiment with the number of staff members in a group, or the
number of locations within an area.
55. The list of predefined performance measures has also grown substantially. You will be able to choose
from a long list of PFM’s associated with individual resources, groups of resources, locations, groups of
locations, patient tracks, or global metrics. As with variables, the user may also define their own custom
performance measures.
56. Performance measure reports have been enhanced to include more than just confidence intervals and
standard deviations. Experimentation results now include histograms for replicationfrequency analysis,
scatter plots for comparing correlation between variables, and nicely formatted html reports to display
and compare the results and raw data for all performance measures and all scenarios!
57. More content
58. New animated gifs
52
59. Many new commands have been added and documented in the Command List.
Bug Fixes (v2.01)
1. Allocate and Deallocate activity types are now working properly.
2. Simulation start time offset can now be globally defined and saved with a model. All time related fields
will now take the start time into consideration.
3. Prev/Next buttons found in many of the gui windows have been debugged and now work properly to
hopefully speed up the editing process across several objects.
4. More error trapping has been incorporated into the code to avoid as many exception errors as you may
have previously experienced.
5. Sometimes, patient and location states were not getting set when they should. This has been fixed.
6. The Track Properties editor (now called the Track Manager) had problems refreshing properly, and
therefore would occasionally assign data entered within one field to another field. This was usually
manifested by staff appearing to travel to a wrong location for a process. It also caused problems with
patients getting “stuck” at a given location as they were trying to get to advance to an area not allowed
for the track. These problems have all been fixed by fixing the way data is presented and saved by the
Track Manager interface.
7. The options on the Utilities window for creating saved Selection Groups and saved Layout
Configurations did not work. This has been fixed.
8. Fixed the problem with background images disappearing “randomly”.
9. Fixed the problem with bad global pointers being generated sometimes when trying to rename staff,
equipment and transports. A more robust approach for the auto-generation of global pointers for object
names and area names has been developed which hopefully has eliminated these problems.
10. Clicking Apply/OK on the Shift Scheduler after making changes in the graphical Work Schedule table
view used to erase the changes. This has been fixed.
11. The bugs with the Hourly Arrivals table method for generating patient arrivals into the model have all
been fixed.
12. Staff connected to an Alternate Group were not included in the “previous from ___group” picklist
options. This has been corrected.
13. The bug with repetitive tasks not always repeating properly has been fixed.
14. The warmup time event now correctly resets all variables requiring reset.
15. The deallocate activity didn ’ t always release staff like it was supposed to. This has been fixed.
16. Fixed bugs with the Presentation Builder and AVI Maker, so they now work correctly with the main
view.
17. The “same as above activity” option now works for transports.
53
Overview of the Model Building Process
This topic will provide a high-level overview of each phase in the model-building process in FlexSim HC. It
will explain which tools are involved in each phase of the process and will provide links to the relevant
sections of the User Manual for each phase and tool.
Be aware that you do not necessarily need to build your model in the exact order listed here.
1. Plan Your Model
Before designing your simulation model, it will help to determine your goals for your simulation project.
You'll also want to gather useful data that will help make your model as accurate as possible. See Planning
a Simulation Model for more tips and best practices about the work you should consider doing before
designing your model.
2. Build a Layout of Your Facility
The next thing you'll want to do is build the layout of your facility. During this phase of the model-building
process, you'll want to:
Create the floor plan of your facility. Ideally, you will import an AutoCAD drawing of your floor plan
using the Floor Plan tool. See Creating or Importing Floor Plans for more information.
Add patient locations and item objects to your simulation model. Add various location objects and
item objects from the Library to your simulation model. These are the locations that your patients and
staff will eventually travel to in order to complete certain tasks in your simulation model. See
Introduction to Library Objects and Adding Objects to a Model for more information.
Connect locations and item objects together. After adding locations and item objects to your
simulation model, you need to connect the objects together so that patients and staff can move
between the objects when you run your simulation model. You will use the Flowchart tool to connect
objects together. See Connecting Locations and Item Objects for more information.
3. Add Staff and Resources to Your Model
After building a layout of your facility, you'll want to add staff and resources to your model. Staff and
resources are objects that patients will interact with in the simulation model. Unlike location objects,
resources can possibly move around the model. A resource can be staff personnel, transports (such as
wheelchairs and gurneys), and medical equipment.
You will add these objects from the Library into your simulation model, similar to the process for adding
location objects to your model. The difference is that you will add a resource group and then add more
members that group if you want to add more of that resource type. See Adding Staff and Resources for
more information.
54
4. Create Patient-Centered Activities
Next, you'll create the series of activities (patient tracks) that each patient will follow once they enter the
simulation model. You'll determine what each patient should do from the moment they enter the model until
they leave. You'll also assign the appropriate staff and resources to work with the patients at various points
in their care process. You will use the Patient Track Manager for this phase of the project.
This is the single most important step in the model-building process and it is also the most complex. See
Patient-Centered Activities for more information.
5. Add Patients to Your Model
Next, you'll want to determine how your patients will be added to your model. During this phase of the
model-building process, you'll want to:
Decide on a patient classification system. If needed, you can create different types of patients with
different acuity levels or other defining characteristics. You can also assign different types of patients to
different patient tracks if needed. See Introduction to Patient Classifications for more information.
Decide on a patient arrival pattern. Using a Patient Arrival object, you will determine how your
patients will arrive in your model. You can use several different possible methods to introduce patients
into your model such having patients come at scheduled appointment times, arriving at different rates
based on the time of day or day of the week, etc. See Introduction to Patient Arrival Patterns for more
information.
6. Create Other Routine Staff Activities
Some staff activities might not be directly related to a patient's activities and will be based instead on timed
events in the model. This includes activities such as:
Staff meetings
Routine patient care (such as checking vitals every hour)
Clerical work (such as answering phone calls)
Janitorial work
You will create these kinds of activities using the Global Processes tool. There are some other tools you
can use at this point in the process to introduce some additional complexity into your simulation model if
needed. See Routine Staff or Location Activities for more information.
7. Run Your Simulation Model
Once your simulation model is built,you're ready to run the model to see if it works correctly. There are a
few different settings you can use to change how your simulation model runs. There are also a few things
you should check before running your model and a few different ways to troubleshoot some errors that
might come up. All of these topics are discussed in Running a Simulation.
55
8. Get Data from Your Simulation Model
After running your model at least once to make sure it is working correctly, you can use a few different
tools to begin gathering data from your model. You can use the Dashboard tool to track and display the
statistics you are most interested in. You can also use the Experimenter to run your simulation model
multiple times and see how your results change if you change certain variables. All of these topics are
discussed in Getting Data from a Simulation.
56
FlexSim HC at a Glance
This section will provide a high-level overview of FlexSim HC tools, key features, and more.
The most important elements of FlexSim HC are labeled in the following image:
Each element will be described in more detail in the following sections:
Library
Located in the left pane, the Library contains a variety of objects that you can use to build your 3D model.
Each type of object has specific settings that you can customize to improve your simulation. The Library is
context-sensitive, which means that its content will sometimes change based on whatever is currently
selected in the model or the type of tool that is currently in use, such as the Statistics Dashboard. See
Introduction to Library Objects for more information.
Toolbox
Also located in the left pane, the Toolbox allows you to access and manage any tools that you might want
to use while you're building your simulation model, as shown in the following image. You can change the
left pane to the Toolbox by clicking on the Toolbox tab at top of the left pane. See Using the Toolbox and
Toolbar for more information.
57
Model
Located in the center pane, the model is the main workspace you will use to create your 3D model. Once
you create or import a floor plan of your facility, you can drag objects from the Library into the model to
begin creating a simulation.
Quick Properties
Located in the right pane, Quick Properties allows you to quickly and easily edit the settings for any object
that is currently selected in the model or in a tool. The Quick Properties pane is context-sensitive, meaning
that its content will sometimes change based on the object or tool that is currently selected. For example,
when you click on an object in the model, the Quick Properties pane will display that object's settings. If
you open a new tool, the Quick Properties pane will display the tool's settings and features.
Patient Track Manager
Located next to the Quick Properties pane, the Patient Track Manager allows you to create tracks (plans)
for patient care. Patients can follow different tracks based on the patient's acuity, diagnosis, or any other
criteria you determine. These tracks can include different activities or processes that should occur from the
moment a patient arrives to the time they depart. The Patient Track Manger can also assign the necessary
staff members and resources needed for that activity. See Patient-Centered Activities for more information
about using the Patient Track Manager.
Main Menu, Toolbar, and Control Bar
The main menu, toolbar, and control bar contain all the tools and commands that you can use to create
your simulation models. These tools will be discussed in more detail throughout the User Manual.
58
Tabs and Windows
A tab is a feature that allows one or more panes to be contained within a single window. Certain tools or
content can be displayed as tabs or as separate windows. For example, by default the User Manual you
are currently reading shows up as a tab, split as a separate pane to the right of the model. A few other
tools can be displayed as tabs or separate windows, such as the Flowcharting tool, the Patient Track
Manager, Global Processes, Global Tables, and the Statistics Dashboard. You can customize the
display of windows and tabs in FlexSim HC for easier access. See Arranging Windows and Tabs for more
information.
59
Key Terms and Definitions
FlexSim HC uses a few common terms in slightly different ways. The following sections give an
explanation of some common terms as they are used in this software program.
Patient
Patients are the most important element of the simulation model. FlexSim HC is patient-centered, which
means that nearly everything in the simulation model is driven by:
The arrival or departure of patients
The patient's status (such as their acuity)
The patient's activities and movement inside the model
Staff
A staff member is a type of resource in the simulation model. Staff can represent a person who helps to
provide direct or indirect patient care in the simulation model such as a doctor, nurse, receptionist, etc.
Activity
An activity is a particular event or action that will occur at a certain point in the simulation model. There
are two kinds of activities:
1. Patient-Centered Activities - A series of activities that patients will begin to do once they enter the
simulation model until they exit. Some activities will utilize specific locations, staff members, equipment,
or transports. Most activities in FlexSim HC are patient-centered. See Patient-Centered Activities for
more information.
2. Routine Staff or Location Activities - Activities that will run independently from patients. They might
include things such as staff scheduling and shift changes, clerical work, janitorial work, or routine
patient care (such as checking vitals every hour). See Routine Staff or Location Activities for more
information.
Locations and Areas
In FlexSim HC, a location is a specific object that patients will interact with as they move through the
simulation model. Locations will remain stationary within the model. A location could be a door through
which patients enter or exit, a receptionist desk, a waiting room, an exam table, etc.
By contrast, an area is a general collection of related locations. For example, there can be multiple beds
(which are location objects) inside an area you create called the BedArea. Using areas, you can create
patient activities in the Patient Track Manager that will send a patient to any available location inside of an
area. For example, you could create a patient activity that sends a patient to the BedArea. Once the patient
arrives at the BedArea, they could then go to one of the beds within the BedArea.
All locations in your simulation model must be part of an area. By default, each location will be part of the
area based on its object type. For example, if you add two table objects to your simulation model, by
60
default they will be part of the TableArea unless you assign them to a customized area. See Adding
Locations to an Area for more information.
Resources and Groups
In FlexSim HC, a resource is a specific object that patients will use or interact with as they move
throughout the simulation model. A resource can be staff members, transports (such as wheelchairs and
gurneys), and medical equipment. The main thing that makes resource objects different from location
objects is that resources can move around inside the model.
A group is a general collection of resources. For example, you can create a group called Nurses that has
four nurse staff members (which are resources) associated with it. Each nurse is a member of the Nurses
group. You can then create patient activities in the Patient Track Manager that can use one of the available
staffmembers in the Nurses Group to complete the activity.
All resources in your simulation model must be part of a group. When you first add a resource to your
model, there will only be one resource in that group (one group member). You will then add more group
members to that group in order to add more resources of that type. See Adding Resources to a Model for
more information.
Alternate Groups
You can even create resource groups that contain other groups. These are called
alternate groups. An alternate group is a collection of smaller resource groups
(usually staff resource groups) combined together into one large group. You can
then assign the larger alternate group to a specific activity so that members in any
of the smaller groups can be assigned to work on an activity.
For example, let's say you have a day shift of nurses (perhaps the group is named
Day_Nurses) and a night shift (named Night_Nurses). Each group has four group
members. You want the members of either group to be able to work on a particular
patient activity. The solution is to create an alternate group that will contain both
the day shift nurses and the night shift nurses. See Creating Alternate Resource
Groups for more information.
Companion
A companion can represent a person who accompanies the patient throughout the entire simulation
model. For example, a companion could be the parent who will escort a minor to the doctor's office.
Item
An item is an abstract object that can represent physical objects that need to be processed as part of a
patient's treatment. Items can represent paperwork or something that needs to be tested or processed in a
lab, such as samples, cultures, or specimens. FlexSim HC has a number of different objects, called Item
Objects, which can be used to transport or process items in the simulation model.
61
Path
A path is an area that determines how and where patients, staff, and other movable objects can move
throughout the simulation model. Paths can help keep patients or objects from moving in ways they
shouldn't (such as walking through walls) and ensure that your simulation model is as accurate as possible.
62
Introduction to the Toolbox and Toolbar
You'll want to get comfortable with how the Toolbox works because you'll use it to work on many different
tasks as you're building your simulation model. Flexsim HC has a number of useful tools that you will use
as you are creating your simulation model, such as:
The Floor Plan Tool - Helps you to import an AutoCAD drawing of your facility's layout into your
simulation model so that you can build a more accurate simulation model.
The Flowchart Tool - After adding various location objects to your simulation model, you'll need to
connect them using the Flowchart tool so that patients and staff can travel between these areas.
The Patient Classifications Tool - Used to create the various types of patients that will arrive in your
simulation model.
The Patient Track Manager - Used to design the activities that each patient will follow after arriving in
your simulation model.
The Global Processes Tool - Used to design routine activities that staff will work on at various times of
the day.
The Shift Schedule Tool - Used to design the shift schedules for staff members or to determine the
hours of operations for particular locations in the model.
You can open many of the most commonly used tools using their shortcut button on the toolbar. The
toolbar shortcut buttons are listed roughly in the order that you would use each tool while building the
simulation model.
However, one of the best ways to access and manage these tools is to use the Toolbox, which is shown in
the following image:
The Toolbox shares the left pane with the Library. You can change the left pane to the Toolbox by clicking
on the Toolbox tab at top of the left pane. Alternatively, you can click on the Toolbox button on the toolbar
to open the Toolbox.
When you create a new simulation model, you might notice when you open the Toolbox that it doesn't
show very many tools at first:
63
The toolbox only typically displays the tools that are in use in the current simulation model. To add a tool to
the Toolbox for easy access:
1. Click Add new tool at the top of the Toolbox to open a menu of the available tools.
2. Select the appropriate tool from the list to make it appear in the Toolbox and to immediately open that
tool.
You might notice that some of the tools in the Toolbox have a plus sign next to them. That means that
particular tool uses the tool component feature. (See the following section for more information about the
tool component feature.) You can click the plus sign to expand the tool and view all the components that
have been created for that tool.
If a tool doesn't have a plus sign next to it, it means that tool doesn't use the tool component feature. You
can double-click that tool to open it and edit its settings.
The Tool Component Feature
Some of the tools in the Toolbox have a tool component feature. This User Manual will use the term tool
component generally to describe a basic entity used by a specific tool. For example, one of the most
important tools you'll use to build your simulation model is the Patient Track Manager. The specific type of
tool component used by the Patient Track Manager is the patient track (often called a track for short). A
track is a series of activities that patients will follow once they arrive in the simulation model. You will edit
the activities and settings for each track using the Patient Track Manager. However, in order to create a
new tool component (i.e. patient track) for the Patient Track Manager, you would use the Toolbox. You will
also use the Toolbox to add, delete, rename, or copy patient tracks.
The following table explains the specific types of tool components that are unique to the tool in the Toolbox
that use the component feature:
Tool
Component
Type
Description
Floor Plan
Tool
Floor Plan A floor plan is an AutoCAD drawing of your health care facility.
You can add more than one floor plan for each drawing.
64
The Patient
Track
Manager
Track A track is a series of activities that patients will follow once they
arrive in the simulation model.
Alternate
Group Tool
Alternate
Group
An alternate group is a collection of smaller resource groups
(usually staff resource groups) combined together into one
large group. You can then assign the alternate group to a
specific activity so that members in any of the smaller groups
can be assigned to work on an activity.
The Shift
Schedule
Tool
Schedule A schedule is a table where you can mark the time slots when a
particular staff member will be available, off schedule, on lunch,
or on break. You can also use this tool to mark the times when
a piece of equipment or location is unavailable.
The Global
Processes
Tool
Process A process is a series of staff activities that are routine in nature,
meaning they are often repeated on a regular basis.
The remaining sections in this section will discuss how to use the Toolbox to add or manage tool
components. For information about using each individual tool, you can click the links to each tool listed in
the preceding table.
65
Adding a New Tool Component
You will use a slightly different method to add a new tool component depending on whether you have
added that particular kind of tool component to your simulation model before now. (See the Tool
Component Feature for a deeper explanation of what a tool component is.)
To add the first new tool component:
1. Click Toolbox on the toolbar to open the Toolbox (it willappear in the left pane where the Library is).
2. Click Add new tool at the top of the Toolbox. This will open a menu of possible tools.
3. Select the name of the tool for which you want to add a new tool component. For example, if you want
to add a new patient track, you would select Patient Track from the menu. If you wanted to add a new
global process, you would select Global Process from the menu, and so forth.
4. This will create a new component. The newly created component will automatically open up in the
applicable tool.
By default, the newly created component will be named something like Track1 or Process1. See Renaming
a Tool Component for information about changing a tool component's name.
To add additional tool components:
1. Click Toolbox on the toolbar to open the Toolbox.
2. If needed, click the Plus sign next to the applicable tool name to expand and display the list of tool
components that have been created so far.
3. Right-click the tool name. Select Add [Tool Component] from the menu. For example, if you want to
add a new patient track, you would right-click Patient Tracks and select Add New Patient Track from
the menu. The newly created component will immediately open up in the applicable tool.
See Arranging Windows and Tabs for an explanation of how you can change the display options for this
tool window.
Using the Toolbar
If a tool has a shortcut button in the toolbar, you can alternatively add a new
component directly from the toolbar. If you click on the toolbar button, a menu will
open displaying the components that have been created for that tool so far. At the
bottom of the menu, it will give you the option to add a new component. For
example, if you click on the Patient Tracks button on the toolbar, a menu will
open with the option to Add a Patient Track at the bottom.
66
Opening and Closing a Tool Component
If the tool component you want to open is not already open, you can open it using the Toolbox. (See the
Tool Component Feature for a deeper explanation of what a tool component is.)
To open a tool component:
1. Click Toolbox on the toolbar to open the Toolbox.
2. If needed, click the Plus sign next to the applicable tool name to expand and display the list of tool
components that have been created so far.
3. Double-click the tool component you want to open from the list. The applicable tool will open to the tool
component you just selected.
Opening Multiple Tool Components
Be aware that when you open a tool component in a tool, you are only opening up the
specific tool component you selected. If you've created more than one tool
component, you will need to open up each one individually. Each component will show
up as a separate tab in the tool.
For example, if you've created two patient tracks, one called Healthy_Clinic and one
called Sick_Clinic, you'd have to double-click both tracks in the Toolbox in order to
open them both in the Patient Track Manager at the same time.
To close a tool component, click the X on the top right corner of the tool.
See Arranging Windows and Tabs for an explanation of how you can change the display options for this
tool window.
67
Renaming A Tool Component
To rename a tool component:
1. Click Toolbox on the toolbar to open the Toolbox.
2. If needed, click the Plus sign next to the applicable tool name to expand and display the list of tool
components that have been created so far.
3. Right-click the tool component you want to rename. Select Rename from the menu.
4. Type the new name of the tool component and press Enter. The tool component should now have a
different name.
Valid Names
Component names need to start with a letter or space. The name should also not
include either forward or backward slashes ( \ or / ), quotation marks ("), the plus sign
(=), dollar sign ($), or the greater than symbol (>).
68
Copying a Tool Component
It might be useful to copy a tool component if you want to create two very similar components with subtle
differences. For example, if you want two patient tracks to start with the same five activities, you could
create a copy of the first track and use the copy to create the second track to save time.
To create a copy of a tool component:
1. Click Toolbox on the toolbar to open the Toolbox.
2. If needed, click the Plus sign next to the applicable tool name to expand and display the list of tool
components that have been created so far.
3. Right-click the tool component you want to copy. Select Duplicate [Component Name] from the menu.
By default, the new component will use the name of the component you originally copied, but it will have a
(2) or _copy1 at the end of its name, such as Track1(2). See Renaming a Tool Component for information
on how to change the component's name.
69
Reorganizing Tool Components
If you want to change the order that components are displayed in the Toolbox:
1. Click Toolbox on the toolbar to open the Toolbox.
2. If needed, click the Plus sign next to the applicable tool name to expand and display the list of tool
components that have been created so far.
3. Right-click on the component you want to re-organize and, select one of the options depending on how
you want to move the selected component:
o Move Up - Moves the selected component up one position in the list.
o Move Down - Moves the selected component down one position in the list.
o Move to Top - Moves the selected component to the first position in the list.
o Move to Bottom - Moves the selected component to the last position in the list.
70
Deleting a Tool Component
If you want to delete a tool component:
1. Click Toolbox on the toolbar to open the Toolbox.
2. If needed, click the Plus sign next to the applicable tool name to expand and display the list of tool
components that have been created so far.
3. Right-click on the tool component you want to delete and select Delete from the menu.
71
Navigating in FlexSim HC
This section will discuss some of the basic methods for changing the camera angle that you can use to
view a model.
Moving Left, Right, Forward, and Back in the Model
To move from left to right or forward and back in the model, click somewhere inside the model and, while
holding down the mouse button, drag the mouse either to the left or right side of the screen or up and down
the screen.
Zooming In and Out the Model
To zoom in and out of the model, use the wheel button on your mouse. Scrolling up will zoom in on the
model and scrolling down will zoom out.
Rotating the Model
To rotate the model in any direction, right-click somewhere in the model. Then move the mouse left or right
to rotate the model horizontally, or move the mouse up or down to rotate the model vertically.
for specific instructions.
72
Introduction to Windows and Tabs
When you first open a model, the center pane displays the model. But sometimes using certain tools will
open up a new window or tab in the center pane as well. For example, when you first opened the User
Manual, it probably split the center pane into two panes with the model on the left and the User Manual on
the right.
By default, FlexSim HC splits the center pane into two panes when you open a tool that requires a
separate window or tab. However, you can customize the way windows are displayed. You can dock (pin)
these windows in a variety of ways for easier access, as described in the following sections.
Horizontal Split
You can split the center pane horizontally with the model on either the top or the bottom pane:
See Re-Arranging Windows or Tabs for specific instructions.Vertical Split
You can split the center pane vertically with the model on either the left or right pane:
73
See Re-Arranging Windows or Tabs for specific instructions.
Undock the Window
You can undock the tool's window and float it as an independent window, separate from the main FlexSim
HC window:
74
See Re-Arranging Windows or Tabs for specific instructions.
Pin the Window as a Tab
You can pin the tool window to the tab bar. This allows you to display the tool as a separate tab that will fill
the entire center pane. You will be able to switch between various tabs by clicking the tabs you want to
view (similar to tabbed browsing in a web browser):
75
See Re-Arranging Windows or Tabs for specific instructions.
76
Rearranging Windows and Tabs
This section will explain how to re-arrange the way windows or tabs are displayed or docked. See
Introduction to Windows and Tabs for an explanation of different window and tab arrangements.
1. Click on the tab for the tool you want to move and begin dragging it to another part of the screen.
2. Before you release the mouse button, you'll notice that the window becomes undocked and floats as an
independent window outside of the main FlexSim window. If you release your mouse button at this
point, the window will continue to be undocked as a separate window.
3. Also as you click on the tab or the window's title bar and drag it around the screen, notice that a Guide
Diamond appears near the center of the main FlexSim window, as shown in the following image:
4. While still pressing the mouse button, drag the mouse to the Guide Diamond. Notice that the Guide
Diamond has five different areas. Each area corresponds to a different way of displaying or docking the
window, as described in the following image:
5. As your mouse moves over different areas in the Guide Diamond, notice that the area turns gray to
indicate it is selected. Release your mouse when your mouse is positioned over the desired screen
position.
77
Resizing Windows and Panes
You can change the default size of various windows or panes in FlexSim HC. For example, you might want
to make the pane containing the Table of Contents a little bit larger so that the topic titles fit on one line.
To resize a window or pane, position your mouse over the edge of a window or pane until it changes from
a mouse pointer to a set of arrows, as shown in the following image:
Click on the edge of the window or pane and drag it until the window or pane is the preferred size.
78
What Are Simulations?
In FlexSim HC, simulations are data-driven, computer-generated models of real-world health care systems
or environments. A simulation model can represent a hospital, a clinic, a pharmacy, or a variety of other
systems. Many companies use simulations to analyze and optimize their systems before implementing
costly changes in the actual system.
A real-world example can illustrate the benefits of simulations. In 2013 as a result of changes in U.S.
healthcare legislation, Summa Akron City Hospital in Ohio participated in an experimental program to
reduce the cost of patient care by gathering data and sharing it with physicians. One of the areas they
wanted to focus on was the efficiency of their operating rooms. Many times the hospital's operating rooms
would be empty despite the fact that patients had arrived on time and were ready for the operation to
begin. Prior to the introduction of the new legislation, the hospital still made a revenue from empty
operating rooms because the patient's insurance company was billed at an hourly rate. Even if the
operation was delayed, the hospital would still get paid for the costs of staff members who were standing
by in preparation for the operation. However, under the new legislation, hospitals would potentially only be
paid a flat rate for the operation instead of an hourly rate. This meant that the hospital would begin losing
money for under-utilized operation rooms.
After studying their system extensively, the hospital found that patient operation rooms were delayed
because the operating physicians were frequently late for the scheduled operation. The hospital worked to
solve the problem by sharing the data about tardiness with their physicians, comparing their punctuality
with their peers. As a result of these regular data-sharing sessions, physician tardiness reduced
significantly. This helped to improve outcomes for patients and prevent unnecessary costs.
Simulations can help you identify and solve problems just like this one. As you build and run a simulation,
you will be able to learn more about how your health care facility really works and how it can be run better.
You'll begin to notice bottlenecks and other costly blind spots that are reducing the quality of patient care
and/or increasing costs. FlexSim HC can help you get the data you need to make important decisions.
Furthermore, the 3D visualizations of FlexSim HC and user-friendly data displays can help to clearly
demonstrate problems to stakeholders. Sharing data from simulations can help to get buy-in from
stakeholders by helping them to more clearly see the benefits of implementing necessary changes.
79
Planning a New Simulation Model
Simulation is both an art and a science at the same time. As such, it requires practice to gain proficiency.
However, with some careful planning and data gathering techniques, you can ensure that your first
simulation project is a successful one. The following steps should ideally help guide you as you are
preparing your first simulation project.
Define the Problem
Begin by defining the problem that you are trying to solve by simulating your health care system. For
example:
Are you hoping to reduce patient complaints about waiting times?
Are you trying to determine whether you need to increase or reduce the amount of staff needed at your
facility?
Do you want to know whether it would be beneficial to purchase costly medical equipment or not?
Would you like to reduce costs from expensive equipment or technicians being idle for too long?
Start with the problem generally and then try to narrow down your definition of the problem as much as
possible. Don't try to simulate every little problem in your health care facility. Pick a specific problem and
then focus on those elements that are directly relevant to that problem you are trying to solve.
Formulate an Objective
Once you've isolated the problem, identify your objective and goals in simulating your health care facility.
Your objective should be clear, unambiguous, feasible, and workable. You should identify clear metrics to
measure if your objective has been met or not.
For example, you might use some of the following metrics to define success:
Reducing the patient length of stay
Finding the right percentage of time staff should be working on more important activities as opposed to
less important ones
Determining if extra medical equipment will allow you to care for more patients at a time
Interview All Staff Members
Talk to each staff member involved in the processes you want to simulate and have them tell you how they
work:
What steps do they take to accomplish a specific task?
How long would they estimate it takes to complete each task?
What are common problems or delays that sometimes occur while they are completing those tasks?
80
What have they found helps to make things go more smoothly?
Even before you start your simulation, you might learn a lot of useful information about your facility just by
doing this much.
Design a Flowchart
Next, design a flowchart that describes the differentsteps that will take place in the patient's care. Work on
building a flowchart for what's supposed to happen in your current facility first.
After designing a flowchart for your current process, begin designing some possible alternatives models.
What are some different processes you could use to accomplish the same tasks? What ideas do you have
for possibly optimizing these processes?
Gather Data and Information
This is probably the single most important step in order to ensure that your simulation model is as accurate
as possible.
You need to identify how long it takes to accomplish each step in the process you flowcharted above. Does
each step always take the exact amount of time? Or is there a wide amount of variance between how long
it takes to accomplish a particular task? What is the range of variance? This is the kind of information you'll
need to gather before simulating your health care system.
See the next section, Data Gathering Strategies, for tips and best practices about how to get good data
about your health care facility.
81
Data Gathering Strategies
Before you sit down to begin your health care simulation, you'll need to make sure that you are using good
data to determine how long certain processes should take in your simulation. You'll want to gather accurate
data to determine what is statistically normal for your health care facility for a set period of time.
The following sections discuss a few methods for gathering useful data about your health care facility.
Use Computer Data
You might already have all the useful data you need right at your fingertips. If you work in a facility that
relies heavily on computers to sign staff or patients in and out, you could possibly pull that data and use it
to determine an appropriate statistical distribution for a particular process or set of processes.
Talk to your facility's IT managers about pulling statistical data from these computers for a specific period
of time. Remember that you'll want to gather enough data to be representative of what is normal for your
health care facility.
Conduct a Time Study
A time study involves direct and continuous observation of a particular task or process to determine how
much time the process takes. The observer often uses a timekeeping device (such as a stopwatch or video
camera) to record the time taken to accomplish a task. The observer will observe the task multiple times
over a long period of time, recording the amount of time each process takes every time.
There are many free guides on the Internet for conducting time studies if you would like to conduct a time
study yourself. There are also consulting firms that are willing to conduct time study projects if needed.
Interview All Staff Members
If nothing else, you could interview all your staff members and get a rough estimate about how long
particular processes take and use that data to get an approximate processing time.
Get an AutoCAD Drawing
You might want to get an accurate, up-to-scale AutoCAD drawing of your facility's floor plan and layout.
You can directly import this drawing into FlexSim HC and use it to create an accurate model so that
patients and staff will travel the appropriate length and speed when moving inside of your simulation
model.
You might want to inquire about whether there is an AutoCAD drawing of your facility. It is possible that the
original architects of your facility provided it to your facility's administrator. You can also sometimes
contract with an architectural firm to create a drawing of your facility if needed.
If an AutoCAD drawing is unavailable or infeasible to obtain, you can measure your facility by hand and
create the facility using wall objects instead. (See Creating or Importing Floor Plans for more information.)
82
Using ExpertFit
If you've gathered a lot of statistical data from your health care system, you can use the ExpertFit tool to
determine the appropriate statistical distributions you should use in your health care facility. For example,
you might want to simulate how long it takes for a doctor to examine a patient. However, the time that this
takes can vary quite a bit from patient to patient. In other words, there's a certain amount of randomness
and variance involved in that process. However, if you were able to gather statistical data about how long
each examination took from a representative period of time (such as a month), ExpertFit could then take
those numbers and tell you which mathematical distribution you should use to calculate the processing
time.
For a more general discussion of how statistical distributions work in FlexSim HC, see the Distribution
Chooser for more information.
Unfortunately, ExpertFit will not be discussed in detail in this version of the User Manual. If you would like
more information about this tool, please contact FlexSim Customer Support.
83
Building a Layout of Your Facility
Building a layout of your facility is an important phase in the model-building process. This chapter of the
User Manual will discuss how to build a basic layout of your facility in detail. During this phase of the
model-building process, you'll want to:
Create the floor plan of your facility. Ideally, you will import an AutoCAD drawing of your floor plan
using the Floor Plan tool. See Creating or Importing Floor Plans in this chapter for more information.
Add patient locations and item objects to your simulation model. Add various location objects and
item objects from the Library to your simulation model. These are the locations that your patients and
staff will eventually travel to in order to complete certain tasks in your simulation model. See
Introduction to Library Objects and Adding Objects to a Model in this chapter for more information.
Connect locations and item objects together. After adding locations and item objects to your
simulation model, you need to connect the objects together so that patients and staff can move
between the objects when you run your simulation model. You will use the Flowchart tool to connect
objects together. See Connecting Locations and Item Objects in this chapter for more information.
84
Introduction to Floor Plans
The first step in building a model is to create or import a floor plan of your facility. You will need a floor plan
to use as a guide when you are placing objects into your simulation model. Having a floor plan also
ensures that your simulation model is as accurate as possible. That's because the placement of the
location objects can affect how long it takes a patient or staff member to walk from one location to another,
which can affect the accuracy of your simulation's data.
Ideally, you could import an AutoCAD drawing of your floor plan into your simulation model. These files
usually have a .dxf or .dwg file extension.
AutoCAD Files
FlexSim HC is designed to work better with .dwg files.
You could also possibly import an image file (.png, .bmp, .jpg, .gif, or .ico) that has an accurate drawing of
your floor plan. However, be aware that these images sometimes don't scale as well as AutoCAD
drawings.
What if I don't have a drawing of my floor plan?
If you don't have an AutoCAD drawing or an image, you could possibly take
measurements of your facility and use the Wall object in the Library to create the
layout of your facility. FlexSim HC measures space in meters, so each square on
the model's grid represents a meter.
The rest of the topics in this chapter will explain how to import images and AutoCAD drawings into your
simulation model.
85
Importing a Floor Plan File
Before you import your floor plan file, you need to:
Save your model at least once. In your model settings, double-check that you have allowed your model to embed media files. (Models
are allowed to embed media files by default.) See Opening Model Settings for specific instructions on
checking the model settings.
Importing a Floor Plan File
Use the Floor Plan Import Wizard to import a new floor plan file:
1. If needed, click Toolbox on the toolbar to open the Toolbox in the left pane.
2. With the Toolbox open, click Add new tool and then click Floor Plan. This will open the Floor Plan
Import Wizard.
3. On the What type of background drawing do you have? page, select either CAD Drawing or Image
File depending on which type of file you want to import. Click Next to go to the next page.
4. On the Where is the [AutoCAD or image] file? page, click the Browse button to browse for the
media file you want to use. When you select your file, it will automatically appear in the background of
your simulation model. Click Next to go to the next page.
5. The Customize layer visibility and color page allows you to customize the settings for your floor
plan's layers. This page is only available if you uploaded an AutoCAD drawing with the .dwg file
extension. On this page, you can click the Visibility button to show or hide a particular layer in the
drawing. You can also rename or change the color of the layers in the drawing. Notice that as you edit
the fields, you will immediately see the changes reflected in the floor plan. NOTE: If you try to change
the color of the layers in your CAD drawing and it doesn't work, you might need to change some of the
settings in your drawing file so that the color is defined by layer. You can contact FlexSim Customer
Support if you'd like some help with these settings. Click Next to go to the next page.
86
6. The Do you need to change the spatial attributes? page has many different settings you can use to
customize your floor plan drawing to your simulation model. Each of these settings is explained in more
detail in Floor Plan Settings. You might want to adjust these settings when you first import your floor
plan:
o Scale - FlexSim HC measures space in meters. If your AutoCAD drawing was created by a US-
based company, you might want to scale your drawing, converting it from inches to meters.
o Make drawing non-selectable - Keep this box checked in order to lock your floor plan into its
current position. Locking it in place will ensure that you don't accidentally move your floor plan
while you are building your model.
7. Click Finish to save the settings and close the Floor Plan Import Wizard.
Sample Floor Plan
FlexSim HC comes with a few sample AutoCAD drawings of floor plans when you first
install it. You can possibly use one of these samples to test out the Floor Plan Import
Wizard. The sample AutoCAD files are floor plans for a possible Emergency Room
facility and are named ER_large.dxg and ER_small.dxg.
Opening Model Settings
To check your model settings:
1. On the File menu, click Model Settings.
2. In the Model Settings dialog box, make sure that Embed media with model is checked, as shown in
the following image:
87
88
Changing Floor Plans
You can change a floor plan or its settings at any time by re-opening the Floor Plan Import Wizard:
1. If needed, click Toolbox on the toolbar to open the Toolbox in the left pane.
2. With the Toolbox open, you'll see an expandable menu that lists all the current floor plans you have
imported into your simulation model. Right-click the specific floor plan you want to edit and select
Properties from the menu, as shown in the following image. This will re-open the Floor Plan Import
Wizard.
3. Click Next a few times until you get to the Do you need to change the spatial attributes? page.
Make any changes to the settings that you would like. See Floor Plan Settings for more information
about the specific settings you can change.
4. Click Finish to save your changes and close the Floor Plan Import Wizard.
89
Floor Plan Settings
There are a number of settings you can use to customize your floor plan. The following image shows the
Do you need to change the spatial attributes? page of the Floor Plan Import Wizard, where you can
adjust these settings:
Each setting is explained in the following sections.
Visual Settings
You can change the visual settings for AutoCAD Drawings with a .dwg file on the
Customize layer visibility and color page.
Scale
FlexSim HC measures space in meters. If your drawing uses different measurement units, you can select
how you want to scale your floor plan drawing to convert it to meters. For example, if your AutoCAD
drawing is in inches, you would select inches to meters to scale it to meters. If you select Custom, you
will be able to scale it manually using the Scale boxes just below this menu.
If your AutoCAD drawing was created by a US-based company, you might want to scale your drawing,
converting it from inches to meters.
Scale, Location, and Rotation
FlexSim uses the classic Cartesian coordinate system to position objects within the model. For that reason,
FlexSim uses the terms X, Y, and Z to refer to the axis coordinates for the position, rotation and size of the
object:
The X axis moves or rotates the floor plan from left to right and resizes the floor plan's length
The Y axis moves or rotates the floor plan forward and back and resizes the floor plan's width
90
The Z axis moves or rotates the floor plan up and down and resizes the floor plan's depth
The X, Y, and Z boxes allow you to position the floor plan drawing so that it is exactly where you want it to
be in the model. You can type a number value in these boxes or use the arrows to adjust the default
values. Notice that as you edit the fields, you will immediately see the changes reflected in the floor plan.
Make Drawing Luminous
By default, this box is checked. This makes the floor plan easier to see in the model because it brightens
the lines to make them more visible and creates a stronger contrast with the model background. If you
would like your floor plan to be less visible, you could clear this check box.
Make Drawing Non-Selectable
By default, this box is checked. Keep this box checked in order to lock your floor plan into its current
position. Locking it in place will ensure that you don't accidentally move your floor plan while you are
building your model. If you would like to re-position your floor plan in your simulation model using your
mouse, you can clear this checkbox.
91
Troubleshooting Floor Plans
Because AutoCAD is a third-party software, sometimes files created by newer versions of AutoCAD do not
always function optimally in FlexSim HC. This section will discuss common problems and their solutions
when importing AutoCAD drawings into FlexSim HC. If these solutions do not solve your problem, please
feel free to contact FlexSim Customer Support at any time.
AutoCAD Drawing Isn't Visible
Sometimes when you import an AutoCAD Drawing, you won't see it in your model.
Make sure that:
You have allowed your model to embed media files. See Importing a Floor Plan File - Model Settings
for more information.
On the Customize layer visibility and color page, make sure the Visibility buttons are set to show
each layer in your drawing. You could also try changing the color of the layers to see if that helps
improve their visibility. See Importing a Floor Plan File and Changing Floor Plan Settings for more
information.
On the Do you need to change the spatial attributes? page, make sure you have checked the Make
Drawing Luminous box. See Floor Plan Settings - Make Drawing Luminous.
Anotherproblem might be that the point of origin for your AutoCAD file is far away from the actual drawing
of your facility for various reasons. To find your drawing, you might need to zoom out of the model until you
can see where the drawing is. To zoom in and out of the model, use the wheel button on your mouse.
Scrolling up will zoom in on the model and scrolling down will zoom out.
Strange Location Coordinates
When you import an AutoCAD drawing into your simulation model, FlexSim HC does its best to find the
actual drawing of your facility. However, the point of origin for your AutoCAD file might be far away from the
actual drawing of your facility for various reasons. For that reason, FlexSim might place the drawing of your
facility in strange place in the simulation model (as opposed to setting the location coordinates to 0, 0, 0). If
desired, you can try to change the location of your drawing by moving it by yourself. See Floor Plan
Settings for more information.
92
Introduction to the Library Objects
An important part of building a simulation model is to add some objects to your simulation model. Before
reading this section, you might want to make sure you are familiar with some of the Key Terms and
Definitions.
The Library (located in the left pane of the main window) has many different kinds of objects you could use
to build your simulation model. The following image shows a portion of the Library:
You'll also notice that the objects are broken down into five general categories based on how they function
within the model:
Patient Locations - Various objects that patients will interact with as they move through the simulation
model. Locations will remain stationary within the model. A location could be a door through which
patients enter or exit, a receptionist desk, a waiting room, an exam table, etc.
Resource Groups - Assorted objects that patients will use or interact with as they move throughout the
simulation model. A resource can be staff members, transports (such as wheelchairs and gurneys),
and medical equipment. The main thing that makes resource objects different from location objects is
that resources can move around inside the model.
93
Item Objects - Objects that will transport or process items. Items are physical objects that need to be
processed as part of a patient's treatment. Items can represent paperwork or something that needs to
be tested or processed in a lab, such as samples, cultures, or specimens.
Infrastructure - Objects that allow the patient to move throughout the model.
Visual Objects - Objects that are purely visual. They can give a more realistic appearance to the
simulation model, or they can be used to add customized text and graphics to the model.
Under each category you'll see several icons that represent sub-categories of objects. When you click on
one of the icons, it will open a menu showing several objects that you can put into your simulation model.
For example, under Patient Locations, when you click on Processing, it will open up a menu with more
than 40 different location objects that can be used to process a patient in the simulation model, as shown
in the following image.
A few of the icons do not have submenus. These objects can just be dragged from the Library and placed
directly into your simulation model:
Elevator
Storage
Path
94
Floor
Wall
Desk
Typically, a basic model will start with an Arrivals object, such as a door, which will create the patients that
will come to your simulation model. A lot of models also use a Queuing object, such as a waiting room,
and a Desk for a receptionist. Most basic models will also typically have many different kinds of
Processing objects, which is where many patients receive treatment. You might also want to add some
Staff Resource Groups to your model to represent your facility's human resources. Lastly, many basic
models end with an Exit, which removes patients from a simulation model.
Experiment a little bit by adding some different objects to your model. Try adding an Arrival object or any
other object into the model from the Library as desired.
95
Adding Objects to a Model
To add an object from the Library to your simulation model:
1. Click on any icon in the Library to open its menu. Be aware that a few select objects do not have
menus, in which case you can just skip directly to the next step.
2. With the menu open, click the object that you would like to add to your model. Your mouse pointer will
then change to the Add Object icon to indicate that you are in Add Objects mode.
3. In your simulation model, click on the approximate location where you want to add the object to your
simulation model. The object will then appear in your simulation model. You can always move the
object to a different location later. (See Moving, Resizing, and Rotating Objects for more information.)
4. Notice that after you add the model, your mouse pointer still has the Add Object icon, which means that
you are still in Adding Objects mode. As long as you are in this mode, you can continue to add more of
this kind of object by clicking somewhere inside the model.
5. To turn off Add Objects mode, either press the Esc key or right-click somewhere in the model.
Your object(s) should now appear in the simulation model.
Adding Resource Groups
The process for adding resource groups is slightly different than the process for
other objects. See Adding Resources to a Model for more information.
96
Adding Locations to an Area
Before reading this section, you might want to read Key Terms and Definitions - Locations vs. Areas to
ensure you understand the concepts discussed in this section. See also How Patients and Staff Move to
Locations or Areas.
When you first add a location to your model, that location will automatically be added to an area based on
its object type or category. For example, if you were to add a Bed object to your model, it would
automatically be assigned to an area called BedArea. If you added additional Bed objects to the model,
they would all be part of BedArea by default. You can use the default areas or you can create your own
custom areas, as discussed in the following sections.
Creating Custom Areas
To create a custom area:
1. Click on the location object that you would like to add to a custom area.
2. In Quick Properties, under the General Properties group, look for the Area box. This box displays the
name of the location's current area.
3. Click anywhere inside the Area box. The text inside the box will be highlighted, indicating that you can
now edit the area name.
4. Type the name of the new area you want to create. Be aware that the area name cannot contain any
spaces or special characters.
5. When finished, click anywhere outside of the Area box to save your changes.
When you open the Area menu, you should now see your new custom area listed along with the previous
area name.
Adding Other Locations to a Custom Area
To add other locations to a custom area that you have created:
1. Click once on the location object that you would like to add to your custom area.
2. In Quick Properties, under the General Properties group, look for the Area box. This box displays the
name of the location's current area.
3. Open the Area menu and select your custom area from the list.
Your location object will now be part of the custom area.
97
Customizing Object Properties and Settings
Once you have added an object from the library to your simulation model, you can edit any of its settings
by clicking on the object to select it. The Quick Properties pane (the right pane) will display all of the
settingsthat are available for that particular object, as shown in the following image:
Most of the objects have the same groups of settings. However, a few objects have settings that are
unique. Most of these settings will be discussed in this chapter, but the unique settings that are available
for Resource Group objects will be discussed in the chapter entitled Adding Staff and Resources.
The following table provides an overview of the groups of settings that are available for Patient Location
objects in the order they appear in Quick Properties:
Settings
Group
Availability Purpose
98
General
Properties
All objects
Changes the name of the object.
Can also assign the location to a different area.
See Adding Locations to an Area for more
information.
Visuals All objects Can be used to move, resize, or rotate the object
in the simulation model. See Moving, Resizing,
and Rotating Objects for more information.
Also changes the color and shape of the object.
See Changing the Shape and Appearance of
Objects for more information.
Arrivals Patient Arrivals
objects
Changes the frequency that patients arrive in the
simulation model.
See the chapter about Adding Patients, specifically
the section about Patient Arrival Patterns for more
information.
Patient
Condition
Patient Queuing
objects
Can cause something to happen to patients the
longer they are in the waiting room (such as
increasing their acuity level).
Can set specific conditions that will cause a patient
to leave early without being treated (such as a
long waiting time).
Maintenance Patient Processing
objects
Can be used to require a staff member to clean,
repair or perform some process on the object after
it has been used by the patient.
Entrance
Criteria
All patient location
objects except
Patient Arrivals
objects
Can determine the criteria that patients must meet
before being allowed to go to this location.
Can also set the priority by which patients will be
admitted to this location.
Can also determine the maximum occupancy of
patients that can come to this location.
Labels All objects Can be used to add a label to the object. Labels
can contain any custom information that you want
it to have.
Statistics All objects This group of settings is for display purposes only.
While a simulation is running, you can click the
object and view the current statistics for that
object, such as its state, throughput, etc. The
statistics will update in real time as the model is
running.
See Getting Data from a Simulation for more
information about statistics.
99
Advanced
Visuals
All objects Can be used to change the way the object is
displayed or animated.
Triggers All objects Can cause certain events or actions to occur when
something happens to the object, such as when a
patient arrives at the object.
Unless otherwise noted in the table above, many of these settings are explained in Additional Patient
Location Settings.
Patient Location Settings.
100
Moving, Resizing, and Rotating Objects
FlexSim uses the classic Cartesian coordinate system to position objects within the model. For that reason,
FlexSim uses the terms X, Y, and Z to refer to the axis coordinates for the position, rotation and size of the
object:
The X axis moves or rotates the object from left to right and resizes the object's length
The Y axis moves or rotates the object forward and back and resizes the object's width
The Z axis moves or rotates the object up and down and resizes the object's depth
You can use either your mouse or Quick Properties to move, rotate, and resize the objects in your model.
Using the mouse is helpful if you want to get your object to an approximate location, rotation, or size. Using
Quick Properties is better if you want your object's location, rotation, or size to be more precise.
In the following sections, the mouse method will be explained first, followed by an explanation of the Quick
Properties method.
Using a Mouse
The simplest way to move an object is to click on it and drag it to a different position in the model.
However, this only moves the object along the X and Y axes. You can use the mouse to move the object
up and down the Z axis using one of the following methods:
Click on the object and, while holding down the mouse button, use the mouse wheel button to scroll up
and down until the object is in the desired position.
Click on the object using both the left and right mouse buttons at the same time and, while holding
down the mouse buttons, move the mouse up and down in the model.
When you click on any object in a model, you'll notice that red, green, and blue colored cones appear
around the object (see the following image). This guide will refer to those colored cones as the object's
axis arrows.
101
Each axis arrow can be used to resize or rotate the object. If you click on one of the axis arrows, you can
drag the arrow to change the object's size. If you right-click on one of the axis arrows, you can drag the
arrow to rotate the object.
Each of the different colored axis arrows can change either the X, Y, or Z axis of the object's size and
rotation (see the following image):
Red axis arrows - Located on the right and left of the object, the red axis arrows change the object's
length or rotates the object on its X axis.
Green axis arrows - Located on the front and back of the object, the green axis arrows change the
object's width or rotates the object on its Y axis.
Blue axis arrows - Located on the top and bottom of the object, the blue axis arrows change the
object's depth or rotates the object on its Z axis.
Shortcut for Scaling Objects
FlexSim has a shortcut that can make it possible to scale an entire object's size by
5%. First, click on the object to highlight it (e.g. the yellow box and axis arrows will
appear around the object). Then press Ctrl+K to scale the object down (make it
smaller). Or press Ctrl+L to scale the object up (make it larger).
Turning Off the Axis Arrows
102
If you do not want the axis arrows to display when you click an object, you can turn it
off using the main menu. Click on the Edit menu and select Resize and Rotate
Objects. When you open the Edit menu again, you'll notice that the gray box around
the Resize and Rotate Objects tool is gone and that you don't see the axis arrows
when you click on an object any more.
Using Quick Properties
You might possibly want the position, rotation, and size of the objects to be more precise in your model. In
that case, it might be better to use the Quick Properties tool instead of using your mouse.
When you highlight an object in the model by clicking on it, the right pane displays the Quick Properties for
that particular object. In the Visuals group box, you'll see several different boxes for changing the object's
position, rotation and size, as shown in the following image:
To the left of each row, you'll see three different graphical icons, as explained in the following table:
Icon
Tool
Name
Description Notes
Position
tool
Changes the object's
position (location)
within the model
The object's position is determined by the coordinates
of the object's upper left corner. If the object is
rotated, the position will be based on the coordinates
of any part of the object that is in the uppermost left
position.
Rotate
tool
Rotates the object The object will rotate on its center axis.
Resize
tool
Rotates the object Every object in the Library has a default size. FlexSim
HC uses meters to measurelength.
103
Using each tool and its corresponding axis-coordinates, you can change the object's position, rotation, or
size. You can either type a value in the box or use the arrows to change the values.
The following table explains how each of the different tools can change the object based on the axis you
change:
X Y Z
Position
Moves the object left and
right on the X axis
Moves the object forward
and back on the Y axis
Moves the object up and
down on the Z axis
Rotation
Rotates the object left and
right on the X axis
Rotates the object forward
and back on the Y axis
Rotates the object up and
down on the Z axis
Resize
Resizes the object's
length
Resizes the object's width Resizes the object's depth
104
Changing the Shape and Appearance of Objects
FlexSim HC has a number of settings that you can use to change the visual appearance of objects in the
Library. You can change:
Color - You can customize the basic color scheme of every kind of object. Some objects have more
color settings than others.
Shape - You can change the object's shape to any other shape within its object category. For example,
you could change the shape of a Bed to an Exam Room because they are both Patient Processing
location objects.
Because the Staff Resource Group objects look like people, you can make a lot of changes to their visual
appearance, such as assigning different genders, skin tones, clothing, and other physical characteristics.
You can assign different looks to individual members in a given Staff Resource Group too. (See Changing
the Appearance of Staff Resources for more information.)
The Eyedropper
Whenever you see the Eyedropper button you can click it to sample a color from
some other object in the simulation model.
Changing the Color or Shape of Most Objects
To change the color or shape of most Library objects:
1. Click on the object in the simulation model to select it.
2. In Quick Properties under Visuals, select a different color from the Color menu or a different shape
from the Shape menu, as shown in the following image:
105
Additional Patient Location Settings
The following sections will give a more detailed explanation of some of the Patient Location settings that
have not been discussed in depth in this chapter up to this point. The settings are discussed in the order
that they appear in the Quick Properties pane.
If after reading this section you still have questions about some of these settings, please contact FlexSim
Customer Support.
Patient Condition
The Patient Condition group is only available for Patient Queuing objects. These settings can cause
something to happen to patients the longer they are in the waiting room (such as increasing their acuity
level). You can also use these settings to determine the specific conditions that will cause a patient to
leave early without being treated (such as a long waiting time).
The Patient Condition settings are shown in the following image:
To change the settings:
Evaluate patients every - Type a number in this box or use the arrows to determine how frequently the
waiting room should evaluate the patients that are currently in the waiting room.
Patient Condition Changes - Use this box to determine what should happen when the patients in the
waiting room are evaluated. When you click on the arrow next to this box and select Conditional
Change, a box will pop up that will guide you through the process.
Patient Leaves Early - Use this box to determine the conditions that will cause a patient to leave early
without being treated. When you click on the arrow next to this box and select Conditional Early Exit,
a box will pop up that will guide you through the process.
Maintenance
The Maintenance group is only available for Patient Processing objects. These settings can be used to
require a staff member to clean, repair or perform some process on the object after it has been used by the
patient.
The Maintenance settings are shown in the following image:
106
To change the settings:
1. Check the Maintenance required check box to enable the other settings in this group.
2. In the Process Time box, enter a number that will represent the amount of time it takes to perform
maintenance on this object after a patient has used it. See Processing Time for more information about
this setting.
3. In the Staff box, use the menu or the eyedropper to select which staff member should perform the
maintenance. See Staff Requirements for more information about this setting.
4. Use the Priority box to change the priority level of the maintenance activity. See Staff and Resource
Priorities for more information about this setting.
Entrance Criteria
The Entrance Criteria group is available for all objects except Patient Arrivals objects. These settings can
be used to determine the criteria that patients must meet before being allowed to go to this location. You
can also set the priority by which patients will be admitted to this location. And you can change the
maximum occupancy of patients that can come to this location.
The Entrance Criteria settings are shown in the following image:
To change the settings:
Entrance Criteria - Use this menu to determine what criteria the object will use to determine which
patients should be allowed to go to this location and their priority.
Maximum Occupancy - Type a number in this box or use the arrows to determine the maximum
number of patients that will be allowed to come to this location.
Labels
You can use the Labels settings to add a custom label to any object. Labels can be used to gather
statistical data or to allow for more advanced simulation model functions, such as Global Tables. This
107
version of the User Manual will not discuss labels in depth. Contact FlexSim Customer Support if you
would like more information about labels.
Advanced Visuals
You can use the Advanced Visuals settings to change the way the object is displayed or animated. This
version of the User Manual will not discuss labels in depth. Contact FlexSim Customer Support if you
would like more information about Advanced Visuals.
Triggers
You can use the Triggers settings to cause certain events or actions to occur when something happens to
the object, such as when a patient arrives at the object. Triggers can be used to create more advanced
simulation model functions. This version of the User Manual will not discuss triggers in depth. Contact
FlexSim Customer Support if you would like more information about triggers.
108
Introduction to Connecting Locations and Item Objects
After you've placed all the objects in your simulation model, you need to make connections between the
objects so that patients or items will move from object to object as needed. If you don't make connections
between objects, your patients or staff members could get stuck in their current location and be unable to
move when you run your simulation model.
You can make these connections using the Flowchart tool. As its name suggests, the Flowchart tool looks
like an actual flowchart, with shapes representing different objects or areas in your simulation model, as
shown in the following image:
The Flowchart tool has two different screens for connecting objects:
Patient Areas - Use this screen to view and connect all of the areas in your model.
Item Objects - Use this screen to view and connect all Item Objects in your model.
Any time you add a new location to an area in your simulation model, the area will automatically show up
as a shape in the Flowchart tool in the PatientAreas screen. (See Adding Location to Areas for more
information.) If you added any Item Objects to your model, these will also show up as a shape in the Item
Objects screen.
The guiding principle to keep in mind when using the Flowchart tool is: unless you make connections
between location objects, your patients won't be able to move or interact with the objects in your model. By
that same token, unless you make connections between Item Objects, these objects will not be able to
transfer an item from one object to another. As a general rule, it's better to make too many connections
between areas or Item Objects rather than too few.
109
The Flowchart Tool at a Glance
The main elements of Flowchart tool are labeled in the following image:
Each element will be described in more detail in the following sections:
Flowchart
The Flowchart is the main workspace you will use to create the connections between objects in your
model.
Shape
The Flowchart shapes represent different things depending on whether you're viewing the the Patient Area
or Item Objects screen:
Patient Areas - The shapes represent areas
Item Objects - The shapes represent Item Objects
Connection
A connection is represented by an arrow between two objects. This allows patients or items to move from
one area or Item Object to another.
Be aware that if the connection is only pointed one way, it means that the patients or items can only move
from the first object to the second. For example, in the following image, patients can only travel from the
Waiting Room Area to the Immunization Area, not vice versa:
110
If you want patients to be able to travel back from the Immunization Area to the Waiting Room Area, you
need to make another connection going from the second object back to the first. When you've made that
connection, you'll see a bi-directional arrow, as shown in the following image:
In this example, now patients would be able to travel back and forth between the Waiting Room Area and
the Immunization Area.
Toolbar
The toolbar has several available tools, as shown in the following image:
These tools are listed and described below:
Viewing Modes - Allows you to switch between the two different flowchart screens:
Patient Areas - Use this screen to view and connect all of the areas in your model.
Item Objects - Use this screen to view and connect all Item Objects in your model.
Connection Tools - Allows you to switch between connection mode or disconnection mode. (See Using
the Flowchart Tool for more information.)
Miscellaneous Tools - A variety of tools with different uses:
The List Locations button will make the shapes display all the locations are contained in each area.
This button is not available when looking at the Item Objects screen.
The Remove Connections button will remove all the connections between shapes.
The Reset button will restore all the shapes to their default positions in the flowchart.
Quick Properties
When you click on a shape, you'll be able to use the Quick Properties pane to change the default settings
of each shape:
Width - Type a value in this box or use the arrows to change the width of the shape.
Color - Use this menu to change the shape's color.
Active locations - If an area has more than one location, you can select how many of those locations
you are active. This means that if you select a number less than the total number of locations in the
111
area, one or more of your locations will not be available for a patient to use when they go to that area.
For example, pretend you've got a Bed Area with four beds. If you select 3 from the Active locations
menu, that means only the first three beds will be active. The fourth bed will have a red floor
underneath it and patients won't be able to use that particular bed.
Upstream and Downstream Connections - Use this menu to view the shapes connected to this
shape. When you are viewing the Patient Areas screen, you can also use this tool to determine the
priorities the model should follow when determining where to send a patient. You can drag and drop
the locations in each area to re-organize their priority. When patients are assigned to go to a particular
area, they will be assigned to the first available area listed here. If the first location is occupied, the
patient will be assigned to the second location if it is available (and so forth).
112
Using the Flowchart Tool
To open the Flowchart tool, click the Flowchart button on the main toolbar. The Flowchart tool will appear
in a pane to the right of your model.
Connecting Shapes
To connect two shapes, you need to turn on connection mode. One way to turn on connection mode is to
use the Connect Shapes tool:
1. Click the Connect Shapes tool on the Flowchart toolbar. (See The Flowchart Tool at a Glance -
Toolbar for more information.) You will then be in connection mode. When you are in connection mode,
your mouse pointer will change to a plus sign with chain link symbol next to it, as shown in the following
image:
2. Now that you are in connection mode, you can connect two shapes together. Click on the first shape
you want to connect. You will notice a yellow line will appear between the object you clicked and your
cursor as you move your mouse away from the shape.
3. Click on a second shape to create the connection between the two shapes.
4. You will still be in connection mode even after you connect two shapes together. You can continue
connecting shapes together if needed.
You can use a few different methods to turn off connection mode when you are using the Connect Shapes
tool:
Click the Pointer tool on the Flowchart toolbar.
Press the Esc key.
Right-click your mouse (which will change it to a different mode such as disconnect mode).
Keyboard Shortcuts
You can also possibly use keyboard shortcuts to turn connection mode on or off.
Press and hold down the A key to turn on connection mode. Connection mode will
automatically turn off as soon as soon as you stop pressing the shortcut key. Continue
pressing and holding down the key if you want to continue connecting more shapes
together.
Disconnecting Shapes
To disconnect two shapes, you need to turn on disconnection mode. One way to turn on disconnection
mode is to use the Disconnect Shapes tool:
113
1. Click the Disconnect Shapes tool on the Flowchart toolbar. You will then be in disconnection mode.
When you are in disconnection mode, your mouse cursor will change to a plus sign with a broken chain
link symbol next to it, as shown in the following image:
2. Now that you are in disconnection mode, you can remove a connection between two shapes. Click on
the first object you want to disconnect. You will notice a yellow line will appear between the object you
clicked and your cursor as you move your mouse away from the shape.
3. Then click on the shape to which it is connected. The connection will disappear.
4. You will still be in disconnection mode even after you remove the connection between two shapes. You
can continue disconnecting shapes together if needed.
You can use a few different methods to turn off disconnection mode when you are using the Disconnect
Shapes tool:
Click the Pointer tool on the Flowchart toolbar.
Press the Esc key.
Right-click your mouse (which will change it to a different mode such as pointer mode).
Keyboard Shortcuts
You can also possibly use keyboard shortcuts to turn disconnection mode on or off.
Press and hold down the Q key to turn on disconnection mode. Disconnection mode
will automatically turn off as soon as soon as you stop pressing the shortcut key.Continue pressing and holding down the key if you want to continue removing
connections.
114
Introduction to Staff and Resources
This chapter will discuss how to add and manage staff members and other resources in your simulation
model.
As a reminder, in FlexSim HC, a resource is a specific object that patients will use or interact with as they
move throughout the simulation model. Resources can move around the model if needed. Resource
objects are listed under Resource Groups in the Library, as shown in the following image:
There are basically four types of resources:
Staff - Staff members represent human resources such as doctors, nurses, receptionists, etc.
Transports - Transports are used for moving patients from one location to another such as
wheelchairs, gurneys, ambulances, etc.
Equipment - Equipment represents medical equipment that can easily move around the simulation
model such as IV carts, ventilators, food carts, etc.
Elevator - Elevators can be used to move objects in simulation models with more than one floor. Be
aware that this category only has one object (the Elevator). Therefore you won't see a submenu of
objects when you click on the Elevator icon in the Library. You can just drag an Elevator directly from
the Library and into your simulation model
A resource group (also called a group for short) is a collection of at least one or more type of resource.
For example, you can create a group called Nurses that has four nurse nurse staff members associated
with it. Each nurse is a member of the Nurses group. You can then create patient activities in the Patient
Track Manager that can use one of the available group members in the Nurses Group to work on the
activity.
All resources in your simulation model must be part of a group. When you first add a resource to your
model, there will only be one resource in that group (one group member). You will then add more group
members to that group in order to add more resources of that type.
115
Adding Resources to a Model
The process for adding a resource to a model is very similar to the process of adding any other object to a
model. Simply put, you click on an object in the Library and drag it into your simulation model. (See Adding
Objects to a Model for more information.)
However, there are a few slight differences. One difference is that when you add one of the objects from
the Resource Group category in the Library, you are not merely adding a single resource. You are actually
adding a resource group object. You could possibly think of a resource group as a container for multiple
resources (group members). When you first add a resource group, it will only have one group member at
first. However, you can possibly add more resources (group members) to a resource group after you've
added it.
For example, when you add a wheelchair to your simulation model, you are actually adding a wheelchair
group that only has one wheelchair group member by default. If you wanted to have more wheelchairs, you
would add additional group members to the wheelchair group.
The advantage of having resource groups is that you can assign an entire group of resources to work on
an activity rather than assigning each resource individually. For example, you can assign the wheelchair
group to an activity and then the patient can use any of the wheelchairs in that group as opposed to being
limited to one specific wheelchair. (See How Staff and Resources Are Assigned to an Activity for more
information.)
This is especially useful when assigning staff resources to work on an activity. For example, perhaps you
want to simulate a health care facility with two physicians. Rather than assigning just one physician to
examine a patient, you could have a Physicians resource group with two group members (Physician1 and
Physician2). You could then assign the Physicians group to examine a patient. That way either of the two
members of the Physicians group could perform the examination if they are available. The patient wouldn't
have to needlessly wait for Physician1 to examine them if Physician2 is available.
Adding Members to a Resource Group
Once you've added a resource group to the simulation model, you can add more members to the group
using the following steps:
1. Click on a resource group to select it. Be aware that selecting a group can sometimes be problematic.
See Selecting a Resource Group or Group Member for more information.
2. In Quick Properties, under Edit Group, use the Total Members box to increase or decrease the
number of resources in this group. You can either type a value in the box or use the arrows to adjust
the number of resources.
Copying Members of a Resource Group
Sometimes you might want to make a copy of an individual member of a resource group. For example, you
could copy a group member if you've changed the group member's settings and you'd like to add an
identical group member that uses those same settings. To copy a group member:
1. Click on an individual member of a resource group.
2. In Quick Properties, in Edit Group Member, you can click the Plus button to add a copy of the
currently selected group member to the resource group.
116
117
Selecting a Resource Group or Group Member
When selecting a resource group or group member, be careful to make sure you are selecting the correct
object. Resource groups are represented by a colored rectangular square on the floor of the simulation
model. In the following image, the resource group is the blue rectangle that the RNs are standing on:
Resource groups act like a base of operations for the resources. When a resource is not in use as part of a
patient activity, the resource will return to its resource group.
In order to select a resource group, you need to click on the colored rectangle underneath the resources,
as shown in the following image:
Make sure you have not accidentally selected a group member instead. The following image shows how an
individual group member looks when selected:
118
119
Renaming Groups and Group Members
By default, groups will be named based on what type of object they are. For example, if you added a CNA
staff group object to your model, the first group will be called CNAs, the second CNA group will be called
CNAs2, and so forth.
To change the name of the group:
1. Select the group, making sure you don't select an individual group member. (See Selecting a Resource
Group or Group Member for more information.)
2. In Quick Properties, under General Properties, type a new name in the Name box.
3. Either click outside the box or press Tab to save the changes.
In that same vein, you can change the name of individual group members. By default, group members will
be named based on the group they belong to. For example, the first member of the CNA group will be
named CNA_1, the second member will be CNA_2, and so forth.
To change the name of a group member:
1. Select the group member, making sure you don't select the actual group itself. (See Selecting a
Resource Group or Group Member for more information.)
2. In Quick Properties, under General Properties, type a new name in the Name box.
3. Either click outside the box or press Tab to save the changes.
Dynamic Group Member Names
It's possible to make a group member's name change whenever the group name
changes. All you have to do is make sure you only change the part of the group
member's name that comes after the underscore. For example, let's say you had a
group called CNA and a group member named CNA_1. If you wanted to use the
CNA's name instead of a number, you could rename the group member to CNA_Pat.Later, if you changed the group name to Nurses, the group member would
automatically update to Nurses_Pat.
120
Moving Groups and Group Members
You can easily move or rotate an entire resource group the same way you would move any other object.
(See Moving, Resizing, and Rotating Objects for more information.) However, if you want to move or rotate
an individual member of a resource group, you'll have to change its position relative to the resource group.
The resource group is represented by a colored square that is initially positioned underneath the group
member. You can change its position using the mouse or Quick Properties. Each method will be explained
below.
Moving Group Members Using the Mouse
To re-position group members relative to the group, click on the group member and drag it to the position
you want it to be relative to the resource group box. Notice that if you then click on the resource group box
and drag it to a different position, the group member(s) will also move relative to the resource group box's
new position.
Moving Group Members Using Quick Properties
To re-position group members relative to the group using Quick Properties:
1. Click on the individual group member to select it. (See Selecting a Resource Group or Group Member
for more information.)
2. In Quick Properties, under Edit Group Member, adjust the settings for the X Offset, Y Offset, or Rot
Offset.
121
Changing the Appearance of Staff Resources
As mentioned in the introduction to this topic, there are many different settings that you can use to
customize the appearance of individual staff members. You can change many settings, as shown in the
following image:
To change these settings:
1. Click on the staff member in the simulation model to select it. (See Selecting a Resource Group or
Group Member for more information.)
2. In Quick Properties under Person Visuals, adjust any of the visual settings:
o Shape - The staff member can either be a male or female shape and can possibly push a cart.
o Head - This setting changes the staff member's hairstyle, hair color, and skin tone.
o Shirt, Pants, and Shoes - You can use these three settings to change the color or fabric of the
staff member's clothing.
o Accessories - Check the box next to one of the accessories in this list to give the staff member
any of the accessories listed here (such as stethoscopes or surgical masks). If you also click on
one of the accessories, you will be able to use a box beneath the Accessories box that will
allow you to change the color or fabric of the accessory.
The Eyedropper
122
Whenever you see the Eyedropper button you can click it to sample the settings
from another other object in the simulation model. In this case, you can use it to
sample the color settings for a particular object. See Eyedropper for more information.
123
Creating Alternate Resource Groups
Before reading this section, you might want to read Introduction to Staff and Resources to ensure you
understand the difference between a resource group and a group member.
An alternate group is a collection of smaller resource groups (usually staff resource groups) combined
together into one large group. You can then assign the alternate group to a specific activity so that
members in any of the smaller groups can be assigned to work on an activity.
Sometimes you might want two different resource groups to be able to do the same task. For example, let's
say you have a day shift of nurses (perhaps the group is named Day_Nurses) and a night shift (named
Night_Nurses). Each group has four group members. Because both the day shift nurses and night shift
nurses work on identical activities, you will want the members of either group to be able to work on a
particular patient activity. The solution is to create an alternate group that will contain both the day shift
nurses and the night shift nurses. (See the Shift Schedules Tool for information about creating different
shift schedules for staff members.)
You'll create the alternate groups using the Alternate Group tool. You can access the Alternate Group tool
using the Toolbox. The Alternate Group tool uses the tool components feature. This means that you will
use the Toolbox to create, rename, delete and create a duplicate copy of each alternate group. (See Using
the Toolbox and Toolbar for more information.)
To create your first alternate group:
1. If needed, click Toolbox on the toolbar to open the Toolbox in the left pane.
2. Click Add new tool at the top of the Toolbox. This will open a menu of possible tools.
3. Select Alternate Groups. This will create a new group named AlternateGroup1 in the Toolbox and will
open up the newly created group in the Alternate Group tool, as shown in the following image:
4. You'll come back to the Alternate Group tool in a moment, so leave it open. In the Toolbox, right-click
AlternateGroup1 and select Rename from the menu. Change the name of of this group to All_Nurses
and hit the Enter key.
124
5. Now go back to the Alternate Group tool and add some members. Click the Plus sign at the top of
the Alternate Group tool. This will open up a sub-menu listing all the resource groups that you've added
to your model so far.
6. Select the name of the resource group you want to use. In this example, you'd select Staff Groups,
then Day_Nurses. Select Day_Nurses one more time to add the entire group to this alternate group.
(Alternatively, you could add all four members of the Day-Nurses group one by one, if desired.)
7. Repeat steps 5 and 6 to add the Night_Nurses group.
8. If desired, you can close the Alternative Group tool now by clicking on the X in the top right corner of
the tool.
Now you can assign this group to work on an activity and both the day shift and the night shift nurses will
be able to work on it.
NOTE: The Quick Properties for the Alternate Group Tool will not be explained in this version of the User
Manual. For information about these settings, contact FlexSim Customer Support.
125
Creating Patient-Centered Activities
After you've finished building the basic layout of your facility in your simulation model, you'll need to
determine how the patients and staff members will interact within your simulation model. This chapter will
explain how to create patient-centered activities, which are the series of activities based on what patients
will do once they enter a simulation model until they exit. These activities can include:
Processes that the patient will do themselves
Processes performed by staff members on the patient
Processes that are related to a patient's care but which are performed by staff in a location other than
the patient's current location (such as a doctor leaving the room to consult with a nurse, filing a
prescription, etc.)
Routine Staff or Location Activities
Most staff activities are patient-centered, meaning they are determined by the patient's
movement and behavior within the model. However, you might want to simulate
routine staff activities will occur on a regular basis. For example, you might want to
simulate a receptionist answering incoming phone calls. Or you might want to simulate
a nurse in a hospital ward who is required to check every patient's vital statistics once
an hour. See Routine Staff or Location Activities for information about simulating these
kinds of activities.
To create patient-centered activities, you will primarily use the Patient Track Manager to determine how
patients and staff will behave once they arrive in your simulation model. The following image provides a
high-level overview of how the various components of the Patient TrackManager are interrelated:
126
A patient track (also sometimes referred to simply as a track) is the overall plan for a patient's care. At its
most basic level, a patient track is a step-by-step series of activities that a patient will follow from the time
they arrive in the simulation model until the time they exit the model. However, it is possible to build more
complex patient tracks in which activities occur simultaneously or which are dependent on certain
conditions. You can also possibly have more than one patient track for different types of patients. For
example, if you were simulating a pediatrician's office, you could possibly have two different patient tracks:
one track for a Wellness clinic that gives periodic check-ups to healthy children and one track for a Sick
clinic that treats children with an illness or other health condition. (You would create the two different
classifications of patients using the Patient Arrival object.)
Each patient track contains an activity list, which is a list of all the activities that patient and staff will follow
when an individual patient enters the simulation model until the time the patient exits the model.
Each activity list contains multiple activities. Each activity represents a particular event or action that will
occur at a certain point as the patient proceeds through the simulation model. For example, if you were
simulating a pediatrician's office, you would have an activity for patients as they arrive and walk to the front
desk to check in. Then you would have another activity while they filled out their initial paperwork and paid
their co-pay at the front desk. Then there would be another activity while patients waited in the waiting
room, and so forth.
Each activity consists of a series of tasks, which are the basic steps involved in each activity. The tasks for
each activity depend on the activity's settings and activity type, which will be explained in more detail later
in this chapter.
The first half of this chapter will explain some of the important general concepts about activities. The
second half will discuss how to use the Patient Track Manager to build effective patient tracks for your
simulation model.
work.
127
Introduction to Key Concepts About Activities
Activities are the key component of simulation models in FlexSim HC. Because activities are so crucial to
how simulation models work, they are complex. While their complexity is what makes activities so feature-
rich, they can also be difficult to understand at first. This section of the User Manual will discuss some of
the basic concepts and common misconceptions related to how activities work.
128
Most Activities are Patient-Centered
One of the most important concepts to keep in mind when designing your activity list is to remember that
nearly all activities are centered around what individual patients are doing in your simulation model. Nearly
everything in the simulation model is driven by:
The arrival or departure of patients
The patient's status (such as their acuity)
The patient's activities and movement inside the model
The reason this concept is important is that many new FlexSim HC users typically think that staff members
like doctors, nurses, and receptionists perform actions independently of patients. Keep in mind that in HC,
nearly everything the staff members do will be in relation to the patient's care. Nearly all of the activities in
the activity list in the Patient Track Manager will be based on the patient's actions.
Exceptions
While the majority of activities in HC are patient-centered, there are a few exceptions. One exception is
when items (such as cultures, blood samples, etc.) are created and processed in labs. While items are
being processed in a lab, the lab processes will run independently, meaning they will have a different set of
activities that are based on the item's progress as it is being processed in the lab. Item processing will not
be affected by the patient's activities, although it is possible that a patient activity might not begin until an
item has finished being processed.
Another exception is simulating routine staff or location activities that will occur on a regular basis. For
example, you might want to simulate a receptionist answering incoming phone calls. Or you might want to
simulate a nurse in a hospital ward who is required to check every patient's vital statistics once an hour.
See Routine Staff or Location Activities for information about simulating these kinds of activities.
129
Building Complex Patient Tracks and Activity Lists
If all the patients in your simulation model will follow the same procedures when they come to your health
care facility, you will only need to build one patient track and it will be relatively easy for you to build a
simple activity list.
However, if you want to build a more complex track in which patients will follow a different set of
procedures based on the type of patient they are or based on complex conditions, you might want to put a
little thought into the best method for building your patient activity system. (See Using the Patients
Classification Tool for more information about the different ways you can create different types of patients
in FlexSim HC.)
There are basically two methods for building a complex patient activity system:
Multiple Patient Tracks - You can build more than one patient track and assign different types of
patients to different patient tracks. (See Using the Patients Classification Tool for more information
about how to assign different patient types to different tracks.)
One Track With Decision Points - You can build one patient track and use a Decision Point (which is
a specific activity type) somewhere in the activity list. The Decision Point will then use a set of criteria
that you will define to determine which activity (or set of activities) the patient should do next.
When deciding which method to use, you should consider whether different types of patients will follow the
same basic procedures with a few minor variations as opposed to having very different procedures from
the outset. If there will be only a few minor variations, you should probably just use a single track with a
Decision Point. If different types of patients will follow very different treatment plans, then you should
probably use multiple patient tracks.
See Adding and Managing Patient Tracks for more information about creating multiple patient tracks. And
see Decision Points for more information about creating Decision Point activities.
130
How Activities Begin
Sometimes new HC users assume that patients will complete a set of activities based on the order in which
the activities are listed in the activity list. They assume that when a Patient finishes one activity, the next
activity listed in the track will automatically begin. This is not the case.
In reality, there are two catalysts that can make an activity begin:
Predecessors - In the settings for each activity, you can check the Use Predecessors box and, in the
text box below, indicate the activity (or activities) that must be completed before the current activity can
begin. As soon as the Predecessor(s) finish, the current activity will begin.
Next Activity - In the settings for each activity, you can use the Next Activity text box to indicate which
activity (or activities) should start when the current activity is finished.
The Predecessor method and the Next Activity method have fairly subtle but important differences. The
key difference has to do with whether the simulation system is constantly attempting to begin the activity
(the Predecessor method) as opposed to waiting until it is specifically directedto begin the activity (the
Next Activity method).
The Predecessor method is the default method used in FlexSim and we recommend you primarily use that
method to begin an activity. However, the Next Activity method can be helpful when you want the next
activity to begin based on a complex set of conditions.
Both methods will be explained in more detail in the sections of the User Manual that explain how to adjust
the settings for those two methods. See Basic Activity Settings - Predecessors for more information about
the Predecessor method and see Specific Activity Type Settings - Next Activity for more information about
the Next Activity method.
Be aware that there are a few other catalysts that can cause an activity to begin, such as start conditions,
simulation start time conditions, and repeat intervals. However, they are more commonly used in routine
activities rather than patient-centered activities. Since this chapter is about patient-centered activities, it will
not be discussed in this section of the User Manual. See Routine Staff or Location Activities for more
information.
Activities Usually Can't Be Repeated
Once a patient has completed an activity in the activity list, that patient will not be
able to do that activity again. The only exception is if you are using a repeat
interval. Beginners should avoid using repeat intervals because it can cause an
infinite loop that can crash the simulation model when it runs.
If you want a patient to do the same activity twice, you could possibly create two
identical activities in your activity list.
131
What Happens During an Activity
HC has ten different pre-built Activity Types. Each activity type has a roughly similar set of phases, as
shown in the following image:
The following table describes each phase in more detail:
Phase General Tasks Visual Appearance
Beginning
Phase
The activity starts
The system will check if the locations,
staff, and/or resources needed for
this activity are available
If unavailable, the system will request
the necessary location, staff, and/or
resources (in that order)
If available, the next phase begins
Patients will remain in
their current location and
appear to do nothing
132
Assignment
Phase
When the required location, staff,
and/or resources become available,
they are assigned to the current
activity (in that order)
Patients will remain in
their current location and
appear to do nothing
Movement
Phase
If staff has been assigned to the
activity, they will travel to the
patient's current location or to a
different designated location
If a staff member is assigned to get a
resource (such as a piece of
equipment or a transport), the staff
will travel to the resource and move it
to its designated location
If the patients are supposed to move
to a new location, the patients will
move to the assigned location
(patients can walk unattended or
they can be escorted/transported by
staff)
If a staff member needs to
pick up a resource, the
staff will travel to the
resource and then move
it to the designated
location
If a staff member is
escorting or transporting
the patient, the staff
member will travel with
them to the designated
location
If a staff member is
assigned to go to a new
destination, the staff
member will travel to the
new destination
If a patient is walking
unattended, the patient
will travel to the
designated location
Process
Phase
During this phase, there is a time
delay while the process is occurring
For example, if the activity
processing time for a patient in
surgery is 45 minutes, the patient
and any staff will be in the operating
room for 45 minutes once this phase
begins
The patient and any
assigned staff or
resources will remain
stationary at their current
location
No additional animations
will occur
Concluding
Phase
If needed, any items or messages will
be created and sent to their
appropriate destination
If a resource (such as a piece of
equipment or transport) is supposed
to be returned to its original location,
a staff member will return it at this
time
The location, staff, and resources will
be released unless they have been
reserved or "kept" for the patient's
next activity
Patients will stay at their
current location
If staff and/or resources
have been reserved or
"kept" for the patient's
next activity, the staff and
resources might remain
at their current location
If not needed for the next
activity, the staff and
resources will return to
their default location or
will begin their next
assigned activity
133
Any activities that are set to begin
when this activity concludes will now
begin
There might occasionally be some variation in how these tasks are carried out depending on the activity
type. See Activity Types for more information about the specific tasks that will occur during each activity
type.
134
How Patients and Staff Move to Locations or Areas
When you are building activities, sometimes you'll want to indicate that patient or staff members will travel
to a different destination within the simulation model. You should be careful when deciding whether to send
a patient or staff member to a specific location as opposed to an area.
As a reminder, a location is a specific object that patients and staff will interact with as they move through
the simulation model. A location could be a receptionist desk, a bed in a waiting room, an exam table, etc.
By contrast, an area is a general collection of related locations. For example, imagine your simulation has
six different Bed Objects (which are locations). They would automatically be part of the BedArea (unless
you changed the area name to something different like Examination_Rooms).
If you assign the patient or staff to go to an area, then the patient or staff will go to any available location
within that area. If all the locations inside the area are currently occupied, patients will wait in their current
location until one becomes available.
By contrast, if you assign the patient or staff to go to a specific location, they will only be able to go to that
specific location and nowhere else. This could create an unnecessary delay if all the patients attempt to go
to Bed 1 when there are six other Bed Objects they could go to within the Bed Area. For that reason, it
might be better to assign patients to a general area rather than a specific location.
Patient Locations
Always keep in mind that the patient's last location at the end of one activity is
where the patient will be located when the next activity begins. Unless you assign
the patient to a new location in the next activity, the patient will remain in that
same location.
135
How Staff and Resources Are Assigned to an Activity
When you are building activities, sometimes you'll want to assign staff members or other resources to the
activity. You should be careful when deciding whether to assign a specific staff or resource to an activity as
opposed to a resource group.
As a reminder, a resource is a specific object that patients will interact with as they move throughout the
simulation model. A resource can be staff members, transports (transportation items such as wheelchairs
and gurneys), and medical equipment.
By contrast, a resource group is a general collection of resources. For example, imagine you wanted to
have a simulation model with four nurses. You would create a resource group (see Adding Resources to a
Model for more information) and rename it so that it was called Nurses. By defaultthis group will begin with
one group member (one nurse). You could add more members to this group until there are four members
of the Nurses group (four nurses).
If you assign a resource group to an activity, then any available staff or resources in that group will be
assigned to the activity. If all the resources in the group are being used in a different activity, patients will
wait until one becomes available.
By contrast, if you assign an individual staff member or specific resource to an activity, then the activity will
only be able to use that specific resource and nothing else. This could create an unnecessary delay if all
the patients need Nurse 4 when there are three other nurses in the Nurse Group they could use. For that
reason, it might be better to assign resource groups rather than a specific resource.
136
Staff and Resource Priorities
As was discussed in What Happens During an Activity, during the Beginning Phase of an activity, the
system will check the availability of the staff and/or resources needed for the activity. By default, the
system will assign resources to activities based on the order in which the resource requests were received
(first in, first out).
However, what if there are certain activities that should have a higher priority over others? For example, if
you were simulating an Emergency Room, you would want a patient with a gunshot wound to have a
higher priority than a patient who merely needs stitches for a small laceration. You would want the required
staff to stop the current activity they were working on and begin working on the patient with the gunshot
wound first.
You can create this kind of complexity using FlexSim HC's priority system. The priority system has two
important terms that you need to understand:
Priority Level - This is a number you can assign to an activity's resource requests. By default, all resource
requests are assigned a priority level of 150. You can customize the priority level by changing the priority to
any number you want. There is no limit to how many digits you can use.
Tiers - Different priority levels belong to different tiers. A tier is a range of approximately 100 numbers. The
following table illustrates the relationship between tiers:
Priority Levels Tier
0-99 First tier
100-199 Second tier
200-299 Third tier
300-399 Fourth tier
Etc. Etc.
Priority levels 0-99 are in the first tier and are considered to have a lower priority relative to other tiers.
With those terms in mind, the following are a few important concepts about the priority system that you
should keep in mind:
All of the resource requests for a particular activity will be assigned the same number. So, if you
assign a priority level of 75 to the staff resources for a particular activity, any requests for other
resources such as equipment or transports will also be assigned a priority level of 75.
When a resource request has a higher priority level than another request, it will be assigned the
resource first. For example, imagine that two activities are requesting a staff member. Perhaps one
has a priority level of 150 and another one has a priority level of 151. Once a resource becomes
available, the request with the priority of 151 will be assigned the resource first.
Resources that are currently assigned to an activity in a lower tier will be re-assigned to a new
activity if the system receives a new resource request that is in a higher tier. Assuming that no
other staff resources are available, staff members assigned to an activity will stop working on that
137
activity and will instead go work on any activities that are in a higher tier. To use the example of an
emergency room that was mentioned earlier, let's say a staff member is preparing to stitch up a
patient's lacerated leg, which possibly has a priority level of 215. Suddenly, a patient with a gunshot
wound enters the facility and needs immediate surgery, which has a possible priority level of 300.
Because the surgery is in a higher tier, the staff member will immediately stop preparing to stitch the
patient's leg and go perform the surgery instead.
With these concepts in mind, it might be a good idea to plan out what priorities you will give to certain
activities before designing your patient tracks and activity list.
138
Adding and Managing Patient Tracks
Before reading this section, see Building Complex Patient Tracks and Activity Lists for more information
about the pros and cons of building multiple patient tracks.
You'll create patient tracks using the Patient Track Manager. You can access the Patient Track Manager
using the Toolbox. The Patient Track Manager uses the tool components feature. This means that you will
use the Toolbox to create, rename, delete and create a duplicate copy of each patient track. (See Using
the Toolbox and Toolbar for more information.)
To create your first patient track:
1. If needed, click Toolbox on the toolbar to open the Toolbox in the left pane.
2. Click Add new tool at the top of the Toolbox. This will open a menu of possible tools.
3. Select Patient Tracks. This will create a new patient track named Track1 in the Toolbox and will open
up the newly created track in the Patient Track Manager.
Now you can begin adding activities to this patient track, which will be discussed in the rest of the topics in
this chapter.
139
The Patient Track Manager at a Glance
The Patient Track Manager is the main tool you will use to add and edit activities. The main elements of
the Patient Track Manager are labeled in the following image:
Each element will be explained in more detail in the following sections.
140
Tabs
At the top of the Patient Track Manager are tabs for each patient track that is currently open. (See Opening
and Closing a Tool Component for more information on opening a patient track.) The track that is currently
active will be highlighted in blue.
Toolbar
The following table explains the purpose of the different icons on the Patient Track Manager toolbar:
Icon
Tool
Name
Purpose
Add Click to add a new activity to the current track
Delete Click to delete the currently selected activity
Move Up Click to move the currently selected activity up one position in the activity list
Move
Down
Click to move the currently selected activity down own position in the activity
list
View
Table
Click to view the current track as a table to get a high level overview of the
settings for each activity.
Patient
Visuals
Click to open the Patient Visuals tool, which allows you to change the default
visual appearance for the patients that will use this track. See Customizing
Patient Visuals for more information.
Activity List
The activity list displays all of the activities that have currently been created for this patient track. By
default, activities are listed in the order in which they were originally added to the patient track unless you
re-organize them using the toolbar.
Sometimes new HC users assume that patients will complete activities one after another based on the
order in which the activities are listed in the activity list. This is not the case. See How Activities Begin for
more information.
141
Quick Properties
You will use the Quick Properties pane to change the settings of a particular activity. The Quick Properties
pane is context-sensitive and will change depending on which the activity type of the activity that is
currently selected in the activity list. See Overview of Adding and Managing Activities for more information
about the various activity settings.
142
Overview of Addingand Managing Activities
The following is an overview of the process for adding a new activity and customizing it activity settings:
1. Add an activity
2. Edit basic activity settings - Each activity has the following basic settings:
o Activity ID
o Activity Name
o Milestones
o Predecessors
3. Choose an Activity Type - Choose one of the ten activity type templates and change the basic settings
that are specific to that activity type, such as:
o Patient or Staff Destinations
o Processing Time
o Staff and/or Resource Requirements
4. Change any advanced settings - If needed, change some of the advanced activity settings such as:
o Start Conditions
o Triggers
o Time Controls
o Costs
Each step of the process will be discussed in more detail in the subsequent topics in this chapter.
143
Adding an Activity
The first step in creating a new activity is to make sure that the patient track to which you want to add an
activity is open in the Patient Track Manager. (See Opening and Closing a Tool Component for more
information on opening a patient track.)
Then, click the Plus button on the toolbar to add a new activity to the bottom of the activity list.
Each activity has an ID and an Activity Name. The first time you add an activity, it will be appear as 10_ in
your activity list until you change its ID or Name. You can customize both the Activity ID and the Activity
Name, as discussed in the next sections about Basic Activity Settings.
144
Basic Activity Settings
The activity settings discussed in the following section are available for all activities regardless of which
activity type you have selected for a particular setting:
Activity IDs - A whole number that will be used to refer to this particular activity. You can change the
Activity ID to any whole number you would like as long as it is a whole number.
Activity Names - A name that you can give to an activity for your reference. The Activity ID and name
will both be displayed in the Activity List.
Milestones - Milestones can be used to mark the beginning and/or end of a specific period of time. You
can then use these milestones to collect and analyze statistical data about the length of time between
milestones in your simulation model.
Predecessors - The settings that will determine when this activity should start.
145
Activity IDs
Activity IDs are comprised of whole numbers that will be used to refer to this activity in other activities. By
default, the first activity is 10, the second activity is 20, and so forth. If you insert an activity in between 10
and 20, that activity would become 11.
You can change the Activity ID to any whole number you would like as long as it is a whole number. The ID
can have as many digits as you would like. Be aware that if you change the Activity ID of a particular
activity, you might have to edit any of the references you've made to that activity. For example, let's say
you've used Activity 10 as a predecessor for Activity 20, meaning Activity 20 won't begin until Activity 10 is
complete. If you change Activity 10's ID number to 15, you should make sure that you update Activity 20's
predecessor to 15.
Changing an Activity ID
To change an Activity ID:
1. In the Patient Track Manager, select the activity in the activity list that you want to change by clicking
on it.
2. In Quick Properties under Activity Properties, click inside the Activity ID box, as shown in the
following image:
3. Type in a new ID number.
4. Either press the Tab key or click outside of the box to save the new Activity ID number.
Avoid creating duplicate Activity ID numbers
For your convenience, FlexSim HC will allow you to temporarily create activities with
identical Activity ID numbers in your activity list without giving you an error message.
However, you should check your activity list to make sure you don't change any
duplicate ID numbers before running your model in order to avoid potential errors.
146
Activity Names
The Activity Name is a name you can give to your activity for your reference. The Activity Name has three
parts:
1. The Activity ID number
2. An underscore
3. Any descriptive text you want to add for labeling purposes (can include spaces, but some special
characters are not allowed)
For example, let's say you want you could create an activity that will make the patient walk to the
Registration desk when first arriving in the simulation model. You could possibly name this Activity
10_Arrival or 1_Patient Arrival.
The Activity ID and underscore are required. When you change the Activity ID, it will automatically update
the Activity Name to reflect the new number.
Changing an Activity Name
To add your own custom name to the Activity Name:
1. In the Patient Track Manager, select the activity in the activity list that you want to change by clicking
on it.
2. In Quick Properties under Activity Properties, click inside the Activity Name box.
3. After the underscore, type the name you want to give this activity.
4. Either press the Tab key or click outside of the box to save the new Activity Name.
147
Milestones
In the real world, a milestone is a significant life event that marks an individual's progress or development.
This is similar to how milestones work in FlexSim HC. Milestones can be used to mark the beginning
and/or end of a specific period of time. You can then use these milestones to collect and analyze statistical
data about the length of time between milestones in your simulation model.
You can add a milestone to any activity for recording purposes. (Be aware that using milestones is
optional.) Every activity has a Milestone group in the Quick Properties pane. The Milestone group has
two different settings, as shown in the following image:
You can click the first pull-down menu to choose which label you want to assign to the activity. You can
either use the pre-defined labels from the menu or you can type in a custom label instead.
You can use the Milestone Recording Time menu to determine at what point the milestone will begin
recording. There are only two options:
Before Process Time - The milestone will start recording right before the activity's process time
begins. (See Activity Types for more information about processes.)
After Process Time - The milestone will start recording right after the activity's process time ends.
148
Predecessors
Before reading this section, you should first read How Activities Begin to ensure you are familiar with the
differences between using the Predecessor method for starting an activity as opposed to the Next Activity
method.
In order for an activity use the Predecessor method for making an activity begin, it must have a check mark
in the Use Predecessors box (in the Quick Properties pane under the Predecessors group), as shown
in the following image:
The text box underneath the Use Predecessors box is where you would type the Activity ID of the
predecessor activity (or activities) that must be completed before this activity begins. In the example used
in the preceding image, once Activity 60 is complete, the current activity will begin.
With that in mind, the following flowchart explains the process that the FlexSim HC system uses to
determine when to start activities using the Predecessor method:
149
150
To summarize, every time a patient arrives in a simulation model or the patient completes an activity on the
activity list, the system scans the patient track to identify any activities that have a check mark in the Use
Predecessors box. Those activities will then begin if the predecessoractivities have already finished.
Making an Activity Begin Automatically
An activity will automatically begin when the patient first arrives in the simulation model if:
The activity has a check mark in the Use Predecessors box
AND
The box below the Use Predecessors check box is blank, meaning you have not typed in any of the
Activity IDs for activities that must be completed before it can begin.
For example, in order to start the very first activity in the activity list, you should make sure that the Use
Predecessors box is checked but that you leave the box below it blank. This activity will automatically
begin when the simulation begins. Be aware that the first activity you create in your patient track will have
these settings automatically.
Default Predecessor Settings
By default, every new activity will have a check mark in the Use Predecessors box. With the exception of
the very first activity you create, every activity will list the previous activity in the activity list as its
predecessor.
Keep in mind that the Activity IDs listed as predecessors do not automatically update at any point after the
activity has been created. For that reason, when you change the Activity ID of any activity, you should
make sure you also change the Use Predecessors text box for any activities that list that activity as a
predecessor.
Complex Predecessor Settings
If you want to use a more complex system of predecessors, you could use Boolean operators like AND and
OR. Use AND when you want to require all the listed predecessor activities to be completed before the
current activity begins. The following image is an example of the AND operator:
In this example, both Activity 50 and Activity 60 must be finished before this activity will begin.
Use OR when you want the current activity to begin when either of the listed predecessor activities are
completed. The following image is an example of the OR operator:
151
In this example, as soon as any one of the listed activities is finished, then the current activity will begin. In
other words, the current activity will begin as soon as either one of the activities is finished.
The OR operator is particularly useful if you've used the Decision Point activity type to start a few different
possible activities based on a complex set of conditions. You might want any of those different activities to
be followed by only one final activity (such as the patient leaving the health care facility). For example, you
might have a Decision Point in which 50% of patients will do Activity 100 (blood work) next and 50% will do
Activity 200 (an x-ray) next. You could list 100 OR 200 as the predecessors for Activity 300 (the patient
leaves).
152
Overview of Activity Types
The most important part of creating a new activity is choosing what activity type it will be. The activity type
affects how the patient will interact with the staff and resources within the health care facility.
Choosing an Activity Type
After adding an activity and customizing its ID and/or name (see Adding an Activity), you should determine
what activity type this activity should be. To choose an activity type:
1. In the Patient Track Manager, select the activity in the activity list that you want to change by clicking
on it.
2. In Quick Properties under Activity Properties, click the arrow next to the Activity Type menu.
3. Select the appropriate activity type from the menu. Some fields in Quick Properties might change based
on the activity type you select.
Description of Activity Types
Currently, the following activity types are available, listed in the order that they appear in the Activity Type
menu:
* Process - Simulates a simple process that will occur while patient remains at their current location.
Process > Send Message - Simulates a simple process that sends a message to another object in the
model when it is finished. That message can possibly trigger a particular action somewhere else in the
simulation model.
Process > Send Item - Simulates a simple process that creates an item and sends it to an item object in
the model when the process is finished. For example, it can represent sending a throat culture to a lab
to test for strep throat.
Move Equipment > Process - A staff member will move a piece of equipment to a particular destination
and then a simple process will occur.
Move Transports > Process - A staff member will move a transport (such as a wheelchair, a gurney,
etc.) to particular destination and then a simple process will occur.
* Escort Patient > Process - A staff member will travel to the patient's current location and escort the
patient to a new destination in the model. Then a simple process will occur.
* Transport Patient > Process - A staff member will use a transport to move a patient to a new
destination in the model. Then a simple process will occur.
* Patient Travels Unattended - The patient will move to a new destination in the model without a staff
member escorting them.
Decision Point - When your patient reaches a point in at which the next activity might be different based
on certain conditions, the Decision Point helps to determine which activity should be next. For example,
perhaps based on the patient's current condition, different patients will receive different treatment after
153
they've been examined by a doctor. Perhaps some patients will need an X-ray, while others will need a
vaccine, etc. The Decision Point can use custom criteria to determine which activity will be next.
Custom - This activity type has all of the same available settings as the other activity types so that you
can create your own unique activity type if needed.
* Indicates the most commonly used activity types.
What is a process and what does the > mark mean?
You'll notice that many of the activity types include the word "Process" in the title.
A process is a generic term for any kind of time-sensitive event in the model. A
process can represent anything you want it to represent: a patient examination,
collecting a blood sample, performing an X-ray, prescribing medications, etc.
These processes are simulated in the model by a simple time delay, equivalent to
the amount of time it takes to complete the process.
You could interpret the greater-than symbol (>) as shorthand for the phrase "and
then." For example, Escort Patient > Process means that a staff member will
escort the patient to a particular location and then a process will occur.
As was discussed in What Happens During an Activity, each activity type has a roughly similar set of
phases, as shown in the following image:
154
Each activity type will be discussed in more details in the following sections. Each section gives an
overview of the specific activity type. The sections will also discuss any ways in which that activity type's
tasks or phases differ from the pattern outlined in the preceding image. Most importantly, it will discuss the
settings that are specific to that activity type in the Quick Properties pane.
Check for required fields
Each activity type has some fields that are required. Unfortunately, the current
version of FlexSim HC does not give any error messages when you forget to fill in
a required field in the activity settings. Forgetting to adjust these required settings
could create an error when the simulation model runs. For that reason, you should
make it a habit to check any of the required settings for each activity type, which
are listed in the "Specific Settings" portion of each activity type topic.
155
Process
The Process Activity Type simulates a simple process that will occur while patients remain at theircurrent
location. As was mentioned in the previous topic, a process is a generic term for any kind of time-sensitive
event in the model. A process can represent anything you want it to represent: a patient examination,
collecting a blood sample, performing an X-ray, prescribing medications, etc. These processes are
simulated in the model by a simple time delay, equivalent to the amount of time it takes to complete the
process.
You can choose whether or not you want to assign staff to perform a process. One important thing to keep
in mind is that the process does not necessarily need to occur at the patient's location. For example,
imagine that you want to design a simulation in which a doctor will consult with a colleague about treatment
options after performing a patient examination. If you want the doctor to consult with the other doctor in a
different room besides the patient's location, you could use the Process Activity Type and then assign the
doctor to a different location during the activity.
Activity Tasks and Phases
The Process Activity Type will use the same set of phases and tasks outlined in What Happens During an
Activity. The only exception is that if you do not assign a staff member, the activity will skip directly from the
Beginning Phase to the Process Phase.
Specific Settings
The following table describes the settings that are available in the Quick Properties pane for the Process
Activity Type. It gives the name of each group of settings as they appear in Quick Properties and explains
whether those fields are required or optional for this activity type:
Settings
Group
Required? Notes
Processing
Time
Required Type in a number or an expression indicating how long the
process should take in minutes. (See Processing Time for
more information.)
Staff
Requirements
Optional You can choose whether staff member(s) should be
assigned to this activity or not. (See Staff Requirements for
more information.)
Staff
Destination
Required if staff
are assigned
Used to indicate if staff members should stay with the
patient or perform the process in a different location. (See
Staff Destination for more information.)
156
Process > Send Message
The Process > Send Message Activity Type simulates a simple process that sends a message to another
object in the model when it is finished. That message can possibly trigger a particular action somewhere
else in the simulation model. This activity type is rarely used, but is available if needed. It is more likely that
you will use the Process > Send Item Activity Type to trigger specific events in the model.
Activity Tasks and Phases
The Process > Send Message Activity Type will use the same set of phases and tasks outlined in What
Happens During an Activity. There are only two specific differences:
If you do not assign a staff member, the activity will skip directly from the Beginning Phase to the
Process Phase.
During the Concluding Phase, a message will be sent to another object in your simulation model.
Specific Settings
The following table describes the settings that are available in the Quick Properties pane for the
Process > Send Message Activity Type. It gives the name of each group of settings as they appear in
Quick Properties and explains whether those fields are required or optional for this activity type:
Settings
Group
Required? Notes
Message
Destination
Required Use the pull-down menu to select which object in the
simulation model will receive a message after the process
is finished. (See Message Destination for more
information.)
Processing
Time
Required Type in a number or an expression indicating how long the
process should take in minutes. (See Processing Time for
more information.)
Staff
Requirements
Optional You can choose whether staff member(s) should be
assigned to this activity or not. (See Staff Requirements for
more information.)
Staff
Destination
Required if staff
are assigned
Used to indicate if staff members should stay with the
patient or perform the process in a different location. (See
Staff Destination for more information.)
157
158
Process > Send Item
The Process > Send Item Activity Type simulates a simple process that creates an item and sends it to
an item object in the model when it is finished. Once the item is received by the item object, it will begin a
series of activities designed for handling that particular item.
For example, this activity type can represent sending a throat culture to a lab to test for strep throat. During
the Process Phase of the activity, a staff member will swab the patient's throat, creating a new item (the
throat culture). The item would then be sent to a lab for testing. Simulating lab work and item processing
will be discussed in more detail in a later chapter.
Activity Tasks and Phases
The Process > Send Item Activity Type will use the same set of phases and tasks outlined in What
Happens During an Activity. There are only two specific differences:
If you do not assign a staff member, the activity will skip directly from the Beginning Phase to the
Process Phase.
During the Concluding Phase, an item will be sent to another object in your simulation model.
Specific Settings
The following table describes the settings that are available in the Quick Properties pane for the
Process > Send Item Activity Type. It gives the name of each group of settings as they appear in Quick
Properties and explains whether those fields are required or optional for this activity type:
Settings
Group
Required? Notes
Item
Destination
Required Use the pull-down menu to select which object in the
simulation model will receive the newly created item after
the process is finished. (See Item Destination for more
information.)
Processing
Time
Required Type in a number or an expression indicating how long the
process should take in minutes. (See Processing Time for
more information.)
Staff
Requirements
Optional You can choose whether staff member(s) should be
assigned to this activity or not. (See Staff Requirements for
more information.)
159
Staff
Destination
Required if staff
are assigned
Used to indicate if staff members should stay with the
patient or perform the process in a different location. (See
Staff Destination for more information.)
160
Move Equipment > Process
During the Move Equipment > Process Activity Type, a staff member will move a piece of equipment to
a particular destination and then a simple process will occur. If you only want the equipment to be moved
without a process occurring afterwards, you could set the process time to 0 minutes.
In order for this activity to function properly, you should make sure that you have added an equipment
resource group to your simulation model. The FlexSim HC Library has a variety of different equipment
objects that could be used as part of this activity. To view the available objects, go to the Library and,
under Resource Groups, click Equipment. (See Adding Resources to a Model for more information.)
Activity Tasks and Phases
The Move Equipment > Process Activity Type will use the same set of phases and tasks outlined in What
Happens During an Activity. During the Movement Phase, staff members will move from their current
location to wherever the equipment is located. Then, the staff will move the equipment to the destination
indicated in the Staff Destination settings.
Specific Settings
The following table describes the settings that are available in the Quick Properties pane for the Move
Equipment > Process Activity Type. It gives thename of each group of settings as they appear in Quick
Properties and explains whether those fields are required or optional for this activity type:
Settings Group Required? Notes
Processing Time Required Type in a number or expression indicating how long the
process should take in minutes. (See Processing Time for
more information.)
Staff
Requirements
Required One or more staff members must be assigned to this activity
or it will cause an error. (See Staff Requirements for more
information.)
Staff Destination Required Used to indicate where the staff members should move the
equipment. (See Staff Destination for more information.)
Equipment
Requirements
Required Used to indicate which equipment should be moved. (See
Equipment Requirements for more information.)
161
Move Transports > Process
During the Move Transports > Process Activity Type, a staff member will move a transport (such as a
wheelchair, a gurney, etc.) to particular destination and then a simple process will occur. If you only want
the transport to be moved without a process occurring afterwards, you could set the process time to 0
minutes.
Be aware that if you would like to move a transport to a patient and then transport the patient to another
location, you should probably use the Transport Patient > Process Activity Type instead. The Move
Transports Activity Type only moves the transport to a location, but does not actually transport a patient.
In order for this activity to function properly, you should make sure that you have added a transport
resource group to your simulation model. The FlexSim HC Library has a variety of different transport
objects that could be used as part of this activity. To view the available objects, go to the Library and,
under Resource Groups, click Transport. (See Adding Resources to a Model for more information.)
Activity Tasks and Phases
The Move Transports > Process Activity Type will use the same set of phases and tasks outlined in What
Happens During an Activity. During the Movement Phase, staff members will move from their current
location to wherever the transport is located. Then, the staff will move the transport to the destination
indicated in the Staff Destination settings.
Specific Settings
The following table describes the settings that are available in the Quick Properties pane for the Move
Transport > Process Activity Type. It gives the name of each group of settings as they appear in Quick
Properties and explains whether those fields are required or optional for this activity type:
Settings Group Required? Notes
Processing Time Required Type in a number or expression indicating how long the
process should take in minutes. (See Processing Time for
more information.)
Staff
Requirements
Required One or more staff members must be assigned to this activity
or it will cause an error. (See Staff Requirements for more
information.)
Staff Destination Required Used to indicate where staff members should move the
transport. (See Staff Destination for more information.)
162
Transport
Requirements
Required Used to indicate which transport should be moved. (See
Transport Requirements for more information.)
163
Escort Patient > Process
During the Escort Patient > Process Activity Type, a staff member will travel to the patient's current
location and escort the patient to a new destination in the model. Then a simple process will occur. If you
only want the patient to be escorted without a process occurring afterwards, you could set the process time
to 0 minutes.
This activity type requires a staff member. If you want patients to move on their own to a new location
without a staff member, you should use the Patient Travels Unattended Activity Type. Also, if you want the
staff member to move the patient in a transport (such as a wheelchair or gurney), you should use the
Transport Patient > Process Activity Type.
Activity Tasks and Phases
The Escort Patient > Process Activity Type will use the same set of phases and tasks outlined in What
Happens During an Activity.
Specific Settings
The following table describes the settings that are available in the Quick Properties pane for the Escort
Patient > Process Activity Type. It gives the name of each group of settings as they appear in Quick
Properties and explains whether those fields are required or optional for this activity type:
Settings
Group
Required? Notes
Patient
Destination
Required Use the pull-down menu to indicate where the patient should go
during the Movement Phase of the activity. (See Patient
Destination for more information.)
Processing
Time
Required Type in a number or an expression indicating how long the
process should take in minutes. (See Processing Time for more
information.)
Staff
Requirements
Required One or more staff members must be assigned to this activity or it
will cause an error. (See Staff Requirements for more
information.)
164
Transport Patient > Process
During the Transport Patient > Process Activity Type, a staff member will use a transport to move a
patient to a new destination in the model. Then a simple process will occur. If you only want the patient to
be transported to a new location without a process occurring afterwards, you could set the process time to
0 minutes.
In order for this activity to function properly, you should make sure that you have added a transport
resource group to your simulation model. The FlexSim HC Library has a variety of different transport
objects that could be used as part of this activity. To view the available objects, go to the Library and,
under Resource Groups, click Transport.
Activity Tasks and Phases
The Transport Patient > Process Activity Type will use the same set of phases and tasks outlined in What
Happens During an Activity. During the Movement Phase, staff members will move from their current
location to wherever the transport is located. Then, the staff will move the transport to the patient's current
location. The patient will then be transported to the new location indicated in the Patient Destination
settings.
Specific Settings
The following table describes the settings that are available in the Quick Properties pane for the Transport
Patient > Process Activity Type. It gives the name of each group of settings as they appear in Quick
Properties and explains whether those fields are required or optional for this activity type:
Settings
Group
Required? Notes
Patient
Destination
Required Use the pull-down menu to indicate where the patient should
be transported during the Movement Phase of the activity.
(See Patient Destination for more information.)
Processing Time Required Type in a number or expression indicating how long the
process should take in minutes. (See Processing Time for
more information.)
Staff
Requirements
Required Staff members must be assigned to this activity or it will cause
an error. (See Staff Requirements for more information.)
165
Transport
Requirements
Required Used to indicate which transport should be used. (See
Transport Requirements for more information.)
166
Patient Travels Unattended
During the Patient Travels Unattended Activity Type, the patient will move to a new destination in the
model without a staff member escorting them.
Activity Tasks and Phases
The Patient Travels Unattended Activity Type will use the same set of phases and tasks outlined in What
Happens During an Activity. However, there will be no staff or resources assigned to this activity and the
Process Phase will be skipped.
Specific Settings
Thefollowing table describes the settings that are available in the Quick Properties pane for the Patient
Travels Unattended Activity Type. It gives the name of each group of settings as they appear in Quick
Properties and explains whether those fields are required or optional for this activity type:
Settings
Group
Required? Notes
Patient
Destination
Required Use the pull-down menu to indicate where the patient should go
during the Movement Phase of the activity. (See Patient
Destination for more information.)
167
Decision Point
The Decision Point can be used when your patient reaches a point in at which the next activity might be
different based on certain conditions. The Decision Point helps to determine which activity should be next.
For example, perhaps based on the patient's current condition, different patients could receive different
treatment after they've been examined by a doctor. Perhaps some patients will need an X-ray, while others
will need a vaccine, etc. The Decision Point can use custom criteria to determine which activity should be
next for the patient.
Activity Tasks and Phases
The Decision Point Activity Type will use not use any of the phases and tasks outlined in What Happens
During an Activity. It will skip directly from the Beginning Phase to the Concluding Phase. During the
Concluding Phase, the Decision Point will determine which activity should be next for the current patient
using a complex set of criteria.
Specific Settings
The following table describes the settings that are available in the Quick Properties pane for the Decision
Point Activity Type. It gives the name of each group of settings as they appear in Quick Properties and
explains whether those fields are required or optional for this activity type:
Settings
Group
Required? Notes
Next Activity Required Use this setting to create the criteria that will be used to determine
which activity the patient should do next. (See Next Activity for
more information.)
168
Custom
The Custom Activity Type has all of the available settings used in the other activity types so that you can
create your own unique activity type if needed. You should familiarize yourself with the other activity types
and other settings before using this activity type.
Activity Tasks and Phases
The Custom Activity Type will use the same set of phases and tasks outlined in What Happens During an
Activity.
Specific Settings
The Custom Activity Type has all the same settings that are available for the other activity types. See
Specific Activity Type Settings for more information.
169
Introduction to Specific Activity Type Settings
When you choose a specific activity type, the Quick Properties pane will change to make certain groups
of settings available. The other topics in this chapter will discuss each group of settings in detail.
You'll notice that many of these settings have two buttons next to them:
Icon
Tool
Name
Purpose
Code
Editor
If you are comfortable writing code directly in FlexScript, you can use this tool
to open the Code Editor and enter your custom code.
Code
Editor
Some settings require you to indicate which object you want the patient to use
during an activity (such as a location or staff member). The eyedropper tool
allows you to indicate which object you want to use by clicking on it directly in
the simulation model.
Code Editor
Many activity settings have a Code Editor button . When you click on the Code Editor, you can directly
edit the code for that particular setting. This is useful for advanced FlexSim HC users who are comfortable
writing code in FlexScript.
Eyedropper
Many activity settings have an Eyedropper button . Usually these settings require you to choose which
object (location, area, resource, or resource group) should be used during a particular activity. For
example, the Patient Destination setting requires you to choose which location or area the patient will
move to during a particular activity.
Often these settings have an arrow next to them that allow you to select a location from a menu. However,
you can use the Eyedropper to select the location or area by clicking on the object directly in the model.
To use the eyedropper to select a location or area:
1. Click the Eyedropper button. The mouse pointer will change to an eyedropper icon.
2. Move the mouse to the location object you want to select. As you move your mouse of the location, it
will display the name of the location object and the name of the area this location belongs to, as shown
in the following image:
170
3. Click on the location to select it. A menu will pop up that will list the name of the location and the area it
belongs to, as shown in the following image:
4. At this point, you have a choice to make. You can click the area name if you want the patient to go to
any location inside that area once one becomes available (recommended). Or you could click on a
specific location within this area.
See How Patients and Staff Move to Locations or Areas for more information.
The process is nearly identical for using the Eyedropper to choose staff members or other resources in the
model. Just be careful to click on the colored box underneath the resources to select a particular resource
group rather than an individual resource. See Selecting a Resource Group and How Staff and Resources
Are Assigned to an Activity for more information.
171
Patient Destination
The Patient Destination settings allow you to determine where your patient should travel during this
activity. These settings appear in an activity's Quick Properties pane when certain activity types are
selected. The following activity types use the Patient Destination settings:
Escort Patient > Process
Transport Patient > Process
Patient Travels Unattended
Custom (optional)
The Patient Destination settings are shown in the following image:
Each setting will be discussed in the following sections.
Patient Destination
The Patient Destination box determines the specific location or area that your patient will travel to during
this activity. Use the following steps to choose an appropriate destination for your patient:
1. Click the arrow next to the Patient Destination box to open up a menu of possible destinations you
could use. There are many possible options, most of which are used very rarely. It is likely that you will
only use the first option: Choose a specific destination.
2. Select Choose a specific destination from the menu. This will open up a sub-menu listing all the
areas that currently exist in your model. As a reminder, an area is a group of related location objects.
3. Select the area that will be used as the patient destination. This will open up another sub-menu that
lists the name of the area at the top of the menu. It will also list all of the locations inside of that area.
4. At this point, you have a choice to make. You can click the area name if you want the patient to go to
any location inside that area once one becomes available (recommended). Or you could click on a
specific location within this area.
See How Patients Move to Locations or Areas for more information about the pros and cons of assigning a
specific location as opposed to a general area.
The Eyedropper
You can use the Eyedropper tool to select the location or area you want to use
by clicking on it in your simulation model. See Eyedropper for more information.
172
Reserve Current Location
When checked, the Reserve Current Location check box will reserve the current location until the patient
is able to return to it in a lateractivity. For example, imagine that when the activity begins, the patient will
be at a Bed location in the Bed Area. If during the patient must leave to go to the operating room for
surgery, the current Bed location could be reserved for when the patient returns. While the patient is in the
operating room, the Bed would appear to be highlighted in purple and none of the other patients would be
able to use that location. During a later activity, when the patient returns to the Bed Area, the patient will
return to the same Bed location.
173
Processing Time
The Processing Time settings allow you to determine how long the Process phase of an activity should
be. The Processing Time settings appear in an activity's Quick Properties pane when certain activity
types are selected. The following activity types use the Processing Time settings:
Process
Process > Send Message
Process > Send Item
Move Equipment > Process
Move Transport > Process
Escort Patient > Process
Transport Patient > Process
Custom (optional)
The Processing Time settings are shown in the following image:
To change the settings, click inside the Processing Time box and type in a specific amount of time in
minutes. If you want the Process phase of an activity to be skipped, you could type a 0 in this box.
If you'd like, you can make the processing time somewhat random. Click on the pull-down arrow and select
Choose a Statistical Distribution from the menu. This will open the Distribution Chooser, which will
guide you through the process of choosing a random time distribution. See The Distribution Chooser for a
more detailed introduction to how FlexSim HC generates random numbers.
174
Staff Requirements
The Staff Requirements settings allow you to determine which staff member(s) should be assigned to a
particular activity. The Staff Requirements settings appear in an activity's Quick Properties pane when
certain activity types are selected. The following activity types use the Staff Requirements settings:
Process (optional)
Process > Send Message (optional)
Process > Send Item (optional)
Move Equipment > Process
Move Transport > Process
Escort Patient > Process
Transport Patient > Process
Custom (optional)
The Staff Requirements settings are shown in the following image:
The unnamed box is sometimes called the Staff Requirement Row. Each row represents a staff member
assigned to this activity.
Each setting will be discussed in the following sections.
Adding Staff Members to Staff Requirement Rows
The Staff Requirements row determines the specific staff or staff resource group that will be assigned to
work on this activity. There are a lot of different options for assigning staff members, but you will likely only
use one of the following two methods:
Choose a specific resource - You can select a specific staff member or staff resource group from a
menu.
Used in an earlier activity - You can select the same staff member that was used in an earlier activity
in the activity list.
Both of these methods will be explained in this section.
Use the following steps to choose a specific resource:
1. Click the Plus sign to add a new Staff Requirement Row.
2. Click the arrow next to the Staff Requirements box to open up a menu that will help you select the
staff groups or individual staff groups you might want to assign to work on this activity.
3. Select Choose a specific resource from the menu. This will open up a sub-menu with the option to
select either Staff Groups or Alternate Groups. (The latter option will only be listed if you've created
any Alternate Groups.)
175
4. Select Staff Groups from the sub-menu (unless you want to select an alternate group that you've
created). This will open up a sub-menu listing all the staff resource groups that currently exist in your
model. As a reminder, each individual staff member belongs to a staff resource group. (See
Introduction to Staff and Resources for more information.)
5. Select the name of the staff resource group you want to use, which will open up another sub-menu that
lists the name of the staff resource group at the top of the menu. For example, let's say your simulation
model has a group named Physicians that has three physicians as group members. Once you select
Physicians from the menu, it will open up another sub-menu that lists the name of the staff resource
group members and some other options, as shown in the following example:
6. At this point, you have a choice to make. You can select Any member from [Group Name] to assign
any member of the staff resource group to work on the activity (recommended). You could also select
First used from [Group Name] if you want to use the same staff member that was assigned to the
patient in earlier activity. Or you could click on a specific staff member to assign that group member to
this activity.
See How Staff and Resources Are Assigned to an Activity for more information about the pros and cons of
assigning an individual staff member or an entire staff resource group.
The Eyedropper
You can use the Eyedropper tool to select the staff member or staff resource
group you want to use by clicking on it in your simulation model. See Eyedropper
for more information.
To use the same staff member that was used in an earlier activity:
1. Click the arrow next to the Staff Requirements box to open up a menu of possible staff you could use.
2. Select Used in an earlier activity from the menu. This will open up a dialog box, as shown in the
following image:
176
3. Click the Select an earlier activity menu to view a list of all the activities in the activity list that use staff
members.
4. Select the appropriate activity from the menu.
5. The Requirement Row menu options will change depending on which activity you selected in the
previous step. If the activity you chose in step 4 only had one staff member assigned to it, there will
only be one row available. That's because each staff member occupies a different row in the Staff
Requirements settings. If you have three staff members for an activity, they will occupy three rows. The
first staff member occupies row 1, the second occupies row 2, etc.
6. Select the appropriate row number from the Requirement Row menu if more than one row is listed.
7. To add more than one row, add any additional staff member and repeat this process for each row. See
Adding and Deleting Additional Staff Members in the next section.
First used vs. Used in an earlier activity
You may have noticed that you can use two different methods to assign a staff
member that was used in an earlier activity. You could have selected the First used
from [Group Name] option from the Choose a specific resource menu. Or you
could use the Select an earlier activity menu. Either method is fine but the second
method might be preferable if you are using a kept resource. See Keeping and
Releasing Staff Members for more information.
Adding and Deleting Additional Staff Members)
If you want to add any additional staff members to this activity, click the Add button . This will add an
additional Staff Requirement Row. You can add as many Staff Requirement Rows as needed and then use
the process for Adding Staff Members to Staff Requirement Rows, which was discussed in the previous
section.
To delete a staff member, click the Delete button . Be aware that using the Delete button will only
remove the bottom Staff Requirement Row, the one row that is the lowest on the list.
177
Keeping and Releasing Staff Members
Sometimes you might want to require a staff member to remain with a patient for multiple activities and not
be assignedto work on any other activities. In FlexSim HC, this is called keeping a staff member. Staff
members will be kept until they are released in a later activity.
For example, if a patient needs constant supervision from a particular staff member during a series of
activities, it might be useful for you to keep that staff member. Once staff members are kept, they will only
be allowed to assist with the current patient's current activity and future activities until they are released by
a later activity.
Higher priority tasks still might take precedence
Even if you keep a resource, it is possible that the staff member could still possibly
be re-assigned to a different activity with a higher priority. See Staff and Resource
Priorities for more information.
You will use the padlock icon next to each staff member to manage whether staff members are kept or
released. (You could think of it as locking the staff member to the current patient.) The following table
explains each icon:
Icon Status Purpose
Neutral When there is a gray padlock next to the staff member, it means that staff
member is neither being kept or released. After the activity is complete, the
staff could possibly be assigned to work with a different patient on a different
activity.
Kept When there is a red padlock next to the staff member, it means the staff
member can only be assigned to work with this patient until they are released
in a later activity on the patient track.
Released When there is a green padlock next to the staff member, it means that the
staff member will be released after the current activity is finished.
Click on the padlock icon to change the staff member's status from neutral to kept. Click on the padlock a
second time to change the status from kept to released. Click one more time to change it back to neutral
and so forth.
Don't forget to release the staff!
178
If you keep a staff member in a particular activity, don't forget to release that staff
member in a later activity.
Priority
Before changing these settings, you should be sure you are familiar with the concepts discussed in Staff
and Resource Priorities.
The Priority box allows you to determine what priority level will be assigned to all resource requests for
this activity. Even though the Priority box is only found in the Staff Requirements group, the priority level
you assign in this box will apply to all resource requests for this activity, including equipment and
transports.
By default, all resource requests are assigned a priority level of 150. To change these settings, click inside
the Priority box and type in a new priority level.
179
Staff Destination
The Staff Destination settings allow you to determine which location staff member(s) should be travel to
during a particular activity. The Staff Destination settings appear in an activity's Quick Properties pane
when certain activity types are selected. The following activity types use the Staff Destination settings:
Process (optional)
Process > Send Message (optional)
Process > Send Item (optional)
Move Equipment > Process
Move Transport > Process
Escort Patient > Process
Transport Patient > Process
Custom (optional)
The Staff Destination settings are shown in the following image:
The Staff Destination box determines the specific location or area that your staff member(s) will travel to
during this activity. By default, the staff member's destination will be the patient's location. But this can be
changed if needed. Unlike patients, staff members can use any object as a possible destination. For
example, a staff member can travel to a phone or table or any other object in the simulation model.
Use the following steps to choose an appropriate destination for your staff member:
1. Click the arrow next to the Staff Destination box to open up a menu of possible destinations you could
use. There are many possible options, most of which are used very rarely. It is likely that you will only
use the first option: Choose a specific destination.
2. Select Choose a specific destination from the menu. This will open up a sub-menu listing all the
areas that currently exist in your model. As a reminder, an area is a collection of related location
objects.
3. Select the area that contains the location that will be the staff member's destination. This will open up
another sub-menu that lists all of the locations inside of that area.
4. Select the appropriate location. (Staff members can only travel to locations, not areas.)
The Eyedropper
You can use the Eyedropper tool to select the location or area you want to use by
clicking on it in your simulation model. See Eyedropper for more information.
180
Equipment Requirements
The Equipment Requirements settings allow you to determine which equipment should be assigned to a
particular activity. The Equipment Requirements settings appear in an activity's Quick Properties pane
when certain activity types are selected. The following activity types use the Equipment Requirements
settings:
Move Equipment > Process
Custom (optional)
The Equipment Requirements settings are shown in the following image:
NOTE: The unnamed box is sometimes referred to as an Equipment Requirement Row. Each row
represents a specific piece of equipment assigned to this activity.
The Equipment Requirements settings are virtually identical to the Staff Requirements settings. The
only difference is that you can only assign equipment objects or equipment resource groups to the activity
(as opposed to staff). Because the settings are so similar, you should read the Staff Requirements section
for more information about how these settings work.
However, there is one minor difference: the Equipment Requirements settings do not have the Priority
box. Instead, it has the Return check box, which will be discussed in the following section.
Equipment Priorities
Even though the Priority box is only found in the Staff Requirements group, the
priority level you assign in Staff Requirements will apply to all resource requests
for this activity, including equipment.
Return
If you check the Return check box, then the staff member will return the piece of equipment to its original
location during the Concluding Phase of the activity.
181
Transport Requirements
The Transport Requirements settings allow you to determine which transports should be assigned to a
particular activity to transport a patient from one location to another. Transports are objects that can move
a patient from one location to another such as a wheelchair or a gurney. The Transport Requirements
settings appear in an activity's Quick Properties pane when certain activity types are selected. The
following activity types use the Transport Requirements settings:
Move Transport > Process
Transport Patient > Process
Custom (optional)
The Transport Requirements settings are shown in the following image:
NOTE: The unnamed box is sometimes referred to as a Transport Requirement Row. Each row
represents a specific transport assigned to this activity.
The Transport Requirements settings are virtually identical to the Staff Requirements settings. The only
difference is that you can only assign transport objects or transport resource groups to the activity (as
opposed to staff). Because the settings are so similar, you should read the Staff Requirements section for
more information about how these settings work.
However, there is one minor difference: the Transport Requirements settings do not have the Priority
box. Instead, it has the Return check box, which will be discussed in the following section.Transport Priorities
Even though the Priority box is only found in the Staff Requirements group, the
priority level you assign in Staff Requirements will apply to all resource requests
for this activity, including transports.
Return
If you check the Return check box, then the staff member will return the piece of equipment to its original
location during the Concluding Phase of the activity.
182
Next Activity
The Next Activity settings are used to cause another activity to begin as soon as the current activity is
finished. The Next Activity settings are available for all activity types, but are primarily used by the Decision
Point Activity Type to create a complex system for determining which activity should come next.
Before reading this section, you should first read How Activities Begin to ensure you are familiar with the
differences between using the Predecessor method for starting an activity as opposed to the Next Activity
method. Be aware that the Predecessor method is the preferred method of beginning an activity.
In order to use the Next Activity method to begin an activity, all you need to do is type or select an
appropriate value or expression in the Next Activity box, as shown in the following image:
At its most basic level, you could just type in the Activity ID of the activity you want to start after the current
activity is finished. However, you might possibly want to use a more complex system for determining which
activity should be next. For example, you might use the Next Activity settings based on percentages so that
50% of patients will do Activity 100 (blood work) next and 50% will do Activity 200 (an x-ray) next. You
could list 100 OR 200 as the predecessors for Activity 50 (the patient leaves).
When you click the pull-down menu, you'll notice there are several different options. These different options
allow you to create complex conditions for starting the next activity. Some of the more commonly used
options will be discussed in the following sections.
Two Important Cautions
If you are going to use the Next Activity method to start one activity out of a
possible list of activities, make sure that those activities do not have a check mark
in the Use Predecessors box. Otherwise, those activities might automatically
begin.
Also, you might be using the Next Activity method to start a few different possible
activities based on complex conditions. You might want any of those different
activities to be followed by only one final activity (such as the patient leaving the
health care facility). If that's the case, you might want to use some complex
predecessor settings to make that final activity begin. See Complex Predecessor
Settings for more information.
Based on First Available Location
If you want the next activity to be determined based on the availability of certain locations, follow these
steps:
1. Click the arrow by the Next Activity box to open a menu of options.
2. Select Based on first available from the menu. This will open a sub-menu that lists location and
resource.
183
3. Select either location from the menu. This will open a dialog box, such as the one shown in the
following image:
3. Click the arrow next to the box in the first column (labeled If the next available location is...). This will
open a menu showing all the current areas that currently exist in the simulation model. As a reminder,
an area is a group of related location objects.
4. Select the area that you want to use as one of the possible conditions to determine the next activity.
This will open up another sub-menu that lists the name of the area at the top of the menu. It will also
list all of the locations inside of that area.
5. At this point, you have a choice to make. You can click the area name if you want the staff member to
go to any location inside that area once one becomes available (recommended). Or you could click on
a specific location within this area.
6. In the second column (labeled Then the next activity is...), either type the Activity ID of the activity that
will be next if this is the available area or select from the current list of activities using the arrow next to
the box.
7. Repeat this process to add additional conditions. If you want to add more than two conditions, click the
Add a new pair button to add another row.
8. In the Default activity if none found above box, either type the Activity ID of the activity that will be
default next activity or select from the current list of activities using the arrow next to the box.
9. When you're finished building your conditions, click the OK button to save your changes.
See How Patients and Staff Move to Locations for more information about whether to choose an area of a
location.
Based on First Available Resource
You can determine the next activity based on the availability of certain resources (such as staff, equipment,
and transports). The process is virtually identical to the one explained in the previous section, Based on
First Available Location. You merely select resources instead of locations.
See How Staff and Resources Are Assigned to Activities for more information about choosing individual
resources vs. resource groups.
184
Based on Percentages
If you want a certain percentage of patients to do different activities, you could use the Based on
Percentages option. For example, let's say you did a study of an outpatient clinic and determined that 50%
of patients usually needed to have lab work done (such as blood drawn), 30% need an X-ray, and 20%
needed an MRI. You could use the Based on Percentages option to create this kind of system:
1. Click the arrow by the Next Activity box to open a menu of options.
2. Select Based on percentages from the menu. This will open a dialog box, as shown in the following
image:
3. You can change the percentages by typing a different value in the first column (labeled There is a ... %
chance). Make sure that the values add up to 100.
4. You can then type in the Activity ID of the next activity in the second column (labeled that the Next
Activity will be...) or use the pull-down menu to select the Activity ID from a list of possible activities.
5. Click the Add a new pair button to add additional rows as needed.
6. Click OK to save your changes.
185
Advanced Functions
The Advanced Functions settings allow you to add some complexity to your activities. The settings are
shown in the following image:
Each setting will be described in the sections below.
Activity Start Condition
The Activity Start Condition is another alternative to the Predecessors or Next Activity method of making
an activity begin. (See How Activities Begin for more information.) If you are comfortable with FlexScript,
you can create an expression that will cause this activity to begin under certain conditions.
Any custom code you may write must be a condition that can resolve to a true or false. If your condition is
true, the activity is allowed to begin. If it evaluates false, the activity will not begin.
You can also try using the pull-down menu next to this box for help writing a few basic expressions.
Activity Started Trigger
The Activity Started Trigger is an optional system event that occurs during the Beginning Phase of an
activity before anything else happens. (See What Happens During an Activity for more information.) You
could possibly use this trigger to make some other activity or process begin in the simulation model when
the activity begins.
Click the Edit Trigger button to open up a guide to editing this Trigger. Otherwise, you can create your
own custom code by clicking on the Edit Code button .
Activity Finished TriggerThe Activity Finished Trigger is identical to the Activity Started Trigger (see previous section). The only
difference is that it is another optional system event that occurs fires during the Concluding Phase of an
activity after everything else has happened.
186
Advanced Time Controls
The Advanced Time Controls settings allow you to add some complexity to the timing of your activities.
The settings are shown in the following image:
Each setting will be described in the sections below.
Start Time
The Start Time box is used more frequently with Routine Staff or Location Activities (global processes)
than with patient-centered activities.
In this box, you can possibly type a time in minutes to indicate how much time will pass from the time the
simulation starts until the time this activity begins. For example, if you type 60 in this box, the activity will
begin one hour after the simulation begins (60 minutes).
Alternatively, you could set a specific time that this simulation model should start. Simulation times are
formatted with days, hours, and minutes-each separated by a colon. Monday is treated as day 1 and the
hours use military time. For example, if you wanted to start an activity at 4:15p.m. on a Wednesday, you
would format it as 03:16:15. By default, all models begin running on Monday at midnight (01:00:00). See
Run Time Tools for more information.
Repeat Interval
The Repeat Interval box is used more frequently with Global Processes than with patient activities.
In this box, type a time in minutes to indicate how frequently an activity should be repeated. For example, if
you type 60 in this box, the activity will repeat every hour (60 minutes).
187
Costs
The Costs settings allow you to calculate the cost of an activity. The settings are shown in the following
image:
Use the Fixed Cost box to assign a set value to an activity. For example, if this activity always costs $100,
you could just type $100 in this box.
The Variable Cost Rate box to assign an hour rate to the activity. The cost will vary based on how long the
activity takes.
188
Adding Patients
Once you've built the basic layout of your facility, you'll need to get your patients into your model so that
they can begin receiving treatment. The most basic way to add patients to a model is to add a Patient
Arrivals object from the Library. (See Adding Objects to a Model for more information.) By default, these
objects will automatically create new patients who will walk in the door at random intervals.
But what if you want to adjust the rate at which patients arrive, such as requiring patients to make an
appointment? Or what if you want to have different types of patients---perhaps with varying acuity levels or
different reasons for coming to your facility? In order to accomplish this, you might need to make changes
to:
Patient Classifications - This tool lists all the different possible types of patients that will arrive in your
simulation model. You can create patients with different acuity levels or other custom labels using this
tool.
Patient Visuals - This tool helps you customize the visual appearance of the patients in your model.
Patient Arrivals Patterns - You can edit Patient Arrival objects to change the rate at which patients
arrive in the simulation model.
The rest of the chapter will discuss how to use these tools and objects to create a complex Patient Arrival
system.
189
Introduction to Patient Classifications
You can use the Patient Classifications tool to create all the different possible types of patients that will
arrive in your simulation model. The following are some key terms and concepts that are used to by the
Patient Classifications tool in FlexSim HC:
Patient Classification Index (PCI)
The Patient Classification Index, otherwise known as PCI, refers to a type or category of patient that you
can customize. You can use different PCIs to represent a particular combination of patient acuities and
labels. For example, if you were simulating a pediatrician's office that had both a Sick Clinic and a
Wellness Clinic, you could possibly create one PCI for the patients that will go to the Sick Clinic and then
another PCI for patients that will visit the Wellness Clinic. You could also create an additional PCI for Sick
Clinic patients that had a higher acuity level and needed to be taken to the hospital immediately.
PCIs are represented by a number by default. Each patient classification is listed as PCI 1, PCI 2, PCI 3,
and so forth. You can change each PCI to a custom name if needed. Just be aware that the FlexSim HC
system will still identify each PCI by their original number. For example, if you change PCI 1 to New
Patients, the system will still identify this PCI using the number 1.
Track
The Track refers to the patient track, which is a series of activities that a patient will begin to do once they
enter a simulation model until they exit. Each patient could possibly be assigned to a different patient track
based on their PCI. You can create as many different patient tracks as needed and you can assign your
own custom names to each track. See Patient-Centered Activities for more information about patient
tracks.
Acuity
In the health care industry, acuity refers to the acuteness or level of severity of an illness. In FlexSim HC,
acuity is represented by a number. There is no limit to which numbers can be used for assigning acuity.
However, when assigning acuity numbers to patients, you should use the same acuity system used by your
health care team. If you need to use more complicated acuity classification systems, you should consider
using patient labels instead (see next section).
Labels
Labels can be added to a patient to represent any additional system of classification that your facility uses.
Labels can be used to determine if a patient should follow a different patient track or treatment plan based
on some other classification besides acuity. Labels are a number by default, but you can change the label
so that it can use text or code instead.
Keep in mind that, in FlexSim HC, labels can mean whatever you'd like it to mean. For example, you could
possibly create a set of labels that represent:
The amount of time needed to complete a task
The amount of emotional and physical energy required to care for a patient
190
The level of expertise required to treat the patient
The frequency of tasks or interventions needed
191
The Patient Classifications Tool at a Glance
The Patient Classifications tool allows you to create all the different possible types of patients that will
arrive in your simulation model. To open the Patient Classifications tool, click PCIs on the main toolbar.
Alternatively, you could open the Patient Classifications tool by double-clicking PCIs in the Toolbox.
The following image shows an example of the Patient Classifications tool:
The Patient Classifications tool basically looks and functions like a table. The major elements of the Patient
Classifications Tool will be explained in the following sections.
Data Types Row
The second row in the table is the Data Types row. Most (but not all) of the cells in this row can be used to
change the type of data that can be accepted by the cells in each column. When you click a cell in the Data
Types row, it will open a menu listing all the possible data types that could be accepted by the rest of the
cells in that column. Usually you will only change the data types of label columns. The available data type
options are:
Number - Only accepts numerals, including decimals.
Text - Can accept any text and text combined with numerals.
Code- Can accept custom code, which is useful if you are comfortable writing code in FlexScript.
PCI Rows
Each row in the table represents a different possible type of patient or Patient Classification Index (PCI).
You can add more rows of PCIs by typing a new value in the PCIs box or using the arrows to increase or
decrease the number of rows.
All of the subsequent rows are PCI rows, which stands for Patient Classification Index. Each row
represents a unique PCI. By default, each PCI is given a default name and number such as PCI 1, PCI 2,
etc. You can change the name of each PCI to something easier to remember if needed. Simply double-
192
click the PCI and type in a new name. Be aware that the FlexSim HC engine might still refer to the first PCI
as PCI 1 and the second one as PCI 2 in some of the settings on the Patient Arrival object.
Track
The first column is the Track column, which allows you to select which patient track you would like patients
with that PCI to use. When you click one of the cells in the Track column, it will open a menu listing all the
patient tracks you have created so far in your simulation model. You can then select the appropriate patient
track from the menu. See Patient-Centered Activities for more information about patient tracks.
Patient Tracks
Two or more PCIs can use the same patient track. Be aware that you must first
create the patient tracks in the Patient Track Manager in order for them to be
available in this tool.
Visuals
You can use the Visuals column to change the visual appearance of each type of patient in your model if
desired. See Introduction to Patient Visuals and Assigning a Visual Profile to a PCI or Activity for more
information.
Speed
The third column is the Speed column, which determines the speed at which the patient moves. FlexSim
HC measures speed in terms of number of meters per minute, with the default being 60 meters per minute.
When you click one of the cells in this column, you can type in a different number to change the speed of
patients with that PCI. You can increase that number to make the patient faster or decrease it to make it
slower. NOTE: When escorting patients, staff members will match the speed of the patient.
Acuity
The fourth column is the Acuity column, which represents the acuity level for patients with that PCI.
Usually the cells in this column only use numerals, but it is possible to use custom code instead if you are
comfortable writing code in FlexScript. When you click one of the cells in this column, you can type in a
different number to represent the acuity for patients with that PCI.
Labels
By default, there are no more columns after the Acuity column. However, you can add as many label
columns as needed by typing a new value in the Labels box or using the arrows to increase or decrease
the number of label columns. Label columns can be useful for adding additional criteria you would like to
193
use to classify patients. For example, in the preceding image, we've added an additional label column to
track whether a patient is new or not.
Label columns can be very dynamic and can be customized to better to fit your health care center's method
of classifying patients:
You can edit the name of the label column by double-clicking on it and typing a custom name.
By default, cells in label columns only use numerals, but you can click on the Data Types cell under the
label and use the menu to change it to accept text or code instead.
You can edit the value of each label by double-clicking on it and typing a new value.
194
Introduction to Patient Visuals
You can use the Patient Visuals tool to customize the visual appearance of the patients that will arrive in
your model. Although the visual appearance of patients will not affect how the simulation model runs, it can
be useful to change patient visuals for a variety of reasons:
If you want to change the way the default patient looks in your simulation model.
If you want to make each type of patient (PCI) visually distinct so that you can easily tell one type of
patient from another when the model runs.
If you want to change the visual appearance of patients when they are doing a particular activity. For
example, if a patient is going into surgery, you can make the patient wear a surgery gown. Or you
could change the color of a patient's shirt in order to indicate that something about their status has
changed.
If you simply want the patients in the simulation model to have some visual variety.
You'll use Patient Visuals to create different visual profiles for one or more of the patients that will arrive in
the simulation model. Once you have created each visual profile, you can then assign one of these visual
profiles to a PCI or to a patient activity.
The topics in this section will explain how to use the Patient Visuals tool in more detail.
195
The Patient Visuals Tool at a Glance
The Patient Visuals tool is the main tool you will use to customize patient visuals. The main elements of the
Patient Visuals tool are labeled in the following image:
Each element will be explained in more detail in the following sections.
Visual Profiles
You will create a distinct visual profile for each different different look that you might want a patient to have
in your model. For example, if you want to create three different types of patients (PCIs) that will each have
a different visual appearance, you will need to create three visual profiles.
In that same vein, if you want a patient to change visually during an activity in the patient track (such as the
patient changing clothes), you'll need to create a separate visual profile for the patient that has different
clothing.
Patient Gallery
The patient gallery is the workspace where you can create and preview each visual profile.
You can change the order in which visual profiles appear in the gallery by right-clicking a visual profile to
open a menu. Select Edit and then Move Up or Move Down.
196
Patient Shapes Library
When the Patient Visual tool is open, the Library (left pane) will change to the patient shapes library. You
could think of these shapes as the basic building blocks for each visual profile. To create a new visual
profile, you will click on a basic shape in the patient shapes library and then drag it into the patient gallery.
Quick Properties
You can use the Quick Properties settings to change the appearance of each visual profile. See Visual
Profile Settings for more information.
197
Managing Visual Profiles
This topic will discuss how to add, copy, and delete a visual profile.
Adding a Visual Profile
To create a new visual profile:
1. Click on a basic shape in the patient shapes library and then drag it into the patient gallery.
2. Make any changes to the appearance of each visual profile using Quick Properties. See Visual Profile
Settings for more information.
Copying a Visual Profile
To copy a visual profile:
1. Right-click a visual profile in the patient gallery to open a menu.
2. Select Duplicate.
A copy of the visual profile will appear at the end of the patient gallery.
Deleting a Visual Profile
To delete a visual profile:
1. Click a visual profile in the patient gallery to select it.
2. Press the delete key.
Alternately, you could right-click the visual profile and select Delete from the menu.
198
Visual Profile Settings
There are many different settings that you can use to customize the appearance of patients, as shown in
the following image:
Each group of settings will be explained in the following sections.
General Properties
You canchange the name of the currently selected visual profile by typing in a new name in the Name box.
Person Visuals
The settings under the Person Visuals group allow you to adjust the visual profile's basic visuals. The
following settings are available:
Shape - Changes the shape of the currently selected visual profile to one of the other available shapes
in the patient shape library.
199
Head - Changes the hairstyle, hair color, and skin tone of the currently selected visual profile.
Shirt, Pants, and Shoes - Changes the color or fabric of the visual profile's clothing.
Accessories - Check the box next to an accessory to give the visual profile any of the accessories
listed here (such as stethoscopes or surgical masks). If you also click the name of one of the
accessories in this list, you will be able to use a box beneath the Accessories to change the
accessory's color or fabric.
Animations
You can use these settings to change the way this visual profile will move by changing its animation style.
Animations will not be discussed in this version of the User Manual. If you are interested in learning more
about this topic, please contact FlexSim Customer Support.
200
Assigning a Visual Profile to a PCI or Activity
Once you've created a visual profile and customized its settings, you can set that visual profile as the
default profile for a particular type of patient. You could also assign a visual profile to an activity so that a
patient's visual profile will change when that activity begins.
Assigning a Visual Profile to a PCI
You can assign a visual profile to a specific PCI (type of patient) in order to more easily distinguish
between different types of patients or to simply have patients with some visual variety.
To assign a visual profile to a PCI:
1. Open the Patient Classifications tool by clicking on the PCI button on the main toolbar.
2. In the PCI table, find the row of the PCI to which you want to assign a different visual profile. Click the
cell under the Visuals column to open a menu that will display all of the visual profiles that you have
created so far.
3. Select the name of the visual profile that should be assigned to this PCI.
Patient Arrival Patterns
If you have more than one PCI, make sure to design a patient arrival pattern that will
allow each type of PCI to arrive in your simulation model. See Patient Arrival Patterns
for more information.
Assigning a Visual Profile to an Activity
You can assign a visual profile to an activity if you want to change the visual appearance of patients when
they are doing a particular activity. For example, if a patient is going into surgery, you can make the patient
wear a surgery gown. Or you could change the color of a patient's shirt in order to indicate that something
about their status has changed.
To assign a visual profile to an activity:
1. Open the applicable patient track and select the activity that you would like to use to change a patient's
visual profile.
2. In Quick Properties under Advanced Functions, click the Properties button next to the Activity
Started Trigger box to open the Trigger Editor dialog box, as shown in the following image:
201
3. Click the Add new trigger instruction button to open a menu of available triggers.
4. Select Change then patient visuals. A new trigger instruction will appear in the dialog box, as shown
in the following image:
5. Click the arrow next to the New visual configuration box to open a menu that will display all of the
visual profiles that you have created so far.
6. Select the name of the visual profile that should be assigned to this activity.
7. Click OK to close the dialog box and save the changes.
When the activity starts, the patient's visual profile will change. Be aware that you can use this same
process for the Activity Finished Trigger if you want the visual profile to change at the end of the activity
instead.
202
Patient Overhead Text Display
Overhead text displays can sometimes be useful for identifying patients while a simulation model is
running. You can use the overhead text display to see the patient's identifying information such as their ID,
and their track and current activity. Sometimes these displays are useful for troubleshooting a model while
it runs.
By default a patient will not have an overhead text display while a simulation model runs. However, if you
click on a patient during a simulation run, you will see some text above a patient that displays the patient's
track, ID number, and current activity. You can customize the overhead text display so that it displays
different information or nothing at all.
The following sections will discuss two different methods for changing the patient overhead text display.
Overhead Display for Individual Patients
To change the overhead text display of an individual patient:
1. Click the patient to select it.
2. In Quick Properties, in the Overhead Display group, you can use the following settings to change the
patient's overhead display:
o Overhead Display - Use this menu to select what text should be displayed (if any). The default
is Activities (if highlighted), meaning that it will only display the patient's current activity when
the patient is selected in the model.
o Text Scale - Changes the size of the text when it is displayed.
o Opacity - Changes the transparency of the text when it is displayed.
Overhead Display for All Patients on a Track
To change the overhead text display for all patients on a given patient track:
1. Open the applicable patient track and select the first activity.
2. In Quick Properties under Advanced Functions, click the Properties button next to the Activity
Started Trigger box to open the Trigger Editor dialog box, as shown in the following image:
3. Click the Add new trigger instruction button to open a menu of available triggers.
4. Select Change then patient's overhead display. A new trigger instruction will appear in the dialog
box, as shown in the following image:
203
5. Double-click the blue text that says DISPLAY_ACTIVITIES to open a menu.
6. Select the type overhead display that patients will have after starting this activity:
o DISPLAY_ACTIVITIES - Display the name of the patient track, patient ID, and activity name.
o DISPLAY_NONE - No overhead text display.
o DISPLAY_TRIANGLE - Display a large triangle above patients so they can be easily found and
identified.
o DISPLAY_NAME - Display the name of the patient track and patient ID.
o DISPLAY_HIGHLIGHTED - Display the name of the patient track, patient ID, and activity name
when you click on the patient.
7. Click OK to close the dialog box and save the changes.
204
Introduction to Patient Arrival Patterns
Patient Arrival objects create the patients that will enter your simulation model. By changing the Arrivals
settings of Patient Arrival objects, you can affect how frequently patients will arrive in your simulation
model.
There are a number of possible arrival patterns you can use:
Inter-Arrival Times - Patients will arrive at the facility at random rates using a mathematical distribution
or other set of custom conditions.
Hourly Arrivals - Patients will arrive at different rates based on the hour and day of the week.
Appointments - Patients schedule an appointment and arrive at their scheduled appointment times.
Custom Arrivals - A variety of different types of patients will arrive at different rates based on the hour
and day of the week.
You can use one arrival pattern exclusively or you can use a combination of any of these arrival patterns
together.
To activate anyor all of these arrival patterns:
1. Make sure you've added a Patient Arrivals object to your simulation model. (See Adding Objects to a
Model for more information.)
2. Click on the Patient Arrivals object in your simulation model to select it.
3. In Quick Properties under Arrivals, you'll see four checkboxes:
o Activate Inter-Arrival Times
o Activate Hourly Arrivals
o Activate Appointments
o Activate Custom Arrivals
4. These checkboxes allow you to choose which arrival pattern (or combination of arrival patterns) you
want to use. When you check a box next to any of the arrival patterns, the pattern will automatically
expand to give you more setting options for that particular pattern.
205
Inter-Arrival Times
Check the Activate Inter-Arrival Times box if you want patients to arrive at random rates using a
mathematical distribution or other set of custom conditions. This is the default arrival pattern used by
FlexSim HC because it is a quick way to get patients to arrive in a simulation model. However, it is more
likely you will want to use one of the other arrival patterns instead.
FlexSim HC has a wide range of possible mathematical distributions you can use to generate random
number sequences. Before reading this section, you might want to read about the Distribution Chooser tool
to get a better sense of how random mathematical distributions work in FlexSim generally.
The following image shows the settings available for Inter-Arrival Times:
Each setting will be explained the in the following sections.
Patient Arrival Pattern
The Patient Arrival Pattern box allows you to select, create, or delete patient arrival patterns. A patient
arrival pattern determines 1) how frequently a patient will arrive and 2) which type of patient (PCI) will
arrive at that time. In other words, you could use a particular patient arrival pattern to randomly determine
the frequency that patients with the specified Patient Classification Index (PCI) will arrive at the simulation
model.
To change the name of the current patient arrival pattern to something more meaningful to you, click inside
the Patient Arrival Pattern box to highlight the name. Type in a new name and then click somewhere
outside of the box to save the changes.
You can use more than one Patient Arrival Pattern if needed. When you run the simulation model, all of the
Patient Arrival Patterns will run simultaneously. To add a new Patient Arrival Pattern, click the Add button
. You'll notice that the Patient Arrival Pattern box will now change to say Patient Arrival 2 (or something
similar).
To delete a Patient Arrival Pattern, make sure the pattern you want to delete is currently selected in the
box. To select a pattern, click the arrow at the end of the box to open up a menu listing all the Patient
Arrival Patterns and select the correct pattern. Then, click the Delete button . You'll notice that the
Patient Arrival Pattern box will now change to display a different pattern name and it will no longer appear
in the menu.
Select the Correct Pattern
If you have created more than one Patient Arrival Pattern, make sure that you
have selected the correct the Patient Arrival Pattern in the Patient Arrival Pattern
box before you edit any of the other settings. The changes you make to the other
settings will only apply to the pattern that you have currently selected. For
206
example, if you want to have three Patient Arrival Patterns and you want to
change the settings to Patient Arrival Pattern 3, make sure that Patient Arrival 3 is
selected in the Patient Arrival Pattern box.
Inter-Arrival Time
The Inter-Arrival Time box determines how frequently patients should arrive. You can possibly use a
mathematical distribution strategy or another set of conditions to determine the frequency. (See Distribution
Chooser for a more detailed explanation of statistical distributions in FlexSim.)
By default, Inter-Arrival Time uses the exponential statistical distribution strategy, but this can be easily
changed.
If you click the arrow next to the Inter-Arrival Time box, a menu opens listing some of the different
methods you could use to change the how the Patient Arrivals object randomly measures the amount of
time in between arrivals. Although there are many options listed here, you will typically only use the first
option: Choose a statistical distribution.
If you select Choose a statistical distribution, it will open the Distribution Chooser tool. The Distribution
Chooser will help you select the appropriate statistical distribution that will randomly calculate how much
time will elapse between patient arrivals. It will also help you to select the appropriate parameters for your
statistical distribution. When you're done using the Distribution Chooser, it will create an expression based
on the options you selected. See Distribution Chooser for more information about this tool.
PCI
When the Patient Arrival object determines it is time for a patient to arrive, the PCI box will then assign the
new patient a patient classification index (PCI). In other words, the PCI box will determine which type of
patient will arrive.
Patient Classification Systems
If you would like to edit your current Patient Classification System, click the PCI
button next to the PCI box to open the Patient Classifications Tool.
In the PCI box, you can either select a specific type of patient (PCI) or you can use an expression to use a
more complex process for assigning the PCI. By default, the PCI box has a value of 1, representing PCI 1.
This means that all patients created by this Patient Arrival Pattern will be PCI 1 patients. NOTE: Even if
you renamed PCI 1 to something else, the PCI box will still use the number 1 to identify that particular PCI.
The important thing to keep in mind is that whatever value or expression you enter in the PCI box will affect
the types of patients that arrive in your simulation model. So, if you have a Patient Classification System
with 6 different PCIs, but you only type a 2 in the PCI box, only PCI 2s will use this patient arrival pattern.
If you click the arrow next to the PCI box, you'll open a menu that allows you to select which PCIs will use
this Patient Arrival Pattern. The menu lists all the current PCIs you have created so far. It also gives the
option to Use an expression, which opens up a sub-menu with more complex options for choosing PCI
patterns. Since you are less likely to use many of these expressions, only the Percent option will be
discussed here.
207
Choose Percent if you want a certain percentage of each PCI to arrive at random intervals in your model.
A dialog box will pop up that will guide you through the process, as shown as in the following image:
Click Add a new pair to add a row for each PCI you've created. NOTE: The maximum number of rows
allowed is 9. You can type a new value in the Percent box to change the percentage for that row (make
sure that all the percentages total up to 100). Use the arrow next to each row select the specific PCI you
want to apply that percentage to.
Randomly selecting all PCI types
If you want all of your different PCI types to arrive at random intervals in the
simulation model, you can use a FlexScript command called duniform. Let's
imagine you've created 15 different PCIs and want them all to arrive at random
times in the model. You could type the expression duniform(1,15) in the PCI box
to make each PCI type randomly enter your model. The duniform command will
randomly select a number between 1 and 15, which corresponds to each of the
PCI numbers in your model.
Arrival at Time 0
Check the Arrival at Time 0 box if you want the first patient to arrivewhen the simulation begins to run. If
the box is cleared, a patient will arrive at a random time based on the statistical distribution you selected.
208
Hourly Arrivals
Check the Activate Hourly Arrivals box if you want patients to arrive at different rates based on the hour
and day of the week. For example, you could set it so that ten patients come in at noon on a weekend as
opposed to only two patients at 3a.m. on a Wednesday.
The following image shows the settings available for Hourly Arrivals:
Each setting will be explained the in the following sections.
PCI
The PCI box helps you determine which types of patients should use the Hourly Arrivals pattern. The
Hourly Arrivals pattern is identical to the PCI box for the Inter-Arrival Times pattern. For that reason, see
Inter-Arrival Times - PCI for more information.
Arrival Spacing
The Arrival Spacing menu allows you to choose how much space should be in between patient arrivals.
The menu has three options:
Evenly spaced - The patients will arrive in regular intervals in a particular hour, evenly spaced out one
after another.
Randomly spaced - The patients will arrive at random intervals in a particular hour.
All at once - The patients will arrive all at once at the beginning of the hour.
Edit Hourly Arrivals Table
Clicking the Edit Hourly Arrivals Table button opens up the Hourly Arrivals schedule, as shown in the
following image:
209
The rows list all 24 hours in a day in military time and the columns list the seven days of the week. Each
cell represents the number of patients that will arrive each day during that particular hour.
When you double-click on a cell, you can type in a new number to change the number of patients arriving
that hour. You could possible also make it more complex by typing an expression for a random number
distribution. If you are comfortable with FlexScript, you could also create your own custom code in each
cell.
210
Appointments
Check the Activate Appointments box if you want patients to schedule an appointment and arrive at their
scheduled appointment times.
The following image shows the settings available for Appointments:
Each setting will be explained the in the following sections.
Variability
You can use the Variability box to build some randomness into how early or late patients arrive for their
scheduled appointments. You can either use a specific mathematical distribution or type a custom
expression.
If you click the arrow next to the Variability box, a menu opens listing some of the different methods you
could use to change the how much variability there is between the scheduled appointment and the
patient's actual arrival time. You will most likely not use any of these options, so they will not be explained
in this section of the User Manual. You will probably only use the first option: Choose a statistical
distribution.
If you select Choose a statistical distribution, it will open the Distribution Chooser tool. The Distribution
Chooser will help you select the appropriate statistical distribution that will randomly calculate how early or
late a patient arrives for their scheduled appointment. It will also help you to select the appropriate
parameters for your statistical distribution. When you're done using the Distribution Chooser, it will create
an expression based on the options you selected. See Distribution Chooser for more information about this
tool.
You can play around with different settings in the Distribution Chooser for creating variability in patient
appointment arrivals. For now, here's some sample code you can use type in this box:
-15 + normal(15,5.5,1)
This code makes it so that patients will randomly arrive somewhere between 15 minutes early or late to
their scheduled appointment. It uses the Normal statistical distribution (which is like a bell curve) so that the
majority of patients will appear roughly around the time they are scheduled to arrive, but a few could arrive
very early or late.
Repeat Interval
Use the Repeat Interval box to determine how frequently the appointment schedule should be repeated.
For example, if you create a schedule for a single day that you want to repeat on a daily basis, you would
indicate how frequently the schedule should be repeated here.
Because FlexSim HC measures time in minutes, you'll have to enter the time in minutes here. So, for
example, if you want a daily schedule to repeat every day, type 1440 in this box. (There are 1,440 minutes
in a single day.) To repeat an interval every 5 days, use 7,200.
211
Edit Appointments Table
Clicking the Edit Appointments Table button opens up the Appointments schedule, as shown in the
following image:
Each row represents an appointment. To add or subtract appointments, use the Rows box to increase or
decrease the number of rows in the table.
The first column is the Appointment Time. You can click on each cell in the Appointments Time column to
type in a different appointment time. Appointment times are formatted with days, hours, and minutes---each
separated by a colon. Monday is treated as day 1 and the hours use military time. For example, if you
wanted to create an appointment at 4:15p.m. on a Wednesday, you would format it as 03:16:15.
The second column is the PCI column. If you double-click one of the cells in this column, you can change
which type of Patient will be scheduled for this appointment. You should only use the numbers that
correspond with the PCIs that you created in the Patient Classification Tool. See Inter-Arrival Times - PCI
for more information..
The third column is the Actual Arrival Time. This column is not editable and is only here for display
purposes. If you want to create a discrepancy between the scheduled appointment time and the actual
arrival time, you should use the Variability box.
Lastly, if needed, you can add additional Label columns. You could possibly use labels to assign a patient
to a particular physician, for example. These labels should correspond with labels that you've created in the
Patient Classification Tool. See Creating Patient Classification Systems for more information about labels.
212
Custom Arrivals
Check the Custom Arrivals box if you want a variety of different types of patients to arrive at different
rates based on the hour and day of the week. The Custom Arrivals pattern is very similar to the Hourly
Arrival pattern, but it allows you to create different arrival patterns for different types of patients (PCIs).
The following image shows the settings available for Custom Arrivals:
Each setting will be explained in the following sections.
Repeat Interval
Use the Repeat Interval box to determine how frequently the custom arrival pattern should be repeated.
For example, if you create a schedule for a single day that you want to repeat on a daily basis, you would
indicate how frequently the schedule should be repeated here.
Because FlexSim HC measures time in minutes, you'll have to enter the time in minutes here. So, for
example, if you want a daily schedule to repeat every day, type 1440 in this box. (There are 1,440 minutes
in a single day.) To repeat an interval every 5 days, use 7,200.
Arrival Spacing
The Arrival Spacing menu allows you to choose how much space should be in between patient arrivals.
The menu has three options:
Evenly spaced - The patients will arrive in regular intervals in the specified time period, evenly spaced
out one after another.
Randomly spaced - The patients will arrive at random intervals in the specified time period.
All at once - The patients will arrive all at once at the beginning of the specified time period.Edit Custom Arrivals Table
Clicking the Edit Custom Arrivals Table button opens up the Custom Arrivals table, as shown in the
following image:
213
Each row represents a specific period of time. To add or subtract periods of time, use the Rows box to
increase or decrease the number of rows in the table.
The first column is the Start Time. Double-click on the cells in this column to define the beginning of a
period of time. Periods of time are formatted with days, hours, and minutes---each separated by a colon.
Monday is treated as day 1 and the hours use military time. For example, if you wanted to create a period
that begins at 4:15p.m. on a Wednesday, you would format it as 03:16:15.
The second column is the End Time. Double-click on the cells in this column to define the end of a period
of time. These cells use the same formatting as the cells in the Start Time column.
The third column is the Number of Arrivals. Each cell represents the number of patients that will arrive
each day during that specified time period. When you double-click on a cell, you can type in a new number
to change the number of patients arriving that time period.
The last column is the PCI column. If you double-click one of the cells in this column, you can change
which types of patients will arrive during this period of time. You should only use the numbers that
correspond with the PCIs that you created in the Patient Classification Tool. See Creating Patient
Classification Systems for more information about creating different PCIs.
Duplicating periods of time
One nice thing about this table is that you can create duplicate periods of time.
This way you can create different arrival schedules for different PCI types who will
arrive during the same period of time.
214
The Distribution Chooser
Many different settings in FlexSim HC use the Distribution Chooser tool. Since it used extensively by many
of the Patient Arrival patterns, this chapter will describe how to use this tool in that context.
About the Distribution Chooser
When people use the word random to describe something, they often mean that it is chaotic and lacks a
clear, predictable pattern. However, statistical mathematicians have found that many seemingly random
events actually can be predicted with a certain degree of probability. For example, you might feel that the
rate at which patients arrive at a walk-in clinic is truly random, but there might actually be an underlying
pattern at work that isn't noticeable until you examine it statistically. Or it's possible that the amount of time
it takes to complete a particular medical procedure is highly variable, but there could be an underlying
patterns at work there too. For example, there is likely a minimum and/or maximum amount of time it takes
to complete the procedure. And you might find that 40% of the time, the procedure is finished within 5-10
minutes while 60% of the time it is finished in 10-20 minutes.
You can use the Distribution Chooser to possibly create some variability in:
How frequently patients arrive at your model, including whether they are early or late for their
appointments
The amount of time it takes to complete a particular process such as medical procedures, phone calls,
paperwork, etc.
The frequency that medical equipment breaks down and needs repair
The random unavailability of staff due to sickness or getting pulled away to work on projects for other
departments
The Distribution Chooser will help you select the appropriate statistical distribution that will randomly
calculate how much time will elapse between patient arrivals. It will also help you to select the appropriate
parameters for your statistical distribution. When you're done using the Distribution Chooser, it will create
an expression based on the options you selected.
You can also use ExpertFit to help analyze statistical data that you've gathered to determine which kind of
statistical distribution you should select using the Distribution Chooser.
Using the Distribution Chooser
Various settings that show up in the Quick Properties pane have a pull-down menu that gives an option
called Choose a statistical distribution. When you choose this option, it will open the Distribution
Chooser tool, as shown in the following image:
215
The Distribution Chooser allows you to select from many possible statistical distributions to generate
random numbers. You can change the settings for each statistical distribution so that it uses different
criteria or ranges of numbers to generate the random numbers. When you make changes to the settings,
the blue bar graph will update to display the probabilities that certain numbers will be generated.
In the Distribution Chooser, you can click the Distribution menu to select from many possible statistical
distributions. A few commonly used distributions are:
Bernoulli - Randomly generates one of two different numbers, kind of like a coin toss.
Exponential - Numbers at the low end of the distribution scale are more likely to be generated at
random.
Normal - Has a distribution strategy similar to a bell curve in which numbers in the middle of the
distribution scale are more likely to be generated at random.
Triangular - Similar to the normal distribution strategy, but has a greater range of numbers in the
middle of the distribution scale that are more likely to be generated at random.
Duniform and Uniform - Will randomly select numbers within a specific range. The only difference is
that duniform uses integers (e.g. whole numbers, no decimals) and uniform can use any number.
Each distribution method has a unique set of parameters that you can customize. These parameters are
located underneath the Distribution menu. You can try experimenting with different parameters to get
different statistical outcomes.
The bottom half of the Distribution Chooser contains a bar graph. The graph visually represents the
probability of a certain number being randomly generated by this distribution method. The bottom numbers
show the amount of time in minutes and the blue bars show the probability that those numbers will be
randomly generated. For example, in the preceding image, there is a high chance there will be 100 minutes
in between patient arrivals while there will be a low chance that there will be 75 minutes in between patient
arrivals.
After closing the Distribution Chooser, you'll notice that the box next to the menu will then be auto-
populated with a mathematical expression. The Distribution Chooser created that mathematical expression
based on the parameters you used. If you need to change these parameters, you can re-open the
216
Distribution Chooser at any time. To re-open the Distribution Chooser, click the Edit Parameters button
next to the box. You can also click the Code Edit button to write your own custom code if you are
comfortable using FlexScript. You can also edit the mathematical expression directly, but be aware that
this will make the Edit Parameters button unavailable.
217
Creating a Warm-up Period
You might want to create a warm-up period in your model. A warm-up period is a way of letting the model
run a little while before it actually begins. Warm-up periods can help you get more accurate data if you are
simulating a health care facility that is open constantly.
For example, imagine you are building a simulation model of a hospital ward. Because hospital wards
generally run 24 hours, 7 days a week, the simulation model would be inaccurate in the beginning while all
the patients were first beginning to arrive. But you can solve this problem by using a warm-up period. If you
create a warm-up period time, your model won'tstart collecting statistical data until the end of the warm-up
period, when it reaches a relatively normal, stable patient activity.
To create a warm-up period:
1. On the simulation control bar, click the arrow next to the Run Time box. This will open up a dialog box
where you can change the simulation's time settings, as shown in the following image:
2. In the Time of warmup period end box, type in what time you want the warm-up period to be
completed. Periods of time are formatted with days, hours, and minutes---each separated by a colon.
Monday is treated as day 1 and the hours use military time. For example, if you wanted to the warm-up
period to be complete at 4:15p.m. on a Wednesday, you would format it as 03:16:15.
3. Click OK to save your settings
When you reset and run your simulation model, it will still run during the warm-up period, but the simulation
statistics will reset after the warm-up period ends.
218
Routine Staff or Location Activities
After creating patient-centered activities for your simulation model, you might also want to simulate routine
staff or location activities that will run independently from the patients. For example, you might need to
simulate things such as staff schedules and shift changes, clerical work, janitorial work, or routine patient
care (such as checking vitals every hour).
You'll simulate these kinds of activities using three different tools, depending on your purpose, as explained
in the following table:
Tool Possible Activities
Shift
Schedules
Staff schedules and shift changes
Lunch breaks or other mandatory breaks
Equipment or location availability (e.g. making it so that a particular piece
of equipment or location is only available for use at specific times or days
of the week)
Global
Processes
Staff meetings
Routine patient care (such as checking vitals every hour)
Clerical work (such as answering phone calls)
Janitorial work
Random
Interrupts
Occasional equipment break-downs
Staff members who are occasionally unavailable at random times (such
as being asked to work on responsibilities for another department)
All of these independent activities could affect what happens in the simulation model and it might be
valuable to simulate them, depending on your simulation goals.
219
The Shift Schedules Tool
You can use the Shift Schedules tool to create shift schedules and break schedules for staff groups or
individual staff members. Additionally, you can also use the shift schedule tool to determine the hours that
a particular location, piece of medical equipment, or transport will be unavailable.
Each schedule resembles a spreadsheet where you can mark the time slots that a particular resource will
be available, off schedule, on lunch, or on break.
A few things to keep in mind about shift schedules:
You can create multiple schedules for your model
You can assign an entire resource group to a particular schedule or you can assign group members to
a schedule individually
You can assign locations or areas to a schedule, but they can only be listed as either available or off
schedule
Resources or locations can be assigned to more than one schedule if needed
The rest of the topics in this section will discuss how to use the Shift Schedules tool.
220
Adding and Managing Schedules
Each schedule resembles a spreadsheet where you can mark the time slots that a particular resource will
be available, off schedule, on lunch, or on break.
You'll edit schedules using the Shift Schedule tool. You can access the Shift Schedule tool using the
Toolbox. The Shift Schedule tool uses the tool components feature. This means that you will use the
Toolbox to create, rename, delete and create a duplicate copy of each schedule. (See Using the Toolbox
and Toolbar for more information.)
To create your first schedule:
1. If needed, click Toolbox on the toolbar to open the Toolbox in the left pane.
2. Click Add new tool at the top of the Toolbox. This will open a menu of possible tools.
3. Select Shift Schedule. This will create a new patient track named Schedule1 in the Toolbox and will
open up the newly created track in the Shift Schedule tool.
Now you can begin editing the schedule, which will be discussed in the rest of the topics in this chapter.
221
The Shift Schedules Tool at a Glance
The Shift Schedule tool is the main tool you will use to create schedules for staff and locations. The main
elements of the Shift Schedule tool are labeled in the following image:
Each element will be explained in more detail in the following sections.
Tabs
At the top of the tool is a tab for each schedule that is currently open. (See Opening and Closing a Tool
Component for more information about opening the Shift Schedule Tool in the Toolbox.) The schedule that
is currently active will be highlighted in blue. (See Arranging Windows and Tabs for an explanation of how
you can change the display options for this tool window.)
Quick Properties
You can use the Quick Properties pane to edit the settings for this particular schedule:
222
Member Type - Use this pull-down menu to determine whether the schedule should apply to either
locations or resources (staff, transports, or equipment). By default, Resource will be selected from this
list, meaning that this schedule will only apply to staff members or other resources. If you want to
create a schedule for locations instead, you should select Location from this menu. Be aware that
once you add a resource or location to the Member List, this schedule will automatically become
locked as either a Resource or Location member type.
Break Option Settings - If you click the Break Option button next to the Member Type menu, you
will be able to edit the settings for each break option. The Break Option settings will be different
depending on whether you selected Resource or Location from the Member Type menu. (See Break
Option Settings and Location Break Option Settings for more information.)
Member List - Use the settings underneath the Member Type menu to assign specific resource
groups, resource group members, locations, or areas to this schedule. (See Adding Staff or Resources
to a Schedule for more information.)
The Triggers and Advanced settings in the Quick Properties pane will not be discussed in depth in this
version of the User Manual. In general, you can use the Triggers settings to change the attributes of the
resources or locations when they are unavailable. If you are comfortable with FlexScript, you can use the
Advanced settings to modify the code for the behavior of members when they go on or off break. If you
would like more information about these settings, please contact FlexSim Customer Support.
Schedule Table
The schedule table is used to apply different break options to a specific time slot. Each row represents a 15
minute increment of time, beginning at midnight and listed in military time. Each column represents a
specific day of the week.
You can select a single cell or a group of cells and then choose which break option should apply to those
cells. Select the appropriate break option and then click the Apply button. The cells will now display the
break option you just selected.
If the resources or locations are available at a given time slot, the cell will be blank. Otherwise, the cell will
list one of the other break options that have been applied to that time slot.
Break Options
When you select a cell or a group of cells in the Schedule Table, you can choose which break option
should apply to those time slots. If you choose Available, the staff or location will be available to work on
an activityduring those time slots. If you choose one of the other break options, they will not be available
during that time (except under certain conditions).
The break options will be different depending on whether you selected Resource or Location from the
Member Type menu in Quick Properties.
Locations only have the Available and Off Schedule break options. See Location Break Option Settings
for more information about how to change what happens to a location when it is off schedule.
Resources (staff members, transports, or equipment) have the following break options:
Available
Off Schedule
Lunch
Break 1
223
Break 2
You can use these break options to indicate what type of break a staff member is on. You can determine
the behavior of the staff while they go on different types of breaks by using the break option settings. (See
Resource Break Option Settings for more information.)
224
Adding Staff or Resources to a Schedule
If all the staff or resources in your simulation model will use the same schedule in your simulation model,
you will only need to create one schedule and assign all the resources to it.
However, if you want to build a more complex schedule system and assign different staff members to
different schedules, you might want to put a little thought into the best method for building your scheduling
system.
There are basically two strategies for building a complex schedule system:
Assign different schedules to individual resource group members - You can create different
schedules and assign individual group members to those schedules. For example, if you have one
group of nurses with four members, you could assign two of the nurses (Nurse_Jane and Nurse_Joe)
to one schedule and the other two nurses (Nurse_Anne and Nurse_John) to another schedule.
Assign schedules to different resource groups - You can create multiple resource groups and
assign the entire group to that schedule. For example, you could create two different groups of nurses
(Nurses1 and Nurses2) and assign the different groups to two different schedules.
The strategy you use should be based on your simulation goals. Be aware that if you create different
resource groups, it could possibly mess up the Staff Requirements for certain activities. One way to get
around this problem is to create Alternate Groups for different shift schedules. See Creating Alternate
Resource Groups for more information.
Adding Resource Groups or Group Members
To add a new resource group or group member:
1. Open the schedule to which you want to add a group member. (See Opening and Closing a Tool
Component for more information about opening the Shift Schedule Tool in the Toolbox.)
2. In Quick Properties, under Members, make sure that Resource is selected in the Member Type
menu.
3. Click the Plus sign underneath the Member Type menu. This will open up a sub-menu listing all the
resource groups that currently exist in your model.
4. Select the name of the resource group you want to use. This will open up another sub-menu that lists
the name of the resource group at the top of the menu. It will also list all of the individual group
members who belong to that resource group.
5. At this point, you have a choice to make. You can click the name of the resource group if you want to
assign any member of that group to this activity. Or you could click on a specific group member to
assign that group member to this activity.
When you are finished, the resource group or group member should appear in the Member List. This
schedule will now apply to any resource listed in the member list.
The Eyedropper
225
You can use the Eyedropper tool to select the resource you want to use by
clicking on it in your simulation model. See Eyedropper for more information.
Removing Resource Groups or Group Members
To remove a resource group or group member:
1. Open the schedule from which you want to remove a group member. (See Opening and Closing a Tool
Component for more information about opening the Shift Schedule Tool in the Toolbox.)
2. In Quick Properties, under Members, click the name of the resource group or group member you
want to remove from the Member List. Clicking the name will highlight it.
3. Click the Delete button above the Member List.
The resource group or group member should no longer appear in the Member List.
226
Resource Break Option Settings
The Shift Schedule tool has five different break options for resource groups:
Available
Off Schedule
Lunch
Break 1
Break 2
When a staff member's schedule indicates they are Available (represented by a blank cell for that time
slot), that staff member will be available to be assigned to an activity. You can customize the settings for
the other four break options so that staff members will behave differently depending on the type of break
their schedule says they should be on. For example, you can change the conditions that determine
whether the staff member can begin their break, whether the staff can be taken off break early, etc.
To edit the resource break option settings, open the schedule you want to edit in the Toolbox. (See
Opening and Closing a Tool Component for more information about opening the Shift Schedule Tool in the
Toolbox.) Then in Quick Properties, click the Break Option button next to the Member Type menu.
This will open up the Scheduled Break Options dialog box, as shown in the following image:
You can use the default settings (shown in the previous image), or you can customize the settings.
Each of the settings will be discussed in the following sections.
Break Condition
The Break Condition setting allows you to determine if the break should be skipped under certain
conditions. The default is that the break will always occur. If you are comfortable with FlexScript, you can
type in a custom expression here to determine the conditions under which the break will occur. Be aware
that the expression should return either a true or a false value (true means they will take the break, false
means they will not take the break). If the expression is false, the staff member will skip the break entirely.
227
Priority
You can type a different number in the Priority box to change the priority level for this type of break. The
priority levels for breaks are the same as the priority levels for any other activity that a staff member could
be assigned to work on. Make sure you read and understand Staff and Resource Priorities before changing
the default priority settings.
Keep in mind that if this break has a higher priority level than other possible activities that the staff member
could work on, the staff member will not work on those activities until after the break is complete. If the
break has a higher priority level that is in a higher tier, the staff member will actually stop working on their
current activity and leave to go on break. For that reason, you should think carefully about what priority
level this break should have.
Variance
The Variance box can be used to change the amount of time the break will take, meaning that the staff
member might take less than or more than the full amount of time specified in the schedule. You can enter
a positive or negative number in this box or you can use a mathematical distribution to make the length of
the break vary randomly.
For example, if your staff member was scheduled to take a break from 9:00 to 9:15 and you typed a 5 in
this box, the break would end 5 minutes after the scheduled time slot, at 9:20. Keep in mind that variance
affects the actual duration of the break, not the specific times. If a staff member starts the break late (such
as at 9:05 in this example),