Вы находитесь на странице: 1из 546

What's New?

Version 3.14 (June 2012)

Bug Fixes

1. The Scheduled Arrivals mode on the Patient Arrivals object sets the ApptTime label correctly again.

2. Added getelapsedtime() command. This returns the amount of time that has passed since either the model started, or the warmup time ended.

3. Used getelapsedtime() in a number of utilization calculations and picklists including:

Area Occupancy

Area Occupancy

Staff Group Utilization

Staff Group Utilization

Group Member Utilization

Group Member Utilization

Object State

Object State

User-defined values and Custom Displays

User-defined values and Custom Displays

4. If code is edited but does not have any template code in it, it is given "Custom Code" text automatically.

Verison 3.12 (May 10, 2012)

Bug Fixes

1.

Fixed GlobalProcesses so that they do not throw exceptions when they occur

2.

It is no longer possible to import a model that was made in a different version

3.

The Help button on the Path Node's Parameters window now opens the correct help page for each tab

4.

Updated the comment header on several pickoptions so that GetRequiredGroup() is demonstrated

5.

Added some commands to the documentation

6.

Fixed syntax errors in the Activity Start Condition pick-option called "No Staff Currently Allocated to Activities in List"

7.

Fixed syntax errors in "Stop or Resume Flow" pickoptions

8.

The GlobalProcess Parameters GUI no longer shows the "There is already an object named X" message when it shouldn't

9.

Fixed the getwarmuptime() command so that pick-options that calculations that are based on warm-up time are more accurate.

10.

Fixed a bug with the numeric precision being set to 0 (which, in turn, caused other problems in a model).

11.

Updated the Area Occupancy Level dashboard widget so that it is update when the model stops running.

12.

GlobalProcesses now have global variables created to point to them when a model is opened.

13. Changing the name of a Location in the model will now change most references to that Location in Global Processes and Tracks.

Version 3.1 (April 6, 2012)

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.

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.

Parameters GUI recognize the difference between two arrivals in the Appointments tab.

New Features

1.

Updated the Track Manager so that certain fields are disabled and/or cleared out when needed.

2.

Added SortModel() command and included the functionality in Tools|Maintenance.

3.

The ItemConveyor is no longer a roller conveyor by default. It is now a more abstract series of arrows.

4.

The help now includes commands that start with capital letters in the index pages.

5.

Added getobjecttype() command.

6.

Updates to model update code.

7.

Added checkbox to the Predecessor list in the Track Manager and Global Process Manager so that users can easily enable/disable predecessor lists.

8.

Added "Dispatch Companions" pick-option to Message Received trigger.

9.

Added an arrow on the floor of the WaitingArea and WaitingLine so that the user can easily see what direction the patients will be facing.

10.

Removed a lot of unnecessary fields from the Staff/Equipment/Transport Advanced Editor GUIs.

11.

Added "Create Activity for Multiple People" pick-option.

12.

Added getnumresources() command.

13.

Patients now record how long they had to wait for Locations or Resources to become available. This is available in the output files.

14.

Added "Total Wait Times by Track" stacked bar-graph to the Dashboard.

15.

Added new 'scale' shape for Patient Processing objects.

16.

Added Infant Scale 3d shape (not yet available in the drop-down list).

17.

Added ClockTime column to output files.

18.

Updated Tutorial models.

19.

Added "Based on Location" and "Center Port connection" pick-options to some Advanced Functions for tracks.

Version 3.0 (January 30, 2012)

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.

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.

New Features

1. The PatientQueuing Layout tab has been updated to be easier to use and to allow the user to specify the direction that rows of chair face.

3.

Various improvements to graphics and animations .

4.

Updates to the default Entrance Criteria that will allow patients who have a room reserved to safely enter objects that are upstream of their reserved room without negative consequences.

5.

Shortened the default list of milestones.

6.

Added password-based login.

7.

Added user audit log support.

8.

Added Object Tracker GUI (Tools|Debugging|Object Tracker).

9.

Placing a new object on a Display that is acting as a floor will automatically create a selection set named after the Display (if needed) and will add the newly-created object to the set.

10.

Multiple staff that are required to be at the same node in a path will spread out.

11.

Changed the behavior of the Appointment and Custom Arrivals tables in the GUI so that the user can use the arrow keys while editing time cells.

12.

Removed unnecessary pick-options from several pick-lists throughout the software.

13.

Added many new pick-options throughout the software.

14.

Fixed problem of equipment being deallocated too early in a MoveEquipment>Process activity, and yet it's state is still utilized.

15.

Improved patient overhead display.

16.

Added activity start times to patient's Paramters GUI for ongoing activity display.

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.displaying an error pop up every time. 34. Display objects: New pick options for the Display

New pick options for the Display object have been added to support different time display formats.models, located in the upper right hand corner of the grid. Management of Display objects has

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.have been added to support different time display formats. Display objects now have a non-selectable option

Display objects now have a non-selectable option added to their Properties tabnew Display objects and more easily manage existing ones. 35. Changed the name of the EmergencyBed

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.Allocate/Deallocate, should not be affected. 37. Elevators: Elevators now take into account the size of the

Elevators now take into account the size of the traveler and the anything it is holding to determine how much space travelers take up.allow a Group of elevators to work together more seamlessly. 38. Added the ability to view

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.

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.

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.

75. Fixed a bug with renaming labels.

76. Fixed an issue with spline points being invisible if the 3D view has a black background.

77. Several new Flexscript commands for string parsing.

78. You can now Ctrl-Tab to switch between open windows.

79. FlexSim's 3D view now has a "hover" highlight so you can see what object is under the mouse.

80. More descriptive exception handling.

TASKTYPE_FREEOPERATORS.

82. Animation of the 3D View continues while panning/zooming.

83. Various minor fixes and improvements

Version 2.771 (Sep 17, 2010)

Bug Fixes (v2.771)

1. Fixed problem with Shift Schedules rolling over from one week to the next.

2. Fixed problem with patient overhead displays disappearing at the conclusion of a transfer activity.

3. Fixed the legend on the Milestone Chart of a patient's Properties window.

New Features (v2.771)

1.

Added the following picklist options for the Activity Finished Trigger:

2.

Send Staff to Home Base

3.

Occupy and Reserve Transport

4.

Position Patient on Transport

5.

Position Transport at Location

6.

Added a new picklist option for the Process Location field titled: Reserve Location

7.

Added a new User Condition to the Pass To field option that checks whether the candidate's "reserve" label is currently zero.

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()

Version 2.77 (Aug 13, 2010)

Bug Fixes (v2.77)

1. The “Entrance Criteria for Next Patient” field for a Patient Queuing object wasn't being checked when a patient to be escorted to another location defaulted to traveling unattended to the Patient Queuing object when no staff member is available. This has been corrected so that now the entrance criteria must be met before travel to the queue is allowed.

2. Fixed problem where defining a Repeat Interval for an activity on a patient track would cause errors at the time the patient exited the model. It is now possible to stop a repeating activity with the finishactivity() command now as well.

selection options.

4.

Time series dashboard graphs now take into account simulation start times as defined by the Tools > Simulation Start Time menu option.

5.

Corrections have been made to the stop time field on the main toolbar so that it will correctly display the stop time defined in a model immediately after opening the model. The stop time field will also continue to display a stop time in dd:hh:mm format (if so entered in that format) rather than convert it into minutes. As before, the stop time needs to be entered in terms of any offset to the start time as defined in Tools > Simulation Start Time.

6.

The Move Equipment/Transport Process activities have been updated to use the same travel rules as the Process activity in terms of how the staff choose between multiple path nodes connected to a location to travel to, and whether to offset travel from a node to a patient within a location.

7.

Fixed problem with the vertical scroll bar in the track manager’s activity list box. The scroll bar no longer jumps when selecting activities at the bottom of a long list.

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.

New Features (v2.77)

1. Added a new time series graph to dashboards for plotting patient attributes, object states, object variables, and global variables over time.

2. A patient’s total distance traveled is now recorded automatically. Options have been added to show distance traveled for both patients and staff in output files and dynamic dashboards.

3. Added a picklist option to the “Pass To” field of resource groups that selects resources in a round robin fashion according to their availability.

5.

Added a direct link in the Help menu to the new community site created specifically for FlexSim Healthcare users.

6.

Further refinements have been made in an effort to keep staff members from standing on top of each other when multiple staff are performing independent process activities at the same location at the same time. If multiple nodes are connected to the common location, then the staff member will travel to the first, second, third etc. node connected to the location based on whether there are none, one, two, etc. active tasks underway respectively at the time the staff member is called.

7.

Output data files can either use decimal points or decimal commas based on the country settings of the computer. In addition, both numeric and text label values can now be written to output files, and there are several good examples for defining Custom Fields within the Output Data Settings interface.

8.

Patient and Patient Processing object state profiles have been expanded to include more states (see user manual for more information).

9.

The simulation start time can now be defined in minute resolution using Tools> Simulation Start Time menu option.

10.

An option has been added to the Hourly Arrivals tab of the Patient Arrival’s Properties window allowing the user to specify whether patient arrivals are equally spread or randomly distributed across the hour. Previously, the arrivals were always distributed randomly across each hour.

11.

All patient transfer activities now require the allocation of the patient prior to the start of the transfer. This will allow the user more control over when a transfer activity occurs in relationship to other activities that also require the allocation of the patient.

12.

Revisions have been made to the online User Manual, including new tutorials.

13.

An optometry chair has been added to the list of 3D shapes available for a Patient Processing object.

14.

Two new picklist options have been added to the Activity Start Condition field which allows for the inclusion/exclusion of a specific activity completion.

15.

The picklist option titled "Choose from a list of areas" for the Patient Destination field is now extremely powerful with its list of selection rules. This option also allows for the continuous reevaluation of the Patient Destination field whenever downstream locations become available.

16.

The optimization tool called OptQuest is now available as an optional add-on to FlexSim Healthcare. To learn more, follow this link:

http://www.FlexSim.com/products/optquest

Version 2.75 (May 31, 2010)

Bug Fixes (v2.75)

1. Fixed the problem discovered in the basic training model with patients not continuing on to Xray sometimes from their treatment rooms. This bug occurred in the function responsible for transferring a patient from one location to another only if the patient was not able to transfer immediately, but must wait for both an available location to transfer the patient to AND an available staff member for escorting the patient.

2.

Reinserted the "Patient Rounds" picklist option in the Activity Finished Trigger field (it was accidentally removed from the 2.703 release).

3.

Fixed problem where a patient not using path network walks several feet off the floor from locations with custom shapes.

4.

Fixed problem with patients standing off the floor in locations with <none> chosen for their shape.

5.

Redesigned the Appointments tab slightly for the Patient Arrivals object properties window, and rewrote some of the tooltips.

6.

Fixed problem with the Item Destination field not showing the destination entered by the user when the Track Manager was first opened.

7.

Creating/Duplicating/Deleting tracks now refreshes the other tabs in the window consistently.

8.

Fixed problem with importing/exporting track activity tables using the Files tab of the Track Manager where Id's were not being converted to row numbers.

9.

Renamed the Flowcharting window from "Area Connections" to "Flowcharting" like it should have been all along.

10.

Resetting the size and rotation of an object using the context menu (i.e. right-click menu) of the main view now works properly.

11.

Fixed problem with the Flowcharting window sometimes showing area blocks for Item class object.

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.

New Features (v2.75)

1.

Added a Multi Line Text Box widget to dashboards.

2.

Added a new option for the Patient Destination field called "Choose From List of Areas" which will choose from a list of areas based on one of two user-defined selection rules: "First Available Location" or "Fewest Occupied Locations".

3.

Added a new option for Activity Started/Finished Trigger called "Assign Staff Based on Patient's Current Area".

4.

Added a new option for Activity Finished Trigger called "Record Staff Used by an Alternate Group".

5.

Added a new option for the Send To field of Item Class objects called “Based on Patient ’ s Location”.

6.

Previously it was necessary to refresh connections in the model by reopening the Flowcharting tool and closing it after a new object was added to the model, or the area of an object was changed. From now on, if a new object is created in the model or an object's area is set to an existing area in the model that already has connections established in the Flowcharting tool, the object is automatically connected according to the connections associated with its new area.

7.

The Auto Connect button found in the side bar of the Flowcharting tool was replaced with a Refresh Connections button.

8.

Added a Stop/Resume Arrivals to the Down/Resume Functions for Shift Schedules.

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”.

Version 2.70 (April 16, 2010)

Bug Fixes (v2.70)

1. Fixed the, "By Time of Day," option in several of the picklists, and renamed the option to: “Based on Simulation Time.” It now correctly accounts for simulation start times that are offset from time zero as defined by the user when creating shift schedules. The pick option allows use of the following terms when referencing simulation time: year, week, day, hour, minute and shift, with a shift being further defined as any given number of minutes.

2. Fixed problem with shift schedules switching from an available state to a down state between 00:00 and 00:15 even when the table displayed an available state.

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:

Axis label display errors on line graphs

Axis label display errors on line graphs

Displayed values for Object Queue vs. Time charts were sometimes off

Displayed values for Object Queue vs. Time charts were sometimes off

depending on size of graph boundary The words “In-Process” have been changed to “Census” in

depending on size of graph boundary 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.

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.

New Features (v2.70)

1. The HASP driver install is no longer included as part of the FlexSim Healthcare software installation function. This was done to satisfy the request of some users who needed a “silent” install of the software. The HASP driver is needed for the dongle key to be recognized by the computer, and only needs to be installed once (i.e. not with every new version of the software). First time users will need to install the HASP driver through the Start > All Programs > FlexsimHC > Install HASP Driver option that will be available after installing the FlexSim Healthcare software.

2. The free trial version downloadable from the FlexSim.com web site, can now run models of any size. It will not allow models to be modified or saved that have more than 20 objects, 2 tracks, or 12 activities per track. More of the Tools have been made available in the trial version, but valid analysis will continue to be frustrated by forcing the random number generator to repeat the same stream for every run. There are also blocks on importing and exporting data.

3. New shortcut key combinations have been added for those users who like to use the keyboard rather than the mouse where possible. Here's a complete list of keyboard shortcuts now available in the software:

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)list of keyboard shortcuts now available in the software: Ctrl+Down arrow to decrease run speed Ctrl+Left

Ctrl+Down arrow to decrease run speedso it's easy to change to 1= real time, if desired) Ctrl+Left arrow to reset the

Ctrl+Left arrow to reset the modelreal time, if desired) Ctrl+Down arrow to decrease run speed Ctrl+Right arrow to step through events

Ctrl+Right arrow to step through events of modelto decrease run speed Ctrl+Left arrow to reset the model Ctrl+Space bar to toggle between run

Ctrl+Space bar to toggle between run and stop the model runthe model Ctrl+Right arrow to step through events of model Ctrl+T to open the Track Manager

Ctrl+T to open the Track ManagerCtrl+Space bar to toggle between run and stop the model run Ctrl+R to open the Flowcharting

Ctrl+R to open the Flowcharting tool (R as in "Routes" - sorry but F is reserved for Find)run and stop the model run Ctrl+T to open the Track Manager Ctrl+D to duplicate the

Ctrl+D to duplicate the highlighted or selected objects in the model view windowas in "Routes" - sorry but F is reserved for Find) Ctrl+C to copy selected text,

Ctrl+C to copy selected text, tree nodes, or table cells to the clipboard- sorry but F is reserved for Find) Ctrl+D to duplicate the highlighted or selected objects

Ctrl+V to paste text, tree nodes or table cells from the clipboardCtrl+F to find text within a text editor Ctrl+Z to undo typing within a text

Ctrl+F to find text within a text editorto paste text, tree nodes or table cells from the clipboard Ctrl+Z to undo typing within

Ctrl+Z to undo typing within a text editorfrom the clipboard Ctrl+F to find text within a text editor Ctrl+Y to redo typing within

Ctrl+Y to redo typing within a text editora text editor Ctrl+Z to undo typing within a text editor 4. The File > Import

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, 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.

widgets are explained in detail with a context menu option (right-click) named, “View Calculation”.

14. User-defined bar charts are now recalculated on a repeating time interval specified by the user, rather than with every screen refresh making them much faster and easier to set up. The following options are available as a starting point for defining your own bar charts:

Group Member Utilizationsas a starting point for defining your own bar charts: Tabular Data Total Throughput by Area

Tabular Datafor defining your own bar charts: Group Member Utilizations Total Throughput by Area Current Occupancy by

Total Throughput by Areayour own bar charts: Group Member Utilizations Tabular Data Current Occupancy by Area Total Throughput by

Current Occupancy by AreaMember Utilizations Tabular Data Total Throughput by Area Total Throughput by Location Current Occupancy by Location

Total Throughput by LocationData Total Throughput by Area Current Occupancy by Area Current Occupancy by Location User-defined line graphs

Current Occupancy by LocationArea Current Occupancy by Area Total Throughput by Location User-defined line graphs are now possible, with

User-defined line graphs are now possible, with the following options currently available as a start:Total Throughput by Location Current Occupancy by Location Patient Data Categorized by Label Tabular Data 15.

Patient Data Categorized by Labelwith the following options currently available as a start: Tabular Data 15. Object Queue vs. Time

Tabular Dataavailable as a start: Patient Data Categorized by Label 15. Object Queue vs. Time graph has

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.

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.

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.

35. Some fields have been given shorter names that better describe their function. We realize it can be frustrating when field names you've become accustomed to change, so we will refrain from future changes unless absolutely required. Here's a list of new field names with their previous name shown in parenthesis:

Patient Destination (Patient's Next Area)field names with their previous name shown in parenthesis: Reserve Current Location (Hold room during absence)

Reserve Current Location (Hold room during absence)parenthesis: Patient Destination (Patient's Next Area) Fixed Cost (Total Activity costs = Variable Cost Rate (

Fixed Cost (Total Activity costs =Area) Reserve Current Location (Hold room during absence) Variable Cost Rate ( + Allocation Priority (Resource

Variable Cost Rate ( +room during absence) Fixed Cost (Total Activity costs = Allocation Priority (Resource Allocation Priority) Preempt

Allocation Priority (Resource Allocation Priority)Fixed Cost (Total Activity costs = Variable Cost Rate ( + Preempt Resources (Preemption Rule with

Preempt Resources (Preemption Rule with two picklist options is now converted to a check box)Rate ( + Allocation Priority (Resource Allocation Priority) Allocate Patient (Patient's exclusivity is required) $)

Allocate Patient (Patient's exclusivity is required)with two picklist options is now converted to a check box) $) $/hr) 36. The Process

$)

$/hr)

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 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.

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.

53. New Command resumearrivals(object); Resumes the generation of arrivals at a PatientArrivals or ItemArrivals object that was previously stopped with the stoparrivals() command.

54. New Command setrunspeed(speed); Sets the simulation run speed. Value entered is the number of simulated minutes per one real minute. A value of 1 would run the model in real time. This command will also update the slide bar and value displayed on the toolbar above the view window.

55. Even though more than one path node may be connected to a location, travelers will, by default, use the shortest path when traveling to that location. However, by checking the, “Alternate Exit,” box found in the arrival node's Properties window, it's also possible to have travelers leave a location using a different path node than the one they used to reach the location.

56. When multiple staff members, using the path network to travel to a Patient Processing location, arrive, they'll occupy the path nodes attached to that location in the same order as they are assigned in the staff table for that activity. In other words, the staff member associated with the staff assignment defined in the first row of the staff table of the activity, will be directed to travel to the first path node connected to the location, and the second staff member to the second path node, and so on. If you forget the order you connected the path nodes to the location, you can view the connection order number by changing the Information Display to, “Show object names” (see right-click context menu for the view), and then clicking on a path node to reveal its order number.

57. Improved positioning of multiple staff while escorting and transporting patients.

58. Improved staggering of multiple staff assigned to the same process.

59. Improved staggering of multiple patients arriving at the same location.

60. Multiple patients arriving at a Patient Processing object that has <none> selected for its shape will be positioned according to a grid pattern across the footprint of the object after they have entered the object.

61. New picklist options have been added to facilitate repositioning of patients arriving at locations.

62. A custom transparency level can now be assigned to a Display object for text and floor displays.

63. Patient Arrivals and Patient Exit Objects:

64. The Properties window has been updated to resemble the Patient Queuing and Patient Processing objects' Properties windows.

65. The Users Manual is in need of a rewrite, but there are a few new sections added recently that are worth reviewing. The Users Manual > Modeling Tools > Track Manager contains a good explanation of what a track is, and at the bottom, there's a short description of the various Activity Types.

short explanations of the Advanced Functions.

67. Sample Model: This release includes a sample model of a small emergency department. The model is named Demo_ER_1.fsm and can be found in the user>Documents>FlexsimHC Projects folder. The model uses a CAD drawing for a floor plan. There are two simplified tracks defined in the model: Basic and Xray. The Basic track has the following activities: arrival, registration, triage, bed placement, nurse assessment, nurse/doctor consult, doctor exam and discharge. The Xray track is the same up through nurse/doctor consult, then xray, return to bed, and discharge. Walking paths are used to connect the various locations in the model.

Version 2.50 (December 11, 2009)

Bug Fixes (v2.50)

1.

Fixed bug with equipment not being disconnected from network when “Connect with Path Network” box is unchecked.

2.

Fixed bug so new resources added after the “Connect with Path Network” box has already been checked will also be connected.

3.

Fixed problem where experimenter was not updating variables associated with the “Next Activity” field and global variables.

4.

Removed visual glitch (green box) shown on dashboard line graphs.

5.

Fixed bug with repetitive activities not always working when running a model for multiple replications.

6.

When staff members are preempted away from a patient, the patient ’ s state is now changed to “Waiting For Staff”.

7.

The problem with requests getting caught in an infinite loop when passed between multiple resource groups, as could happen when using Alternate Groups, has been fixed. Group members should now be able to contain both resources and other groups without a problem.

8.

A problem with assigning labels to patients has been fixed by forcing the user to always create labels on a patient using the Patient Classification tab of the Patient Arrivals Properties window.

9.

Fixed problem with some models requiring the Track Manager to be opened and the Apply button clicked before they would work.

10.

Fixed bug with Patient Processing objects not allowing multiple patients even when the “Maximum Occupancy” was set greater than 1.

New Features (v2.50)

1. A check is now made for availability of both a location and a staff member when a patient is to be escorted to their next area. When there is a PatientQueuing object connected, the patient will walk unattended to the queue. Previously, only a location needed to be available to keep the patient from walking unattended to the queue.

2. Added option to lock the position of walls to avoid accidentally moving them.

(or force the preempted task to be completed by the resource that was preempted).

4.

When the OK button is pressed on the Track Manager, the window will no longer close if an error is detected in the activities, to avoid having to reopen the window to fix the error.

5.

Improved the elevator dispatching logic so that the elevator will only pick up passengers who are going in the same direction as current riders (capacity is limited by a user-defined number of passengers). The animation has been improved to not shut the door in the face of multiple passengers loading/unloading at the same floor too.

6.

Added an option to send staff on patient rounds using a single activity step. One or more staff will be sent to locations in a specified order to perform a task. If equipment is specified, then the staff will first pickup the equipment, and carry it with them to each of the location listed. A process time expression will be evaluated for each staff at each location they visit to determine their stay time. Only locations that are in a chosen state (i.e. vacant, occupied, etc.) will be visited.

7.

User can now add their own custom fields to the automatically generated output files. The custom fields can be calculated derivations of existing fields, or completely new data. The number of decimal places for numeric variables written to output files is now based on the global setting for decimals rather than always using 2 decimal places.

8.

Added an option to easily modify patient arrival rates as one of the experiment variables.

9.

The Excel table importer now has options for importing Global Tables, Arrival Tables (e.g. Hourly Arrivals, Appointments), Object Tables (e.g. maintenance tables, component lists, user-defined label tables, etc.), and Shift Schedules. A new field has been added to the importer called “Post Import Trigger” which can be used to execute script immediately following the importing of the tables from Excel.

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.

key combination.

17. Added many new 3D shapes to the dropdown lists for Patient Processing, Group, Item Queuing and Item Processing objects.

18. Replaced the “AutoConnect” button with a “Flowcharting” button on the main toolbar. This new button opens a window that allows you to graphically map the flow routes of the various patient types in your model. Multi-colored connection arrows are available to help you define and organize your routes. The routes are defined by area rather than location, so they are quick and easy to create. There is still the option of having FlexSim automatically try to create the connections between areas in your model based on information derived from the track definitions. However, as you ’ ve probably discovered, these automatic connections are not always what you want, so the new flowcharting tool will help you make your connections correct right from the start, and it is also a very nice way to graphically present your patient flows to others.

19. The “Probably Early Exit” option for the Patient Leaves Early field on the Patient Condition tab of a Patient Queuing object ’ s Properties window has been expanded to allow for a conditional query as well as a probability percentage in deciding if a patient leaves early. The option will also create a user-defined label on the patients leaving early so that the patients can be identified in the output reports.

20. A new simplified format for the csv file used to import and export patient tracks between FlexsimHC and Excel has been developed. Multiple resources defined for the same activity step can now be specified in one cell by separating the list of resources with a comma. If the Next Activity Chooser and Activity Start Condition fields were defined with a single line expression, they too will be imported/exported.

21. To facilitate quick and easy data entry, two new commands have been included in the software: T() and P(). The first is just a substitute for the triangular() command. However the second, allows you to specify a list of values to be returned based on a corresponding list of probabilities. The format for the data typed into the P() command, is P(, percent1, , percent2, …) for up to nine different values. If more are required, then the dempirical() or cempirical() commands which can reference an unlimited list of values/percents in a global table must still be used.

22. The following commands have been added: drawobjectfloor(), finishactivity(), firstavailableresource(), firstpreemptableresource(), getobjectstate(), getiteminstate(), gettraveldistance(), getwarmuptime(), reservelocation(), scanactivities(), setcolorbypalette(), setnextarea(), setnumlocations(), setnumresources(), setobjectstate(), startactivity(), timestringtominutes(), toid(), torownum().

23. Resources being used to transfer a patient are no longer allowed to be preempted; however when the transfer is complete, the request queue is immediately evaluated for preempting requests that have not been satisfied.

24. Using the mouse wheel to change the height of a selected object will restrict moving the object below floor level.

25. The Display object is a nice way to make a floor. Any objects dropped onto the floor will be placed at the same height as the floor by default. This can be useful in multi- floor models.

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.

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.

Version 2.01 (September 18, 2009)

Bug Fixes (v2.01)

1.

Allocate and Deallocate activity types are now working properly.

2.

Simulation start time offset can now be globally defined and saved with a model. All time related fields will now take the start time into consideration.

3.

Prev/Next buttons found in many of the gui windows have been debugged and now work properly to hopefully speed up the editing process across several objects.

4.

More error trapping has been incorporated into the code to avoid as many exception errors as you may have previously experienced.

5.

Sometimes, patient and location states were not getting set when they should. This has been fixed.

6.

The Track Properties editor (now called the Track Manager) had problems refreshing properly, and therefore would occasionally assign data entered within one field to another field. This was usually manifested by staff appearing to travel to a wrong

location for a process. It also caused problems with patients getting “stuck” at a given location as they were trying to get to advance to an area not allowed for the track. These problems have all been fixed by fixing the way data is presented and saved by the Track Manager interface.

7.

The options on the Utilities window for creating saved Selection Groups and saved Layout Configurations did not work. This has been fixed.

8.

Fixed the problem with background images disappearing “randomly”.

9.

Fixed the problem with bad global pointers being generated sometimes when trying to rename staff, equipment and transports. A more robust approach for the auto- generation of global pointers for object names and area names has been developed which hopefully has eliminated these problems.

10.

Clicking Apply/OK on the Shift Scheduler after making changes in the graphical Work Schedule table view used to erase the changes. This has been fixed.

11.

The bugs with the Hourly Arrivals table method for generating patient arrivals into the model have all been fixed.

12.

Staff connected to an Alternate Group were not included in the “previous from

group”

picklist options. This has been corrected.

13.

The bug with repetitive tasks not always repeating properly has been fixed.

14.

The warmup time event now correctly resets all variables requiring reset.

16.

Fixed bugs with the Presentation Builder and AVI Maker, so they now work correctly with the main view.

17. The “same as above activity” option now works for transports.

New Features (v2.01)

1.

More predefined dashboard widgets are available.

2.

Many new user-configurable Dashboard graph and text display widgets.

3.

Each widget now has a data structure associated with it that the user can take a look at and export if desired.

4.

The user is prompted to save dashboards before closing when changes were made.

5.

Multiple dashboards within one model are now allowed.

6.

Staff now use a default picklist option for returning to their primary group object when unavailable due to Shift Schedules or Random Interrupts

7.

Resources such as staff, equipment and transports can now be chosen for an activity in

a

variety of user-defined ways using the “Pass To” field found on the Advanced

Group Editor, the Advanced Resource Editor, and the Alternative Group Editor. The purpose of the field is to allow the user to choose the manner in which activity requests (otherwise known as task sequences) are dispatched from group to group and from group to resource. In other words, which resource connected to the group specified for the activity’s staff, equipment and transport requirements do you want to

be chosen for the activity. The default option for the “Pass To” field for resources and resource groups has been improved to handle more situations in a more realistic manner, but you may easily change the selection criteria with the new picklist options provided.

8.

The “previous from

group”

option that has been available for assigning staff to an

activity is now an available option for assigning equipment and transports as well.

9.

The Patient Tracks and Track Properties windows have been combined and renamed Track Manager. This was done to reduce the number of windows required to be opened at one time. The new Tracks and Files tabs on the Track Manager essentially make up what used to be the Patient Tracks window. The Tracks tab now allows you to change the name and order of existing tracks. When adding new tracks, you can make a blank track or create a duplicate of an existing track you have highlighted in the list.

10.

The Visual tab of the Track Manger lets you change and visualize more parameters than before. Be sure to check out the new options for dynamic overhead displays for

patients in the model. The frame selector is handy for viewing the available frames for

a

patient should you decide to override the defaults and assign your own frame to a

patient for a specific event in the simulation.

11.

The Labels tab has been changed to restrict users from adding their own labels this way. User-defined patient labels are meant to be added using the Patient Classifications tab of the Patient Arrivals edit window. You’ll note that there are two new system defined labels for a patient: ApptTime and ArrivalTime. These are used when the patients arrive by appointment as defined on the Patient Arrivals object. A patient’s scheduled appointment time versus their actual arrival time may be useful to

you to query within your model.

12. It is now possible to import and export tracks using a simplified tabular format (ref. Comma Delimited (*.csv) option) making it very easy to export track activity lists to a table in Excel for reporting purposes, but it also gives you the possibility of making changes to the activity list within a worksheet, and re-importing your changes to test in the model. If a track with the same name already exists, the imported information will replace existing information for the track; otherwise, a new track will be created and the imported information applied to it.

13. For simplification purposes, the Activities tab of the Track Manager window will now only show those fields which are applicable to the chosen activity type. You’ll notice for instance, that the Process Location field only shows up once you’ve selected staff for a Process activity. This is because the Process Location is only used when staff are going to be utilized during the process time, in which case the staff must first travel to the Process Location before the Process Time begins. These little changes, plus a host of “sanity checks” that get executed when the Apply button is pressed, will hopefully help the user to avoid data entry errors.

14. You’ll notice a new checkbox on the Activities tab for the first five process activity types that is “Patient’s exclusivity is required”. If a patient’s exclusivity is required for a process, then the patient will be allocated for the process. This means the patient cannot be allocated by any other process while allocated by this process. Normally there are multiple activities that can be occurring for a single patient at any given time.

15. The “Transport Patient > Process” activity type now has an option requiring the staff return the transport to the transport’s group object after dropping off the patient. This option is invoked by simply checking the box labeled “return” found in the Transport selection pane for the activity.

16. The Process Location can now be defined with an expression in Advanced Functions rather than just selecting a specific location on the Track Manager’s Activities tab. This will allow the process location to be determined during runtime according to system dynamics at the time the decision needs to be made.

17. A very powerful field has been added to Advanced Functions called “Activity Start Condition”. This new option requires that a user-definable condition be true before an activity is kicked off. The condition is rechecked every time the activity list is scanned for another activity to begin, and the user may create custom events to force reevaluation of the list at any time! With this condition field, conditional based activity list traversal within a given track is easier than ever.

18. An “Activity Started Trigger” has also been added to Advanced Functions giving you the opportunity to modify the parameters of an activity before it starts allowing you to make changes based on the state of the model at the time of the activity. An extensive list of user pick options makes this an easy task.

19. The list of user pick options for Advanced Functions has been expanded to include improved options for making selections based on system state and availability of resources and locations. New options have been added for making decisions based on patient attributes and time of day as well.

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 patient’s appointment time. The appointment schedule may also be repeated if required. If the PCI value for a specific arrival is 0, the PCI classification index can now be assigned randomly from the empirical distribution defined on the Patient Classification table rather than explicitly defined by the user. The appointment times may be entered in days:hours:min format, or in terms of total simulated minutes as before. This now applies to all time entry fields!

30. Interarrival times may now be tied to a specific PCI number if desired, making more than one interarrival time distribution more useful.

31. The Patient Processing object can now have more than one patient in it at a time by simply specifying the “Maximum Occupancy” to a number greater than 1.

32. The status of the library (open/closed), the main view settings, any open windows, and all saved views are now saved with the model, and are loaded automatically when reopening the model.

33. The right-click popup menu for the main view window has been expanded to include more colors, standard views, and other display settings than before.

34. The object library window is placed on top of other windows when opened/closed in order to give you access to the library when other windows are in front of it. By the way, did you know you can right click on an object in the library and get a list of objects in the model of that type? Very useful in large models when you want to find

and edit a specific object.

35. The default directory for saving and opening files is a directory in the user’s personal Documents folder called FlexsimHC Projects. This is the default directory until changed by opening or saving a file to a different directory.

36. Ctrl-D is a shortcut key available in the main view for quickly duplicating a group of selected objects (red bounding box), or a single highlighted object (yellow bounding box).

37. New Excel import and export options available under Tools>Excel menu.

38. All tables in the application including those found on the Patient Arrivals object have right-click popup menu options for easily copying/pasting or importing/exporting the entire table or portions thereof.

39. Many more 3D shapes are included for locations, equipment and transports.

40. Staff Groups can now be assigned 3D shapes from a dropdown list.

41. Location objects show a colored band around their floor when being held by a patient. The color of the band matches the patient’s color.

42. Location objects show a red band around their floor when not available due to a shift schedule or experiment scenario.

43. Staff and patients now have more realistic travel patterns. They no longer stop at a node when using walking paths, but will offset travel all the way to their final process point when discernible.

44. When equipment and transports are dropped off, they are placed more intelligently. For instance, wheelchairs are placed in such a way as to hopefully not overlap with patients or beds when possible. When a resource (e.g. staff, equipment, transport) returns to its group, it is placed back in its original default position relative to the group.

45. Positioning of all patient shapes (e.g. man, woman, boy, girl, baby, baby in bassinet, and man in bed) have been improved for when the patient is placed in any of the standard locations. The user may manually position patients within locations as well.

46. Improvements have been made to the positioning of patients relative to transports, and staff relative to equipment or transports during travel.

47. You can now choose to display information above a patients head as they progress through the model. The information includes the patient’s name and a list of the activities that are currently in process for the patient.

48. Patient Queues can now be visualized represented with chairs, beds, a single file line, or open floor space. Single file lines now have a truer representation with patients shuffling forward after a patient at the front of the line leaves the queue.

49. An elevator object has been added to the library. Using an elevator in a model is extremely easy when using walking paths. Simply connect the elevator up to nodes in the walking path. As patients or staff cross a node connected to an elevator, it is determined whether or not the person(s) need to use the elevator based on the level of their destination compared to their current level. If the levels are different, a request to use the elevator is dispatched automatically. By default, the elevator will stop and pickup passengers who are along the way who are headed in the same direction the elevator is currently going so long as the elevator capacity has not been exceeded. Other control algorithms can be chosen by the user as well.

50.

The text display options have been updated and expanded to match those available for dashboards and output files.

51. You now have the option to create nine separate output files rather than what was previously one file with the recorded data tagged with nine different codes. This should make it much easier for most users to deal with. The nine files are:

PatientHistory, StateHistory_PatientQueuingLocations, StateHistory_PatientProcessingLocations, StateHistory_ItemQueuingLocations, StateHistory_ItemProcessingLocations, StateHistory_Staff, StateHistory_Equipment, StateHistory_Transorts and StateHistory_Totals. The delimiter for the column separator can now be one of four types (e.g. tab, semicolon, comma, space) for international compatibility.

52. Data is not written to the output files until after the user-defined warmup time has transpired. When the warmup time transpires, an event occurs which resets all statistical parameters as required. The times associated with data written to the output files is corrected to account for any user-defined start time.

53. Newly designed Experiment Manager interface is more user friendly and hopefully easier to use. One thing’s for sure, it is much more powerful.

54. The user now has a very large list of experimentation variables to choose from. You may choose from predefined lists of location, resource, patient, and global variables; or create your own user-defined variables by selecting from a list of examples or defining one from scratch. A variable no longer needs to be associated with a single value on a single node in the tree, but can be an expression such as an existing algorithm that has been modified to contain an experiment variable you may have embedded in the code. It is now a simple thing to experiment with the number of staff members in a group, or the number of locations within an area.

55. The list of predefined performance measures has also grown substantially. You will be able to choose from a long list of PFM’s associated with individual resources, groups of resources, locations, groups of locations, patient tracks, or global metrics. As with variables, the user may also define their own custom performance measures.

56. Performance measure reports have been enhanced to include more than just confidence intervals and standard deviations. Experimentation results now include histograms for 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

59. Many new commands have been added and documented in the Command List.

Introduction

Introduction In order to get familiar with FlexSim Healthcare lets first talk about the interface you

In order to get familiar with FlexSim Healthcare lets first talk about the interface you will be presented with when you first start the program.

If this is your first time using FlexSim Healthcare, please go here to Interacting with FlexSim Healthcare to learn how to use the basic functionality of the program.

Section 1: The FlexSim Healthcare Toolbar

of the program. Section 1: The FlexSim Healthcare Toolbar Section 1 is the FlexSim Healthcare Toolbar,

Section 1 is the FlexSim Healthcare Toolbar, which in addition to containing the familiar Windows style set of menu options also has buttons that allow quick access to some common FlexSim Healthcare interface elements. The buttons include creating a new model, opening a previously saved model or saving the current model.

Flowitems: This button opens the Flowitem Bin, where you can edit the properties of objects that may move through your model.

Floor Plan: This button helps the user import a floor plan drawing from a CAD program to be used as a background.

Utilities: This button opens a window that contains useful model editing utilities.

Output: This button let's you control the statistical output of the model.

Dashboard: This button opens the dynamic dashboard display. The Dashboard is an area where a user may define and display custom statistical graphs for the currently running model.

Experiment: This button will add an Experiment to you model, which will allow you to run iterations of your model with different variables and performance measures.

Section 2: The Simulation Control Panel

measures. Section 2: The Simulation Control Panel Section 2 is the simulation control panel. From this

Section 2 is the simulation control panel. From this section of the interface you have quick access to the commands that control a model run. is helpful to think of the simulation control panel as having two section of its own; the Buttons, and the speed control.

Open/Close Library: This button opens the Library window. The Library window contains all the modeling objects you will use to build your models, such as Staff, Equipment and Locations. Simply Clcik the object type you wish to create and then click in the grid to place the object.

Patient Tracks: This button opens the Patient Manager window. From this window you may add, remove, import or export patient track information. These patient tracks allow you to define patient flow and activities associated with different tracks.

It

Flowcharting: This button opens a simplified flow chart style view of your model. This view allows you to manage the possible flow choices patients may make as they move through your model. Click on Managing Object Connections for a more in depth look at this tool.

Object Connections for a more in depth look at this tool. Reset initial events for the

Reset

initial events for the model and the initial states for the objects need to be reset. Therefore, before running a model from the beginning, you must press the Reset button first.

: This button resets the model and causes the The OnReset trigger to ‘fire’ for each object in the model. Before running a model the

for each object in the model. Before running a model the Run more events in the

Run

more events in the models event list.

: This button begins execution of the model events. The simulation clock will advance until the model is stopped, or there are no

: This button stops the model while it is running. The model is not reset and This button stops the model while it is running. The model is not reset and it can be started again from the exact point in time that

Stop

it was stopped.

again from the exact point in time that Stop it was stopped. Step execution of a

Step

execution of a model event by event. When multiple events are scheduled to occur at the same time, there may be no visible changes in the model when this button is pressed.

: This button allows the user to skip model time ahead until the next scheduled model event. This allows users to step through the

scheduled model event. This allows users to step through the Stop Time model starts at, forexample

Stop Time

model starts at, forexample a model that begins execution from midnight vs 8:00 AM.

You may add a Warmup time to you model. After the model has run for this amount of time, the statistics are reset, but the model is not.

You may add a Stop time to the model that will allow the model to run up to a certain time and then automatically stop. This is the same as pressing the Stop button as described above, and so the model may resume execution from this point by pressing the Run button.

Run Speed: This slider defines the number of simulation time units that FlexSim Healthcare will try to calculate per second of real time. The actual result may fall short of this value if the model requires too much processing at each event. The speed value displays the value set by the slider, but it can also be edited directly by clicking the down arrow next to the speed value.

: This button allows the user to adjust settings related to time settings in the model. Here you may define what time your

Displays

from he model, or open the properties to an existing display. The Graphic Display gives you the option of displaying text or graphic feedback

on the model during the course of it run.

graphic feedback on the model during the course of it run. : This button shows the

: This button shows the the Display options menu directly below it. Here you may add or remove graphic display objects

Section 3: The Library

The library palette helps you create model resources. Click the resource you would like to add to your model and then click within a view window to create a new instance of that resource. The FlexSim Healthcare library of objects consists of modeling resources that will aid you in simulating whatever system you need. Within the library, there are different groups of resources; one for dealing with patients directly, and another for dealing with items that may be created during the course of a simulation. These items would be things such as lab specimens, paperwork etc.

Patient Arrivals: The first resource in the library is the Patient Arrivals object. This usually represents the start point for a model as it has control over how patients are introduced to the model, according to what interval and what tracks they will follow.

Patient Exit: The Patient Exit resource is the typical end point to a model. Patients that have completed their track should be routed to the Patient Exit object and any data about the individual patient you may wish to capture should be done at this resource. Once patients enter the Exit object, they are considered destroyed.

Patient Queuing: The Patient Queuing resource can be used anywhere in the model where you need to represent, for example, a waiting room for the patients. The Patient Queuing resource has three different visual styles; it can appear as a room with chairs, a row of beds or a line.

Patient Processing: The Patient Processing resource is a very flexible object that can be used to represent many different process points for your patients. Whether you need to represent administrative activities, such patient registration, or a medical process such as a Physician consult, this is the resource you would use.

Staff Group: The Staff Group resource is used to simulate the functions of your hospital staff. A single instance of the resource can be made to function as an Administrative, Nurse, Physician or Tech staff group. How these resources are used and when is a function of the patient activities in the track editor.

Equipment Group: The Equipment Group resource allows you to simulate the function of physical equipment in your model. The resource can be made to appear as a crash cart, ventilator or others.

Transport Group: The Transport Group resource is used to introduce transportation objects into your model. If you have a process that requires patients be transported via wheelchair, rather than walking under their own power, you could employ this object to that end.

Elevator: The elevator object help simulate the situation where you need to move patients, staff or equipment to another "floor" of your facility. In order to use the elevator correctly you will need to make use of the Path object.

Alternate Group: The Alternate group is a special object that helps Staff Groups coordinate with each other. If you had an activity that made use of staff groups such that one staff group was preferred but another could fill the staff requirement, you can make staff groups members of the Alternate Group. You can then use the Alternate Group in the activity and it will utilize one of the members.

Item Arrivals: The Item Arrivals object is the first of the resources that do not deal with patients directly. Its function is to create items involved in processes centered around the other item-centric resources.

Item Exit: The Item Exit object is the termination point for items in the model. When items are no longer needed by the simulation they should be routed to the Exit. Once items enter the Item Exit object, this is the last chance to poll any information from it before it is destroyed.

Item Queuing: The Item Queuing allows you to store items wherever down stream objects may not be ready to receive yet.

Item Processing: The Item Processing object is used for applying a process time to a given item. This allows you to simulate events such as a lab specimen having a test run it.

Item Combining: The Item Combining object implements many features of the Item Processing object, but also adds the ability to join multiple items together.

Item Separating: The Item Separating object also implements Processing features, adding the ability to separate or make copies of items.

Item Conveying: The Item Conveying Allows you to cause flowitems to move, as if on a conveyor belt or through a pneumatic tube system from one location to another. Travel time across the Item Conveying object is a function of convey length and speed.

Path: The Path object creates walking paths for patients and staff. See here for more information.

Wall: The Wall object creates walls to give your model a more realistic feel. Wall creation works similar to Path creation. See the Paths Tutorial for more information

Section 4: The Model View

Section 4 is the model view window. The default model view to build a model is the Perspective view.

observe and interact with your model.

right-click in the model view, and select Switch to Orthographic View.

The view windows allow you to

You also have an Orthographic View available to you if you prefer. To open the Orthographic View,

Section 5: The Status Bar

To open the Orthographic View, Section 5: The Status Bar Section 5 is the status bar.

Section 5 is the status bar. The status bar will show the current elapsed time, as minutes, in the model. Note that the a model's default unit of time is minutes, however the time scale is largely up to the user and may be easily modified.

Highlighting an object in the model view will also cause information to be displayed about the object in the status bar. The object's name, area, as well as location rotation and size within the 3D space will be shown here.

Interacting With FlexSim Healthcare

Creating An Object

To create an object, select the object you want to create in the Library, then click in the model view where you want the object to be created.

in the model view where you want the object to be created. Example As objects are

Example

As objects are created, they will be given default names such as PatientArrivals#, where # is the number of objects of that type, created since the FlexSim Healthcare application was opened. You may rename the objects in your model during the editing process to be defined below.

Naming An Object

To name an object, double-click it to open its Properties window. Then edit its name at the top of the window and press Apply or OK.

its name at the top of the window and press Apply or OK . Editing Objects

Editing Objects

Moving Objects: To move an object around in the model, click on it with the left mouse button, and drag it to the position you want. You can also move the object up and down in the z direction using the mouse wheel, or by holding both the left and right mouse buttons down on the object, and drag the mouse forward and backward.

Exampledown on the object, and drag the mouse forward and backward. Size and Rotation : To

Size and Rotation: To edit the object's size and rotation, select the main menu option Edit > Resize and Rotate Objects. When you click on the object, you should see three colored arrows along each axis of the object. To resize the object, left-click on the axis you want to resize on, and drag the mouse up or down. To edit the object's rotation, right-click on the arrow corresponding to the axis you want to rotate around, and drag the mouse forward or backward.

to rotate around, and drag the mouse forward or backward. Example Properties: All FlexSim Healthcare objects

Example

Properties: All FlexSim Healthcare objects have a number of pages or tabs that present variables and information that the modeler can change based on the requirements of the model. See Object Library for details on each specific object.

Changing 3d Shapes: To change an object's 3d shape, double-click on it to open its Properties window, and select the desired shape from the Shape drop-down list that is located near the top of each Properties window.

and select the desired shape from the Shape drop-down list that is located near the top

Example

Destroying Objects: To destroy an object, highlight the object, and press the Delete key.

View Navigation

Basic Navigation: To move the model view point, click in an empty area of the view with the left mouse button, and drag the mouse around. To rotate the model view point, click in a blank area with the right mouse button and drag the mouse around. To zoom out or in, use the mouse wheel or hold both left and right mouse buttons down and drag the mouse.

mouse around. To zoom out or in, use the mouse wheel or hold both left and

User Authentication

FlexSim Healthcare User Authentication

Login Screen

FlexSim Healthcare User Authentication Login Screen When a user starts FlexSim Healthcare, they are presented

When a user starts FlexSim Healthcare, they are presented with a simple login screen. Here they enter their personal user name and password. This is not related to the name of the license used to activate the software. This is a username assigned to each person that uses FlexSim Healthcare. There are three types of users: administrators, regular users and trial users.

Administrator

There is only one administrator account used by FlexSim Healthcare. The user name for this account

is always “admin”. The administrator has the following permissions beyond a regular user:

a. Create new users

b. Delete users

c. Change the activation status of existing users

d. Change the location of the password file

e. Open encrypted audit log files

f. Save encrypted audit log files to plain text files

g. Change the location of the audit log files

Regular User

A regular user can use FlexSim Healthcare without any restrictions to how the software works. There

are no limits on the models that can be opened, the number of objects or tracks that can be created, etc. The only things that a regular user cannot do are the abilities specifically assigned to the administrator account.

Trial User

If a person wishes to try FlexSim Healthcare but does not have a user name or password, they can

press “Cancel” at the login screen. This will start the software in a Trial mode that limits the features

available as well as the number of tracks and activities that can be created.

Change Password GUI

To enhance security, a user’s password expires 180 days after it was set. After the password expires,

the user can still log in with it, but they will be prompted to change the password each time they do until it is changed. They will also be prompted to change their assword the first time they log in. The Change Password GUI is opened by selecting File|Login Options|Change Password from the main menu.

File|Login Options|Change Password from the main menu. The Change Password GUI is very straight-forward. The user

The Change Password GUI is very straight-forward. The user is required to enter their current password, and then the new password twice. If the old password is correct and the two instances of the new password match, then the password will be changed. If the user tries to change to a password that is not valid, then they will be shown a warning, and the password will not change. There are four requirements for a password to be considered valid:

a. The password must be at least six characters long.

b. The password must contain at least one number.

c. The password must contain at least one lower-case letter.

d. The password must contain at least one upper-case letter.

Due to the way that passwords are saved, if a user forgets their password, it cannot be recovered. Their account will have to be deleted and recreated by the administrator

Manage Users

be deleted and recreated by the administrator Manage Users The primary difference between the administrator user

The primary difference between the administrator user and a regular user is that the administrator can make changes to other user accounts. This is done through the Modify Users GUI, which is opened by selecting File|Login Options|Manage Users from the main menu.

This GUI presents a list of the users that are currently available. Their names are shown along with

when they last changed their password and whether or not the account is active. There are also buttons to create a new user, delete an existing user or change the location of the password file.

New User

When the administrator wants to create a new user account, they press the “New” button. This allows them to define a new user name and give the new account a default password. Because this password will be known to both the administrator and the new user, the user will be prompted to change the password as soon as they log in for the first time.

Delete User

If an administrator no longer needs certain user accounts, they can be deleted in this GUI. When the administrator presses the “Delete” button they are shown a list of users that can be deleted (the “admin” user cannot be deleted). The user that they select will be deleted immediately. A deleted user cannot be restored, but it can be recreated (but the previous password will be lost).

User Status

Sometimes an administrator may want to make certain user names unavailable, but not deleted. This can be done by disabling the account. If the user clicks in the “Status” column of the table, they are shown a drop-down box that allows them to specify whether the user they clicked on is active or disabled. A disabled user cannot login and must be reactivated by the administrator.

Password File Location

The list of users and their passwords is stored in an encrypted file on the hard drive. The location of this file can be changed by an administrator. They would do this if they want to use a single user/password list for several different installations of FlexSim Healthcare (for example: a network installation). When FlexSim Healthcare is first installed, the password file is placed in the default location with just the administrator account available. The administrator (typically the person that installed FlexSim Healthcare) can then change the location of the file to a different directory.

If the administrator chooses a new location for the password file, and there is already a password file in that location, the files from the two locations will be merged. Any users from the file in the old location that are not in file in the new location will be copied into the new location. If a user from the old file is also in the new file, the administrator will be prompted for which password to keep: the one from the old location or the one from the new location. The administrator account is not transferred. The “admin” account’s password will be the password that is stored in the new location.

Audit Log

Because of privacy concerns, FlexSim Healthcare tracks whenever a user logs in and what models they open. This information is stored in an encrypted file known as the audit log. A new audit log file is created every day. Each file keeps a list of all of the times that users attempt to log in or open a file. The audit log files can only be decrypted by the administrator. The audit log viewer is opened by selecting File|Login Options|Audit Log from the main menu.

Open Audit Log

The Open ( log files cannot be read by any other users or programs. Each
The Open ( log files cannot be read by any other users or programs. Each

The Open (

log files cannot be read by any other users or programs. Each entry in the audit log shows the following information:

) button allows the administrator to open an encrypted audit log for viewing. These

a. The name of the FlexSim Healthcare user that performed the action (or “<anonymous>” if the user was unknown or was a trial user).

b. The name of the Windows user that was logged in.

c. The name of the computer where the action was performed.

d. The action that was performed, such as “LOG IN” or “OPEN MODEL”. If the action performed is “LOGIN CANCELLED” then the user pressed the “Cancel” button on the login screen and started FlexSim Healthcare as a trial user.

e. Other data that describes the action, such as the name of a model that was opened.

f. The date and time that the action was performed.

Save Audit Log

date and time that the action was performed. Save Audit Log The Save ( any person
date and time that the action was performed. Save Audit Log The Save ( any person

The Save (

any person or program. The original, encrypted file is not modified. Any actions that are later added to the encrypted audit log will not be in the text file unless it is reopened and resaved.

) button is used to save the current audit log as a plain text file that can be read by

Audit File Location

Just as they can with the password file, the administrator can change the directory where the audit logs are saved. This may be a different directory on the local computer or it could be a ocation on a network somewhere. The Windows user that is using FlexSim Healthcare must have permissions to write to the location where the audit logs are to be stored.

Introduction Tutorial 1

In this simple tutorial model, we will introduce some basic simulation concepts and a scenario that will get you familiar with working within FlexSim Healthcare.

As a rule of thumb it is a good idea when starting a new model to outline in some way the processes that your simulation will model, such as a simple flowchart or other aide. This gives the benefit of helping you narrow down the goal of the model, as well as help you organize what data from the real world system you need in order to define your model’s behavior. Once these preliminary steps are taken you can start going about building your model.

Starting a model for the first time, you may feel unsure where to begin. With that in mind we offer the following simple 5 steps:

1. Create the Layout

2. Define Possible Patient Flow via Flowcharting

3. Create Patient Tracks

4. Edit Settings for Applicable Objects and Resources

5. Run and verify the model

Concepts You Will Learn

Creating, naming, and laying out a model.5. Run and verify the model Concepts You Will Learn Creating a Patient Track. Directing patient

Creating a Patient Track.You Will Learn Creating, naming, and laying out a model. Directing patient flow (Flowcharting). Allocating staff

Directing patient flow (Flowcharting).naming, and laying out a model. Creating a Patient Track. Allocating staff members for certain activities.

Allocating staff members for certain activities.a Patient Track. Directing patient flow (Flowcharting). Changing basic properties of objects. The Scenario For the

Changing basic properties of objects.Allocating staff members for certain activities. The Scenario For the purposes of this tutorial we will

The Scenario

For the purposes of this tutorial we will use a fairly simple scenario. A minor care clinic with only four beds receives walk-in patients on a random basis around the clock. Upon entering, patients are required to register at the registration desk for 3 minutes. If the registration desk is busy, they must wait in a line for the desk to become available. After registration, patients go through a 4 minute triage process by a nurse. Following triage, the patients are escorted by the nurse to a bed where they will receive a 15 minute evaluation by the clinic physician. After the evaluation, patients are escorted out of the facility by the nurse.kn

Tutorial 1

Step 1: Create and Layout the Objects

In this step you simply want to choose what resources you will need to simulate your system and place them in the model. Place the objects so that they accurately represent your system. It is your choice to layout the model to scale. This choice is generally dictated by what kind of results you want to see from your model, such as whether or not you need highly accurate data from resource travel operations.

Save your model as Tutorial1. Be sure to save after each step.

Note: This step assumes that you know how to create objects, how to name them, how to move them, and how to change their 3d shape. If you do not, or would like a review, click here.

Create a Patient Arrivals object. Patient Arrivals object.

Create a Patient Queuing object. Change its shape to that of a Line. Patient Queuing object. Change its shape to that of a Line.

Create a Patient Processing object, change its Shape to Registration. Patient Processing object, change its Shape to Registration.

Create a Patient Processing objects, change their Shape to Triage. Patient Processing objects, change their Shape to Triage.

Create four Patient Processing objects, keeping the default bed shape. Patient Processing objects, keeping the default bed shape.

Create a Staff Group object and change its name to NurseGroup1. Change any visual properties for the Staff Group object and change its name to NurseGroup1. Change any visual properties for the members as desired.

Create a Staff Group object and change its name to PhysicianGroup1. Change any visual properties for the Staff Group object and change its name to PhysicianGroup1. Change any visual properties for the members as desired.

Create a Patient Exit object. Patient Exit object.

Place the objects as shown below.for the members as desired. Create a Patient Exit object. Close the library by pressing the

Close the library by pressing thea Patient Exit object. Place the objects as shown below. button. Note: I have placed the

objects as shown below. Close the library by pressing the button. Note: I have placed the

button.

Note: I have placed the object names above the objects for your convenience using Displays you build the model.

object names above the objects for your convenience using Displays you build the model. . The

. The names will not appear when

Displays you build the model. . The names will not appear when Step 2: Define Possible

Step 2: Define Possible Patient Flow With Flowcharting

You will define patient flow through the use of Object Connections. Object connections are an important part of making your model function properly. These connections allow patients to enter and exit the objects and move on to whatever destination your model may dictate. It may be helpful to think of these object connections as relationships between objects that patients use in order to move from location to location. The Flowcharting view of the model allows you to more easily manage and organize these relationships. It is recommend to make this your second step in model building because it can help organize your thoughts about how patients may move through your model.

Click the Flowcharting button on the toolbar to access this view

the Flowcharting button on the toolbar to access this view In this view you will see

In this view you will see all of the Areas in your model represented as colored rectangles. You may organize the arrangement of these representations however you like, as their positioning in this view does not change how they are arranged in the actual 3D model view.

Positioning the cursor over the left hand side of the window will expose the options available for this view. Here you may chose to move the Area representations, connect them together or disconnect them. The connection modes for the cursor shown at the left (Move, Connect, Disconnect) may also be changed by right clicking in an open grid space.

You may attach a name to a connection line as well as change it's color for increased organization and clarity.

While in connect mode, establish connections to reflect where your patients will go for each of their travel activities by clicking on the origin Area and then clicking on the destination Area.

will go for each of their travel activities by clicking on the origin Area and then

Notice that since patients need to use the waiting line area if the registration desk is not available there must be a connection to the WaitingLineArea from the PatientArrivals Area and from the WaitingLineArea to RegistrationArea. When Patients are walking unattended they will automatically try to find a Patient Queuing object to go to if the desired travel destination is unavailable, such as the registration desk in this case. If being escorted or transported, Patients will need to be explicitly told to use waiting rooms as part of their track.

Connection lines may have a one-way arrow to indicate that travel between those objects is only allowed in the direction of the arrow head. For example Patients may not travel from the BedArea to the TriageArea. A bidirectional arrow may also be used to denote travel is permitted between two objects in either direction; this model does not make use of this type of connection.

Step 3: Create Patient Track

Tracks are the mechanism through which you will define patient movements and their activities in your model. For any patient assigned to a track, the track defines a list of activities that they may execute and what resources will be involved in those activities. To access the interface

be involved in those activities. To access the interface for creating and editing the patient tracks,

for creating and editing the patient tracks, click the

simple single track to get you acclimated to the idea of defining flow in this way. Many more complex possibilities than this example are possible. Models start with one track already created, but with no activities, so all we need to do is edit the existing track.

button found on the FlexSim Healthcare Toolbar. This model will use a

on the FlexSim Healthcare Toolbar. This model will use a First Activity - Arrival When activities

First Activity - Arrival

When activities are created, you may choose a Milestone for that activity. Milestones have a couple useful purposes. First, they are used to generate charts and statistics so that you can more easily measure the results of your model. Second, they are used for your convenience in naming activities. There is a small list of built-in milestones you can choose from, but you can also type whatever you like into the Milestone Marker field to customize the model to your situation. When you first chose a Milestone, it will change the activity name to match, if you haven't already named your activity. In this model, we will use the built-in milestones to name our activities, but it should be understood that both activity names and milestones names are customizable, and a custom milestone name will still generate the same charts and statistics with the name you define.

Note: Depending on which Activity Type you choose, the applicable options in the window will become available. For an activity like Patient Travels Unattended, most of the options in the window become unavailable (grayed) and you cannot edit them.

Note: When you add your first activity to your track, it will have given the name "10_". This "10" used in the name is included as the numeric activity ID, and is a required part of the activity name. Every track you add will have a number followed by an underscore at the beginning.

On the Activities tab, click the Add button above the Activity List column. This will add an activity with the name Add button above the Activity List column. This will add an activity with the name 10_ which you can edit later.

Choose Arrival from the Milestone list. This will change the name of your activity to 10_Arrival. Arrival from the Milestone list. This will change the name of your activity to 10_Arrival.

From the Activity Type list, choose Patient Travels Unattended . Patient Travels Unattended.

From the Patient Destination list, choose RegistrationArea . This will tell the patient, when he enters the Patient Destination list, choose RegistrationArea. This will tell the patient, when he enters the model, to go unattended to the registration area.

Don't close the Track Editor yet, but you may click Apply if you wish to save changes as you go. Apply if you wish to save changes as you go.

Second Activity - Registration The next activity we are going to add is registration. The

Second Activity - Registration

The next activity we are going to add is registration. The patient will come in, register, then wait for the next available nurse in order to begin triage. For this activity, we will need to define a process time of 3.

Click the Add button to add an activity to this track. Add button to add an activity to this track.

From the Milestone list, choose Registration . Registration.

From the ActivityType list, choose Process . Notice that this ActivityType has more options available than our previous activity, such Process. Notice that this ActivityType has more options available than our previous activity, such as Process Time, and Staffing Requirement.

In the Process Time field, enter 3. Process Time field, enter 3.

No Staff will be assigned to this activity.Staffing Requirement. In the Process Time field, enter 3. Third Activity - Triage After the patient

field, enter 3. No Staff will be assigned to this activity. Third Activity - Triage After

Third Activity - Triage

After the patient registers, he needs to be triaged. In this activity, we will have a nurse come pick up the patient, escort him to a triage area, and triage him, which will take 4 Minutes.

Click the Add button to add an activity to this track. Add button to add an activity to this track.

From the Milestone list, select Triage . Triage.

From the ActivityType list, select Escort Patient > Process. In addition to the options available from the Process activity type, Escort Patient > Process. In addition to the options available from the Process activity type, you may also specify a Patient Destination similar to our first activity.

From the Patient Destination, select TriageArea . TriageArea.

In the Process Time field, enter 4. Process Time field, enter 4.

Under Staffing Requirement , click the Add button to add a Staff Group to this process. Staffing Requirement, click the Add button to add a Staff Group to this process. Select NurseGroup1 from the first dropdown menu (Note: if you gave your nurse group a different name, it will appear in the list instead). In the second dropdown chose Any Member.

list instead). In the second dropdown chose Any Member . Fourth Activity - Transfer to Treatment

Fourth Activity - Transfer to Treatment Room

After being triaged, the patient will be escorted and placed in a bed. See if you can create this activity on your own. Add the activity, set the milestone, set the activity type, set the process location, set the process time, set the next area, and allocate a nurse to do the process. After finishing, check yourself with the steps below.

Click the Add button to add an activity to this track. Add button to add an activity to this track.

Set the Milestone to Bed Placement. Bed Placement.

From the ActivityType list, select Escort Patient > Process. Escort Patient > Process.

From the Patient Destination list, select BedArea . BedArea.

Leave the Process Time field blank. The time it takes for the patient to be moved to Process Time field blank. The time it takes for the patient to be moved to the bed will be accounted for naturally, as a function of the walking speed of the Nurse/Patient and how far a distance they need to travel. The process time for this activity type is only used if you want to associate a delay time with the Selected Staff and the Patient after they arrive at their destination.

Under Staffing Requirement , click the Add button to add a Staff Group to this process. Staffing Requirement, click the Add button to add a Staff Group to this process. In the first dropdown, use First Used from Group and in the second select NurseGroup1. This will ensure that the same nurse involved in Triage will then take the patient to his bed.

Fifth Activity - MD Exam After being placed in a bed, the patient will receive

Fifth Activity - MD Exam

After being placed in a bed, the patient will receive treatment from a Physician. See if you can create this activity on your own as well. Check yourself with the steps below when you are done

Click the Add button to add an activity to this track. Add button to add an activity to this track.

From the Milestone list, select MD Exam. MD Exam.

From the ActivityType list, select Process . Process.

In the Process Time field, enter 15. Process Time field, enter 15.

Under Staffing Requirement , click the Add button to add a Staff Group to this process. Staffing Requirement, click the Add button to add a Staff Group to this process. Select PhysicianGroup1, from the first dropdown menu and Any Member from the second.

From the Process Location list, select Patient's Location . Process Location list, select Patient's Location.

and Any Member from the second. From the Process Location list, select Patient's Location . Sixth

Sixth Activity - Exit

Finally, the patient has been seen and treated. The patient may now leave the facility, under the supervision of a nurse.

Click the Add button to add an activity to this track. Add button to add an activity to this track.

Use the Milestone Departure . Departure.

From the ActivityType list, select Escort Patient > Process . Escort Patient > Process.

From the Patient Destination list, select PatientExitArea . PatientExitArea.

Under Staffing Requirement click the Add button to add a Staff Group to this process. Select Staffing Requirement click the Add button to add a Staff Group to this process. Select NurseGroup1 from the first dropdown menu and Any Member from the second.

Click OK to apply the changes and close the Track Editor at once. OK to apply the changes and close the Track Editor at once.

OK to apply the changes and close the Track Editor at once. Note: it is not

Note: it is not necessary for every activity to have a milestone associated with it. In fact, you will generally only want to assign milestones to significant activities for whom you wish to gather statistical data. This is especially true for large models that you may build with many activities; the less significant activities' milestones can begin to clutter your outputs.

Step 4: Edit Applicable Resources

In this step you will need to open the Properties window for any resource whose behavior or appearance you wish to change. This is the step where you may want to add more members to a staff or equipment group, alter the way patients are introduced to the model, or change what objects will look like.

PatientArrivals

While we are not going to change any settings on the PatientArrivals for this model, a basic knowledge of a few things will be helpful.

Double-click on the PatientArrivals to open its Properties window. PatientArrivals to open its Properties window.

Click the Interarrival Times tab. This is where you can change the distribution of how often a patient will enter the model. We will leave it at the default value, which is an exponential distribution with a mean of 20. You can also define arrivals patterns on the table of the Hourly Arrivals tab, Appointments tab and the Custom Arrivals tabon the PatientArrivals to open its Properties window. If you want/need more information on the PatientArrivals

If you want/need more information on the PatientArrivals object, click here . here.

Click OK to close the Properties window. OK to close the Properties window.

Change the Number of Doctors in PhysicianGroup1

Double-click on PhysicianGroup1 to open its Properties window. Properties window.

Under Staff Members column at left, click the Add Staff button. When adding staff, the newly Staff Members column at left, click the Add Staff button. When adding staff, the newly created member will copy the visual properties of the first member in the list; such as gender, shirt/pants color and so on.

Click the OK button to apply the changes and close the Properties window. OK button to apply the changes and close the Properties window.

Step 5: Run the Model Once you have finished defining how the model will run,

Step 5: Run the Model

Step 5: Run the Model Once you have finished defining how the model will run, you

Once you have finished defining how the model will run, you can then run the model. First, click

model, and finally click

When you are finished, save your model as Tutorial1.

button in the toolbar to reset the

your model as Tutorial1. button in the toolbar to reset the to see it execute. During

to see it execute. During this step you can verify that the tracks and resources are doing what you intended.

to reset the to see it execute. During this step you can verify that the tracks

Introduction Tutorial 2

In this simple tutorial model, we will build upon the previous tutorial and a few slightly more advanced concepts into the model. Here we will learn how to incorporate real time model outputs via the Dashboard feature, and see how we can work with equipment and transport groups. We will also introduce the Decision Point activity type that can facilitate random choices within the patient track.

Concepts You Will Learn

Creating Dashboardschoices within the patient track. Concepts You Will Learn Modifying a Patient Track. Assigning Transportation and

Modifying a Patient Track.patient track. Concepts You Will Learn Creating Dashboards Assigning Transportation and Equipment resources to

Assigning Transportation and Equipment resources to activitiesWill Learn Creating Dashboards Modifying a Patient Track. The Decision Point activity type The Scenario We

The Decision Point activity typeTransportation and Equipment resources to activities The Scenario We will use Tutorial 1 as the jump

The Scenario

We will use Tutorial 1 as the jump off point for Tutorial 2 and modify it slightly with some changes to the Patient Track. Activities will remain the same up to the MD Exam Activity, after which we will add a decision point activity. That will transport a low percentage of patients via wheelchair to a separate exam room for an activity that requires staff to be involved with the patient with a Computer on Wheels equipment. Patients will be escorted out of the model after this activity, or if they did not need this additional activity

Tutorial 2

We will begin this model by opening your Tutorial1 model made previously and saving it as Tutorial2

Step 1: Create Additional Objects

In this step we will create the objects we need to facilitate the new activities we're going to add later in step 3. We will add a new exam room, an equipment group in the form of a Computer on Wheels (or CoW ) and a transportation group in the form of a wheelchair.

Open the object Library Library

Double-Click on Bed4 in the Model and set it's Shape to Exam Room . You may notice that this will automatically change the Name and Area Exam Room. You may notice that this will automatically change the Name and Area of the object, which is desired for this model. You may find it useful to rotate this object 90 degrees and move it off to the side of the rest of the beds, in order to improve the visuals of the model.

Create an Equipment Group , and set its member shape to C O W . Equipment Group, and set its member shape to C O W.

Create a Transport Group. Transport Group.

Place the Objects as shown below:set its member shape to C O W . Create a Transport Group. Step 2: Modify

Create a Transport Group. Place the Objects as shown below: Step 2: Modify Flowcharting Go into

Step 2: Modify Flowcharting

Go into the Flowcharting for the model and add a connection from the BedArea to the newly created ExamRoomArea. Also create a connection from the ExamRoomArea to the PatientExitArea

Step 3: Modify the Patient Track For this step, we will edit the patient track

Step 3: Modify the Patient Track

For this step, we will edit the patient track that we made in Tutorial1.

First, we will add an activity that will take place after the initial treatment with the Physician that will be a Decision Point activity type. Here the track will decide if the patient is required to go to the new exam room.

To add an activity between two other activities, highlight the beginning activity MD Exam) and click Add. This will insert a new activity after the highlighted activity, and give it an Activity ID the number halfway (or closest) between it and the next activity.

In this example, our first new activity will be given the ID of 55. In total we will be adding 3 new activities; the decision point, the activity that

takes the patient to the new exam room, and the new procedure with the C O W unit.

Note: When inserting activities as we will do here Predecessor lists will need to be updated to ensure that only the activities we intend to start, start. In this case the Predecessor for the Departure activity will need to be modified.

Activity 55 - Decision Point

Decision Point Activities happen in zero time and are used to allow a choice between multiple activities that could start after the decision point. The unique property of the decision point activity is the Next Activity dropdown menu where you can chose an option that defines how, and what activates may begin next.

A

Decision Point activity should not be used as a Predecessor for any activities in the track, as any activity that the decision point will chose will

be

caused to start immediately upon the choice being made. Instead, any activity that is to start if only if the decision point choses it should

uncheck the checkbox next to the Predecessor field. This will disable predecessors for this activity so it cannot start except when explicitly told

to start by the decision point.

Open the Track Manager, go to the Activities tab and highlight activity 50, MD Exam . MD Exam.

Change the new Activity’s name to 55_Decision . For this activity there's no need to use a Milestone. 55_Decision. For this activity there's no need to use a Milestone.

In the Activity Type List, chose Decision Point . Decision Point.

In the Next Activity dropdown menu, chose the option called “Based on Probability”. This option allows you to type an expression in the blue text area made up of Percentages and Activity ID pairs separated by comas. For now leave the expression field blank, we will come back to it later.55_Decision . For this activity there's no need to use a Milestone. In the Activity Type

Activity 100 - Move to Exam Room This activity will transport our patient to the

Activity 100 - Move to Exam Room

This activity will transport our patient to the new exam room we created in Step 1. Notice that the ID will be different than the numbering scheme used for the earlier activities. This is often good practice so you can easily tell that there is something different about this activity because of it's numbering system.

While Highlighting activity 55, click the Add button above the activity list. Add button above the activity list.

In the Milestone field type “Transport to Exam ” . Transport to Exam” .

Change the Activity ID to 100.In the Milestone field type “ Transport to Exam ” . Disable predecessors for this activity

Disable predecessors for this activity by unchecking the Predecessor checkbox.“ Transport to Exam ” . Change the Activity ID to 100. Change the Activity Type

Change the Activity Type to Transport Patient > Process . Transport Patient > Process.

Set Patient Destination to ExamRoomArea. ExamRoomArea.

Add Staff, and chose First Used From Group from the first dropdown and NurseGroup1 from the second. First Used From Group from the first dropdown and NurseGroup1 from the second.

Click the Add button under the Transportation Requirement and chose the Wheelchair1 group from the dropdown. Add button under the Transportation Requirement and chose the Wheelchair1 group from the dropdown.

Check the Return checkbox in Equipment Requirement. Return checkbox in Equipment Requirement.

Check the Return checkbox in Equipment Requirement. Activity 110 - New Exam This activity will require

Activity 110 - New Exam

This activity will require the nurse that escorted our patient to go get the C O W unit and bring it to the patient, where they will both be involved with the patient for 8 minutes.

While Highlighting activity 100, click the Add button above the activity list. Add button above the activity list.

In the Milestone field type “New Exam ” . New Exam” .

Change the Activity ID to 110.list. In the Milestone field type “ New Exam ” . Set the Predecessors to 100.

Set the Predecessors to 100. Change the Activity Type to Move Equipment > Process . Move Equipment > Process.

In the Process time field, type 8Change the Activity Type to Move Equipment > Process . Add Staff, and chose First Used

Add Staff, and chose First Used From Group from the first dropdown and NurseGroup1 from the second. First Used From Group from the first dropdown and NurseGroup1 from the second.

Click the Add button under the Equipment Requirement and chose the COW1 group from the dropdown. Add button under the Equipment Requirement and chose the COW1 group from the dropdown.

Check the Return checkbox in Equipment Requirement. Return checkbox in Equipment Requirement.

Check the Return checkbox in Equipment Requirement. Activity 55 - Decision Point pt. 2 Now go

Activity 55 - Decision Point pt. 2

Now go back to activity 55 and in the Next Activity Field:

In the Next Activity dropdown menu, chose the option called “Based on Probability”.2 Now go back to activity 55 and in the Next Activity Field: Set the number

Set the number of activities this decision point can chose to 2. Type the following expression {70, 60,menu, chose the option called “Based on Probability”. 30, 100} into the blue text between the

30, 100} into the blue text between

the {}. The commas are required but the white space is optional. This expression tells the Decision Point Activity that 70% of the time to chose activity 60, and 30% of the time to chose activity 100. Therefore, 70% of the patients will leave via activity 60_Departure without needing the extra exam.

Note: These percentages must add up to 100% in order for the option to work properly.

add up to 100% in order for the option to work properly. Activity 60 - Departure

Activity 60 - Departure

Because of the new activities we need to adjust activity 60's predecessors to make sure that it only executes under one of these two conditions:

1. Activity 55 choses it as its Next Activity

2. Activity 110 completed.

Therefore, do the following:

Highlight Activity 60_Departure in the list. 60_Departure in the list.

Change the Predecessor to 110 Predecessor to 110

Step 4: Add Dashboard Charts and Graphs Dashboards are a way of creating dynamic charts

Step 4: Add Dashboard Charts and Graphs

Dashboards are a way of creating dynamic charts and graphs that output important statistical information for your patients and objects.

statistical information for your patients and objects. Click on the Dashboard button in the toolbar: Click

Click on the Dashboard button in the toolbar:statistical information for your patients and objects. Click on the Pie Chart button: Click on the

Click on the Pie Chart button:and objects. Click on the Dashboard button in the toolbar: Click on the Line Graph button:

Click on the Line Graph button:button in the toolbar: Click on the Pie Chart button: and chose Patient States from the

on the Pie Chart button: Click on the Line Graph button: and chose Patient States from

and chose Patient States from the dropdown.

and Chose the Patient Census graph from the dropdown.

These graphs will update as the model runs. In the case of the Patient States graph, data collects when patients leave the model and will update then.

the model runs. In the case of the Patient States graph, data collects when patients leave

Step 5: Run the Model

Step 5: Run the Model

Introduction Tutorial 3

In this Tutorial we will build a very simple model as far as the patient is concerned, and will focus on a different set of objects. These are the item objects, which do not interact with patients directly but can execute some important functions on behalf of a patient. You will see that the purpose of the item objects is to handle the flow and processing of items, which represent some kind of physical entity, such as paper work or lab samples.

Concepts You Will Learn

Working with Item Objectssuch as paper work or lab samples. Concepts You Will Learn Constructing a Track to take

Constructing a Track to take item objects into accountsamples. Concepts You Will Learn Working with Item Objects The Scenario The model you will build

The Scenario

The model you will build will stand alone from the previous two tutorials. It will consist of a very simple scenario where a patients arrive directly to a patient processing object, patients will have a lab sample drawn from them as part of their track. The sample will be divided into 3 parts, representing 3 separate tests that need to be performed. When all 3 tests are complete, the results will be reviewed with staff, after which the patient will be allowed to leave.

Tutorial 3

There are essentially two ways to simulate lab events in FlexSim Healthcare; abstract and non-abstract. Sometimes in a model you may find it preferable to approaching the simulation of a lab process as an abstract event within the patient track. You would usually take the abstract approach if the waiting time, travel time, staffing or other constraints on the lab sample is immaterial to the results of your model.

In this tutorial we will take a focused look at using Item-class objects to model the scenario of taking a lab sample and processing it according to its own logic. Here we will take the non-abstract approach where the patient track does’t “know” how long the process of the sample will take and sample is allowed to follow its own set of logic before syncing back up with the patient .

Step 1: Create Model Layout

Open the Library . Library.

Create a Patient Arrivals object. Patient Arrivals object.

Create a Patient Exit object. Patient Exit object.

Create a Patient Processing object. Patient Processing object.

Create a Staff Group object. Staff Group object.

Create an Item Queuing object, change its shape to a table and name it LabQueuing . Item Queuing object, change its shape to a table and name it LabQueuing.

Create an Item Separating object, and name it LabSeparation . Item Separating object, and name it LabSeparation.

Create 3 Item Processing objects; change their names LabProcessing1 , LabProcessing2 , LabProcessing3 . Item Processing objects; change their names LabProcessing1, LabProcessing2, LabProcessing3.

Create an Item Combining object and name it LabCombining Item Combining object and name it LabCombining

Create an Item Exit object. Item Exit object.

Close the Library.and name it LabCombining Create an Item Exit object. Place the objects as shown below: Step

Place the objects as shown below:Create an Item Exit object. Close the Library. Step 2: Flowcharting Notice that our Item-class objects

object. Close the Library. Place the objects as shown below: Step 2: Flowcharting Notice that our

Step 2: Flowcharting

Notice that our Item-class objects do not appear in the Flowcharting view. Connections that dictate flow for Item-class objects are handled on a per-object basis from their properties , and will covered in Step 4.

Step 3: Create Track Activity 10 - Arrival On the Activities tab, click the Add

Step 3: Create Track

Activity 10 - Arrival

On the Activities tab, click the Add button above the Activity List column. Add button above the Activity List column.

Choose Arrival from the Milestone list. Arrival from the Milestone list.

From the Activity Type list, choose Patient Travels Unattended . Patient Travels Unattended.

From the Patient Destination list, choose BedArea Patient Destination list, choose BedArea

. From the Patient Destination list, choose BedArea Activity 20 - Draw Sample Click the Add

Activity 20 - Draw Sample

Click the Add button Add button

From the Milestone list, select Labs . Labs.

From the ActivityType list, select Process > Send Item. Process > Send Item.

From the Item Destination , select LabQueuing . Item Destination, select LabQueuing.

In the Process Time field, enter 5. Process Time field, enter 5.

Add Staff to the Staffing Requirement, and chose StaffGroup1 from the first dropdown and Any Member from the second. StaffGroup1 from the first dropdown and Any Member from the second.

Take note of the Assigned Activity ID Field but leave it blank for now. You will come back to Assigned Activity ID Field but leave it blank for now. You will come back to it later. The purpose of this field is to allow the Item processes to "sync" back with the patient that created the item.

Activity 30 - Review Results Click the Add button above the activity list. Set the

Activity 30 - Review Results

Click the Add button above the activity list. Add button above the activity list.

Set the Activity Type dropdown menu to Process Process

Type ReviewResults in the Milestone Field . ReviewResults in the Milestone Field .

Disable Predecessors for this activity by unchecking the checkbox next to the Predecessor field. (This is very similar to what you would have done in Tutorial2 with regards to the activities selected by the Decision Point activity).to Process Type ReviewResults in the Milestone Field . Add Staff, and chose First Used From

Add Staff, and chose First Used From Group from the first dropdown and StaffGroup1 from the second. First Used From Group from the first dropdown and StaffGroup1 from the second.

from the first dropdown and StaffGroup1 from the second. Activity 40 - Departure Click the Add

Activity 40 - Departure

Click the Add button to add an activity to this track. Add button to add an activity to this track.

Use the Milestone Departure . Departure.

From the ActivityType list, select Patient Travels Unattended . Patient Travels Unattended.

From the Patient Destination list, select PatientExitArea . PatientExitArea.

Go back to Activity 20 , and in the Assigned Activity ID type 30. Activity 20, and in the Assigned Activity ID type 30.

Click OK to apply the changes. OK to apply the changes.

Step 4: Setting up the Lab Objects Lab Queuing The LabQueuing object will serve as

Step 4: Setting up the Lab Objects

Lab Queuing

The LabQueuing object will serve as the place where lab sample will be sent to await processing. Double click the object to bring up its properties. The only changes to the object's properties we need to make are to the Connections tab, which allows us to determine where samples will be sent from this point. Read more about the Item Queuing object here.

Connections

Click Connections tab Connections tab

Click the Output Button on the top right of the window Output Button on the top right of the window

Highlight the LabSeparating object in the left hand list. This list shows all other Item-class objects currently LabSeparating object in the left hand list. This list shows all other Item-class objects currently in the model.

Click the Left to Right Push Left to Right Push

currently in the model. Click the Left to Right Push button between the two lists. This

button between the two lists. This will make the ItemSeparating object an outbound destination from

the Queuing object.

The LabQueuing object does not require any inbound connections in this example.object an outbound destination from the Queuing object. Lab Separating The LabSeparating object is able to

does not require any inbound connections in this example. Lab Separating The LabSeparating object is able

Lab Separating

The LabSeparating object is able to take an item and make copies of it. It can be given a process time to simulate the time it takes to make copies, an expression to dictate how many copies to make, and manage its connections like the Item Queuing object. In This scenario the Item

Separating object will give us a way to turn one sample in many, as in the case of needing to do multiple tests on a single lab specimen. Read more about Item Separating here.

Process Settings

Click the Process time dropdown menu, and in the blue text type 5. Process time dropdown menu, and in the blue text type 5.

Process time dropdown menu, and in the blue text type 5. Separation Settings Click the Separator

Separation Settings

Click the Separator Tab Separator Tab

Click the Split button. Split button.

Click the Split or Unpack Quantity dropdown menu, and choose By Expression from the list Split or Unpack Quantity dropdown menu, and choose By Expression from the list

Type 3 into the blue text.dropdown menu, and choose By Expression from the list Connections Click Connections tab Click the Output

By Expression from the list Type 3 into the blue text. Connections Click Connections tab Click

Connections

Click Connections tab Connections tab

Click the Output Button on the top right of the window Output Button on the top right of the window

Highlight all 3 the LabProcessing objects in the left hand list. LabProcessing objects in the left hand list.

Click the Left to Right Push button Left to Right Push button

all 3 the LabProcessing objects in the left hand list. Click the Left to Right Push

between the two lists.

Lab Processing The LabProcessing objects will serve as the place where the actual tests on

Lab Processing

The LabProcessing objects will serve as the place where the actual tests on our Patients sample will be done. They have the ability to process an item for a specified amount of time. They may process automatically, or while requesting staff. To read more about the Item Processing object read here.

Process Settings

Click the Process time dropdown menu, and in the blue text type 7. Process time dropdown menu, and in the blue text type 7.

Process time dropdown menu, and in the blue text type 7. Connections Click Connections tab Click

Connections

Click Connections tab Connections tab

Click the Output Button on the top right of the window Output Button on the top right of the window

Highlight the LabCombining object in the left hand list. LabCombining object in the left hand list.

Click the Left to Right Push button Left to Right Push button

Highlight the LabCombining object in the left hand list. Click the Left to Right Push button

between the two lists.

Lab Combining The Item Combining object can serve as a compliment to the Item Separating

Lab Combining

The Item Combining object can serve as a compliment to the Item Separating object. Where the Separating object can take Items apart, the Combining object can put them back together. The Item Combining object has a Process time just like the Separating and Processing objects do. The Combining object can combine Items in two ways, Joining and Packing. Joining involves taking multiple Items and turning them into one Item. Packing is taking multiple Items and putting them inside a container, such as placing boxes inside of a larger box. You may wish to read more about the Item Combining object’s functions here.

Process Settings

Click the Process time dropdown menu, and in the blue text type 0. this means the combination Process time dropdown menu, and in the blue text type 0. this means the combination process will happen instantly.

Combine Settings

On the Combine Mode dropdown menu, chose Join.combination process will happen instantly. Combine Settings Take note of the Components list table. Though we

Take note of the Components list table. Though we don't need to make any changes to these settings in this tutorial, it would be good to read what it does here . here.

this tutorial, it would be good to read what it does here . Connections Click Connections

Connections

Click Connections tab Connections tab

Click the Output Button on the top right of the window Output Button on the top right of the window

Highlight the LabExit object in the left hand list. LabExit object in the left hand list.

Click the Left to Right Push button Left to Right Push button

Click the Left to Right Push button between the two lists. Lab Exit The purpose of

between the two lists.

Click the Left to Right Push button between the two lists. Lab Exit The purpose of

Lab Exit

The purpose of the LabExit is to take all the Items out of the model when they are done with their process, much like the Patient Exit object. In our example we will use this object to signify the end of the Lab Processing, and cause it to start the review results activity in the Patient track. Thus, we synchronize the Track process with the Item processing. Read more about the Item Exit here. The section dealing with Triggers would be especially helpful.

OnEntry Trigger

In simple terms a trigger is provided as away to execute custom behaviors when key events in your mode happen. The OnEntry trigger will fire whenever an Item arrives to the object. We will use this event to cause the next activity for our patient to take place.

Click theto cause the next activity for our patient to take place. Choose Start an Activity .

Choose Start an Activity . Take note of the editable blue text options but do not Start an Activity. Take note of the editable blue text options but do not change them

of the editable blue text options but do not change them button to show a list

button to show a list of common modeling logic for this trigger.

text options but do not change them button to show a list of common modeling logic

Step 5: Run the Model

Note: In this example the Patient has no activities to execute while the Items are

Note: In this example the Patient has no activities to execute while the Items are in process.

Tutorials 4 and 5 Introduction

Introduction

The purpose of these small tutorials is to help you get very familiar with Paths. We will build two small models that incorporate paths. For additional practice see if you can incorporate Paths into Tutorial2.

Walking paths are an aid to your model that allow you to designate valid paths that Patients, Staff and Transport resources will use when executing a travel activity. With no Paths available, these mobile resources will take the shortest distance between two points or objects. Adding paths adds extra, more realistic behavior to your model.

Concepts You Will Learn

realistic behavior to your model. Concepts You Will Learn Creating and Editing Paths Connecting Objects to

Creating and Editing Paths

Connecting Objects to Paths Disconnecting Objects from Paths Creating Paths that Branch Editing Objects to Use Paths You may find it valuable to read Interacting with Paths before proceeding to tutorials 4 and 5.

Objects to Use Paths You may find it valuable to read Interacting with Paths before proceeding
Objects to Use Paths You may find it valuable to read Interacting with Paths before proceeding
Objects to Use Paths You may find it valuable to read Interacting with Paths before proceeding
Objects to Use Paths You may find it valuable to read Interacting with Paths before proceeding

Interacting with Paths

Laying Out a Path

Note: Due to changes in the interface from version 2.01 and on, paths are now

in the interface from version 2.01 and on, paths are now created by clicking the technique

created by clicking the

technique of creating, editing, and using the paths has not changed.

button in the Library. The

Paths are created the same way other objects in FlexSim Healthcare are created. To create a path, select the Path object in the library, then click inside the Model View. Every time you click in the model view, a node will be created and it will be connected to the last node you created. To stop creating nodes, click the right mouse button. After clicking the right mouse button, you will still be in path creation mode, but the next node you create will not be connected to the previous node.

node you create will not be connected to the previous node. Example Connecting Objects to a

Example

Connecting Objects to a Path

There are two methods for connecting objects to the path. Double click the object to bring up its properties, and check the checkbox "Connect to Path". The Object will then connect itself to the node closest to its upper left hand corner Alternatively, Highlight the node you wish to be connected to the object, then click the object. A green connection line will appear if the connectionw as created properly. Any object that will be traveled to from a path must be connected to the path.

Examplebe traveled to from a path must be connected to the path. Disconnecting Objects from a

Disconnecting Objects from a Path

To disconnect an object from a path, repeat the process used to connect the object to the path. Highlight the node, then click the object, or use the Properties window. The green connection line will disappear.

Properties window. The green connection line will disappear. Example Creating a Branch in a Path To

Example

Creating a Branch in a Path

To create a branch in the path, highlight the node you wish to branch from, and click where you want to create the new node.

a branch in the path, highlight the node you wish to branch from, and click where

Example

Editing Staff to Use Paths

To connect staff to the path, double-click on the Staff Group object, and in the Properties window check the Connect to Path Network checkbox. This will connect the Staff Group object to the nearest node.

Examplewill connect the Staff Group object to the nearest node. Changing the Appearance of Paths To

Changing the Appearance of Paths

To change the appearance of paths in your model, double click a node to access its properties and click the Toggle Display Mode button. You may also use a keyboard shortcut to cycle through the models; press and hold the X key, then left-click any node. There are six modes to choose from, and you can find out which you like best by experimenting. These different display modes are demonstrated below.

Examplefrom, and you can find out which you like best by experimenting. These different display modes

Tutorial 4

Introduction

In this tutorial, You will create a Patient Arrivals object and a Patient Exit object, and connect them with a path. This model will teach you how to create a simple path and how to connect objects to a path.

Step 1: Create and Layout the Objects

Open the Library . Library.

Create a Patient Arrivals object and a Patient Exit object. Patient Arrivals object and a Patient Exit object.

Create a StaffGroup. StaffGroup.

Place them as shown below.object and a Patient Exit object. Create a StaffGroup. Close the Library . Step 2: Create

Close the Library . Library.

StaffGroup. Place them as shown below. Close the Library . Step 2: Create the Path Select

Step 2: Create the Path

Select the Path object in the Library . Each time you click in the model, a node Path object in the Library. Each time you click in the model, a node will be created, and will be connected to the last node, creating a path.

Create a path as shown below with 5 nodes, making somewhat of a "W" shape.. Each time you click in the model, a node will be created, and will be

Step 3: Connect the Objects to the Path In order for our patients and staff

Step 3: Connect the Objects to the Path

In order for our patients and staff to be able to use a path, it needs to be connected to every object that they will have to travel to.

methods for connecting objects to a Path; You may double click the object to get it's properties and check the "Connect to Path" box, or while the path creation mode is active on the mouse cursor, click the node and then the object. You will see a green line appear between the object and its node In the first method, the node closest to the upper left hand corner of the 3D object will be connected to the object

There are two

the 3D object will be connected to the object There are two Connect the Patient Arrivals

Connect the Patient Arrivals object and the Patient Exit object to the path.

Connect the StaffGroup to the Path
Connect the StaffGroup to the Path

Connect the StaffGroup to the Path

Step 4: Create the Patient Track In this model, our track will only have one

Step 4: Create the Patient Track

In this model, our track will only have one activity: Arrival. The patient will enter, travel along the path, and exit.

button, then by clicking the Edit Track button. Edit Track button.

Click the Add button to add an activity to the track. Add button to add an activity to the track.

From the Milestone Marker list, choose Arrival . Milestone Marker list, choose Arrival.

From the ActivityType list, choose Escort Patient > Process . ActivityType list, choose Escort Patient > Process.

From the Patient Destination list, choose PatientExitArea . Patient Destination list, choose PatientExitArea.

Click the Add Button under Staff Requirment. Select the Staff Group under the first dropdown and Any Member from the Second. Staff Group under the first dropdown and Any Member from the Second.

Click OK to apply the changes and close the Track Editor. OK to apply the changes and close the Track Editor.

Step 5: Connect Objects Open the Flowcharting tool to create the necessary object connection to

Step 5: Connect Objects

Open the Flowcharting tool to create the necessary object connection to allow patients to move through the model.

connection to allow patients to move through the model. Step 6: Reset and Run the model

Step 6: Reset and Run the model

Reset and Run the model. Watch to make sure that the patient travels along the paths to get to the exit