void ClinicalModel::update (Human& human, double ageYears, bool newBorn) { if (doomed < NOT_DOOMED) // Countdown to indirect mortality doomed -= sim::oneTS().inDays(); //indirect death: if this human's about to die, don't worry about further episodes: if (doomed <= DOOMED_EXPIRED) { //clinical bout 6 intervals before mon::reportMHI( mon::MHO_INDIRECT_DEATHS, human, 1 ); doomed = DOOMED_INDIRECT; return; } if(newBorn /* i.e. first update since birth */) { // Chance of neonatal mortality: if (Host::NeonatalMortality::eventNeonatalMortality()) { mon::reportMHI( mon::MHO_INDIRECT_DEATHS, human, 1 ); doomed = DOOMED_NEONATAL; return; } } doClinicalUpdate (human, ageYears); }
void ClinicalModel::update (WithinHost::WithinHostModel& withinHostModel, double ageYears, SurveyAgeGroup ageGroup, int ageTimeSteps) { if (_doomed < 0) // Countdown to indirect mortality _doomed -= Global::interval; //indirect death: if this human's about to die, don't worry about further episodes: if (_doomed <= -35) { //clinical episode 6 intervals before Surveys.current->reportIndirectDeaths (ageGroup, 1); _doomed = DOOMED_INDIRECT; return; } if(ageTimeSteps == 1) { // Chance of neonatal mortality: if (Host::NeonatalMortality::eventNeonatalMortality()) { Surveys.current->reportIndirectDeaths (ageGroup, 1); _doomed = DOOMED_NEONATAL; return; } } doClinicalUpdate (withinHostModel, ageYears, ageGroup); }