Unit 1: Research & Anusandhan आयुर्वेद अनुसार अनुसंधान शब्द की उत्पत्ति, परिभाषा, पर्याय, उद्देश्य एवं अनुसंधान की उपयोगिता लिखिए। अनुसंधान प्रक्रिया का विस्तृत वर्णन कीजिए। अनुसंधान में प्रमाणों की उपयोगिता लिखिए। अनुसंधान के भेद लिखकर अनुसंधान के क्षेत्र में नैतिक मूल्यों की अवधारणा एवं महत्व लिखिए। अनुसंधान के साधन के रूप में प्रमाणों की उपयोगिता लिखकर साहित्य पुनरावलोकन (Literature Review) लिखिए। आयुर्वेद ज्ञान में अनुसंधान की आवश्यकता लिखते हुए प्रमाणों की उपयोगिता लिखिए। अनुसंधान एवं उसकी उपयोगिता आयुर्वेद में लिखिए। अनुसंधान में प्रमाणों की भूमिका उदाहरण सहित समझाइए। अनुसंधान (Anusandhan) का विस्तार से वर्णन एवं उसके पर्याय लिखिए। आयुर्वेद में अनुसंधान की आवश्यकता (Need of Research in Ayurveda) लिखिए। अनुसंधान के प्रकार (Types of Research) लिखिए। अनुसंधान का ऐतिहासिक विकास (Historical Development of Research) लिखिए। अनुसंधान प्रक्रिया (Research Process) समझाइए। WHO तथा Woodey के अनुसार Research की परिभाषा लिखिए। Research शब्द की व्युत्पत्ति (Etymology of Research) तथा उसका आधुनिक अर्थ स्पष्ट कीजिए। अनुसंधान (Anusandhan) की परिभाषा एवं आयुर्वेद में अनुसंधान का क्षेत्र (Scope of Research in Ayurveda) लिखिए। Unit 2: Ayurveda & Evidence आयुर्वेदीय सिद्धांतों एवं औषध कल्पनाओं की वैज्ञानिकता लिखते हुए अनुसंधान प्रक्रिया का वर्णन कीजिए। आयुर्वेद सिद्धांतों की वैज्ञानिकता लिखकर मानव एवं पशु प्रयोग से सम्बन्धित नैतिक पहलू लिखिए। आयुर्वेद ग्रंथों में अनुसंधान के प्रमाणों का वर्णन कीजिए। आयुर्वेदिक ग्रंथों में Evidence का वर्णन कीजिए। Unit 3: Evidence Based Medicine Evidence Based Medicine की अवधारणा एवं Scientific Writing समझाइए। साक्ष्य आधारित चिकित्सा (Evidence Based Medicine) की अवधारणा एवं उसकी आयुर्वेद में प्रासंगिकता का विस्तार से वर्णन कीजिए। Evidence Based Medicine की अवधारणा लिखिए। Unit 4: Research Methodology Hypothesis का संक्षिप्त वर्णन कीजिए। Research Questions एवं Research Objectives में अंतर लिखिए। Research Database एवं Research Portals लिखिए। Longitudinal Study एवं Cross-sectional Study का वर्णन कीजिए। Parametric एवं Non-parametric परीक्षणों की विधियाँ लिखिए। Probability का परिचय देते हुए Test of Significance समझाइए। Data Collection का वर्णन कीजिए। Collection of Data Explain. विविध प्रकार की प्रश्नावली (Questionnaire) का वर्णन कीजिए। Unit 5: Statistics चिकित्सीय सांख्यिकी की उपयोगिता लिखिए। चिकित्सीय सांख्यिकी समझाइए। अंकशास्त्र का उद्भव, विकास, आँकड़ों का संग्रहण एवं प्रस्तुतीकरण लिखिए। भिन्नता (Variability) के मापक लिखिए एवं आरेखण सहित समझाइए। Measures of Central Tendency समझाइए। Arithmetic Mean एवं Mode उदाहरण सहित समझाइए। Normal Distribution का साग्र चित्र सहित वर्णन कीजिए। Standard Deviation एवं Standard Error का वर्णन कीजिए। सांख्यिकी (Statistics) लिखिए। Standard Error लिखिए। सांख्यिकी Software लिखिए। Variable समझाइए। Unit 6: Research Ethics शोध प्रक्रिया में साहित्य समीक्षा (Literature Review) के महत्व का वर्णन करते हुए अनुसंधान में Ethics की अवधारणा लिखिए। Institutional Human Ethics Committee एवं Institutional Animal Ethics Committee पर संक्षिप्त टिप्पणी लिखिए। मानव प्रतिभागियों पर अनुसंधान में Institutional Human Ethics Committee की प्रमुख जिम्मेदारियाँ लिखिए। Unit 7: Short Notes AYUSH Research Protocol PubMed DHARA Measures of Central Tendency Variability Standard Error Variable Statistical Software 🎯 Most Repeated University Exam Questions (High Priority) अनुसंधान की परिभाषा, उद्देश्य एवं उपयोगिता अनुसंधान प्रक्रिया (Research Process) अनुसंधान के प्रकार आयुर्वेद में अनुसंधान की आवश्यकता प्रमाणों की उपयोगिता Evidence Based Medicine Literature Review Hypothesis Data Collection Questionnaire Probability एवं Test of Significance Parametric एवं Non-parametric Tests Measures of Central Tendency Standard Deviation एवं Standard Error Normal Distribution Variable Research Ethics Institutional Human Ethics Committee (IHEC) Institutional Animal Ethics Committee (IAEC) AYUSH Research Protocol PubMed DHARA
AYUSH research protocol DHARA database Ayurveda PubMed anusandhan
| Unit | विषय | मुख्य Topics Covered |
|---|---|---|
| Unit 1 | Research & Anusandhan | व्युत्पत्ति, परिभाषा (WHO + Woodey + आयुर्वेदीय), पर्याय, उद्देश्य, उपयोगिता, 12-step Research Process, अनुसंधान के प्रकार, ऐतिहासिक विकास |
| Unit 2 | Ayurveda & Evidence | त्रिदोष-सप्तधातु की वैज्ञानिकता, औषध कल्पनाओं की Science, ग्रंथों में Evidence (चरक/सुश्रुत/वाग्भट्ट), 4 प्रमाण + आधुनिक तुल्य |
| Unit 3 | EBM | Sackett की परिभाषा, EBM के 3 स्तंभ, Levels of Evidence (I-V), आयुर्वेद में EBM की प्रासंगिकता, Scientific Writing (IMRAD) |
| Unit 4 | Research Methodology | Hypothesis (H₀/H₁), Research Questions vs Objectives, Databases (PubMed/DHARA/AYUSH/Cochrane), Longitudinal vs Cross-sectional, Parametric vs Non-parametric, Probability, p-value, Data Collection, Questionnaire types |
| Unit 5 | Statistics | सांख्यिकी इतिहास, Variable के प्रकार, Mean/Median/Mode (उदाहरण सहित), SD/SE (formula + उदाहरण), Normal Distribution (Bell curve + 68-95-99.7), Statistical Software (SPSS, R, SAS...) |
| Unit 6 | Research Ethics | Literature Review (types + importance), Belmont Report, आयुर्वेदीय नैतिक मूल्य, IHEC (संरचना + जिम्मेदारियाँ), IAEC (3R principle) |
| Unit 7 | Short Notes | AYUSH Protocol, PubMed, DHARA, SE formula |
Create a summary PDF of all Units for quick revision
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not found"
mkdir -p /home/daytona/workspace/ayurveda-research-notes && python3 -c "import reportlab; print('reportlab OK')" && python3 -c "from reportlab.lib.pagesizes import A4; print('A4 OK')"
~/ayurveda-research-notes/generate_pdf.py
#!/usr/bin/env python3
"""
Ayurveda Research & Anusandhan - Quick Revision PDF Generator
All 7 Units | University Exam Notes
"""
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm, cm
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.platypus.flowables import Flowable
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import os
OUTPUT_PATH = "/home/daytona/workspace/ayurveda-research-notes/Ayurveda_Research_Quick_Revision.pdf"
# ── Color palette ──────────────────────────────────────────────────────────────
SAFFRON = colors.HexColor("#E87722")
DARK_GREEN = colors.HexColor("#1A6B3C")
MAROON = colors.HexColor("#800020")
GOLD = colors.HexColor("#C8960C")
LIGHT_SAFFRON= colors.HexColor("#FFF3E0")
LIGHT_GREEN = colors.HexColor("#E8F5E9")
LIGHT_BLUE = colors.HexColor("#E3F2FD")
LIGHT_MAROON = colors.HexColor("#FCE4EC")
PALE_GOLD = colors.HexColor("#FFFDE7")
DARK_NAVY = colors.HexColor("#1A237E")
WHITE = colors.white
GRAY_LIGHT = colors.HexColor("#F5F5F5")
GRAY_MED = colors.HexColor("#BDBDBD")
TABLE_HEADER = colors.HexColor("#37474F")
TABLE_ALT = colors.HexColor("#ECEFF1")
# ── Document setup ─────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT_PATH,
pagesize=A4,
rightMargin=18*mm,
leftMargin=18*mm,
topMargin=20*mm,
bottomMargin=18*mm,
title="Ayurveda Research & Anusandhan - Quick Revision",
author="Orris AI Study Notes",
subject="Anusandhan Shastra - University Exam Notes"
)
W, H = A4
styles = getSampleStyleSheet()
# ── Custom paragraph styles ────────────────────────────────────────────────────
def make_style(name, parent="Normal", **kw):
return ParagraphStyle(name, parent=styles[parent], **kw)
cover_title = make_style("CoverTitle", fontSize=28, textColor=WHITE,
alignment=TA_CENTER, leading=36, spaceAfter=6,
fontName="Helvetica-Bold")
cover_sub = make_style("CoverSub", fontSize=15, textColor=PALE_GOLD,
alignment=TA_CENTER, leading=22, spaceAfter=4,
fontName="Helvetica")
cover_hindi = make_style("CoverHindi", fontSize=13, textColor=WHITE,
alignment=TA_CENTER, leading=20, spaceAfter=4)
cover_info = make_style("CoverInfo", fontSize=11, textColor=GRAY_LIGHT,
alignment=TA_CENTER, leading=16)
unit_header = make_style("UnitHeader", fontSize=16, textColor=WHITE,
alignment=TA_CENTER, leading=22, spaceAfter=0,
fontName="Helvetica-Bold")
section_h = make_style("SectionH", fontSize=13, textColor=MAROON,
leading=18, spaceBefore=10, spaceAfter=4,
fontName="Helvetica-Bold")
subsection_h = make_style("SubsectionH", fontSize=11, textColor=DARK_GREEN,
leading=16, spaceBefore=6, spaceAfter=3,
fontName="Helvetica-Bold")
body = make_style("Body", fontSize=9.5, leading=14,
spaceBefore=2, spaceAfter=2, alignment=TA_JUSTIFY)
body_hindi = make_style("BodyHindi", fontSize=9.5, leading=15,
spaceBefore=2, spaceAfter=2)
bullet_style = make_style("Bullet", fontSize=9.5, leading=13,
leftIndent=14, firstLineIndent=-10, spaceAfter=1)
formula_style= make_style("Formula", fontSize=10, leading=14,
fontName="Courier-Bold", textColor=DARK_NAVY,
leftIndent=20, spaceAfter=4, spaceBefore=4)
note_style = make_style("Note", fontSize=9, leading=13,
textColor=MAROON, fontName="Helvetica-Oblique",
leftIndent=10)
toc_style = make_style("TOC", fontSize=10, leading=16,
leftIndent=10)
toc_unit = make_style("TOCUnit", fontSize=11, leading=17,
fontName="Helvetica-Bold", textColor=DARK_GREEN,
leftIndent=5)
# ── Helper Flowables ───────────────────────────────────────────────────────────
def sp(h=4): return Spacer(1, h*mm)
def hr(color=SAFFRON, thickness=1): return HRFlowable(width="100%", thickness=thickness, color=color, spaceAfter=3)
def pg(): return PageBreak()
def unit_banner(number, title, subtitle=""):
"""Colored banner for each unit."""
banner_colors = [SAFFRON, DARK_GREEN, MAROON, DARK_NAVY,
colors.HexColor("#6A1B9A"), colors.HexColor("#00695C"),
colors.HexColor("#BF360C")]
col = banner_colors[(number - 1) % len(banner_colors)]
data = [[Paragraph(f"UNIT {number} | {title}", unit_header)]]
if subtitle:
data.append([Paragraph(subtitle, make_style("BannerSub", fontSize=9,
textColor=PALE_GOLD, alignment=TA_CENTER))])
t = Table(data, colWidths=[W - 36*mm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), col),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 14),
("RIGHTPADDING", (0,0), (-1,-1), 14),
("ROUNDEDCORNERS", [6]),
]))
return [t, sp(3)]
def info_box(title, content_paras, bg=LIGHT_BLUE, border=DARK_NAVY):
"""Highlighted info box."""
rows = [[Paragraph(f"<b>{title}</b>",
make_style("BoxTitle", fontSize=10, textColor=border,
fontName="Helvetica-Bold"))]]
for p in content_paras:
rows.append([p])
t = Table(rows, colWidths=[W - 38*mm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), border),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("BACKGROUND", (0,1), (-1,-1), bg),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
("BOX", (0,0), (-1,-1), 1, border),
("ROWBACKGROUNDS",(0,1), (-1,-1), [bg, colors.HexColor("#F3F9FE")]),
]))
return [t, sp(3)]
def data_table(headers, rows, col_widths=None, hdr_color=TABLE_HEADER):
"""Styled data table."""
available = W - 36*mm
if col_widths is None:
col_widths = [available / len(headers)] * len(headers)
table_data = [
[Paragraph(f"<b>{h}</b>",
make_style("TH", fontSize=9, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER))
for h in headers]
]
for i, row in enumerate(rows):
table_data.append([
Paragraph(str(c), make_style("TD", fontSize=8.5, leading=12)) for c in row
])
t = Table(table_data, colWidths=col_widths, repeatRows=1)
style_cmds = [
("BACKGROUND", (0,0), (-1,0), hdr_color),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("GRID", (0,0), (-1,-1), 0.5, GRAY_MED),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]
for i in range(1, len(table_data)):
bg = TABLE_ALT if i % 2 == 0 else WHITE
style_cmds.append(("BACKGROUND", (0,i), (-1,i), bg))
t.setStyle(TableStyle(style_cmds))
return [t, sp(3)]
def bullet(text, symbol="•"):
return Paragraph(f"{symbol} {text}", bullet_style)
def sub_bullet(text):
return Paragraph(f" - {text}",
make_style("SubBullet", fontSize=9, leading=13,
leftIndent=28, firstLineIndent=-10, spaceAfter=1))
def formula(text):
return Paragraph(text, formula_style)
def section(text):
return Paragraph(text, section_h)
def subsection(text):
return Paragraph(text, subsection_h)
def para(text):
return Paragraph(text, body)
def hindi(text):
return Paragraph(text, body_hindi)
def note(text):
return Paragraph(f"<i>Note: {text}</i>", note_style)
# ══════════════════════════════════════════════════════════════════════════════
# BUILD CONTENT
# ══════════════════════════════════════════════════════════════════════════════
story = []
# ─────────────────────────────── COVER PAGE ────────────────────────────────
cover_bg_data = [[""]]
cover_bg = Table(cover_bg_data, colWidths=[W - 36*mm], rowHeights=[260])
cover_bg.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_GREEN),
("ROUNDEDCORNERS", [10]),
]))
story += [
sp(8),
cover_bg,
]
# Overlay content as separate paragraphs
overlay = [
sp(2),
Paragraph("🌿", make_style("Emoji", fontSize=36, alignment=TA_CENTER, spaceAfter=4)),
Paragraph("AYURVEDA RESEARCH & ANUSANDHAN", cover_title),
Paragraph("Quick Revision Notes — All 7 Units", cover_sub),
Paragraph("अनुसंधान शास्त्र | University Exam Preparation", cover_hindi),
sp(4),
HRFlowable(width="60%", thickness=2, color=GOLD, hAlign="CENTER", spaceAfter=8),
Paragraph("Anusandhan · Evidence Based Medicine · Research Methodology", cover_info),
Paragraph("Statistics · Research Ethics · AYUSH Protocol", cover_info),
sp(6),
HRFlowable(width="100%", thickness=1, color=GOLD, spaceAfter=6),
Paragraph("Units Covered: 1 · 2 · 3 · 4 · 5 · 6 · 7", cover_info),
Paragraph("High-priority University Exam Questions Addressed", cover_info),
sp(4),
]
# Re-build: place cover title block cleanly
story = []
story += [sp(6)]
cover_table = Table(
[[Paragraph("🌿 AYURVEDA RESEARCH & ANUSANDHAN", cover_title)],
[Paragraph("Quick Revision Notes — All 7 Units", cover_sub)],
[Paragraph("अनुसंधान शास्त्र | University Exam Preparation", cover_hindi)],
[sp(1)],
[HRFlowable(width="70%", thickness=2, color=GOLD, hAlign="CENTER")],
[sp(1)],
[Paragraph("Units 1-7 | EBM · Statistics · Ethics · AYUSH Protocol", cover_info)],
[Paragraph("PubMed · DHARA · Research Methodology · Pramanas", cover_info)],
],
colWidths=[W - 36*mm]
)
cover_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_GREEN),
("TOPPADDING", (0,0), (-1,-1), 12),
("BOTTOMPADDING", (0,0), (-1,-1), 12),
("LEFTPADDING", (0,0), (-1,-1), 20),
("RIGHTPADDING", (0,0), (-1,-1), 20),
("ROUNDEDCORNERS",[10]),
]))
story.append(cover_table)
story += [sp(6)]
# Quick stats boxes on cover
stats = [
["7\nUnits", "30+\nTopics", "50+\nKey Terms", "100+\nExam Points"],
]
stats_table = Table(stats, colWidths=[(W-36*mm)/4]*4)
stats_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), SAFFRON),
("TEXTCOLOR", (0,0), (-1,-1), WHITE),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("FONTNAME", (0,0), (-1,-1), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 14),
("TOPPADDING", (0,0), (-1,-1), 14),
("BOTTOMPADDING", (0,0), (-1,-1), 14),
("GRID", (0,0), (-1,-1), 1, WHITE),
("ROUNDEDCORNERS",[6]),
]))
story.append(stats_table)
story += [sp(6)]
# Most repeated banner
mr_data = [["🎯 MOST REPEATED EXAM TOPICS INSIDE"]]
mr_table = Table(mr_data, colWidths=[W - 36*mm])
mr_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), MAROON),
("TEXTCOLOR", (0,0), (-1,-1), WHITE),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("FONTNAME", (0,0), (-1,-1), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 12),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("ROUNDEDCORNERS",[6]),
]))
story.append(mr_table)
story.append(pg())
# ─────────────────────────────── TABLE OF CONTENTS ──────────────────────────
story.append(Paragraph("TABLE OF CONTENTS", make_style("TOCH", fontSize=18,
textColor=DARK_GREEN, fontName="Helvetica-Bold", alignment=TA_CENTER, spaceAfter=6)))
story.append(hr(DARK_GREEN, 2))
story.append(sp(2))
toc_entries = [
("UNIT 1", "Research & Anusandhan (अनुसंधान)",
"Etymology · Definitions · Synonyms · Objectives · Research Process · Types · Historical Development"),
("UNIT 2", "Ayurveda & Evidence",
"Scientific basis of Tridosha · Sapta Dhatu · Aushadha Kalpana · Pramanas in classical texts"),
("UNIT 3", "Evidence Based Medicine",
"EBM concept · 3 pillars · Levels of Evidence · Relevance in Ayurveda · Scientific Writing"),
("UNIT 4", "Research Methodology",
"Hypothesis · Research Questions · Databases · Study designs · Parametric/Non-parametric · Data Collection"),
("UNIT 5", "Statistics (Sankhyiki)",
"Variables · Central Tendency · Variability · Normal Distribution · SD · SE · Statistical Software"),
("UNIT 6", "Research Ethics",
"Literature Review · Belmont Report · IHEC · IAEC · 3R Principle"),
("UNIT 7", "Short Notes",
"AYUSH Research Protocol · PubMed · DHARA · Standard Error · Variable · Statistical Software"),
]
for unit, title, topics in toc_entries:
toc_row = Table(
[[Paragraph(f"<b>{unit}</b>", make_style("TU", fontSize=10, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph(f"<b>{title}</b>", toc_unit),
],
["", Paragraph(topics, make_style("TT", fontSize=8.5, textColor=colors.HexColor("#555555"),
leftIndent=5))]
],
colWidths=[30*mm, W - 36*mm - 32*mm],
rowHeights=[None, None]
)
toc_row.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,-1), DARK_GREEN),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
("BOX", (0,0), (-1,-1), 0.5, GRAY_MED),
("BACKGROUND", (1,0), (1,-1), LIGHT_GREEN),
]))
story.append(toc_row)
story.append(sp(2))
story.append(pg())
# ══════════════════════════════════════════════════════════════════════════════
# UNIT 1 — RESEARCH & ANUSANDHAN
# ══════════════════════════════════════════════════════════════════════════════
story += unit_banner(1, "Research & Anusandhan", "अनुसंधान — परिभाषा, उद्देश्य, प्रकार, प्रक्रिया")
story.append(sp(2))
story.append(section("1. Etymology / शब्द व्युत्पत्ति"))
story += info_box("Sanskrit: अनु + सन्धान = अनुसंधान", [
Paragraph("• <b>अनु</b> = पश्चात्, बार-बार, अनुगमन करते हुए", body),
Paragraph("• <b>सन्धान</b> = खोज करना, जोड़ना (सम् + धा धातु)", body),
Paragraph("• <b>अर्थ:</b> किसी तथ्य को बार-बार, क्रमबद्ध रूप से खोजने की प्रक्रिया", body),
], bg=LIGHT_SAFFRON, border=SAFFRON)
story += info_box("English: Re + Cherche (Latin/French) = Research", [
Paragraph("• <b>Re</b> = पुनः, बार-बार | <b>Circare/Cherche</b> = खोजना, चारों ओर घूमना", body),
Paragraph("• <b>Modern meaning:</b> Systematic, scientific, objective study to discover new knowledge or verify existing knowledge", body),
], bg=LIGHT_BLUE, border=DARK_NAVY)
story.append(section("2. Definitions / परिभाषाएँ"))
story += data_table(
["Authority / प्राधिकरण", "Definition / परिभाषा"],
[
["WHO (World Health Organization)",
"\"Research is a systematic investigation designed to develop or contribute to generalizable knowledge.\""],
["Woodey (वुडी)",
"\"Research is a careful inquiry or examination in seeking facts or principles — a diligent investigation to ascertain something.\""],
["Kerlinger",
"\"Systematic, controlled, empirical and critical investigation of hypothetical propositions about presumed relations among natural phenomena.\""],
["Charaka Samhita\n(आयुर्वेद)",
"\"युक्तिव्यपाश्रयं चापि भवत्यत्र चिकित्सितम्\" — युक्ति (तर्क) के आधार पर किया गया अन्वेषण (च.सू. 11/54)"],
],
col_widths=[55*mm, W - 36*mm - 57*mm],
hdr_color=DARK_GREEN
)
story.append(section("3. Paryaya / पर्याय (Synonyms)"))
syn_data = [
["Sanskrit/Hindi", "English Equivalent"],
["अन्वेषण (Anveshana)", "Investigation"],
["मार्गणम् (Margana)", "Searching / Tracing"],
["शोध (Shodha)", "Purification / Research"],
["परीक्षण (Parikshana)", "Testing / Examination"],
["विमर्श (Vimarsha)", "Analysis / Discussion"],
["तत्त्वान्वेषण", "Search for Truth"],
["अनुशीलन (Anushilana)", "Deep Study"],
]
t = Table(syn_data, colWidths=[(W-36*mm)/2]*2)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), SAFFRON),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("GRID", (0,0), (-1,-1), 0.5, GRAY_MED),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, TABLE_ALT]),
]))
story += [t, sp(3)]
story.append(section("4. Objectives / उद्देश्य"))
objectives = [
"नवीन ज्ञान की प्राप्ति — Discover unknown facts",
"पूर्व ज्ञान की पुष्टि — Verify existing knowledge (e.g., ancient Ayurvedic principles)",
"समस्याओं का समाधान — Solve clinical, pharmaceutical, social problems",
"सिद्धांतों का विकास — Develop new theories",
"पूर्वानुमान — Prediction of future events/outcomes",
"गुणवत्ता में सुधार — Improve quality of clinical practice",
"नीति निर्माण — Evidence for policy & drug regulation",
]
for o in objectives:
story.append(bullet(o))
story.append(sp(3))
story.append(section("5. Utility in Ayurveda / उपयोगिता"))
utility = [
"वैज्ञानिक प्रमाणिकता — Scientific validation of Tridosha, Sapta Dhatu etc.",
"Drug Standardization — Standardization of Ayurvedic formulations (GMP, API)",
"Clinical Efficacy Proof — Evidence for Panchakarma, Rasayana therapies",
"Global Acceptance — WHO standards for international recognition",
"Biopiracy Protection — IPR for traditional knowledge (e.g., Turmeric patent case)",
"Pharmacovigilance — Monitoring adverse effects of Ayurvedic drugs",
"Integrative Medicine — Combining Ayurveda with modern medicine",
"New Drug Discovery — Lead compounds from Ayurvedic plants (e.g., Artemisinin from Qinghao)",
]
for u in utility:
story.append(bullet(u))
story.append(sp(2))
story.append(section("6. Research Process / अनुसंधान प्रक्रिया (12 Steps)"))
steps = [
("1", "Problem Identification\nसमस्या की पहचान", "Clinical observation, literature gap analysis, social need"),
("2", "Literature Review\nसाहित्य समीक्षा", "PubMed, DHARA, Classical texts, AYUSH Portal"),
("3", "Problem Formulation\nसमस्या परिभाषीकरण", "Clear, concise, researchable statement"),
("4", "Hypothesis Formation\nपरिकल्पना निर्माण", "H₀ (Null) and H₁ (Alternative) hypothesis"),
("5", "Research Design\nअनुसंधान डिजाइन", "RCT, Cohort, Case-Control, Cross-sectional"),
("6", "Sampling\nनमूना चयन", "Random, Stratified, Purposive sampling"),
("7", "Data Collection\nडेटा संग्रहण", "Questionnaire, Interview, Observation, Lab tests"),
("8", "Data Processing\nडेटा प्रसंस्करण", "Coding, Entry, Cleaning, Tabulation"),
("9", "Statistical Analysis\nसांख्यिकीय विश्लेषण", "t-test, Chi-square, ANOVA, SD, SE, p-value"),
("10", "Interpretation\nव्याख्या", "Compare with existing literature"),
("11", "Conclusion\nनिष्कर्ष", "Answer the research question, accept/reject H₀"),
("12", "Publication\nप्रकाशन", "IMRAD format, peer review, journal submission"),
]
t = Table(
[[Paragraph(f"<b>{s}</b>", make_style("StepN", fontSize=11, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER)),
Paragraph(f"<b>{n}</b>", make_style("StepT", fontSize=9, textColor=DARK_GREEN,
fontName="Helvetica-Bold")),
Paragraph(d, make_style("StepD", fontSize=8.5, leading=12))]
for s, n, d in steps],
colWidths=[12*mm, 58*mm, W - 36*mm - 72*mm],
)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,-1), SAFFRON),
("BACKGROUND", (1,0), (-1,-1), LIGHT_SAFFRON),
("ROWBACKGROUNDS",(1,0), (-1,-1), [LIGHT_SAFFRON, WHITE]),
("GRID", (0,0), (-1,-1), 0.5, GRAY_MED),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
]))
story += [t, sp(3)]
story.append(section("7. Types of Research / अनुसंधान के प्रकार"))
story += data_table(
["Basis / आधार", "Type", "Description"],
[
["उद्देश्य\n(Objective)", "Pure/Basic Research", "नया ज्ञान, तत्काल व्यावहारिक लाभ नहीं"],
["", "Applied Research", "व्यावहारिक समस्याओं का समाधान"],
["", "Action Research", "तात्कालिक, स्थल पर समाधान"],
["विधि\n(Method)", "Descriptive", "जैसा है वैसा वर्णन, Survey"],
["", "Experimental", "Cause-effect, RCT"],
["", "Historical", "Past events study"],
["प्रकृति\n(Nature)", "Quantitative", "Numerical data, statistics"],
["", "Qualitative", "Ideas, experiences, behavior"],
["काल\n(Time)", "Longitudinal", "Same group, long period"],
["", "Cross-sectional", "Different groups, one time point"],
["दिशा\n(Direction)", "Prospective", "Future-oriented"],
["", "Retrospective", "Past-looking"],
],
col_widths=[30*mm, 45*mm, W - 36*mm - 77*mm],
)
story.append(section("8. Historical Development / ऐतिहासिक विकास"))
story += data_table(
["Period / काल", "Development / विकास"],
[
["Vedic Period (वैदिक काल)", "Atharvaveda में रोग-औषध वर्णन"],
["Classical Period (600 BCE-700 CE)", "Charaka, Sushruta, Vagbhata — systematic Anusandhan"],
["Medieval Period", "Arab-India knowledge exchange"],
["British Period", "Modern medicine introduced; indigenous systems suppressed"],
["Post-Independence (1947+)", "CCRAS (1969), CSIR, NIA establishment"],
["Modern Era (2014+)", "Ministry of AYUSH, DHARA, CTRI, AYUSH Research Portal"],
],
col_widths=[52*mm, W - 36*mm - 54*mm],
)
story.append(pg())
# ══════════════════════════════════════════════════════════════════════════════
# UNIT 2 — AYURVEDA & EVIDENCE
# ══════════════════════════════════════════════════════════════════════════════
story += unit_banner(2, "Ayurveda & Evidence", "आयुर्वेद के प्रमाण एवं वैज्ञानिकता")
story.append(section("9. Pramanas / प्रमाण — The Four Instruments of Knowledge"))
story += info_box("चरक संहिता (सूत्र 11/17) — Four Pramanas", [
Paragraph("<b>1. Aaptopadesha (आप्तोपदेश)</b> — Expert testimony, classical texts → Modern: Expert Opinion, Evidence-based Guidelines", body),
Paragraph("<b>2. Pratyaksha (प्रत्यक्ष)</b> — Direct sensory observation → Modern: Clinical Examination, Lab findings", body),
Paragraph("<b>3. Anumana (अनुमान)</b> — Logical inference → Modern: Statistical Inference, Hypothesis Testing", body),
Paragraph("<b>4. Yukti (युक्ति)</b> — Reasoned synthesis of multiple factors → Modern: Systematic Review, Meta-analysis", body),
], bg=LIGHT_SAFFRON, border=SAFFRON)
story += data_table(
["Pramana", "Ayurvedic Role", "Modern Research Equivalent", "Example"],
[
["Aaptopadesha\n(आप्तोपदेश)", "Classical text authority", "Literature Review, Expert Guidelines",
"Ashwagandha Rasayana → Modern Adaptogen studies"],
["Pratyaksha\n(प्रत्यक्ष)", "Direct observation, Ashtavidha Pariksha", "Clinical Observation, Lab Results",
"Haridra yellow color → Curcumin identification"],
["Anumana\n(अनुमान)", "Inference from Nidana to Samprapti", "Statistical Inference, p-value",
"Smoking → Cancer risk (Epidemiological Study)"],
["Yukti\n(युक्ति)", "Multi-factor clinical reasoning", "Systematic Review, Meta-analysis",
"Panchakarma components — combined effect studies"],
],
col_widths=[30*mm, 40*mm, 44*mm, W - 36*mm - 116*mm],
)
story.append(section("10. Scientific Basis of Ayurvedic Principles"))
story += data_table(
["Ayurvedic Concept", "Scientific Equivalent"],
[
["Tridosha (Vata-Pitta-Kapha)", "Neuro-endocrine-immune axis; Nervous / Metabolic / Structural systems"],
["Sapta Dhatu (सप्त धातु)", "Plasma, RBCs, Muscle, Fat, Bone, Nervous tissue, Reproductive cells"],
["Agni (अग्नि)", "Digestive enzymes, Metabolic rate (Basal Metabolic Rate)"],
["Tri-Mala (त्रिमल)", "Excretory products: Urine, Stool, Sweat"],
["Pancha Bhuta (पंचभूत)", "States of matter: Solid, Liquid, Gas, Energy, Space"],
["Rasa-Guna-Virya-Vipaka-Prabhava", "Pharmacodynamics & Pharmacokinetics"],
["Ashtavidha Pariksha", "Systematic Clinical Examination Protocol"],
],
col_widths=[60*mm, W - 36*mm - 62*mm],
hdr_color=DARK_GREEN,
)
story.append(section("11. Scientific Validity of Aushadha Kalpana"))
story += data_table(
["Formulation", "Scientific Rationale"],
[
["Kwatha (क्वाथ/Decoction)", "Maximum extraction of water-soluble active principles"],
["Arishta-Asava (Fermented)", "Natural alcohol as preservative + enhanced bioavailability"],
["Bhasma (भस्म)", "Nano-particulate metals → higher bioavailability, reduced toxicity"],
["Ghrita (घृत)", "Lipid-based → fat-soluble actives + blood-brain barrier crossing"],
["Churna (चूर्ण)", "Dry, stable powder form, easy standardization"],
["Vati (वटी)", "Compressed tablet — modern equivalent"],
],
col_widths=[52*mm, W - 36*mm - 54*mm],
)
story.append(pg())
# ══════════════════════════════════════════════════════════════════════════════
# UNIT 3 — EVIDENCE BASED MEDICINE
# ══════════════════════════════════════════════════════════════════════════════
story += unit_banner(3, "Evidence Based Medicine (EBM)", "साक्ष्य आधारित चिकित्सा")
story += info_box("Definition — David Sackett, 1996", [
Paragraph("\"EBM is the <b>conscientious, explicit and judicious use</b> of current best evidence in making decisions about the care of individual patients.\"", body),
Paragraph("हिन्दी: व्यक्तिगत रोगी की देखभाल में वर्तमान सर्वोत्तम प्रमाण का सचेतन, स्पष्ट एवं विवेकपूर्ण उपयोग।", body_hindi),
], bg=LIGHT_BLUE, border=DARK_NAVY)
story.append(section("12. Three Pillars of EBM"))
pillars = [
["Research Evidence\n(शोध प्रमाण)", "Best available clinical research: RCTs, Systematic Reviews, Meta-analyses"],
["Clinical Expertise\n(नैदानिक विशेषज्ञता)", "Physician's skill, experience, and clinical judgment"],
["Patient Values\n(रोगी मूल्य)", "Patient's preferences, values, concerns, and expectations"],
]
t = Table(pillars, colWidths=[(W-36*mm)/2, (W-36*mm)/2])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,-1), DARK_NAVY),
("BACKGROUND", (1,0), (1,-1), LIGHT_BLUE),
("TEXTCOLOR", (0,0), (0,-1), WHITE),
("FONTNAME", (0,0), (0,-1), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 10),
("GRID", (0,0), (-1,-1), 1, WHITE),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 10),
("ALIGN", (0,0), (0,-1), "CENTER"),
]))
story += [t, sp(3)]
story.append(section("13. Hierarchy of Evidence (Levels)"))
levels = [
("Ia", "Systematic Review of RCTs", DARK_GREEN, WHITE, "Cochrane Reviews"),
("Ib", "Individual RCT", DARK_GREEN, WHITE, "Clinical Trial"),
("IIa", "Controlled Trial (no randomization)", colors.HexColor("#2E7D32"), WHITE, "Quasi-experimental"),
("IIb", "Cohort Study", colors.HexColor("#388E3C"), WHITE, "Follow-up Study"),
("III", "Case-Control Study", SAFFRON, WHITE, "Observational"),
("IV", "Case Series / Reports", colors.HexColor("#F57C00"), WHITE, "Clinical Cases"),
("V", "Expert Opinion / Consensus", MAROON, WHITE, "Guidelines, Textbooks"),
]
ev_data = [["Level", "Study Type", "Example"]]
for lvl, typ, bg, fg, eg in levels:
ev_data.append([lvl, typ, eg])
ev_t = Table(ev_data, colWidths=[20*mm, 90*mm, W-36*mm-112*mm])
ev_style = [
("BACKGROUND", (0,0), (-1,0), TABLE_HEADER),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("GRID", (0,0), (-1,-1), 0.5, GRAY_MED),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),6),
("ALIGN", (0,1),(0,-1),"CENTER"),
]
for i, (_, _, bg, fg, _) in enumerate(levels, 1):
ev_style.append(("BACKGROUND", (0,i), (0,i), bg))
ev_style.append(("TEXTCOLOR", (0,i), (0,i), fg))
ev_style.append(("FONTNAME", (0,i), (0,i), "Helvetica-Bold"))
ev_t.setStyle(TableStyle(ev_style))
story += [ev_t, sp(3)]
story.append(section("14. EBM Relevance in Ayurveda"))
ebm_points = [
"RCT-based proof for Ayurvedic treatments (e.g., Ashwagandha for stress, Guggulu for lipids)",
"Systematic Reviews & Meta-analyses on Ayurvedic herbs on PubMed/Cochrane",
"Pharmacovigilance — monitoring adverse effects of classical metallic preparations (Bhasma)",
"Herb-Drug Interaction studies (e.g., Piperine + other drugs)",
"CTRI registration mandatory for all Ayurvedic clinical trials in India",
"Reverse Pharmacology — clinical observation first, then preclinical validation",
"WHO Traditional Medicine Strategy 2019-2025 supports EBM in traditional systems",
]
for pt in ebm_points:
story.append(bullet(pt))
story.append(section("15. Scientific Writing (IMRAD Format)"))
story += data_table(
["Section", "Content"],
[
["Introduction (I)", "Background, Research gap, Aim, Hypothesis"],
["Methods (M)", "Study design, Sample, Intervention, Data collection, Statistics"],
["Results (R)", "Tables, Graphs, Statistical findings (p-value, CI, SD)"],
["And Discussion (AD)", "Interpretation, Comparison with existing literature, Limitations"],
["Abstract", "Structured: Background | Methods | Results | Conclusion (250-300 words)"],
["References", "Vancouver (numbered) or APA style"],
],
col_widths=[42*mm, W - 36*mm - 44*mm],
)
story.append(pg())
# ══════════════════════════════════════════════════════════════════════════════
# UNIT 4 — RESEARCH METHODOLOGY
# ══════════════════════════════════════════════════════════════════════════════
story += unit_banner(4, "Research Methodology", "अनुसंधान पद्धति — Hypothesis · Design · Data Collection")
story.append(section("16. Hypothesis (परिकल्पना)"))
story += info_box("Definition", [
Paragraph("A hypothesis is a <b>tentative statement</b> proposing a relationship between two or more variables, which can be tested through research.", body),
Paragraph("परिकल्पना — एक अनुमानित कथन जो दो चरों के बीच संबंध प्रस्तावित करता है और परीक्षण द्वारा सत्यापित किया जा सकता है।", body_hindi),
], bg=LIGHT_BLUE, border=DARK_NAVY)
story += data_table(
["Type", "Statement", "Example"],
[
["Null Hypothesis (H₀)\nशून्य परिकल्पना", "No significant difference/relationship", "\"Ashwagandha has NO effect on stress levels\""],
["Alternative (H₁)\nवैकल्पिक", "Significant difference exists", "\"Ashwagandha REDUCES stress levels\""],
["Directional (एकदिशीय)", "Specifies direction of effect", "\"Triphala REDUCES blood glucose\""],
["Non-directional (द्विदिशीय)", "Effect exists but direction not specified", "\"Triphala AFFECTS blood glucose\""],
],
col_widths=[42*mm, 48*mm, W - 36*mm - 92*mm],
)
story.append(note("Type I Error (α): Reject H₀ when it is true (False Positive). Type II Error (β): Accept H₀ when it is false (False Negative)."))
story.append(sp(3))
story.append(section("17. Research Questions vs Objectives"))
story += data_table(
["Basis", "Research Question", "Research Objective"],
[
["Form/रूप", "Interrogative (प्रश्नवाचक)", "Declarative statement (कथन)"],
["Grammar", "Ends with '?'", "Starts with action verb: Assess, Evaluate, Determine"],
["Example", "\"Does Triphala reduce blood sugar?\"", "\"To evaluate effect of Triphala on blood glucose in T2DM\""],
["Purpose", "Define research direction", "Set measurable, achievable goals"],
["Number", "Usually fewer", "Primary + multiple secondary objectives"],
],
col_widths=[30*mm, 62*mm, W - 36*mm - 94*mm],
)
story.append(section("18. Research Databases & Portals"))
story += data_table(
["Database", "Type / Coverage", "Key Feature"],
[
["PubMed / MEDLINE", "Biomedical (35M+ citations)", "MeSH terms, Free access, PMC full texts"],
["DHARA", "Ayurveda-specific (10K+ articles)", "Ministry of AYUSH funded, journals not in PubMed"],
["AYUSH Portal", "AYUSH research & pharmacopoeia", "CTRI linked, funded projects, API standards"],
["Cochrane Library", "Systematic Reviews & RCTs", "Gold standard for EBM"],
["ABIM", "Ayurvedic Bibliography (50K+)", "Indian traditional medicine citations"],
["Shodhganga", "Indian PG/PhD theses", "Grey literature database"],
["CTRI", "Clinical Trial Registry India", "Mandatory registration for Indian trials"],
["Scopus / Web of Science", "Multidisciplinary", "Impact factor, citation tracking"],
["Google Scholar", "All disciplines, free", "Broad search, grey literature"],
],
col_widths=[38*mm, 52*mm, W - 36*mm - 92*mm],
)
story.append(section("19. Study Designs — Longitudinal vs Cross-Sectional"))
story += data_table(
["Feature", "Longitudinal Study", "Cross-Sectional Study"],
[
["Definition", "Same group followed over long period", "Different groups studied at one time point"],
["Time", "Months to years", "Days to weeks"],
["Advantage", "Cause-effect relationship, individual change", "Cheap, quick, large population"],
["Disadvantage", "Expensive, dropout (attrition bias)", "Cannot establish temporal relationship"],
["Example", "10-year obesity follow-up in children", "BMI-Diabetes survey at one point"],
["Use", "Cohort studies, Development research", "Prevalence studies, Screening"],
],
col_widths=[32*mm, 60*mm, W - 36*mm - 94*mm],
)
story.append(section("20. Parametric vs Non-Parametric Tests"))
story += data_table(
["Feature", "Parametric", "Non-Parametric"],
[
["Assumption", "Normal distribution, equal variance", "No distribution assumption"],
["Data type", "Continuous (Interval/Ratio)", "Ordinal, Nominal, Non-normal continuous"],
["Sample size", "Larger (n ≥ 30)", "Can be small"],
["Power", "Higher", "~95% of parametric"],
["t-test equivalent", "Independent t-test", "Mann-Whitney U Test"],
["Paired test", "Paired t-test", "Wilcoxon Signed Rank Test"],
["3+ groups", "ANOVA", "Kruskal-Wallis Test"],
["Correlation", "Pearson (r)", "Spearman Rank (ρ)"],
["Categorical", "—", "Chi-square (χ²), Fisher's Exact Test"],
],
col_widths=[38*mm, 52*mm, W - 36*mm - 92*mm],
)
story.append(section("21. Probability & Test of Significance"))
story += info_box("p-value Interpretation", [
Paragraph("• <b>p < 0.05</b> → Statistically Significant — Reject H₀", body),
Paragraph("• <b>p < 0.01</b> → Highly Significant", body),
Paragraph("• <b>p < 0.001</b> → Very Highly Significant", body),
Paragraph("• <b>p ≥ 0.05</b> → Not Significant — Accept H₀", body),
Paragraph("• <b>95% CI</b> = Mean ± 1.96 × SE (does not cross 0 → significant)", body),
], bg=LIGHT_GREEN, border=DARK_GREEN)
story.append(section("22. Data Collection & Questionnaire Types"))
story += data_table(
["Type", "Description", "Data Generated"],
[
["Structured Questionnaire", "Fixed response options (MCQ, Yes/No)", "Quantitative"],
["Unstructured Questionnaire", "Open-ended questions, free response", "Qualitative"],
["Semi-structured", "Mix of closed and open questions", "Mixed"],
["Likert Scale", "1=Strongly Disagree to 5=Strongly Agree", "Ordinal/Quantitative"],
["Dichotomous", "Only two options: Yes/No, True/False", "Nominal"],
["Rating Scale", "Numerical rating (0-10 pain scale)", "Ordinal"],
["Interview Schedule", "Interviewer reads and records responses", "Primary data"],
],
col_widths=[45*mm, 68*mm, W - 36*mm - 115*mm],
)
story.append(pg())
# ══════════════════════════════════════════════════════════════════════════════
# UNIT 5 — STATISTICS
# ══════════════════════════════════════════════════════════════════════════════
story += unit_banner(5, "Statistics / सांख्यिकी", "Sankhyiki — Central Tendency · Variability · Normal Distribution")
story.append(section("23. Introduction to Statistics"))
story += info_box("Definition", [
Paragraph("\"<b>Statistics</b> is the science of <b>collecting, organizing, analyzing, interpreting, and presenting data.</b>\"", body),
Paragraph("सांख्यिकी — आँकड़ों का संग्रह, व्यवस्थापन, विश्लेषण, व्याख्या एवं प्रस्तुतीकरण का विज्ञान।", body_hindi),
], bg=LIGHT_BLUE, border=DARK_NAVY)
story.append(section("24. Variable (चर)"))
story += data_table(
["Type", "Sub-type", "Example"],
[
["Quantitative\n(मात्रात्मक)", "Continuous", "Height, Weight, BP, Temperature"],
["", "Discrete", "No. of children, Pulse rate (whole numbers)"],
["Qualitative\n(गुणात्मक)", "Nominal", "Blood group (A/B/AB/O), Gender"],
["", "Ordinal", "Severity (Mild/Moderate/Severe)"],
["Role-based", "Independent Variable", "Treatment / Intervention given"],
["", "Dependent Variable", "Outcome measured (BP, glucose level)"],
["", "Confounding Variable", "Extra factor affecting outcome"],
],
col_widths=[38*mm, 38*mm, W - 36*mm - 78*mm],
)
story.append(section("25. Measures of Central Tendency"))
ct_data = [
["Measure", "Formula", "Best Used When", "Limitation"],
["Mean (माध्य)\nArithmetic Average",
"x̄ = Σx / n",
"Normal distribution, Continuous data",
"Affected by outliers (extreme values)"],
["Median (मध्यिका)\nMiddle Value",
"Middle value of ordered data\n(n+1)/2 th term",
"Skewed data, Ordinal data",
"Does not use all values"],
["Mode (बहुलक)\nMost Frequent",
"Most frequently occurring value",
"Categorical data, Bimodal distributions",
"May not exist or may be multiple"],
]
ct_t = Table(ct_data, colWidths=[40*mm, 42*mm, 52*mm, W-36*mm-136*mm])
ct_style = [
("BACKGROUND", (0,0), (-1,0), TABLE_HEADER),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("GRID", (0,0), (-1,-1), 0.5, GRAY_MED),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("ROWBACKGROUNDS",(0,1),(-1,-1),[LIGHT_BLUE, TABLE_ALT, WHITE]),
("VALIGN", (0,0), (-1,-1), "TOP"),
]
ct_t.setStyle(TableStyle(ct_style))
story += [ct_t, sp(3)]
story += info_box("Numerical Example (Mean, Median, Mode)", [
Paragraph("Weights of 5 patients: <b>60, 65, 65, 70, 75 kg</b>", body),
Paragraph("• <b>Mean</b> = (60+65+65+70+75)/5 = 335/5 = <b>67 kg</b>", body),
Paragraph("• <b>Median</b> = Middle value of ordered set = <b>65 kg</b> (3rd of 5)", body),
Paragraph("• <b>Mode</b> = Most frequent = <b>65 kg</b> (appears twice)", body),
Paragraph("Skew Rule: Normal: Mean=Median=Mode | +ve Skew: Mode<Median<Mean | -ve Skew: Mean<Median<Mode", note_style),
], bg=PALE_GOLD, border=GOLD)
story.append(section("26. Measures of Variability (विभिन्नता के मापक)"))
story += info_box("Standard Deviation (SD) — Formula & Example", [
Paragraph("<b>Formula:</b> σ = √[ Σ(x − x̄)² / n ]", formula_style),
Paragraph("<b>Example:</b> Data: 60, 65, 70, 55, 75 | Mean (x̄) = 65", body),
Paragraph("Deviations: -5, 0, +5, -10, +10 | Squared: 25, 0, 25, 100, 100", body),
Paragraph("Sum of squares = 250 | Variance = 250/5 = 50 | <b>SD = √50 = 7.07</b>", body),
Paragraph("Small SD → data clustered near mean (homogeneous). Large SD → data spread out.", note_style),
], bg=LIGHT_GREEN, border=DARK_GREEN)
story += info_box("Standard Error (SE) — Formula & Interpretation", [
Paragraph("<b>Formula:</b> SE = SD / √n", formula_style),
Paragraph("• SE measures variability of <b>sample means</b> around population mean", body),
Paragraph("• As n increases, SE decreases → more precise estimate", body),
Paragraph("• <b>95% CI</b> = Mean ± 1.96 × SE", body),
Paragraph("• <b>99% CI</b> = Mean ± 2.58 × SE", body),
], bg=LIGHT_SAFFRON, border=SAFFRON)
story += data_table(
["Feature", "Standard Deviation (SD)", "Standard Error (SE)"],
[
["Measures", "Variability of individual observations", "Variability of sample means"],
["Formula", "σ = √[Σ(x−x̄)²/n]", "SE = SD/√n"],
["Effect of ↑n", "Relatively stable", "Decreases (more precise)"],
["Use", "Describe data spread", "Estimate population mean, CI, Hypothesis test"],
["Graph", "Width of distribution", "Error bars on mean plots"],
],
col_widths=[38*mm, 62*mm, W - 36*mm - 102*mm],
)
story.append(section("27. Normal Distribution (सामान्य वितरण)"))
story += info_box("Key Properties of Normal Distribution", [
Paragraph("• <b>Bell-shaped</b>, symmetric, unimodal curve", body),
Paragraph("• <b>Mean = Median = Mode</b> (all at center μ)", body),
Paragraph("• <b>Empirical Rule (68-95-99.7):</b>", body),
Paragraph(" 68.2% data lies within μ ± 1σ", body),
Paragraph(" 95.4% data lies within μ ± 2σ", body),
Paragraph(" 99.7% data lies within μ ± 3σ", body),
Paragraph("• Total area under curve = 1 (probability = 100%)", body),
Paragraph("• Asymptotic — never touches x-axis", body),
Paragraph("• Completely described by μ (mean) and σ (SD)", body),
Paragraph("• Z-score formula: Z = (x − μ) / σ → used to find probability from Z-table", formula_style),
], bg=LIGHT_BLUE, border=DARK_NAVY)
story.append(section("28. Statistical Software"))
story += data_table(
["Software", "Developer / Type", "Primary Use"],
[
["SPSS", "IBM, Menu-driven (paid)", "Clinical research, Social sciences, easy for beginners"],
["R", "Open-source, Free", "Advanced statistics, Bioinformatics, Visualization"],
["SAS", "SAS Institute (paid)", "Pharmaceutical industry, FDA regulatory submissions"],
["Stata", "StataCorp (paid)", "Epidemiology, Panel data, Public health research"],
["GraphPad Prism", "Commercial", "Biomedical research, beautiful graphs + statistics"],
["EpiInfo", "CDC, Free", "Epidemiology, Disease surveillance, outbreak investigation"],
["MedCalc", "Commercial", "Diagnostic test evaluation, ROC curves"],
["Python (SciPy/Pandas)", "Open-source", "Data science, Machine Learning, Large datasets"],
["MS Excel", "Microsoft (paid)", "Basic statistics, preliminary data exploration"],
],
col_widths=[40*mm, 48*mm, W - 36*mm - 90*mm],
)
story.append(pg())
# ══════════════════════════════════════════════════════════════════════════════
# UNIT 6 — RESEARCH ETHICS
# ══════════════════════════════════════════════════════════════════════════════
story += unit_banner(6, "Research Ethics / अनुसंधान नैतिकता", "Literature Review · IHEC · IAEC · Ethical Principles")
story.append(section("29. Literature Review (साहित्य समीक्षा)"))
story += info_box("Definition", [
Paragraph("Literature Review is a <b>systematic, critical appraisal</b> of previously published research on a specific topic.", body),
Paragraph("उद्देश्य: Research gap की पहचान | Duplication से बचाव | Hypothesis निर्माण | Background section तैयार करना", body_hindi),
], bg=LIGHT_GREEN, border=DARK_GREEN)
story += data_table(
["Type", "Description"],
[
["Narrative Review", "General descriptive overview of a topic — no systematic protocol"],
["Systematic Review", "PRISMA guidelines, structured, reproducible search strategy"],
["Meta-analysis", "Quantitative statistical synthesis of multiple studies"],
["Scoping Review", "Broad mapping of a field's extent and nature"],
],
col_widths=[48*mm, W - 36*mm - 50*mm],
hdr_color=DARK_GREEN,
)
story.append(subsection("Sources for Ayurveda Literature Review:"))
lr_sources = [
"Classical texts: Charaka Samhita, Sushruta Samhita, Ashtanga Hridayam, Ashtanga Sangraha",
"PubMed / MEDLINE — international biomedical database",
"DHARA — Ayurveda-specific digital helpline",
"AYUSH Research Portal — government-funded research",
"Shodhganga — Indian PG/PhD thesis repository (grey literature)",
"ABIM — Ayurvedic Bibliography of Indian Medicine",
"Cochrane Library — Systematic Reviews and RCTs",
"Google Scholar — broad, multidisciplinary, free access",
]
for src in lr_sources:
story.append(bullet(src))
story.append(sp(3))
story.append(section("30. Ethical Principles in Research (Belmont Report, 1979)"))
story += data_table(
["Principle", "Meaning", "Application in Research"],
[
["Respect for Persons\n(व्यक्ति का सम्मान)", "Autonomy, right to self-determination", "Informed Consent — written, voluntary, before participation"],
["Beneficence\n(हितकारिता)", "Maximize benefits, minimize harm", "Risk-benefit analysis before and during study"],
["Justice\n(न्याय)", "Fair distribution of benefits and burdens", "Equal treatment; no exploitation of vulnerable groups"],
],
col_widths=[40*mm, 46*mm, W - 36*mm - 88*mm],
hdr_color=MAROON,
)
story += info_box("Ayurvedic Ethical Principles", [
Paragraph("• <b>\"आतुरस्य हितं वाच्यम्\"</b> — Speak for the benefit of the patient (Charaka Sutra 8/13)", body),
Paragraph("• <b>\"न हिंसात् सर्वभूतानाम्\"</b> — Do not harm any living being", body),
Paragraph("• <b>Charaka's Physician Oath</b> — Dedication, compassion, and patient-first approach", body),
], bg=LIGHT_SAFFRON, border=SAFFRON)
story.append(section("31. IHEC — Institutional Human Ethics Committee"))
story += info_box("Legal Basis", [
Paragraph("• <b>ICMR National Ethical Guidelines for Biomedical Research, 2017</b>", body),
Paragraph("• <b>Helsinki Declaration</b> (1964, last revised 2013)", body),
Paragraph("• <b>CDSCO Schedule Y</b> — Indian drug regulatory framework", body),
Paragraph("• ICH-GCP (Good Clinical Practice) E6 guidelines", body),
], bg=LIGHT_BLUE, border=DARK_NAVY)
story += data_table(
["Responsibility", "Details"],
[
["Protocol Review", "Review scientific and ethical soundness of research proposal before approval"],
["Informed Consent Review", "Ensure consent form is complete, understandable, and voluntary"],
["Risk-Benefit Assessment", "Evaluate risks vs potential benefits for participants"],
["Vulnerable Population Protection", "Special safeguards for children, pregnant women, prisoners, mentally ill"],
["Ongoing Monitoring", "Continuous review of running studies; interim analyses"],
["Adverse Event Reporting", "Review SAE (Serious Adverse Events) reports"],
["Privacy & Confidentiality", "Ensure participant data is protected and anonymized"],
["Research Misconduct", "Investigate plagiarism, data fabrication/falsification"],
],
col_widths=[52*mm, W - 36*mm - 54*mm],
hdr_color=DARK_NAVY,
)
story.append(subsection("IHEC Composition (ICMR, minimum 7 members):"))
ihec_comp = [
"Chairperson — from outside the institution",
"Basic Medical Scientist(s)",
"Clinician(s)",
"Legal Expert / Jurist",
"Social Scientist / Philosopher / Ethicist",
"Layperson (Community representative)",
"Nominee of Ministry of Health & Family Welfare (if applicable)",
]
for c in ihec_comp:
story.append(bullet(c))
story.append(sp(3))
story.append(section("32. IAEC — Institutional Animal Ethics Committee"))
story += info_box("Legal Basis", [
Paragraph("• <b>CPCSEA</b> — Committee for the Purpose of Control and Supervision of Experiments on Animals", body),
Paragraph("• <b>Prevention of Cruelty to Animals Act, 1960</b>", body),
Paragraph("• <b>Breeding of and Experiments on Animals Rules, 1998</b>", body),
], bg=LIGHT_MAROON, border=MAROON)
story.append(subsection("The 3R Principle (Russell & Burch, 1959):"))
rr_data = [
["3R", "Full Name", "Meaning", "Example"],
["Replacement\n(प्रतिस्थापन)", "Replace animals", "Use in vitro, computer models wherever possible", "Cell lines instead of live animals for cytotoxicity"],
["Reduction\n(कमी)", "Reduce numbers", "Use minimum animals while getting valid results", "Statistical power calculation for sample size"],
["Refinement\n(परिष्करण)", "Refine methods", "Minimize pain, distress, suffering", "Use anesthesia, humane endpoints"],
]
rr_t = Table(rr_data, colWidths=[28*mm, 38*mm, 54*mm, W-36*mm-122*mm])
rr_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), MAROON),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("BACKGROUND", (0,1), (0,1), colors.HexColor("#C62828")),
("BACKGROUND", (0,2), (0,2), colors.HexColor("#AD1457")),
("BACKGROUND", (0,3), (0,3), colors.HexColor("#6A1B9A")),
("TEXTCOLOR", (0,1), (0,-1), WHITE),
("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
("ALIGN", (0,1), (0,-1), "CENTER"),
("GRID", (0,0), (-1,-1), 0.5, GRAY_MED),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 6),
("ROWBACKGROUNDS",(1,1),(-1,-1),[LIGHT_MAROON, WHITE, TABLE_ALT]),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story += [rr_t, sp(3)]
story.append(pg())
# ══════════════════════════════════════════════════════════════════════════════
# UNIT 7 — SHORT NOTES
# ══════════════════════════════════════════════════════════════════════════════
story += unit_banner(7, "Short Notes", "AYUSH Protocol · PubMed · DHARA · Key Concepts")
story.append(section("33. AYUSH Research Protocol"))
story += info_box("About AYUSH", [
Paragraph("<b>AYUSH</b> = Ayurveda, Yoga & Naturopathy, Unani, Siddha, Homeopathy", body),
Paragraph("<b>Ministry of AYUSH</b> established: November 2014, Government of India", body),
], bg=LIGHT_SAFFRON, border=SAFFRON)
ayush_points = [
"CTRI (Clinical Trials Registry India) registration mandatory for all clinical trials",
"GCP (Good Clinical Practice) guidelines must be followed",
"CONSORT reporting standards for RCTs",
"API (Ayurvedic Pharmacopoeia of India) — standardization reference",
"CCRAS (Central Council for Research in Ayurvedic Sciences) — primary research council",
"Reverse Pharmacology approach — validate traditional use with modern science",
"Classical text reference mandatory in research protocol",
"Prakriti-based (body constitution) patient classification in trial design",
"Seasonal variation must be documented in Rasayana studies",
"IND Application required for novel Ayurvedic formulations",
]
for pt in ayush_points:
story.append(bullet(pt))
story.append(sp(3))
story.append(section("34. PubMed"))
story += data_table(
["Feature", "Details"],
[
["Full Name", "PubMed / MEDLINE — National Library of Medicine (NLM), NIH, USA"],
["Established", "1996 (web-based); MEDLINE since 1966"],
["Coverage", "35+ million citations; 5,000+ journals; 80+ countries"],
["Access", "Free at pubmed.ncbi.nlm.nih.gov"],
["Search Tool", "MeSH (Medical Subject Headings) — controlled vocabulary"],
["Boolean Operators", "AND, OR, NOT; Field tags: [MeSH], [tiab], [au], [dp]"],
["Full Texts", "PMC (PubMed Central) — free full texts available"],
["Filters", "Date range, Article type (RCT, SR), Species, Language, Age group"],
["PICO Tool", "Built-in tool for structured clinical question search"],
["Ayurveda Limitation", "Only ~240 Ayurveda articles/year indexed → use DHARA also"],
],
col_widths=[42*mm, W - 36*mm - 44*mm],
hdr_color=colors.HexColor("#1565C0"),
)
story.append(section("35. DHARA"))
story += data_table(
["Feature", "Details"],
[
["Full Name", "Digital Helpline for Ayurveda Research Articles"],
["URL", "www.dharaonline.org"],
["Established", "2012 (described in J Ayurveda Integr Med 2012)"],
["Funding", "Ministry of AYUSH, Government of India"],
["Coverage", "10,000+ articles; 4,000+ full texts; 4,476 journals"],
["Unique Feature", "Includes Ayurveda journals NOT indexed in PubMed or international databases"],
["Indian Languages", "Includes research published in Hindi and regional languages"],
["Comparison", "PubMed: ~240 Ayurveda articles/year | DHARA: 4,000+ Ayurveda specific"],
["Importance", "Essential for comprehensive Ayurveda literature review — PubMed alone is insufficient"],
],
col_widths=[42*mm, W - 36*mm - 44*mm],
hdr_color=DARK_GREEN,
)
story.append(section("36. Quick Formulas Reference"))
formula_data = [
["Formula", "Expression", "Use"],
["Arithmetic Mean", "x̄ = Σx / n", "Average value"],
["Variance", "σ² = Σ(x−x̄)² / n", "Spread of data"],
["Standard Deviation", "σ = √[Σ(x−x̄)² / n]", "Variability of data"],
["Standard Error", "SE = SD / √n", "Precision of sample mean"],
["95% CI", "Mean ± 1.96 × SE", "Confidence interval"],
["Z-score", "Z = (x − μ) / σ", "Normal distribution position"],
["Probability", "P(A) = Favourable outcomes / Total outcomes", "Likelihood of event"],
["Range", "Max − Min", "Total spread of data"],
["Coefficient of Variation", "CV = (SD/Mean) × 100 %", "Relative variability"],
]
t = Table(formula_data, colWidths=[50*mm, 70*mm, W - 36*mm - 122*mm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_NAVY),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTNAME", (1,1), (1,-1), "Courier-Bold"),
("TEXTCOLOR", (1,1), (1,-1), DARK_NAVY),
("GRID", (0,0), (-1,-1), 0.5, GRAY_MED),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, LIGHT_BLUE]),
("VALIGN", (0,0),(-1,-1),"MIDDLE"),
]))
story += [t, sp(4)]
# ─── FINAL EXAM TIPS PAGE ────────────────────────────────────────────────────
story.append(pg())
tip_banner = Table([["🎯 MOST REPEATED EXAM QUESTIONS — QUICK CHECKLIST"]], colWidths=[W-36*mm])
tip_banner.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), MAROON),
("TEXTCOLOR", (0,0), (-1,-1), WHITE),
("FONTNAME", (0,0), (-1,-1), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 14),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("ROUNDEDCORNERS", [6]),
]))
story.append(tip_banner)
story.append(sp(4))
checklist = [
("Unit 1", [
"अनुसंधान = अनु + सन्धान | Research = Re + Cherche",
"WHO definition + Woodey definition + Charaka Sutra 11/54",
"12-step Research Process (Problem → Publication)",
"Types: Pure/Applied/Action | Quantitative/Qualitative | Longitudinal/Cross-sectional",
"Historical: Vedic → CCRAS (1969) → AYUSH Ministry (2014)",
]),
("Unit 2", [
"4 Pramanas: Aaptopadesha + Pratyaksha + Anumana + Yukti",
"Modern equivalents: Expert Opinion + Observation + Inference + Meta-analysis",
"Tridosha = Neuro-endocrine-immune axis",
"Bhasma = Nano-particles | Arishta = Fermented bioavailability enhancer",
]),
("Unit 3", [
"EBM — Sackett (1996) definition",
"3 Pillars: Research Evidence + Clinical Expertise + Patient Values",
"Level Ia = Systematic Review of RCTs (highest evidence)",
"Level V = Expert Opinion (lowest)",
"IMRAD = Introduction-Methods-Results-And-Discussion",
]),
("Unit 4", [
"H₀ = Null (no effect) | H₁ = Alternative (effect exists)",
"Type I Error = False Positive | Type II = False Negative",
"p < 0.05 = Significant | p < 0.01 = Highly Significant",
"Longitudinal = same group over time | Cross-sectional = one time, many groups",
"Mann-Whitney = non-parametric t-test | Kruskal-Wallis = non-parametric ANOVA",
"PubMed = NLM/NIH | DHARA = AYUSH Ministry | Cochrane = Gold standard EBM",
]),
("Unit 5", [
"Mean = Σx/n | Median = middle value | Mode = most frequent",
"SD formula: σ = √[Σ(x−x̄)²/n]",
"SE = SD/√n → decreases as n increases",
"Normal curve: 68-95-99.7 rule | Mean=Median=Mode",
"Z = (x−μ)/σ",
"SPSS = IBM, menu-driven | R = Free, open-source | SAS = FDA submissions",
]),
("Unit 6", [
"Belmont 3 principles: Respect for Persons + Beneficence + Justice",
"IHEC = Institutional Human Ethics Committee (min. 7 members, chair = external)",
"IAEC = 3R: Replacement + Reduction + Refinement",
"Systematic Review > Narrative Review (PRISMA guidelines)",
"Informed Consent must be: Voluntary + Informed + Competent + Ongoing",
]),
("Unit 7", [
"DHARA = Digital Helpline for Ayurveda Research Articles (dharaonline.org)",
"PubMed = pubmed.ncbi.nlm.nih.gov | MeSH terms | PMC full texts",
"AYUSH Protocol = CTRI registration + GCP + CCRAS guidelines + Reverse Pharmacology",
"CTRI = Clinical Trials Registry India (mandatory registration)",
]),
]
for unit, pts in checklist:
unit_label = Table([[unit]], colWidths=[W-36*mm])
unit_label.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_GREEN),
("TEXTCOLOR", (0,0), (-1,-1), WHITE),
("FONTNAME", (0,0), (-1,-1), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 11),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 12),
]))
story.append(unit_label)
for pt in pts:
story.append(Paragraph(f" ☐ {pt}",
make_style("CL", fontSize=9, leading=13, leftIndent=8, spaceAfter=1)))
story.append(sp(2))
story.append(sp(4))
story.append(hr(GOLD, 2))
footer_t = Table([["Prepared for University Exam Revision | Ayurveda Research & Anusandhan Shastra | All Rights Reserved"]],
colWidths=[W-36*mm])
footer_t.setStyle(TableStyle([
("FONTSIZE", (0,0), (-1,-1), 8),
("TEXTCOLOR", (0,0), (-1,-1), colors.HexColor("#888888")),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("TOPPADDING",(0,0),(-1,-1), 4),
]))
story.append(footer_t)
# ── Build PDF ─────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT_PATH}")
cd /home/daytona/workspace/ayurveda-research-notes && python3 generate_pdf.py 2>&1
ls -lh /home/daytona/workspace/ayurveda-research-notes/Ayurveda_Research_Quick_Revision.pdf
Ayurveda Research Quick Revision
PDF Document · PDF
| Section | Content |
|---|---|
| Cover Page | Title with stats: 7 Units, 30+ Topics, 50+ Key Terms |
| Table of Contents | All units with topic summaries |
| Unit 1 | Etymology, Definitions (WHO+Woodey+Charaka), Synonyms, 12-step Research Process, Types, Historical Timeline |
| Unit 2 | 4 Pramanas with modern equivalents, Tridosha science, Aushadha Kalpana validity |
| Unit 3 | EBM (Sackett), 3 Pillars, Evidence Hierarchy table (Level I-V), IMRAD format |
| Unit 4 | Hypothesis (H₀/H₁), Research Q vs Objectives, All Databases comparison (PubMed/DHARA/Cochrane), Parametric vs Non-parametric, p-value guide, Questionnaire types |
| Unit 5 | Variables, Mean/Median/Mode with worked example, SD/SE formulas + numerical example, Normal Distribution (68-95-99.7), Statistical Software table |
| Unit 6 | Literature Review types, Belmont principles, IHEC composition + responsibilities, IAEC 3R principle |
| Unit 7 | AYUSH Protocol, PubMed feature table, DHARA feature table, All formulas reference sheet |
| Final Page | Exam checklist — unit-wise most repeated questions with checkboxes |
Introduction of research
Create a focused Introduction to Research handout (single chapter)