Epidemiology cfm create a detailed ppt covering all the aspects and content including basics for a post graduation student completed mbbs take reference from park textbook
mkdir -p /home/daytona/workspace/epidemiology-ppt && ls /home/daytona/workspace/…
~/epidemiology-ppt/epidemiology.js
const pptxgen = require("pptxgenjs");
let pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
pres.author = 'Orris Medical';
pres.title = 'Epidemiology - Community Medicine (CFM)';
// ─── COLOR PALETTE ───────────────────────────────────────────────
const C = {
navy: "0D2B55", // dominant dark background
teal: "1B6B8A", // section headers / accent boxes
gold: "E8A838", // accent highlights / numbers
white: "FFFFFF",
offwhite:"F0F4F8",
slate: "2D4A6B", // body text on light bg
light: "D6E8F5", // light card background
green: "2A7A4B", // positive callouts
red: "C0392B", // warning / important
};
// ─── HELPERS ─────────────────────────────────────────────────────
function addTitleSlide(title, subtitle) {
let sl = pres.addSlide();
// Full dark background
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:'100%', fill:{color:C.navy} });
// Gold accent bar top
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:0.08, fill:{color:C.gold} });
// Gold accent bar bottom
sl.addShape(pres.ShapeType.rect, { x:0, y:5.545, w:'100%', h:0.08, fill:{color:C.gold} });
// Decorative circle
sl.addShape(pres.ShapeType.ellipse, { x:8.2, y:0.5, w:2.5, h:2.5, fill:{color:C.teal}, line:{color:C.gold, width:3} });
sl.addText("E", { x:8.2, y:0.5, w:2.5, h:2.5, fontSize:80, bold:true, color:C.gold, align:"center", valign:"middle" });
sl.addText(title, { x:0.5, y:1.5, w:7.5, h:1.5, fontSize:38, bold:true, color:C.white, fontFace:"Calibri" });
sl.addText(subtitle, { x:0.5, y:3.1, w:7.5, h:0.8, fontSize:20, color:C.gold, fontFace:"Calibri", italic:true });
sl.addText("Reference: Park's Textbook of Preventive & Social Medicine", {
x:0.5, y:4.6, w:9, h:0.5, fontSize:12, color:C.light, fontFace:"Calibri", italic:true
});
return sl;
}
function addSectionDivider(num, title, subtitle) {
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:'100%', fill:{color:C.teal} });
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:0.12, h:'100%', fill:{color:C.gold} });
sl.addShape(pres.ShapeType.rect, { x:0, y:4.8, w:'100%', h:0.82, fill:{color:C.navy} });
sl.addText("0" + num, { x:0.3, y:0.4, w:2, h:2, fontSize:90, bold:true, color:C.gold, fontFace:"Calibri", transparency:30 });
sl.addText(title, { x:0.3, y:1.8, w:9.4, h:1.2, fontSize:34, bold:true, color:C.white, fontFace:"Calibri" });
sl.addText(subtitle, { x:0.3, y:4.85, w:9.4, h:0.65, fontSize:16, color:C.light, fontFace:"Calibri", italic:true });
return sl;
}
function addContentSlide(title, bullets, opts = {}) {
let sl = pres.addSlide();
const bg = opts.dark ? C.navy : C.offwhite;
const fg = opts.dark ? C.white : C.slate;
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:'100%', fill:{color:bg} });
// Header bar
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:0.75, fill:{color:C.teal} });
sl.addShape(pres.ShapeType.rect, { x:0, y:0.75, w:'100%', h:0.04, fill:{color:C.gold} });
sl.addText(title, { x:0.3, y:0.08, w:9.4, h:0.6, fontSize:22, bold:true, color:C.white, fontFace:"Calibri", margin:0 });
let bulletItems = bullets.map((b, i) => {
if (typeof b === 'string') {
return { text: b, options: { bullet: {type:"bullet", code:"25B6", color:C.gold}, breakLine: i < bullets.length-1, fontSize:17, color:fg, fontFace:"Calibri", paraSpaceBefore:4 } };
}
// sub-bullet object {text, sub:true}
return { text: b.text, options: { bullet: {type:"bullet", code:"25B8", color:C.teal, indent:20}, breakLine: i < bullets.length-1, fontSize:15, color:fg, fontFace:"Calibri", paraSpaceBefore:2, indentLevel:1 } };
});
sl.addText(bulletItems, { x:0.35, y:0.9, w:9.3, h:4.6, fontFace:"Calibri", valign:"top" });
return sl;
}
function addTwoColSlide(title, leftTitle, leftBullets, rightTitle, rightBullets) {
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:'100%', fill:{color:C.offwhite} });
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:0.75, fill:{color:C.navy} });
sl.addShape(pres.ShapeType.rect, { x:0, y:0.75, w:'100%', h:0.04, fill:{color:C.gold} });
sl.addText(title, { x:0.3, y:0.08, w:9.4, h:0.6, fontSize:22, bold:true, color:C.white, fontFace:"Calibri", margin:0 });
// Left card
sl.addShape(pres.ShapeType.rect, { x:0.3, y:0.95, w:4.5, h:4.5, fill:{color:C.light}, line:{color:C.teal, width:1.5}, rectRadius:0.1 });
sl.addText(leftTitle, { x:0.35, y:0.98, w:4.4, h:0.45, fontSize:16, bold:true, color:C.teal, fontFace:"Calibri" });
let lItems = leftBullets.map((b,i) => ({ text:b, options:{ bullet:{type:"bullet",code:"25BA",color:C.teal}, breakLine: i<leftBullets.length-1, fontSize:14, color:C.slate, fontFace:"Calibri", paraSpaceBefore:3 }}));
sl.addText(lItems, { x:0.4, y:1.48, w:4.3, h:3.9, fontFace:"Calibri", valign:"top" });
// Right card
sl.addShape(pres.ShapeType.rect, { x:5.2, y:0.95, w:4.5, h:4.5, fill:{color:C.light}, line:{color:C.gold, width:1.5}, rectRadius:0.1 });
sl.addText(rightTitle, { x:5.25, y:0.98, w:4.4, h:0.45, fontSize:16, bold:true, color:C.teal, fontFace:"Calibri" });
let rItems = rightBullets.map((b,i) => ({ text:b, options:{ bullet:{type:"bullet",code:"25BA",color:C.gold}, breakLine: i<rightBullets.length-1, fontSize:14, color:C.slate, fontFace:"Calibri", paraSpaceBefore:3 }}));
sl.addText(rItems, { x:5.3, y:1.48, w:4.3, h:3.9, fontFace:"Calibri", valign:"top" });
return sl;
}
function addTableSlide(title, headers, rows) {
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:'100%', fill:{color:C.offwhite} });
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:0.75, fill:{color:C.navy} });
sl.addShape(pres.ShapeType.rect, { x:0, y:0.75, w:'100%', h:0.04, fill:{color:C.gold} });
sl.addText(title, { x:0.3, y:0.08, w:9.4, h:0.6, fontSize:22, bold:true, color:C.white, fontFace:"Calibri", margin:0 });
let tableData = [
headers.map(h => ({ text:h, options:{ bold:true, color:C.white, fill:C.teal, fontSize:13, align:"center" } })),
...rows.map((row, ri) => row.map(cell => ({ text:cell, options:{ fontSize:12, color:C.slate, fill: ri%2===0 ? C.white : C.light, align:"left" } })))
];
sl.addTable(tableData, { x:0.3, y:0.88, w:9.4, h:4.6, border:{color:C.teal,pt:0.5}, fontFace:"Calibri" });
return sl;
}
function addCalloutSlide(title, mainText, callouts) {
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:'100%', fill:{color:C.navy} });
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:0.75, fill:{color:C.teal} });
sl.addShape(pres.ShapeType.rect, { x:0, y:0.75, w:'100%', h:0.04, fill:{color:C.gold} });
sl.addText(title, { x:0.3, y:0.08, w:9.4, h:0.6, fontSize:22, bold:true, color:C.white, fontFace:"Calibri", margin:0 });
sl.addText(mainText, { x:0.3, y:0.9, w:9.4, h:0.7, fontSize:15, color:C.gold, fontFace:"Calibri", italic:true });
let cols = Math.min(callouts.length, 3);
let w = 9.4 / cols;
callouts.forEach((c, i) => {
let col = i % cols;
let row = Math.floor(i / cols);
let x = 0.3 + col * w;
let y = 1.7 + row * 1.85;
sl.addShape(pres.ShapeType.rect, { x, y, w: w-0.15, h:1.7, fill:{color:C.teal}, line:{color:C.gold, width:1.5}, rectRadius:0.1 });
sl.addText(c.num, { x, y:y+0.05, w:w-0.15, h:0.45, fontSize:22, bold:true, color:C.gold, fontFace:"Calibri", align:"center" });
sl.addText(c.label, { x, y:y+0.45, w:w-0.15, h:0.4, fontSize:13, bold:true, color:C.white, fontFace:"Calibri", align:"center" });
sl.addText(c.desc, { x, y:y+0.88, w:w-0.15, h:0.78, fontSize:11, color:C.light, fontFace:"Calibri", align:"center" });
});
return sl;
}
// ═══════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ═══════════════════════════════════════════════════════════════
addTitleSlide(
"EPIDEMIOLOGY",
"Community Medicine (CFM) | Postgraduate Reference | Park's Textbook"
);
// ═══════════════════════════════════════════════════════════════
// SLIDE 2 — TABLE OF CONTENTS
// ═══════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:'100%', fill:{color:C.offwhite} });
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:0.75, fill:{color:C.navy} });
sl.addShape(pres.ShapeType.rect, { x:0, y:0.75, w:'100%', h:0.04, fill:{color:C.gold} });
sl.addText("TABLE OF CONTENTS", { x:0.3, y:0.08, w:9.4, h:0.6, fontSize:22, bold:true, color:C.white, fontFace:"Calibri", margin:0 });
const topics = [
["01", "Introduction & Definition of Epidemiology"],
["02", "Scope, Uses & History"],
["03", "Basic Concepts: Natural History & Spectrum of Disease"],
["04", "Epidemiological Triad & Web of Causation"],
["05", "Measurements in Epidemiology: Rates, Ratios & Proportions"],
["06", "Descriptive Epidemiology: Time, Place, Person"],
["07", "Analytical Epidemiology: Case-Control & Cohort Studies"],
["08", "Experimental Epidemiology & RCTs"],
["09", "Causation: Hill's Criteria"],
["10", "Bias, Confounding & Errors in Epidemiological Studies"],
["11", "Screening in Epidemiology"],
["12", "Outbreak Investigation"],
];
topics.forEach(([num, text], i) => {
let col = i < 6 ? 0 : 1;
let row = i < 6 ? i : i - 6;
sl.addShape(pres.ShapeType.rect, { x: 0.3 + col*4.8, y: 0.95 + row*0.73, w:0.5, h:0.55, fill:{color:C.teal}, rectRadius:0.05 });
sl.addText(num, { x: 0.3 + col*4.8, y: 0.95 + row*0.73, w:0.5, h:0.55, fontSize:13, bold:true, color:C.gold, fontFace:"Calibri", align:"center", valign:"middle" });
sl.addText(text, { x: 0.85 + col*4.8, y: 0.97 + row*0.73, w:4.1, h:0.5, fontSize:13, color:C.slate, fontFace:"Calibri", valign:"middle" });
});
}
// ═══════════════════════════════════════════════════════════════
// SECTION 1 — INTRODUCTION
// ═══════════════════════════════════════════════════════════════
addSectionDivider(1, "Introduction & Definition", "What is Epidemiology? Origins, Evolution & Core Concepts");
addContentSlide("Definition of Epidemiology (Park's Textbook)", [
"International Epidemiological Association (IEA) defines epidemiology as:",
{ text:'"The study of the occurrence and distribution of health-related events, states, and processes in specified populations, including the study of the determinants influencing such processes, and the application of this knowledge to control relevant health problems."', sub:true },
"3 Core Components of most definitions:",
{ text:"Disease Frequency — measurement expressed as rates & ratios (incidence, prevalence, death rates)", sub:true },
{ text:"Distribution — analysis by TIME (when), PLACE (where) and PERSON (who)", sub:true },
{ text:"Determinants — biological, behavioural, social, economic & environmental factors influencing health", sub:true },
"Application to control makes explicit the aim: to promote, protect and restore health",
]);
addContentSlide("Historical Evolution of Epidemiology", [
"Hippocrates (460–377 BC) — 'On Airs, Waters and Places': first rational explanation of disease causation",
"John Graunt (1662) — First quantitative analysis of mortality bills in London",
"William Farr (19th century) — Established vital statistics and showed social determinants of disease",
"John Snow (1854) — 'Father of Epidemiology': Cholera map of Broad Street pump, London",
"Ignaz Semmelweis — Handwashing and puerperal fever (1848)",
"Modern era (20th century): Doll & Hill smoking-lung cancer study (1950); Framingham Heart Study (1948)",
"Current: COVID-19 pandemic demonstrates real-time global epidemiology in action",
]);
// ═══════════════════════════════════════════════════════════════
// SECTION 2 — SCOPE & USES
// ═══════════════════════════════════════════════════════════════
addSectionDivider(2, "Scope & Uses of Epidemiology", "Morris's 7 Uses | Aims | Relationship with Clinical Medicine");
addCalloutSlide("7 Uses of Epidemiology (Morris)", "As identified by J.N. Morris — the 'SEVEN USES' — extending beyond disease causation", [
{ num:"1", label:"History of Disease", desc:"Study rise & fall of diseases in populations; identify emerging health problems" },
{ num:"2", label:"Community Diagnosis", desc:"Identify & quantify health problems in terms of mortality & morbidity rates" },
{ num:"3", label:"Planning & Evaluation", desc:"Assess health services; plan & evaluate prevention & control programmes" },
{ num:"4", label:"Evaluation of Risk", desc:"Identify risk factors; estimate individual & population risk" },
{ num:"5", label:"Completing Clinical Picture", desc:"Describe natural history of disease from first exposure to final outcome" },
{ num:"6", label:"Identifying Syndromes", desc:"Define clinical syndromes via associations between symptoms & test results" },
]);
addContentSlide("Aims of Epidemiology (IEA)", [
"1. To DESCRIBE the distribution and magnitude of health and disease problems in human populations",
"2. To IDENTIFY aetiological factors (risk factors) in the pathogenesis of disease",
"3. To PROVIDE DATA essential to planning, implementation and evaluation of health services",
"Ultimate aim — to lead to EFFECTIVE ACTION:",
{ text:"To eliminate or reduce the health problem or its consequences", sub:true },
{ text:"To promote the health and well-being of society as a whole", sub:true },
"Epidemiology vs Clinical Medicine:",
{ text:"Clinical medicine: unit of study = individual CASE | focuses on diagnosis, prognosis, treatment", sub:true },
{ text:"Epidemiology: unit of study = DEFINED POPULATION | focuses on disease patterns, rates, causes", sub:true },
{ text:"Epidemiologist identifies exposure/cause → determines future trends → recommends control measures", sub:true },
]);
// ═══════════════════════════════════════════════════════════════
// SECTION 3 — NATURAL HISTORY & SPECTRUM
// ═══════════════════════════════════════════════════════════════
addSectionDivider(3, "Natural History & Spectrum of Disease", "Stages of Disease | Iceberg Phenomenon | Levels of Prevention");
addContentSlide("Natural History of Disease", [
"Natural history = progression of a disease process in an individual OVER TIME if no treatment intervention",
"STAGE 1 — Susceptibility (Pre-pathogenesis phase):",
{ text:"Disease not yet developed; risk factors present; host susceptible", sub:true },
{ text:"Interaction of agent, host & environment determines susceptibility", sub:true },
"STAGE 2 — Sub-clinical Disease (Pre-symptomatic/incubation):",
{ text:"Pathological changes occurring; no signs/symptoms yet", sub:true },
{ text:"Ends at onset of symptoms (biological onset)", sub:true },
"STAGE 3 — Clinical Disease:",
{ text:"Signs & symptoms manifest; illness recognizable", sub:true },
"STAGE 4 — Resolution:",
{ text:"Recovery, disability, carrier state, or death", sub:true },
"KEY POINT: Epidemiology intervenes at ALL stages → Levels of Prevention (Leavell & Clark)",
]);
addTwoColSlide("Iceberg Phenomenon & Spectrum of Disease",
"Iceberg Concept (J.D. Millar)",
[
"Clinically apparent cases = 'tip of the iceberg'",
"Below the surface: subclinical infections, carriers, inapparent cases",
"True disease burden in community >> reported cases",
"Importance for epidemiology: need surveys & screening",
"Example: For every clinical typhoid case → many subclinical cases",
"Influences interpretation of incidence and prevalence data",
],
"Spectrum of Disease",
[
"Disease exists on a spectrum from sub-clinical → mild → moderate → severe → fatal",
"Spectrum determines: infectiousness, transmissibility, control strategies",
"Infection spectrum in measles: unapparent → mild → classical → encephalitis",
"Clinical severity ratio = clinical cases / total infected",
"Determines effectiveness of isolation and control",
"Affects validity of case definitions in outbreak investigations",
]
);
addContentSlide("Levels of Prevention (Leavell & Clark)", [
"PRIMARY PREVENTION — Action taken BEFORE disease onset (pre-pathogenesis stage):",
{ text:"Health promotion: nutrition, hygiene, exercise, health education", sub:true },
{ text:"Specific protection: immunization, chemoprophylaxis, environmental sanitation", sub:true },
"SECONDARY PREVENTION — Early detection & treatment (pathogenesis stage):",
{ text:"Early diagnosis: screening tests, mass surveys, case finding", sub:true },
{ text:"Adequate treatment to arrest disease & prevent complications", sub:true },
"TERTIARY PREVENTION — Limitation of disability & rehabilitation:",
{ text:"Disability limitation: prevent or limit further deterioration", sub:true },
{ text:"Rehabilitation: physical, mental, social — restore maximum function", sub:true },
"PRIMORDIAL PREVENTION (Strasser, 1978): prevent emergence of risk factors in population",
{ text:"e.g., prevent childhood obesity before CV risk factors develop", sub:true },
]);
// ═══════════════════════════════════════════════════════════════
// SECTION 4 — EPIDEMIOLOGICAL TRIAD & WEB OF CAUSATION
// ═══════════════════════════════════════════════════════════════
addSectionDivider(4, "Epidemiological Triad & Web of Causation", "Agent–Host–Environment | Models of Causation | Risk Factors");
addTwoColSlide("Epidemiological Triad (Triangle)",
"The Three Components",
[
"AGENT: Causative factor (biological, chemical, physical, nutritional, genetic)",
"• Infectious: bacteria, viruses, fungi, parasites",
"• Non-infectious: allergens, chemicals, radiation",
"HOST: The human being who is affected",
"• Age, sex, race, genetic constitution",
"• Immune status, nutritional state, behaviour",
"ENVIRONMENT: External conditions affecting agent & host",
"• Physical, biological, social, economic",
],
"Causation Models in Epidemiology",
[
"TRIANGLE MODEL: Agent–Host–Environment interact",
"WHEEL MODEL: Host (genetic core) surrounded by biological, social & physical environment",
"WEB OF CAUSATION (MacMahon & Pugh, 1960): Complex interplay of multiple factors",
"SUFFICIENT-COMPONENT CAUSE MODEL: Multiple component causes acting together",
"Key: Disease = result of multiple interacting factors, not a single cause",
"Modern approach: 'Upstream determinants' (social, economic, political)",
]
);
addContentSlide("Web of Causation — Key Concepts", [
"Proposed by MacMahon & Pugh (1960) — recognizes multifactorial causation",
"No single cause sufficient for most diseases — multiple interacting pathways",
"Types of Causes:",
{ text:"Necessary cause: must be present for disease to occur (e.g., M. tuberculosis for TB)", sub:true },
{ text:"Sufficient cause: alone can produce disease (rarely single factor)", sub:true },
{ text:"Risk factor: increases probability of disease occurrence", sub:true },
"Strength of association measured by Relative Risk (RR) and Odds Ratio (OR)",
"Biological gradient (dose-response): stronger exposure → greater effect",
"Implication: Removing ANY ONE factor from the web may prevent disease",
"Example web — Coronary Heart Disease: smoking + hypertension + diabetes + diet + genetics + stress",
]);
// ═══════════════════════════════════════════════════════════════
// SECTION 5 — MEASUREMENTS
// ═══════════════════════════════════════════════════════════════
addSectionDivider(5, "Measurements in Epidemiology", "Rates, Ratios & Proportions | Incidence & Prevalence | Mortality Measures");
addTableSlide("Key Measures: Rates, Ratios & Proportions",
["Measure", "Definition", "Example"],
[
["RATE", "Change in numerator per unit time; denominator = population at risk during time period", "Incidence rate = new cases / pop at risk × 1000"],
["RATIO", "Numerator NOT necessarily included in denominator; comparison of two quantities", "Sex ratio = Males / Females × 100"],
["PROPORTION", "Numerator IS part of denominator; dimensionless; 0-1 or 0-100%", "Attack rate = cases / exposed × 100"],
["INCIDENCE RATE", "Number of NEW cases in a defined population over a specified time period", "10 new TB cases per 100,000/year"],
["PREVALENCE RATE", "All existing cases (new + old) at a given point (point) or period (period)", "P ≈ I × D (for stable, chronic disease)"],
["ATTACK RATE", "Proportion of exposed individuals who develop disease; used in outbreak investigation", "Food-specific attack rate in food poisoning"],
]
);
addTableSlide("Important Mortality & Morbidity Rates",
["Rate", "Formula", "Reference Population"],
[
["Crude Death Rate (CDR)", "Total deaths in a year / Mid-year population × 1000", "Per 1000 population"],
["Infant Mortality Rate (IMR)", "Deaths under 1 yr / Live births in same year × 1000", "Per 1000 live births"],
["Under-5 Mortality Rate (U5MR)", "Deaths < 5 yrs / Live births × 1000", "Per 1000 live births"],
["Maternal Mortality Rate", "Deaths due to pregnancy/childbirth / Live births × 1,00,000", "Per 100,000 live births"],
["Case Fatality Rate (CFR)", "Deaths from a disease / Cases of that disease × 100", "% of cases that die"],
["Proportional Mortality Rate", "Deaths from specific cause / Total deaths × 100", "% of all deaths"],
["Standardized Mortality Ratio (SMR)", "Observed deaths / Expected deaths × 100", "Comparing populations with different age structures"],
]
);
addContentSlide("Incidence vs Prevalence — Critical Distinction", [
"INCIDENCE: Measures the RISK of developing disease (new cases only)",
{ text:"Longitudinal concept — measured over time", sub:true },
{ text:"Used to study etiology and aetiology of disease", sub:true },
{ text:"Formula: IR = New cases during period / Population at risk at start × k", sub:true },
"PREVALENCE: Measures the BURDEN of disease (all existing cases)",
{ text:"Cross-sectional snapshot of disease load", sub:true },
{ text:"Used for health service planning and resource allocation", sub:true },
{ text:"Formula: PR = All cases / Total population at a time point × k", sub:true },
"Relationship: Prevalence ≈ Incidence × Mean Duration (P = I × D)",
{ text:"Valid when prevalence is low and disease is in stable state", sub:true },
"POINT Prevalence: at a specific moment | PERIOD Prevalence: over a defined period",
"High incidence + short duration → low prevalence (e.g., common cold)",
"Low incidence + long duration → high prevalence (e.g., diabetes, hypertension)",
]);
// ═══════════════════════════════════════════════════════════════
// SECTION 6 — DESCRIPTIVE EPIDEMIOLOGY
// ═══════════════════════════════════════════════════════════════
addSectionDivider(6, "Descriptive Epidemiology", "Time • Place • Person | Study Designs | Hypothesis Generation");
addContentSlide("Descriptive Epidemiology — Overview", [
"DEFINITION: Studies concerned with observing the DISTRIBUTION of disease in human populations",
"Asks the basic questions: WHEN? WHERE? WHO?",
"PROCEDURES (Park's Table 8):",
{ text:"1. Define the population to be studied", sub:true },
{ text:"2. Define the disease under study (case definition)", sub:true },
{ text:"3. Describe disease by TIME, PLACE and PERSON", sub:true },
{ text:"4. Measurement of disease frequency (rates)", sub:true },
{ text:"5. Comparison with known indices (national/international)", sub:true },
{ text:"6. Formulate an aetiological hypothesis for future testing", sub:true },
"Usually the FIRST phase of epidemiological investigation",
"Generates hypotheses → tested by Analytical Studies",
"Types: Case reports, Case series, Cross-sectional surveys, Ecological studies",
]);
addContentSlide("TIME Distribution in Descriptive Epidemiology", [
"TIME trends reveal clues about changing aetiology, population immunity, control measures",
"SECULAR (LONG-TERM) TRENDS: Changes over years/decades",
{ text:"Declining TB mortality before antibiotics (improved nutrition & housing)", sub:true },
{ text:"Rising CVD incidence with urbanization and lifestyle changes", sub:true },
"PERIODIC FLUCTUATIONS: Cyclical patterns",
{ text:"Annual cycles: influenza in winter months", sub:true },
{ text:"Biennial/triennial: measles epidemics before vaccination", sub:true },
"SEASONAL VARIATIONS: Disease peaks at certain times of year",
{ text:"Cholera, typhoid → monsoon/summer | Respiratory infections → winter", sub:true },
"EPIDEMIC CURVES: Pattern of new cases plotted over time during an outbreak",
{ text:"Point source: sharp bell curve (food poisoning, common source)", sub:true },
{ text:"Propagated source: multiple peaks rising over time (person-to-person)", sub:true },
"SHORT-TERM FLUCTUATIONS: Hour-by-hour or day-by-day (point source outbreak)",
]);
addContentSlide("PLACE Distribution in Descriptive Epidemiology", [
"Geographical variation — between countries, within countries, urban vs rural",
"International variation: cancer patterns differ by country → dietary/genetic factors",
"National variation: malaria in certain belt regions; kala-azar in Bihar & Bengal",
"Urban vs Rural: CHD higher in urban; waterborne diseases higher in rural",
"Local patterns: spot maps — identify clusters, source of infection",
{ text:"John Snow's dot map of cholera cases → identified Broad Street pump", sub:true },
"Clustering: spatial clustering may suggest common source or environmental exposure",
"Herd Immunity: geographic variation in vaccination coverage affects disease spread",
"Mapping tools: GIS (Geographic Information Systems) in modern epidemiology",
"Examples of place-based insights:",
{ text:"Burkitt's lymphoma: tropical Africa → Epstein-Barr virus + malaria co-factor", sub:true },
{ text:"Mesothelioma: industrial zones with asbestos factories", sub:true },
]);
addContentSlide("PERSON Distribution in Descriptive Epidemiology", [
"Who gets the disease? Identifies high-risk subgroups in the population",
"AGE: Most important personal variable; affects susceptibility & exposure",
{ text:"Infectious diseases: higher in children (chickenpox, measles)", sub:true },
{ text:"Degenerative diseases: higher in elderly (CHD, osteoarthritis, cancer)", sub:true },
"SEX: Biological differences (hormonal, anatomical) + behavioural differences",
{ text:"Males: higher CVD, occupational diseases, alcoholism, accidents", sub:true },
{ text:"Females: higher autoimmune diseases, depression, thyroid disorders", sub:true },
"ETHNICITY / RACE: Genetic susceptibility + cultural/dietary/socioeconomic factors",
"OCCUPATION: Occupational diseases; asbestos → mesothelioma; coal dust → CWP",
"MARITAL STATUS: Social isolation linked to higher morbidity & mortality",
"SOCIOECONOMIC STATUS: Strong determinant of health; linked to education, housing, nutrition",
"LIFESTYLE & BEHAVIOURS: Diet, smoking, alcohol, physical activity, sexual behaviour",
]);
// ═══════════════════════════════════════════════════════════════
// SECTION 7 — ANALYTICAL EPIDEMIOLOGY
// ═══════════════════════════════════════════════════════════════
addSectionDivider(7, "Analytical Epidemiology", "Case-Control Studies | Cohort Studies | Measures of Association");
addTwoColSlide("Case-Control vs Cohort Studies",
"CASE-CONTROL (Retrospective)",
[
"Start with DISEASE (cases) and non-disease (controls)",
"Look BACK at prior exposure history",
"Direction: Effect → Cause",
"Measures: Odds Ratio (OR)",
"Features: Fast, cheap, good for rare diseases",
"Limitations: Recall bias; no incidence rate; selection bias in controls",
"Example: Smoking history in lung cancer cases vs matched controls",
"Matching: age, sex, socioeconomic status",
"Mantel-Haenszel OR for matched/stratified analysis",
],
"COHORT (Prospective)",
[
"Start with EXPOSURE (exposed vs non-exposed groups)",
"Follow FORWARD over time for disease development",
"Direction: Cause → Effect",
"Measures: Relative Risk (RR); Attributable Risk (AR)",
"Features: Establishes temporal sequence; calculates true incidence",
"Limitations: Expensive, time-consuming; loss to follow-up",
"Example: Doll & Hill — followed doctors who smoked vs non-smokers",
"HISTORICAL cohort: looks back at records of a cohort defined in the past",
"Nested case-control: case-control within a cohort study",
]
);
addTableSlide("Measures of Association in Analytical Studies",
["Measure", "Formula", "Interpretation"],
[
["Relative Risk (RR)", "Incidence in exposed / Incidence in unexposed", "RR=1 no association; RR>1 risk factor; RR<1 protective"],
["Odds Ratio (OR)", "(a/c) / (b/d) from 2×2 table", "Approximates RR when disease is rare; used in case-control"],
["Attributable Risk (AR)", "Incidence(exposed) − Incidence(unexposed)", "Excess risk due to exposure; public health impact"],
["Population Attributable Risk (PAR)", "Incidence(total pop) − Incidence(unexposed)", "Risk in population attributable to the exposure"],
["PAR%", "PAR / Incidence(total pop) × 100", "% of disease in population attributable to exposure"],
["Number Needed to Harm (NNH)", "1 / AR", "Patients exposed needed to cause 1 extra adverse outcome"],
]
);
// ═══════════════════════════════════════════════════════════════
// SECTION 8 — EXPERIMENTAL EPIDEMIOLOGY
// ═══════════════════════════════════════════════════════════════
addSectionDivider(8, "Experimental Epidemiology", "RCTs | Clinical Trials | Community Trials | Field Trials");
addContentSlide("Experimental Epidemiology — Principles", [
"DEFINITION: Studies where investigator CONTROLS the conditions of study; deliberate intervention applied",
"Contrasts with observational studies: investigator takes action, not merely observes",
"AIMS:",
{ text:"(a) Provide scientific proof of aetiological factors → permit modification or control of disease", sub:true },
{ text:"(b) Measure effectiveness & efficiency of health services for prevention, control & treatment", sub:true },
"Types of Experimental Studies:",
{ text:"ANIMAL STUDIES: Reproduce human disease, test vaccines/drugs, study pathogenesis", sub:true },
{ text:"CLINICAL TRIALS: Test therapeutic agents in patients", sub:true },
{ text:"FIELD TRIALS: Test preventive agents in healthy individuals in community", sub:true },
{ text:"COMMUNITY TRIALS: Intervention applied to entire community groups", sub:true },
"Challenges: Cost, Ethics, Feasibility — plus advantages/disadvantages of cohort studies",
"Modern usage: Experimental epidemiology = RANDOMIZED CONTROLLED TRIALS (RCTs)",
]);
addContentSlide("Randomized Controlled Trials (RCTs)", [
"GOLD STANDARD of epidemiological evidence for testing interventions",
"KEY FEATURES:",
{ text:"Random allocation to experimental (treatment) and control groups", sub:true },
{ text:"Minimizes selection bias; ensures groups comparable at baseline", sub:true },
{ text:"Double-blind: neither participant nor assessor knows allocation", sub:true },
{ text:"Single-blind: participant doesn't know; triple-blind: analyst also blinded", sub:true },
"PHASES of Clinical Trials:",
{ text:"Phase I: Safety & pharmacokinetics (small group of volunteers)", sub:true },
{ text:"Phase II: Efficacy & dose range (small group of patients)", sub:true },
{ text:"Phase III: Large-scale efficacy vs standard treatment or placebo", sub:true },
{ text:"Phase IV: Post-marketing surveillance — long-term safety & effectiveness", sub:true },
"INTENTION-TO-TREAT analysis: all randomized subjects analysed in original group",
"CONSORT guidelines: standardized reporting of RCTs",
"Ethical requirements: Informed consent; equipoise (genuine uncertainty); oversight by IRB/IEC",
]);
// ═══════════════════════════════════════════════════════════════
// SECTION 9 — CAUSATION: HILL'S CRITERIA
// ═══════════════════════════════════════════════════════════════
addSectionDivider(9, "Causation in Epidemiology", "Hill's Criteria of Causation | Types of Associations");
addContentSlide("Types of Associations in Epidemiology", [
"An ASSOCIATION = statistical relationship between exposure and disease",
"Step 1: Determine if association is REAL or SPURIOUS",
"SPURIOUS (ARTEFACTUAL) ASSOCIATION — due to BIAS:",
{ text:"Selection bias: systematic error in selecting study participants", sub:true },
{ text:"Information/Observation bias: systematic error in collecting data (recall bias, interviewer bias)", sub:true },
{ text:"Confounding: third variable related to both exposure and outcome", sub:true },
"REAL ASSOCIATION — could be CAUSAL or NON-CAUSAL:",
{ text:"Non-causal: secondary or indirect association (confounding, reverse causation)", sub:true },
{ text:"Causal: direct cause-effect relationship", sub:true },
"To determine causality → apply BRADFORD HILL'S CRITERIA (1965)",
"Strength of association assessed by p-value, 95% CI, RR, OR",
]);
addCalloutSlide("Bradford Hill's Criteria of Causation (1965)", "9 viewpoints for judging whether an association is CAUSAL — applied to smoking-lung cancer evidence", [
{ num:"1", label:"Strength", desc:"Large RR/OR → less likely to be due to confounding; RR for smoking-lung cancer = 9–10x" },
{ num:"2", label:"Consistency", desc:"Association replicated by different investigators in different populations & times" },
{ num:"3", label:"Specificity", desc:"Association specific to particular disease and exposure; one cause–one effect" },
{ num:"4", label:"Temporality", desc:"Cause MUST precede effect — exposure before disease (only essential criterion)" },
{ num:"5", label:"Biological Gradient", desc:"Dose-response relationship: more smoking → higher lung cancer risk" },
{ num:"6", label:"Plausibility", desc:"Biologically plausible mechanism; chemical carcinogens in tobacco smoke" },
]);
addCalloutSlide("Bradford Hill's Criteria (Continued)", "Remaining criteria — note: NO single criterion is sufficient alone; weight of evidence approach", [
{ num:"7", label:"Coherence", desc:"Association doesn't conflict with natural history & known biology of the disease" },
{ num:"8", label:"Experiment", desc:"Removal of suspected cause reduces disease incidence (RCT, cessation studies)" },
{ num:"9", label:"Analogy", desc:"Similar factor producing similar disease suggests plausibility of new association" },
]);
// ═══════════════════════════════════════════════════════════════
// SECTION 10 — BIAS & CONFOUNDING
// ═══════════════════════════════════════════════════════════════
addSectionDivider(10, "Bias, Confounding & Errors", "Systematic vs Random Errors | Types of Bias | Controlling Confounding");
addTwoColSlide("Bias in Epidemiological Studies",
"Selection Bias",
[
"Systematic error in how participants are recruited or selected",
"Berkson's bias: hospital-based case-control over-selects serious cases",
"Healthy worker effect: occupational cohorts appear healthier than general population",
"Non-response bias: non-responders systematically differ from responders",
"Detection bias: disease more likely detected in exposed group",
"Volunteer bias: volunteers differ from general population",
"Control: population-based sampling; random selection",
],
"Information / Recall Bias",
[
"Systematic error in measuring exposure or disease",
"Recall bias: cases more likely to remember past exposures than controls",
"Interviewer bias: knowledge of case/control status influences questioning",
"Misclassification bias: errors in classifying exposure or disease status",
"Non-differential misclassification: biases toward null (attenuates RR)",
"Differential misclassification: biases in either direction",
"Control: blind interviewers to case/control status; standardized questionnaires",
]
);
addContentSlide("Confounding — Definition & Control", [
"CONFOUNDER: A variable that is associated with BOTH the exposure and the outcome",
{ text:"It must NOT be an intermediate in the causal pathway", sub:true },
{ text:"Example: Alcohol confounds smoking-CHD association (smokers drink more; alcohol→CHD)", sub:true },
"Consequence: Confounding distorts the true measure of association (RR, OR)",
"METHODS TO CONTROL CONFOUNDING:",
{ text:"At design stage:", sub:true },
{ text:" — Randomization (only in RCTs): distributes confounders equally between groups", sub:true },
{ text:" — Restriction: limit study to specific subgroup (e.g., non-smokers only)", sub:true },
{ text:" — Matching: match controls to cases on confounding variable", sub:true },
{ text:"At analysis stage:", sub:true },
{ text:" — Stratification (Mantel-Haenszel method): analyse within strata of confounder", sub:true },
{ text:" — Multivariate regression: adjust for multiple confounders simultaneously", sub:true },
{ text:" — Standardization: direct or indirect age-standardization of rates", sub:true },
"Residual confounding: confounding that persists even after adjustment",
]);
// ═══════════════════════════════════════════════════════════════
// SECTION 11 — SCREENING
// ═══════════════════════════════════════════════════════════════
addSectionDivider(11, "Screening in Epidemiology", "Definitions | Wilson & Jungner Criteria | Validity & Reliability");
addContentSlide("Screening — Definition & Principles", [
"SCREENING: Presumptive identification of unrecognized disease or defect by application of tests, examinations or other procedures that can be applied rapidly",
{ text:"— Commission on Chronic Illness, USA, 1951", sub:true },
"Screening tests do NOT diagnose — they SORT OUT apparently well persons who PROBABLY have disease from those who PROBABLY do not",
"TYPES OF SCREENING:",
{ text:"Mass screening: entire population screened (e.g., neonatal TSH)", sub:true },
{ text:"Selective / Targeted screening: high-risk groups (e.g., diabetics for retinopathy)", sub:true },
{ text:"Multiphasic screening: multiple tests applied simultaneously", sub:true },
{ text:"Case finding / Opportunistic screening: screening during clinical encounter", sub:true },
"PURPOSES: Early detection → early treatment → improved prognosis / prevent complications",
"Lead time: period gained by early detection (between screen detection & clinical diagnosis)",
"IMPORTANT: Screening is SECONDARY prevention",
]);
addContentSlide("Wilson & Jungner Criteria for Screening (WHO, 1968)", [
"1. The condition should be an IMPORTANT health problem for the community",
"2. The NATURAL HISTORY of the disease should be adequately understood",
"3. There should be a RECOGNIZABLE LATENT or early symptomatic stage",
"4. There should be a suitable TEST or examination (simple, safe, valid, reliable, acceptable)",
"5. There should be an ACCEPTED TREATMENT for patients with recognized disease",
"6. FACILITIES for diagnosis and treatment should be available",
"7. Agreed POLICY on who to treat as patients (case definition for screen positives)",
"8. COST of case finding should be economically balanced relative to total medical expenditure",
"9. Case finding should be a CONTINUING process, not a 'once-and-for-all' exercise",
"Modern addition: Harm-benefit balance; informed consent; equity of access",
]);
addTableSlide("Validity of Screening Tests",
["Parameter", "Formula", "Meaning"],
[
["Sensitivity", "True Positives / (True Positives + False Negatives) × 100", "Ability to correctly identify DISEASED persons (TP rate)"],
["Specificity", "True Negatives / (True Negatives + False Positives) × 100", "Ability to correctly identify NON-DISEASED persons (TN rate)"],
["Positive Predictive Value (PPV)", "True Positives / All Screen Positives × 100", "Probability that screen positive ACTUALLY has disease"],
["Negative Predictive Value (NPV)", "True Negatives / All Screen Negatives × 100", "Probability that screen negative TRULY does not have disease"],
["Yield", "Number of new cases detected by screening", "Affected by prevalence, sensitivity & specificity"],
["Likelihood Ratio (+)", "Sensitivity / (1 − Specificity)", "How much more likely is a positive result in diseased vs non-diseased"],
]
);
// ═══════════════════════════════════════════════════════════════
// SECTION 12 — OUTBREAK INVESTIGATION
// ═══════════════════════════════════════════════════════════════
addSectionDivider(12, "Outbreak Investigation", "Steps of Investigation | Epidemic Curves | Common Source vs Propagated");
addContentSlide("Steps in Outbreak Investigation (CDC/WHO Framework)", [
"1. VERIFY the diagnosis and confirm the outbreak (case definition, lab confirmation)",
"2. ESTABLISH case definition — suspected, probable, confirmed",
"3. FIND CASES systematically — active case finding, line listing",
"4. DESCRIBE in terms of TIME, PLACE and PERSON (descriptive epidemiology)",
"5. DEVELOP HYPOTHESES about source, mode of transmission, risk factors",
"6. TEST HYPOTHESES — analytical studies (case-control; cohort within outbreak)",
"7. IMPLEMENT CONTROL MEASURES (can begin before hypothesis confirmed if public health emergency)",
"8. COMMUNICATE FINDINGS — write report; notify authorities; disseminate results",
"9. EVALUATE CONTROL MEASURES — monitor for effectiveness",
"REMEMBER: Steps may overlap; control measures should NOT wait for complete investigation",
]);
addContentSlide("Epidemic Curves & Types of Epidemics", [
"EPIDEMIC CURVE: Histogram plotting number of cases against time of onset",
"COMMON SOURCE EPIDEMIC:",
{ text:"Point source: all exposed at one time → sharp bell curve; incubation period estimated from peak", sub:true },
{ text:"Continuous/Intermittent common source: prolonged irregular curve", sub:true },
{ text:"Example: Food poisoning at wedding feast (Salmonella, Staph. aureus)", sub:true },
"PROPAGATED (PERSON-TO-PERSON) EPIDEMIC:",
{ text:"Multiple peaks separated by one incubation period", sub:true },
{ text:"Gradually rising, then declining curve", sub:true },
{ text:"Example: Measles, COVID-19, cholera spreading person-to-person", sub:true },
"MIXED EPIDEMIC: Common source + subsequent person-to-person spread",
"ENDEMIC: Constant presence of disease in a population/area at baseline level",
"PANDEMIC: Epidemic spread across multiple countries / continents",
"HERD IMMUNITY THRESHOLD (HIT) = 1 - 1/R₀ → determines vaccine coverage needed",
]);
addContentSlide("Attack Rate & Food-Specific Attack Rate", [
"ATTACK RATE: Proportion of exposed persons who develop disease during outbreak",
{ text:"AR = Cases / Exposed population × 100 (%)", sub:true },
"SECONDARY ATTACK RATE (SAR): Proportion of susceptible contacts who develop disease",
{ text:"SAR = Secondary cases / Susceptible contacts × 100", sub:true },
{ text:"Measures transmissibility; used for household/close contact investigations", sub:true },
"FOOD-SPECIFIC ATTACK RATE: Used in foodborne outbreak investigation",
{ text:"Calculate AR for each food item: those who ATE it vs those who DID NOT", sub:true },
{ text:"Food with HIGHEST AR among those who ate AND LOWEST among those who did not → suspect vehicle", sub:true },
"LINE LISTING: Systematic tabulation of all cases (name/ID, age, sex, onset, symptoms, exposure)",
"RELATIVE RISK in outbreak: compares attack rates between exposed vs unexposed",
"Chi-square test: tests statistical significance of observed difference in attack rates",
"Incubation period distribution → clue to causative agent (average, range, mode)",
]);
// ═══════════════════════════════════════════════════════════════
// CLOSING / SUMMARY SLIDE
// ═══════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:'100%', fill:{color:C.navy} });
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:'100%', h:0.08, fill:{color:C.gold} });
sl.addShape(pres.ShapeType.rect, { x:0, y:5.545, w:'100%', h:0.08, fill:{color:C.gold} });
sl.addText("SUMMARY & KEY TAKEAWAYS", { x:0.5, y:0.3, w:9, h:0.65, fontSize:26, bold:true, color:C.gold, fontFace:"Calibri", align:"center" });
const summary = [
"Epidemiology studies DISTRIBUTION & DETERMINANTS of disease in populations",
"Three study designs: Descriptive → Analytical → Experimental (hierarchy of evidence)",
"Measurements: Incidence (risk), Prevalence (burden), Mortality rates (severity)",
"Natural history underpins levels of prevention (Primordial → Tertiary)",
"Causation assessed by Hill's 9 criteria — Temporality is the ONLY essential criterion",
"Bias (selection, information) and Confounding are key threats to validity",
"Screening tests evaluated by sensitivity, specificity, PPV — follow Wilson & Jungner criteria",
"Outbreak investigation: 9 systematic steps; epidemic curves identify source & mode of spread",
];
let items = summary.map((s, i) => ({
text: s,
options: { bullet:{type:"bullet",code:"25B6",color:C.gold}, breakLine: i < summary.length-1, fontSize:16, color:C.white, fontFace:"Calibri", paraSpaceBefore:6 }
}));
sl.addText(items, { x:0.5, y:1.1, w:9, h:4.2, valign:"top" });
sl.addText("Park's Textbook of Preventive & Social Medicine | Community Medicine (CFM)", {
x:0.5, y:5.15, w:9, h:0.35, fontSize:11, color:C.light, fontFace:"Calibri", align:"center", italic:true
});
}
// ─── WRITE FILE ──────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/epidemiology-ppt/Epidemiology_CFM_Park.pptx" })
.then(() => console.log("SUCCESS: Epidemiology_CFM_Park.pptx created"))
.catch(e => { console.error("ERROR:", e); process.exit(1); });
cd /home/daytona/workspace/epidemiology-ppt && node epidemiology.js
ls -lh /home/daytona/workspace/epidemiology-ppt/
Epidemiology CFM Park
Presentation · PPTX
| # | Section | Key Slides |
|---|---|---|
| 1 | Introduction & Definition | IEA definition (verbatim from Park's), historical evolution from Hippocrates → COVID-19 |
| 2 | Scope & Uses | Morris's 7 Uses (callout layout), IEA Aims, Epidemiology vs Clinical Medicine |
| 3 | Natural History & Spectrum | 4 stages of disease, Iceberg Phenomenon vs Spectrum of Disease (2-col), Levels of Prevention (Primordial → Tertiary) |
| 4 | Epidemiological Triad & Causation Models | Agent-Host-Environment triangle, Web of Causation (MacMahon & Pugh), component cause model |
| 5 | Measurements in Epidemiology | Rate/Ratio/Proportion table, Incidence vs Prevalence (P = I × D), all key mortality rates (IMR, MMR, CFR, SMR) |
| 6 | Descriptive Epidemiology | Park's Table 8 procedures, TIME (secular/seasonal/epidemic curves), PLACE (clustering, GIS), PERSON (age/sex/SES) |
| 7 | Analytical Epidemiology | Case-control vs Cohort (2-col), Measures of association table (RR, OR, AR, PAR, NNH) |
| 8 | Experimental Epidemiology | RCT principles, 4 Phases of clinical trials, CONSORT, ethics & equipoise |
| 9 | Causation: Hill's Criteria | Types of associations, all 9 Hill's criteria across two callout slides |
| 10 | Bias & Confounding | Selection vs Information bias (2-col), Confounding definition + all control methods |
| 11 | Screening | Definitions, Wilson & Jungner 9 criteria, Validity table (Sensitivity/Specificity/PPV/NPV) |
| 12 | Outbreak Investigation | 9 CDC/WHO steps, epidemic curve types, attack rate / food-specific AR / line listing |
Create pdf
libreoffice --headless --convert-to pdf /home/daytona/workspace/epidemiology-ppt…
cp /home/daytona/workspace/epidemiology-ppt/Epidemiology_CFM_Park.pptx /tmp/epi_…
cp /tmp/epi_input.pdf /home/daytona/workspace/epidemiology-ppt/Epidemiology_CFM_…
Epidemiology CFM Park
PDF Document · PDF
Epidemiology CFM Park
Presentation · PPTX
Epidemiology CFM Park
PDF Document · PDF