Documente Academic
Documente Profesional
Documente Cultură
Date Published
01 JUN 2015
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
Settings
o Customizing Object Properties and
Settings
Objects
Appearance of Objects
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
Objects
o Introduction to Connecting Locations
and Objects
o The Flowchart Tool at a Glance
o Using the Flowchart Tool
Patient-Centered Activities
Patient-Centered Activities
Introduction to Patient-Centered Activities
o
o
o
o
o
o
o
Activities
o Most Activities are Patient-Centered
o Building Complex Patient Tracks
Settings
Patient Destination
Processing Time
Staff Requirements
Staff Destination
Equipment Requirements
Transport Requirements
Next Activity
o
o
o
o
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
Adding Patients
Adding Patients
Introduction to Patients
o Patient Classifications
o Introduction to Patient
Settings
Activity IDs
Activity Names
Milestones
Predecessors
Classifications
o The Patient Classifications Tool at a
Glance
Patient Visuals
Activity Types
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
Patient Visuals
Introduction to Patient Visuals
The Patient Visuals Tool at a Glance
Managing Visual Profiles
Visual Profile Settings
Assigning a Visual Profile to a PCI or
Activity
o Patient Overhead Text Display
Activity Types
Overview of Activity Types
Process
Process > Send Message
Process > Send Item
Move Equipment > Process
Move Transports > Process
Escort Patient > Process
Transport Patient > Process
Patient Travels Unattended
Decision Point
Custom
Patterns
o Inter-Arrival Times
o Hourly Arrivals
o Appointments
o Custom Arrivals
Tutorials
Facility
o Tutorial 1.1 - Importing a Floor Plan
o Tutorial 1.1 Introduction
o Step One - Create and Save a New
o
o
o
o
o
o
Running a Simulation
Introduction to Running a Simulation
Using the Simulation Control Bar
Preventing Simulation Model Errors
o
o
o
o
Tutorials
Introduction to Tutorials
Tutorial Case Study
o
o
o
o
Simulation Model
Step Two - Import a Floor Plan File
Step Three - Change the Floor
Plan's Visual Settings
Step Four - Scale the Floor Plan
Drawing
Tutorial 1.2 - Adding Location and
Item Objects
Tutorial 1.2 Introduction
Step One - Add the Objects to the
Model
Step Two - Resize and Rotate the
Objects
Step Three - Change Object Shapes
and Appearance
Step Four - Change Object Settings
Step Five - Add Locations to a
Custom Area
Tutorial 1.3 - Connecting Location
and Item Objects
Tutorial 1.3 Introduction
Step One - Add the Objects to the
Model
Step Two - Resize and Rotate the
Objects
Resources
Tutorial 2.1 - Adding and Changing
Staff and Resources
Tutorial 2.1 Introduction
Step One - Add Staff and Resources
to a Model
Step Two - Add Group Members to a
Resource
Step Three - Rename Groups and
Group Members
Step Four - Move and Rotate Group
Members
Step Five - Change Staff Member's
Appearance
Tutorial 2.2 - Creating Alternate
Resource Groups
Tutorial 2.2 Introduction
Step One - Create Alternate
Resource Groups
Step Two - Add Members to the
Alternate Groups
o
o
o
o
o
o
o
Staff
Step Eight - Assign a Transport
Step Nine - Return to a Reserved
Location
Tutorial 3.3 - Creating Additional
Patient Tracks
Tutorial 3.3 Introduction
Step One - Copy a Track
Step Two - Change Activity Priority
Levels
Step Three - Delete Activities
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
o Tutorial 3 - Patient-Centered
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
Visuals
o Tutorial 4.2 Introduction
o Step One - Create New Visual
Activities
Tutorial 3.1 - Creating Patient Tracks
and Activities
Tutorial 3.1 Introduction
Step One - Create a New Patient
Track
Step Two - Add a Milestone and a
Location
Step Three - Add a Processing Time
Step Four - Assign Staff
Step Five - Keep a Staff Member
Step Six - Assign Equipment
Step Seven - Release a Staff
Member
Step Eight - Reuse Staff Members
Tutorial 3.2 - Creating Decision Point
Activities
Tutorial 3.2 Introduction
Step One - Create a Doctor
Examination Activity
Step Two - Create Variable Activities
Step Three - Change Next Activity
Settings
Step Four - Change Predecessor
Settings
Step Five - Send Staff to a Different
Location
o
o
o
o
o
o
o
o
Profiles
Step Two - Change Visual Profiles
Step Three - Assign Visual Profiles
to a PCI
Step Four - Assign Visual Profiles to
an Activity
Tutorial 4.3 - Creating Patient Arrival
Patterns
Tutorial 4.3 Introduction
Step One - Create an Hourly Arrival
Schedule
Step Two - Create an Inter-Arrival
Pattern
Step Three - Set the Hours of
Operation
Reference Manual
License Activation
Concepts
Example
Reference
Overview
Breakpoints
Call Stack
Code Profiler
Event List
Event Log
Local Variables
Watch Variables
o Command Helper
FlexScript Coding
o
o
o
o
FlexScript Coding
Writing Logic in FlexSim
Basic Modeling Functions
Code Editor
Debugging
FlexScript Commands
Debugging
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:
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.
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 ID will be authorized to run the full version of FlexSim HC at a given time.
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.
10
11
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:
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.
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.
12
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/.
13
What's New?
Version 5.0.2 (May 22, 2015)
New Features
1.
2.
3.
4.
5.
6.
7.
8.
Bug Fixes
1.
2.
3.
4.
14
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 double click 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 caseinsensitive 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
15
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
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
16
Reordered and improved the information in the popup display in the box plot
Added Acuity to the labels that can be edited by a Patient Arrivals Schedule
Added Help button to Dashboard, move the tab control buttons to the left to be with the other buttons
When models are updated from previous versions, a list of the old versions is kept
Dot plots now list the replication number of an observation in the popup window
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
17
Bug Fixes
1.
2.
3.
4.
5.
6.
Supports large memory addresses in 32-bit systems (helpful for large models)
Fixed how Patient Distance Traveled is reported
Cleaned up a lot of pickoptions that used intarray when they should have used treenodearray
Fixed and improved the "By Label Value" picklist option
Cleaned up syntax errors/warnings in pickoptions
Track import/export does not support multi-line code (it was badly broken before)
Bug Fixes
1.
2.
3.
4.
5.
GUI fixes
The PCI column of the Appointment table is now imported from Excel correctly
Improved how line graphs using VALUE_EXACT merge replication data together
Fixed an exception in Experiments if Data Collectors only had 1 or 2 columns
Row headers in the PCI table can not be edited (this was a regresion from a previous version)
18
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.
2.
3.
4.
5.
6.
7.
8.
9.
Dashboards with dot plots in them now save and load correctly
Dot Plot should not slow down as badly after it has been moved or resized
Fixed syntax error in "Based on simulation time (table)" pickoption
Patient Appointment table has "Actual Times" column cleared on reset - like it used to work
Fixed Excel import/export of labels in the PCI table
Dashboard widgets that use "Current Value" calculate their averages more accurately
Experimenter works with DataCollectors better now
Fixed a bug in saving dashboards with model controls in them
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
19
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. Fixed how 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
20
Bug Fixes
1.
2.
3.
4.
5.
21
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
22
23
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 nonprimary 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.
24
25
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.
Fixed GlobalProcesses so that they do not throw exceptions when they occur
It is no longer possible to import a model that was made in a different version
The Help button on the Path Node's Parameters window now opens the correct help page for each tab
Updated the comment header on several pickoptions so that GetRequiredGroup() is demonstrated
Added some commands to the documentation
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.
26
Updated the Track Manager so that certain fields are disabled and/or cleared out when needed.
Added SortModel() command and included the functionality in Tools|Maintenance.
The ItemConveyor is no longer a roller conveyor by default. It is now a more abstract series of arrows.
The help now includes commands that start with capital letters in the index pages.
Added getobjecttype() command.
Updates to model update code.
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 all color-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.
27
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.
28
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.
29
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.
30
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 you a 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.
31
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.
32
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.
33
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()
34
10. An option has been added to the Hourly Arrivals tab of the Patient Arrivals 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
35
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.
36
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.
37
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.
38
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+Space bar to toggle between run and stop the model run
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
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,
39
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 the same 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:
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.
40
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.
41
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:
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 Repeat Interval 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
42
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.
43
44
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.
45
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.
46
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 userdefined 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.
47
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.
48
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. Youll 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 patients 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 reimporting 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. Youll notice for instance, that the Process
Location field only shows up once youve 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. Youll notice a new checkbox on the Activities tab for the first five process activity types that is Patients
exclusivity is required. If a patients 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 transports 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 Managers 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.
49
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. The PatientArrivals 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 patients 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 users 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 patients 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.
50
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 patients 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
things 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 PFMs 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 replication frequency 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
51
59. Many new commands have been added and documented in the Command List.
52
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.
53
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.
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.
54
55
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:
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.
56
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.
57
58
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:
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.
59
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.
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.
60
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.
61
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:
62
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.
Tool
Floor Plan
Tool
Component
Type
Floor Plan
Description
63
The Patient
Track
Manager
Track
Alternate
Group Tool
Alternate
Group
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
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.
64
65
66
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 (>).
67
68
69
70
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.
71
Horizontal Split
You can split the center pane horizontally with the model on either the top or the bottom pane:
Vertical Split
You can split the center pane vertically with the model on either the left or right pane:
72
73
74
75
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.
76
Click on the edge of the window or pane and drag it until the window or pane is the preferred size.
77
78
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:
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
What are common problems or delays that sometimes occur while they are completing those tasks?
79
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 different steps 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?
80
81
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.
82
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.
83
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.
84
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.
85
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.
86
87
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.
88
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.
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
89
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.
90
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.
Another problem 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.
91
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.
92
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
93
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.
94
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.
95
96
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
97
General
Properties
All objects
Visuals
All objects
Arrivals
Patient Arrivals
objects
Patient
Condition
Patient Queuing
objects
Maintenance
Patient Processing
objects
Entrance
Criteria
Labels
All objects
Statistics
All objects
98
Advanced
Visuals
All objects
Triggers
All objects
Unless otherwise noted in the table above, many of these settings are explained in Additional Patient
Location Settings.
Patient Location Settings.
99
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.
100
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.
101
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.
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
Rotate
tool
Resize
tool
102
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:
Resize
Position
103
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
some other object in the simulation model.
104
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:
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:
105
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:
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
106
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.
107
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 Patient Areas 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.
108
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:
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:
109
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:
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.
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
110
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).
111
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:
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:
112
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:
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.
113
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.
114
115
116
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:
117
118
119
120
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
121
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.
122
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.
123
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.
124
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.)
125
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.
126
127
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.
128
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.
129
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 directed to 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.
130
Phase
General Tasks
Beginning
Phase
131
Visual Appearance
Assignment
Phase
Movement
Phase
Process
Phase
Concluding
Phase
132
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.
133
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.
134
135
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
136
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.
137
138
139
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
Delete
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.
140
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.
141
142
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.
143
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.
144
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:
145
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.
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.
146
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.
147
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:
148
149
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 predecessor activities have already finished.
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.
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:
150
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).
151
* 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
152
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.
153
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.
154
Process
The Process Activity Type simulates a simple process that will occur while patients remain at their current
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.
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
Staff
Requirements
Optional
Staff
Destination
Required if staff
are assigned
155
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
Processing
Time
Required
Staff
Requirements
Optional
Staff
Destination
Required if staff
are assigned
156
157
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
Processing
Time
Required
Staff
Requirements
Optional
158
Staff
Destination
Required if staff
are assigned
159
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 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
Staff
Requirements
Required
Staff Destination
Required
Equipment
Requirements
Required
160
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
Staff
Requirements
Required
Staff Destination
Required
161
Transport
Requirements
Required
162
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
Processing
Time
Required
Staff
Requirements
Required
163
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
Processing Time
Required
Staff
Requirements
Required
164
Transport
Requirements
Required
165
Specific Settings
The following 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
Patient
Destination
Required? Notes
Required
166
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.
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.)
167
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.
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.
168
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:
169
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.
170
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:
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.
171
172
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)
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.
173
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 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.
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.
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.)
174
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:
175
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.
176
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.
177
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.
178
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 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.
179
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:
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.
180
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:
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.
181
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.
182
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.
183
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.
184
Advanced Functions
The Advanced Functions settings allow you to add some complexity to your activities. The settings are
shown in the following image:
185
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).
186
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.
187
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.
188
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:
189
190
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.
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-
191
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
192
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.
193
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.
194
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.
195
Quick Properties
You can use the Quick Properties settings to change the appearance of each visual profile. See Visual
Profile Settings for more information.
196
197
General Properties
You can change 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.
198
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.
199
200
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.
201
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.
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:
202
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
203
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 any or 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.
204
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:
205
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.
206
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.
Arrival at Time 0
Check the Arrival at Time 0 box if you want the first patient to arrive when 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.
207
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:
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.
208
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.
209
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:
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.
210
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.
211
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:
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.
212
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.
213
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.
214
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 autopopulated 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
215
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.
216
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.
217
Tool
Possible Activities
Global
Processes
Staff meetings
Routine patient care (such as checking vitals every hour)
Clerical work (such as answering phone calls)
Janitorial work
Random
Interrupts
Shift
Schedules
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.
218
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
The rest of the topics in this section will discuss how to use the Shift Schedules tool.
219
220
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:
221
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 activity during 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
222
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.)
223
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.
The Eyedropper
224
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.
The resource group or group member should no longer appear in the Member List.
225
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.
226
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), the break would finish at 9:25.
You can click the pull-down menu next to this field and select Use an expression and then Choose a
Distribution to make the duration of the break slightly random. This will open up the Distribution Chooser
tool, which can help you choose a mathematical distribution strategy for creating random numbers. (See
the Distribution Chooser for more information.)
Max Delay
The Max Delay box allows you to determine how much time (in minutes) should pass before the staff
member skips this break entirely.
Many times, staff members will not go on a break until they are finished with their current activities and any
other activities that have a higher priority than the break. If you leave the Max Delay box empty (which is
the default), they will go on break any time once they are finished with the current activity and higher
priority activities.
If you type in 15, for example, then if the staff members do not finish their current activity or higher priority
activities within 15 minutes of their scheduled break time, the staff member will skip this break and keep
working.
Break Location
The Break Location box determines where the staff members will go while they are on their break. By
default, they will return to the colored rectangular square on the floor of the simulation model that
represents their primary resource group.
However, you can select any location object you've added to your model as their location instead. Click the
pull-down menu and use the menu options to choose the appropriate location.
227
If you choose CURRENT_LOCATION from the pull-down menu, the resource will remain in whatever
location they are in when the break begins and will not travel anywhere.
The Eyedropper
You can use the Eyedropper tool to select the location you want to use by
clicking on it in your simulation model. See Eyedropper for more information.
Allow Preemption
If the Allow Preemption check box is checked, it will be possible for the staff member to be forced to end
their break early and go work on any activities that are in a higher tier. This will be based on the priority
level you used in the Priority box and the priority level for other activities requesting this resource. (See
Staff and Resource Priorities for a deeper explanation of the priority levels and preemption.)
If the Allow Preemption check box is clear, staff members will never be pulled away from their break. You
should consider keeping this box clear for the Off Schedule break option, which is intended to be used for
staff members who are off-site.
228
229
This dialog box allows you to determine what will happen to the location when it is off schedule. In other
words, it will determine whether the location can continue receiving patients and/or sending the patient's
currently at that location to another location. The following options are available:
Close Outputs - The location will stop sending patients or items and will instead keep them at this
current location.
Close Inputs and Outputs - The location will stop receiving and sending patients or items.
Stop Arrivals - If a Patient Arrival object is added to this schedule's member list, that Patient Arrival
object will not create new patients at this time. This is particularly useful if you are using the Patient
Inter-Arrival Pattern. See Introduction to Patient Arrival Patterns for more information.
Stop Object - This object will stop receiving and sending patients or items and will also stop processing
the patient or item.
230
Staff meetings
Routine patient care (such as checking vitals every hour)
Clerical work (such as answering phone calls)
Machine maintenance or janitorial work that will occur periodically over time
In FlexSim HC, these kinds of activities are called global processes because they are not patient-centered
but are rather based will occur periodically or at regular intervals while while a simulation model runs. In
other words, these kinds of activities are not controlled by what the patient does and occur globally while
the entire simulation model is running.
Fortunately, the Global Processes tool is functionally identical to Patient Track Manager. Nearly all of the
same concepts apply. So once you know how to create patient-centered activities, it will be relatively easy
to learn how to make global processes. There are only a few key differences, as illustrated in the following
table:
231
232
233
10. Click the Add new trigger instruction button. A menu will pop up with a few different trigger options.
11. Select Patient Rounds. This will open up a box explaining how to change the Patient Rounds settings.
12. In the Number of Locations line, change the blue number 2 to the number of location objects you
want the nurse to visit. For example, let's imagine we want the nurse to visit four possible beds in the
BedArea. We would change the 2 to 4.
13. In the Location list line, you will need to type out the names of each location you want the nurse to
visit. Each location should be separated by a comma with no spaces in between. For example, we
234
would change it to Bed1,Bed2,Bed3,Bed4. See the sidebar about Viewing Location Object Names
in the following section.
14. You will not need to edit any other lines in the editor.
15. Click OK to close the Trigger Editor and save your changes.
16. In Quick Properties, under Advanced Time Controls, in the Start Time box, type 01:08:00. This
will start the global process at 8:00 am on a Monday. (See Advanced Time Controls for more
information.)
17. In the Repeat Interval box, type 1440. This means that the activity will repeat every 1,440 minutes. In
other words, it will be repeated every day at 8:00a.m. If you wanted to repeat this activity every hour,
you would type 60 instead. NOTE: You could alternatively use the Activity Finished trigger to set the
amount of time that the activity should restart again.
To create the midday and afternoon vital signs checks, you would add two new activities to the global
processes. Re-name one 20_Midday Vitals Check and the other 30_Afternoon Vitals Check. For the
midday check (activity 20), you would set the start time as 01:12:00. For the afternoon check (activity
30), you would set the start time at 01:16:00.
235
236
For example, you could type the expression T(6, 20, 12, 1) in this box. This expression uses
the Triangular distribution method to create a random amount of time. 6 represents the minimum
amount of time between phone calls (6 minutes). 20 represents the maximum amount of time between
calls (20 minutes). 12 represents the mode, which means that 12 will be the most common number
that is randomly generated. In other words, there will be 12 minutes between phone calls. 1 tells the
system to use FlexSim's first random number stream in this simulation. (See the Distribution Chooser
for more information about how random numbers are generated in FlexSim.)
When you run the simulation model, you should notice that the one of the members of the Receptionists or
Nurses group will sometimes move to the Phone and will be unavailable to help a patient or work on
another activity until the phone call is finished.
237
238
239
Running a Simulation
Once you've built the layout of your facility, set the appropriate patient arrival pattern(s), and created your
patient tracks and activities, you're ready to run your simulation. This topic will provide a high-level
overview of what happens when a simulation is running from start to finish. The rest of the topics in this
chapter will discuss the specific details of running a simulation in more depth. It will also discuss some best
practices to follow when running a simulation.
Overview
Running a simulation means that patients will begin to arrive at the facility and will start interacting with
staff and other objects in your simulation model. You will be able to visually see the patients and staff as
they move through the model. As your simulation runs, you will also be able to collect data about the model
that will help you to analyze and optimize your health care system. (See the chapter entitled Getting Data
from the Simulation for more information about data collection).
To run a simulation, you'll use the simulation control bar. (See Using the Simulation Control Bar for more
information.) When you're ready to begin the simulation, you will press the Reset button to refresh the
model. Then you will press the Run button to start the model running. (See Run Control Buttons for a more
detailed explanation of these buttons.)
By default, all simulations will begin on a Monday at midnight (01:00:00) and will end seven days later on
the following Monday at midnight (08:00:00). See Run Time Tools for information about how to change the
date and time that the simulation starts and ends.
You can also change how quickly the simulation model advances by either using the Step button (see Run
Control Buttons) or by changing the simulation run speed (see Run Speed Tools for more information).
While the simulation begins running:
1. The patients will begin to arrive at the health care facility using the patient arrival pattern(s) you set for
your Patient Arrival objects. (See Patient Arrivals and Appointments for more information.)
2. After arriving in your simulation model, patients will begin the first activity on their patient track. Patients
will proceed through all the activities on the activity list until they exit the simulation model.
3. If you have created any global processes for your staff members, they will begin working on those
global processes while the model is running.
4. This process will repeat itself until the simulation model is set to finish running.
Patient Identification
While your model runs, each patient that arrives in the simulation model will be
assigned a unique ID for tracking purposes. The ID will be based on: 1) the patient
track to which the patient is assigned, and 2) the order in which the patient arrived.
The first patient will be 1, the second will be 2, and so forth.
For example, the third patient to arrive for a track named Wellness would be identified
as Wellness_ID3.
240
These buttons are fairly intuitive to use since they closely resemble the playback controls on a media
player. However, a few of the buttons possibly work differently than you might expect. For that reason, you
should read the explanation of each button in the following table:
Icon
Button
Name
Keyboard
Shortcut
Purpose
Reset
Resets the simulation to the starting position and sets the time
display (clock) on the run time tool to zero. It clears out any
patients that are in the model and returns all resources to their
starting positions. You should always press the Reset button
when you are starting the simulation from its beginning.
Ctrl + left
arrow
Run
Ctrl + space
bar
Stop
Stops the model simulation. After pressing this button, the time
display on the Run Time tool will stop increasing.
Ctrl + space
bar
241
Step
Skips the model clock forward to the time of the next event that
should occur in the model. The Step button essentially allows
you to quickly skip through the events of the simulation one
event at a time.
Ctrl + right
arrow
The model clock indicates how many minutes that have elapsed since the simulation started running.
FlexSim HC unfortunately doesn't have a method for changing the time display at this time.
By default, all simulations will begin on a Monday at midnight (01:00:00) and will end seven days later on
the following Monday at midnight (08:00:00).
Clock time for start of simulation - By default, all simulations will begin on a Monday at midnight. To
change the day of the week and/or time that a simulation begins, type a different time in this box. See
the previous tip box for an explanation about how format dates and times.
242
Time of warmup period end - Warm-up periods allow you to run the model a little while until the model
should reach a period of relatively normal, stable patient activity. For more information about this
setting, see Creating a Warm-up Period.
Clock time for end of simulation - By default, all simulations will end seven days later on the following
Monday at midnight. The model will stop when the model clock reaches the date and time entered in
this box. To change the day of the week and/or time that a simulation ends, type a different time in this
box. See the previous tip box for an explanation about how format dates and times.
The model speedometer shows the current speed the simulation model is running. By default, models will
run at a rate of 3 simulation seconds per real-time seconds. You can make that number faster or slower
depending on how quickly you want to run the model.
You can use the slider button to manually adjust the run speed. Alternatively you can click on the dropdown to open the speed options. You can select one of these options to change the speed. 1.00 will run
the model in real time, Maximum is the fastest speed, and Custom allows you to type the speed you
would like in the box below. 0.1 is the slowest custom speed you can set. Click the Set button to apply the
new custom speed settings.
243
244
The patient's current location and next location have not been connected in the Flowchart tool.
You did not assign a destination in either the Patient Destination or Staff Destination for that activity.
You have created network nodes that are not connected to the patient's next location.
Make sure that all your locations are connected in the Flowchart tool. See Connecting Locations and Item
Objects for more information.
Review all of your activities to make sure you have entered in an appropriate destination in either the
Patient Destination or Staff Destination settings for each activity.
Network Nodes are not explained in this version of the FlexSim User Manual. For help connecting network
nodes, please contact FlexSim Customer Support.
245
246
Dashboards - You will use the dashboards to gather and display the statistics you are interested in
such as patient waiting times, length of stay, staff and location utilization, etc.
Experimenter - You can use the Experimenter to run your simulation model multiple times and see how
your results change if you change certain variables.
Saving and Exporting Data - Lastly, you can export any data you collect to an Excel spreadsheet or
CSV file.
The sections in this chapter will explain each of these tools and processes in more detail.
247
Statistics Dashboards
You will primarily use dashboards to gather and display statistics from your simulation. You could think of a
dashboard as being a blank canvas that you will fill with various widgets. A widget is a chart, graph, text, or
diagram that will display data about your simulation model. You can choose which widgets to display on
your dashboard based on the data you are most interested in analyzing.
Widgets on the dashboard are actually updated in real time while your simulation model is running. In other
words, you will be able to watch as the data displayed in each widget changes to reflect the latest
information that has been gathered from the simulation model.
Once you have a clear idea of what you want to measure in your simulation model, you should pick the
appropriate widgets that will gather and display the relevant data. See Widget Overview for an explanation
of the various widgets that are available.
If you don't find a widget that gathers the information you're interested in, you can use a Data Collector to
collect the relevant data and display it in a custom widget.
248
249
Introduction to Widgets
Once you've opened a dashboard, you'll notice that the Library (left pane) will change. It will no longer
show objects but will instead show a variety of widgets organized by category. If the Library doesn't change
immediately, try clicking inside the empty dashboard.
The following image shows a portion of the widget library:
The widget library is broken down into seven general categories based on functions and what type of
object they get data from:
See Widget Overview for an explanation of the various widgets that are available.
250
Adding Widgets
To add a widget from the Library to your dashboard:
1. Click on the widget and drag it into an empty spot on your dashboard.
2. A blank display box for the widget will appear on the dashboard and a dialog box will appear where you
can adjust the settings. Change the settings for the widget so that it gathers relevant data and visually
displays the data based on your preferences. (See Widget Settings at a Glance for more information.)
3. Click OK to save the changes and close the settings dialog box.
4. If needed, you can move or re-size the widget display box. (See Moving and Resizing Widget Display
Boxes for more information.)
If you need to change the settings later, simply double-click on the display box to open the settings dialog
box.
If you need to delete a widget, simply click on it and press the Delete key.
Widget Display
Even though the widget might be blank now, it will begin displaying information
once a simulation begins to run. The display will update and change in real time as
the simulation model runs until it is complete. If you reset a simulation model, it will
also reset the widget's display.
251
Task
Mouse
Icon
Instructions
Move the
display box
Move the mouse pointer to the edge of the display box. When the
pointer changes to a multi-directional arrow, drag the display box to
a new position.
Change the
width
Move the mouse pointer to a black guiding box in the center of the
left or right edge of the display box. When the pointer changes to a
horizontal double-headed arrow, drag the border to the right or left.
Change the
height
Move the mouse pointer to a black guiding box in the center of the
top or bottom edge of the display box. When the pointer changes to
a vertical double-headed arrow, drag the border up or down.
Change both
height and
width
252
Each group of settings will be explained in more detail in the following sections.
253
Sample Sets
The sample sets determine which types of patients, resources, or item objects you want the widget to
gather data from. The sample sets that are available for you to choose will be based on the particular type
of widget you're using.
Widgets in the Patient category allow you to choose which types of patients you want to gather statistics
from based on their Patient Classification Index (PCI).
Some Location widgets allow you to can also gather statistics from different PCIs while others allow you to
gather statistics from areas.
Resource widgets allow you to choose the staff, equipment, or transports you want to get data from based
on their resource group.
Item Object widgets allow you to choose which item objects you want to get information from.
The Model and Model Control widgets do not us sample sets.
Experimenter Settings
The Experimenter settings are for use in conjunction with the Experimenter. See the section about the
Experimenter for more information.
Miscellaneous Settings
A few widgets have some additional miscellaneous settings that appear roughly below the reported data
set checkboxes.
254
Widget Overview
This section will provide a basic description of each widget, organized by category. Widgets are listed in
the order they appear in the Library.
Patients
The following table provides a description of each patient widget:
Sample
Sets
Widget Name
Milestone Times
Milestone to
Milestone Times
State Times
A variety of different
possible patient states
Wait Times
PCIs
Throughput
PCIs
Not available
Model Census
PCIs
Not available
255
PCIs
Data Sets
Left Without
Being Seen
(LWBS)
PCIs
Not available
Length of Stay
(LOS)
PCIs
Not available
Costs
PCIs
Distance
Traveled
PCIs
Not available
Timeline
PCIs
Not available
Locations
The following table provides a description of each location widget:
Sample
Sets
Widget Name
Throughput
PCIs
Census
PCIs
Dwell Time
PCIs
256
Data Sets
Processing State
Times
Areas
A variety of
different possible
area states
Areas
Additional possible
area states
Cumulative Patient
Processing
Utilization
Areas
A variety of
different possible
area states
Cumulative
Location Utilization
Areas
Additional possible
area states
Resources
The following table provides a description of each resource widget:
Widget Name
Sample Sets
Data Sets
Staff resource
groups
A variety of different
possible staff states
Equipment and
Transport State
Times
Equipment and
transport
resource groups
A variety of different
possible equipment
and transport states
Costs
Staff, equipment,
and transport
resource groups
Not available
257
Staff Utilization
Staff resource
groups
A variety of different
possible staff states
Equipment and
Transportation
Utilization
Equipment and
transport
resource groups
A variety of different
possible equipment
and transport states
Staff Distance
Traveled
Staff resource
groups
Not available
Item Objects
The following table provides a description of each item object widget:
Widget Name
Sample Sets
Data Sets
Throughput
Item Objects
Not available
Content
Item Objects
Not available
Dwell Time
Item Objects
Not available
Arrival State
Times
Arrival Item
Objects
A variety of different
possible item arrival
object states
258
Queue/Convey
State Times
Queuing or
Conveying Item
Objects
A variety of different
possible item queuing
or conveying object
states
Processing State
Times
Processing
Item Objects
A variety of different
possible item
processing object
states
Exit Item
Objects
A variety of different
possible item exit
object states
Arrival Utilization
Arrival Item
Objects
A variety of different
possible item arrival
object states
Queue/Convey
Utilization
Queuing or
Conveying Item
Objects
A variety of different
possible item queuing
or conveying object
states
Processing
Utilization
Processing
Item Objects
A variety of different
possible item
processing object
states
Exit Utilization
Exit Item
Objects
A variety of different
possible item exit
object states
Model
The following table provides a description of each model widget:
259
Widget Name
Purpose
Costs
Time
The current date and time within a simulation model while it is running
Custom Text
Any custom text you want to display while the simulation model is running
Model Controls
The following table provides a description of each model widget:
Widget
Name
Purpose
Run controls
Adds buttons that allow you to control how the simulation runs directly from
the dashboard if needed.
Button
Edit Field
Drop Down
User Defined
The Data Collector allows you to create a custom widget that will display in the dashboard. See Data
Collector for more information.
260
261
Add/Remove Column - These buttons can be used to add or remove additional columns (rows) at the
bottom of the Data Collector.
Columns (Rows) - Each column (row) represents a piece of information that needs to be recorded by the
data collector. Keep in mind that each column will represent something that will be tracked and displayed
on the Data Collector widget on your dashboard. You can give each column a custom name in the first box.
You can also select whether you want to gather numerical data or textual data from the pull-down menu.
The third box is used to indicate what information you want to collect.
Because the Data Collector widget is a little complex, you should contact FlexSim Customer Support for
help designing this widget.
262
The Experimenter
The Experimenter is a tool that enables you to run the same simulation model multiple times, changing one
or more variables each time to see if you get different results. There are a number of different variables
that can be tested in your model. For example, you could design an experiment to see what happens when
you run a simulation model with only one physician. Then you could run the same simulation model with
two physicians, three physicians, etc. Then you could compare something such as patient waiting times or
length of stay to see which number of doctors produces the optimal results. (See Variables for a more
exhaustive list of possible variables that could be tested.)
The Experimenter is helpful for getting a high-level overview of the conditions that will produce the best
possible solution for the problem you are trying to solve through simulation.
The following sections will discuss some important concepts related to the Experimenter and will explain
how to use it appropriately.
263
Experiment
An experiment is a combination of changing variables that will be run multiple times with varying values
using the same simulation model.
Variable
A variable is a simple aspect of a simulation model that will be different in each scenario. You can test a
number of different variables in your model, such as:
Varying numbers of staff members, locations, transports, or pieces of equipment in your simulation
model
Different shift schedule arrangements or different hours of operation
Patient-centered activity settings or global process settings (such as the processing time or resource
assignments)
Different patient arrival schedules or patterns
Different model layouts
Also, if you are comfortable with FlexScript, you can also write your own custom code for the variables you
want to test.
Scenario
A scenario is a set of one or more variables that will change when a simulation model is run. The scenario
is where you define exactly what the value of a given variable will be each time the model runs a different
scneario.
For example, let's say you want to test how many doctors are needed at your facility to reduce patient
waiting times. In this case, the variable would be the number of doctors being used in the simulation model.
Therefore, each individual scenario would be the actual number of doctors that will be used each time the
simulation model is run. In one scenario, you could try using one doctor. In the second scenario, you could
use two doctors, and so forth.
264
Replication
A replication is a single run of a simulation model for a specific scenario. If desired, you can decide to run
only one replication of a given scenario, but it would probably be better to run multiple replications to get
more accurate statistical data.
Each time the Experimenter runs a replication of a particular scenario, it will use a specific number stream
to generate any random numbers that are required by the simulation model. For example, the
Experimenter will use a specific random number stream if the simulation model requires patients to arrive
in random intervals or if a particular process takes a random amount of time to complete.
Each replication will have slightly different results because each one will use a different number stream to
generate random numbers. The more replications you run, the more your results will be statistically reliable
because predictable patterns will start to emerge.
One important thing to keep in mind is that the Experimenter will run an identical series of replications for
each variable being tested. When a replication is repeated for additional scenarios and variables, it will use
the same number stream to generate random numbers. Let's use the following image as an illustration:
In this example, the experiment will test two variables: the number of doctors being used, and the number
of nurses being used. The experiment will test two different scenarios for each variable: one staff member
(1 doctor and 1 nurse) and two staff members (2 doctors and 2 nurses).
If you were to run 20 replications of each scenario, the Experimenter would use 20 different combinations
of random number streams to generate the random numbers used in the first scenario of the first variable.
That same combination of 20 different random number streams would be used to test the second scenario.
The same combination would also be used to test the first scenario of the second variable and so forth.
265
Scenarios
The Scenarios tab is shown in the following image:
You can use the table on the Scenarios tab to determine which variables you will test and how each
variable will change in each scenario of your experiment. For more information about using this tab, see
Designing Scenarios and Testing Variables.
Experiment Run
The Experiment Run tab is shown in the following image:
266
You will use the Experiment Run tab to run the actual experiment and monitor its progress until it is
complete. You can also use this tab to determine how many replications you will run for each scenario.
This tab can also control the data you will collect and export after the experiment is finished. See Running
an Experiment for more information.
Error Messages
You might see an error message if there is an error while an experiment is
running. You can possibly use the Output tab to troubleshoot the error if needed.
Advanced
The Advanced tab is shown in the following image:
267
The Advanced tab has many different triggers that you can use to change aspects of the simulation model
when an experiment or replication starts or ends. This tab is useful if you want something specific to
happen in the simulation model that you can't change until the actual model begins to run.
For example, you might possibly use the triggers at the end of the replication or experiment to help collect
and export data.
Output
The Output tab is shown in the following image:
The Output tab displays any error messages that might occur while you are running the experiments. You
can use these messages to troubleshoot any problems that might have occurred in a specific scenario and
a replication.
268
You can also display any messages that could have been produced in the output console in this tab.
Reducing errors
Try running your simulation model at least one time from start to finish before you
run an experiment. Once your simulation model can be run without any errors, you
are ready to use the Experimenter.
Explore
The Explore tab is shown in the following image:
The Explore tab allows you to explore a particular scenario and replication to view it in closer detail. You
can pick a particular scenario and replication and run the simulation model using the simulation run control
buttons. That way you'll be able to monitor a specific scenario or replication more closely to determine why
you may have gotten a particular error or a specific result.
269
The Scenarios tab is a table where each row represents a variable that you will test and each column
represents a different scenario. (See Key Terms and Definitions for more information about these terms.)
You can add or remove scenario columns by changing the number in the Scenarios box. In that same
vein, you can add or remove variable rows by changing the number in the Experiment Variables box.
If you double-click the heading cells, you can change the text that is displayed in each heading to give
each variable or scenario a custom name.
270
Variable settings
This version of the User Manual will not describe all of the available settings for each
variable. However, the variable settings are relatively easy to use and most users will
be able to figure them out through trial and error. If you would like more guidance as
you are designing your variables and scenarios, contact FlexSim Customer Support.
271
the maximum number of locations or resources to your model. For example, if you
want to test what your model is like with 1-4 doctors, you must make sure you
have added at least four doctors to your doctors resource group in the simulation
model.
272
Running an Experiment
To run your experiment, you will use the Experiment Run tab in the Experimenter. When you first open the
Experiment Run tab, it is blank, as shown in the following image:
The following sections will explain the various stages of running an experiment.
Running an Experiment
Click the Run Experiment button to begin the experiment. After a moment, the Experiment Status
progress bars will appear in the middle of the Experiment Run tab, as shown in the following image:
273
Each scenario will have a progress bar divided into sections for each replication that you are running. As
you watch, the red bar will gradually turn green, indicating the progress of the simulation run. When all the
bars are green, the experiment is finished.
If you would like to run the experiment again, click the Reset Experiment button to erase the Experiment
Status progress bars. Click the Run Experiment button to repeat the experiment.
Troubleshooting an Experiment
While you're running your experiment, you might receive some error messages about the simulation model.
You can use the Output and Explore tabs to troubleshoot the problem. You could also contact FlexSim
Customer Support.
274
2. Click the Browse button to determine the directory and file name for the exported spreadsheet.
3. If needed, you can also limit the data that is included in the Excel spreadsheet by clearing any of the
checkboxes in the Dashboard Widgets or Data History Tables groups.
4. Check the Export to CSV if you want to export a CSV file rather than an Excel spreadsheet.
5. When finished click the Export Data button.
275
276
Introduction to Tutorials
Tutorials can be useful for new users who want to start using FlexSim HC immediately and see what the
software is capable of. The tutorials will give you hands-on experience with many of the major tasks
involved the model building process. (See Overview of the Model Building Process for more information.)
Each set of tutorials correlates with one of the chapters in the User Manual. If you would like a deeper
explanation of the important concepts related to the tutorial you are working on, you can read the relevant
chapter using the links in the tutorial's introduction.
Skipping Tutorials
The tutorials are intended to be completed in consecutive order. However, you can skip a tutorial by using
the sample simulation models that came pre-installed with FlexSim HC. These sample tutorial models have
been completed up the point where the tutorial is supposed to begin.
Each tutorial's introduction explains how to open the completed simulation model for the tutorial you want
to begin with. Just remember to save the tutorial with a new name or in a new directory so that you don't
accidentally overwrite the sample tutorial file.
277
278
Tasks Covered
This tutorial will cover the following tasks:
1.
2.
3.
4.
Files Needed
To complete this tutorial, you will start a new simulation model from scratch. When you are working on
Step Two, you will use one of the sample floor plan files that came automatically with FlexSim HC when
you first installed it. The tutorial will guide you to the appropriate file destination when you get to that point.
279
2. Before going much further, you should save your new model. Click the Save Model button
toolbar.
3. Give your tutorial model an appropriate name such as My Tutorial Model.
Continue on to the next step.
280
on the
5. Navigate to your computer's Documents folder, then double-click on the FlexSimHC5 folder, then
Tutorials. In this folder, select the file named TutorialLayout.dwg and click the Open button. When
you select your file, it will automatically appear in the background of your simulation model. Click Next
to go to the next page.
The following image shows what your model should roughly look like after completing Step Two:
281
3. Change the color to white or some other color that contrasts well with the simulation model floor. Click
the OK button on the color selector tool. The walls will now be more visible in the floor plan.
4. Feel free to experiment with the other visual settings. For example, you can try clicking the Visibility
button
to show or hide a particular layer in the drawing. You can also rename layers if needed.
5. When finished, click Next to go to the next page.
The following image shows what your model should look like after completing Step Three:
282
283
284
Tasks Covered
This tutorial will cover the following tasks:
1.
2.
3.
4.
5.
We recommend reading those sections before working on this tutorial so that you understand the key
concepts covered in this tutorial.
Files Needed
You will use the same simulation model you created in the previous tutorials to complete this tutorial.
285
286
3. Click somewhere in the model. A Single Door will appear in the position that you clicked.
4. Right-click your mouse or press the Esc key to turn off adding objects mode.
5. Click on the Single Door and hold down your mouse to re-position it. Move it to the top right corner of
the large room on the left of the floor plan. You can use the preceding image to see if your placement is
correct.
6. Add the rest of the objects using the process listed in the previous steps. The following table will tell you
which objects to use for the other locations on your simulation plan. Again, use the image above for
guidance while placing the objects.
List Item
Needed
7.
Library Object
287
check-in desk
waiting room
examination beds
x-ray machine
small laboratory
288
item cart
item exit
10 patient exit
289
1. You'll start by resizing the work station so that it fits the floor plan layout a little better. Click
NurseStation1 to highlight it. You'll notice that the axis arrows appear on the object (they look like
colored cones).
2. Click the left red axis arrow and hold down the mouse while you slowly move the mouse to the left.
You'll notice that the object begins to change its size.
3. Release the mouse when the left edge of NurseStation1 reaches the left line in the floor plan diagram.
4. Next you'll rotate the waiting room so that it is more accessible to patients using our mouse. Click
WaitingRoom1 to highlight it and make the axis arrows appear. Right-click the blue axis arrow that is
on the top of the waiting room. While holding down the mouse button, drag your mouse down the
screen. The waiting room will remain in its current position but will begin to rotate. Release the mouse
when the waiting room has rotated to the point that it looks like a letter C.
5. Next you'll rotate the two exam tables in the middle rooms so that they are facing the door. You'll use
Quick Properties to rotate the tables this time. Click ExamTable3 (or whichever table is in the top
middle examination room) to highlight it. You'll notice that the Quick Properties pane (right pane)
changes to show that object's settings.
6. In Quick Properties under Visuals, find the Rotate Z-axis box, as shown in the following image:
290
7. Click in the Rotate Z-axis box and change the number in the box to 180. Press the Tab key to save the
changes. The exam table will now rotate 180 degrees.
8. Repeat steps 5-7 for the exam table below it.
9. Next you'll rotate the laboratory so that it can be moved against the wall of the room it is in. You'll use
Quick Properties again. Click ItemProcessing1 (the laboratory) to highlight it.
10. In Quick Properties under Visuals, click in the Rotate Z-axis box and change the number 0 to -90.
Press the Tab key to save the changes. The laboratory will now rotate -90 degrees. Reposition the
laboratory so that it is against the right wall of the facility.
11. In Quick Properties under Visuals, click in the Rotate Z-axis box and change the number 0 to 90.
Press the Tab key to save the changes. The X-ray machine will now rotate 90 degrees.
12. Save your simulation model.
The following image shows what your model should look like after completing Step Two:
291
9. Position the eyedropper over the upper gray part of the x-ray machine. The mouse pointer will change
to display RGB (162, 161, 157). Click the mouse to apply the color change.
10. Save your simulation model.
The following image shows what your model should look like after completing Step Three:
292
4. Double-click content(current) > 10 to select it as the Early Exit Condition. This will change the blue
text listed for that condition.
5. In the blue text, delete the number 10 and type 5 instead. This will make it so that if the waiting room's
capacity is more than 5 patients, other patients will decide to leave without seeing the doctor.
6. Click outside of this box to save the changes. If you need to edit these settings afterwards, you can
click the Properties button to re-open this screen.
7. Save your simulation model.
293
294
295
Tasks Covered
This tutorial will cover the following tasks:
1. Connect the location objects
2. Connect the item objects
Files Needed
You will use the same simulation model you created in the previous tutorials to complete this tutorial.
296
297
7. You can form a connection between two shapes by clicking on two shapes while in connection mode.
The first shape you click will have a going to the second shape you click.
8. NOTE: Press the Esc key to exit connection mode. To disconnect objects, click the Disconnect
Shapes button on the toolbar to enter disconnection mode.
The following table explains which connections you will need to make (not necessarily needed in this
order):
Going from
Going to
Purpose
PatientArrivalsArea RegistrationArea
RegistrationArea
RegistrationArea
PatientExitArea
WaitingRoomArea
RegistrationArea
WaitingRoomArea
PatientExitArea
WaitingRoomArea
PatientVitals
298
WaitingRoomArea
ExamRooms
PatientVitals
10 PatientVitals
ExamRooms
11 ExamRooms
XrayArea
12 ExamRooms
PatientExitArea
13 XrayArea
ExamRooms
14 XrayArea
PatientExitArea
The following image shows what your flowchart should look like after completing Step One:
299
300
5. In this order, click the ItemArrivals1 shape, then the ItemProcessing1 shape, then ItemExit1. This
will make it so that items are stored in the queue when they arrive, then are processed, then exit the
laboratory.
6. NOTE: Press the Esc key to exit connection mode. To disconnect objects, click the Disconnect
Shapes button on the toolbar to enter disconnection mode.
The following image shows what your flowchart should look like after completing Step Two:
301
2 nurses
2 doctors
1 receptionist
1 Dynamap machine (for checking patient vitals)
1 wheelchair
Tasks Covered
This tutorial will cover the following tasks:
1.
2.
3.
4.
5.
Files Needed
You will use the same simulation model you created in the previous tutorials to complete this tutorial.
If you are using a trial version of FlexSim HC, there is a limit on how many objects you can have in a
simulation model. You can overcome this limitation by using the pre-built simulation model for this tutorial.
See the following sidebar about skipping previous tutorials for more information.
302
303
3. Click somewhere in the model. A Receptionist will appear in the position that you clicked.
4. Right-click your mouse or press the Esc key to turn off adding objects mode.
5. Now you are going to re-position the staff member. Be aware that moving staff resources is a little
tricky. You need to make sure you click on the resource group rather than the individual resource group
member. The resource group is the colored square underneath the group member. (See Selecting a
Resource Group or Group Member for more information.) Click on the Receptionist group and hold
down your mouse to re-position the object. Move the group so that it is behind the Registration desk.
NOTE: Put it a little farther behind the center of the desk. Otherwise the receptionist won't face patients
who come to the desk. You can use the preceding image to see if your placement is correct.
304
6. Add the rest of the resources using the process listed in the previous steps. The following table will tell
you which objects to use for the other locations on your simulation plan. Again, use the image above
for guidance on where to place the objects.
Resource
7.
Needed
Library Object
Position in Model
Place near
NurseStation1
2 doctor
Place near
NurseStation1
3 Dynamap machine
4 wheelchair
Place near
NurseStation1
1 nurse
305
306
307
5. Change the number 180 to 0. Press Tab to save the changes. Now the RNs should be facing the work
station.
6. Now you'll rotate the Physicians group. Click the Physicians group (not the individual group members)
to highlight it.
7. In Quick Properties under Visuals, find the Rotate Z-axis box. Change the number 180 to -90. Press
Tab to save the changes.
8. This time you will try changing the position of the Physicians group members so that their position is
offset from the base of the Physicians group. Click on Physician_A to highlight it.
9. In Quick Properties under Edit Group Member, notice that the X Offset and Y Offset boxes both
have the value 0.
10. Now click on Physician_A and drag it so that it is in front of one of the computers at the work station.
Do the same for Physician_B. Notice that the X Offset and Y Offset boxes now have different values
in it. Those values indicate where Physician_A and Physician_B will be located relative to the black
square that represents the Physicians group.
11. Notice that if you were to click the Physicians group box and drag it around the screen that both the
group members would move relative to the group's new position.
Save your simulation model when you're finished.
The following image shows what your model should look like after completing Step Four:
308
309
This completes Tutorial 2.1 - Adding and Changing Staff and Resources.
310
Tasks Covered
This tutorial will cover the following tasks:
1. Create alternate resource groups
2. Adding members to the alternate groups
Files Needed
You will use the same simulation model you created in the previous tutorials to complete this tutorial.
311
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 AlternateGroup1 to
Day_Shift and hit the Enter key.
5. Now we'll create a second alternate group. In the Toolbox, right-click Alternate Groups and select Add
Alternate Groups from the menu. This will create a new group named AlternateGroup1 in the Toolbox
and will open up the newly created group as another tab in the Alternate Group tool.
6. In the Toolbox, right-click AlternateGroup1 and select Rename from the menu. Change the name of
AlternateGroup1 to Evening_Shift and hit the Enter key.
Save your simulation model when you're finished.
The following image shows what your model should look like when viewing the Alternate Group tool after
completing Step One:
312
4. Now open the Evening_Shift tab and repeat steps 1-3 only making sure you add RN_B and
Physician_B to this group instead.
5. If desired, you can close the Alternative Group tool now by clicking on the X in the top right corner of
the tool.
Save your simulation model when you're finished.
The following image shows what your model should look like when viewing the Alternate Group tool after
completing Step Two:
313
6. The doctor will educate the patient about their treatment plan
7. The patient will then leave the facility
Tasks Covered
This tutorial will cover the following tasks:
1.
2.
3.
4.
5.
6.
7.
8.
314
Files Needed
You will use the same simulation model you created in the previous tutorials to complete this tutorial.
315
316
317
to add a new
2. In Quick Properties, under Milestone, click the first pull-down menu and select Registration. Notice
that the name of the activity is updated to 20_Registration. (See Milestones for more information.)
3. Also notice that in Quick Properties, under Activity Properties, the default Activity Type setting is
Process. You will not change this setting because you want the patient to go through the registration
process during this activity. In FlexSim HC, the word process is a generic term for any kind of timesensitive 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. In this case, the process will represent the registration process.
4. Under Processing Time, click the arrow next to the empty box to open a pull-down menu. Select
Based on percentages from the menu to open a dialog box to help you determine the processing time
for a certain percentage of patients.
5. Under the There is a . % chance column in the first row, delete 50 and type 35 to represent the 35% of
patients that will be new. In the second row, delete 50 and type 65 to represent the remaining 65% of
patients.
6. Under the that the Processing Time will be... column click the drop down arrow next to the box at the
end of the first row to open a menu. Select Use an expression, then Choose a Distribution to open
the Distribution Chooser. The Distribution Chooser will help you select an appropriate statistical
distribution to randomly calculate the processing time for new patients, as shown in the following
image:
318
7. In the Distribution menu, select triangular. The triangular statistical distribution pattern generates
random numbers similar to a bell curve in which numbers at the middle of the distribution scale will get
selected more frequently. The triangular distribution should be perfect for generating the processing
time for new patients.
8. Type 4.0 in the Minimum box to represent the minimum number of minutes it takes a new patient to
complete the paperwork.
9. Type 11.0 in the Maximum box to represent the maximum number of minutes.
10. Type 6.0 in the Mode box to represent the average amount of time it takes patients to complete the
paperwork.
11. Click outside the Distribution Chooser to save the changes. The appropriate expression will now appear
in the second column of the first row.
12. Under the that the Processing Time will be... column for the second row, type 2 to represent the 2
minutes it will take returning patients to complete the registration process.
13. Press the OK button to save the changes.
Save your simulation model and continue to the next step.
319
3. Click the arrow next to the Staff Requirement row to open a menu. Select Choose a specific
resource, then Staff Groups, then Receptionists, then Any member from Receptionists. The Staff
Requirement row will now read "Any member from Receptionists". (See How Staff and
Resources Are Assigned to an Activity for more information.) You can use the eyedropper to select
staff members as well, which will be demonstrated in Step Five.
4. Notice that the Priority box has the number 150 in it. This refers to the priority this activity will have
when the FlexSim system is determining which activity a staff member should work on. For now, keep
the priority at 150 but be aware that the Receptionist might be re-assigned to work on a higher priority
activity if needed. (See Staff and Resource Priorities for more information.)
5. Next you'll create the activity that will send the patient to the waiting room. With the Standard track
open and activity 20 selected in the Patient Track Manager, click the Plus button to add a new
activity. An activity numbered 30 will appear below the second activity.
6. In Quick Properties, under Activity Properties, click the Activity Type menu and select Patient
Travels Unattended.
7. In the Activity Name box, change the name of the activity to 30_Waiting Room.
8. In the Patient Destination group, click the Eyedropper button next to the empty box. The mouse
will change to an eyedropper to indicate that you are in sampling mode.
9. Click the WaitingRoom1 to sample it. A menu will pop up that will allow you to choose either the
WaitingRoom1 location or the WaitingRoomArea. Select WaitingRoomArea.
Now a Receptionist will help the patient during the Registration activity and then the patient will go to the
waiting room afterwards.
Save your simulation model and continue to the next step.
320
A nurse will escort the patient from the waiting room to the patient vitals area.
The nurse will use the Dynamap machine to check the patient's vitals.
The nurse will escort the patient back to the waiting room area until an examination room is available.
The patient will be escorted from the waiting room area to the examination room using the same nurse
that was used in the preceding activities.
After assigning the nurse to the first activity in this sequence, you will want to keep that particular nurse for
the next two activities. Keeping a staff member means that this particular nurse will not be reassigned to
work on any other tasks until after the nurse has checked the patient's vital signs and escorted the patient
back to the waiting room. You will release the nurse in the last activity in this sequence.
You'll start by creating the activity in which the nurse will escort the patient from the waiting room to the
patient vitals area:
1. With the Standard track open and activity 30 selected in the Patient Track Manager, click the Plus
button to add a new activity. An activity numbered 40 will appear below the latest activity.
2. In Quick Properties, under Activity Properties, click the Activity Type menu and select Escort
Patient > Process.
3. In the Activity Name box, change the name of the activity to 40_Escort to Patient Vitals.
4. In the Patient Destination group, click the Eyedropper button
destination.
5. Click the Triage1 location to sample it. A menu will pop up that will allow you to choose either the
Triage1 location or the PatientVitals area. Select PatientVitals.
6. In the Processing Time group, type 0 into the empty box to skip the process time for this activity. (The
nurse will check the patient vitals in the next activity.)
7. Now we will assign a nurse to work on this activity. In the Staff Requirements group, click the Plus
button to add a new Staff Requirement row.
8. Click the Eyedropper button
9. Click the colored box underneath the RNs group to sample it (make sure you don't click on one of the
individual group members). A menu will pop up that will allow you to choose either Any member from
RNs or First used from RNs. Select Any member from RNs.
10. Click the Keep button next to the Staff Requirement row to keep this staff member assigned to this
patient for the next two activities. The button will change to a red padlock to indicate that this staff
member is locked and is being kept by this patient. This will ensure that the nurse doesn't get assigned
work on another activity during these three activity sequences. (See Keeping and Releasing Staff
Members for more information.)
321
322
6. Click the arrow next to the Staff Requirement row to open a menu. Select Used in an earlier activity to
open a dialog box, as shown in the following image:
7. Click the Which earlier activity? menu and select 40_Escort to Patient Vitals.
8. Since you only created one Staff Requirement row in activity 40, you don't need to change any other
settings in this dialog box. Click OK to save the changes and close the dialog box.
9. Click the Keep button next to the Staff Requirement row to keep this staff member assigned to this
patient for the next two activities. The button will change to a red padlock to continue keeping this
staff member assigned to this patient for the next activity.
10. In the Equipment Requirements group, click the Plus button
row.
11. Click the Eyedropper button
12. Click the colored square beneath the Dynamap machine to sample it. A menu will pop up that will allow
you to choose either Any member from Dynamaps or First used from Dynamaps. Select Any
member from Dynamaps.
13. Click the Return Type menu and select High Priority Return to ensure that the nurse returns the
equipment to its proper place after checking the patient's vitals.
Save your simulation model and continue to the next step.
323
324
8. Click the arrow next to the Staff Requirement row to open a menu. Select Choose a specific
resource, then Staff Groups, then RNs, then First used from RNs. That way, you will use the same
nurse that was working with this patient in earlier activities.
Now the nurse will take a patient to any examination room as soon as one becomes available. If there is
not one available, the patient will remain at the waiting room until one is available.
Save your simulation model.
This completes Tutorial 3.1 - Creating Patient Tracks and Activities.
325
Lastly, you will create one final activity in which the patient leaves the facility.
Tasks Covered
This tutorial will cover the following tasks:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Files Needed
You will use the same simulation model you created in the previous tutorials to complete this tutorial.
326
327
10. Click the black colored box that represents the Physicians group to sample it. A menu will pop up that
will allow you to choose either Any member from Physicians or First used from Physicians. Select
Any member from Physicians.
Save your model and continue on to the next step.
328
8. Click the PatientExit1 object to sample it. A menu will pop up that will allow you to choose either the
PatientExit1 location or the PatientExitArea. Select PatientExitArea.
9. Now let's create the shell of the treatment activities. Click on activity 90 in the activity list to select it.
10. Then click the Plus button
and 100.
11. In Quick Properties, under Activity Properties, in the Activity Name box, change the name of the
activity to 91_Prescription.
12. You might want to indent the activity names of the treatment so that it is easier to see the relationship
between these activities and the Decision Point activity. In the Activity Name, add 5 spaces in front of
91_Prescription. After adding the spaces, your activity list should look like the following image:
329
13. Fortunately, any new activities you add after activity 91 will automatically be indented. The following
table explains which additional activities you need to add and what their names should be:
Activity Number
Activity Name
92
92_Specimen
93
93_Immunization
94
94_X-ray
95
After adding the activities, your activity list should look like the following image:
330
Percentage
Activity Number
20
92
10
93
94
20
100
When you're finished, the dialog box should look roughly like the following image:
331
Click OK to save your changes and close the dialog box. Save your simulation model and continue to the
next step.
332
333
5. Click the black colored box that represents the Physicians group to sample it. A menu will pop up that
will allow you to choose either Any member from Physicians or First used from Physicians. Select
First used from Physicians.
6. In the Staff Destination group, click the arrow next to the box to select a different location. Select
Choose a specific destination, then Areas, then WorkStation, then NurseStation1.
Now the doctor will go to the Work Station to send the electronic prescription while the patient remains in
the examination room.
Save your simulation model and continue to the next step.
334
7. Click the blue colored box that represents the RNs group to sample it. A menu will pop up that will allow
you to choose either Any member from RNs or First used from RNs. Select First used from RNs.
Now any specimens taken from the patient will be sent to the laboratory for testing.
Save your simulation model and continue to the next step.
335
5. Click the black colored box that represents the Physicians group to sample it. A menu will pop up that
will allow you to choose either Any member from Physicians or First used from Physicians. Select
First used from Physicians to use the same doctor.
6. Click the Plus button
8. Click the blue colored box underneath the RNs group to sample it (make sure you don't click on one of
the individual group members). A menu will pop up that will allow you to choose either Any member
from RNs or First used from RNs. Select First used from RNs to use the same nurse.
Now both the doctor and the nurse will help to administer the immunization to the patient.
Save your simulation model and continue to the next step.
336
4. Click the Xray1 object to sample it. A menu will pop up that will allow you to choose either the Xray1
location or the XrayArea. Select XrayArea.
5. Check the Reserve Current Location box to ensure that the current exam room will not be taken by
anyone else while the patient is getting the x-ray.
6. In the Processing Time group, type 10 in the empty box to represent the ten minutes it will take to
complete the x-ray.
7. In the Staff Requirements group, click the Plus button
8. Click the Eyedropper button
9. Click the blue colored box underneath the RNs group to sample it (make sure you don't click on one of
the individual group members). A menu will pop up that will allow you to choose either Any member
from RNs or First used from RNs. Select First used from RNs to use the same nurse.
10. In the Transport Requirements group, click the Plus button
row.
11. Click the Eyedropper button
12. Click the gray colored box underneath the Wheelchairs group to sample it (make sure you don't click
on one of the individual group members). A menu will pop up that will allow you to choose either Any
member from Wheelchairs or First used from Wheelchairs. Select Any member from
Wheelchairs to use any wheelchair.
13. In the Return Type menu, select Low Priority Return.
Save your simulation model and continue to the next step.
337
4. Click the arrow next to the If no location was reserved, then the Patient Destination will be box to
open a menu. Select WaitingRoomArea and then WaitingRoomArea as the alternate destination if
the patient can't return to the original examination room.
5. In the Processing Time group, type 0 in the empty box to skip the process.
6. In the Staff Requirements group, click the Plus button
7. Click the Eyedropper button
8. Click the blue colored box underneath the RNs group to sample it (make sure you don't click on one of
the individual group members). A menu will pop up that will allow you to choose either Any member
from RNs or First used from RNs. Select First used from RNs to use the same nurse.
9. In the Transport Requirements group, click the Plus button
row.
10. Click the Eyedropper button
11. Click the gray colored box underneath the Wheelchairs group to sample it (make sure you don't click
on one of the individual group members). A menu will pop up that will allow you to choose either Any
member from Wheelchairs or First used from Wheelchairs. Select First used from Wheelchairs to
use the same wheelchair.
12. In the Return Type menu, select Low Priority Return.
Now your first patient track is officially finished. This completes Tutorial 3.2 - Creating Decision Point
Activities.
338
Tasks Covered
This tutorial will cover the following tasks:
1. Copy a track
2. Change activity priority levels
3. Delete activities
Files Needed
You will use the same simulation model you created in the previous tutorials to complete this tutorial.
339
340
341
When you're finished, activities 10, 20, 30, 70, 80, and 100 will still be on the track. Next, you'll update the
settings for activity 70.
1. Click 70_Escort to Exam Room in the activity list to select it.
2. In Quick Properties under Activity Properties, change the Activity ID to 40.
3. In the Predecessors group, change the predecessor ID to 30.
4. In Staff Requirements, click the Eyedropper button
the assigned staff.
5. Click the blue colored square that represents the RNs group to open a menu. Select Any member
from RNs.
6. In the Priority box, delete 150 and type 250 instead.
Now you'll update the settings for activity 80.
1. Click 80_MD Exam in the activity list to select it.
2. In Quick Properties under Activity Properties, change the Activity ID to 50.
3. In the Predecessors group, change the predecessor ID to 40.
342
6. Click the blue colored square that represents the RNs group to open a menu. Select First used from
RNs.
7. In the Priority box, delete 150 and type 250 instead.
Lastly, you'll update the settings for activity 100.
1. Click 100_Departure in the activity list to select it.
2. In Quick Properties under Activity Properties, click the Activity Type menu and change it to
Transport Patient > Process.
3. Change the Activity ID to 60.
4. In the Predecessors group, change the predecessor ID to 50.
5. In Staff Requirements, click the Plus button
6. Click the Eyedropper button
7. Click the colored square that represents the Physicians group to open a menu. Select First used from
Physicians.
8. In the Priority box, delete 150 and type 250 instead.
9. In Transport Requirements, click the Eyedropper button next to add the wheelchair. Click the
colored square that represents the Wheelchairs group to open a menu. Select Any member from
Wheelchairs.
10. In the Return Type menu, select Low Priority Return.
This concludes Tutorial 3.3 - Creating Additional Patient Tracks.
343
Tasks Covered
This tutorial will cover the following tasks:
1. Create different patient classifications
2. Assign patients to a patient track
Files Needed
You will use the same simulation model you created in the previous tutorials to complete this tutorial.
344
345
346
Tasks Covered
This tutorial will cover the following tasks:
1.
2.
3.
4.
Files Needed
You will use the same simulation model you created in the previous tutorials to complete this tutorial.
347
3. You'll notice that there are already two different visual profiles in the patient gallery by default. Click on
the Man shape in the patient shapes library and drag it into the patient gallery.
4. Repeat step 3 to add three more Man shapes to the patient gallery.
The following image shows what the patient gallery should look like after completing Step One:
348
Visual Profile
Woman
Acute
Man2
Prescription
Man3
Specimen
Man4
Immunization
Man5
Xray
4. Click the Specimen visual profile in the patient gallery to select it.
5. In Quick Properties, under Person Visuals, click the arrow next to the Shirt box to open the color
selector.
6. Select a green color and click OK.
7. Repeat steps 4 through 6, changing the color of the Immunization visual profile to blue and the Xray
visual profile to orange.
The following image shows what the patient gallery should look like after completing Step Two:
349
350
351
5. Click the Add new trigger instruction button to open a menu of available triggers.
6. Select Change then patient visuals. A new trigger instruction will appear in the dialog box, as shown
in the following image:
7. 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.
8. Select Prescription from the menu.
9. Click OK to close the dialog box and save the changes.
10. Repeat this process for the rest of the treatment activities. The following table explains which visual
profiles should be assigned to which activity:
Activity Number
Visual Profile
92
Specimen
93
Immunization
95
Xray
352
353
Tasks Covered
This tutorial will cover the following tasks:
1. Create an Hourly Arrival Schedule
2. Change an Inter-Arrival Pattern
3. Set the hours of operation
Files Needed
You will use the same simulation model you created in the previous tutorials to complete this tutorial.
354
10.
0h - 1h
1h - 2h
2h - 3h
3h - 4h
4h - 5h
355
5h - 6h
6h - 7h
7h - 8h
8h - 9h
9h - 10h
10h - 11h 4
11h - 12h 4
12h - 13h 4
13h - 14h 3
14h - 15h 2
15h - 16h 2
16h - 17h 3
17h - 18h 2
18h - 19h 3
356
19h - 20h 2
20h - 21h 2
21h - 22h
22h - 23h
23h - 24h
10. Press the OK button to save the changes and close the Hourly Arrivals Table.
The following image shows what the Hourly Arrivals Table should look like after completing Step One:
357
358
359
10. In Quick Properties, under Arrivals, click the arrow next to the PCI box to open a menu listing all the
PCIs that have been created so far.
11. Select Acute from the menu. Notice that the PCI box now displays the number 2. This means that this
patient arrival pattern will apply to the second PCI listed in the Patient Classifications tool. In this case,
it will apply to the Acute patients.
12. Clear the Arrival at Time 0 check box so that patients don't immediately start arriving in the simulation
model.
The following image shows what the Arrivals settings for PatientArrivals1 should look like after completing
Step Two:
360
9. Select PatientArrivalsArea, then PatientArrivalsArea to add the Patient Arrivals object to the
schedule.
10. Notice that the Shift Schedules tool looks like a table where the columns represent the days of the
week and the rows represent each of the 15 increments of time in military time for the full day. Start by
clicking on the cell under the Monday column for the 00:00 - 00:15 row. While still holding down the
mouse, drag the mouse to select the range of cells going from this cell to the cell in the Sunday
column for 08:45 - 09:00 row.
11. Make sure that Off Schedule is selected in the menu in the top right corner of the table. Click the
Apply button to change the currently selected cells to Off Schedule. Each cell should now be set to
Off.
12. Click the cell under the Monday column for the 20:00 - 20:15 row. While still holding down the mouse,
drag the mouse to select the range of cells going from this cell to the cell in the Sunday column for
23:45 - 24:00 row.
13. Click the Apply button to change the currently selected cells to Off Schedule. Each cell should now be
set to Off. Be aware that the remaining blank cells are considered Available.
14. Lastly, in Quick Properties, click the Properties button next to the Member Type box to open the
Location Break Options dialog box, as shown in the following image:
361
16. In the Stop Action menu, select Stop Arrivals to ensure the Patient Arrivals object doesn't create
patients while the facility is closed.
17. Click OK to save the changes and close the dialog box.
Save your simulation model.
This completes Tutorial 4.3 - Creating Patient Arrival Patterns.
362
Topics
Licensing
License Server
Repairing Licenses
View Licenses
Upgrading Licenses
Licensing
FlexSim does not require a license for its trial version. The trial allows you to create 20 objects in your
model and run that model with various scenarios.
If you would like to purchase a license for this software you may contact our sales department at (801)
224-6914 or email us at sales@flexsim.com
363
Once you have successfully activated a license from either your company's server or the FlexSim license
server, many of the menu options that were grayed out in the demo mode will be available for use. You will
also see your license type in the Help > About FlexSim window or the Start Page.
For an explanation of errors received while activating/returning licenses, visit the reference page.
Repairing Licenses
On the repair tab, you will see any disabled licenses on your computer. Licenses are held in Flexnet
trusted storage on a computer. Certain information about the licenses are stored in various places on your
hard disk and registry. Tampering with these locations may break the license trust flags, which disables the
license. This may happen with some registry cleaners or Windows restore points. If your license was
disabled, then you can use the repair tab to generate an xml repair request file. Email that file to FlexSim
support using the website (www.flexsim.com/support) and then you will be emailed back a repair response
xml file to process on the repair tab. Processing the repair response from FlexSim's support team will
repair the trust flags on your disabled license and allow it to be used again.
License Server
If you are using a concurrent server license, you can configure the clients to connect to the server using
this tab. Check the box and enter the license server ip address. Press the Apply Configuration button.
FlexSim will immediately try to connect to the server and check out license features.
Before attempting to connect the clients to a concurrent server, you must activate your licenses on the
server and start a License Server Manager program on the server. Instructions and files necessary for
364
configuring the server are available in the LAN License Tools download available in the account section of
the FlexSim website if you have a concurrent server license on your FlexSim account.
The Windows registry entry for FLEXlm, our license manager, stores any locations that FlexSim has looked
for a license server or file, and it can store multiple locations. So, whenever you enter a new value in the
Concurrent License Server Address and restart FlexSim, it adds more entries to the registry. If you have
successfully checked out a license from a server, FlexSim may still successfully check out a license from
that server when you start FlexSim, even if the "Use concurrent licensing" box is unchecked.
If you have multiple types of licenses on your server, such as Enterprise and Runtime licenses, you can
check the "Only checkout features for license type:" box and select the feature set that you want to check
out. This will tell FlexSim to only try to check out the features required for that type of license instead of
requesting every available feature. You can also use the "Checkout optquest feature" checkbox to specify
whether the Optquest feature should be checked out.
For help with troubleshooting concurrent server errors, visit the reference page.
View Licenses
On the view licenses tab, you can see the contents of this computer's Flexnet trusted storage.
Licenses are not in any way tied to any FlexSim installation. Your computer itself is licensed. The actual
FlexSim install or version doesn't matter at all. One license can license every FlexSim program on the
computer. You simply use the FlexSim program to activate/return/view licenses on the computer for
simplicity. The licenses are not tied to an installation of FlexSim.
For example, you could install FlexSim, activate a license, uninstall FlexSim, and then install FlexSim
again, and your license will still be there. The FlexSim programs are entirely separate from where licenses
are stored on your computer in Flexnet trusted storage.
It doesn't matter what version of FlexSim you use to activate or return licenses; they are calling exactly the
same code.
You can have just one license of 5.1 on the computer and that license will work with both 5.0.4 and 5.1.0
just fine. You don't need multiple licenses to license multiple FlexSim programs. The license is not tied to
the installation. The license is tied to the computer. Any FlexSim programs on a licensed computer will
work. However, a computer that has a 5.0 license won't be able to run 5.1 software. The computer's
license must be >= the version number of the software in order to run.
If you uninstall FlexSim without first returning your license, you will need to reinstall Flexnet in order to
return the license so that you can move it to another computer. Because licenses are tied to the computer,
not the FlexSim installation, you do not need to return your license if you are simply uninstalling and
reinstalling FlexSim.
Upgrade Licenses
On the upgrade licenses tab, you can request upgrades to your licenses. This is necessary to run newer
versions of the software. For instance, if you previously had FlexSim 5.0 installed and you upgraded to 5.1,
you would need to also upgrade your license to 5.1.
The process to upgrade a license to a newer version has three steps:
1. The FlexSim License Server needs to be told to upgrade the license, which creates a new Activation ID
for the upgrade.
2. The old license needs returned to the FlexSim License Server.
3. The new license needs activated on the client machine.
365
This process can be done manually by returning any old licenses, pressing the Upgrade Licenses button
on the "My Licenses" page in the account section of the FlexSim website, and then activating the new
Activation IDs on that page (you may need to refresh the licenses page table).
The Request Upgrades button on the Upgrade Licenses tab automates this process into a single button
click by sending http requests to the FlexSim server. If this automatic process doesn't work, then you can
do it manually instead.
To upgrade server licenses, you must manually return the licenses and then activate the new licenses.
366
367
You can see the number of seats available to the right, as well as expiration dates for timed and
maintenance licenses.
Copy the Activation ID for an available license. The activation ID will start with flexsim.com.
Paste the Activation ID into the Activation ID field.
Press the Activate button.
Note: If your license is timed, then you may need to check the Use Expiration Date box and enter the
expiration date in the format 23-NOV-2009 before activating.
For an explanation of errors received while activating licenses, visit the reference page.
In the Activate tab of the License Activation window, check the Activate through your company's
license server button.
Enter the ip address of your company's license server in the License Server Address field.
368
For an explanation of errors received while activating licenses, visit the reference page.
369
Returning a License
Select the license you want to return from the License dropdown menu.
Press the Return button.
For an explanation of errors received while returning licenses, visit the reference page.
370
Repairing a License
371
For more information on setting up a concurrent license server, see the documentation in the LAN License
Tools.
372
Operations error 7288 means that your license has already been successfully activated on a computer. In
order to activate the license, you must find the computer that contains the license and return it. You can
find the computer that contains the license by checking the output of View Licenses on any computers that
you may have activated the license on.
Error 50041
Error 50041 usually means that your computer is not connected to the internet or your network/firewall
settings are preventing communication with the FlexSim license server. The license activation mechanism
uses soap requests sent through http port 80. Make sure this type of communication is available on your
network.
373
Operations error 7466 means that returns are disabled on your license. Your license is configured to be a
one-time activation onto a computer. If you believe your license should be able to transfer from one
computer to another, contact your local distributor or FlexSim support to discuss the situation.
374
Topics
General Rules
Here are some general rules you will need to know when creating your own logic.
375
Variable Types
FlexSim uses just four variable types. Each of the four types can also be used in an array structure. The
following explains each of these types.
Single Variables
Type
Description
int
integer type
double
string
text string
treenode
Array Variables
Type
Description
intarray
doublearray
stringarray
treenodearray
For more information on how the treenode (or FlexSim node) type works, refer to the FlexSim tree
structure.
376
Math Operations
The following list show different math operations that can be performed on values.
377
Operation
Integer Example
(=solution)
1.6+4.2 (=5.8)
2+3 (=5)
5.8-4.2 (=1.6)
5-2 (=3)
3*4 (=12)
6.0/4.0 (=1.5)
20/7 (=2)
% (integer mod)
34%7(=6)
sqrt()
sqrt(5.3) (=2.3)
pow()
pow(3.0,2.2) (=11.2)
round()
round(5.6) (=6)
frac()
frac(5.236) (=0.236)
fabs()
fabs(-2.3) (=2.3)
fmod(5.3,2) (=1.3)
pow(3,2) (=9)
Be aware as you write your logic that, by default, all values in FlexSim are double precision floating point,
so you will usually be using the operations as they apply to floating point numbers.
Note: By performing operations on floating point numbers, some precision may be lost.
Note: Be careful in using these operations while mixing integer types with floating point types, or with using
just integer types. For example, the / operator will return an integer if both operators are integers. This may
not be what you want to get out of the operation, in which case you will need to use floating point types
instead of integer types. Note also that C++ will interpret the literal number 5 as an integer type. If you want
it to interpret the number as a floating point type, enter 5.0 instead of just 5.
Comparing Variables
The following table shows different operations for comparing two values or variables.
Operation
Example (solution)
378
1.7>1.7 (false)
45 >= 45 (true)
45 <= 32 (false)
== (equal to)
45 == 45 (true)
45 != 35 (true)
comparetext()
comparetext(getname(current),"Processor5")
Warning: The == operator can often cause problems if you are comparing two double precision floating
point values, and one or both of those values have been calculated using math operations. When doing
math operations, floating point values may lose some precision. Since the == operator will only return true
if all 64 bits of each value are exactly the same, even a small precision loss will cause the == operator to
return false. In such cases, you will want to instead verify that the two values are within a range of each
other. For example: fabs(value1 - value2) < 0.000001, will return true if the two values are practically equal
for all intents and purposes.
Relating Variables
The following table shows different operations for relating several comparisons.
Operation
Example
|| (logical OR)
x==32 || y>45
! (logical NOT)
!(x==32 || y>45)
min()
min(x, y)
max()
max(x, y)
379
Operation
Example
x = x + 2;
+=
x += 2; (same as x = x + 2)
-=
x -= 2; (same as x = x - 2)
*=
x *= 2; (same as x = x * 2)
/=
x /= 2; (same as x = x / 2)
++
x ++; (same as x = x + 1)
--
x --; (same as x = x - 1)
Executing Commands
Executing a command in FlexSim is made of following parts. First type command's name, followed by an
open parenthesis. Then enter each parameter of the command, separating multiple parameters by
commas. Each parameter can be a variable, an expression of variables, or even a command itself. Finish
the command with a close parenthesis, and a semi-colon. For detailed information on the commands, their
functionality and parameter lists, refer to the "Commands" documentation found through FlexSim's Help
menu. For a quick reference of the most used commands in FlexSim, refer to the section on basic
modeling functions.
Syntax
Examples
coloryellow(current);
setrank(item, 3 + 7);
commandname(parameter1,parameter2,parameter3...);
setitemtype(item,
getlabelnum(current,
"curitemtype"));
Flow Constructs
The following are constructs which allow you to modify the flow of your code.
380
Logical If Statement
The if statement allows you to execute one piece of code if an expression is true, and another piece of
code if it is false. The else portion of the construct is optional.
Construct
Examples
if (test expression)
if (content(item) == 2)
{
colorred(item);
code block
}
else
else
{
colorblack(item);
code block
}
Construct
Examples
while (content(current) == 2)
{
destroyobject(last(current));
code block
}
Construct
Examples
381
for(start expression;test
expression;count expression)
{
colorblue(rank(current,index));
code block
}
Construct
Examples
int type = getitemtype(item);
switch (switchvariable)
{
switch (type)
{
case casenum:
{
case 1:
{
code block;
coloryellow(item);
break;
}
break;
}
default:
{
case 5:
{
code block;
colorred(item);
break;
}
}
break;
}
default:
382
{
colorgreen(item);
break;
}
}
Redirection
Each of the flow constructs described can be redirected mid-execution with either a continue, break or
return statement. The following explains how each of these statements work.
Construct
Examples
continue;
Only valid in For and While loops. Halts the current iteration of the loop and goes
on to the next iteration in the loop. In a For loop the counter is incremented before
continuing.
break;
Only valid in For, While and Switch statements. Breaks out of the current For,
While or Switch block and continues with the line immediately following this block.
Nested statements only break out of the current statement and continue on in the
containing statement.
return 0;
Returns out of the current method entirely and continues with the line following
the code that called this method. The 0 is required in Flexscript commands
(picklists and triggers included) because all Flexscript commands return a double
type.
383
Topics
Referencing Commands
Object Attributes
Object Spatial Attributes
Object Statistics
Object Labels
Object Control
Object Variables
Tables
TaskExecuter Control
Prompts and Printouts
Advanced Functions
Object Referencing
The following commands and access variables are used in referencing objects in FlexSim.
current - the current variable is a reference to the current resource object. It is often an access
variable in pick lists.
item - the item variable is a reference to the involved item for a trigger or function. It is often an
access variable in pick lists.
Referencing Commands
command(parameter
list)
Explanation
Example
first(node)
last(node)
384
last(current)
rank(node, ranknum)
rank(current, 3)
inobject(object, portnum)
inobject(current, 1)
outobject(object, portnum)
outobject(current, 1)
centerobject(object,
portnum)
centerobject(current, 1)
next(node)
next(item)
prev(node)
prev(item)
node(path, startnode)
node("/Floor1/Processor",
model())
Object Attributes
command(parameter list)
Explanation
getname(object)
setname(object, name)
getitemtype(object)
setitemtype(object, num)
colorred(object)
colorgreen, blue, white, random...
385
setobjectshapeindex(object,
indexnum)
setobjecttextureindex(object,
indexnum)
Explanation
xloc(object)
yloc(object)
zloc(object)
xsize(object)
ysize(object)
zsize(object)
xrot(object)
yrot(object)
zrot(object)
Object Statistics
command(parameter
list)
Explanation
content(object)
getinput(object)
386
getoutput(object)
setstate(object, statenum)
getstatenum(object)
getstatestr(object)
getrank(object)
setrank(object, ranknum)
getentrytime(item)
This returns the time the flow item entered the object it is
currently in
getcreationtime(item)
Object Labels
command(parameter list)
Explanation
getlabelnum(object, "labelname")
getlabelnum(object, labelrank)
setlabelnum(object, "labelname",
value)
setlabelnum(object, labelrank,
value)
getlabelstr(object, "labelname")
setlabelstr(object, "labelname",
value)
setlabelstr(object, labelrank, value)
label(object, "labelname")
label(object, labelrank)
assertlabel(object, "labelname",
DATATYPE_NUMBER)
assertlabel(object, "labelname",
DATATYPE_STRING)
387
Object Control
command(parameter list)
Explanation
closeinput(object)
openinput(object)
closeoutput(object)
openoutput(object)
sendmessage(toobject, fromobject,
parameter1, parameter2, parameter3)
senddelayedmessage(toobject, delaytime,
fromobject,
parameter1, parameter2, parameter3)
stopobject(object, downstate)
resumeobject(object)
stopoutput(object)
resumeoutput(object)
stopinput(object)
resumeinput(object)
insertcopy(originalobject,
containerobject)
moveobject(object, containerobject)
388
Object Variables
command(parameter list)
Explanation
getvarnum(object, variablename)
setvarnum(object, variablename,
value)
getvarstr(object, variablename)
setvarstr(object, variablename,
string)
This sets the string value of the variable with the given
name
getvarnode(object, variablename)
Other
Tables
command(parameter list)
Explanation
gettablenum("tablename", rownum,
colnum)
gettablenum(tablenode, rownum, colnum)
gettablenum(tablerank, rownum, colnum)
settablenum("tablename", rownum,
colnum, value)
settablenum(tablenode, rownum, colnum,
value)
settablenum(tablerank, rownum, colnum,
value)
389
gettablerows("tablename")
gettablerows(tablenode)
gettablerows(tablerank)
gettablecols("tablename")
gettablecols(tablenode)
gettablecols(tablerank)
clearglobaltable("tablename")
clearglobaltable(tablenode)
clearglobaltable(tablerank)
TaskExecuter Control
For more information on controlling TaskExecuters, refer to the task sequence section.
Explanation
pt(text string)
pf(float value)
pd(discrete value)
pr()
msg(title, caption)
userinput(targetnode,
prompt)
Opens a dialog box where you can set the value of a node in
the model
390
Advanced Functions
Here are more advanced functions that you might use. We do not provide their parameter lists here. For
more information, refer to the command summary.
Node commands - node(), nodeadddata(), getdatatype(), nodetopath(), nodeinsertinto(), nodeinsertafter(),
getnodename(), setnodename(), getnodenum(), getnodestr(), setnodenum(), setnodestr(), inc()
Data changing commands - stringtonum(), numtostring(), tonum(), tonode(), apchar()
Node table commands - setsize(), cellrc(), nrows(), ncols()
Node table commands - setsize(), cellrc(), nrows(), ncols()
Model run commands - cmdcompile(), resetmodel(), go(), stop()
3D custom draw code commands - drawtomodelscale(), drawtoobjectscale(), drawsphere(), drawcube(),
drawcylinder(), drawcolumn(), drawdisk(), drawobject(), drawtext(), drawrectangle(), drawline(),
spacerotate(), spacetranslate(), spacescale()
Excel commands - excellaunch(), excelopen(), excelsetsheet(), excelreadnum(), excelreadstr(),
excelwritenum(), excelwritestr(), excelimportnode(), excelimporttable(), excelclose(), excelquit()
ODBC commands - dbopen(), dbclose(), dbsqlquery(), dbchangetable(), dbgetmetrics(), dbgetfieldname(),
dbgetnumrows(), dbgetnumcols(), dbgettablecell(), dbsettablecell()
Kinematics - initkinematics(), addkinematic(), getkinematics(), updatekinematics(), printkinematics()
391
Code Editor
The Code Editor window allows you to edit code for picklists and triggers throughout FlexSim. The window
can be used as a floating window (default), or it can be docked into the main FlexSim window in any
configuration. Just click the tab or the title bar and drag it over the Dock Windows icon.
For more information about item and current see the Item and Current section.
Within the code window, you can specify whether you want your code to be interpreted as FlexScript or
compiled as C++ (in which case you will need to compile your model). You can also check the FlexScript
syntax by pressing the
button.
Code Builders
When you are editing code in the Code Editor, or entering values in a picklist field, the Library Icon Grid
changes to display a list of Code Builders.
392
These Code Builders can be dragged into your Code Editor or picklist field to give you the correctly
formatted command. Use the tab key to select each commented section of the template code. ie
/*"labelname"*/
You can also filter the Code Builder list by typing in the
393
field.
DLL Functionality
You can also specify the given field as accessing a function from a dll. In this case you would not provide
the code as the text, but would provide the path to the dll as well as the name of the function to call. To
create such dll you would need to use a special Visual C++ project. This project is available on the user
community. The code field itself will need to specify two strings, each enclosed in quotes. The first string is
the path to the dll. The second string is the name of the function. When you press the DLL radio button a
message will appear that will let you create a template specifying the two strings.
Locking Code
There is also a "Locked" checkbox at the bottom of the view. This checkbox should only apply to FlexScript
or C++ code. It lets you lock the code state of the field to either FlexScript or C++. In the main Build menu,
there are two options to make all code either C++ or FlexScript. We provide this option so that modellers
can have both the ease of use of FlexScript (code works immediately when editing in FlexScript, without
having to compile) as well as the run-speed of C++ (since it is compiled, it runs much faster than
FlexScript). While in the model building phase you can use FlexScript, so that your code is interpreted
immediately after you write it. Then, once your model is ready to run, you can choose the Build>Make all
code C++ option, compile, and run to get the speed of C++. However, there may be some code that you
write that cannot be converted from FlexScript to C++ or vice versa because it uses features specific to
that language. In this case you would click the to lock the code state of the given field. This would also
be important if you chose one of the menu options: Make all code C++ or Make all code FlexScript.
Tab Bar (Queue1 - OnEntry) - Displays the current object and trigger/picklist being edited.
- Displays this help page.
- Removes all template code. Template code may be found in picklists and triggers and takes the form
of: /***popup:Conditional*/ and /** \nCondition: *//***tag:expression*//**/
- Checks syntax for compile errors.
- Toggles the current code as Flexscript.
- Toggles the current code as C++ code. Editing C++ code requires compiling the model. See When
to Compile.
- Toggles the current code as DLL linked.
394
- Locks the toggled state of the code. This does not lock the code from being edited, but rather locks the
Flexscript, C++ and DLL toggle. This can be necessary if you want your object triggers to be C++ code as
the property editors automatically toggle the code to be Flexscript.
- The Sampler allows you to insert code into your code editor to reference objects, set labels, get
values etc. For more information see the Sampler page.
Apply All - Saves all changes to all code editors currently docked in the same window.
Apply - Saves changes to the currently active code.
Ok - Saves changes and closes the currently active code.
Cancel - Cancels any unsaved changes and closes the currently active code.
395
Debugging Overview
How It Works
Within the FlexSim code editor, there is a margin on the left side of the line numbers. By clicking in the
margin, you can add a breakpoint to that line of code. The breakpoint will appear as a
can delete the breakpoint by clicking the . When a line of code with a breakpoint is executed, FlexSim
will enter debug mode. While debugging, you will only be able to interact with certain areas of the program
including the debugger tools the tree window, output consoles and a limited number of other windows. The
code window will change to give you tools for debugging.
Controls
Next Line - The yellow arrow shows you what line will be executed next. By pushing the Next Line button,
that line will be executed and the yellow arrow will move to the next line of code to be executed.
Step Into - This button can be used when a line of code contains certain function calls. It allows you to
follow the code execution into the function and proceed line by line. When the function is finished, the
debugger will return to the code that called the function. The only functions you can follow in this way are
nodefunction, executefsnode, and any custom user commands.
Continue - This will cause the FlexScript execution to continue until it reaches another breakpoint. If the
code currently being executed finishes, then it will leave debug mode.
396
Stop Simulation Clock - This button will stop the model's simulation clock. This is particularly useful if the
model is running quickly, as the Continue button may cause FlexSim to re-enter debug mode almost
instantly when it continues.
397
Breakpoints
The Breakpoints window is available through the Debug menu. It is a treeview with checkboxes showing
you what breakpoints have been added to code in the model. You can disable breakpoints by clicking the
checkbox next to the line number where they are. You can disable all the breakpoints by unchecking the
"Enable Breakpoint Debugging" box. Checking and unchecking these boxes will only affect whether a
breakpoint is enabled or disabled, it will not actually delete the breakpoint. To delete a breakpoint, you can
highlight it in this window and press the delete key or click on its in the code window. Disabled
breakpoints will appear as a in the margin and will not cause the FlexScript execution to stop for
debugging.
You may right click on a breakpoint in the breakpoints window to explore the associated code.
398
399
Call Stack
This area shows the current call stack, which is a function call history. The most recent call is always at the
top of the list. In this case, the OnEntry function was called by the OnRecieve function, which was called by
the OnTimerEvent function.
You may right click on any line of the call stack to explore the associated code or node in the tree.
400
Code Profiler
The Code Profile window profiles all the flexscript code being executed in your model.
Enable Flexscript Code Profiling- Check this box to enable Code Profiling. Code profiling will remain
enabled even if the Code Profile window is closed.
Reset Code Profile Data - Clears the currently accumulated profile data.
Self Time (ms) - This is the total amount of time in milliseconds that the code has taken to execute since
the model began.
Total Time (ms) - This is the Self Time plus any time spent calling other functions like User Commands
within the code.
Hit Count - This is the total number of times the code has been executed.
Path - The path to the flexscript node being executed.
401
Event List
The Event List is accessed from the Debug menu > Event List.
The Event List shows all the pending events for the model. It is useful for seeing when different events will
occur in order to debug modeling issues. If you have a problem that happens during a particular event, the
Event List is useful for seeing information about that event to help track down the source of the problem.
If you want to only view the events for a particular object, you can right-click on the object in the 3D View
and select View > View Object Events.
Time - This is the time that the event occurs.
Object - This is the path to the object, relative to the model, that the event affects.
Event Type - This is the type of event. It is the event code and will show a number value for event codes
without registered names. You can use the "seteventlistlegendentry" application command to register a
name for custom event types.
For example: applicationcommand("seteventlistlegendentry", 102, "My Event Type", 0); will set event code
102 to show "My Event Type" as its name in the list.
Involved - This is the path to the involved object for the event.
Event Data - This value's use depends on the event and may not be used for all event types.
Filters
The Event List can be filtered based on the Time, Object and Involved columns. Columns with an active
filter will display a
. To add/edit a filter, left-click on the header name for the desired filter.
Time - Each time filter has a begin (left) and an end (right) field. Only events that occurred within those two
times will be displayed. To add a filter, click the
icon.
Object - This list allows you to filter the event list by which object generated the event. To include or
exclude an object in the list, check or uncheck the box next to its name.
402
Involved - This list allows you to filter the event list by which object is involved in the event. To include or
exclude an object in the list, check or uncheck the box next to its name.
403
Event Log
The Event Log is accessed from the Debug menu > Event Log.
When Enable Loggin is checked, the Event Log will create a record of events that occur in the model. It is
useful for seeing the order in which certain events took place. For each event that happens in the model,
multiple entries may be made in the Event Log to explain what happened during that event. These multiple
entries will all have the same time and all be logged simultaneously when you press the Step button. The
event log will be cleared when the model is reset.
Some exceptions will be recorded in the event log. The entry immediately preceeding the exception entry
will give you a clue as to where the code is that caused the exception to happen. This is particularly useful
if the exception was caused by improper code in an object's trigger. More information about the exception
may be available in the System Console. The model may not be behaving correctly if there are exceptions
happening in the code.
Enable Logging - This will enable or disable event logging. The model will run much slower when logging
is enabled so you should disable logging when you are finished using the event log.
Start Time - If you only want to log a specific time period, you can enter a start time for when the logging
will begin. This will automatically be applied after editing this field without having to reset and rerun the
model.
End Time - Optionally, you can specify an end time for when you want the logging to stop. If the end time
is less than or equal to the start time, it will be ignored.
Settings - Within the settings window, you can set up which events should be recorded in the event log.
Events that have already been recorded will not be affected by changing these settings. Events that occur
after changing these settings will only be recorded if they are enabled here.
404
Export - This will export the Event Log as a csv file. If will only export valid events, ignoring any events that
have been filtered out.
The Table
Time - This is the time that the event happened. The entries happened in order from top to bottom. Entries
recorded with the same time happened in the order shown and may have happened during the same
model event.
Event - This is the type of event. You can enable or disable logging for certain event types in the Settings
window.
Object - This is the path to the event's object.
Involved - This is the path to the involved object for the event.
P1 - P4 - These values depend on the event and may not be used for all event types. Usually they give you
information about what parameters were passed into the event or more information about the event type.
This is useful for debugging if parameter values are not what you expect them to be.
Filters
The Event Log can be filtered based on the Time, Event, Object and Involved columns. Columns with an
active filter will display a
. To add/edit a filter, left-click on the header name for the desired filter. Event
log entries that are no longer displayed because they have been filtered will not be exported with the
Export button.
Time - Each time filter has a begin (left) and an end (right) field. Only events that occurred within those two
times will be displayed. To add a filter, click the
405
icon.
Event - This list allows you to filter the list by which event or trigger the event was associated with. To
include or exclude an event from the list, check or uncheck the box next to its name.
Object - This list allows you to filter the list by which object generated the event. To include or exclude an
object in the list, check or uncheck the box next to its name.
Involved - This list allows you to filter the list by which object is involved in the event. To include or exclude
an object in the list, check or uncheck the box next to its name.
406
Local Variables
This area shows you the current values of any locally defined variables. As you step through the code,
these values will update immediately so you can see what is happening. Often, models may not behave
correctly because variables in code are not what they are expected to be. This window allows you to see
exactly what the variables are.
Alternatively, you can mouse over variables in the Code Edit window to see their current value.
Keep in mind, the yellow arrow is pointing to the next line to be executed, so if a new variable is being
initialized, you will not be able to see its value until after that line has been executed.
407
Watch Variables
This area allows you to specify other variables or expressions that you want to see, such as global
variables. By pushing the + button, you can increase the number of lines in the table. The - button will
delete the row that was last clicked in the table. You can double-click on a gray area of the table to enter a
variable or expression. Its value will be displayed to the right This can help explain why certain conditional
statements, such as used in "if" statements aren't behaving as expected. It also allows you to see global
variables that otherwise are not visible on the Local Variables tab.
408
Command Helper
The Command Helper is a quick reference for flexscript commands. It can be accessed by two methods:
1. From the Help menu.
2. By pressing F1 while hovering the cursor over a flexscript command.
409
410
Event Log
FlexSim HC at a Glance
Floor Plan Settings
Getting Data from a Simulation
Hourly Arrivals
How Activities Begin
How Patients and Staff Move to Locations or Areas
How Staff and Resources Are Assigned to an
Activity
Importing a Floor Plan File
Inter-Arrival Times
Introduction to Connecting Locations and Item
Objects
Introduction to Floor Plans
Introduction to Key Concepts About Activities
Introduction to Patient Arrival Patterns
Introduction to Patient Classifications
Introduction to Patient Visuals
Introduction to Specific Activity Type Settings
Introduction to Staff and Resources
Introduction to the Library Objects
Introduction to the Toolbox and Toolbar
Introduction to Tutorials
Introduction to Widgets
Introduction to Windows and Tabs
Key Terms and Concepts
Key Terms and Definitions
License Activation Concepts
License Activation Example
License Activation Reference
Local Variables
Location Break Options Settings
Managing Visual Profiles
Milestones
Most Activities are Patient-Centered
Move Equipment > Process
Move Transports > Process
Moving and Resizing Widget Display Boxes
Moving Groups and Group Members
Moving, Resizing, and Rotating Objects
Navigating in FlexSim HC
Next Activity
Opening and Closing a Tool Component
Overview of Activity Types
Overview of Adding and Managing Activities
Overview of the Model Building Process
Patient Destination
Patient Overhead Text Display
Patient Travels Unattended
Planning a New Simulation Model
Predecessors
Preventing Simulation Model Errors
Process > Send Item
Process > Send Message
Index
Activating Your License
Activity IDs
Activity Names
Adding a New Tool Component
Adding an Activity
Adding and Managing Dashboards
Adding and Managing Patient Tracks
Adding and Managing Processes
Adding and Managing Schedules
Adding Locations to an Area
Adding Objects to a Model
Adding or Removing Locations and Areas from a
Schedule
Adding Patients
Adding Resources to a Model
Adding Staff or Resources to a Schedule
Adding Widgets
Additional Patient Location Settings
Advanced Functions
Advanced Time Controls
Appointments
Assigning a Visual Profile to a PCI or Activity
Basic Activity Settings
Basic Modeling Functions
Breakpoints
Building a Layout of Your Facility
Building Complex Patient Tracks and Activity Lists
Call Stack
Changing Floor Plans
Changing the Appearance of Staff Resources
Changing the Shape and Appearance of Objects
Code Editor
Code Profiler
Command Helper
Copying a Tool Component
Costs
Creating a Warm-up Period
Creating Alternate Resource Groups
Creating Patient-Centered Activities
Custom Activity Type
Custom Arrivals
Customer Support
Customizing Object Properties and Settings
Data Gathering Strategies
Debugging Overview
Decision Point
Deleting a Tool Component
Designing Scenarios and Testing Variables
Equipment Requirements
Escort Patient > Process
Event List
411
412
413