tlo.methods.pregnancy_supervisor module

class PregnancySupervisor(name=None, resourcefilepath=None)

This module is responsible for simulating the antenatal period of pregnancy (the period from conception until the termination of pregnancy). A number of outcomes are managed by this module including early pregnancy loss (induced/spontaneous abortion, ectopic pregnancy and antenatal stillbirth) and pregnancy complications of the antenatal period (nutritional deficiencies , anaemia, placental praevia/abruption, premature rupture of membranes (PROM), chorioamnionitis, hypertensive disorders (gestational hypertension, pre-eclampsia, eclampsia), gestational diabetes, maternal death). This module calculates likelihood of care seeking for routine antenatal care and emergency obstetric care in the event of severe complications.

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.

Bases: tlo.core.Module, tlo.methods.hsi_generic_first_appts.GenericFirstAppointmentsMixin

PARAMETERS:

Item

Type

Description

prob_ectopic_pregnancy

LIST

probability of ectopic pregnancy

prob_care_seeking_ectopic_pre_rupture

LIST

probability a woman will seek care for ectopic pregnancy prior to rupture

prob_ectopic_pregnancy_death

LIST

probability of a woman dying from a ruptured ectopic pregnancy

prob_multiples

LIST

probability that a woman is currently carrying more than one pregnancy

prob_placenta_praevia

LIST

probability that this womans pregnancy will be complicated by placenta praevia

rr_placenta_praevia_previous_cs

LIST

relative risk of placenta praevia in a woman who has previously delivered via caesarean section

prob_syphilis_during_pregnancy

LIST

probability that this womans will develop syphilis during her pregnancy

prob_previous_miscarriage_at_baseline

REAL

probability that a woman at baseline will have previously experienced a miscarriage

prob_spontaneous_abortion_per_month

LIST

underlying risk of spontaneous abortion per month

rr_spont_abortion_age_35

LIST

relative risk of spontaneous abortion in women aged 35 years or older

rr_spont_abortion_age_31_34

LIST

relative risk of spontaneous abortion in women aged 31-34 years old

rr_spont_abortion_prev_sa

LIST

relative risk of spontaneous abortion in women who have previously experiences spontaneous abortion

prob_complicated_sa

LIST

probability that a woman who experiences spontaneous abortion with experience any complications

prob_induced_abortion_per_month

LIST

underlying risk of induced abortion per month

prob_complicated_ia

LIST

probability that a woman who experiences induced abortion with experience any complications

prob_haemorrhage_post_abortion

LIST

probability of haemorrhage following an abortion

prob_sepsis_post_abortion

LIST

probability of sepsis following an abortion

prob_injury_post_abortion

LIST

probability of injury following an abortion

prob_induced_abortion_death

LIST

underlying risk of death following an induced abortion

prob_spontaneous_abortion_death

LIST

underlying risk of death following an spontaneous abortion

baseline_prob_anaemia_per_month

LIST

baseline risk of a woman developing anaemia secondary only to pregnant

rr_anaemia_maternal_malaria

LIST

relative risk of anaemia secondary to malaria infection

rr_anaemia_hiv_no_art

LIST

relative risk of anaemia for a woman with HIV not on ART

prob_mild_mod_sev_anaemia

LIST

probabilities that a womans anaemia will be mild, moderate or severe

prob_gest_diab_per_month

LIST

underlying risk of gestational diabetes per month without the impact of risk factors

rr_gest_diab_obesity

LIST

Relative risk of gestational diabetes for women who are obese

prob_gest_htn_per_month

LIST

underlying risk of gestational hypertension per month without the impact of risk factors

rr_gest_htn_obesity

LIST

Relative risk of gestational hypertension for women who are obese

prob_pre_eclampsia_per_month

LIST

underlying risk of pre-eclampsia per month without the impact of risk factors

rr_pre_eclampsia_obesity

LIST

Relative risk of pre-eclampsia for women who are obese

rr_pre_eclampsia_multiple_pregnancy

LIST

Relative risk of pre-eclampsia for women who are pregnant with twins

rr_pre_eclampsia_chronic_htn

LIST

Relative risk of pre-eclampsia in women who are chronically hypertensive

rr_pre_eclampsia_diabetes_mellitus

LIST

Relative risk of pre-eclampsia in women who have diabetes mellitus

probs_for_mgh_matrix

LIST

probability of mild gestational hypertension moving between states: gestational hypertension, severe gestational hypertension, mild pre-eclampsia, severe pre-eclampsia, eclampsia

probs_for_sgh_matrix

LIST

probability of severe gestational hypertension moving between states: gestational hypertension, severe gestational hypertension, mild pre-eclampsia, severe pre-eclampsia, eclampsia

probs_for_mpe_matrix

LIST

probability of mild pre-eclampsia moving between states: gestational hypertension, severe gestational hypertension, mild pre-eclampsia, severe pre-eclampsia, eclampsia

probs_for_spe_matrix

LIST

probability of severe pre-eclampsia moving between states: gestational hypertension, severe gestational hypertension, mild pre-eclampsia, severe pre-eclampsia, eclampsia

probs_for_ec_matrix

LIST

probability of eclampsia moving between states: gestational hypertension, severe gestational hypertension, mild pre-eclampsia, severe pre-eclampsia, eclampsia

prob_severe_pre_eclampsia_death

LIST

probability of death for a woman experiencing acute severe pre-eclampsia

prob_eclampsia_death

LIST

probability of death for a woman experiencing eclampsia

prob_monthly_death_severe_htn

LIST

monthly risk of death for a woman with severe hypertension

prob_placental_abruption_per_month

LIST

monthly probability that a woman will develop placental abruption

rr_placental_abruption_hypertension

LIST

Relative risk of placental abruption in women with hypertension

rr_placental_abruption_previous_cs

LIST

Relative risk of placental abruption in women who delivered previously via caesarean section

prob_aph_placenta_praevia

LIST

risk of antepartum haemorrhage due to ongoing placenta praevia

prob_aph_placental_abruption

LIST

risk of antepartum haemorrhage due to placental abruption

prob_mod_sev_aph

LIST

probabilities that APH is mild/moderate or severe

prob_antepartum_haemorrhage_death

LIST

probability of death for a woman suffering acute antepartum haemorrhage

prob_prom_per_month

LIST

monthly probability that a woman will experience premature rupture of membranes

prob_chorioamnionitis

LIST

monthly probability of a women developing chorioamnionitis

prob_antenatal_sepsis_death

LIST

case fatality rate for chorioamnionitis

baseline_prob_early_labour_onset

LIST

monthly baseline risk of labour onsetting before term

rr_preterm_labour_post_prom

LIST

relative risk of early labour onset following PROM

rr_preterm_labour_anaemia

LIST

relative risk of early labour onset in women with anaemia

rr_preterm_labour_malaria

LIST

relative risk of early labour onset in women with malaria

rr_preterm_labour_multiple_pregnancy

LIST

relative risk of early labour onset in women pregnant with twins

prob_still_birth_per_month

LIST

underlying risk of stillbirth per month without the impact of risk factors

rr_still_birth_ga_41

LIST

relative risk of still birth in women with gestational age 41 weeks

rr_still_birth_ga_42

LIST

relative risk of still birth in women with gestational age 42 weeks

rr_still_birth_ga_>42

LIST

relative risk of still birth in women with gestational age > 42 weeks

rr_still_birth_gest_diab

LIST

relative risk of still birth in women with gestational diabetes

rr_still_birth_diab_mellitus

LIST

relative risk of still birth in women with diabetes mellitus

rr_still_birth_maternal_malaria

LIST

relative risk of still birth in women with malaria

rr_still_birth_maternal_syphilis

LIST

relative risk of still birth in women with syphilis

rr_still_birth_pre_eclampsia

LIST

relative risk of still birth in women with pre-eclampsia

rr_still_birth_eclampsia

LIST

relative risk of still birth in women with eclampsia

rr_still_birth_gest_htn

LIST

relative risk of still birth in women with mild gestational hypertension

rr_still_birth_chronic_htn

LIST

relative risk of still birth in women with chronic hypertension

rr_still_birth_aph

LIST

relative risk of still birth in women with antepartum haemorrhage

rr_still_birth_chorio

LIST

relative risk of still birth in women with chorioamnionitis

prob_seek_care_pregnancy_complication

LIST

Probability that a woman who is pregnant will seek care in the event of a complication

prob_seek_care_pregnancy_loss

LIST

Probability that a woman who has developed complications post pregnancy loss will seek care

prob_seek_care_induction

LIST

Probability that a woman who is post term will seek care for induction of labour

prob_anc1_months_2_to_4

LIST

list of probabilities that a woman will attend her first ANC visit at either month 2, 3 or 4 of pregnancy

prob_anc1_months_5_to_9

LIST

list of probabilities that a woman will attend her first ANC visit on months 5-10

odds_early_init_anc4

LIST

probability of a woman undergoing 4 or more basic ANC visits with the first visit occurring prior or during month 4 of pregnancy (EANC4+)

aor_early_anc4_20_24

LIST

adjusted odds ratio of EANC4+ in women aged 20-24

aor_early_anc4_25_29

LIST

adjusted odds ratio of EANC4+ in women aged 25-29

aor_early_anc4_30_34

LIST

adjusted odds ratio of EANC4+ in women aged 30-34

aor_early_anc4_35_39

LIST

adjusted odds ratio of EANC4+ in women aged 35-39

aor_early_anc4_40_44

LIST

adjusted odds ratio of EANC4+ in women aged 40-44

aor_early_anc4_45_49

LIST

adjusted odds ratio of EANC4+ in women aged 45-49

aor_early_anc4_2010

LIST

adjusted odds ratio of EANC4+ in 2010

aor_early_anc4_2015

LIST

adjusted odds ratio of EANC4+ in 2015

aor_early_anc4_parity_2_3

LIST

adjusted odds ratio of EANC4+ in women with a parity of 2-3

aor_early_anc4_parity_4_5

LIST

adjusted odds ratio of EANC4+ in women with a parity of 4-5

aor_early_anc4_parity_6+

LIST

adjusted odds ratio of EANC4+ in women with a parity of 6+

aor_early_anc4_secondary_edu

LIST

adjusted odds ratio of EANC4+ in women with secondary education

aor_early_anc4_tertiary_edu

LIST

adjusted odds ratio of EANC4+ in women with tertiary education

aor_early_anc4_richest_wealth

LIST

adjusted odds ratio of EANC4+ in women in the richest wealth quintile

prob_late_initiation_anc4

LIST

probability a woman will undertake 4 or more ANC visits with the first being after 4 months

prob_early_initiation_anc_below4

LIST

probabilities a woman will attend fewer than 4 ANC visits but the first visit will occur before month 4

prob_early_anc_at_facility_level_1_2

LIST

probabilities a woman will attend ANC 1 at facility levels 1 or 2

treatment_effect_ectopic_pregnancy_treatment

LIST

Treatment effect of ectopic pregnancy case management

treatment_effect_post_abortion_care

LIST

Treatment effect of post abortion care

treatment_effect_iron_folic_acid_anaemia

LIST

relative effect of daily iron and folic acid treatment on risk of maternal anaemia

treatment_effect_calcium_pre_eclamp

LIST

risk reduction of pre-eclampsia for women taking daily calcium supplementation

treatment_effect_gest_htn_calcium

LIST

Effect of calcium supplementation on risk of developing gestational hypertension

treatment_effect_anti_htns_progression

LIST

Effect of anti hypertensive medication in reducing the risk of progression from mild to severe hypertension

prob_glycaemic_control_diet_exercise

LIST

probability a womans GDM is controlled by diet and exercise during the first month of treatment

prob_glycaemic_control_orals

LIST

probability a womans GDM is controlled by oral anti-diabetics during the first month of treatment

treatment_effect_gdm_case_management

LIST

Treatment effect of GDM case management on mothers risk of stillbirth

treatment_effect_still_birth_food_sups

LIST

risk reduction of still birth for women receiving nutritional supplements

anc_service_structure

INT

stores type of ANC service being delivered in the model (anc4 or anc8) and is used in analysisscripts to change ANC structure

analysis_year

INT

Year on which the pregnancy analysis event is scheduled to update any relevant parameters for analysis (1st day 1st month)

ps_analysis_in_progress

BOOL

Used within the pregnancy_helper_function to signify that analysis is currently being conducted

alternative_anc_coverage

BOOL

Signals within the analysis event that an alternative level of ANC coverage has been determined following the events run

alternative_anc_quality

BOOL

Signals within the analysis event that an alternative level of ANC quality has been determined following the events run

anc_availability_odds

REAL

Target odds of early initiation of ANC4+ when analysis is being conducted - only applied ifalternative_anc_coverage is true

anc_availability_probability

REAL

Target probability of quality/consumables when analysis is being conducted - only applied if alternative_anc_quality is true

alternative_ip_anc_quality

BOOL

Signals within the analysis event that an alternative level of inpatient ANC quality has been determined following the events run

ip_anc_availability_probability

REAL

Target probability of quality/consumables when analysis is being conducted - only applied if alternative_ip_anc_quality is true

sens_analysis_min

BOOL

Signals within the analysis event and code that sensitivity analysis is being undertaken in which ANC is blocked from occurring

sens_analysis_max

BOOL

Signals within the analysis event and code that sensitivity analysis is being undertaken in which the maximum coverage of ANC is enforced

PROPERTIES:

Item

Type

Description

ps_gestational_age_in_weeks

REAL

current gestational age, in weeks, of a woman pregnancy

ps_date_of_anc1

DATE

Date first ANC visit is scheduled for

ps_ectopic_pregnancy

CATEGORICAL

Whether a woman is experiencing ectopic pregnancy and its current state. Possible values are: [none, not_ruptured, ruptured, ]

ps_multiple_pregnancy

BOOL

Whether a woman is pregnant with multiple fetuses

ps_placenta_praevia

BOOL

Whether a woman pregnancy will be complicated by placentapraevia

ps_syphilis

BOOL

Whether a woman has syphilis during pregnancy

ps_anaemia_in_pregnancy

CATEGORICAL

Whether a woman has anaemia in pregnancy and its severity. Possible values are: [none, mild, moderate, severe, ]

ps_anc4

BOOL

Whether this woman is predicted to attend 4 or more antenatal care visits during her pregnancy

ps_abortion_complications

BITSET

Bitset column holding types of abortion complication

ps_prev_spont_abortion

BOOL

Whether this woman has had any previous pregnancies end in spontaneous abortion

ps_prev_stillbirth

BOOL

Whether this woman has had any previous pregnancies end in still birth

ps_htn_disorders

CATEGORICAL

if this woman suffers from a hypertensive disorder of pregnancy. Possible values are: [none, gest_htn, severe_gest_htn, mild_pre_eclamp, severe_pre_eclamp, eclampsia, ]

ps_prev_pre_eclamp

BOOL

whether this woman has experienced pre-eclampsia in a previous pregnancy

ps_gest_diab

CATEGORICAL

whether this woman is experiencing gestational diabetes. Possible values are: [none, uncontrolled, controlled, ]

ps_prev_gest_diab

BOOL

whether this woman has ever suffered from gestational diabetes during a previous pregnancy

ps_placental_abruption

BOOL

Whether this woman is experiencing placental abruption

ps_antepartum_haemorrhage

CATEGORICAL

severity of this womans antepartum haemorrhage. Possible values are: [none, mild_moderate, severe, ]

ps_premature_rupture_of_membranes

BOOL

whether this woman has experience rupture of membranes before the onset of labour. If this is <37 weeks from gestation the woman has preterm premature rupture of membranes

ps_chorioamnionitis

BOOL

Whether a woman is experiencing chorioamnionitis

ps_emergency_event

BOOL

signifies a woman in undergoing an acute emergency event in her pregnancy- used to consolidated care seeking in the instance of multiple complications

Class attributes:

ADDITIONAL_DEPENDENCIES : {‘HealthSystem’, ‘Contraception’, ‘Labour’, ‘Lifestyle’, ‘CareOfWomenDuringPregnancy’}

CAUSES_OF_DEATH : {‘ectopic_pregnancy’: <tlo.methods.causes.Cause object at 0x33f6d8450>, ‘spontaneous_abortion’: <tlo.methods.causes.Cause object at 0x33f6818d0>, ‘induced_abortion’: <tlo.methods.causes.Cause object at 0x33f680290>, ‘antepartum_haemorrhage’: <tlo.methods.causes.Cause object at 0x33f681e50>, ‘severe_gestational_hypertension’: <tlo.methods.causes.Cause object at 0x33f680a90>, ‘severe_pre_eclampsia’: <tlo.methods.causes.Cause object at 0x33f681350>, ‘eclampsia’: <tlo.methods.causes.Cause object at 0x33f681290>, ‘antenatal_sepsis’: <tlo.methods.causes.Cause object at 0x33f6811d0>}

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

INIT_DEPENDENCIES : {‘Demography’}

METADATA : {<Metadata.USES_HEALTHBURDEN: 4>, <Metadata.DISEASE_MODULE: 1>}

OPTIONAL_INIT_DEPENDENCIES : {‘Malaria’, ‘HealthBurden’, ‘CardioMetabolicDisorders’, ‘Hiv’}

__annotations__ : {}

Functions (defined or overridden in class PregnancySupervisor):

__init__(name=None, resourcefilepath=None)

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)

Read parameter values from file, if required.

Must be implemented by subclasses.

Parameters:

data_folder – path of a folder supplied to the Simulation containing data files. Typically, modules would read a particular file within here.

initialise_population(population)

Set our property values for the initial population.

This method is called by the simulation when creating the initial population, and is responsible for assigning initial values, for every individual, of those properties ‘owned’ by this module, i.e. those declared in its PROPERTIES dictionary.

By default, all Property``s in ``self.PROPERTIES will have their columns in the population dataframe set to the default value.

Modules that wish to implement this behaviour do not need to implement this method, it will be inherited automatically. Modules that wish to perform additional steps during the initialise_population stage should reimplement this method and call

`python super().initialise_population(population=population) `

at the beginning of the method, then proceed with their additional steps. Modules that do not wish to inherit this default behaviour should re-implement initialise_population without the call to super() above.

TODO: We probably need to declare somehow which properties we ‘read’ here, so the simulation knows what order to initialise modules in!

Parameters:

population – The population of individuals in the simulation.

initialise_simulation(sim)

Get ready for simulation start.

Must be implemented by subclasses.

This method is called just before the main simulation loop begins, and after all modules have read their parameters and the initial population has been created. It is a good place to add initial events to the event queue.

on_birth(mother_id, child_id)

Initialise our properties for a newborn individual.

Must be implemented by subclasses.

This is called by the simulation whenever a new person is born.

Parameters:
  • mother_id – the person id for the mother of this child (can be -1 if the mother is not identified).

  • child_id – the person id of new child

further_on_birth_pregnancy_supervisor(mother_id)

This function is called by the on_birth function of NewbornOutcomes module or following an intrapartum stillbirth in the Labour Module. This function contains additional code related to the pregnancy supervisor module that should be ran on_birth. These additional on_birth functions ensure each modules (pregnancy,antenatal care, labour, newborn, postnatal) on_birth code is ran in the correct sequence (as this can vary depending on how modules are registered) :param mother_id: mothers individual id

on_hsi_alert(person_id, treatment_id)
report_daly_values()

This function calculates and reports the monthly daly weight values accumulated from Maternal Disorders. For simplicity all daly weights from Maternal Disorders are reported in this module (though may be attributable to conditions occurring antenatally, intrapartum or postnatally). Individual level monthly-daly weights are calculated using the mni dictionary where date of complication onset/resolution is stored. :return: daly_series

pregnancy_supervisor_property_reset(id_or_index)

This function is called when all properties housed in the PregnancySupervisorModule should be reset. For example following pregnancy loss :param id_or_index: pass the function either an individual ID (INT) or index of subset of data frame

apply_linear_model(lm, df_slice)

Helper function will apply the linear model (lm) on the dataframe (df) to get a probability of some event happening to each individual. It then returns a series with same index with bools indicating the outcome based on the toss of the biased coin. :param lm: The linear model :param df_slice: The dataframe :return: Series with same index containing outcomes (bool)

schedule_anc_one(individual_id, anc_month)
This functions calculates the correct date each woman will attend her first ANC contact and schedules the visit

for newly pregnant women depending on their predicted month of attendance

Parameters:
  • anc_month – month of pregnancy that woman will attend ANC 1

  • individual_id – individual_id

apply_risk_of_spontaneous_abortion(gestation_of_interest)

This function applies risk of spontaneous abortion to a slice of data frame and is called by PregnancySupervisorEvent. It calls the do_after_abortion function for women who loose their pregnancy. :param gestation_of_interest: gestation in weeks

apply_risk_of_induced_abortion(gestation_of_interest)

This function applies risk of induced abortion to a slice of data frame and is called by PregnancySupervisorEvent. It calls the do_after_abortion for women who loose their pregnancy. :param gestation_of_interest: gestation in weeks

do_after_abortion(individual_id, type_abortion)

This function is called for all women who experience a spontaneous or induced abortion. The function logs the pregnancy loss, resets key variables and determines risk of complication. :param individual_id: individual id :param type_abortion: STR “induced” or “spontaneous”

apply_risk_of_abortion_complications(individual_id, cause)

This function makes stores the type of complication experience by a woman following abortion. :param individual_id: individual_id :param cause: ‘type’ of abortion (spontaneous abortion OR induced abortion) (str)

apply_risk_of_anaemia(gestation_of_interest)

This function applies risk of anaemia to a slice of the data frame. It is called by PregnancySupervisorEvent :param gestation_of_interest: gestation in weeks

apply_risk_of_gestational_diabetes(gestation_of_interest)

This function applies risk of gestational diabetes to a slice of the data frame. It is called by PregnancySupervisorEvent. :param gestation_of_interest: gestation in weeks

apply_risk_of_hypertensive_disorders(gestation_of_interest)

This function applies risk of mild pre-eclampsia and mild gestational diabetes to a slice of the data frame. It is called by PregnancySupervisorEvent. :param gestation_of_interest: gestation in weeks

apply_risk_of_progression_of_hypertension(gestation_of_interest)

This function applies a risk of progression of hypertensive disorders to women who are experiencing one of the hypertensive disorders. It is called by PregnancySupervisorEvent :param gestation_of_interest: gestation in weeks

apply_risk_of_death_from_hypertension(gestation_of_interest)

This function applies risk of death to women with severe hypertensive disease (severe gestational hypertension/ severe pre-eclampsia). For women who die this function schedules InstantaneousDeathEvent. :param gestation_of_interest: gestation in weeks

apply_risk_of_placental_abruption(gestation_of_interest)

This function applies risk of placental abruption to a slice of the dataframe. It is called by PregnancySupervisorEvent. :param gestation_of_interest: gestation in weeks

apply_risk_of_antepartum_haemorrhage(gestation_of_interest)

This function applies risk of antepartum haemorrhage to a slice of the dataframe. It is called by PregnancySupervisorEvent. :param gestation_of_interest: gestation in weeks

apply_risk_of_premature_rupture_of_membranes_and_chorioamnionitis(gestation_of_interest)

This function applies risk of premature rupture of membranes to a slice of the dataframe. It is called by PregnancySupervisorEvent. :param gestation_of_interest: gestation in weeks

apply_risk_of_preterm_labour(gestation_of_interest)

This function applies risk of preterm labour to a slice of the dataframe. It is called by PregnancySupervisorEvent. :param gestation_of_interest: gestation in weeks

update_variables_post_still_birth_for_data_frame(women)

This function updates variables for a slice of the dataframe who have experience antepartum stillbirth :param women: women who are experiencing stillbirth

update_variables_post_still_birth_for_individual(individual_id)

This function is called to reset all the relevant pregnancy and treatment variables for a woman who undergoes stillbirth outside of the PregnancySupervisor polling event. :param individual_id: individual_id

apply_risk_of_still_birth(gestation_of_interest)

This function applies risk of still birth to a slice of the data frame. It is called by PregnancySupervisorEvent :param gestation_of_interest: INT used to select women from the data frame at certain gestation

induction_care_seeking_and_still_birth_risk(gestation_of_interest)

This function is called for post term women and applies a probability that they will seek care for induction and if not will experience risk of antenatal stillbirth :param gestation_of_interest: INT used to select women from the data frame at certain gestation

care_seeking_pregnancy_loss_complications(individual_id, cause)

This function manages care seeking for women experiencing ectopic pregnancy or complications following spontaneous/induced abortion. :param individual_id: individual_id :param cause: ‘abortion’, ‘ectopic_pre_rupture’, ‘ectopic_ruptured’ :return: Returns True/False value to signify care seeking

apply_risk_of_death_from_monthly_complications(individual_id)

This function calculates the risk of death for women who have developed complications but have not received treatment. It is called by the PregnancySupervisor Event and HSI_CareOfWomenDuringPregnancy_Maternal EmergencyAssessment if care cant be delivered . :param individual_id: individual_id

schedule_first_anc_contact_for_new_pregnancy(gestation_of_interest)
This function is called by the PregnancySupervisorEvent for all pregnant women at 8 weeks gestational age to

determine if/when they will attend their first ANC visit.

Parameters:

gestation_of_interest – INT used to select women from the data frame at certain gestation

do_at_generic_first_appt_emergency(person_id: int, individual_properties: IndividualProperties, schedule_hsi_event: HSIEventScheduler, **kwargs) None

Actions to take during an emergency generic health system interaction (HSI).

Call signature is identical to the do_at_generic_first_appt() method.

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

class PregnancySupervisorEvent(module)

This is the PregnancySupervisorEvent, it is a weekly event which has four primary functions. 1.) It updates the gestational age (in weeks) of all women who are pregnant 2.) It applies monthly risk of key complications associated with pregnancy 3.) It determines if women who experience life seeking complications associated with pregnancy will seek care 4.) It applies risk of death and stillbirth to women who do not seek care following complications

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)

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

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class PregnancySupervisorEvent):

__init__(module)

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)

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 EctopicPregnancyEvent(module, individual_id)

This is EctopicPregnancyEvent. It is scheduled by the set_pregnancy_complications function within PregnancySupervisorEvent for women who have experienced ectopic pregnancy. This event makes changes to the data frame for women with ectopic pregnancies, applies a probability of care seeking and schedules the EctopicRuptureEvent.

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

Bases: tlo.events.Event, tlo.events.IndividualScopeEventMixin

Functions (defined or overridden in class EctopicPregnancyEvent):

__init__(module, individual_id)

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

apply(individual_id)

Apply this event to the given target.

Must be implemented by subclasses.

Parameters:

target – the target of the event

class EctopicPregnancyRuptureEvent(module, individual_id)

This is EctopicPregnancyRuptureEvent. It is scheduled by the EctopicPregnancyEvent for women who have experienced an ectopic pregnancy which has ruptured due to lack of treatment. This event manages care seeking post rupture and schedules EarlyPregnancyLossDeathEvent

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

Bases: tlo.events.Event, tlo.events.IndividualScopeEventMixin

Functions (defined or overridden in class EctopicPregnancyRuptureEvent):

__init__(module, individual_id)

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

apply(individual_id)

Apply this event to the given target.

Must be implemented by subclasses.

Parameters:

target – the target of the event

class EarlyPregnancyLossDeathEvent(module, individual_id, cause)

This is EarlyPregnancyLossDeathEvent. It is scheduled by the EctopicPregnancyRuptureEvent & abortion for women who are at risk of death following a loss of their pregnancy

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

Bases: tlo.events.Event, tlo.events.IndividualScopeEventMixin

Functions (defined or overridden in class EarlyPregnancyLossDeathEvent):

__init__(module, individual_id, cause)

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

apply(individual_id)

Apply this event to the given target.

Must be implemented by subclasses.

Parameters:

target – the target of the event

class GestationalDiabetesGlycaemicControlEvent(module, individual_id)

This is GestationalDiabetesGlycaemicControlEvent. It is scheduled by CareOfWomenDuringPregnancy module after a woman is started on treatment for gestational diabetes. This event determines if the treatment a woman has been started on for GDM will effectively control her blood sugars

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

Bases: tlo.events.Event, tlo.events.IndividualScopeEventMixin

Functions (defined or overridden in class GestationalDiabetesGlycaemicControlEvent):

__init__(module, individual_id)

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

apply(individual_id)

Apply this event to the given target.

Must be implemented by subclasses.

Parameters:

target – the target of the event

class SyphilisInPregnancyEvent(module, individual_id)

This is SyphilisInPregnancyEvent. It is scheduled by PregnancySupervisorEvent module after a woman becomes pregnant and is predicted to experience syphilis during their pregnancy. This event onsets Syphilis in those women

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

Bases: tlo.events.Event, tlo.events.IndividualScopeEventMixin

Functions (defined or overridden in class SyphilisInPregnancyEvent):

__init__(module, individual_id)

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

apply(individual_id)

Apply this event to the given target.

Must be implemented by subclasses.

Parameters:

target – the target of the event

class ParameterUpdateEvent(module)

This is ParameterUpdateEvent. It is scheduled to occur once on 2015 to update parameters being used by the maternal and newborn health model

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

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

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class ParameterUpdateEvent):

__init__(module)

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

apply(population)

Apply this event to the given target.

Must be implemented by subclasses.

Parameters:

target – the target of the event

class PregnancyAnalysisEvent(module)

This is PregnancyAnalysisEvent. This event is scheduled in initialise_simulation. When this event runs, and if either of the module parameters the signify analysis is being conducted are set to True, then key parameters are overridden to alter the coverage and/or quality of routine antenatal care delivery.

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

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

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class PregnancyAnalysisEvent):

__init__(module)

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.

  • priority – a keyword-argument to set the priority (see Priority enum)

apply(population)

Apply this event to the given target.

Must be implemented by subclasses.

Parameters:

target – the target of the event

class PregnancyLoggingEvent(module)

This is PregnancyLoggingEvent. It runs yearly to produce summary statistics around pregnancy.

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)

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

Class attributes:

__annotations__ : {}

Functions (defined or overridden in class PregnancyLoggingEvent):

__init__(module)

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)

Apply this event to the given target.

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

Parameters:

target – the target of the event