use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SafetyBurden {
pub total_drugs_approved: u32,
pub drugs_with_boxed_warnings: u32,
pub drugs_with_rems: u32,
pub class_effects: Vec<ClassEffect>,
pub notable_withdrawals: Vec<DrugWithdrawal>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ClassEffect {
pub drug_class: String,
pub event: String,
pub evidence_strength: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DrugWithdrawal {
pub drug_name: String,
pub year: u16,
pub reason: String,
}
impl SafetyBurden {
pub fn boxed_warning_rate(&self) -> f64 {
if self.total_drugs_approved == 0 {
return 0.0;
}
f64::from(self.drugs_with_boxed_warnings) / f64::from(self.total_drugs_approved)
}
}