I orris you know bams second proff syllabus

Searching the Web

BAMS second professional year syllabus subjects India CCIM

Yes! Here's the BAMS Second Professional Year Syllabus as prescribed by the Central Council of Indian Medicine (CCIM):

BAMS 2nd Professional Year - Subjects

The second professional year (2nd Prof) of BAMS covers the following subjects:

1. Rachana Sharira (Anatomy)

  • Already started in 1st Prof, but some universities continue it
  • Gross anatomy, histology, embryology in Ayurvedic context

2. Kriya Sharira (Physiology)

  • Ayurvedic and modern physiology
  • Dosha, Dhatu, Mala concepts
  • Prana, Agni, Ojas
  • Comparative physiology (Ayurvedic vs modern)

3. Dravyaguna Vigyana (Pharmacognosy / Materia Medica)

  • Properties (Rasa, Guna, Virya, Vipaka, Prabhava)
  • Individual drug study of medicinal plants
  • Dravyaguna of major herbs

4. Rasa Shastra and Bhaishajya Kalpana (Pharmaceutical Sciences)

  • Rasa Shastra: Mineral and metallic preparations (Parada, Gandhaka, etc.)
  • Bhaishajya Kalpana: Ayurvedic dosage forms (Asava, Arishta, Churna, Vati, Ghrita, etc.)

5. Charak Samhita (First Half)

  • Reading and interpretation of Charaka Samhita
  • Sutrasthana, Nidanasthana, Vimanasthana chapters
  • Ayurvedic principles of health and disease

Exam Pattern (General)

PaperMarks
Theory (each subject)100 marks
Practical / Viva50 marks
Internal Assessment20-30 marks

Note on University Variations

The CCIM sets the minimum standards, but individual universities (like Rajiv Gandhi University of Health Sciences, Maharashtra University of Health Sciences, Gujarat Ayurved University, etc.) may slightly vary the distribution of subjects between 1st Prof, 2nd Prof, and 3rd Prof.
Common 2nd Prof subjects across most universities:
  • Kriya Sharira
  • Dravyaguna Vigyana
  • Rasa Shastra & Bhaishajya Kalpana
  • Charak Samhita (Poorvardha)
Would you like details on any specific subject - like important topics, practicals, or exam preparation tips?

New ncism

Searching the Web

NCISM BAMS second professional syllabus 2024 new curriculum

Web search is currently unavailable, so let me share what I know about the NCISM revised BAMS curriculum:

NCISM New BAMS 2nd Professional Syllabus

NCISM (which replaced CCIM under the National Commission for Indian System of Medicine Act, 2020) released a revised competency-based curriculum for BAMS.

2nd Professional Year - Subjects under NCISM

S.NoSubject
1Kriya Sharira (Ayurvedic Physiology + Modern Physiology)
2Dravyaguna Vigyana (Ayurvedic Pharmacognosy)
3Rasa Shastra evam Bhaishajya Kalpana (Ayurvedic Pharmaceutics)
4Charak Samhita - Poorvardha (First Half of Charaka Samhita)

Key Changes in NCISM Curriculum

  1. Competency-Based Medical Education (CBME) - similar to modern medicine's NMC approach
  2. Integrated teaching - more coordination between Ayurvedic and modern science topics
  3. Skill-based learning - practical skills and clinical exposure emphasized earlier
  4. Foundation Course - added at the start of BAMS (like MBBS)
  5. Elective subjects introduced
  6. Internal Assessment restructured with formative assessments throughout the year
  7. Attitude, Ethics and Communication (AETCOM) module added

Assessment Pattern (NCISM)

ComponentMarks
Theory (University Exam)80 marks
Internal Assessment20 marks
Practical/Viva50 marks

Important Note

The NCISM uploaded the detailed Graduate Medical Education Regulations on their official website at ncism.gov.in. The exact subject-wise competencies, teaching hours, and topic lists are available there.
I'd recommend checking:
  • ncism.gov.in - Official regulations and syllabus PDFs
  • Your university's website - since universities may have a transition period before fully adopting NCISM norms
Would you like me to go deeper into any specific subject - like Dravyaguna topics, Rasa Shastra practicals, or Kriya Sharira important chapters?

Create a detailed study guide PDF for BAMS 2nd Prof NCISM syllabus

My subject is 1. Dravya gun 2. Ras shastra 3. Rog nidan 4. Samhita adhyan 2 5. Agad tantra 6. Swasthvritt According to ncism syllabus

Reading File
Running Command

mkdir -p /home/daytona/workspace/bams-study-guide && ls /home/daytona/workspace/bams-study-guide/

Writing File

~/bams-study-guide/create_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.lib.colors import HexColor, white, black
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    PageBreak, HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import BaseDocTemplate, Frame, PageTemplate
from reportlab.lib import colors

OUTPUT = "/home/daytona/workspace/bams-study-guide/BAMS_2nd_Prof_Study_Guide_NCISM.pdf"

# Colors
SAFFRON = HexColor("#FF6600")
DARK_GREEN = HexColor("#1B5E20")
LIGHT_GREEN = HexColor("#E8F5E9")
GOLD = HexColor("#F9A825")
DARK_BLUE = HexColor("#0D47A1")
LIGHT_BLUE = HexColor("#E3F2FD")
PURPLE = HexColor("#4A148C")
LIGHT_PURPLE = HexColor("#F3E5F5")
TEAL = HexColor("#004D40")
LIGHT_TEAL = HexColor("#E0F2F1")
RED_DARK = HexColor("#B71C1C")
LIGHT_RED = HexColor("#FFEBEE")
ORANGE_DARK = HexColor("#E65100")
LIGHT_ORANGE = HexColor("#FFF3E0")
GREY_BG = HexColor("#F5F5F5")
HEADER_BG = HexColor("#37474F")

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=1.5*cm,
    leftMargin=1.5*cm,
    topMargin=2*cm,
    bottomMargin=2*cm,
)

styles = getSampleStyleSheet()

# Custom styles
title_style = ParagraphStyle(
    'MainTitle', parent=styles['Title'],
    fontSize=26, textColor=SAFFRON, spaceAfter=6,
    spaceBefore=0, alignment=TA_CENTER, fontName='Helvetica-Bold',
    leading=32
)
subtitle_style = ParagraphStyle(
    'Subtitle', parent=styles['Normal'],
    fontSize=13, textColor=DARK_GREEN, spaceAfter=4,
    alignment=TA_CENTER, fontName='Helvetica-Bold'
)
tagline_style = ParagraphStyle(
    'Tagline', parent=styles['Normal'],
    fontSize=10, textColor=HexColor("#546E7A"), spaceAfter=2,
    alignment=TA_CENTER, fontName='Helvetica'
)
subject_header_style = ParagraphStyle(
    'SubjectHeader', parent=styles['Heading1'],
    fontSize=18, textColor=white, spaceAfter=0,
    spaceBefore=0, fontName='Helvetica-Bold', alignment=TA_CENTER,
    leading=22
)
section_title_style = ParagraphStyle(
    'SectionTitle', parent=styles['Heading2'],
    fontSize=13, textColor=DARK_BLUE, spaceAfter=4,
    spaceBefore=8, fontName='Helvetica-Bold', leading=16
)
subsection_style = ParagraphStyle(
    'Subsection', parent=styles['Heading3'],
    fontSize=11, textColor=DARK_GREEN, spaceAfter=3,
    spaceBefore=5, fontName='Helvetica-Bold', leading=14
)
body_style = ParagraphStyle(
    'Body', parent=styles['Normal'],
    fontSize=9.5, textColor=black, spaceAfter=3,
    spaceBefore=1, fontName='Helvetica', leading=14, alignment=TA_JUSTIFY
)
bullet_style = ParagraphStyle(
    'Bullet', parent=styles['Normal'],
    fontSize=9.5, textColor=black, spaceAfter=2,
    spaceBefore=1, fontName='Helvetica', leading=13,
    leftIndent=12, bulletIndent=0
)
important_style = ParagraphStyle(
    'Important', parent=styles['Normal'],
    fontSize=9.5, textColor=RED_DARK, spaceAfter=2,
    spaceBefore=1, fontName='Helvetica-Bold', leading=13,
    leftIndent=12
)
tip_style = ParagraphStyle(
    'Tip', parent=styles['Normal'],
    fontSize=9, textColor=TEAL, spaceAfter=2,
    spaceBefore=1, fontName='Helvetica-Oblique', leading=13,
    leftIndent=12
)
page_title_style = ParagraphStyle(
    'PageTitle', parent=styles['Normal'],
    fontSize=15, textColor=PURPLE, spaceAfter=6,
    spaceBefore=4, fontName='Helvetica-Bold', alignment=TA_CENTER,
    leading=18
)

def subject_banner(title, subtitle, color):
    data = [[Paragraph(title, subject_header_style)],
            [Paragraph(subtitle, ParagraphStyle('sub2', parent=styles['Normal'],
                fontSize=9, textColor=white, alignment=TA_CENTER, fontName='Helvetica'))]]
    t = Table(data, colWidths=[17*cm])
    t.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), color),
        ('ROUNDEDCORNERS', [8]),
        ('TOPPADDING', (0,0), (-1,0), 10),
        ('BOTTOMPADDING', (0,-1), (-1,-1), 10),
        ('LEFTPADDING', (0,0), (-1,-1), 10),
        ('RIGHTPADDING', (0,0), (-1,-1), 10),
    ]))
    return t

def info_box(title, items, bg_color, title_color):
    content = []
    content.append(Paragraph(title, ParagraphStyle('ibt', parent=styles['Normal'],
        fontSize=10.5, textColor=title_color, fontName='Helvetica-Bold', spaceAfter=4)))
    for item in items:
        content.append(Paragraph(f"• {item}", bullet_style))
    data = [[content]]
    t = Table(data, colWidths=[17*cm])
    t.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), bg_color),
        ('BOX', (0,0), (-1,-1), 1, title_color),
        ('TOPPADDING', (0,0), (-1,-1), 8),
        ('BOTTOMPADDING', (0,0), (-1,-1), 8),
        ('LEFTPADDING', (0,0), (-1,-1), 10),
        ('RIGHTPADDING', (0,0), (-1,-1), 10),
    ]))
    return t

def two_col_table(headers, rows, col_colors=None):
    header_row = [Paragraph(h, ParagraphStyle('th', parent=styles['Normal'],
        fontSize=9.5, textColor=white, fontName='Helvetica-Bold', alignment=TA_CENTER)) for h in headers]
    data = [header_row]
    for row in rows:
        data.append([Paragraph(str(c), ParagraphStyle('td', parent=styles['Normal'],
            fontSize=9, textColor=black, fontName='Helvetica', leading=13)) for c in row])
    ncols = len(headers)
    col_w = 17*cm / ncols
    t = Table(data, colWidths=[col_w]*ncols, repeatRows=1)
    style_cmds = [
        ('BACKGROUND', (0,0), (-1,0), HEADER_BG),
        ('ROWBACKGROUNDS', (0,1), (-1,-1), [white, GREY_BG]),
        ('GRID', (0,0), (-1,-1), 0.5, HexColor("#BDBDBD")),
        ('TOPPADDING', (0,0), (-1,-1), 5),
        ('BOTTOMPADDING', (0,0), (-1,-1), 5),
        ('LEFTPADDING', (0,0), (-1,-1), 6),
        ('RIGHTPADDING', (0,0), (-1,-1), 6),
        ('VALIGN', (0,0), (-1,-1), 'TOP'),
    ]
    t.setStyle(TableStyle(style_cmds))
    return t

def highlight_box(text, color, text_color=None):
    if text_color is None:
        text_color = DARK_GREEN
    data = [[Paragraph(text, ParagraphStyle('hb', parent=styles['Normal'],
        fontSize=9.5, textColor=text_color, fontName='Helvetica-Bold',
        leading=14, alignment=TA_CENTER))]]
    t = Table(data, colWidths=[17*cm])
    t.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), color),
        ('TOPPADDING', (0,0), (-1,-1), 6),
        ('BOTTOMPADDING', (0,0), (-1,-1), 6),
        ('LEFTPADDING', (0,0), (-1,-1), 8),
        ('RIGHTPADDING', (0,0), (-1,-1), 8),
    ]))
    return t

# ===================== BUILD CONTENT =====================
story = []

# ---- COVER PAGE ----
story.append(Spacer(1, 1*cm))

# Top banner
cover_data = [[Paragraph("BAMS 2nd Professional Year", ParagraphStyle('cv1', parent=styles['Normal'],
    fontSize=22, textColor=white, fontName='Helvetica-Bold', alignment=TA_CENTER, leading=28)),
    ],[Paragraph("COMPLETE STUDY GUIDE", ParagraphStyle('cv2', parent=styles['Normal'],
    fontSize=28, textColor=GOLD, fontName='Helvetica-Bold', alignment=TA_CENTER, leading=34))],
    [Paragraph("As per NCISM (National Commission for Indian System of Medicine) Syllabus", ParagraphStyle('cv3',
    parent=styles['Normal'], fontSize=11, textColor=white, fontName='Helvetica', alignment=TA_CENTER))]
]
cover_t = Table([[r[0]] for r in cover_data], colWidths=[17*cm])
cover_t.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,-1), HexColor("#1B2A3B")),
    ('TOPPADDING', (0,0), (0,0), 20),
    ('TOPPADDING', (0,1), (0,1), 8),
    ('TOPPADDING', (0,2), (0,2), 6),
    ('BOTTOMPADDING', (0,-1), (-1,-1), 20),
    ('LEFTPADDING', (0,0), (-1,-1), 16),
    ('RIGHTPADDING', (0,0), (-1,-1), 16),
]))
story.append(cover_t)
story.append(Spacer(1, 0.5*cm))

# Subjects list on cover
subj_cover = [
    ["1", "Dravyaguna Vigyana", "Ayurvedic Pharmacognosy"],
    ["2", "Rasa Shastra & Bhaishajya Kalpana", "Ayurvedic Pharmaceutics"],
    ["3", "Roga Nidana evam Vikriti Vigyana", "Ayurvedic Pathology & Diagnosis"],
    ["4", "Samhita Adhyan - 2 (Charaka/Ashtanga)", "Classical Text Study"],
    ["5", "Agada Tantra", "Toxicology & Forensic Medicine"],
    ["6", "Swasthavritta", "Preventive & Social Medicine"],
]
subj_data = [[Paragraph("#", ParagraphStyle('sh', parent=styles['Normal'], fontSize=10, textColor=white, fontName='Helvetica-Bold', alignment=TA_CENTER)),
              Paragraph("Subject", ParagraphStyle('sh', parent=styles['Normal'], fontSize=10, textColor=white, fontName='Helvetica-Bold')),
              Paragraph("Domain", ParagraphStyle('sh', parent=styles['Normal'], fontSize=10, textColor=white, fontName='Helvetica-Bold'))]]
for s in subj_cover:
    subj_data.append([
        Paragraph(s[0], ParagraphStyle('sd', parent=styles['Normal'], fontSize=10, textColor=SAFFRON, fontName='Helvetica-Bold', alignment=TA_CENTER)),
        Paragraph(s[1], ParagraphStyle('sd2', parent=styles['Normal'], fontSize=10, textColor=black, fontName='Helvetica-Bold')),
        Paragraph(s[2], ParagraphStyle('sd3', parent=styles['Normal'], fontSize=9.5, textColor=DARK_GREEN, fontName='Helvetica-Oblique')),
    ])
sc_t = Table(subj_data, colWidths=[1*cm, 9.5*cm, 6.5*cm])
sc_t.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), DARK_BLUE),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [LIGHT_BLUE, white]),
    ('BOX', (0,0), (-1,-1), 1, DARK_BLUE),
    ('GRID', (0,0), (-1,-1), 0.5, HexColor("#BBDEFB")),
    ('TOPPADDING', (0,0), (-1,-1), 7),
    ('BOTTOMPADDING', (0,0), (-1,-1), 7),
    ('LEFTPADDING', (0,0), (-1,-1), 8),
    ('RIGHTPADDING', (0,0), (-1,-1), 8),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
]))
story.append(sc_t)
story.append(Spacer(1, 0.5*cm))

# Footer cover
footer_data = [[
    Paragraph("Academic Year 2025-26  |  Based on NCISM Competency-Based Curriculum  |  All 6 Subjects Covered",
    ParagraphStyle('ft', parent=styles['Normal'], fontSize=9, textColor=white,
    fontName='Helvetica', alignment=TA_CENTER))
]]
ft = Table(footer_data, colWidths=[17*cm])
ft.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,-1), SAFFRON),
    ('TOPPADDING', (0,0), (-1,-1), 8),
    ('BOTTOMPADDING', (0,0), (-1,-1), 8),
]))
story.append(ft)
story.append(PageBreak())

# ===================== SUBJECT 1: DRAVYAGUNA =====================
story.append(subject_banner("Subject 1: Dravyaguna Vigyana",
    "Ayurvedic Pharmacognosy & Materia Medica | NCISM 2nd Prof", DARK_GREEN))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Overview", section_title_style))
story.append(Paragraph(
    "Dravyaguna Vigyana is the science of Ayurvedic drugs - their properties, actions, and therapeutic uses. "
    "It covers the fundamental principles of Ayurvedic pharmacology and detailed study of medicinal plants, "
    "minerals, and animal products used in Ayurvedic practice.",
    body_style))

story.append(Paragraph("Core Concepts (Maulik Siddhanta)", section_title_style))
story.append(two_col_table(
    ["Concept", "Definition", "Significance"],
    [
        ["Rasa (Taste)", "6 tastes: Madhura, Amla, Lavana, Katu, Tikta, Kashaya", "Primary drug classification"],
        ["Guna (Property)", "20 gurvadi gunas (heavy/light, hot/cold etc.)", "Determines pharmacodynamics"],
        ["Virya (Potency)", "Ushna (hot) or Sheeta (cold)", "Key therapeutic action"],
        ["Vipaka (Post-digest)", "Madhura, Amla, Katu vipaka", "Final metabolic effect"],
        ["Prabhava (Special)", "Unique unexplained action", "Exceptions to rules"],
        ["Karma (Action)", "Specific pharmacological actions", "Therapeutic indication"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Important Dravyas - Classification", section_title_style))
story.append(two_col_table(
    ["Category", "Key Drugs", "Major Action"],
    [
        ["Deepaniya", "Pippali, Shunthi, Maricha, Haritaki", "Digestive stimulant"],
        ["Pachana", "Chitraka, Nagara, Ajamoda", "Digestive, carminative"],
        ["Amahara", "Trikatu, Hingvasthak churna", "Ama pachana"],
        ["Srotoshodhana", "Haritaki, Triphala, Guggulu", "Channel purification"],
        ["Rasayana", "Ashwagandha, Amalaki, Guduchi", "Rejuvenation"],
        ["Vajikarana", "Shatavari, Ashwagandha, Kapikacchu", "Aphrodisiac"],
        ["Jwaraghna", "Guduchi, Kiratatikta, Neem", "Antipyretic"],
        ["Kandughna", "Haridra, Nimba, Khadira", "Anti-pruritic"],
        ["Vishagna", "Shirisha, Haridra, Nimba", "Anti-toxic"],
        ["Krimighna", "Vidanga, Palasha, Nimba", "Anthelmintic"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("50 Mahakashaya (Charaka) - Must Know Groups", section_title_style))
story.append(info_box("Key Mahakashaya Groups (NCISM Important)", [
    "Jeevaniya (Life promoting): Jeevaka, Rishabhaka, Meda, Mahameda, Kakoli, Kshirakakoli, Mudgaparni, Mashaparni, Jivanti, Madhuka",
    "Brihmaniya (Nourishing): Ashwagandha, Shatavari, Bala, Atibala, Vidari, Shalaparni, Prushnaparni",
    "Lekhaniya (Scraping): Guggulu, Shilajatu, Kshara, Yava, Kulattha, Loha",
    "Bhedaniya (Purgative): Danti, Dravanti, Trivrit, Chitrak, Saptala",
    "Sandhaniya (Healing/Union): Yashti, Madhuka, Lodhra, Priyangu, Dhanyaka",
    "Shothahara (Anti-inflammatory): Punarnava, Shigru, Eranda, Devadaru, Rasna",
], LIGHT_GREEN, DARK_GREEN))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Important Single Drugs - Detailed Study", section_title_style))
story.append(two_col_table(
    ["Drug (Latin Name)", "Rasa/Virya/Vipaka", "Major Karma", "Key Indications"],
    [
        ["Ashwagandha\n(Withania somnifera)", "Tikta-Kashaya/Ushna/Madhura", "Balya, Rasayana, Vajikara", "Weakness, anxiety, infertility"],
        ["Shatavari\n(Asparagus racemosus)", "Madhura-Tikta/Sheeta/Madhura", "Stanyakara, Garbhasthapana", "Female disorders, lactation"],
        ["Guduchi\n(Tinospora cordifolia)", "Tikta-Kashaya/Ushna/Madhura", "Jwaraghna, Rasayana, Tridoshaghna", "Fever, diabetes, immunity"],
        ["Haridra\n(Curcuma longa)", "Tikta-Katu/Ushna/Katu", "Kandughna, Varnya, Krimighna", "Skin diseases, wounds"],
        ["Triphala\n(3 fruits)", "Pancharasa (all except Lavana)", "Rasayana, Anulomana, Chaksushya", "Eyes, constipation, Rasayana"],
        ["Trikatu\n(3 pungents)", "Katu/Ushna/Katu", "Deepana, Pachana, Kaphahara", "Indigestion, respiratory"],
        ["Nimba\n(Azadirachta indica)", "Tikta-Kashaya/Sheeta/Katu", "Krimighna, Kandughna, Jwaraghna", "Skin, worms, fever"],
        ["Eranda\n(Ricinus communis)", "Madhura-Tikta/Ushna/Madhura", "Vatahara, Bhedana, Shothahara", "Arthritis, constipation"],
        ["Punarnava\n(Boerhavia diffusa)", "Kashaya-Madhura/Ushna/Madhura", "Shothahara, Mutrala, Rasayana", "Edema, renal disorders"],
        ["Shunthi\n(Zingiber officinale)", "Katu/Ushna/Madhura", "Deepana, Pachana, Vatakaphahara", "Digestion, nausea, cold"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(info_box("NCISM Exam Tips - Dravyaguna", [
    "Short Answer: Panchabhautika composition, Rasa-Guna-Virya-Vipaka-Prabhava definitions",
    "Long Answer: Describe any 5 drugs with complete pharmacological properties (Karma, Guna, Yoga)",
    "Practical: Identification of 50 drugs in crude form, powder, and herbarium",
    "Important MCQs: Synonyms of drugs, Latin names, family names",
    "Viva: Be ready for vernacular names in Hindi/local language + Latin binomial",
], LIGHT_ORANGE, ORANGE_DARK))

story.append(PageBreak())

# ===================== SUBJECT 2: RASA SHASTRA =====================
story.append(subject_banner("Subject 2: Rasa Shastra evam Bhaishajya Kalpana",
    "Ayurvedic Pharmaceutics & Iatrochemistry | NCISM 2nd Prof", PURPLE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Overview", section_title_style))
story.append(Paragraph(
    "Rasa Shastra deals with the processing and use of metals, minerals, gems, and toxic substances in Ayurvedic medicine. "
    "Bhaishajya Kalpana covers Ayurvedic pharmaceutical dosage forms. Together they form the pharmaceutical science of Ayurveda.",
    body_style))

story.append(Paragraph("Rasa Shastra - Part A", section_title_style))
story.append(Paragraph("Parada (Mercury) - Most Important Topic", subsection_style))
story.append(two_col_table(
    ["Topic", "Details"],
    [
        ["Sanskrit Name", "Parada, Suta, Rasa, Mishra, Chapala"],
        ["Origin", "Hingulottha (from Hingula/Cinnabar - HgS)"],
        ["Guna", "Yogavahi (carrier), Khecharatva, Khechari"],
        ["Shodhana", "Sapta vidha shodhana of Parada"],
        ["Marana", "Kajjali, Rasa sindura, Hinguloththa"],
        ["Kajjali preparation", "Parada + Gandhaka triturated in mortar"],
        ["Rasa Sindura", "Red sulfide of mercury - key preparation"],
        ["Therapeutic use", "Tridoshahara, Rasayana, Balya after proper shodhana"],
    ]
))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Ashtamahauparasas & Key Minerals", subsection_style))
story.append(two_col_table(
    ["Mineral/Metal", "Modern Name", "Key Processing", "Therapeutic Use"],
    [
        ["Swarna (Gold)", "Aurum", "Swarna bhasma - incineration", "Rasayana, nervous system"],
        ["Rajata (Silver)", "Argentum", "Rajata bhasma", "Brain tonic, cooling"],
        ["Tamra (Copper)", "Cuprum", "Tamra bhasma - shodhana essential", "Liver, anemia, skin"],
        ["Lauha (Iron)", "Ferrum", "Lauha bhasma", "Anemia, Panduroga"],
        ["Abhraka (Mica)", "Biotite/Muscovite", "Sataputi/Sahasraputi", "Respiratory, Rasayana"],
        ["Vanga (Tin)", "Stannum", "Vanga bhasma", "Diabetic, urinary disorders"],
        ["Naga (Lead)", "Plumbum", "Naga bhasma (restricted)", "Antiseptic, limited use"],
        ["Yashada (Zinc)", "Zincum", "Yashada bhasma", "Skin, eye disorders"],
        ["Gandhaka (Sulfur)", "Sulfur", "Shodhita Gandhaka", "Skin diseases, anti-infective"],
        ["Haratala (Arsenic trisulfide)", "As2S3", "Shodhana mandatory", "Skin, restricted use"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Bhasma Preparation - Steps", subsection_style))
story.append(info_box("General Steps of Bhasma Preparation (Important for Exam)", [
    "1. Shodhana (Purification): Removal of toxic impurities by specific methods",
    "2. Bhavana (Levigation): Triturating with specific herbal juices",
    "3. Chakrikarana (Disc making): Making uniform discs/cakes",
    "4. Putapaka (Incineration): Heating in closed crucible at specific temperature",
    "5. Marana (Killing/Incineration): Complete oxidation/conversion",
    "6. Amritikarana (Detoxification): Treatment with specific substances",
    "7. Bhasma Pariksha: Rekhapurnata, Varitaratva, Nishchandratva tests",
], LIGHT_PURPLE, PURPLE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Bhaishajya Kalpana - Dosage Forms", section_title_style))
story.append(two_col_table(
    ["Kalpana", "Form", "Shelf Life", "Examples", "Dose"],
    [
        ["Swarasa", "Fresh juice", "Same day", "Tulasi swarasa", "10-20 ml"],
        ["Kalka", "Paste", "Same day", "Haridra kalka", "12 g"],
        ["Kvatha/Kashaya", "Decoction", "Same day", "Dashamoola kwatha", "50-100 ml"],
        ["Hima", "Cold infusion", "Same day", "Chandana hima", "50-100 ml"],
        ["Phanta", "Hot infusion", "Same day", "Coriander phanta", "50-100 ml"],
        ["Churna", "Powder", "1-2 years", "Triphala churna", "3-6 g"],
        ["Vati/Gutika", "Tablet/pill", "2-5 years", "Hingwashtak vati", "1-2 tabs"],
        ["Avaleha/Lehya", "Linctus", "1 year", "Chyawanprasha", "12 g"],
        ["Ghrita", "Medicated ghee", "16 months", "Mahatiktaka ghrita", "12-24 ml"],
        ["Taila", "Medicated oil", "Indefinite", "Bala taila, Dhanvantari", "External/12 ml"],
        ["Asava-Arishta", "Fermented liquid", "Indefinite", "Ashokarishta, Dashamularishta", "15-30 ml"],
        ["Bhasma", "Calcined preparation", "100 years", "Swarna bhasma, Lauha bhasma", "125-500 mg"],
        ["Rasa kalpana", "Metallic compound", "Indefinite", "Rasa sindura, Ananda bhairava", "125-250 mg"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Kvatha (Decoction) - Preparation Method", subsection_style))
story.append(info_box("Standard Kvatha Preparation (NCISM Practical)", [
    "Drug: Water ratio = 1:16 (coarse powder)",
    "Boiling: Reduce to 1/4th (4 parts from 16)",
    "For soft parts (leaves/flowers): Reduce to 1/8th",
    "For hard parts (bark/roots): Reduce to 1/4th",
    "Temperature: Moderate heat, stirring occasionally",
    "Filtration: Use clean cloth while hot",
    "Dose: 50-100 ml freshly prepared",
    "Shelf life: Should be used within 24 hours (Sadyaha)",
], LIGHT_BLUE, DARK_BLUE))

story.append(info_box("NCISM Exam Tips - Rasa Shastra", [
    "Most Important: Kajjali preparation, Bhasma pariksha tests, Asava-Arishta difference",
    "Shodhana methods: Swedana, Nirvapana, Prakshalana - know which for which mineral",
    "Practical: Preparation of Triphala churna, Kwatha, Vati - documented procedure",
    "Short Q: Rekhapurnata test, Varitaratva test, Nishchandratva test (Bhasma tests)",
    "Long Q: Discuss preparation and properties of Lauha bhasma OR Swarna bhasma",
], LIGHT_ORANGE, ORANGE_DARK))

story.append(PageBreak())

# ===================== SUBJECT 3: ROGA NIDANA =====================
story.append(subject_banner("Subject 3: Roga Nidana evam Vikriti Vigyana",
    "Ayurvedic Pathology, Etiology & Diagnosis | NCISM 2nd Prof", RED_DARK))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Overview", section_title_style))
story.append(Paragraph(
    "Roga Nidana is the science of disease causation, pathogenesis, and diagnosis in Ayurveda. "
    "Vikriti Vigyana is the science of pathological changes. This subject also includes modern pathology "
    "and laboratory medicine as per the NCISM integrated curriculum.",
    body_style))

story.append(Paragraph("Nidana Panchaka - 5 Tools of Diagnosis", section_title_style))
story.append(two_col_table(
    ["Component", "Meaning", "Details", "Importance"],
    [
        ["Nidana", "Etiology/Cause", "Ahara, Vihara, Manasa, Agantuja causes", "Root cause identification"],
        ["Purvarupa", "Prodromal symptoms", "Early warning signs before manifest disease", "Early diagnosis"],
        ["Rupa", "Signs & Symptoms", "Fully manifested features of disease", "Definitive diagnosis"],
        ["Upashaya", "Therapeutic test", "Response to drugs/diet/regimen", "Confirmatory test"],
        ["Samprapti", "Pathogenesis", "Complete sequence of disease development", "Understanding pathology"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Samprapti - Detailed Pathogenesis", section_title_style))
story.append(info_box("6 Stages of Kriya Kala (Disease Progression)", [
    "1. Sanchaya (Accumulation): Doshas accumulate in their own seats - early, reversible stage",
    "2. Prakopa (Provocation): Doshas get aggravated and liquefied - still in own seat",
    "3. Prasara (Spread): Doshas overflow and spread through srotas/channels",
    "4. Sthana Samshraya (Lodgment): Doshas settle in weakened tissues (khavaigunya)",
    "5. Vyakti (Manifestation): Disease becomes clinically apparent with signs and symptoms",
    "6. Bheda (Differentiation): Disease becomes chronic with complications - difficult to cure",
], LIGHT_RED, RED_DARK))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Important Diseases - Nidana (Etiology)", section_title_style))
story.append(two_col_table(
    ["Disease", "Dosha", "Nidana (Key Causes)", "Purvarupa"],
    [
        ["Jwara (Fever)", "Tridosha (all 3)", "Vishama ahara, shrama, chinta, krimi", "Angamarda, trishna, daurbalya"],
        ["Atisara (Diarrhea)", "All doshas", "Dushta jala, vidahi ahara, shoka, bhaya", "Udgara, aruchi, shoola"],
        ["Grahani", "All (mainly Pitta)", "Mandagni, atisara complications", "Atisara + constipation alternating"],
        ["Prameha (Diabetes)", "Kapha+Pitta", "Sedentary, sweet/fatty diet, hereditary", "Hastipada (heaviness), sweda, durgandha"],
        ["Kushtha (Skin)", "Tridosha + Rakta", "Viruddhahara, papi karma, divaswapna", "Kandu, daha, srava, vaivarnya"],
        ["Kasa (Cough)", "Vata+Kapha", "Dhuma, raja, vegavarodha, rooksha ahara", "Gala kandu, shiroshula"],
        ["Shwasa (Asthma)", "Vata+Kapha", "Excessive cold, dust, incompatible food", "Hikka, kasa, angamarda"],
        ["Hrida Roga (Heart)", "All doshas", "Chinta, bhaya, vega sandharana", "Klama, murcha, palpitations"],
        ["Panduroga (Anemia)", "Pitta+Tridosha", "Amla, lavana, kshara excess, alcohol", "Daurbalya, panduvarna"],
        ["Udara Roga (Ascites)", "All doshas", "Mandagni, excessive water/salt intake", "Adhmana, shoola, aruchi"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Ashtasthana Pariksha - 8 Fold Examination", section_title_style))
story.append(two_col_table(
    ["No.", "Pariksha", "Modern Equivalent", "What to Observe"],
    [
        ["1", "Nadi Pariksha (Pulse)", "Pulse examination", "Rate, rhythm, character - Vata/Pitta/Kapha nadi"],
        ["2", "Mutra Pariksha (Urine)", "Urinalysis", "Color, quantity, oil drop test (Taila bindu pariksha)"],
        ["3", "Mala Pariksha (Stool)", "Stool examination", "Color, consistency, frequency, odor"],
        ["4", "Jihva Pariksha (Tongue)", "Tongue inspection", "Coating, color, moisture, cracks"],
        ["5", "Shabda Pariksha (Voice)", "Voice assessment", "Clarity, hoarseness, weakness"],
        ["6", "Sparsha Pariksha (Touch)", "Palpation", "Skin temperature, texture, tenderness"],
        ["7", "Drik Pariksha (Eyes)", "Ophthalmic exam", "Color of sclera, conjunctiva, luster"],
        ["8", "Akriti Pariksha (Build)", "General appearance", "Pramana (measurements), prakruti, deha bala"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Modern Pathology (Integrated - NCISM)", section_title_style))
story.append(info_box("Key Modern Pathology Topics in NCISM Roga Nidana", [
    "Inflammation: Acute vs Chronic - cells involved, mediators, outcomes",
    "Fever: Pyrogens, hypothalamic mechanism, types of fever charts",
    "Cell injury: Reversible vs irreversible, apoptosis vs necrosis",
    "Degeneration: Fatty change, hyaline degeneration, amyloidosis",
    "Edema: Types - cardiac, renal, hepatic, inflammatory, lymphatic",
    "Anemia: Classification, peripheral smear findings, lab investigations",
    "Jaundice: Pre-hepatic, hepatic, post-hepatic differentiation",
    "Laboratory tests: CBC, LFT, RFT, urine routine, blood glucose",
], LIGHT_RED, RED_DARK))

story.append(info_box("NCISM Exam Tips - Roga Nidana", [
    "Most Important: Nidana panchaka with examples, Samprapti of Jwara, Prameha, Atisara",
    "Kriya Kala - describe all 6 stages with clinical relevance",
    "Practical: Urine examination, tongue & pulse diagnosis concepts",
    "Short Q: Purvarupa of Prameha, Shotha nidana, Upashaya-Anupashaya concept",
    "Integrated Q: Correlate Dosha vitiation with modern pathological findings",
], LIGHT_ORANGE, ORANGE_DARK))

story.append(PageBreak())

# ===================== SUBJECT 4: SAMHITA ADHYAN =====================
story.append(subject_banner("Subject 4: Samhita Adhyan - 2",
    "Classical Ayurvedic Text Study | Charaka / Ashtanga Hridayam | NCISM 2nd Prof", TEAL))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Overview", section_title_style))
story.append(Paragraph(
    "Samhita Adhyan-2 involves in-depth study of Charaka Samhita (primarily) and/or Ashtanga Hridayam. "
    "Students study specific sthanas (sections) with Sanskrit text, commentary, and clinical application. "
    "NCISM emphasizes understanding and not just memorization.",
    body_style))

story.append(Paragraph("Charaka Samhita - Structure", section_title_style))
story.append(two_col_table(
    ["Sthana", "No. of Adhyaya", "Content"],
    [
        ["Sutra Sthana", "30", "Basic principles, Ayurvedic fundamentals, Dinacharya, Ritucharya"],
        ["Nidana Sthana", "8", "Etiology and pathogenesis of 8 major diseases"],
        ["Vimana Sthana", "8", "Measurement, taste, epidemics, physician qualities"],
        ["Sharira Sthana", "8", "Embryology, anatomy, physiology"],
        ["Indriya Sthana", "12", "Prognosis - signs of death/survival"],
        ["Chikitsa Sthana", "30", "Treatment of diseases (most detailed)"],
        ["Kalpa Sthana", "12", "Preparations of strong purgatives"],
        ["Siddhi Sthana", "12", "Panchakarma procedures and principles"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Key Topics - Charaka Sutra Sthana (2nd Prof Focus)", section_title_style))
story.append(info_box("Must-Study Adhyayas in Sutra Sthana", [
    "Ch. 1 - Dirghamjivitiya: Aims of Ayurveda, Tridosha introduction, Ayu definition",
    "Ch. 5 - Matrashitiya: Concept of right quantity of food, digestion",
    "Ch. 7 - Navegandharaniya: Non-suppressible and suppressible urges (Vegas)",
    "Ch. 11 - Tistraishaniya: Three desires (Prana, Dhan, Paraloka), Trividha Bala",
    "Ch. 20 - Maharoga Adhyaya: 8 major diseases and their management overview",
    "Ch. 25 - Yajjah Purushiya: Panchamahabhuta composition of the body",
    "Ch. 26 - Atreyabhadrakapiyam: Rasa (taste), Virya, Vipaka - detailed chapter",
    "Ch. 27 - Annapana Vidhi: Diet and drinks classification - Anna, Peya, Vilepi etc.",
    "Ch. 28 - Vividhashitapitiya: Eight factors affecting drug potency",
    "Ch. 30 - Arthedasamahamooliya: Ten root sciences of Ayurveda",
], LIGHT_TEAL, TEAL))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Key Topics - Charaka Nidana Sthana", section_title_style))
story.append(two_col_table(
    ["Adhyaya", "Disease", "Key Points"],
    [
        ["Ch. 1", "Jwara Nidana", "8 types of Jwara, Santapakrama, Nidana panchaka"],
        ["Ch. 2", "Raktapitta Nidana", "Bleeding disorders, 4 types, Urdhwaga-Adhoga"],
        ["Ch. 3", "Gulma Nidana", "5 types of abdominal lump, Vataja-Pittaja-Kaphaja"],
        ["Ch. 4", "Prameha Nidana", "20 types, Poorvaroopa, Upadrava"],
        ["Ch. 5", "Kushtha Nidana", "7 Mahakushtha, 11 Kshudrakushtha, etiologies"],
        ["Ch. 6", "Shosha Nidana", "Rajayakshma - cause, types, Trimarmiya"],
        ["Ch. 7", "Unmada Nidana", "5 types of Unmada + Agantuja type"],
        ["Ch. 8", "Apasmara Nidana", "4 types, Nidana, differentiation from Unmada"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Ashtanga Hridayam (If applicable to your university)", section_title_style))
story.append(info_box("Key Ashtanga Hridayam Chapters for 2nd Prof", [
    "Sutra Sthana Ch.1: Ayushkamiya - Ayurveda definition, aims, basic principles",
    "Sutra Sthana Ch.7: Dravadravya Vidhi - Liquid drugs and their properties",
    "Sutra Sthana Ch.10: Doshabhediya - Detailed Tridosha classification",
    "Nidana Sthana: Study same 8 diseases as Charaka but in condensed form",
    "Sharira Sthana: Embryology chapters - Garbha formation and development",
    "Note: Confirm with your college which samhita is prescribed for 2nd Prof",
], LIGHT_TEAL, TEAL))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Important Sanskrit Sutras to Memorize", section_title_style))
story.append(two_col_table(
    ["Sutra", "Meaning", "Chapter Reference"],
    [
        ["'Hitahitam sukham dukham...'", "Definition of Ayurveda by Charaka", "Ch.Su.1/41"],
        ["'Swasthasya swasthya rakshanam...'", "Aims of Ayurveda (prevention + cure)", "Ch.Su.30/26"],
        ["'Ahara samuttha...'", "Diet is root of all disease and health", "Ch.Su.28/45"],
        ["'Trayo upastambha...'", "Three pillars: Ahara, Nidra, Brahmacharya", "Ch.Su.11/35"],
        ["'Vata pitta kaphah...'", "Three doshas are root of the body", "Ch.Su.18/48"],
        ["'Saptadha kalpate...'", "Seven types of Prakriti", "Ch.Vi.8/96"],
    ]
))

story.append(info_box("NCISM Exam Tips - Samhita Adhyan", [
    "Most Important: Ayurveda definition, Tridosha concept, Sapta Dhatu, Trimala",
    "Long Q: Write the Samprapti (pathogenesis) of Jwara from Charaka Nidana Sthana",
    "Sanskrit: Practice writing 5-10 key sutras with meaning - always high-scoring",
    "Commentary: Be familiar with Chakrapani Datta's Ayurveda Dipika commentary",
    "Short Q: Trividha Pariksha, Chatushpada (4 limbs of treatment), Ashtavidha pariksha",
], LIGHT_ORANGE, ORANGE_DARK))

story.append(PageBreak())

# ===================== SUBJECT 5: AGADA TANTRA =====================
story.append(subject_banner("Subject 5: Agada Tantra",
    "Toxicology, Forensic Ayurveda & Medical Jurisprudence | NCISM 2nd Prof", HexColor("#BF360C")))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Overview", section_title_style))
story.append(Paragraph(
    "Agada Tantra is one of the Ashtanga (8 branches) of Ayurveda dealing with toxicology. "
    "The NCISM 2nd Prof curriculum integrates classical Agada Tantra with modern forensic medicine, "
    "medical jurisprudence, and clinical toxicology. This is both a theoretical and practical subject.",
    body_style))

story.append(Paragraph("Classical Agada Tantra - Visha (Poison) Classification", section_title_style))
story.append(two_col_table(
    ["Category", "Type", "Examples", "General Treatment"],
    [
        ["Sthavara Visha", "Plant poisons", "Vatsanabha (Aconite), Datura, Nux vomica, Bhanga", "Agada preparations, vomiting"],
        ["Jangama Visha", "Animal poisons", "Sarpa (snake), Lutha (spider), Vrishchika (scorpion), Mushika (rat)", "Anti-venom principles, Agada"],
        ["Kritrima Visha", "Artificial/combined", "Gara visha, Dooshi visha (slow/cumulative)", "Specific antidotes, Shodhana"],
        ["Gara Visha", "Artificial poison", "Made by combining non-poisonous substances", "Panchakarma + specific agada"],
        ["Dooshi Visha", "Chronic/cumulative", "Slow-acting, affects gradually", "Long-term Rasayana treatment"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Saptanga Visha Pariksha - 7 Types of Poison Examination", subsection_style))
story.append(info_box("Classical Poison Diagnosis Methods", [
    "1. Gandha (Smell): Abnormal smell from body - specific to type of poison",
    "2. Varna (Color): Skin discoloration, unusual color of vomitus/urine",
    "3. Rasa (Taste): Abnormal taste as described by patient",
    "4. Sparsha (Touch): Temperature changes, texture changes in tissue",
    "5. Shabda (Sound): Changes in voice, abnormal sounds",
    "6. Kala (Time): Onset time after exposure, progression rate",
    "7. Disha (Direction): From which direction exposure occurred, spread pattern",
], LIGHT_RED, RED_DARK))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Important Poisons - Classical & Modern Correlation", section_title_style))
story.append(two_col_table(
    ["Classical Name", "Modern Name", "Toxic Component", "Signs & Symptoms", "Antidote/Treatment"],
    [
        ["Vatsanabha", "Aconitum ferox", "Aconitine", "Burning, tingling, bradycardia, hypotension", "Atropine, supportive"],
        ["Dhattura", "Datura stramonium", "Atropine, Scopolamine", "Anticholinergic: dry mouth, mydriasis, tachycardia, delirium", "Physostigmine, supportive"],
        ["Jayapala", "Croton tiglium", "Croton oil", "Severe GI irritant, vesicant on skin", "Demulcents, supportive"],
        ["Ahifen", "Opium (Papaver)", "Morphine, codeine", "Miosis, respiratory depression, CNS depression", "Naloxone (Narcan)"],
        ["Sankhya", "Arsenic trioxide", "Arsenic", "GI symptoms, Mee's lines, peripheral neuropathy", "BAL (Dimercaprol), DMSA"],
        ["Haratala", "Arsenic trisulfide", "Arsenic", "Same as Sankhya", "Chelation therapy"],
        ["Manashila", "Realgar (As4S4)", "Arsenic", "Chronic poisoning - skin changes", "Chelation therapy"],
        ["Visha Mushti", "Nux vomica", "Strychnine", "Opisthotonos, risus sardonicus, tetanic convulsions", "Diazepam, muscle relaxants"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Snake Bite (Sarpa Visha) - NCISM Important Topic", section_title_style))
story.append(two_col_table(
    ["Aspect", "Classical (Ayurveda)", "Modern Approach"],
    [
        ["Classification", "Darvikar (neurotoxic), Mandali (hemotoxic), Rajila (mixed)", "Neurotoxic vs Hemotoxic vs Cytotoxic"],
        ["Symptoms - Neurotoxic", "Nidra, moha, klama, shwasakrichhrata", "Ptosis, ophthalmoplegia, respiratory paralysis"],
        ["Symptoms - Hemotoxic", "Raktasrava, shotha, daha, neelata", "Coagulopathy, bleeding, local necrosis"],
        ["First aid", "Tourniquet, incision, suction (classical)", "Immobilize, reassure, NO tourniquet (modern)"],
        ["Treatment", "Agada preparations - Mahagada, Mahavishagarbha", "Anti-snake venom (ASV) - polyvalent"],
        ["Agada for snakebite", "Dashanga agada, Chaturbhuja agada", "ASV 10 vials IV - primary treatment"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Medical Jurisprudence & Forensic Medicine (Modern - NCISM)", section_title_style))
story.append(info_box("Key Medico-Legal Topics (NCISM Integrated Curriculum)", [
    "Indian Medical Council Act & NCISM Act 2020 - registration, practice rights",
    "Medical Negligence: Civil vs Criminal, IPC Sections 304A, 337, 338",
    "Consent: Informed consent, types - implied, express, emergency exceptions",
    "MLC (Medico-Legal Cases): Definition, duties of doctor, documentation",
    "Wound examination: Abrasion, contusion, laceration, incised, stab, firearm",
    "Age estimation: Teeth eruption, bone ossification, secondary sexual characters",
    "Death: Types of death - somatic, molecular; signs of death - early and late",
    "Exhumation: Legal procedure, purpose, Ayurvedic Mrityu Pariksha",
    "Sexual offences: Section 375, 376 IPC - medical examination protocol",
    "Dowry death: Section 304B IPC, viscera preservation",
], LIGHT_RED, RED_DARK))

story.append(info_box("NCISM Exam Tips - Agada Tantra", [
    "Most Important: Classification of Visha, Sarpavisha types and treatment, MLC duties",
    "Classical: Agada preparations - Dashanga Agada ingredients (10 drugs)",
    "Modern: Organophosphate poisoning (most common in India) - SLUDGE symptoms + Atropine",
    "Long Q: Management of snakebite - classical + modern integrated approach",
    "Short Q: Dooshi visha characteristics, Gara visha treatment, Medical negligence definition",
    "Practical: Poison detection methods in urine, viscera examination",
], LIGHT_ORANGE, ORANGE_DARK))

story.append(PageBreak())

# ===================== SUBJECT 6: SWASTHAVRITTA =====================
story.append(subject_banner("Subject 6: Swasthavritta",
    "Ayurvedic Preventive Medicine, Hygiene & Public Health | NCISM 2nd Prof", DARK_BLUE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Overview", section_title_style))
story.append(Paragraph(
    "Swasthavritta literally means 'routine for maintaining health'. It is the Ayurvedic science of "
    "preventive medicine, personal hygiene, community health, and promotion of wellbeing. "
    "The NCISM curriculum integrates this with modern Preventive and Social Medicine (PSM).",
    body_style))

story.append(Paragraph("Dinacharya - Daily Routine", section_title_style))
story.append(two_col_table(
    ["Time", "Practice", "Rationale", "Modern Benefit"],
    [
        ["Brahma Muhurta (4-6 AM)", "Wake up, pray, meditate", "Sattva balance, ozone-rich air", "Circadian rhythm, mental clarity"],
        ["Morning", "Danta Dhavana (teeth cleaning)", "Oral hygiene, Kapha removal", "Prevents caries, oral bacteria"],
        ["Morning", "Jihwa Nirlekhana (tongue scraping)", "Removes Ama from tongue", "Oral hygiene, taste improvement"],
        ["Morning", "Nasya (nasal drops)", "Pratimarsha nasya - daily drops", "Clears sinus, prevents respiratory"],
        ["Morning", "Gandusha/Kavala (oil pulling)", "Strengthens teeth, gums", "Oral microbiome, reduces bacteria"],
        ["Morning", "Abhyanga (oil massage)", "Vata balance, skin health", "Circulation, lymphatic drainage"],
        ["Morning", "Vyayama (exercise)", "Balances Kapha, builds strength", "Cardiovascular, metabolic health"],
        ["Morning", "Snana (bath)", "Cleansing, refreshing", "Hygiene, psychological wellbeing"],
        ["Meals", "Satmya Ahara (compatible food)", "Dosha-based diet", "Nutritional balance"],
        ["Evening", "Sandhyavandana, light walk", "Mental peace", "Stress reduction, digestion"],
        ["Night", "Sleep before 10 PM", "Kapha time for repair", "Melatonin, cellular repair"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Ritucharya - Seasonal Regimen", section_title_style))
story.append(two_col_table(
    ["Ritu (Season)", "Month (approx)", "Dominant Dosha", "Recommended Diet/Regimen"],
    [
        ["Shishira (Late winter)", "Jan-Feb", "Vata-Kapha", "Heavy, oily, sour, sweet food; avoid cold"],
        ["Vasanta (Spring)", "Mar-Apr", "Kapha prakopa", "Light food, Panchakarma, Vamana ideal"],
        ["Grishma (Summer)", "May-Jun", "Pitta + Vata", "Cold, sweet, liquid diet; avoid spicy"],
        ["Varsha (Monsoon)", "Jul-Aug", "Tridosha (Vata dominant)", "Light food, Basti karma ideal"],
        ["Sharad (Autumn)", "Sep-Oct", "Pitta prakopa", "Light, bitter, sweet food; Virechana ideal"],
        ["Hemanta (Early winter)", "Nov-Dec", "Kapha accumulation", "Heavy, nourishing food; Sneha, Basti"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Sadvritta - Code of Ethical Conduct", section_title_style))
story.append(info_box("Key Sadvritta Principles (Charaka Su.8)", [
    "Satyavadi (Truthful): Always speak truth",
    "Akrodhi (Non-angry): Control anger",
    "Ahimsaka (Non-violent): Avoid harming others",
    "Jitendri (Self-controlled): Master over senses",
    "Nityam dharmika (Virtuous): Follow dharma daily",
    "Guru shushrushana: Serve teachers and elders",
    "Snana (Daily bath): Maintain cleanliness",
    "Swastha-vritta: Follow all health guidelines",
    "Modern correlation: These align with positive psychology and wellbeing science",
], LIGHT_BLUE, DARK_BLUE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Panchakarma - Overview (Preventive Aspect)", section_title_style))
story.append(two_col_table(
    ["Karma", "Procedure", "Best Season", "Dosha", "Indication"],
    [
        ["Vamana", "Therapeutic emesis", "Vasanta (Spring)", "Kapha", "Asthma, skin disease, obesity"],
        ["Virechana", "Therapeutic purgation", "Sharad (Autumn)", "Pitta", "Liver, skin, fever"],
        ["Basti", "Medicated enema", "Varsha (Monsoon)", "Vata", "All Vata disorders"],
        ["Nasya", "Nasal therapy", "Hemanta/Vasanta", "Head region", "Sinusitis, headache, hair"],
        ["Raktamokshana", "Bloodletting", "Sharad", "Rakta-Pitta", "Skin, varicose, gout"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Modern Preventive Medicine (NCISM Integrated)", section_title_style))
story.append(two_col_table(
    ["Topic", "Key Points"],
    [
        ["Levels of Prevention", "Primary (health promotion), Secondary (early detection), Tertiary (rehabilitation)"],
        ["Epidemiology basics", "Incidence vs Prevalence, Crude/Specific death rates, IMR, MMR"],
        ["Immunization Schedule", "National Immunization Programme - BCG, OPV, DPT, Measles, Hepatitis B"],
        ["Water quality", "BIS standards, MPN test, Winkler's test, purification methods"],
        ["Nutrition", "Protein-energy malnutrition (PEM), Vitamin deficiency diseases, ICDS programme"],
        ["National Health Programs", "RNTCP, NVBDCP, NLEP, Reproductive health, NRHM"],
        ["Vital statistics", "Birth rate, Death rate, Fertility rate - India data"],
        ["Environmental health", "Air/water/soil pollution, occupational hazards, WHO standards"],
        ["Yoga & Naturopathy", "Surya Namaskar, Pranayama - integration with Swasthavritta"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Yoga & Pranayama in Swasthavritta", section_title_style))
story.append(info_box("Important Yoga Topics for NCISM 2nd Prof", [
    "Ashtanga Yoga (Patanjali): Yama, Niyama, Asana, Pranayama, Pratyahara, Dharana, Dhyana, Samadhi",
    "Pranayama types: Nadi Shodhana, Bhramari, Kapalabhati, Bhastrika, Sheetali, Sheetkari",
    "Surya Namaskar: 12 positions, timing, benefits - cardio, flexibility, mental clarity",
    "Shatkarma: Neti, Dhauti, Basti, Nauli, Tratak, Kapalabhati - purification techniques",
    "Benefits: Stress reduction, immune modulation, hormonal balance, cardiorespiratory fitness",
    "NCISM: Yoga integrated into Swasthavritta as daily practice recommendations",
], LIGHT_BLUE, DARK_BLUE))

story.append(info_box("NCISM Exam Tips - Swasthavritta", [
    "Most Important: Dinacharya (all practices with benefits), Ritucharya - full table",
    "Long Q: Describe Panchakarma from Swasthavritta perspective (preventive use)",
    "Short Q: Brahmacharya concept, Sadvritta rules, Ratricharya",
    "Modern integration: Primary/secondary/tertiary prevention correlation with Ayurveda",
    "Practical: Demonstrate any 5 Dinacharya practices with instruments (tongue scraper, Neti pot)",
    "Yoga: Surya Namaskar positions and Pranayama techniques with clinical benefits",
], LIGHT_ORANGE, ORANGE_DARK))

story.append(PageBreak())

# ===================== FINAL PAGES: QUICK REFERENCE =====================
story.append(highlight_box("QUICK REFERENCE TABLES & EXAM PREPARATION", HEADER_BG, white))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("NCISM Assessment Pattern - 2nd Professional", section_title_style))
story.append(two_col_table(
    ["Subject", "Theory (IA+Univ)", "Practical/Viva", "Total"],
    [
        ["Dravyaguna Vigyana", "20+80 = 100", "50", "150"],
        ["Rasa Shastra & Bhaishajya Kalpana", "20+80 = 100", "50", "150"],
        ["Roga Nidana evam Vikriti Vigyana", "20+80 = 100", "50", "150"],
        ["Samhita Adhyan - 2", "20+80 = 100", "50", "150"],
        ["Agada Tantra", "20+80 = 100", "50", "150"],
        ["Swasthavritta", "20+80 = 100", "50", "150"],
        ["TOTAL", "600 Theory", "300 Practical", "900 Marks"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Passing Criteria (NCISM)", section_title_style))
story.append(info_box("Minimum Passing Requirements", [
    "Theory (University Exam 80 marks): Minimum 32 marks (40%)",
    "Internal Assessment (20 marks): Minimum 8 marks (40%)",
    "Combined Theory (IA + University): Minimum 50% = 50/100",
    "Practical/Viva (50 marks): Minimum 20 marks (40%)",
    "Subject pass: Must pass BOTH theory AND practical separately",
    "Promotion: Pass in all 6 subjects to proceed to 3rd Professional Year",
    "Attempt limit: Maximum 4 attempts per subject (NCISM regulations)",
], LIGHT_GREEN, DARK_GREEN))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Study Time Allocation (Suggested)", section_title_style))
story.append(two_col_table(
    ["Subject", "Daily Time", "Focus Area", "Strategy"],
    [
        ["Dravyaguna", "1.5 hrs", "Drug properties + Identification", "Flashcards for 50 drugs"],
        ["Rasa Shastra", "1.5 hrs", "Bhasma preparation + Kalpana", "Flowcharts for procedures"],
        ["Roga Nidana", "1.5 hrs", "Nidana Panchaka + Disease tables", "Disease-wise comparison table"],
        ["Samhita Adhyan", "1 hr", "Sutra memorization + Meaning", "Daily 2-3 sutras + commentary"],
        ["Agada Tantra", "1 hr", "Poison classification + MLC", "Table of poisons + symptoms"],
        ["Swasthavritta", "1 hr", "Dinacharya + Ritucharya", "Seasonal chart + Yoga practice"],
        ["Revision", "1 hr", "Previous year questions", "Topic-wise PYQ practice"],
    ]
))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Commonly Asked Long Questions (All Subjects)", section_title_style))
story.append(two_col_table(
    ["Subject", "Common Long Questions"],
    [
        ["Dravyaguna", "1. Describe Ashwagandha with all properties and indications\n2. Classify drugs as per Charaka 50 Mahakashaya\n3. Describe Rasa-Virya-Vipaka-Prabhava concept"],
        ["Rasa Shastra", "1. Preparation and testing of Lauha bhasma\n2. Describe Asava-Arishta - preparation and differences\n3. Panchavidha Kashaya kalpana with preparation method"],
        ["Roga Nidana", "1. Describe Samprapti of Jwara / Prameha\n2. Nidana Panchaka with examples\n3. Ashtasthana Pariksha - describe all 8 examinations"],
        ["Samhita Adhyan", "1. Write Sanskrit text and meaning of Dirghamjivitiya adhyaya\n2. Describe Vata Dosha - location, types, functions\n3. Charaka's Trividha Bala concept"],
        ["Agada Tantra", "1. Classification of Visha with Sthavara examples\n2. Management of Sarpavisha (Snake bite)\n3. Medical negligence - definition, types, legal aspects"],
        ["Swasthavritta", "1. Describe Dinacharya with rationale\n2. Ritucharya - all 6 seasons with diet and panchakarma\n3. Panchakarma as preventive measure"],
    ]
))
story.append(Spacer(1, 0.3*cm))

# Final motivational banner
story.append(highlight_box(
    "BEST WISHES FOR YOUR EXAMINATIONS!\n"
    "Swasthyasya swasthya rakshanam, aturasya vikara prasamanam cha\n"
    "(Protection of health of the healthy, and relief of disease of the sick - Aims of Ayurveda)\n"
    "Study well, practice regularly, and excel in BAMS 2nd Professional!",
    DARK_GREEN, white
))

# ===================== BUILD PDF =====================
doc.build(story)
print(f"PDF successfully created: {OUTPUT}")
Running Command

cd /home/daytona/workspace/bams-study-guide && python create_pdf.py

Running Command

ls -lh /home/daytona/workspace/bams-study-guide/BAMS_2nd_Prof_Study_Guide_NCISM.pdf

Your BAMS 2nd Professional Study Guide PDF is ready! Here's what's included:

BAMS 2nd Prof Study Guide NCISM

PDF Document · PDF


What's Inside the PDF

Cover Page

  • All 6 subjects listed with domains
  • NCISM branding

Subject-wise Detailed Content:

SubjectKey Content Covered
1. Dravyaguna VigyanaRasa-Guna-Virya-Vipaka-Prabhava tables, 50 Mahakashaya groups, 10 important drugs with full properties, exam tips
2. Rasa Shastra & Bhaishajya KalpanaParada shodhana, 8 metals & bhasma preparation, bhasma pariksha tests, all dosage forms with shelf life & dose, kvatha method
3. Roga NidanaNidana Panchaka, 6 Kriya Kala stages, disease-wise Nidana table (10 diseases), Ashtasthana Pariksha, modern pathology integration
4. Samhita Adhyan - 2Charaka 8 Sthanas, must-study Adhyayas, Nidana Sthana all 8 diseases, key Sanskrit sutras to memorize
5. Agada TantraVisha classification, 7-fold poison exam, poison chart (Vatsanabha to Arsenic), Sarpavisha classical+modern, MLC & forensic medicine
6. SwasthavrittaFull Dinacharya table, Ritucharya all 6 seasons, Sadvritta, Panchakarma prevention, Yoga & Pranayama, modern PSM

Quick Reference Section

  • NCISM marks table (all 6 subjects = 900 total marks)
  • Passing criteria
  • Study time allocation guide
  • Commonly asked long questions for all subjects
All the best for your 2nd Prof exams! 🙏

Create a study schedule with daily targets

Asking for Preferences
Reading File

1 month 15 days plan

Writing File

~/bams-study-guide/create_schedule.py

from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib.colors import HexColor, white, black
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    PageBreak, HRFlowable
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.lib import colors
from datetime import date, timedelta

OUTPUT = "/home/daytona/workspace/bams-study-guide/BAMS_2ndProf_45Day_Schedule.pdf"

# ── Colors ──────────────────────────────────────────────────────────────
SAFFRON    = HexColor("#E65100")
DARK_GREEN = HexColor("#1B5E20")
LIGHT_GREEN= HexColor("#E8F5E9")
GOLD       = HexColor("#F9A825")
DARK_BLUE  = HexColor("#0D47A1")
LIGHT_BLUE = HexColor("#E3F2FD")
PURPLE     = HexColor("#4A148C")
LIGHT_PURPLE=HexColor("#F3E5F5")
TEAL       = HexColor("#004D40")
LIGHT_TEAL = HexColor("#E0F2F1")
RED_DARK   = HexColor("#B71C1C")
LIGHT_RED  = HexColor("#FFEBEE")
ORANGE_DARK= HexColor("#E65100")
LIGHT_ORANGE=HexColor("#FFF3E0")
GREY_BG    = HexColor("#F5F5F5")
HEADER_BG  = HexColor("#263238")
OLIVE      = HexColor("#33691E")
BROWN      = HexColor("#4E342E")
CYAN_DARK  = HexColor("#006064")
PINK_DARK  = HexColor("#880E4F")

SUBJ_COLORS = {
    "DG":  (HexColor("#1B5E20"), HexColor("#E8F5E9")),   # Dravyaguna - green
    "RS":  (HexColor("#4A148C"), HexColor("#F3E5F5")),   # Rasa Shastra - purple
    "RN":  (HexColor("#B71C1C"), HexColor("#FFEBEE")),   # Roga Nidana - red
    "SA":  (HexColor("#004D40"), HexColor("#E0F2F1")),   # Samhita - teal
    "AT":  (HexColor("#BF360C"), HexColor("#FBE9E7")),   # Agada Tantra - deep orange
    "SW":  (HexColor("#0D47A1"), HexColor("#E3F2FD")),   # Swasthavritta - blue
    "REV": (HexColor("#37474F"), HexColor("#ECEFF1")),   # Revision - grey
    "OFF": (HexColor("#546E7A"), HexColor("#F5F5F5")),   # Rest day
}

SUBJ_FULL = {
    "DG":  "Dravyaguna Vigyana",
    "RS":  "Rasa Shastra & Bhaishajya Kalpana",
    "RN":  "Roga Nidana evam Vikriti Vigyana",
    "SA":  "Samhita Adhyan - 2",
    "AT":  "Agada Tantra",
    "SW":  "Swasthavritta",
    "REV": "FULL REVISION / Mock Test",
    "OFF": "Rest & Light Review",
}

# ── Styles ───────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(OUTPUT, pagesize=A4,
    rightMargin=1.2*cm, leftMargin=1.2*cm,
    topMargin=1.8*cm, bottomMargin=1.8*cm)

styles = getSampleStyleSheet()

def S(name, **kw):
    return ParagraphStyle(name, parent=styles['Normal'], **kw)

title_s    = S('T', fontSize=22, textColor=white, fontName='Helvetica-Bold',
               alignment=TA_CENTER, leading=28)
sub_s      = S('Su', fontSize=11, textColor=GOLD, fontName='Helvetica-Bold',
               alignment=TA_CENTER, leading=14)
tag_s      = S('Tg', fontSize=8.5, textColor=white, fontName='Helvetica',
               alignment=TA_CENTER)
sec_s      = S('Sec', fontSize=13, textColor=DARK_BLUE, fontName='Helvetica-Bold',
               spaceBefore=8, spaceAfter=4, leading=16)
body_s     = S('B', fontSize=9, textColor=black, fontName='Helvetica',
               leading=13, spaceAfter=2, alignment=TA_JUSTIFY)
cell_hdr_s = S('CH', fontSize=8.5, textColor=white, fontName='Helvetica-Bold',
               alignment=TA_CENTER, leading=11)
cell_s     = S('C', fontSize=8, textColor=black, fontName='Helvetica',
               leading=11, spaceAfter=0)
cell_bold_s= S('CB', fontSize=8, textColor=black, fontName='Helvetica-Bold',
               leading=11, spaceAfter=0)
day_num_s  = S('DN', fontSize=11, textColor=white, fontName='Helvetica-Bold',
               alignment=TA_CENTER, leading=14)
small_s    = S('SM', fontSize=7.5, textColor=HexColor("#546E7A"),
               fontName='Helvetica', leading=10)
tip_s      = S('TP', fontSize=8.5, textColor=TEAL, fontName='Helvetica-Oblique',
               leading=12, leftIndent=8)
imp_s      = S('IP', fontSize=8.5, textColor=RED_DARK, fontName='Helvetica-Bold',
               leading=12, leftIndent=8)

def hdr_cell(txt): return Paragraph(txt, cell_hdr_s)
def cel(txt):      return Paragraph(str(txt), cell_s)
def celb(txt):     return Paragraph(str(txt), cell_bold_s)

# ── 45-Day Plan Data ──────────────────────────────────────────────────────
# Format: (day, code, morning_topic, afternoon_topic, evening_task, daily_goal)
# Phase 1: Days 1-10  - Foundation (2 subjects each)
# Phase 2: Days 11-25 - Deep Study (all 6 subjects rotating)
# Phase 3: Days 26-38 - Advanced + PYQ
# Phase 4: Days 39-45 - Full Revision + Mock

START_DATE = date(2026, 7, 15)

schedule = [
# ── PHASE 1: FOUNDATION (Days 1-10) ────────────────────────────────────
# Day, Code,  Morning (2.5h),                    Afternoon (2.5h),                  Evening (1h),                     Daily Goal
(1, "DG",  "Dravyaguna basics: Rasa-Guna-Virya-Vipaka-Prabhava concepts", "Panchabhautika composition, Gurvadi 20 Guna table", "Write 20 Gunas with opposites - flashcard", "Understand core pharmacological framework"),
(2, "DG",  "Rasa (6 tastes): properties of each Rasa, Dosha effects", "Virya concept: Ushna-Sheeta veerya + Vipaka types", "Make Rasa-Dosha effect quick chart", "Master Rasa-Virya-Vipaka linkages"),
(3, "DG",  "50 Mahakashaya - first 25 groups (Charaka Su.4)", "50 Mahakashaya - remaining 25 groups", "Revise all 50 group names + 2 drugs each", "Cover all 50 Mahakashaya with examples"),
(4, "DG",  "Dravya study: Ashwagandha, Shatavari, Guduchi - full properties", "Haridra, Triphala, Trikatu, Nimba - full details", "Write each drug: Rasa/Guna/Virya/Vipaka/Karma", "Know 8 important drugs in depth"),
(5, "DG",  "Dravya study: Shunthi, Pippali, Eranda, Punarnava", "Dravya study: Bala, Amalaki, Brahmi, Shankhapushpi", "Flashcards: Latin name + family for all 12 drugs", "Cover 12 more drugs with Latin names"),
(6, "RS",  "Rasa Shastra intro: Parada - synonyms, origin, properties", "Parada Shodhana - Sapta vidha shodhana method", "Draw flowchart of Parada shodhana steps", "Complete Parada basics thoroughly"),
(7, "RS",  "Kajjali preparation - method, properties, uses", "Rasa Sindura, Hinguloththa - preparation and use", "Write Bhasma Pariksha: 3 tests with criteria", "Master Kajjali and key Parada preparations"),
(8, "RS",  "Metals: Swarna, Rajata, Tamra bhasma - shodhana and marana", "Lauha, Abhraka, Vanga bhasma - preparation", "Table: Metal → Shodhana method → Therapeutic use", "Cover 6 major metal bhasmas"),
(9, "RS",  "Minerals: Gandhaka, Haratala, Shilajatu, Guggulu", "Uparasas: Gandhaka, Kankshi, Tuttha, Kampillaka", "Notes on Gandhaka shodhana (most important mineral)", "Cover minerals and uparasas"),
(10, "RS", "Bhaishajya Kalpana: Swarasa to Kvatha - all cold/hot forms", "Churna, Vati, Avaleha, Ghrita, Taila preparation", "Table: All kalpana → shelf life → dose range", "Complete all basic dosage forms"),

# ── PHASE 2: DEEP STUDY (Days 11-25) ──────────────────────────────────
(11, "RS", "Asava-Arishta: fermentation, preparation, % alcohol, examples", "Bhasma, Rasa kalpana - classification and rules", "5 examples each of Asava vs Arishta", "Master fermented preparations fully"),
(12, "RN", "Roga Nidana intro: Nidana Panchaka - all 5 with definitions", "Nidana: Ahara, Vihara, Manasa, Agantuja causes + examples", "Write Nidana Panchaka with 2 examples each", "Understand disease causation framework"),
(13, "RN", "Samprapti: 6 Kriya Kala stages - detailed with clinical features", "Samprapti of Jwara - nidana to bheda step by step", "Flowchart: Kriya Kala of Jwara", "Master Samprapti concept with Jwara"),
(14, "RN", "Samprapti of Prameha (Diabetes) - nidana, purvarupa, samprapti", "Samprapti of Atisara, Grahani - key differences", "Compare Jwara vs Prameha Samprapti table", "Cover 3 major disease pathogeneses"),
(15, "RN", "Nidana of Kushtha, Kasa, Shwasa - causes and prodrome", "Nidana of Hrida Roga, Panduroga, Udara Roga", "Disease-wise table: Dosha + Nidana + Purvarupa", "Cover 6 more important diseases"),
(16, "RN", "Ashtasthana Pariksha: all 8 examinations in detail", "Nadi Pariksha: Vata/Pitta/Kapha nadi - characteristics", "Practice Nadi Pariksha concept diagrams", "Master 8-fold clinical examination"),
(17, "RN", "Modern Pathology: Cell injury, inflammation basics", "Fever mechanism, Edema types, Jaundice classification", "Table: Pre/hepatic/post-hepatic jaundice differences", "Integrate modern pathology concepts"),
(18, "SA", "Charaka Samhita structure: 8 Sthanas, chapters overview", "Sutra Sthana Ch.1 Dirghamjivitiya: text + meaning", "Write Ayurveda definition sutra from memory", "Understand Charaka Samhita structure"),
(19, "SA", "Sutra Sthana Ch.5,7: Matrashitiya, Navegandharaniya", "Sutra Sthana Ch.11: Tistraishaniya - three desires, Trividha Bala", "Sutras: memorize Ch.5 and Ch.11 key shlokas", "Cover 3 key Sutra Sthana chapters"),
(20, "SA", "Sutra Sthana Ch.25,26: Panchamahabhuta, Rasa chapter", "Sutra Sthana Ch.27,28: Annapana Vidhi, Ashta Ahara Vidhi Visheshayatana", "Make quick notes on 8 food factors (Ch.28)", "Complete major Sutra Sthana chapters"),
(21, "SA", "Nidana Sthana Ch.1-2: Jwara Nidana, Raktapitta Nidana", "Nidana Sthana Ch.3-4: Gulma, Prameha Nidana - Sanskrit + meaning", "Write 5 key sutras from Nidana Sthana", "Cover 4 Nidana Sthana chapters"),
(22, "SA", "Nidana Sthana Ch.5-6: Kushtha, Shosha (Rajayakshma)", "Nidana Sthana Ch.7-8: Unmada, Apasmara Nidana", "Compare Unmada vs Apasmara - differences table", "Complete all 8 Nidana Sthana chapters"),
(23, "AT", "Agada Tantra intro: Ashtanga of Ayurveda, Visha classification", "Sthavara Visha: major plant poisons - Vatsanabha, Datura, Jayapala", "Table: Plant poison → toxic component → antidote", "Cover major plant poisons"),
(24, "AT", "Jangama Visha: Sarpa (snake) visha - types, Dosha correlation", "Sarpavisha: Darvikar vs Mandali vs Rajila differences", "Flowchart: Sarpavisha symptoms by type", "Master snake venom toxicology"),
(25, "AT", "Sarpavisha management: classical (Agada) + modern (ASV)", "Kritrima/Gara/Dooshi Visha - characteristics and treatment", "Write Dashanga Agada - all 10 ingredients", "Complete Visha types and management"),

# ── PHASE 3: ADVANCED + PYQ (Days 26-38) ─────────────────────────────
(26, "AT", "Organophosphate poisoning: SLUDGE symptoms, Atropine protocol", "Alcohol, Dhatura, Opium poisoning - modern management", "Table: Common Indian poisons → symptoms → treatment", "Cover high-yield modern toxicology"),
(27, "AT", "Medical jurisprudence: Medical negligence, IPC 304A, 337, 338", "MLC: Definition, types, doctor's duties, documentation", "Write 5 duties of doctor in MLC cases", "Master medico-legal essentials"),
(28, "AT", "Consent types, Wound examination: Abrasion to firearm wounds", "Death - somatic vs molecular; Early and late signs", "Wound classification table with IPC sections", "Complete forensic medicine topics"),
(29, "SW", "Swasthavritta intro: Swastha definition, Ayurvedic concept of health", "Dinacharya: All practices morning to night with rationale", "Make Dinacharya timetable with modern benefit", "Master daily routine completely"),
(30, "SW", "Ritucharya: All 6 Ritu, Dosha, Diet, Panchakarma correlation", "Ratricharya, Brahmacharya concept and benefits", "Make Ritucharya table (6 rows × 5 columns)", "Cover seasonal regimen fully"),
(31, "SW", "Sadvritta: all rules with modern psychological correlation", "Achara Rasayana: behavioral rejuvenation principles", "Write 10 Sadvritta rules from memory", "Complete ethical conduct topics"),
(32, "SW", "Panchakarma overview: 5 procedures, season, dosha, indication", "Poorva Karma: Snehana, Swedana - types and methods", "Panchakarma table: procedure → season → dosha", "Master Panchakarma from prevention angle"),
(33, "SW", "Modern PSM: Levels of prevention, Epidemiology basics", "National Health Programs: RNTCP, NVBDCP, Immunization schedule", "List 5 national programs with target disease", "Cover integrated modern PSM topics"),
(34, "SW", "Yoga: Ashtanga yoga, Pranayama types with technique", "Shatkarma: Neti, Dhauti, Nauli - method and benefits", "Pranayama table: type → technique → benefit", "Complete Yoga integration in Swasthavritta"),
(35, "DG", "PYQ Practice: Dravyaguna long questions (past 5 years)", "PYQ: Short answers - drug identification, synonyms, uses", "Write 2 full-length long answer questions", "Practice exam writing - Dravyaguna"),
(36, "RS", "PYQ Practice: Rasa Shastra long questions", "PYQ: Bhaishajya Kalpana - preparation methods", "Write Kvatha and Bhasma preparation in exam format", "Practice exam writing - Rasa Shastra"),
(37, "RN", "PYQ Practice: Roga Nidana - Samprapti questions", "PYQ: Nidana Panchaka, Ashtasthana Pariksha", "Write Prameha Samprapti in full exam format", "Practice exam writing - Roga Nidana"),
(38, "SA", "PYQ Practice: Samhita - Sanskrit shloka + meaning questions", "PYQ: Long questions on Tridosha, Sapta Dhatu", "Write any 5 Sanskrit sutras with full commentary", "Practice exam writing - Samhita"),

# ── PHASE 4: FULL REVISION (Days 39-45) ──────────────────────────────
(39, "REV","MOCK TEST 1: Dravyaguna + Rasa Shastra (2h timed paper)", "Check answers, identify weak topics, make error log", "Revise error topics - make short notes", "Mock exam + self-evaluation"),
(40, "REV","MOCK TEST 2: Roga Nidana + Samhita Adhyan (2h timed paper)", "Check answers, revise weak Nidana Sthana chapters", "Revise Sanskrit sutras from error list", "Mock exam + targeted revision"),
(41, "REV","MOCK TEST 3: Agada Tantra + Swasthavritta (2h timed paper)", "Check answers, revise Visha classification and Dinacharya", "Revise national health programs and Ritucharya", "Mock exam + final topic fixing"),
(42, "REV","Rapid revision: Dravyaguna - all drug tables, Mahakashaya", "Rapid revision: Rasa Shastra - bhasma preparation, kalpana forms", "Write 10 drug names with Latin names from memory", "Speed revision Day 1"),
(43, "REV","Rapid revision: Roga Nidana - disease-wise Nidana table", "Rapid revision: Samhita - key sutras, Nidana Sthana all 8 diseases", "Recite 10 sutras aloud - memorization check", "Speed revision Day 2"),
(44, "REV","Rapid revision: Agada - poison table, MLC, forensic topics", "Rapid revision: Swasthavritta - Dinacharya, Ritucharya, Panchakarma", "Final check: passing criteria, exam day plan", "Speed revision Day 3"),
(45, "OFF","Light reading only: go through your own handwritten notes", "Practical preparation: drug identification, tongue scraper demo", "Sleep by 10 PM - no new topics", "REST & confidence building"),
]

# ── Timetable template ────────────────────────────────────────────────────
DAILY_TIMETABLE = [
    ("5:30 - 6:00 AM",  "Wake up, Yoga/Pranayama, Dinacharya", "Refreshes mind, Ayurvedic routine"),
    ("6:00 - 8:30 AM",  "MORNING STUDY SESSION (2.5 hrs)", "Peak concentration hours - new topics"),
    ("8:30 - 9:00 AM",  "Breakfast + short break", "Rest and nutrition"),
    ("9:00 AM - 12:00", "COLLEGE / Self study (theory)", "Attend lectures or continue study"),
    ("12:00 - 1:30 PM", "Lunch + rest / light reading", "Recovery"),
    ("1:30 - 4:00 PM",  "AFTERNOON STUDY SESSION (2.5 hrs)", "Deep study, textbook reading"),
    ("4:00 - 4:30 PM",  "Tea break + walk (no phone)", "Mental reset"),
    ("4:30 - 6:00 PM",  "PRACTICAL / Drug identification", "Lab/practical preparation"),
    ("6:00 - 7:00 PM",  "EVENING TASK (1 hr)", "Flashcards, charts, sutras, revision"),
    ("7:00 - 8:00 PM",  "Dinner + family time", "Relaxation"),
    ("8:00 - 9:30 PM",  "NIGHT REVISION (1.5 hrs)", "Revise today's topics, write key points"),
    ("9:30 - 10:00 PM", "Review tomorrow's targets, sleep prep", "Plan next day"),
    ("10:00 PM",        "SLEEP", "8 hrs sleep essential for memory"),
]

# ── Build PDF ────────────────────────────────────────────────────────────
story = []

# ── COVER ────────────────────────────────────────────────────────────────
story.append(Spacer(1, 0.5*cm))

cover_rows = [
    [Paragraph("BAMS 2nd Professional Year", S('c1', fontSize=16, textColor=GOLD,
        fontName='Helvetica-Bold', alignment=TA_CENTER))],
    [Paragraph("45-DAY STUDY SCHEDULE", S('c2', fontSize=28, textColor=white,
        fontName='Helvetica-Bold', alignment=TA_CENTER, leading=34))],
    [Paragraph("Day-by-Day Targets | July 15 - August 28, 2026", S('c3', fontSize=11,
        textColor=white, fontName='Helvetica', alignment=TA_CENTER))],
    [Paragraph("All 6 Subjects  •  NCISM Syllabus  •  Daily Timetable Included",
        S('c4', fontSize=9.5, textColor=GOLD, fontName='Helvetica-Bold', alignment=TA_CENTER))],
]
ct = Table([[r[0]] for r in cover_rows], colWidths=[17.6*cm])
ct.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,-1), HexColor("#1A237E")),
    ('TOPPADDING', (0,0), (0,0), 18),
    ('TOPPADDING', (0,1), (0,1), 6),
    ('TOPPADDING', (0,2), (0,2), 8),
    ('TOPPADDING', (0,3), (0,3), 6),
    ('BOTTOMPADDING', (0,-1), (-1,-1), 18),
    ('LEFTPADDING', (0,0), (-1,-1), 12),
    ('RIGHTPADDING', (0,0), (-1,-1), 12),
]))
story.append(ct)
story.append(Spacer(1, 0.4*cm))

# Phase legend
legend_data = [
    [Paragraph("PHASE", S('lh', fontSize=8, textColor=white, fontName='Helvetica-Bold', alignment=TA_CENTER)),
     Paragraph("DAYS", S('lh', fontSize=8, textColor=white, fontName='Helvetica-Bold', alignment=TA_CENTER)),
     Paragraph("FOCUS", S('lh', fontSize=8, textColor=white, fontName='Helvetica-Bold', alignment=TA_CENTER)),
     Paragraph("SUBJECTS", S('lh', fontSize=8, textColor=white, fontName='Helvetica-Bold', alignment=TA_CENTER))],
    [cel("Phase 1"), cel("1 - 10"), celb("Foundation"), cel("Dravyaguna + Rasa Shastra")],
    [cel("Phase 2"), cel("11 - 25"), celb("Deep Study"), cel("Roga Nidana + Samhita + Agada + Swasthavritta")],
    [cel("Phase 3"), cel("26 - 38"), celb("PYQ + Advanced"), cel("All subjects with past questions")],
    [cel("Phase 4"), cel("39 - 45"), celb("Full Revision"), cel("Mock tests + Speed revision + Rest")],
]
lt = Table(legend_data, colWidths=[3*cm, 3*cm, 4*cm, 7.6*cm])
lt.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), HEADER_BG),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [LIGHT_BLUE, white, LIGHT_GREEN, LIGHT_ORANGE]),
    ('BOX', (0,0), (-1,-1), 1, DARK_BLUE),
    ('GRID', (0,0), (-1,-1), 0.5, HexColor("#B0BEC5")),
    ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5),
    ('LEFTPADDING', (0,0), (-1,-1), 6), ('RIGHTPADDING', (0,0), (-1,-1), 6),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
]))
story.append(lt)
story.append(Spacer(1, 0.4*cm))

# Subject color legend
subj_legend_data = [
    [Paragraph("SUBJECT COLOUR GUIDE", S('sg', fontSize=9, textColor=white,
        fontName='Helvetica-Bold', alignment=TA_CENTER))] * 1,
]
slt_header = Table([[Paragraph("SUBJECT COLOUR GUIDE", S('sg', fontSize=9, textColor=white,
    fontName='Helvetica-Bold', alignment=TA_CENTER))]], colWidths=[17.6*cm])
slt_header.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,-1), HEADER_BG),
    ('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5),
]))
story.append(slt_header)

color_boxes = []
for code, label in [("DG","Dravyaguna"), ("RS","Rasa Shastra"),
                    ("RN","Roga Nidana"), ("SA","Samhita"),
                    ("AT","Agada Tantra"), ("SW","Swasthavritta")]:
    dc, lc = SUBJ_COLORS[code]
    color_boxes.append([
        Paragraph(code, S('cb', fontSize=9, textColor=white, fontName='Helvetica-Bold', alignment=TA_CENTER)),
        Paragraph(label, S('cl', fontSize=8.5, textColor=dc, fontName='Helvetica-Bold')),
    ])

cbr1 = color_boxes[:3]
cbr2 = color_boxes[3:]
all_cells = cbr1 + cbr2
flat = []
for pair in [cbr1, cbr2]:
    row = []
    for item in pair:
        row.extend(item)
    flat.append(row)

cbt = Table(flat, colWidths=[1.5*cm, 4.5*cm, 1.5*cm, 4.5*cm, 1.5*cm, 4.1*cm])
style_cmds = [
    ('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4),
    ('LEFTPADDING',(0,0),(-1,-1),4),('RIGHTPADDING',(0,0),(-1,-1),4),
    ('GRID',(0,0),(-1,-1),0.5,HexColor("#CFD8DC")),
]
codes_order = ["DG","RS","RN","SA","AT","SW"]
for i, code in enumerate(codes_order):
    dc, lc = SUBJ_COLORS[code]
    row = i // 3
    col = (i % 3) * 2
    style_cmds.append(('BACKGROUND',(col,row),(col,row), dc))
    style_cmds.append(('BACKGROUND',(col+1,row),(col+1,row), lc))
cbt.setStyle(TableStyle(style_cmds))
story.append(cbt)
story.append(Spacer(1, 0.5*cm))

# ── DAILY TIMETABLE PAGE ─────────────────────────────────────────────────
story.append(Paragraph("Daily Study Timetable (Follow Every Day)", sec_s))
story.append(Spacer(1, 0.15*cm))
tt_data = [[hdr_cell("TIME"), hdr_cell("ACTIVITY"), hdr_cell("REASON")]]
for time, act, reason in DAILY_TIMETABLE:
    bg = LIGHT_GREEN if "STUDY" in act or "MOCK" in act or "PRACTICAL" in act or "TASK" in act or "REVISION" in act else white
    tt_data.append([cel(time), celb(act) if "SESSION" in act or "MOCK" in act else cel(act), cel(reason)])

tt = Table(tt_data, colWidths=[3.8*cm, 7.8*cm, 6*cm])
tt_style = [
    ('BACKGROUND', (0,0), (-1,0), HEADER_BG),
    ('GRID', (0,0), (-1,-1), 0.5, HexColor("#CFD8DC")),
    ('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5),
    ('LEFTPADDING',(0,0),(-1,-1),5),('RIGHTPADDING',(0,0),(-1,-1),5),
    ('VALIGN',(0,0),(-1,-1),'TOP'),
]
# Highlight study sessions
for idx, (time, act, _) in enumerate(DAILY_TIMETABLE, 1):
    if "SESSION" in act:
        tt_style.append(('BACKGROUND', (0,idx), (-1,idx), LIGHT_GREEN))
    elif "PRACTICAL" in act:
        tt_style.append(('BACKGROUND', (0,idx), (-1,idx), LIGHT_PURPLE))
    elif "REVISION" in act:
        tt_style.append(('BACKGROUND', (0,idx), (-1,idx), LIGHT_ORANGE))
    elif "SLEEP" in act:
        tt_style.append(('BACKGROUND', (0,idx), (-1,idx), LIGHT_BLUE))
tt.setStyle(TableStyle(tt_style))
story.append(tt)
story.append(Spacer(1, 0.3*cm))

# Key rules box
rules = [
    "Start date: July 15, 2026 (Today)  |  Exam target: ~August 28, 2026",
    "Morning session (6-8:30 AM) is sacred - protect it. No phone, no distractions.",
    "Evening task (6-7 PM) = active recall only. Write, draw charts, recite sutras.",
    "Night revision = review today's topics ONLY. No new topics after 8 PM.",
    "Sunday = half-day study (morning only) + rest. Do NOT skip Sunday revision.",
    "If you miss a day: do NOT try to cover 2 days in 1. Just continue from the next topic.",
]
rules_data = [[Paragraph("IMPORTANT RULES FOR THIS SCHEDULE", S('rh', fontSize=9.5,
    textColor=white, fontName='Helvetica-Bold', alignment=TA_CENTER))]]
rt = Table(rules_data, colWidths=[17.6*cm])
rt.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),RED_DARK),
    ('TOPPADDING',(0,0),(-1,-1),6),('BOTTOMPADDING',(0,0),(-1,-1),6)]))
story.append(rt)
for r in rules:
    story.append(Paragraph(f"• {r}", tip_s))
story.append(PageBreak())

# ── DAY-BY-DAY SCHEDULE PAGES ─────────────────────────────────────────────
# Group days 7 per page for readability
DAYS_PER_PAGE = 7
phases = [
    ("PHASE 1: FOUNDATION  (Days 1-10)  •  Subjects: Dravyaguna & Rasa Shastra", 1, 10, HexColor("#1B5E20")),
    ("PHASE 2: DEEP STUDY  (Days 11-25)  •  Subjects: Roga Nidana, Samhita, Agada, Swasthavritta", 11, 25, DARK_BLUE),
    ("PHASE 3: ADVANCED + PYQ PRACTICE  (Days 26-38)", 26, 38, PURPLE),
    ("PHASE 4: FULL REVISION + MOCK TESTS  (Days 39-45)", 39, 45, RED_DARK),
]

def phase_header(text, color):
    t = Table([[Paragraph(text, S('ph', fontSize=11, textColor=white,
        fontName='Helvetica-Bold', alignment=TA_CENTER, leading=14))]],
        colWidths=[17.6*cm])
    t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),color),
        ('TOPPADDING',(0,0),(-1,-1),8),('BOTTOMPADDING',(0,0),(-1,-1),8),
        ('LEFTPADDING',(0,0),(-1,-1),10),('RIGHTPADDING',(0,0),(-1,-1),10)]))
    return t

for ph_title, ph_start, ph_end, ph_color in phases:
    story.append(phase_header(ph_title, ph_color))
    story.append(Spacer(1, 0.2*cm))

    # Table header
    day_data = [[
        hdr_cell("DAY\nDATE"),
        hdr_cell("SUBJ"),
        hdr_cell("MORNING SESSION\n(6:00 - 8:30 AM)"),
        hdr_cell("AFTERNOON SESSION\n(1:30 - 4:00 PM)"),
        hdr_cell("EVENING TASK\n(6:00 - 7:00 PM)"),
        hdr_cell("DAILY GOAL"),
    ]]

    for (day, code, morn, aftn, eve, goal) in schedule:
        if not (ph_start <= day <= ph_end):
            continue
        d = START_DATE + timedelta(days=day-1)
        date_str = d.strftime("%b %d\n%a")
        dc, lc = SUBJ_COLORS[code]

        day_cell = Table([
            [Paragraph(str(day), S('dn', fontSize=14, textColor=white, fontName='Helvetica-Bold', alignment=TA_CENTER))],
            [Paragraph(date_str, S('ds', fontSize=7, textColor=white, fontName='Helvetica', alignment=TA_CENTER, leading=9))],
        ], colWidths=[1.6*cm])
        day_cell.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),dc),
            ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3)]))

        subj_cell = Table([[Paragraph(code, S('sc', fontSize=8, textColor=white,
            fontName='Helvetica-Bold', alignment=TA_CENTER))]],
            colWidths=[1.2*cm])
        subj_cell.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),dc),
            ('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)]))

        row = [day_cell, subj_cell,
               Paragraph(morn, cell_s),
               Paragraph(aftn, cell_s),
               Paragraph(eve, cell_s),
               Paragraph(goal, S('g', fontSize=7.5, textColor=dc, fontName='Helvetica-Bold', leading=11))]

        row_style = [
            ('BACKGROUND', (2,0), (-1,0), lc),
            ('VALIGN', (0,0), (-1,0), 'TOP'),
            ('TOPPADDING', (0,0), (-1,-1), 4),
            ('BOTTOMPADDING', (0,0), (-1,-1), 4),
            ('LEFTPADDING', (2,0), (-1,0), 5),
            ('RIGHTPADDING', (2,0), (-1,0), 5),
            ('BOX', (0,0), (-1,0), 0.5, dc),
        ]
        day_data.append(row)

    dtable = Table(day_data,
        colWidths=[1.6*cm, 1.2*cm, 4*cm, 4*cm, 3.2*cm, 3.6*cm],
        repeatRows=1)

    table_style = [
        ('BACKGROUND', (0,0), (-1,0), HEADER_BG),
        ('GRID', (0,0), (-1,-1), 0.5, HexColor("#CFD8DC")),
        ('TOPPADDING', (0,0), (-1,-1), 3),
        ('BOTTOMPADDING', (0,0), (-1,-1), 3),
        ('LEFTPADDING', (0,0), (-1,-1), 3),
        ('RIGHTPADDING', (0,0), (-1,-1), 3),
        ('VALIGN', (0,0), (-1,-1), 'TOP'),
        ('ROWBACKGROUNDS', (2,1), (-1,-1), [white, GREY_BG]),
    ]
    # Color code subject columns
    for i, (day, code, *_) in enumerate([(d,c,*r) for d,c,*r in schedule if ph_start <= d <= ph_end], 1):
        dc, lc = SUBJ_COLORS[code]
        table_style.append(('BACKGROUND', (0,i), (1,i), dc))

    dtable.setStyle(TableStyle(table_style))
    story.append(dtable)
    story.append(Spacer(1, 0.3*cm))

    if ph_end < 45:
        story.append(PageBreak())

# ── SUBJECT-WISE TOPIC CHECKLIST PAGE ─────────────────────────────────────
story.append(PageBreak())
story.append(phase_header("SUBJECT-WISE TOPIC CHECKLIST  (Tick after completing each topic)", HEADER_BG))
story.append(Spacer(1, 0.3*cm))

checklists = {
    "DG - Dravyaguna Vigyana": [
        "□ Rasa-Guna-Virya-Vipaka-Prabhava - all definitions",
        "□ 20 Gurvadi Gunas with opposites",
        "□ 50 Mahakashaya - all group names and 2 drugs each",
        "□ Ashwagandha - complete properties and indications",
        "□ Shatavari - complete properties",
        "□ Guduchi - complete properties",
        "□ Haridra - complete properties",
        "□ Triphala - Rasa, properties, uses",
        "□ Trikatu - composition, properties, uses",
        "□ Nimba, Eranda, Punarnava - properties",
        "□ Shunthi, Pippali - properties",
        "□ Latin names and families for 20 important drugs",
        "□ Panchabhautika composition - applied to drugs",
    ],
    "RS - Rasa Shastra & Bhaishajya Kalpana": [
        "□ Parada - synonyms, origin, shodhana (7 methods)",
        "□ Kajjali preparation - full method",
        "□ Bhasma Pariksha: Rekhapurnata, Varitaratva, Nishchandratva",
        "□ Swarna, Rajata, Tamra bhasma - preparation outline",
        "□ Lauha bhasma - most important, full preparation",
        "□ Abhraka bhasma - Sataputi/Sahasraputi",
        "□ Gandhaka shodhana - method",
        "□ Panchavidha Kashaya Kalpana - all 5 types",
        "□ Kvatha preparation - drug:water ratio, boiling rules",
        "□ Churna, Vati, Avaleha, Ghrita, Taila - shelf life & dose",
        "□ Asava vs Arishta - full comparison",
        "□ All kalpana forms - complete table",
    ],
    "RN - Roga Nidana evam Vikriti Vigyana": [
        "□ Nidana Panchaka - all 5 with definitions and examples",
        "□ Samprapti: 6 Kriya Kala stages - detailed",
        "□ Samprapti of Jwara - full stepwise",
        "□ Samprapti of Prameha - full stepwise",
        "□ Samprapti of Atisara",
        "□ Nidana of Kushtha, Kasa, Shwasa",
        "□ Nidana of Hrida Roga, Panduroga, Udara",
        "□ Ashtasthana Pariksha - all 8 explained",
        "□ Nadi Pariksha - Vata/Pitta/Kapha differences",
        "□ Urine examination - Taila bindu pariksha method",
        "□ Modern: Jaundice types table",
        "□ Modern: Inflammation, fever mechanism",
    ],
    "SA - Samhita Adhyan - 2": [
        "□ Charaka Samhita - 8 Sthanas with chapter count",
        "□ Ch.Su.1 Dirghamjivitiya - Ayurveda definition sutra",
        "□ Ch.Su.5 Matrashitiya - quantity of food concept",
        "□ Ch.Su.7 Navegandharaniya - suppressible/non-suppressible urges",
        "□ Ch.Su.11 Tistraishaniya - three desires, Trividha Bala",
        "□ Ch.Su.26 - Rasa chapter - 6 Rasas properties",
        "□ Ch.Su.28 - Ashta Ahara Vidhi Visheshayatana",
        "□ Nidana Sthana - all 8 diseases (Ch.1-8) key points",
        "□ Jwara Nidana - 8 types of Jwara",
        "□ Prameha Nidana - 20 types",
        "□ Kushtha Nidana - 7 Maha + 11 Kshudra",
        "□ Unmada vs Apasmara - differentiation",
        "□ 10 key Sanskrit sutras - written from memory",
    ],
    "AT - Agada Tantra": [
        "□ Visha classification: Sthavara, Jangama, Kritrima",
        "□ Sthavara Visha: 8 plant poisons with toxic component",
        "□ Sarpavisha: Darvikar vs Mandali vs Rajila",
        "□ Sarpavisha management: classical + ASV (modern)",
        "□ Dashanga Agada - all 10 ingredients",
        "□ Gara visha and Dooshi visha - differences",
        "□ OP poisoning: SLUDGE + Atropine protocol",
        "□ Dhatura poisoning: symptoms + physostigmine",
        "□ Medical negligence: IPC 304A, 337, 338",
        "□ MLC: definition, doctor's duties, documentation",
        "□ Consent types: implied, express, emergency",
        "□ Wound types: Abrasion to firearm - classification",
        "□ Death signs: early and late, somatic vs molecular",
    ],
    "SW - Swasthavritta": [
        "□ Dinacharya - all practices morning to night with rationale",
        "□ Ritucharya - 6 seasons, Dosha, diet, Panchakarma table",
        "□ Ratricharya - evening routine details",
        "□ Brahmacharya concept and health benefits",
        "□ Sadvritta - all 10+ rules with modern correlation",
        "□ Achara Rasayana - behavioral rejuvenation",
        "□ Panchakarma: 5 procedures + season + dosha + indication",
        "□ Poorva karma: Snehana types, Swedana types",
        "□ Ashtanga Yoga: all 8 limbs (Yama to Samadhi)",
        "□ Pranayama types: Nadi Shodhana, Bhramari, Kapalbhati",
        "□ Shatkarma: Neti, Dhauti, Nauli - methods",
        "□ Primary/secondary/tertiary prevention - with Ayurveda correlation",
        "□ National Health Programs: RNTCP, NVBDCP, NIP",
    ],
}

for subj, items in checklists.items():
    dc = [v for k,v in SUBJ_COLORS.items() if subj.startswith(k)][0][0]
    lc = [v for k,v in SUBJ_COLORS.items() if subj.startswith(k)][0][1]
    hdr = Table([[Paragraph(subj, S('ch', fontSize=10, textColor=white,
        fontName='Helvetica-Bold'))]], colWidths=[17.6*cm])
    hdr.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),dc),
        ('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5),
        ('LEFTPADDING',(0,0),(-1,-1),8)]))
    story.append(hdr)

    # 2-column layout
    mid = len(items) // 2 + len(items) % 2
    col1 = items[:mid]
    col2 = items[mid:]
    while len(col2) < len(col1):
        col2.append("")

    check_rows = []
    for a, b in zip(col1, col2):
        check_rows.append([
            Paragraph(a, S('ci', fontSize=8, textColor=black, fontName='Helvetica', leading=11)),
            Paragraph(b, S('ci2', fontSize=8, textColor=black, fontName='Helvetica', leading=11)),
        ])
    ct2 = Table(check_rows, colWidths=[8.8*cm, 8.8*cm])
    ct2.setStyle(TableStyle([
        ('BACKGROUND',(0,0),(-1,-1),lc),
        ('GRID',(0,0),(-1,-1),0.5,HexColor("#CFD8DC")),
        ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3),
        ('LEFTPADDING',(0,0),(-1,-1),6),('RIGHTPADDING',(0,0),(-1,-1),6),
        ('VALIGN',(0,0),(-1,-1),'TOP'),
    ]))
    story.append(ct2)
    story.append(Spacer(1, 0.2*cm))

# ── FINAL PAGE: EXAM TIPS ─────────────────────────────────────────────────
story.append(PageBreak())
story.append(phase_header("FINAL EXAM DAY STRATEGY & WRITING TIPS", DARK_GREEN))
story.append(Spacer(1, 0.3*cm))

exam_tips = [
    ("Before Exam (Night before)", [
        "Do NOT study new topics the night before",
        "Revise only your short notes and key sutra list",
        "Sleep by 10 PM - minimum 7-8 hours",
        "Keep admit card, pens (3 blue + 1 black), scale, pencil ready",
        "Eat light dinner - avoid heavy food",
    ], LIGHT_GREEN, DARK_GREEN),
    ("Exam Hall Strategy (3-hour paper)", [
        "First 5 minutes: Read all questions carefully before writing anything",
        "Long answers (10 marks): Attempt first - spend 15 min each, max 3 long Q",
        "Short answers (5 marks): 8-10 min each, write in points/sub-headings",
        "Use headings and sub-headings - examiners mark better formatted answers",
        "Leave space: skip 2 lines between sub-headings for clean appearance",
        "Attempt ALL questions - never leave blank. Write something for every Q",
    ], LIGHT_BLUE, DARK_BLUE),
    ("Answer Writing Format", [
        "Definition → Classification → Explanation → Examples → Clinical significance",
        "For drugs: Rasa → Guna → Virya → Vipaka → Prabhava → Karma → Yoga",
        "For diseases: Nidana → Purvarupa → Rupa → Samprapti → Upashaya",
        "For procedures: Definition → Materials → Method → Dose → Indication",
        "Sanskrit sutras: Always write in Devanagari if possible + meaning in English",
        "Diagrams: Flowcharts for Kriya Kala, Samprapti always add marks",
    ], LIGHT_PURPLE, PURPLE),
    ("Practical & Viva Strategy", [
        "Drug identification: Learn both crude form + powder + Latin name",
        "Speak confidently - even if unsure, say what you know first",
        "Tongue scraper, Neti pot, drug specimens - practice identification",
        "Bhasma practical: Know Rekhapurnata test procedure step-by-step",
        "Kvatha preparation: memorize drug:water:reduction ratio perfectly",
        "Viva ending: Thank the examiner - leaves positive impression",
    ], LIGHT_ORANGE, ORANGE_DARK),
]

for title, tips, bg, fg in exam_tips:
    hdr = Table([[Paragraph(title, S('et', fontSize=10, textColor=white,
        fontName='Helvetica-Bold'))]], colWidths=[17.6*cm])
    hdr.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),fg),
        ('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5),
        ('LEFTPADDING',(0,0),(-1,-1),8)]))
    story.append(hdr)
    tip_rows = [[Paragraph(f"✓ {t}", S('tt', fontSize=8.5, textColor=black,
        fontName='Helvetica', leading=12))] for t in tips]
    tip_t = Table(tip_rows, colWidths=[17.6*cm])
    tip_t.setStyle(TableStyle([
        ('BACKGROUND',(0,0),(-1,-1),bg),
        ('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4),
        ('LEFTPADDING',(0,0),(-1,-1),10),('RIGHTPADDING',(0,0),(-1,-1),6),
    ]))
    story.append(tip_t)
    story.append(Spacer(1, 0.2*cm))

story.append(Spacer(1, 0.3*cm))
# Motivational footer
final = Table([[Paragraph(
    "You have 45 days. That is enough. Stay consistent, not perfect.\n"
    "\"Nityam hitahitam yuktyaa seveta\" — Always follow what is beneficial, wisely.  |  All the best!",
    S('fi', fontSize=10, textColor=white, fontName='Helvetica-Bold',
      alignment=TA_CENTER, leading=14))]], colWidths=[17.6*cm])
final.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),10),('RIGHTPADDING',(0,0),(-1,-1),10)]))
story.append(final)

# ── BUILD ─────────────────────────────────────────────────────────────────
doc.build(story)
print(f"SUCCESS: {OUTPUT}")
Running Command

cd /home/daytona/workspace/bams-study-guide && python create_schedule.py 2>&1

Running Command

ls -lh /home/daytona/workspace/bams-study-guide/BAMS_2ndProf_45Day_Schedule.pdf

Your 45-day study schedule PDF is ready!

BAMS 2ndProf 45Day Schedule

PDF Document · PDF


What's Inside the Schedule PDF

Cover Page

  • Phase overview table (4 phases)
  • Subject color-coding guide (each subject has its own color throughout)

Daily Timetable (Every Day Structure)

TimeActivity
5:30 AMWake up + Yoga/Pranayama
6:00 - 8:30 AMMorning Study Session (new topics)
1:30 - 4:00 PMAfternoon Study Session (deep reading)
4:30 - 6:00 PMPractical / Drug identification
6:00 - 7:00 PMEvening Task (flashcards, charts, sutras)
8:00 - 9:30 PMNight revision (today's topics only)

4-Phase Day-by-Day Plan

PhaseDaysFocus
Phase 1Day 1-10Foundation - Dravyaguna + Rasa Shastra basics
Phase 2Day 11-25Deep study - Roga Nidana, Samhita, Agada, Swasthavritta
Phase 3Day 26-38PYQ practice + advanced topics for all subjects
Phase 4Day 39-453 Mock tests + speed revision + exam day prep

Subject-wise Topic Checklist

  • 78 tick-box items across all 6 subjects
  • Two-column layout - print and tick as you go

Exam Day Strategy

  • Night before plan, exam hall timing strategy, answer writing format, practical/viva tips
Today = Day 1. Start this morning! 🙏
This is a shared conversation. Sign in to Orris to start your own chat.