question

Tee Hiett avatar image
0 Likes"
Tee Hiett asked Tee Hiett edited

get the time provider waits for another provider at a specific activity?

md-waits-for-resident.fsmIn the attached model, I would like to get the time the first provider waits at activity 220_ReadsResults for the 2nd provider.

Thanks,
Tee

FlexSim HC 5.3.4
provider waitingwait at activity
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

Cliff King avatar image
0 Likes"
Cliff King answered Tee Hiett edited

I'm not sure there is a way to get this information directly, and it's going to be difficult to get in even an "indirect" way! Although the software does a good job of recording the total time a patient has to wait for locations and resources, it only categorizes the wait by a location area and resource group, and doesn't further categorize the wait times by activity. The software also does a good job of recording the amount of time one staff member waits for another, but it doesn't categorize this wait by specific activities associated with a given wait time.

One of the problems in your model is the fact that we do not know which of the two providers will be allocated first. Currently, your model settings allow the two staff requests to be dispatched in parallel as shown below.

If you change your model settings (File > Model Settings menu) to dispatch requests sequentially as shown below, then we will at least know that the first staff member must be allocated before a request will be sent to the second staff member.

Even so, we do not have a convenient trigger in the model to record the difference in time between when the first staff member is allocated/arrives and the second staff member is allocated/arrives. If you split activity 220 into three activities: 1) allocate and keep first provider with a 0 process time activity, 2) allocate and keep the next provider with a 0 process time activity, and 3) a final activity using both allocated providers with the actual process time, then you will at least have triggers you can use to start and stop timers recorded in a global table or something. Or maybe you will be able to decipher the wait time of the first provider by simply looking at the difference between the spawn and start times for the 2nd activity that tries to allocate the second provider. The "spawned" time is when an activity initially gets kicked off by its predecessors or whatever, and the actual "start" time is the time the activity was able to allocate its first required resource.


one.png (20.8 KiB)
two.png (19.7 KiB)
· 11
5 |100000

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

Tee Hiett avatar image Tee Hiett commented ·

Cliff,

Attached is a picture of the raw data output from Sequentially_PatientHistory_v1.csv recording the wait timed associated with Activities. In looking at Activity 220_Read Results. If I am reading this I will put correctly the sequence of arrivals of the 2 providers is not important because whoever arrives first has to wait until the 2nd provider arrives. The 2nd provider does not have to wait. In this replication, the average wait time for the providers at activity 220 is 133.65/10 or 13.365 minutes and the maximum wait time is 40.62.

Does this analysis seem reasonable? rawdata.jpg

Tee

@Cliff King

0 Likes 0 ·
rawdata.jpg (203.6 KiB)
Cliff King avatar image Cliff King Tee Hiett commented ·

The PatientHistory Output file shows the time a patient spends waiting for locations/resources, not the time staff wait for other staff. It's nice that the wait times are reported separately by activity, but unfortunately, I don't think these are the wait times you are looking for. For example, in your table image, the last entry tells us that patient 31 had to wait 20.01 minutes for MDPhillips16. Only the time the patient waits for the first staff member to be allocated will be reported, that's why you never see two wait times listed for the same patient on the same activity. The time spent waiting for the first staff member of a multi-staff requirement activity is assigned to the patient as "WaitingForStaff" time, and the subsequent wait times are assigned to those staff members who have already arrived and are waiting for additional staff to arrive as their "WaitingForStaff" state time.

The wait time you are looking for is found in the StateHistory_Staff Output file which reports the time one staff members spends waiting for another staff member. This is called the "WaitingForStaff" state of a staff member. Unfortunately, only the total wait time is recorded, not the wait times associated with each activity. It wasn't possible for us to categorize the wait time of staff for other staff by activity because there are lots of other cases where one staff can wait for another staff that have no association with an activity.

0 Likes 0 ·
Tee Hiett avatar image Tee Hiett commented ·

Cliff,

When I change to "dispatch requests sequentially" in the model "md-waits-waits-for-resident" above, the model locks up with the attending waiting for the resident an the resident waiting for the attending.

Tee

@CliffKing

0 Likes 0 ·
Tee Hiett avatar image Tee Hiett commented ·

extra-exam-room-3-steps-to-read.fsm @Cliff King

Cliff,

This weekend, I worked on trying to split activity 220 into 3 activities without much success. The model keeps locking up. Would you be so kind as to look at this version of the model and give me your suggestions?

Thanks,

Tee

0 Likes 0 ·
Cliff King avatar image Cliff King Tee Hiett commented ·

Tee,

I'm on vacation through Wednesday, so I may not get to your questions as quickly as you'd like, but I did pull up your model this morning and noticed a few problems you can start to address:

  1. I see you have a Get First Provider and a Get Second Provider activity, but where's your actual processing time activity.
  2. Your Get Second Provider activity has two staff requirements and the "Based on Condition" one doesn't even reference staff. This is the cause of your gridlock by the way, because subsequent activities are referencing this requirement!
  3. Be careful with when you are keeping (red lock) and releasing (green lock) staff because it doesn't make sense to me how you've done it.

See if these changes get things working again for you, and let me know how it goes...

Cliff

0 Likes 0 ·
Tee Hiett avatar image Tee Hiett Cliff King commented ·

@Cliff King

I don't mean to interrupt your vacation. Is there someone else you could refer this case to? (BTW, Where you vacationing?)

Just to respond to your points:

1. The actual process activity is Activity 225, following the Get 2nd Provider activity.

2. I should have identified the "Based on condition" as being custom code.

3. I was trying to be careful with keeping and releasing staff in order that staff could be called for other activities rather than just waiting.

Thanks for your help with this but after a week off at the beautiful beach in Sandestin Florida you need to relax and enjoy your vacation :-).

Tee

0 Likes 0 ·
Show more comments