FRED
|
00001 /* 00002 Copyright 2009 by the University of Pittsburgh 00003 Licensed under the Academic Free License version 3.0 00004 See the file "LICENSE" for more information 00005 */ 00006 00007 // 00008 // 00009 // File: VaccineDose.h 00010 // 00011 00012 #ifndef _FRED_VACCINEDOSE_H 00013 #define _FRED_VACCINEDOSE_H 00014 00015 #include "Global.h" 00016 #include "Age_Map.h" 00017 00018 class Vaccine_Dose { 00019 // Vaccine_Dose is a class to hold the efficacy and dosing information 00020 // for a vaccine. A vaccine may have as many doses as it needs. 00021 public: 00022 // Creation Operators 00023 Vaccine_Dose(Age_Map* _efficacy, Age_Map* _efficacy_delay, int _days_between_doses); 00024 ~Vaccine_Dose(); 00025 00026 //Parameter Access 00027 Age_Map* get_efficacy_map() const { return efficacy;} 00028 Age_Map* get_efficacy_delay_map() const { return efficacy_delay;} 00029 00030 double get_efficacy(int age) const { return efficacy->find_value(age); } 00031 double get_efficacy_delay(int age) const { return efficacy_delay->find_value(age); } 00032 int get_days_between_doses() const { return days_between_doses; } 00033 00034 bool is_within_age(int age) const; 00035 00036 //Utility Functions... no need for update or reset. 00037 void print() const; 00038 00039 private: 00040 int days_between_doses; // Number of days until the next dose is administered 00041 Age_Map* efficacy; // Age specific efficacy of vaccine, does the dose provide immunity 00042 Age_Map* efficacy_delay; // Age specific delay to efficacy, how long does it take to develop immunity 00043 00044 protected: 00045 Vaccine_Dose() { } 00046 }; 00047 00048 #endif 00049 00050 00051 00052