tlo.methods.other_adult_cancers module

Other_adult Cancer Disease Module

Limitations to note: * Footprints of HSI – pending input from expert on resources required.

class OtherAdultCancer(name=None, resourcefilepath=None)[source]

Other Adult Cancers Disease Module

Bases: tlo.core.Module

PARAMETERS:

Item

Type

Description

init_prop_early_other_adult_ca_symptom_other_adult_cancer_by_stage

LIST

initial proportions of those with other adult cancer categories that have other adult_ca_symptom

in_prop_other_adult_cancer_stage

LIST

initial proportions in other adult cancer stages for person aged 15-29

init_prop_with_early_other_adult_ca_symptom_diagnosed_by_stage

LIST

initial proportions of people that have symptom of other_adult_ca_symptom that have been diagnosed

init_prop_treatment_status_other_adult_cancer

LIST

initial proportions of people with other_adult cancer previously given treatment

init_prob_palliative_care

REAL

initial probability of being under palliative care if in metastatic

r_site_confined_none

REAL

probabilty per 3 months of incident site_confined other_adult cancer amongst people age 15-29 with no other adult cancer

rr_site_confined_age3049

REAL

rate ratio for site-confined other_adult cancer for age 30-49

rr_site_confined_age5069

REAL

rate ratio for site-confined other_adult cancer for age 50-69

rr_site_confined_agege70

REAL

rate ratio for site-confined other_adult cancer for age ge 70

r_local_ln_site_confined_other_adult_ca

REAL

probabilty per 3 months of local ln other_adult cancer amongst people with site confined

rr_local_ln_other_adult_ca_undergone_curative_treatment

REAL

rate ratio for local_ln for people with site_confined if had curative treatment at site_confined stage

r_metastatic_local_ln

REAL

probabilty per 3 months of metastatic other_adult cancer amongst people with local_ln

rr_metastatic_undergone_curative_treatment

REAL

rate ratio for metastatic Other_adult cancer for people with local_lnOther_adult cancer if had curative treatment at local_ln

r_death_other_adult_cancer

REAL

probabilty per 3 months of death from other adult cancer mongst people with metastatic other_adult cancer

r_early_other_adult_ca_symptom_site_confined_other_adult_ca

REAL

probability per 3 months of other_adult_ca_symptom in a person with site confined other_adult cancer

rr_early_other_adult_ca_symptom_local_ln_other_adult_ca

REAL

rate ratio for other_adult_ca_symptom if have high grade other_adult cancer

rr_early_other_adult_ca_symptom_metastatic_other_adult_ca

REAL

rate ratio for other_adult_ca_symptom if have metastatic other_adult cancer

rp_other_adult_cancer_age3049

REAL

relative prevalence at baseline of bladder cancer/cancer age 30-49

rp_other_adult_cancer_age5069

REAL

relative prevalence at baseline of bladder cancer/cancer age 50-69

rp_other_adult_cancer_agege70

REAL

relative prevalence at baseline of bladder cancer/cancer age 70+

sensitivity_of_diagnostic_device_for_other_adult_cancer_with_other_adult_ca_site_confined

REAL

sensitivity of diagnostic_device_for diagnosis of other_adult cancer for those with other_adult_ca_site-confined

sensitivity_of_diagnostic_device_for_other_adult_cancer_with_other_adult_ca_local_ln

REAL

sensitivity of diagnostic_device_for diagnosis of other_adult cancer for those with other_adult_local_ln

sensitivity_of_diagnostic_device_for_other_adult_cancer_with_other_adult_ca_metastatic

REAL

sensitivity of diagnostic_device_for diagnosis of other_adult cancer for those with other_adult_ca metastatic

PROPERTIES:

Item

Type

Description

oac_status

CATEGORICAL

Current status of the health condition, other_adult cancer. Possible values are: [none, site_confined, local_ln, metastatic, ]

oac_date_diagnosis

DATE

the date of diagnosis of the other_adult_cancer (pd.NaT if never diagnosed)

oac_date_treatment

DATE

date of first receiving attempted curative treatment (pd.NaT if never started treatment)

oac_stage_at_which_treatment_given

CATEGORICAL

the cancer stage at which treatment is given (because the treatment only has an effect during the stageat which it is given.. Possible values are: [none, site_confined, local_ln, metastatic, ]

oac_date_palliative_care

DATE

date of first receiving palliative care (pd.NaT is never had palliative care)

oac_date_death

DATE

date of oac death

Class attributes:

CAUSES_OF_DEATH : {‘OtherAdultCancer’: <tlo.methods.causes.Cause object at 0x13613cfd0>}

CAUSES_OF_DISABILITY : {‘OtherAdultCancer’: <tlo.methods.causes.Cause object at 0x13613dcd0>}

INIT_DEPENDENCIES : {‘SymptomManager’, ‘Demography’, ‘HealthSystem’}

METADATA : {<Metadata.USES_SYMPTOMMANAGER: 2>, <Metadata.USES_HEALTHBURDEN: 4>, <Metadata.USES_HEALTHSYSTEM: 3>, <Metadata.DISEASE_MODULE: 1>}

OPTIONAL_INIT_DEPENDENCIES : {‘HealthBurden’}

gbd_causes_of_cancer_represented_in_this_module : [‘Other malignant neoplasms’, ‘Nasopharynx cancer’, ‘Other pharynx cancer’, ‘Gallbladder and biliary tract cancer’, ‘Pancreatic cancer’, ‘Malignant skin melanoma’, ‘Non-melanoma skin cancer’, ‘Ovarian cancer’, ‘Testicular cancer’, ‘Kidney cancer’, ‘Thyroid cancer’, ‘Mesothelioma’, ‘Hodgkin lymphoma’, ‘Non-Hodgkin lymphoma’, ‘Multiple myeloma’, ‘Leukemia’, ‘Other neoplasms’, ‘Cervical cancer’, ‘Uterine cancer’, ‘Colon and rectum cancer’, ‘Lip and oral cavity cancer’, ‘Stomach cancer’, ‘Liver cancer’]

Functions (defined or overridden in class OtherAdultCancer):

__init__(name=None, resourcefilepath=None)[source]

Construct a new disease module ready to be included in a simulation.

Initialises an empty parameters dictionary and module-specific random number generator.

Parameters:

name – the name to use for this module. Defaults to the concrete subclass’ name.

read_parameters(data_folder)[source]

Setup parameters used by the module, now including disability weights

initialise_population(population)[source]

Set property values for the initial population.

initialise_simulation(sim)[source]
  • Schedule the main polling event

  • Schedule the main logging event

  • Define the LinearModels

  • Define the Diagnostic used

  • Define the Disability-weights

  • Schedule the palliative care appointments for those that are on palliative care at initiation

on_birth(mother_id, child_id)[source]

Initialise properties for a newborn individual. :param mother_id: the mother for this child :param child_id: the new child

on_hsi_alert(person_id, treatment_id)[source]
report_daly_values()[source]
do_at_generic_first_appt(patient_id: int, patient_details: PatientDetails, symptoms: List[str], **kwargs) IndividualPropertyUpdates[source]

Actions to be take during a NON-emergency generic HSI.

Derived classes should overwrite this method so that they are compatible with the HealthSystem module, and can schedule HSI events when a patient presents symptoms indicative of the corresponding illness or condition.

When overwriting, arguments that are not required can be left out of the definition. If done so, the method MUST take a **kwargs input to avoid errors when looping over all disease modules and running their generic HSI methods.

HSI_Events should be scheduled by the Module implementing this method using the Module.healthsystem.schedule_hsi() method. However, they should not write updates back to the population DataFrame in this method - these values should be returned as a dictionary as described below:

The return value of this function should be a dictionary containing any changes that need to be made to the individual’s row in the population DataFrame. Key/value pairs should be the column name and the new value to assign to the patient. In the event no updates are required; return an object that evaluates to False when cast to a bool. Your options are: - Omit a return statement and value (preferred). - Return an empty dictionary. Use this case when patient details might need updating conditionally, on EG patient symptoms or consumable availability. In which case, an empty dictionary should be created and key-value pairs added to this dictionary as such conditionals are checked. If no conditionals are met, the empty dictionary will be returned. - Use a return statement with no values (use if the logic of your module-specific method necessitates the explicit return). - Return None (not recommended, use “return” on its own, as above).

Parameters:
  • patient_id – Row index (ID) of the individual target of the HSI event in the population DataFrame.

  • patient_details – Patient details as provided in the population DataFrame.

  • symptoms – List of symptoms the patient is experiencing.

  • diagnosis_function – A function that can run diagnosis tests based on the patient’s symptoms.

  • consumables_checker – A function that can query the HealthSystem to check for available consumables.

  • facility_level – The level of the facility that the patient presented at.

  • treatment_id – The treatment id of the HSI event triggering the generic appointment.

  • random_state – Random number generator to be used when making random choices during event creation.

class OtherAdultCancerMainPollingEvent(module)[source]

Regular event that updates all Other_adult cancer properties for population: * Acquisition and progression of Other_adult Cancer * Symptom Development according to stage of Other_adult Cancer * Deaths from Other_adult Cancer for those in metastatic

Bases: tlo.events.RegularEvent, tlo.events.Event, tlo.events.PopulationScopeEventMixin

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class OtherAdultCancerMainPollingEvent):

__init__(module)[source]

Create a new regular event.

Parameters:
  • module – the module that created this event

  • frequency (pandas.tseries.offsets.DateOffset) – the interval from one occurrence to the next (must be supplied as a keyword argument)

apply(population)[source]

Apply this event to the given target.

This is a no-op; subclasses should override this method.

Parameters:

target – the target of the event

class HSI_OtherAdultCancer_Investigation_Following_early_other_adult_ca_symptom(module, person_id)[source]

This event is scheduled by HSI_GenericFirstApptAtFacilityLevel1 following presentation for care with the symptom other_adult_ca_symptom. This event begins the investigation that may result in diagnosis of Other_adult Cancer and the scheduling of treatment or palliative care. It is for people with the symptom other_adult_ca_symptom.

Bases: tlo.methods.hsi_event.HSI_Event, tlo.events.IndividualScopeEventMixin

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class HSI_OtherAdultCancer_Investigation_Following_early_other_adult_ca_symptom):

__init__(module, person_id)[source]

Create a new event.

Note that just creating an event does not schedule it to happen; that must be done by calling Simulation.schedule_event.

Parameters:

module – the module that created this event. All subclasses of Event take this as the first argument in their constructor, but may also take further keyword arguments.

apply(person_id, squeeze_factor)[source]

Apply this event to the population.

Must be implemented by subclasses.

class HSI_OtherAdultCancer_StartTreatment(module, person_id)[source]

This event is scheduled by HSI_OtherAdultCancer_Investigation_Following_other_adult_ca_symptom following a diagnosis of Other_adult Cancer. It initiates the treatment of Other_adult Cancer. It is only for persons with a cancer that is not in metastatic and who have been diagnosed.

Bases: tlo.methods.hsi_event.HSI_Event, tlo.events.IndividualScopeEventMixin

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class HSI_OtherAdultCancer_StartTreatment):

__init__(module, person_id)[source]

Create a new event.

Note that just creating an event does not schedule it to happen; that must be done by calling Simulation.schedule_event.

Parameters:

module – the module that created this event. All subclasses of Event take this as the first argument in their constructor, but may also take further keyword arguments.

apply(person_id, squeeze_factor)[source]

Apply this event to the population.

Must be implemented by subclasses.

did_not_run()[source]

Called when this event is due but it is not run. Return False to prevent the event being rescheduled, or True to allow the rescheduling. This is called each time that the event is tried to be run but it cannot be.

class HSI_OtherAdultCancer_PostTreatmentCheck(module, person_id)[source]

This event is scheduled by HSI_OtherAdultCancer_StartTreatment and itself. It is only for those who have undergone treatment for Other_adult Cancer. If the person has developed cancer to metastatic, the patient is initiated on palliative care; otherwise a further appointment is scheduled for one year.

Bases: tlo.methods.hsi_event.HSI_Event, tlo.events.IndividualScopeEventMixin

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class HSI_OtherAdultCancer_PostTreatmentCheck):

__init__(module, person_id)[source]

Create a new event.

Note that just creating an event does not schedule it to happen; that must be done by calling Simulation.schedule_event.

Parameters:

module – the module that created this event. All subclasses of Event take this as the first argument in their constructor, but may also take further keyword arguments.

apply(person_id, squeeze_factor)[source]

Apply this event to the population.

Must be implemented by subclasses.

did_not_run()[source]

Called when this event is due but it is not run. Return False to prevent the event being rescheduled, or True to allow the rescheduling. This is called each time that the event is tried to be run but it cannot be.

class HSI_OtherAdultCancer_PalliativeCare(module, person_id)[source]
This is the event for palliative care. It does not affect the patients progress but does affect the disability

weight and takes resources from the healthsystem.

This event is scheduled by either: * HSI_OtherAdultCancer_Investigation_Following_other_adult_ca_symptom following a diagnosis of Other_adult Cancer

at metastatic.

  • HSI_OtherAdultCancer_PostTreatmentCheck following progression to metastatic during treatment.

  • Itself for the continuance of care.

It is only for persons with a cancer in metastatic.

Bases: tlo.methods.hsi_event.HSI_Event, tlo.events.IndividualScopeEventMixin

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class HSI_OtherAdultCancer_PalliativeCare):

__init__(module, person_id)[source]

Create a new event.

Note that just creating an event does not schedule it to happen; that must be done by calling Simulation.schedule_event.

Parameters:

module – the module that created this event. All subclasses of Event take this as the first argument in their constructor, but may also take further keyword arguments.

apply(person_id, squeeze_factor)[source]

Apply this event to the population.

Must be implemented by subclasses.

did_not_run()[source]

Called when this event is due but it is not run. Return False to prevent the event being rescheduled, or True to allow the rescheduling. This is called each time that the event is tried to be run but it cannot be.

class OtherAdultCancerLoggingEvent(module)[source]

The only logging event for this module

Bases: tlo.events.RegularEvent, tlo.events.Event, tlo.events.PopulationScopeEventMixin

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class OtherAdultCancerLoggingEvent):

__init__(module)[source]

schedule logging to repeat every 1 month

apply(population)[source]

Compute statistics regarding the current status of persons and output to the logger