question

Ankur A3 avatar image
0 Likes"
Ankur A3 asked Ankur A3 commented

How to acquire nearest overflow chair if available?

Hi Team,

I have MD specific patient based on schedule. There is 1 fix chair with respect to MD. In case of chair is occupied, there are overflow chairs available. Currently, overflow chair are randomly picked based on availability.

I want to achieve nearest overflow chair based on availability with respect MD regular chair. How it can be done? Also, I think current model building approach is not good for scalability. What is the best way to model if we have to add few more MDs with lesser change in model?

Thank you!

@Felix Möhlmann @Matthew Gillespie

2. OverflowLogicWithWaitingChairsV2.fsm

FlexSim 21.0.10
locationhcnearestoverflow chair
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

Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered Ankur A3 commented

In the resource that is getting pulled, there are options that let you control by what the values are ordered. "Distance" is one of the default options.

1651212698194.png

In order to use the distance between the regular chair and the overflow-chair, the "puller" in the acquire activity has to be a reference to the regular chair, as the distance will be evaluated between the pulled value and the puller.

1651212777752.png

2-overflowlogicwithwaitingchairsv2_1.fsm


· 5
5 |100000

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

Ankur A3 avatar image Ankur A3 commented ·

Thank you @Felix Möhlmann

But can you help me to understand why we are giving 2nd criteria for group rank? Also, there are 2 options available with respect to distance (distance and traveldistance). What is the major difference between them?

Suppose we want to use A* navigation with given barriers. How to find nearest location in that case?

Please find model attached for your reference.

2-overflowlogicwithwaitingchairsv2-V3.fsm

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Ankur A3 commented ·

Group Rank is the default option. I just didn't remove it.

You kind of answered your own question. "distance" is the straight line distance between the puller and object and "travelDistance" is the distance a task executer would have to travel to reach the object using its assigned travel method.

So to use it with A*, the puller would have to be a task executer rather than the regular chair (for example the MD, who should be close to the regular chair if it occupied anyway and who would have to be part of the A* members).

2-overflowlogicwithwaitingchairsv2_2.fsm

Note how the patient at 9:35 pulls the third overflow chair.

0 Likes 0 ·
Ankur A3 avatar image Ankur A3 commented ·

Ok @Felix Möhlmann.

Given model is working fine. But when I tried changing obstruction to divider, it is not choosing chair based on condition.

At the same time, Chair1 should be chosen but it is choosing chair2. Also, why patient is crossing divider but MD is not crossing?

Please find model here. 2-overflowlogicwithwaitingchairsv2-update1.fsm


0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Ankur A3 commented ·

One of the travel threshold points (points at which the navigator considers the traveler to have arrived at the destination) is on the wrong side of the divider for the 2nd and 4th overflow chair.

1651228785232.png

Move the chair farther left or use a (thicker) barrier to have all points on the correct side.

You can toggle the visibility of these points in the A* Navigator properties under "Visual" tab (Show Travel Threshold).


0 Likes 0 ·
1651228785232.png (18.0 KiB)
Ankur A3 avatar image Ankur A3 Felix Möhlmann commented ·
Thank you @Felix Möhlmann

Really appreciate you quick response!

0 Likes 0 ·