Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import uk.ac.ucl.protecs.objects.hosts.Person.OCCUPATION;
import uk.ac.ucl.protecs.objects.hosts.Person.SEX;
import uk.ac.ucl.protecs.objects.locations.Household;
import uk.ac.ucl.protecs.objects.locations.Location;
import uk.ac.ucl.protecs.objects.locations.Workplace;
import uk.ac.ucl.protecs.sim.WorldBankCovid19Sim;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package uk.ac.ucl.protecs.behaviours;

import uk.ac.ucl.protecs.objects.hosts.Person;
import uk.ac.ucl.protecs.objects.hosts.Person.SEX;
import uk.ac.ucl.protecs.objects.locations.Location;
import uk.ac.ucl.protecs.sim.*;
import sim.engine.Steppable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ public double next(Steppable s, double time) {
}
((Person) i.getHost()).infectNeighbours();
i.setAsympt();

i.setInfectionActive(true);
// determine when the agent will recover - this is
// only a matter of time in this case
if(time >= i.time_recovered){
Expand Down Expand Up @@ -306,6 +306,8 @@ public double next(Steppable s, double time) {
i.setSymptomatic();
i.setMild();
i.setEligibleForTesting();
i.setInfectionActive(true);

if (i.getHost().getDiseaseSet().containsKey(DISEASE.COVIDSPURIOUSSYMPTOM.key)) {
i.getHost().getDiseaseSet().get(DISEASE.COVIDSPURIOUSSYMPTOM.key).setAsympt();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package uk.ac.ucl.protecs.objects.diseases;

import uk.ac.ucl.protecs.behaviours.diseaseProgression.CoronavirusDiseaseProgressionFramework.CoronavirusBehaviourNodeTitle;
import uk.ac.ucl.protecs.objects.hosts.Person;

import uk.ac.ucl.protecs.objects.locations.Household;
import uk.ac.ucl.protecs.objects.locations.Location;
import uk.ac.ucl.protecs.objects.locations.Workplace;
import uk.ac.ucl.protecs.sim.WorldBankCovid19Sim;
import uk.ac.ucl.protecs.sim.WorldBankCovid19Sim.DISEASE;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,9 @@ public abstract class Disease implements Steppable {
boolean hasRecoveredLogged = false;
boolean hasSusceptibleLogged = false;
boolean hasLogged = false;


boolean isInfectionActive = false;


// =============================================== relevant information on the host ==============================================================
public Host getHost() {return this.host;}

Expand Down Expand Up @@ -274,6 +275,15 @@ public void confirmLogged() {
}

public abstract String writeOut();


public boolean isInfectionActive() {
return isInfectionActive;
}

public void setInfectionActive(boolean isActive) {
this.isInfectionActive = isActive;
}

// =============================================== Disease testing ====================================================================================
public boolean isEligibleForTesting() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package uk.ac.ucl.protecs.objects.hosts;

import java.util.HashMap;
import java.util.HashSet;

import sim.engine.SimState;
import uk.ac.ucl.protecs.behaviours.diseaseProgression.CholeraDiseaseProgressionFramework.CholeraBehaviourNodeInHumans;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package uk.ac.ucl.protecs.sim;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.stream.Collectors;

import uk.ac.ucl.protecs.behaviours.*;
import uk.ac.ucl.protecs.objects.diseases.CoronavirusInfection;
import uk.ac.ucl.protecs.behaviours.diseaseProgression.DummyWaterborneDiseaseProgressionFramework;
import uk.ac.ucl.protecs.behaviours.diseaseProgression.DummyNonCommunicableDiseaseProgressionFramework;
import uk.ac.ucl.protecs.objects.diseases.DummyNonCommunicableDisease;
import uk.ac.ucl.protecs.objects.diseases.DummyWaterborneDisease;
import uk.ac.ucl.protecs.objects.diseases.Disease;
import uk.ac.ucl.protecs.objects.diseases.DummyInfectiousDisease;
import uk.ac.ucl.protecs.objects.hosts.Person;
import uk.ac.ucl.protecs.objects.hosts.Person.OCCUPATION;
import uk.ac.ucl.protecs.objects.hosts.Person.SEX;
Expand All @@ -26,11 +19,10 @@
import uk.ac.ucl.protecs.objects.locations.Location;
import uk.ac.ucl.protecs.objects.locations.Workplace;
import uk.ac.ucl.protecs.sim.loggers.LoggingSetup;
import uk.ac.ucl.protecs.sim.loggers.DemographyLogging;
import uk.ac.ucl.protecs.sim.loggers.SocialContactsLogging;
import uk.ac.ucl.protecs.sim.loggers.SharedLoggingBins;
import uk.ac.ucl.protecs.sim.loggers.GeneratePopulationStats;
import uk.ac.ucl.protecs.sim.loggers.CovidLogging;
import uk.ac.ucl.protecs.behaviours.diseaseProgression.SpuriousSymptomDiseaseProgressionFramework;
import uk.ac.ucl.protecs.behaviours.diseaseSpread.DummyNCDOnset;
import uk.ac.ucl.protecs.behaviours.diseaseProgression.CholeraDiseaseProgressionFramework;
import uk.ac.ucl.protecs.behaviours.diseaseProgression.CoronavirusDiseaseProgressionFramework;
import uk.ac.ucl.protecs.behaviours.diseaseProgression.DummyInfectiousDiseaseProgressionFramework;
Expand Down Expand Up @@ -106,11 +98,20 @@ public class WorldBankCovid19Sim extends SimState {
public static int param_schedule_movement = 1;
public static int param_schedule_updating_locations = 5;
public static int param_schedule_infecting = 10;
public static int param_schedule_reporting = 100;
public static int param_schedule_calculate_statistics = 100;
public static int param_schedule_reporting = param_schedule_calculate_statistics + 1;
public static int param_schedule_COVID_SpuriousSymptoms = 98;
public static int param_schedule_COVID_Testing = 99;
public static int param_schedule_reporting_reset = param_schedule_reporting + 1;

public static HashMap<String, Integer> malePopulationSizes = new HashMap<String, Integer>();
public static HashMap<String, Integer> femalePopulationSizes = new HashMap<String, Integer>();
public static HashMap<String, Integer> allPopulationSizes = new HashMap<String, Integer>();

public static GeneratePopulationStats populationStats;
public static Map<SEX, SharedLoggingBins> popStatMap;


// Create a enum list of diseases modelled currently, these will be used to categorise any infections a person may get over the course of the simulation.
public enum DISEASE{
DUMMY_NCD("DUMMY_NCD"), DUMMY_INFECTIOUS("DUMMY_INFECTIOUS"), DUMMY_WATERBORNE("DUMMY_WATERBORNE"), COVID("COVID-19"), COVIDSPURIOUSSYMPTOM("COVID-19_SPURIOUS_SYMPTOM"),
Expand Down Expand Up @@ -442,7 +443,9 @@ public void step(SimState arg0) {
LoggingSetup.setupOutputFileNames(this);
// schedule the logging for the simulation
LoggingSetup.scheduleLoggers(this);

// =============================== Initialise tracking of population stats =======================================================
popStatMap = GeneratePopulationStats.buildStats(this);
GeneratePopulationStats.setUpAgeHashMapKeys(this);

// SCHEDULE LOCKDOWNS
Steppable lockdownTrigger = new Steppable() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,12 @@
import uk.ac.ucl.protecs.behaviours.diseaseProgression.DummyNonCommunicableDiseaseProgressionFramework;
import uk.ac.ucl.protecs.behaviours.diseaseProgression.DummyWaterborneDiseaseProgressionFramework;
import uk.ac.ucl.protecs.behaviours.diseaseSpread.DummyNCDOnset;
import uk.ac.ucl.protecs.behaviours.diseaseSpread.DummyNCDOnset.causeDummyNCDs;
import uk.ac.ucl.protecs.objects.diseases.Cholera;
import uk.ac.ucl.protecs.objects.diseases.CoronavirusInfection;
import uk.ac.ucl.protecs.objects.diseases.DummyInfectiousDisease;
import uk.ac.ucl.protecs.objects.diseases.DummyNonCommunicableDisease;
import uk.ac.ucl.protecs.objects.diseases.DummyWaterborneDisease;
import uk.ac.ucl.protecs.objects.hosts.Person;
import uk.ac.ucl.protecs.objects.hosts.Water;
import uk.ac.ucl.protecs.objects.locations.Household;
import uk.ac.ucl.protecs.objects.locations.Location;
import uk.ac.ucl.protecs.sim.WorldBankCovid19Sim.DISEASE;

Expand Down Expand Up @@ -79,9 +76,11 @@ static void seed_infections_in_humans(WorldBankCovid19Sim world) {
CoronavirusInfection inf = new CoronavirusInfection(p, null, world.covidInfectiousFramework.getInfectedEntryPoint(l), world, 0);
if (inf.getBehaviourName().equals("asymptomatic")) {
inf.setAsympt();
inf.setInfectionActive(true);
}
else {
inf.setMild();
inf.setInfectionActive(true);
}
world.schedule.scheduleOnce(1, world.param_schedule_infecting, inf);
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
import uk.ac.ucl.protecs.behaviours.diseaseProgression.DummyWaterborneDiseaseProgressionFramework;
import uk.ac.ucl.protecs.objects.diseases.Cholera;
import uk.ac.ucl.protecs.objects.diseases.DummyWaterborneDisease;
import uk.ac.ucl.protecs.objects.hosts.Person;
import uk.ac.ucl.protecs.objects.hosts.Water;
import uk.ac.ucl.protecs.objects.locations.Household;
import uk.ac.ucl.protecs.objects.locations.Location;
import uk.ac.ucl.protecs.sim.WorldBankCovid19Sim.DISEASE;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,8 @@
package uk.ac.ucl.protecs.sim.loggers;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import sim.engine.SimState;
import sim.engine.Steppable;
import uk.ac.ucl.protecs.objects.diseases.Disease;
import uk.ac.ucl.protecs.objects.hosts.Person;
import uk.ac.ucl.protecs.objects.hosts.Person.OCCUPATION;
import uk.ac.ucl.protecs.objects.hosts.Person.SEX;
import uk.ac.ucl.protecs.sim.ImportExport;
import uk.ac.ucl.protecs.sim.WorldBankCovid19Sim;
import uk.ac.ucl.protecs.sim.WorldBankCovid19Sim.DISEASE;

Expand Down
Loading