FRED
Vaccine_Dose.h
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 
 All Classes Functions