Skip to content

Conversation

@PempheroM
Copy link
Collaborator

Analyses for nurse shortages. Issue #1747

self.initial_population_size = 200
self._scenarios = self._get_scenarios()
self.number_of_draws = len(self._scenarios)
self.number_of_draws = 2
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line 29 is repeating line 28, so line 29 can be dropped, I think.

self._scenarios = self._get_scenarios()
self.number_of_draws = len(self._scenarios)
self.number_of_draws = 2
self.runs_per_draw = 2
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At least 5 runs per draw, I would suggest.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We only have 4 scenarios. If we drop line 29 and keep line 28, then len(self._scenarios) will be a total of 4. So, maybe we should keep line 29 and just set self.number_of_draws = 5?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My comment above is to about runs per draw, setting it to be 5 will enable us to get uncertainty level of results.

I may not understand your point here: if we only have 4 scenarios, then it is correct the len(self._scenarios) is 4 and our number of draws is 4. And you can check the output of _get_scenario and see if the scenarios and parameters are as you have designed.

{
"HealthSystem": {
'ResourceFile_HR_scaling_by_level_and_officer_type': "default",
'mode_appt_constraints_postSwitch': 2,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All scenarios use Mode 2 since 2025; so line 61 is enough.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This applies to all scenarios.

self._default_of_all_scenarios(),
{
"HealthSystem": {
'ResourceFile_HR_scaling_by_level_and_officer_type': "default",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is not here is implement the change of nursing cadre capabilities. It should be in the class ConstantRescalingHRCapabilities in the health system module to read the updated capabilities, and then schedule the expansion event every year from a start year to an end year (normally the simulation end) in the health system module.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This applies to all scenarios.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand you correctly, you want use to change the expansion every year. Aren't we just supposed to change yearly_HR_scaling_mode for that? Or are you suggesting that we have to re-write class ConstantRescalingHRCapabilities for yearly scaling?

Copy link
Collaborator

@BinglingICL BinglingICL Dec 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Wati, we are supposed to change year_HR_scaling_by_level_and_officer_type parameter here, such as set it to be 2025, so that the event of ConstantRescalingHRCapabilities will be scheduled on the first day in the year of 2025, meaning the expansion will happen on that day and the scaled up staff capabilities will remain onwards till the end of simulation

My comment above meant that 'ResourceFile_HR_scaling_by_level_and_officer_type' is not a health system module parameter, so we cannot modify it. Instead, we should modify 'HR_scaling_by_level_and_officer_type_mode' parameter, such as set it to be "default" or "custom" (the csv file that store the values of scaling up factors).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The parameter name of yearly_HR_scaling_mode is quite similar and can be misleading, but it is related to a default historial HRH growth from 2020 to 2024, which is not relevant to our nursing expansion from 2025 here.

"HealthSystem": {
'ResourceFile_HR_scaling_by_level_and_officer_type': "default",
'mode_appt_constraints_postSwitch': 2,
"use_funded_or_actual_staffing": "actual",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This parameter is to be untouched I think. All HRH capabilities change will be implemented by changing the values in the csv files in ResourceFile_HR_scaling_by_level_and_officer_type folder.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This applies to all scenarios.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we did this. You will notice that we changed the csv value files in the ResourceFile_HR_scaling_by_level_and_officer_type folder for scenarios Improved Staffing Doubled Establishment, Worse Case. These are associated with csv files custom_doubling.csv and custom_worse.csv respectively. Is this what you mean? Or do you mean we should delete all lines where we set ResourceFile_HR_scaling_by_level_and_officer_type?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Pemphero, here I meant to not modifying use_funded_or_actual_staffing parameter in this script, which is not necessary. So all relevant lines on this should be dropped.

It is good that we have already the csv files to modify the nursing staffing. To implement such changes, we just need to modify the HR_scaling_by_level_and_officer_type_mode as mentioned in my response to Wati.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we remove use_funded_or_actual_staffing , how best are we going to represent the scenarios where in the baseline scenario we are using the actual (filled positions) and in the improved scenario, we are using the funded_plus (staff establishment)?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Pemphero, sorry for my possible misunderstanding, but may I confirm: in your improved scenario, you will only have the nursing cadre to achieve the establishment level? Considering that all other cadres remain as current levels across all scenarios.

If so, you do not need to modify use_funded_or_actual_staffing here but to calculate the corresponding scale-up factor and store it in the csv file in the ResourceFile_HR_scaling_by_level_and_officer_type folder, and then modify the HR_scaling_by_level_and_officer_type_mode parameter.

It would be good that we have a clear diagram for all nursing expansion scenarios, specifying the expansion time/period along the simulation timeline. And we could have further discussions on this if anything unclear. (I am attaching one example from my work, which is yearly expansion from 2025 to 2034; not a one-time scaling-up at the beginning of 2025 though.)
full expansion path

}
),

"Improved Staffing":
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this scenario to scale up all cadres to meet the establishment level? If so, we need to calculate the correspondeing scaling up factors to be saved in a csv file in the folder ResourceFile_HR_scaling_by_level_and_officer_type.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems to me that this scenario consists of two parts: one is to expand nurse cadre, and the other is to expand other cadres. I think these two parts may need to be explicitly separated in the scenario definitions. By which I mean, the main variable in the problem is to change the nursing capabilities, and basing on that, consider what capability levels of other cadres are to be specified across the scenarios.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In our previous discussions, we decided to keep all other cadres constant and use historical growth (i.e., Only nurses change. Other cadres remain constant)

"HealthSystem": {
'ResourceFile_HR_scaling_by_level_and_officer_type': "default",
'mode_appt_constraints_postSwitch': 2,
"use_funded_or_actual_staffing": "funded_plus",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So in this scenario, if you want to scale up the nursing staff to the establishment level in the year of 2025: we do not use "use_funded_or_actual_staffing": "funded_plus", which will not work; instead, we create a csv file to store the scale-up factor (e.g. established nursing count/2024 nursing count) that will enable such expansion and set HR_scaling_by_level_and_officer_type_mode to the csv file name.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This applies to the next scenario where you want to increase nursing count to doubling establishment.

@@ -0,0 +1,195 @@
"""
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dear both, as an overall comment, may I confirm with you both that your targeted analysis period is 2025-2030 and in all expansion scenarios, you wanted to do a one-time scaling-up of nursing expansion in year of 2025 and then the capabilities remain till 2030?

Copy link
Collaborator

@BinglingICL BinglingICL Dec 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or do you consider a pattern of yearly growth from 2025 onwards, so that the nursing counts will meet the desired levels by the end of 2030? This would need some minor changes of the coding, especially in the health system module.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dear both, as an overall comment, may I confirm with you both that your targeted analysis period is 2025-2030 and in all expansion scenarios, you wanted to do a one-time scaling-up of nursing expansion in year of 2025 and then the capabilities remain till 2030?

Yes, the targeted analysis period is 2025-2030 in all expansion scenarios. Its supposed to be a one-time scaling-up of nursing expansion in year of 2025 and the capabilities remain untill 2030 as you have stated

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or do you consider a pattern of yearly growth from 2025 onwards, so that the nursing counts will meet the desired levels by the end of 2030? This would need some minor changes of the coding, especially in the health system module.

No

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants