Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}