question

Nathan H5 avatar image
0 Likes"
Nathan H5 asked Jacob W2 commented

Logic to create many provider schedules or appointment schedules

I am working on a healthcare model for an outpatient clinic. Patients come to see their provider for an exam then see a nurse to complete other tasks. Patients have a specific appointment time and provider they are seeing. I have over 20 providers I need to include in the model and be able to add or remove some for different scenarios. I don’t believe the excel file they provided is in a good format to import directly as it is set up like the table below but larger and across multiple tabs.

Time

Dr. Smith

Dr. Jones

Dr. Chopper

8:00 am

Any

Any

Consult

8:30 am

Consult

Any

9:00 am

Any

Any

Due to the number of providers and patients I don’t want to have to manually create an arrival table or activity for each provider. Is there any logic or method of importing information that would allow me to get this information into the model a bit easier? Even if just a part of it could be imported or set up that would be great.

Thanks in advance!

Nathan

FlexSim 23.2.2
flexsim healthcareschedulesappointment scheduleprovider schedules
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

1 Answer

Jacob W2 avatar image
0 Likes"
Jacob W2 answered Jacob W2 commented

Hi @Nathan H5

I've put together a small model that uses FlexSim's internal table validation tool that may help solve your problem.

I created a small excel sheet with multiple merged cells like the one that you showed in your question, and when imported into FlexSim it looks like the following image.

imported.png

I then created a new table validation tool in the toolbox that looks through the entire table, if the value isn't a string it will create a popup saying there was bad data in the table, and then change all of those values to closed. This works great if all of the merged cells are the same (i.e. all are closed or blocked), but It currently doesn't have a way to handle more than a single type of merged cell.

The final result after running the table validation is shown below.

post-validation.png

As noted above, this would work well with the given case of all blocked cells being having the same value, however if it doesn't quite work out like that I would recommend having the team that sent you the data update it to have each block of time use a single value instead of merging cells together.

I am attaching my model and the excel file for you to look at.


Table validation.fsmBook1.xlsx


imported.png (5.3 KiB)
book1.xlsx (8.9 KiB)
· 2
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Nathan H5 avatar image Nathan H5 commented ·
Thanks for this example. I think this could help get it into a global table, but is there anyway that I would then be able to use that global table to make an actionable schedule from? Ultimately I want to be able to transform that into an arrival schedule since my providers schedule is the appointment types not just open or closed to see patients. My end goal is to have this populate the arrivals of patients for those providers. Could I use any kind of code to read those as "open" to be a patient arrival?
0 Likes 0 ·
Jacob W2 avatar image Jacob W2 ♦ Nathan H5 commented ·

Hi @Nathan H5,

I have updated the model I shared earlier with a simple system to turn the "open" time blocks into times when patients arrive in the model. I started by creating a person process flow, and then changed how the arrivals worked.


Now one token is created for each column in the global table, this token represents each doctor's schedule throughout the day. It starts by reading the first row of the table for the matching doctor's column, and if it says open, it will create a patient, and then wait for a set amount of time that represents the length of a single time block, in the case of this model that is 30 seconds. Once that time has passed, the token then updates which row it is looking at and creates a patient if the doctors schedule is "open." If the table isn't open then no patients are created, and the token will wait for the next time block to check again.


I also added simple logic flow for the patients to sit and wait and then leave.


ValidatedSchedule.fsm

0 Likes 0 ·