ATTENTIONThis 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 |
#1
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
Quote:
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
|
||||
|
||||
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
|
|||
|
|||
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
|
||||
|
||||
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
|
|||
|
|||
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
|
|||
|
|||
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. |
#9
|
||||
|
||||
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); } } |
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 |