Skip to content

Health Impact of Realistic Consumable Availability Scenarios #1367

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 124 commits into
base: master
Choose a base branch
from

Conversation

sakshimohan
Copy link
Collaborator

@sakshimohan sakshimohan commented May 22, 2024

This PR estimates the health impact of increasing consumable availability to realistic levels. Realistic levels lie somewhere between default and all as predicted by the regression model or by assuming that all facilities perform as well as the facility at the nth percentile in terms of consumable availability.

Changes:

  1. Add scripts to prepare HHFA data and run regression analysis to determine factors associated with consumable availability
  2. Update ResourceFile_consumables_matched.csv to include a crosswalk between names of consumables in the TLO model and that under HHFA
  3. Predict change in consumable availability under various scenarios
  4. Change healthsystem.py and consumables.py to accommodate specification of which consumable availability estimates to use
  5. Introduce a scenario which runs the model with a different set of availability estimates from the original estimates.

Pending tasks:

  • rename the scenarios for the cons_availability argument with an informative name

@sakshimohan sakshimohan self-assigned this May 22, 2024
sm2511 added 16 commits May 22, 2024 19:29
- some CMD and Reproductive health consumables were classified as "not relevant to regression analysis" and therefore assume not change to availability. This has been removed. We now assume that their availability changes in proportion to the average increase in the odds of availability across all consuamables.
- this equates the probability of availability to be equal to that of the 75th, 90th and 99th percentile facility (in terms of the mean vale of `available_prop` within the corresponding level; only availability of facilities in levels 1a and 1b are updated
- {'Facility_ID', 'month', 'item_code', 'available_prop'} only need to be a subset of all the columns because there may be additional scenario columns
- previously for each level of care, one best performing facility was chosen based on the average consumable availability across all item_codes; Now a different best performing facility is chosen for each level for each item_code, giving a greater improvement in available_prop
@sakshimohan
Copy link
Collaborator Author

sakshimohan commented Jun 6, 2024

Final set of consumable availability under various scenarios. All scenarios only affect levels 1a and 1b:

  1. Non-therapeutic consumables (scenario1): All items perform as well as consumables other than therapeutics
  2. Vital medicines (scenario2): 1 + All items perform as well as consumables classified as 'Vital' in the Essential Medicines List
    3.Pharmacist-managed (scenario3(: 2 + All facilities perform as well as those in which consumables stock is managed by pharmacists
  3. Level 1b (scenario4(: 3 + Level 1a facilities perform as well as level 1b
  4. CHAM (scenario5): 4 + All facilities perform as well as CHAM facilities
  5. 75th percentile facility (scenario6):: All facilities have the same probability of consumable availability as the 75th percentile best performing facility for each individual consumable
  6. 90th percentile facility (scenario7): All facilities have the same probability of consumable availability as the 90th percentile best performing facility for each individual consumable
  7. Best facility (scenario8): All facilities have the same probability of consumable availability as the 99th percentile best performing facility for each individual consumable
  8. Best facility (including DHO) (scenario9): All facilities have the same probability of consumable availability as the 99th percentile best performing facility for each individual item (including level 2)
  9. HIV-supply chain (scenario10): Availability of all consumables increased to match Maximum(original availability, average availability of HIV consumables (at the corresponding Facility_Level))
  10. EPI-supply chain (scenario11): Availability of all consumables increased to match Maximum(original availability, average availability of EPI consumables (at the corresponding Facility_Level))
  11. HIV moved to Govt. supply chain (scenario12): Availability of HIV consumables reduced to match Minimum(original availability, average availability of consumables other than HIV, EPI and Cancer* (at the corresponding Facility_Level))
  • Cancer removed because it brings the average down significantly due to low availability at these levels.

The following figures summarise:

  1. Average availability by program and scenario (Level 1a)
    consumable_availability_heatmap_1a

  2. Average availability by program and scenario (Level 1b)
    consumable_availability_heatmap_1b

  3. Average availability by scenario (ALL LEVELS)
    scenarios_average_availability

@sakshimohan sakshimohan marked this pull request as ready for review June 18, 2025 16:19
@sakshimohan sakshimohan requested a review from tbhallett June 18, 2025 16:19
…tion.py and generate_consumable_availability_scenarios_for_impact_analysis.py
@sakshimohan
Copy link
Collaborator Author

Hi @tbhallett. I have just done a final update of the ResourceFiles after running the data_file_processing scripts. I've compared the latest files with the older version and a change is recorded because some item_codes undergo a <1.5% change in the probability of availability in scenarios 12-15, which I think is due to a minor update in the categorisation of consumables into programs.
These ResourceFiles are final and should be good to merge into master.

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
Copy link
Collaborator

Choose a reason for hiding this comment

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

should this file be on this PR, or the costing one?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Good point, Tim. The script that generates this resource file (consumable_availability_estimation.py) is in under this PR (#1367) but it's used in the costing module and I had manually imported it there (which is probably not best practice). I can undo this commit in the costing PR #1637 and merge it in from here perhaps? The RF on this PR (PR #1367) is the final one and should override the one in costing.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Ok -- if this is the final version of the file we want then I would propose the simplest thing to do would be :

  • we leave this one here and we'll merge it imminently.
  • then in the costing branch, when we merge in master, we make sure this version (which becomes the master version) over-writes the out-dated version on the costing branch.

Does that sound ok?

# Conflicts:
#	resources/healthsystem/consumables/ResourceFile_Consumables_availability_small.csv
#	resources/healthsystem/consumables/ResourceFile_consumables_matched.csv
#	src/tlo/methods/consumables.py
…ed during simulation, and avoid recomputing of item codes ste.
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.

3 participants