File descriptions, test design and proposed changes - dime-worldbank/Disease-Modelling-SSA GitHub Wiki

This list was last updated on the 15th of February 2024


Behaviours

Infectious behaviour

Responsibilities

At the highest level the infectious behaviour framework:

  • Creates different infection statuses.
  • Handles transition between infection statuses. The infection behaviour framework also triggers the spread of COVID, influences a person's movement and their eligibility to get tested for COVID.

Unit tests

  • Ensure that the transition between states occurs as it should, specifically, disease progression has a set path from one behaviour node to the next.
  • COVID spread is only triggered from appropriate nodes
  • Changed to movement are only triggered from appropriate nodes
  • COVID testing eligibility is only set from appropriate nodes

Proposed changes

  • Change infectious behaviour into an interface, which then will be implemented from COVID and other diseases in the future

Movement behaviour

Responsibilities

  • Controls whether people are at home, visiting another location or at work

Unit tests

  • tbd

Proposed changes

  • None

Objects

Household

Responsibilities

  • Represents each agent's household and contains a group of people living there

Unit tests

  • Each person has a list of people in their household. This list should be the same for everyone else in that household.

Proposed changes

  • None

Infection

Responsibilities

  • Linked to a person to represent their infection
  • Stores information about the infection in that person
  • Begins the infectious behaviour framework

Unit tests

  • tbd

Proposed changes

  • Make a generalised version of what we expect an infection to be, make covid infections and spurious symptoms be inherited from this object.

Location

Responsibilities

  • Supertype of all location objects
  • Names locations
  • Manages who is where spatialy

Unit tests

  • tbd

Proposed changes

  • None

Person

Responsibilities

  • Holds demographic information about the person
  • Holds relevant epidemic info about the person
  • Hosts the infect neighbours function
  • Create infections

Unit tests

  • tbd

Proposed changes

  • Move epidemic information to infection object
  • Move infect neighbours function to infection object or infectious behaviour interface

Simulation set up and simulation running

WorldBankCovid19Sim

Responsibilities

  • Configures simulation
  • Configures output
  • Determines what is included in the simulation
  • Initialised the simulation
  • Handles the 'day to day' running of the simulation as things change over time
  • Has helper functions

Unit tests

  • tbd

Proposed changes

  • Possibly separate the simulation initialisation and simulation day-to-day running into separate files
  • Move the helper functions to a separate file

Params

Responsibilities

  • Read in parameter files and store them, attached to simulation object

Unit tests

  • tbd

Proposed changes

  • tbd

Demography

Responsibilities

  • Creates births and deaths in the population

Unit tests

  • Test births are increasing the population size
  • Births do not occur in biological males
  • Death rates are dependent on biological sex
  • Peoples ages update yearly

Proposed changes

  • None

Spurious symptoms

Responsibilities

  • Is an interface which spurious symptoms from different disease will implement

Unit tests

  • None for now

Proposed changes

  • Finish developing and get into main

Covid Spurious symptoms

Responsibilities

  • Generates and removes spurious symptoms of COVID in the population

Unit tests

  • Make sure spurious symptoms last only for a week
  • Make sure spurious symptoms only occur in people without covid or asymptomatic covid
  • Make sure each person with spurious symptoms is eligible for COVID testing.

Proposed changes

  • Finish developing and get into main

Disease Testing

Responsibilities

  • Is an interface from which different disease tests will inherit from

Unit tests

  • None

Proposed changes

  • Finish developing and get into main

Covid Testing

Responsibilities

  • Inherits from disease testing
  • Determines the number of tests available each day
  • Determines where the tests can take place
  • Administers tests to people who exhibit COVID symptoms in districts with COVID testing

Unit tests

  • Make sure tests only happen in testing districts
  • Make sure the total test counts don't exceed the number of tests available

Proposed changes

  • Finish developing and get into main

Logging

Responsibilities

  • Measures and produces output on various parts of the model (COVID, Demography and testing so far)

Unit tests

  • tbd

Proposed changes

  • Make this the only place where model output is created

Import export

Responsibilities

  • Currently looks like this does a similar thing to Logging

Unit tests

  • tbd

Proposed changes

  • Move the output into Logging.java and delete the file

Simulation calling files

single run etc..