question

Karen Measells avatar image
1 Like"
Karen Measells asked Ryan Clark commented

Waiting room companion in HC 2022

Hi - I'm modeling a registration/waiting room area, and I need to account for the patients before their procedure and the companion(s) before and during the procedure. Can you direct me to some resources to help? All of the posts I found are for the earlier version of the HC package.

Thanks-

Karen

FlexSim HC (other - please specify)
FlexSim HC (other)
patient companions
· 1
5 |100000

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

Ryan Clark avatar image Ryan Clark commented ·

Hi @Karen Measells, was Regan Blackett's answer helpful? If so, please click the "Accept" button at the bottom of their answer. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always unaccept and comment back to reopen your question.

0 Likes 0 ·

1 Answer

Regan Blackett avatar image
2 Likes"
Regan Blackett answered

See the attached model for an example how to approach this problem. Companions Demo.fsm

There’s going to a few different ways to approach Companions, but at the core of any approach is going to be:

  1. Create additional people with a relationship to the original patient.
  2. Give those people additional activities to do while the patient is engaged in their care process.
  3. Synchronize the companions with the end of the patient’s process so that patients and their companions all leave at the same time.

For the first point, I would approach this from within the patient’s own flow of activities, because it makes the second and third points a little easier.

You also will need to decide how many additional companions per patient to create. If the number of companions per patient is fixed, you can take one approach that is more simple, if it varies per patient it can be little more complicated but more flexible.

For the example I’m going to show I’m going to assume that the number of companions per patient is random, which is more complicated but probably more realistic.

When the patient is created a token is placed into the patient flow to represent and control their behavior, we will need to create tokens for each companion associated with the patient too, for the same reason.

At the Source activity in the patient flow I would begin by adding a label to the patient’s token that will represent the number of companions assigned to the patient using a statistical distribution (or any other means that makes sense).

Next I would use a Create Tokens activity to create a token to represent each companion. In the activity properties the Destination is a Create Patient activity to create Person objects to correspond to these new tokens, and the Quantity is the label that was set in the previous step.

From there, the patient’s token continues to execute whatever process they would normally do. In separate set of activities I define what I need the companions to do. In the Create Patient activity, we need to manage how the companions are referenced; normally this would be done by assigning a label to the original patient, but instead I’d recommend assigning a label to the tokens called “token.PatientCompanion” or other useful name to let you know this label relates to the newly created companion.

Next you would need these companion tokens to acquire a spot in the model’s waiting room, which you can do with a standard Location Resource. You could even start with a simple HC Activity Set from the library if you want to use that as a starting point. All you really need though is a Location resource that represents the waiting room and an Acquire Location activity that the companion tokens can go to.

In the Acquire Location activity you will need to make some changes under the Advanced section of properties. Set the “Assign to” field to say token.CompanionLocation and the Puller to token.PatientCompanion. You may then use a Walk activity with the Person field set to token.PatientCompanion and the Destination set to the acquired location from the waiting room.

Now we need to tell the companions to stay in the waiting room until the patient is done with their process, there are a few different options for handling this kind of a synchronization. The way I did is hopefully a pretty simple approach to follow. I sent the companion tokens to a Decide activity with the Send Token To field set to “Do not release token” from the drop down menu. After the Decide I have another Walk activity that sends the companions to the exit, and a Release location activity to give up their waiting room chairs, and finally a Remove Patient activity to remove the companions from the model. Note in the Release Location activity the Label field is set to be the same as the Assign to field of the Acquire activity.

In the main patient flow I need a way for the patient to signal their companion’s tokens to leave the Decide activity. For that I use a Release Tokens activity that looks at the Decide activity and releases whatever tokens are there. The Release To field says “1” to indicate the tokens at the Decide should leave through its first connector.

One thing to watch out for at the end of this approach is that the companions to need to be removed from the model before the patient otherwise the companions don’t get removed and we get errors. Depending on how much detail you want to go into on the visuals the synchronization method has to account for this too. I’m taking a simple approach where as soon as the staff begins escorting the patient to the exit the companions are allowed to leave the model.

Hope this helps!


companions-demo.fsm (319.7 KiB)
5 |100000

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