ATTENTION

This FlexSim Community Forum is read-only. Please post any new questions, ideas, or discussions to our new community (we call it Answers) at https://answers.flexsim.com/. Our new Question & Answer site brings a modern, mobile-friendly interface and more focus on getting answers quickly. There are a few differences between how our new Q&A community works vs. a classic, threaded-conversation-style forum like the one below, so be sure to read our Answers Best Practices.


flexsim.com

Go Back   FlexSim Community Forum > FlexSim Healthcare (HC) > FlexSim HC: Q&A
Downloads

FlexSim HC: Q&A Questions about FlexSim Healthcare

  #1  
Old 07-10-2013
Neo YiFeng Neo YiFeng is offline
Flexsim User
 
Join Date: May 2013
Posts: 13
Downloads: 0
Uploads: 0
Thanks: 7
Thanked 0 Times in 0 Posts
Rep Power: 85
Neo YiFeng is on a distinguished road
Default Appointment timing

Hi All,
I'm currently simulating a clinic that gives same day appointment timing to patients.
Is there a way to set the next available appointment timing to each patients after they passes through Registration?

Cheers!!
  #2  
Old 07-11-2013
Pongjetanapong Pongjetanapong is offline
Flexsim User
 
Join Date: Jul 2013
Posts: 19
Downloads: 5
Uploads: 0
Thanks: 8
Thanked 2 Times in 2 Posts
Rep Power: 85
Pongjetanapong is on a distinguished road
Default

I Think you can use trigger to assign appointment time (can be selected from drop down list)
The Following User Says Thank You to Pongjetanapong For This Useful Post:
Neo YiFeng (07-13-2013)
  #3  
Old 07-13-2013
Neo YiFeng Neo YiFeng is offline
Flexsim User
 
Join Date: May 2013
Posts: 13
Downloads: 0
Uploads: 0
Thanks: 7
Thanked 0 Times in 0 Posts
Rep Power: 85
Neo YiFeng is on a distinguished road
Default

Quote:
Originally Posted by Pongjetanapong View Post
I Think you can use trigger to assign appointment time (can be selected from drop down list)
Hi,
I did though of using trigger for this, however, I do not know where to asign the trigger to,
Please do help, Thanks!

-Yifeng
  #4  
Old 07-29-2013
Bill Nordgren's Avatar
Bill Nordgren Bill Nordgren is offline
Administrator
 
Join Date: Jul 2007
Posts: 86
Downloads: 123
Uploads: 2
Thanks: 38
Thanked 184 Times in 35 Posts
Rep Power: 362
Bill Nordgren has much to be proud ofBill Nordgren has much to be proud ofBill Nordgren has much to be proud ofBill Nordgren has much to be proud ofBill Nordgren has much to be proud ofBill Nordgren has much to be proud ofBill Nordgren has much to be proud ofBill Nordgren has much to be proud of
Default

If you look under the "Activity Finished Trigger" in the advanced functions for the registration activity you will find and option "Assign Appointment Time" (Version4.02) that will help you assign the appointment time for the patient. You will need to know the postponment time for the patient to get to the new clinic (or same clinic). You will need to setup a reservation table that shows the available slots and time.

I hope this helps you out.
The Following User Says Thank You to Bill Nordgren For This Useful Post:
Neo YiFeng (07-31-2013)
  #5  
Old 07-30-2013
Neo YiFeng Neo YiFeng is offline
Flexsim User
 
Join Date: May 2013
Posts: 13
Downloads: 0
Uploads: 0
Thanks: 7
Thanked 0 Times in 0 Posts
Rep Power: 85
Neo YiFeng is on a distinguished road
Default Help Me

Would it be possible for you to show me an example ? I understand the technical terms of the solution but i'm not able to apply it in to the software. Thanks and sorry for the trouble caused.
  #6  
Old 07-30-2013
Cliff King's Avatar
Cliff King Cliff King is offline
Vice President Technical Services
 
Join Date: Jul 2007
Location: Utah
Posts: 272
Downloads: 158
Uploads: 14
Thanks: 102
Thanked 304 Times in 110 Posts
Rep Power: 412
Cliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud of
Default

Yifeng,

I will try to find time to put a sample together for you, but my time is limited right now. Maybe the following explanation will help you proceed in the mean time...

The "Assign Appointment Time" picklist option found in the Activity Finished Trigger is used for assigning an available appointment time to a patient dynamically during the model run. The "Postponement Time" specified in the picklist option is a user-specified number of minutes delay before an appointment can be set up for the patient. For instance, if the current simulation time in minutes is 480 (8 AM), and the postponement time is 60 minutes, then the earliest time the patient could be schedule for an appointment would be 540 minutes. If after a scan of the global table containing a list of appointment times, the first available time slot after 540 was an appointment slot with a start time of 630 minutes, then the value of 630 will be recorded on the "appt_time" label of the patient.

It is the responsibility of the user to create and populate the global table properly for use by the "Assign Appointment Time" picklist option. The global table is an appointment schedule where each row in the table represents an appointment slot. For an 8-hour day with 30 minutes time slots, the table would need to have 8 * 2 = 16 rows. The table requires two columns. Column 1 should be populated with appointment start times in minutes, and column 2 should be populated with a slot status. The following slot status values apply: 0=unavailable, 1=available, 2=reserved. Therefore, column 2 of the table should be pre-populated with either a 1 or a 0. The user would put a 1 in the column for all appointment slots that are available to schedule a patient into, and a 0 should be entered for those time slots that cannot be scheduled such as lunches and breaks. It is also the responsibility of the user to reset column 2 of the global table to its initial state every time the model is reset. This is necessary because the table gets dynamically updated during the run as appointments are scheduled for the patients, and therefore needs to be set back to its initial state for the start of the next run. This can be done in Tools > Model Triggers > On Reset.

In order for the "Assign Appointment Time" option to work properly, the user must also create the following three numeric labels on each patient using the Patient Classification tab of the Track Manager: "postponement_time", "appt_time", "appt_row". The names of these labels must of course match the names of the labels specified in the "Assign Appointment Time" picklist option.

As the model runs, the "Assign Appointment Time" function will be executed at the point in the patient's flow where the same-day appointment needs to be set up for the patient (i.e. activity finished trigger of the registration activity in the track). The function will look for the first available time slot in the table which has an appointment start time occurring chronologically after the current simulation time plus the postponement time. The appointment time as read from column 1 of the table will be recorded on the patient's "appt_time" label. The row number in the global table associated with the assigned appointment time will be recorded on the "appt_row" label, and the actual postponement time specified by the user will be recorded on the "postponement_time" label. The user may not need the information recorded on all three labels, but the information is recorded nonetheless. After the function chooses an appointment time slot for the patient, it will write a 2 in column 2 of the global table to mark that time slot as reserved so that future patients during the run do not get assigned to it. This is the reason that the model reset code needs to reinitialize the table by converting all 2's found in column 2 to 1's.

Now it is up to the user how the information recorded on the labels is utilized by the model to accomplish the user's objective. One approach would be to use the value of the patient's "appt_time" label to define an activity process time that will delay the patient for the period of time leading up to their actual appointment time. The user may choose to route the patient to a waiting room, and then "process" the patient for the proper amount of time prior to their scheduled appointment time. The following expression could be used for the delay activity's process time: getlabelnum(patient, "appt_time") - getsimtime() minutes.

Please let me know if this is sufficient information for you to continue with your model. If you do finish the model, would you please post it for the benefit of other users?

Thanks,

Cliff
The Following User Says Thank You to Cliff King For This Useful Post:
Neo YiFeng (07-31-2013)
  #7  
Old 07-31-2013
Neo YiFeng Neo YiFeng is offline
Flexsim User
 
Join Date: May 2013
Posts: 13
Downloads: 0
Uploads: 0
Thanks: 7
Thanked 0 Times in 0 Posts
Rep Power: 85
Neo YiFeng is on a distinguished road
Default

Hi Cliff,
Thank you for the detailed explanation.
I will try my simulation piece base on your explanation, and will upload an example after it's done.
I've currently tried till the part where appt_time - current simutime. I'm getting error in the area, as saying "patient is unknown". Will look into it.
  #8  
Old 08-02-2013
Neo YiFeng Neo YiFeng is offline
Flexsim User
 
Join Date: May 2013
Posts: 13
Downloads: 0
Uploads: 0
Thanks: 7
Thanked 0 Times in 0 Posts
Rep Power: 85
Neo YiFeng is on a distinguished road
Default An Uploaded Example

Hi Cliff,

I have attached an example of the appointment timing that i have done through your instruction. However, I do not know to do the OnReset Trigger. My Apologies.
Attached Files
File Type: fsm Appt Timing Example.fsm (71.2 KB, 83 views)
  #9  
Old 08-14-2013
Cliff King's Avatar
Cliff King Cliff King is offline
Vice President Technical Services
 
Join Date: Jul 2007
Location: Utah
Posts: 272
Downloads: 158
Uploads: 14
Thanks: 102
Thanked 304 Times in 110 Posts
Rep Power: 412
Cliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud ofCliff King has much to be proud of
Default

If the name of your global appointment log table was called "ApptLog", then the following code would be sufficient:

Code:
for(int j=1; j<=gettablerows(ApptLog); j++)
{
	if(gettablenum(ApptLog, j, 2) == 2)
	{
		settablenum(ApptLog, j, 2, 1);
	}
}
I've made these changes in the following model: Appt Timing Example.fsm


Thread Thread Starter Forum Replies Last Post
Timing on Conveyor CasimiraFederspiel Q&A 4 06-09-2011 10:58 AM
Ever lost a post due to the forum timing out? Ben Wilson Tips and Tricks 0 01-18-2010 10:39 AM


All times are GMT -6.
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.
Copyright 1993-2018 FlexSim Software Products, Inc.