question

Chris Knorr avatar image
0 Likes"
Chris Knorr asked Cliff King edited

Reduced activity levels for specific staff and output data

Is there a way to identify the total number of procedures for specific staff members and a single activity? My goal is to understand how many times each staff member completes an activity and then plot it on a dashboard. Also, is there a way to restrict the number of times a specific staff member can complete an activity? For example, a manager is only going to complete a task 100 times a year while is no restriction for all other staff.

staff utilization
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 Cliff King edited

I'm thinking you're going to need to keep track of the number of times a staff member completes an activity by using your own counter. Your "counter" can be a label on the staff, or an array of global variables, or simply a global table. I'd probably opt for using a global table to keep track of the counters ,because it sounds like you're going to want a two dimensional array of counters. For instance, you could use each row of a global table to keep track of all the counters for a specific staff member, and each column of the table would represent the counters associated with a specific activity.

With some creative use of our Custom Data Collectors and User-Defined graphs you may be able to come up with a way to display the information you're looking for within a dashboard, but personally I wouldn't bother with all the extra work and would just use the global table itself as the way to display the information. Global tables can be dynamically updated during the simulation run and the cell values in the table display will update and be visible on the fly as well.

There is a standard pick list option available in various triggers throughout the software called "Increment Table Cell" which you could use to increment a particular cell of a table. To increment the table cell associated with a specific activity of a specific staff member, you will need come up with a scheme for determining the correct table row number for a given staff member and the correct table column number based on the activity, so you probably will want to write the script yourself using the "Custom Code" option for the trigger field.

Here's an expression you could use in an Activity Finished Trigger field to increment a counter if you like. The expression assumes that staff members already have a label named "RowNum" defined on them that has been set with the row number in the global table named "ProcedureCounters" that you want associated with the particular staff member. I'm also assuming that the expression is written in the Activity Finished Trigger field of the an activity that is associated with column 3 of the global table:

inc(gettablecell(ProcedureCounters, getlabel(resource,"RowNum"), 3), 1);

As for adding a restriction so that a particular staff member cannot be called to perform an activity if their procedure count for that activity exceeds a certain number, I can think of a couple different approaches depending on the scope of the problem. You could either use a Decision Point activity to direct the logic to one or more predefined activities that have been set up with different staffing requirements based on the counter value looked up out of the ProcedureCounters table, or use the "Configurable Selection Policy" option in the "Member Selection Policy" field of the staff group objects affected by the special max procedures restriction.

Let me know if there's anything you don't understand, and I'll do my best to clarify.

· 6
5 |100000

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

Chris Knorr avatar image Chris Knorr commented ·

@Cliff King, thank you for the explanation, but I believe the idea may be beyond my level of expertise. As I understand it, I will need to assign a String "LabelName" of "RowNum" to the staff group that I want to track. Then I will create a Global Process called "ProcedureCounters." Within the track for the activity I want to count, I should add the "Code Snippet" to the "Activity Finished Trigger." Once I've completed those tasks, where do I see the output for each staff member?

The restriction is also a little confusing, but my understanding is that I should select that resource that should have less than 100 activities a year. Under that individual's "Resource Request Selection Policy," I should select a "Configurable Selection Policy." The selection requirement should then be "getlabel(resource, "RowNum")<101" and "Do Nothing" once that level is reached.

Thank you for the additional assistance.

0 Likes 0 ·
Cliff King avatar image Cliff King Chris Knorr commented ·

In the patient PCI table add a new label (numeric, not string) and name it RowNum.

Create a Global Table (not Global Process as you said), and name it ProcedureCounters. The number of rows you give the table depends on the number of staff members you want to track counters for, and the number of columns will depend on the number of activities you want to count occurances of.

As for "where do I see the output", you will see the output in the Global Table itself. You may keep a window open showing the global table and you will be able to see the various counters being updated in the table cells for each staff member (i.e. row) and each activity the staff member finishes (i.e. column).

0 Likes 0 ·
Chris Knorr avatar image Chris Knorr Cliff King commented ·

@Cliff King I'm still unable to get any output in the counter and uploaded an image of what I've done. I added a "Label" (column) to the PCI named "RowNum." Each staff member has their own label that begins with "RowNum..." The activity in the track that I want to count has an "Activity Finished Trigger" that includes the code you provided. The counter has a row for each staff member that matches their label and three columns due to your comment regarding the code being associated with column 3. Do you have any thoughts on what I may be missing?

Also, I haven't been able to get the restriction on the number of activities for a staff member to work. For the "FP_1_DeputyChief," I set a "Configurable Selection Policy" that has "getlabel(resource, "RowNumFP_1_DeputyChief")<101" and "Do Nothing" identified. That causes the staff member to no longer have connection to the path, so the simulation fails however.

Thank you for the assistance.

0 Likes 0 ·
Show more comments
Chris Knorr avatar image Chris Knorr commented ·

@Cliff King thank you as that partially worked. The count for the doctors aren't populating, but the assistants are. Any idea on what I may have done incorrectly? Is only one resource group able to be counted for an activity?

0 Likes 0 ·
Cliff King avatar image Cliff King Chris Knorr commented ·

If the doctors 1) have the RowNum label, and 2) are being used for an activity with the update trigger then I don't know why it wouldn't work. Go back and check to make sure 1) the RowNum labels of the doctors have unique row numbers assigned to them, and 2) the activity you want to count has an activity finished trigger expression that is properly incrementing a particular column of the table (make sure it's a unique column number in the expression associated with the particular activity).

p.s. pay attention what you are "replying" to when commenting. You keep posting "Answers" to this question, rather than commenting, or replying to the previous comment.

0 Likes 0 ·