-
Notifications
You must be signed in to change notification settings - Fork 7
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
The Equipment
Class
#1098
The Equipment
Class
#1098
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great start on this Eva. Only minor comments.
Do we have an idea about how to provide people with a catalogue of equipment they can choose from when making these declarations?
src/tlo/methods/breast_cancer.py
Outdated
@@ -646,6 +647,7 @@ def __init__(self, module, person_id): | |||
self.TREATMENT_ID = "BreastCancer_Investigation" | |||
self.EXPECTED_APPT_FOOTPRINT = self.make_appt_footprint({"Over5OPD": 1, "Mammography": 1}) | |||
self.ACCEPTED_FACILITY_LEVEL = '3' # Mammography only available at level 3 and above. | |||
# TODO: what this means, should be the mammography done within this event, or the biopsy, or both? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure about this. Better ask Andrew.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andrew-phillips-1, Would you know what is done within this HSI? Biopsy, mammography, or both?
The guideline you sent me, says in 10.3.3 'Breast Cancer':
"Diagnosis -> Definitive diagnosis is through histology. This is more superior than cytology which should be understood as a preliminary diagnostic test."
However, in the beginning of 10.1 'Cancer Diagnosis and Registration' Section they mention Mammography as a radiological test for breast cancer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@EvaJanouskova I don't know for sure but I think we should consider this as just biopsy. As you saw in the guidelines, population screening for mammography is not done. So I think the mammography can be removed here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andrew-phillips-1, I've update the comment from # Mammography only available at level 3 and above.
to # Biopsy only available at level 3 and above.
, is that correct?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@EvaJanouskova I'm not sure what levels biopsy will be done at but that sounds right and yes I agree about removing any mention of mammography
238459b
to
c1373e7
Compare
Hi @EvaJanouskova (and @tbhallett) It's been a while since I worked on the module so I have forgotten all the reading I did at the time. I'm fairly sure that for some of your questions I didn't know the answer to even at that time. When I return I can try to spend some time over the next few weeks trying to read up about it again if that seems something worth me prioritising at this time. |
Thanks @andrew-phillips-1. I don't think a wholesale update or anything like that is needed at the moment (although we have something along these lines slated for version 2, when we have someone available to support). For now, we just need to know the equipment that (implicitly) is being used. In the coming weeks, Eva will gather a catalogue of items and ask all disease module leads to identify the ones used in each HSI. This is needed for the costing model and to allow us to look at some analyses that MOH/CHAI are asking about. |
Thanks @tbhallett - that seems good and I'm happy to try to do that for the modules I developed. @EvaJanouskova Do you know how other module leads are going about checking on equipment use for their modules ? There are the 2015 clinical guidelines, and I guess the service assessment survey is of some use, but do you know of other sources, that I have perhaps paid insufficient attention to ? |
@tbhallett, It depends on the purpose and scope of the catalogue. Are we looking for a simple list for users to reference, where they manually copy equipment names as needed? Should it include only equipment currently modelled, meaning that when a new piece of equipment is added to the model, it must also be added to the catalogue? What functionalities or requirements on the catalogue did you have in mind? |
Hi @andrew-phillips-1, I've just received a draft of the new 2023 version of the Malawi standard treatment guidelines. I will make these guidelines and the survey easily available to everyone. Additionally, we will create an equipment catalogue, allowing everyone to find the equipment needed for their module(s) and ensuring consistency by using the same names if used by multiple leaders. |
Sounds good @EvaJanouskova |
ed64e6a
to
ebe0b6a
Compare
76b9bd6
to
f1aa86c
Compare
* utils: typo * healthsystem: typo * co: comments about consumable items * healthsyst: comment moved to where it belongs * minor typos * healthsystem: correct argument name arg_service_availability * brc: changes in comments based on discussion with Andrew in #1098 * hs: typos/minor corrections * formatting_demog_data: minor changes is comments * ac: minor comment updates --------- Co-authored-by: Tim Hallett <39991060+tbhallett@users.noreply.github.com>
f1aa86c
to
9de2730
Compare
This comment was marked as outdated.
This comment was marked as outdated.
522c135
to
a30017a
Compare
This comment was marked as outdated.
This comment was marked as outdated.
5e29244
to
193a81e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interface generally looks good to me. I've added some further suggested changes and comments below, but the only one I think is vital is around changing HSI_Event._EQUIPMENT
from being a class attribute to an instance attribute unless the former was specifically intended.
src/tlo/methods/hsi_event.py
Outdated
_EQUIPMENT: Set[int] = set() # The set of equipment that is used in the HSI. If any items in this set are not | ||
# available at the point when the HSI will be run, then the HSI is not run, and the | ||
# `never_ran` method is called instead. This is a declaration of resource needs, but | ||
# is private because users are expected to use `add_equipment` to declare equipment | ||
# needs. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it would be better to initialise self._EQUIPMENT
in the initialiser __init__
method, as setting the value here makes it an attribute of the class rather than a specific instance. That means all instances of the class will share the same _EQUIPMENT
set and so equipment added / removed from one instance will affect all other instances. It's possible I'm misunderstanding and that is the desired behaviour though!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. We absolutely don't want that behaviour. I'm making the change and will also add a test to check that the equipment list for each HSI_Event is kept separate.
tests/test_equipment.py
Outdated
# - using single string for one item descriptor | ||
assert eq_default.parse_items('ItemOne') | ||
# - using list of strings for item descriptors | ||
assert eq_default.parse_items(['ItemOne', 'ItemTwo']) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The assertions here seem to be just that the values returned by parse_items
are not 'Falsey' (for example not an empty set). Could we not instead check that we get the expected set of item codes (that is I think {1}
and {1, 2}
respectively if I'm understanding how parse_items
works correctly)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's exactly right. I didn't update this from an earlier version of the test file. Next commit will make these tests check for more than 'lack of error and falsiness'
… instance and not the class
Co-authored-by: Matt Graham <matthew.m.graham@gmail.com>
Co-authored-by: Matt Graham <matthew.m.graham@gmail.com>
Co-authored-by: Matt Graham <matthew.m.graham@gmail.com>
Co-authored-by: Matt Graham <matthew.m.graham@gmail.com>
Co-authored-by: Matt Graham <matthew.m.graham@gmail.com>
…exactly the right resonse, rather than truthiness only.
…m' into EvaJ/equipment/structure_ToRunSim
…quipment/structure_ToRunSim
bahhhh-- checks failing due to |
I'll take a look - if specific rules are causing false positives I can set them to be ignored. |
Looks like this is due a new |
That makes sense -- thanks very much for this. |
@tbhallett #1349 should fix the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
~Thanks Matt. I’ll merge it in.~
I'll wait!
|
Thank you all for your amazing work! This looks so much better than it ever did. I love it! Thank you. |
main changes:
healthsystem
module to allow tracking and logging of equipment usedminor changes:
TODO
test essential equipment set for all HSI eventsif essential equipment setting is missing, set it to empty set and add HSI event name to warning
test essential equipment is in RF_Equipmenttest equipment potentially used is in RF_Equipment (if possible)if any equipment item or pkg name provided in the code is not included in RF_Equipment, ignore the item(s) and
add the item/pkg name to warning
before merge:
move to next PR:
TLOmodel/src/tlo/analysis/hsi_events.py
script to be shown on https://www.tlomodel.org/hsi_events.html