I orris you know bams second proff syllabus
BAMS second professional year syllabus subjects India CCIM
| Paper | Marks |
|---|---|
| Theory (each subject) | 100 marks |
| Practical / Viva | 50 marks |
| Internal Assessment | 20-30 marks |
New ncism
NCISM BAMS second professional syllabus 2024 new curriculum
| S.No | Subject |
|---|---|
| 1 | Kriya Sharira (Ayurvedic Physiology + Modern Physiology) |
| 2 | Dravyaguna Vigyana (Ayurvedic Pharmacognosy) |
| 3 | Rasa Shastra evam Bhaishajya Kalpana (Ayurvedic Pharmaceutics) |
| 4 | Charak Samhita - Poorvardha (First Half of Charaka Samhita) |
| Component | Marks |
|---|---|
| Theory (University Exam) | 80 marks |
| Internal Assessment | 20 marks |
| Practical/Viva | 50 marks |
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
mkdir -p /home/daytona/workspace/bams-study-guide && ls /home/daytona/workspace/bams-study-guide/
~/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}")
cd /home/daytona/workspace/bams-study-guide && python create_pdf.py
ls -lh /home/daytona/workspace/bams-study-guide/BAMS_2nd_Prof_Study_Guide_NCISM.pdf
BAMS 2nd Prof Study Guide NCISM
PDF Document · PDF
| Subject | Key Content Covered |
|---|---|
| 1. Dravyaguna Vigyana | Rasa-Guna-Virya-Vipaka-Prabhava tables, 50 Mahakashaya groups, 10 important drugs with full properties, exam tips |
| 2. Rasa Shastra & Bhaishajya Kalpana | Parada shodhana, 8 metals & bhasma preparation, bhasma pariksha tests, all dosage forms with shelf life & dose, kvatha method |
| 3. Roga Nidana | Nidana Panchaka, 6 Kriya Kala stages, disease-wise Nidana table (10 diseases), Ashtasthana Pariksha, modern pathology integration |
| 4. Samhita Adhyan - 2 | Charaka 8 Sthanas, must-study Adhyayas, Nidana Sthana all 8 diseases, key Sanskrit sutras to memorize |
| 5. Agada Tantra | Visha classification, 7-fold poison exam, poison chart (Vatsanabha to Arsenic), Sarpavisha classical+modern, MLC & forensic medicine |
| 6. Swasthavritta | Full Dinacharya table, Ritucharya all 6 seasons, Sadvritta, Panchakarma prevention, Yoga & Pranayama, modern PSM |
Create a study schedule with daily targets
1 month 15 days plan
~/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}")
cd /home/daytona/workspace/bams-study-guide && python create_schedule.py 2>&1
ls -lh /home/daytona/workspace/bams-study-guide/BAMS_2ndProf_45Day_Schedule.pdf
BAMS 2ndProf 45Day Schedule
PDF Document · PDF
| Time | Activity |
|---|---|
| 5:30 AM | Wake up + Yoga/Pranayama |
| 6:00 - 8:30 AM | Morning Study Session (new topics) |
| 1:30 - 4:00 PM | Afternoon Study Session (deep reading) |
| 4:30 - 6:00 PM | Practical / Drug identification |
| 6:00 - 7:00 PM | Evening Task (flashcards, charts, sutras) |
| 8:00 - 9:30 PM | Night revision (today's topics only) |
| Phase | Days | Focus |
|---|---|---|
| Phase 1 | Day 1-10 | Foundation - Dravyaguna + Rasa Shastra basics |
| Phase 2 | Day 11-25 | Deep study - Roga Nidana, Samhita, Agada, Swasthavritta |
| Phase 3 | Day 26-38 | PYQ practice + advanced topics for all subjects |
| Phase 4 | Day 39-45 | 3 Mock tests + speed revision + exam day prep |