Skip to content

Commit

Permalink
add new severe outcomes without counting comorbidities (#351)
Browse files Browse the repository at this point in the history
  • Loading branch information
acavelan authored Jan 5, 2023
1 parent 3166042 commit 9699e63
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 0 deletions.
3 changes: 3 additions & 0 deletions model/Clinical/Episode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ void Episode::report () {
// Malarial fevers: report bout
if (state & Episode::COMPLICATED) {
mon::reportMSACI( mon::MHE_SEVERE_EPISODES, surveyPeriod, ageGroup, cohortSet, 1 );
if (state & Episode::SEVERE) {
mon::reportMSACI( mon::MHE_SEVERE_EPISODES_WITHOUT_COMORBIDITIES, surveyPeriod, ageGroup, cohortSet, 1 );
}
} else { // UC or UC2
mon::reportMSACI( mon::MHE_UNCOMPLICATED_EPISODES, surveyPeriod, ageGroup, cohortSet, 1 );
}
Expand Down
2 changes: 2 additions & 0 deletions model/Clinical/Episode.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ class Episode{
MALARIA = WithinHost::Pathogenesis::MALARIA, ///< Malaria sickness
/// Used by ClinicalEventScheduler to indicate a second bout of malarial sickness within the same episode (roughly)
SECOND_CASE = 0x10,
SEVERE = 0x8, ///< Severe malaria case
COINFECTION = 0x4, ///< Malaria with a coinfection
COMPLICATED = WithinHost::Pathogenesis::COMPLICATED, ///< Flag used to indicate SEVERE and/or COINFECTION

//NEED_ANTIBIOTIC = 0x40, ///< Flag indicates a non-malaria fever requires (antibiotic) treatment
Expand Down
1 change: 1 addition & 0 deletions model/Host/WithinHost/Pathogenesis/PathogenesisModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ Pathogenesis::StatePair PathogenesisModel::determineState(Host::Human& human,
// Expectation of a severe bout:
const double exSevere = prSevereEpisode + (1.0 - prSevereEpisode) * pCoinfection;
mon::reportStatMHF( mon::MHF_EXPECTED_SEVERE, human, exSevere );
mon::reportStatMHF( mon::MHF_EXPECTED_SEVERE_WITHOUT_COMORBIDITIES, human, prSevereEpisode );

if( human.rng().bernoulli( prSevereEpisode ) )
result.state = STATE_SEVERE;
Expand Down
11 changes: 11 additions & 0 deletions model/mon/OutputMeasures.h
Original file line number Diff line number Diff line change
Expand Up @@ -455,15 +455,26 @@ void defineOutMeasures(){
* the reporting period. */
namedOutMeasures["innoculationsPerVector"] =
OutMeasure::species( 79, MVF_INOCS, false );

/** Number of custom intervention reports done */
namedOutMeasures["nCMDTReport"] =
OutMeasure::humanAC( 80, MCD_CMDT_REPORT, false );

/// Similar to nSevere. Number of severe episodes WITHOUT coinfection
namedOutMeasures["nSevereWithoutComorbidities"] =
OutMeasure::humanAC( 81, MHE_SEVERE_EPISODES_WITHOUT_COMORBIDITIES, false );
/** Similar to 'expectedSevere'.
* Expected number of severe bouts of malaria WITHOUT "complications due
* to coinfection" (the same as the `nSevereWithoutComorbidities` output). */
namedOutMeasures["expectedSevereWithoutComorbidities"] =
OutMeasure::humanAC( 82, MHF_EXPECTED_SEVERE_WITHOUT_COMORBIDITIES, true );

// Now initialise valid condition measures:
for( const NamedMeasureMapT::value_type& v : namedOutMeasures ){
Measure m = v.second.m;
// Not the following:
if( m == mon::MHE_SEVERE_EPISODES ||
m == mon::MHE_SEVERE_EPISODES_WITHOUT_COMORBIDITIES ||
m == mon::MHE_UNCOMPLICATED_EPISODES ||
m == mon::MHO_DIRECT_DEATHS ||
m == mon::MHO_HOSPITAL_DEATHS ||
Expand Down
4 changes: 4 additions & 0 deletions model/mon/reporting.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ enum Measure{
MHE_UNCOMPLICATED_EPISODES,
// Number of severe fever episodes in humans. Units: cases
MHE_SEVERE_EPISODES,
// Number of severe fever episodes without counting episodes due to comorbidities in humans. Units: cases
MHE_SEVERE_EPISODES_WITHOUT_COMORBIDITIES,
// Number of fever episodes in humans not due to malaria. Units: cases
MHE_NON_MALARIA_FEVERS,

Expand Down Expand Up @@ -166,6 +168,8 @@ enum Measure{
MHF_EXPECTED_SEQUELAE,
// Expected severe bouts
MHF_EXPECTED_SEVERE,
// Expected severe bouts without counting expected episodes due to comorbidites
MHF_EXPECTED_SEVERE_WITHOUT_COMORBIDITIES,

// ——— MVF: vector (transmission) measures (doubles) ———
// Infectiousness of human population to mosquitoes
Expand Down

0 comments on commit 9699e63

Please sign in to comment.