tlo.methods.breast_cancer module

Breast Cancer Disease Module

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

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

Breast Cancer Disease Module

Bases: tlo.core.Module

PARAMETERS:

Item

Type

Description

init_prop_breast_cancer_stage

LIST

initial proportions in cancer categories for woman aged 15-29

init_prop_breast_lump_discernible_breast_cancer_by_stage

LIST

initial proportions of those with cancer categories that have the symptom breast_lump_discernible

init_prop_with_breast_lump_discernible_diagnosed_breast_cancer_by_stage

LIST

initial proportions of people that have breast_lump_discernible that have been diagnosed

init_prop_treatment_status_breast_cancer

LIST

initial proportions of people with breast cancer previously treated

init_prob_palliative_care

REAL

initial probability of being under palliative care if in stage 4

r_stage1_none

REAL

probabilty per 3 months of incident stage 1 breast, amongst people with no breast cancer

rr_stage1_none_age3049

REAL

rate ratio for stage1 breast cancer for age 30-49

rr_stage1_none_agege50

REAL

rate ratio for stage1 breast cancer for age 50+

r_stage2_stage1

REAL

probabilty per 3 months of stage 2 breast cancer amongst people with stage 1

rr_stage2_undergone_curative_treatment

REAL

rate ratio for stage 2 breast cancer for people with stage 1 breast cancer if had curative treatment at stage 1

r_stage3_stage2

REAL

probabilty per 3 months of stage 3 breast cancer amongst people with stage 2

rr_stage3_undergone_curative_treatment

REAL

rate ratio for stage 3 breast cancer for people with stage 2 breast cancer if had curative treatment at stage 2

r_stage4_stage3

REAL

probabilty per 3 months of stage 4 breast cancer amongst people with stage 3

rr_stage4_undergone_curative_treatment

REAL

rate ratio for stage 4 breast cancer for people with stage 3 breast cancer if had curative treatment at stage 3

r_death_breast_cancer

REAL

probabilty per 3 months of death from breast cancer amongst people with stage 4 breast cancer

r_breast_lump_discernible_stage1

REAL

rate ratio for breast_lump_discernible if have stage 1 breast cancer

rr_breast_lump_discernible_stage2

REAL

rate ratio for breast_lump_discernible if have stage 2 breast cancer

rr_breast_lump_discernible_stage3

REAL

rate ratio for breast_lump_discernible if have stage 3 breast cancer

rr_breast_lump_discernible_stage4

REAL

rate ratio for breast_lump_discernible if have stage 4 breast cancer

rp_breast_cancer_age3049

REAL

relative prevalence at baseline of breast cancer if age3049

rp_breast_cancer_agege50

REAL

relative prevalence at baseline of breast cancer if agege50

sensitivity_of_biopsy_for_stage1_breast_cancer

REAL

sensitivity of biopsy_for diagnosis of stage 1 breast cancer

sensitivity_of_biopsy_for_stage2_breast_cancer

REAL

sensitivity of biopsy_for diagnosis of stage 2 breast cancer

sensitivity_of_biopsy_for_stage3_breast_cancer

REAL

sensitivity of biopsy_for diagnosis of stage 3 breast cancer

sensitivity_of_biopsy_for_stage4_breast_cancer

REAL

sensitivity of biopsy_for diagnosis of stage 4 breast cancer

PROPERTIES:

Item

Type

Description

brc_status

CATEGORICAL

Current status of the health condition, breast cancer. Possible values are: [none, stage1, stage2, stage3, stage4, ]

brc_date_diagnosis

DATE

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

brc_date_treatment

DATE

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

brc_breast_lump_discernible_investigated

BOOL

whether a breast_lump_discernible has been investigated, and cancer missed

brc_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, stage1, stage2, stage3, stage4, ]

brc_date_palliative_care

DATE

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

brc_date_death

DATE

date of brc death

brc_new_stage_this_month

BOOL

new_stage_this month

Class attributes:

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

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

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’}

Functions (defined or overridden in class BreastCancer):

__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 BreastCancerMainPollingEvent(module)[source]

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

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

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class BreastCancerMainPollingEvent):

__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_BreastCancer_Investigation_Following_breast_lump_discernible(module, person_id)[source]

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

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

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class HSI_BreastCancer_Investigation_Following_breast_lump_discernible):

__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_BreastCancer_StartTreatment(module, person_id)[source]

This event is scheduled by HSI_BreastCancer_Investigation_Following_breast_lump_discernible following a diagnosis of breast Cancer. It initiates the treatment of breast Cancer. It is only for persons with a cancer that is not in stage4 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_BreastCancer_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.

class HSI_BreastCancer_PostTreatmentCheck(module, person_id)[source]

This event is scheduled by HSI_BreastCancer_StartTreatment and itself. It is only for those who have undergone treatment for breast Cancer. If the person has developed cancer to stage4, 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_BreastCancer_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.

class HSI_BreastCancer_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_BreastCancer_Investigation_Following_breast_lump_discernible following a diagnosis of breast Cancer at stage4. * HSI_BreastCancer_PostTreatmentCheck following progression to stage4 during treatment. * Itself for the continuance of care. It is only for persons with a cancer in stage4.

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

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class HSI_BreastCancer_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.

class BreastCancerLoggingEvent(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 BreastCancerLoggingEvent):

__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