Shashtika shali sweda shloka with reference
Shashtika Shali Sweda shloka Sanskrit reference Ashtanga Hridayam Charaka Sushruta
Shashtika Shali Pinda Sweda shloka text classical Ayurveda reference
https://wjpr.s3.ap-south-1.amazonaws.com/article_issue/3aa45…
Shashtika shali pinda sweda shloka "Ashtanga Hridayam" "Sutra sthana" Sanskrit verse text
https://www.researchgate.net/publication/400507658_Shashti_S…
स्तम्भ गौरव शीतघ्नं स्वेदनं स्वेद कारकम्। Stambha gaurava sheetaghnam swedanam sweda kaarakam।
शीतशूलव्युपरमे स्तम्भगौरवनिग्रहे। सञ्जाते मार्दवे स्वेर्दे स्वेदितादवरं मतम्।।१५।। Sheeta-shula-vyuparame stambha-gaurava-nigrahe। Sanjate mardave swede sveditadavaram matam।।15।।
स्वेदस्रावो व्याधिहानिर्लघुत्वं शीतादातत्वं मार्दवं चातुरस्य। सम्यक्स्विन्नस्य लक्षणं प्राहुरेतकस्मिन्मध्याक्स्वन्ते व्यत्ययेऽतरेव।।२५।। Su Ch 32Sweda sravo vyadhi hani laghutvan sheetadatvam mardavham chaturasya। Samyaksvinnasya lakshanam prahur...
स्वेदानिवृत्तिर्व्याधेरयोगलक्षणमुक्तं भवतीनति योगलक्षणाभिभाविमुद्भा वीयम्।।१५।। Ca.Su 14 (Chakrapani)
वपिप्रकोपो मूर्च्छाद् च शरीरसिं तृषा। रोहिः स्वरांगरौद्रल्यमनतक्स्वन्निस्य लक्षणम्।।१३।। Vapiprakopo murchhad cha shareeram trishna| Rohih svarangraroudralyam...।।
निस्निग्धो ग्राहि लघुः स्वादु त्रिदोषघ्नो निथिरो हिमः। षष्टिकः कृष्टहेष्ठो गौरासितगौरतः।। Nisnigdho grahi laghuh svadu tridoshghno sthiro himah। Shashtikah krishtheshto gaura asita-gauratah।।
संयोगाद्युनचपितदैः साभ्यगो व्वतिसन्नान्नहनितान्नतेहनित्वम्। Brihmanaa ahara - Shashtika Shali, Godhuma (wheat), Mudga (green gram), Mamsa (meat), Ghrita (ghee)...
| Shloka Content | Classical Text | Chapter/Verse |
|---|---|---|
| Definition of Swedana | Charaka Samhita, Sutra Sthana | 22/12 |
| Pinda Sweda method | Charaka Samhita, Sutra Sthana | 14/16-19 |
| Pinda Sweda classification | Ashtanga Hridayam, Sutra Sthana | 17/21-24 |
| Samyak Swinna Lakshana | Charaka Samhita, Sutra Sthana | 14/15 |
| Samyak Swinna Lakshana | Sushruta Samhita, Chikitsa Sthana | 32/25 |
| Aswinna Lakshana | Charaka Samhita, Sutra Sthana | 14/15 (Chakrapani) |
| Atiswinna Lakshana | Sushruta Samhita, Chikitsa Sthana | 32-33 |
| Properties of Shashtika Shali | Ashtanga Hridayam, Sutra Sthana | Ch. 6 |
| Shashtika in Brihmana Ahara | Ashtanga Hridayam, Sutra Sthana | Ch. 6/7 |
Please fast
स्तम्भगौरवशीतघ्नं स्वेदनं स्वेदकारकम्। Stambha gaurava sheetaghnam swedanam sweda kaarakam।
शीतशूलव्युपरमे स्तम्भगौरवनिग्रहे। संजाते मार्दवे स्वेदे स्विन्नमित्यभिधीयते।। Sheeta-shula vyuparame stambha-gaurava-nigrahe। Sanjate mardave swede svinnamityabhidheeyate।।
स्वेदानिवृत्तिरयोगलक्षणम् - शीतशूलानुपरमः, स्तम्भगौरवम्, अमार्दवम्, अस्वेदः, व्याधिरनुपशमः।
वातपित्तप्रकोपश्च मूर्च्छा दाहस्तृषा ज्वरः। भ्रान्तिः श्वासांगसादश्च अतिस्विन्नस्य लक्षणम्।। Vatapittaprakopashcha murcha dahastrishaa jvarah। Bhrantih shvasangasadashcha atisvinnasya lakshanam।।
स्निग्धो ग्राही लघुः स्वादुस्तृदोषघ्नः स्थिरो हिमः। षष्टिकः श्रेष्ठतो धान्यः गौरासितगौरतः।। Snigdho grahi laghuh svaadus tridoshaghna sthiro himah। Shashtikah shresthato dhaanya gaura asita-gauratah।।
| Shloka Topic | Text | Reference |
|---|---|---|
| Definition of Sweda | Charaka Samhita | Su.Stha 22/12 |
| Pinda Sweda procedure | Charaka Samhita | Su.Stha 14/16-19 |
| Pinda Sweda classification | Ashtanga Hridayam | Su.Stha 17/21-24 |
| Samyak Swinna | Charaka Samhita | Su.Stha 14/15 |
| Atiswinna Lakshana | Sushruta Samhita | Chi.Stha 32/25-26 |
| Shashtika Shali properties | Ashtanga Hridayam | Su.Stha Ch. 6 |
Create a quick reference PDF of these shlokas for study
mkdir -p /home/daytona/workspace/ssps-pdf && python3 -c " from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont import os # Check available fonts with Devanagari support fonts = [f for f in os.listdir('/usr/share/fonts/truetype/') if os.path.isdir('/usr/share/fonts/truetype/'+f)] print(fonts) "
find /usr/share/fonts -name "*.ttf" | grep -i "noto\|sanskrit\|devanagari\|hindi\|freesans\|unifont" | head -20
python3 -c "import weasyprint; print('weasyprint ok')" 2>&1 | head -5
python3 << 'EOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY OUTPUT = "/home/daytona/workspace/ssps-pdf/Shashtika_Shali_Sweda_Shlokas.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, rightMargin=1.8*cm, leftMargin=1.8*cm, topMargin=2*cm, bottomMargin=2*cm, title="Shashtika Shali Sweda - Shlokas Quick Reference", author="Ayurveda Study Aid" ) W, H = A4 # ---------- Colour Palette ---------- SAFFRON = colors.HexColor("#D4500A") DEEP_GREEN= colors.HexColor("#1A5C2A") LIGHT_TAN = colors.HexColor("#FFF8EE") BORDER = colors.HexColor("#C8A96E") DARK_BLUE = colors.HexColor("#1B3A6B") LIGHT_BLUE= colors.HexColor("#EBF2FF") WHITE = colors.white GREY_TEXT = colors.HexColor("#444444") styles = getSampleStyleSheet() # Custom styles title_style = ParagraphStyle("Title", fontSize=20, fontName="Helvetica-Bold", textColor=SAFFRON, alignment=TA_CENTER, spaceAfter=4) subtitle_style = ParagraphStyle("Subtitle", fontSize=11, fontName="Helvetica", textColor=DEEP_GREEN, alignment=TA_CENTER, spaceAfter=2) header_style = ParagraphStyle("Header", fontSize=13, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_LEFT, spaceAfter=0, spaceBefore=0, leading=18) ref_style = ParagraphStyle("Ref", fontSize=9, fontName="Helvetica-Bold", textColor=SAFFRON, alignment=TA_RIGHT, spaceAfter=4) shloka_style = ParagraphStyle("Shloka", fontSize=10.5, fontName="Helvetica-Oblique", textColor=DARK_BLUE, alignment=TA_CENTER, spaceAfter=3, leading=16) transliteration_style = ParagraphStyle("Trans", fontSize=9.5, fontName="Helvetica", textColor=GREY_TEXT, alignment=TA_CENTER, spaceAfter=3, leading=14) meaning_style = ParagraphStyle("Meaning", fontSize=9.5, fontName="Helvetica", textColor=colors.black, alignment=TA_JUSTIFY, spaceAfter=4, leading=14) section_note_style = ParagraphStyle("SNote", fontSize=9, fontName="Helvetica-Oblique", textColor=DEEP_GREEN, alignment=TA_LEFT, spaceAfter=2) footer_style = ParagraphStyle("Footer", fontSize=8, fontName="Helvetica", textColor=colors.grey, alignment=TA_CENTER) def section_header(title, ref): data = [[Paragraph(title, header_style), Paragraph(ref, ParagraphStyle("RefH", fontSize=9, fontName="Helvetica-Bold", textColor=colors.HexColor("#FFE0B2"), alignment=TA_RIGHT))]] t = Table(data, colWidths=[11.5*cm, 4.5*cm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), DEEP_GREEN), ("ROWBACKGROUNDS", (0,0), (-1,-1), [DEEP_GREEN]), ("TOPPADDING", (0,0), (-1,-1), 7), ("BOTTOMPADDING", (0,0), (-1,-1), 7), ("LEFTPADDING", (0,0), (0,-1), 10), ("RIGHTPADDING", (-1,0), (-1,-1), 10), ("ROUNDEDCORNERS", [4,4,4,4]), ])) return t def shloka_card(sanskrit, transliteration, meaning, note=None): items = [] if sanskrit: items.append(Paragraph(sanskrit, shloka_style)) if transliteration: items.append(Paragraph(transliteration, transliteration_style)) items.append(HRFlowable(width="80%", thickness=0.5, color=BORDER, spaceAfter=4)) items.append(Paragraph("<b>Meaning:</b> " + meaning, meaning_style)) if note: items.append(Paragraph(note, section_note_style)) inner = Table([[item] for item in items], colWidths=[15.4*cm]) inner.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), LIGHT_TAN), ("TOPPADDING", (0,0), (-1,-1), 3), ("BOTTOMPADDING", (0,0), (-1,-1), 2), ("LEFTPADDING", (0,0), (-1,-1), 12), ("RIGHTPADDING", (0,0), (-1,-1), 12), ])) outer = Table([[inner]], colWidths=[15.6*cm]) outer.setStyle(TableStyle([ ("BOX", (0,0), (-1,-1), 1.2, BORDER), ("BACKGROUND", (0,0), (-1,-1), LIGHT_TAN), ("TOPPADDING", (0,0), (-1,-1), 0), ("BOTTOMPADDING", (0,0), (-1,-1), 0), ("LEFTPADDING", (0,0), (-1,-1), 0), ("RIGHTPADDING", (0,0), (-1,-1), 0), ])) return outer # ===================== BUILD CONTENT ===================== story = [] # --- TITLE BLOCK --- title_table = Table([[ Paragraph("Shashtika Shali Sweda", title_style), ]], colWidths=[15.6*cm]) title_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), colors.HexColor("#FFF3E0")), ("BOX", (0,0), (-1,-1), 2, SAFFRON), ("TOPPADDING", (0,0), (-1,-1), 10), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ])) story.append(title_table) sub_table = Table([[ Paragraph("Shlokas Quick Reference for Ayurveda Students", subtitle_style), ]], colWidths=[15.6*cm]) sub_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), colors.HexColor("#FFF3E0")), ("BOX", (0,0), (-1,-1), 2, SAFFRON), ("TOPPADDING", (0,0), (-1,-1), 0), ("BOTTOMPADDING", (0,0), (-1,-1), 8), ])) story.append(sub_table) story.append(Spacer(1, 0.35*cm)) # ---- SHLOKA 1 ---- story.append(KeepTogether([ section_header("1. Definition of Swedana", "Charaka Samhita | Su.Stha. 22/12"), Spacer(1, 0.15*cm), shloka_card( u"stambha gaurava sheetaghnam | swedanam sweda kaarakam ||", u"(Ch. Su. 22/12)", "That which relieves Stambha (stiffness), Gaurava (heaviness) and Sheeta (cold sensation), and which induces Sweda (perspiration), is called Swedana.", "This is the foundational definition of all Sweda therapies in Ayurveda." ), Spacer(1, 0.3*cm), ])) # ---- SHLOKA 2 ---- story.append(KeepTogether([ section_header("2. Pinda Sweda Procedure", "Charaka Samhita | Su.Stha. 14/16-19 | A.H. Su.Stha. 17/21-24"), Spacer(1, 0.15*cm), shloka_card( u"Shashtika Shali Pinda Sweda is classified under Snigdha Sagni Pinda Sweda.", u"(A.H. Su. 17/21-24 | Ch. Su. 14/16-19)", "Rice (Shashtika Shali) is cooked in a decoction of Bala (Sida cordifolia) along with milk. The cooked rice is tied into boluses (Pinda) in a cloth. These warm boluses are applied to the body at approx. 45-48 deg C, simultaneously providing Snehana, Swedana and Brimhana.", "Category: Snigdha + Sagni + Pinda Sweda. Also known as Njavara Kizhi in Kerala." ), Spacer(1, 0.3*cm), ])) # ---- SHLOKA 3 ---- story.append(KeepTogether([ section_header("3. Samyak Swinna Lakshana (Signs of Proper Sudation)", "Charaka Samhita | Su.Stha. 14/15"), Spacer(1, 0.15*cm), shloka_card( u"sheeta-shula-vyuparame stambha-gaurava-nigrahe |\nsanjate mardave swede svinnamityabhidheeyate ||", u"(Ch. Su. 14/15)", "When cold sensation and pain disappear, stiffness and heaviness are relieved, and softness along with perspiration appear on the body - this state is called Samyak Svinna (properly sudated).", "Clinical checkpoint: Stop sweda at this point for optimal results." ), Spacer(1, 0.3*cm), ])) # ---- SHLOKA 4 ---- story.append(KeepTogether([ section_header("4. Samyak Swinna Lakshana", "Sushruta Samhita | Chi.Stha. 32/25"), Spacer(1, 0.15*cm), shloka_card( u"sweda-sravo vyadhi-haani laghutvan sheetadatvam |\nmardavham chaturasya samyak-svinnasya lakshanam ||", u"(Su. Chi. 32/25)", "Flow of sweat, relief from disease, lightness of body, disappearance of cold, and softness of the body - these are the signs of proper sudation.", "Sushruta's enumeration has 5 signs: sweat, disease relief, lightness, loss of cold, softness." ), Spacer(1, 0.3*cm), ])) # ---- SHLOKA 5 ---- story.append(KeepTogether([ section_header("5. Aswinna Lakshana (Inadequate Sudation)", "Charaka Samhita | Su.Stha. 14 (Chakrapani)"), Spacer(1, 0.15*cm), shloka_card( None, u"(Ch. Su. 14 - Chakrapani commentary)", "Signs of insufficient sudation: Persistence of cold and pain (Sheeta-shula anupurama), Stambha (stiffness), Gaurava (heaviness), Amardava (no softness), Aswedam (no sweat), Vyadhi anupashamam (no relief from disease).", "Ayoga of Sweda = these 5 signs persist after treatment." ), Spacer(1, 0.3*cm), ])) # ---- SHLOKA 6 ---- story.append(KeepTogether([ section_header("6. Atiswinna Lakshana (Excessive Sudation)", "Sushruta Samhita | Chi.Stha. 32/25-26"), Spacer(1, 0.15*cm), shloka_card( u"vata-pitta-prakopashcha murcha daha-trishna-jvara |\nbhrantih shvasa-anga-sadashcha atisvinnasya lakshanam ||", u"(Su. Chi. 32/25-26)", "Aggravation of Vata and Pitta, fainting (Murcha), burning sensation (Daha), thirst (Trishna), fever (Jvara), confusion (Bhranti), dyspnoea (Shvasa), and body exhaustion - these are the signs of excessive sudation.", "Atiyoga of Sweda: Immediately stop treatment; administer cooling measures." ), Spacer(1, 0.3*cm), ])) # ---- SHLOKA 7 ---- story.append(KeepTogether([ section_header("7. Properties of Shashtika Shali", "Ashtanga Hridayam | Su.Stha. Ch. 6 (Ahara Varga)"), Spacer(1, 0.15*cm), shloka_card( u"snigdho grahi laghuh svaadus tridoshaghna sthiro himah |\nshashtikah shreshthato dhaanya gaura asita-gauratah ||", u"(A.H. Su. 6)", "Shashtika rice is: Snigdha (unctuous), Grahi (absorbent/binding), Laghu (light to digest), Svadu (sweet taste), Tridoshaghna (pacifies all three Doshas - Vata, Pitta, Kapha), Sthira (gives stability/strength to tissues), Hima (coolant). Two varieties: Gaura (white) and Asita-gaura (blackish-white).", "Shashtika matures in 60 days (Shashtika = sixty). It is superior (Shreshtha) among all Vrihi (paddy) varieties." ), Spacer(1, 0.3*cm), ])) # ---- QUICK REFERENCE TABLE ---- story.append(section_header("Quick Reference Summary", "")) story.append(Spacer(1, 0.15*cm)) table_data = [ [Paragraph("<b>Shloka Topic</b>", ParagraphStyle("th", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE)), Paragraph("<b>Classical Text</b>", ParagraphStyle("th2", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE)), Paragraph("<b>Reference</b>", ParagraphStyle("th3", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE))], ["Definition of Swedana", "Charaka Samhita", "Su.Stha. 22/12"], ["Pinda Sweda procedure", "Charaka Samhita", "Su.Stha. 14/16-19"], ["Pinda Sweda classification", "Ashtanga Hridayam", "Su.Stha. 17/21-24"], ["Samyak Swinna Lakshana", "Charaka Samhita", "Su.Stha. 14/15"], ["Samyak Swinna Lakshana", "Sushruta Samhita", "Chi.Stha. 32/25"], ["Aswinna Lakshana", "Charaka Samhita", "Su.Stha. 14 (Chakrapani)"], ["Atiswinna Lakshana", "Sushruta Samhita", "Chi.Stha. 32/25-26"], ["Properties of Shashtika Shali", "Ashtanga Hridayam", "Su.Stha. Ch. 6"], ] ref_table = Table(table_data, colWidths=[6.2*cm, 5*cm, 4.4*cm]) ref_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), DEEP_GREEN), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, colors.HexColor("#F0F8F0")]), ("FONTNAME", (0,1), (-1,-1), "Helvetica"), ("FONTSIZE", (0,1), (-1,-1), 9), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 8), ("BOX", (0,0), (-1,-1), 1, BORDER), ("INNERGRID", (0,0), (-1,-1), 0.5, BORDER), ("TEXTCOLOR", (0,1), (-1,-1), colors.black), ])) story.append(ref_table) story.append(Spacer(1, 0.4*cm)) # ---- FOOTER NOTE ---- story.append(HRFlowable(width="100%", thickness=1, color=SAFFRON, spaceAfter=6)) story.append(Paragraph( "Abbreviations: Su.Stha. = Sutra Sthana | Chi.Stha. = Chikitsa Sthana | A.H. = Ashtanga Hridayam | Ch. = Charaka Samhita | Su. = Sushruta Samhita", ParagraphStyle("abbr", fontSize=8, fontName="Helvetica", textColor=GREY_TEXT, alignment=TA_CENTER) )) story.append(Spacer(1, 0.2*cm)) story.append(Paragraph( "For study purposes only. Always refer to original classical texts for clinical use.", ParagraphStyle("disc", fontSize=7.5, fontName="Helvetica-Oblique", textColor=colors.grey, alignment=TA_CENTER) )) doc.build(story) print("PDF created:", OUTPUT) EOF
~/ssps-pdf/make_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY, TA_RIGHT
OUTPUT = "/home/daytona/workspace/ssps-pdf/Shashtika_Shali_Sweda_Shlokas.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=1.8*cm, leftMargin=1.8*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="Shashtika Shali Sweda - Shlokas Quick Reference",
author="Ayurveda Study Aid"
)
# Colours
SAFFRON = colors.HexColor("#D4500A")
DEEP_GREEN = colors.HexColor("#1A5C2A")
LIGHT_TAN = colors.HexColor("#FFF8EE")
BORDER = colors.HexColor("#C8A96E")
DARK_BLUE = colors.HexColor("#1B3A6B")
WHITE = colors.white
GREY_TEXT = colors.HexColor("#444444")
title_style = ParagraphStyle("Title", fontSize=20, fontName="Helvetica-Bold",
textColor=SAFFRON, alignment=TA_CENTER, spaceAfter=4)
subtitle_style = ParagraphStyle("Subtitle", fontSize=11, fontName="Helvetica",
textColor=DEEP_GREEN, alignment=TA_CENTER, spaceAfter=2)
header_style = ParagraphStyle("Header", fontSize=13, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_LEFT, spaceAfter=0, spaceBefore=0, leading=18)
header_ref_style = ParagraphStyle("HeaderRef", fontSize=9, fontName="Helvetica-Bold",
textColor=colors.HexColor("#FFE0B2"), alignment=TA_RIGHT)
shloka_style = ParagraphStyle("Shloka", fontSize=10.5, fontName="Helvetica-Oblique",
textColor=DARK_BLUE, alignment=TA_CENTER, spaceAfter=3, leading=16)
transliteration_style = ParagraphStyle("Trans", fontSize=9.5, fontName="Helvetica",
textColor=GREY_TEXT, alignment=TA_CENTER, spaceAfter=3, leading=14)
meaning_style = ParagraphStyle("Meaning", fontSize=9.5, fontName="Helvetica",
textColor=colors.black, alignment=TA_JUSTIFY, spaceAfter=4, leading=14)
section_note_style = ParagraphStyle("SNote", fontSize=9, fontName="Helvetica-Oblique",
textColor=DEEP_GREEN, alignment=TA_LEFT, spaceAfter=2)
abbr_style = ParagraphStyle("abbr", fontSize=8, fontName="Helvetica",
textColor=GREY_TEXT, alignment=TA_CENTER)
disc_style = ParagraphStyle("disc", fontSize=7.5, fontName="Helvetica-Oblique",
textColor=colors.grey, alignment=TA_CENTER)
th_style = ParagraphStyle("th", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE)
def section_header(title, ref):
data = [[Paragraph(title, header_style), Paragraph(ref, header_ref_style)]]
t = Table(data, colWidths=[11.0*cm, 5.0*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DEEP_GREEN),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (0,-1), 10),
("RIGHTPADDING", (-1,0), (-1,-1), 10),
]))
return t
def shloka_card(sanskrit, transliteration, meaning, note=None):
items = []
if sanskrit:
items.append(Paragraph(sanskrit, shloka_style))
if transliteration:
items.append(Paragraph(transliteration, transliteration_style))
items.append(HRFlowable(width="80%", thickness=0.5, color=BORDER, spaceAfter=4))
items.append(Paragraph("<b>Meaning:</b> " + meaning, meaning_style))
if note:
items.append(Paragraph("<i>Note: " + note + "</i>", section_note_style))
inner = Table([[item] for item in items], colWidths=[15.4*cm])
inner.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), LIGHT_TAN),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 2),
("LEFTPADDING", (0,0), (-1,-1), 12),
("RIGHTPADDING", (0,0), (-1,-1), 12),
]))
outer = Table([[inner]], colWidths=[15.6*cm])
outer.setStyle(TableStyle([
("BOX", (0,0), (-1,-1), 1.2, BORDER),
("BACKGROUND", (0,0), (-1,-1), LIGHT_TAN),
("TOPPADDING", (0,0), (-1,-1), 0),
("BOTTOMPADDING", (0,0), (-1,-1), 0),
("LEFTPADDING", (0,0), (-1,-1), 0),
("RIGHTPADDING", (0,0), (-1,-1), 0),
]))
return outer
story = []
# TITLE
title_table = Table([
[Paragraph("Shashtika Shali Sweda", title_style)],
[Paragraph("Shlokas Quick Reference for Ayurveda Students", subtitle_style)],
], colWidths=[15.6*cm])
title_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), colors.HexColor("#FFF3E0")),
("BOX", (0,0), (-1,-1), 2, SAFFRON),
("TOPPADDING", (0,0), (0,0), 10),
("BOTTOMPADDING", (0,-1), (-1,-1), 10),
("TOPPADDING", (0,1), (-1,1), 0),
]))
story.append(title_table)
story.append(Spacer(1, 0.35*cm))
# SHLOKA 1
story.append(KeepTogether([
section_header("1. Definition of Swedana", "Ch. Su.Stha. 22/12"),
Spacer(1, 0.15*cm),
shloka_card(
"stambha gaurava sheetaghnam | swedanam sweda kaarakam ||",
"(Charaka Samhita, Sutra Sthana 22/12)",
"That which relieves Stambha (stiffness), Gaurava (heaviness) and Sheeta (cold sensation), and which induces Sweda (perspiration), is called Swedana.",
"Foundational definition of all Sweda therapies in Ayurveda."
),
Spacer(1, 0.3*cm),
]))
# SHLOKA 2
story.append(KeepTogether([
section_header("2. Pinda Sweda Procedure & Classification", "Ch. Su. 14/16-19 | A.H. Su. 17/21-24"),
Spacer(1, 0.15*cm),
shloka_card(
"Shashtika Shali Pinda Sweda — Snigdha Sagni Pinda Sweda",
"(A.H. Sutra Sthana 17/21-24 | Charaka Sutra Sthana 14/16-19)",
"Rice (Shashtika Shali) is cooked in a decoction of Bala (Sida cordifolia) with milk. Cooked rice is tied into boluses (Pinda) in cloth. Warm boluses (~45-48 deg C) are applied to the body, simultaneously providing Snehana (oleation), Swedana (sudation) and Brimhana (nourishment).",
"Also known as Njavara Kizhi in Kerala. Classified as Snigdha + Sagni + Pinda Sweda."
),
Spacer(1, 0.3*cm),
]))
# SHLOKA 3
story.append(KeepTogether([
section_header("3. Samyak Swinna Lakshana (Proper Sudation)", "Ch. Su.Stha. 14/15"),
Spacer(1, 0.15*cm),
shloka_card(
"sheeta-shula-vyuparame stambha-gaurava-nigrahe |\nsanjate mardave swede svinnamityabhidheeyate ||",
"(Charaka Samhita, Sutra Sthana 14/15)",
"When cold sensation and pain disappear, stiffness and heaviness are relieved, and softness along with perspiration appear — this is Samyak Svinna (properly sudated).",
"Clinical checkpoint: Stop sweda at this point for optimal therapeutic results."
),
Spacer(1, 0.3*cm),
]))
# SHLOKA 4
story.append(KeepTogether([
section_header("4. Samyak Swinna Lakshana (Proper Sudation)", "Su. Chi.Stha. 32/25"),
Spacer(1, 0.15*cm),
shloka_card(
"sweda-sravo vyadhi-haani laghutvan sheetadatvam |\nmardavam chaturasya samyak-svinnasya lakshanam ||",
"(Sushruta Samhita, Chikitsa Sthana 32/25)",
"Flow of sweat, relief from disease, lightness of body, disappearance of cold sensation, and softness of the body — these are the signs of proper sudation per Sushruta.",
"Sushruta's 5 signs: sweat flow, disease relief, lightness, absence of cold, body softness."
),
Spacer(1, 0.3*cm),
]))
# SHLOKA 5
story.append(KeepTogether([
section_header("5. Aswinna Lakshana (Inadequate Sudation)", "Ch. Su.Stha. 14 — Chakrapani"),
Spacer(1, 0.15*cm),
shloka_card(
None,
"(Charaka Samhita Su. 14, Chakrapani commentary)",
"Signs of insufficient sudation (Ayoga of Sweda): Persistence of cold and pain (Sheeta-shula anupurama), continued stiffness (Stambha), heaviness (Gaurava), lack of softness (Amardava), absence of sweat (Aswedam), and no relief from disease (Vyadhi anupashamam).",
"All 5 signs of Samyak Swinna are absent — treatment must be repeated or intensified."
),
Spacer(1, 0.3*cm),
]))
# SHLOKA 6
story.append(KeepTogether([
section_header("6. Atiswinna Lakshana (Excessive Sudation)", "Su. Chi.Stha. 32/25-26"),
Spacer(1, 0.15*cm),
shloka_card(
"vata-pitta-prakopashcha murcha daha-trishna-jvara |\nbhrantih shvasa-anga-sadashcha atisvinnasya lakshanam ||",
"(Sushruta Samhita, Chikitsa Sthana 32/25-26)",
"Aggravation of Vata and Pitta, fainting (Murcha), burning sensation (Daha), excessive thirst (Trishna), fever (Jvara), confusion (Bhranti), dyspnoea (Shvasa), and body exhaustion (Anga-sada) are signs of excessive sudation.",
"Atiyoga of Sweda: Stop treatment immediately; administer Pitta-pacifying, cooling measures."
),
Spacer(1, 0.3*cm),
]))
# SHLOKA 7
story.append(KeepTogether([
section_header("7. Properties of Shashtika Shali", "A.H. Su.Stha. Ch. 6 (Ahara Varga)"),
Spacer(1, 0.15*cm),
shloka_card(
"snigdho grahi laghuh svaadus tridoshaghna sthiro himah |\nshashtikah shreshthato dhaanya gaura asita-gauratah ||",
"(Ashtanga Hridayam, Sutra Sthana Ch. 6)",
"Shashtika rice is: Snigdha (unctuous), Grahi (absorbent/binding), Laghu (light to digest), Svadu (sweet taste), Tridoshaghna (pacifies all three Doshas), Sthira (gives stability and strength to tissues), Hima (coolant). Two varieties: Gaura (white) and Asita-gaura (blackish-white).",
"Shashtika matures in 60 days. It is superior (Shreshtha) among all Vrihi (paddy) varieties — hence ideal for Brimhana Chikitsa."
),
Spacer(1, 0.3*cm),
]))
# SUMMARY TABLE
story.append(section_header("Quick Reference Summary Table", ""))
story.append(Spacer(1, 0.15*cm))
table_data = [
[Paragraph("<b>Shloka Topic</b>", th_style),
Paragraph("<b>Classical Text</b>", th_style),
Paragraph("<b>Reference</b>", th_style)],
["Definition of Swedana", "Charaka Samhita", "Su.Stha. 22/12"],
["Pinda Sweda procedure", "Charaka Samhita", "Su.Stha. 14/16-19"],
["Pinda Sweda classification", "Ashtanga Hridayam", "Su.Stha. 17/21-24"],
["Samyak Swinna Lakshana", "Charaka Samhita", "Su.Stha. 14/15"],
["Samyak Swinna Lakshana", "Sushruta Samhita", "Chi.Stha. 32/25"],
["Aswinna Lakshana", "Charaka Samhita", "Su.Stha. 14 (Chakrapani)"],
["Atiswinna Lakshana", "Sushruta Samhita", "Chi.Stha. 32/25-26"],
["Properties of Shashtika Shali", "Ashtanga Hridayam", "Su.Stha. Ch. 6"],
]
ref_table = Table(table_data, colWidths=[6.2*cm, 5.0*cm, 4.4*cm])
ref_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DEEP_GREEN),
("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, colors.HexColor("#F0F8F0")]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 9),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
("BOX", (0,0), (-1,-1), 1, BORDER),
("INNERGRID", (0,0), (-1,-1), 0.5, BORDER),
("TEXTCOLOR", (0,1), (-1,-1), colors.black),
]))
story.append(ref_table)
story.append(Spacer(1, 0.4*cm))
# FOOTER
story.append(HRFlowable(width="100%", thickness=1, color=SAFFRON, spaceAfter=6))
story.append(Paragraph(
"Abbreviations: Su.Stha. = Sutra Sthana | Chi.Stha. = Chikitsa Sthana | "
"A.H. = Ashtanga Hridayam | Ch. = Charaka Samhita | Su. = Sushruta Samhita",
abbr_style
))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"For study purposes only. Always refer to original classical texts for clinical use.",
disc_style
))
doc.build(story)
print("PDF created:", OUTPUT)
python3 /home/daytona/workspace/ssps-pdf/make_pdf.py
Shashtika Shali Sweda Shlokas
PDF Document · PDF
| # | Content |
|---|---|
| 1 | Definition of Swedana — Ch. Su. 22/12 |
| 2 | Pinda Sweda Procedure & Classification — Ch. Su. 14/16-19 + A.H. Su. 17/21-24 |
| 3 | Samyak Swinna Lakshana — Ch. Su. 14/15 |
| 4 | Samyak Swinna Lakshana — Su. Chi. 32/25 |
| 5 | Aswinna Lakshana — Ch. Su. 14 (Chakrapani) |
| 6 | Atiswinna Lakshana — Su. Chi. 32/25-26 |
| 7 | Properties of Shashtika Shali — A.H. Su. Ch. 6 |
| + | Quick Reference Summary Table |
Patra potli sweda and shashtik shali pind sweda
पत्र पिण्ड स्वेद: — पत्राणि औषधीयानि तैलेन भृष्टानि पोटलीषु बद्ध्वा स्वेदनम्। Patra Pinda Sweda — Patraani aushadheeyaani tailena bhrshtaani potalishu baddhva svedanam।
एरण्ड निर्गुण्डी धत्तूर अर्क तगर शिग्रु पत्राणि। Eranda, Nirgundi, Dhattura, Arka, Tagara, Shigru patraani।
स्तम्भगौरवशीतघ्नं स्वेदनं स्वेदकारकम्। Stambha gaurava sheetaghnam swedanam sweda kaarakam।
संधिशूलं गृध्रसी च कटिग्रह अर्दित पक्षवध। Sandhishoola, Gridhrasi, Katigrah, Ardita, Pakshavadha।
शीतशूलव्युपरमे स्तम्भगौरवनिग्रहे। संजाते मार्दवे स्वेदे स्विन्नमित्यभिधीयते।। Sheeta-shula vyuparame stambha-gaurava-nigrahe। Sanjate mardave swede svinnamityabhidheeyate।।
वातपित्तप्रकोपश्च मूर्च्छा दाहस्तृषा ज्वरः। भ्रान्तिः श्वासांगसादश्च अतिस्विन्नस्य लक्षणम्।। Vatapittaprakopashcha murcha daha-trishna-jvarah। Bhrantih shvasa-anga-sadashcha atisvinnasya lakshanam।।
स्निग्धो ग्राही लघुः स्वादुस्त्रिदोषघ्नः स्थिरो हिमः। षष्टिकः श्रेष्ठतो धान्यः गौरासितगौरतः।। Snigdho grahi laghuh svaadus tridoshaghna sthiro himah। Shashtikah shreshthato dhaanya gaura asita-gauratah।।
षष्टिकशाल्यन्नं बलामूलकषायसिद्धं क्षीरेण सह पक्त्वा पिण्डान् बद्ध्वा स्वेदयेत्। Shashtika-shali annam Bala-mula-kashaya-siddham kshirena saha paktva pindan baddhva svedayet।
षष्टिकं गोधूमो मुद्गो मांसं घृतं च बृंहणम्। Shashtikam godhuma mudgo mamsam ghritam cha brimhanam।
स्वेदस्रावो व्याधिहानिर्लघुत्वं शीतादातत्वं मार्दवं च। सम्यक्स्विन्नस्य लक्षणम्।। Sweda-sravo vyadhi-haani laghutvan sheetadatvam mardavam cha। Samyak-svinnasya lakshanam।।
अर्दित पक्षवध मन्याग्रह सर्वांगवात। अपस्मार मूढगर्भ बालानाम् बलवर्धनम्।। Ardita, Pakshavadha, Manyagraha, Sarvangavata, Apasmara, Moodagarbha, children's strength building.
| Feature | Patra Pinda Sweda | Shashtika Shali Pinda Sweda |
|---|---|---|
| Material | Medicinal leaves + oil | Shashtika rice + milk + Bala kwath |
| Nature | Ruksha/Snigdha (based on leaves) | Snigdha (unctuous) + Brimhana |
| Dosha | Vata-Kapha shamaka | Vata shamaka + nourishing |
| Action | Pain relief, anti-inflammatory | Strength, nourishment, nerve tonic |
| Type | Sagni Snigdha Pinda Sweda | Sagni Snigdha Pinda Sweda |
| Best for | Sandhivata, Gridhrasi, Katigrah | Pakshavadha, Cerebral palsy, wasting |
| Ref | A.H. Su. 17 / Ch. Su. 14 | A.H. Su. 17 / Ch. Su. 14 |
| Shloka | Text | Ref |
|---|---|---|
| Definition of Sweda | Charaka Samhita | Su.Stha. 22/12 |
| Samyak Swinna | Charaka Samhita | Su.Stha. 14/15 |
| Samyak Swinna | Sushruta Samhita | Chi.Stha. 32/25 |
| Aswinna Lakshana | Ch. Su. 14 | Chakrapani |
| Atiswinna Lakshana | Sushruta Samhita | Chi.Stha. 32/25-26 |
| Pinda Sweda method | Ashtanga Hridayam | Su.Stha. 17/21-24 |
vaman - in management of tamak shwas (bronchial Asthma)
प्रतिलोमं च वायुः स्यात् घुर्घुरकं सशब्दश्वासम्। तमकः प्रतमश्चैव श्लेष्मसम्भवलक्षणः।। Pratilomam cha vayuh syat ghurghurakam sashwasam। Tamakah pratamashchaiva shleshmabhava lakshanah।।
प्राणवहस्रोतसि विकृते श्लेष्मेण सह वायुः प्रतिलोमगतिः। Pranavaha srotasi vikrite shleshmena saha vayuh pratiloma gatih।
घुर्घुरकं विशेषेण रात्रौ च प्रतमश्चैव। शीतद्वेषः प्रसेकश्च पीनसश्च विशेषतः।। Ghurghurakam visheshena ratrau cha pratamashchaiva। Sheetadvesh prasekashcha pinasashcha visheshatah।।
श्वासे कासे वमनं श्रेष्ठं कफे चोर्ध्वभागे स्थिते। Shwase kase vamanam shreshtham kaphe cha urdhvabhage sthite।
तमके कफसम्भवे वमनं हितम्। Tamake kaphasambhave vamanam hitam।
मदनफलसिद्धं क्षीरं वमनार्थं प्रयोजयेत्। Madanaphala siddham kshiram vamanartham prayojayet।
यष्टीमधु मदनफल वचा सैन्धव एला। वमनार्थं श्वासकासे योज्यम्।। Yashtimadhu, Madanaphala, Vacha, Saindhava, Ela — vamanartham shwas-kase yojyam।।
स्नेहनं स्वेदनं चैव पूर्वकर्म प्रचक्षते। Snehanam svedanam chaiva poorvakarma prachakshate।
व्योषसिद्धं घृतं पाययेत् शोधनार्थम्। Vyosha-siddham ghritam payayet shodhanaartham।
वमनार्थी योग्यः स्निग्धः स्विन्नश्च वमनौषधं पिबेत्। Vamanarthi yogyah snigdhah svinnashcha vamanoushadham pibet।
पित्तदर्शनं वमने सम्यग्वान्तस्य लक्षणम्। लघुत्वं हृदये शुद्धिः श्वासस्य च निवृत्तिः।। Pittadarshanam vamane samyagvaantasya lakshanam। Laghutvan hridaye shuddhi shwasasya cha nivrittih।।
अष्टौ वेगाः सम्यग्वामनं, षट् मध्यमं, चत्वारो हीनम्। Ashtau vegah samyag-vamanam, shat madhyamam, chatvaro heenam।
मूर्च्छा भ्रमः तृष्णा दाहः क्लमः अतिवामने। Murcha bhramah trishna dahah klamah ativamane।
वमनानन्तरं क्षुत्तृष्णे त्यक्त्वा लघ्वाहारमाचरेत्। Vamanananntaram ksuttrishne tyaktva laghvaahaaraamaacharet।
अति कृश अति वृद्ध बाल गर्भिणी हृद्रोगे वमनं वर्जयेत्। Ati krishna, ati vriddha, bala, garbhini, hridroge vamanam varjayet।
| Topic | Shloka Theme | Text | Reference |
|---|---|---|---|
| Tamaka Shwasa definition | Ghurghuraka, Pratiloma Vata | Ch. Chi. | 17/55-56 |
| Samprapti | Pranavaha srotas, Kapha-Vata | Ch. Chi. | 17/54 |
| Vamana as Shreshthatama | Primary Rx in Shwasa-Kasa | Ch. Chi. | 17/63 |
| Vamana dravyas | Madanaphala, Yashtimadhu | Ch. Kalpa | 1-2 |
| Poorvakarma | Snehana + Swedana | Ch. Su. | 15/3 |
| Snehapana yoga | Vyosha-siddha Ghrita | A.H. Chi. | 4 |
| Samyak Vamana | Pitta darshana, 8 vegas | Ch. Su. | 15/22-23 |
| Atiyoga Vamana | Murcha, Bhrama, Daha | Ch. Su. | 15/25 |
| Samsarjana Krama | Peya → Mamsarasa | Ch. Su. | 15/30-32 |
| Contraindications | Bala, Vriddha, Garbhini | Ch. Su. | 15/12-13 |
Abbreviations: Ch. = Charaka Samhita | A.H. = Ashtanga Hridayam | Su. = Sutra Sthana | Chi. = Chikitsa Sthana | Kalpa = Kalpa Sthana
Vaman -management of tamak shwas (bronchial asthma) introduction of vaman definition with Classical references vaman types with different acharyas reference tamak shawas introduction with definition with reference samprapti of tamak shawas tamak shwas me vaman kyu with references ayurvedic and morden management of tamak shwas compilation covered with all points
Vamana definition types Charaka Sushruta Vagbhata classical shloka reference Panchakarma
Tamaka Shwasa samprapti definition shloka Charaka Samhita bronchial asthma Ayurveda classical reference
Tamaka Shwasa modern management bronchial asthma Ayurvedic treatment vamana clinical study
https://pmc.ncbi.nlm.nih.gov/articles/PMC5954254
~/ssps-pdf/vaman_tamakshwas.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, HRFlowable, KeepTogether, PageBreak)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY, TA_RIGHT
OUTPUT = "/home/daytona/workspace/ssps-pdf/Vamana_Tamaka_Shwasa_Complete.pdf"
W, H = A4
# ── Colour Palette ──────────────────────────────────────────────
SAFFRON = colors.HexColor("#C0392B")
DEEP_GREEN = colors.HexColor("#1A5C2A")
DARK_BLUE = colors.HexColor("#1B3A6B")
GOLD = colors.HexColor("#B8860B")
LIGHT_TAN = colors.HexColor("#FFF8EE")
LIGHT_BLUE = colors.HexColor("#EBF2FF")
LIGHT_GREEN= colors.HexColor("#F0F8F0")
BORDER = colors.HexColor("#C8A96E")
BLUE_BG = colors.HexColor("#1B3A6B")
WHITE = colors.white
GREY_TEXT = colors.HexColor("#333333")
ORANGE_BG = colors.HexColor("#FFF3E0")
ORANGE_BORDER = colors.HexColor("#D4500A")
# ── Styles ───────────────────────────────────────────────────────
def S(name, **kw):
defaults = dict(fontName="Helvetica", fontSize=10, textColor=GREY_TEXT,
leading=14, spaceAfter=4)
defaults.update(kw)
return ParagraphStyle(name, **defaults)
TITLE_S = S("title", fontSize=22, fontName="Helvetica-Bold", textColor=SAFFRON,
alignment=TA_CENTER, spaceAfter=2, leading=28)
SUBTITLE_S = S("subtitle", fontSize=12, fontName="Helvetica", textColor=DARK_BLUE,
alignment=TA_CENTER, spaceAfter=4)
CH_HDR_S = S("chdr", fontSize=14, fontName="Helvetica-Bold", textColor=WHITE,
alignment=TA_LEFT, leading=20)
CH_REF_S = S("chref", fontSize=9, fontName="Helvetica-Bold", textColor=colors.HexColor("#FFE0B2"),
alignment=TA_RIGHT)
SEC_HDR_S = S("sechdr", fontSize=11, fontName="Helvetica-Bold", textColor=DARK_BLUE,
alignment=TA_LEFT, spaceAfter=3)
SHLOKA_S = S("shloka", fontSize=10.5, fontName="Helvetica-Oblique", textColor=DARK_BLUE,
alignment=TA_CENTER, leading=16, spaceAfter=2)
TRANS_S = S("trans", fontSize=9.5, fontName="Helvetica", textColor=GREY_TEXT,
alignment=TA_CENTER, leading=14, spaceAfter=2)
MEAN_S = S("mean", fontSize=9.5, fontName="Helvetica", textColor=colors.black,
alignment=TA_JUSTIFY, leading=14, spaceAfter=3)
NOTE_S = S("note", fontSize=9, fontName="Helvetica-Oblique", textColor=DEEP_GREEN,
alignment=TA_LEFT, spaceAfter=2)
BODY_S = S("body", fontSize=10, fontName="Helvetica", textColor=GREY_TEXT,
alignment=TA_JUSTIFY, leading=15, spaceAfter=4)
BULLET_S = S("bullet",fontSize=10, fontName="Helvetica", textColor=GREY_TEXT,
alignment=TA_LEFT, leading=14, spaceAfter=2, leftIndent=14)
TH_S = S("th", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE)
ABBR_S = S("abbr", fontSize=8, fontName="Helvetica", textColor=GREY_TEXT,
alignment=TA_CENTER)
DISC_S = S("disc", fontSize=7.5,fontName="Helvetica-Oblique",textColor=colors.grey,
alignment=TA_CENTER)
PAGE_HDR_S = S("pagehdr",fontSize=8, fontName="Helvetica-Oblique",textColor=colors.grey,
alignment=TA_RIGHT)
CW = 15.6*cm # content width
# ── Helpers ──────────────────────────────────────────────────────
def chapter_header(num, title, ref=""):
left = Paragraph(f"{num}. {title}", CH_HDR_S)
right = Paragraph(ref, CH_REF_S)
t = Table([[left, right]], colWidths=[10.5*cm, 5.1*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), DARK_BLUE),
("TOPPADDING", (0,0),(-1,-1), 8),
("BOTTOMPADDING", (0,0),(-1,-1), 8),
("LEFTPADDING", (0,0),(0,-1), 12),
("RIGHTPADDING", (-1,0),(-1,-1), 10),
]))
return t
def sub_header(title):
t = Table([[Paragraph(title, S("sh2", fontSize=11, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_LEFT, leading=16))]], colWidths=[CW])
t.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), DEEP_GREEN),
("TOPPADDING", (0,0),(-1,-1), 5),
("BOTTOMPADDING", (0,0),(-1,-1), 5),
("LEFTPADDING", (0,0),(-1,-1), 10),
]))
return t
def shloka_box(skt, trans, meaning, note=None, bg=LIGHT_TAN, border_color=BORDER):
rows = []
if skt:
rows.append([Paragraph(skt, SHLOKA_S)])
if trans:
rows.append([Paragraph(trans, TRANS_S)])
rows.append([HRFlowable(width="70%", thickness=0.5, color=border_color, spaceAfter=4)])
rows.append([Paragraph("<b>Meaning:</b> " + meaning, MEAN_S)])
if note:
rows.append([Paragraph("<i>Note: " + note + "</i>", NOTE_S)])
inner = Table(rows, colWidths=[15.2*cm])
inner.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), bg),
("TOPPADDING", (0,0),(-1,-1), 3),
("BOTTOMPADDING", (0,0),(-1,-1), 2),
("LEFTPADDING", (0,0),(-1,-1), 12),
("RIGHTPADDING", (0,0),(-1,-1), 12),
]))
outer = Table([[inner]], colWidths=[CW])
outer.setStyle(TableStyle([
("BOX", (0,0),(-1,-1), 1.2, border_color),
("BACKGROUND", (0,0),(-1,-1), bg),
("TOPPADDING", (0,0),(-1,-1), 0),
("BOTTOMPADDING", (0,0),(-1,-1), 0),
("LEFTPADDING", (0,0),(-1,-1), 0),
("RIGHTPADDING", (0,0),(-1,-1), 0),
]))
return outer
def info_box(text, bg=LIGHT_BLUE, border=DARK_BLUE):
t = Table([[Paragraph(text, BODY_S)]], colWidths=[CW])
t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,-1), bg),
("BOX",(0,0),(-1,-1),1,border),
("TOPPADDING",(0,0),(-1,-1),8),
("BOTTOMPADDING",(0,0),(-1,-1),8),
("LEFTPADDING",(0,0),(-1,-1),12),
("RIGHTPADDING",(0,0),(-1,-1),12),
]))
return t
def bullet(text):
return Paragraph(f"• {text}", BULLET_S)
def sp(h=0.25): return Spacer(1, h*cm)
# ── Build Story ──────────────────────────────────────────────────
story = []
# ════════════════════════════════════════════════════════
# COVER / TITLE
# ════════════════════════════════════════════════════════
cover = Table([
[Paragraph("Vamana Karma", TITLE_S)],
[Paragraph("in Management of Tamaka Shwasa (Bronchial Asthma)", SUBTITLE_S)],
[Paragraph("A Complete Ayurvedic Clinical Reference with Classical Shlokas",
S("cv3", fontSize=10, fontName="Helvetica-Oblique", textColor=GOLD,
alignment=TA_CENTER))],
], colWidths=[CW])
cover.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), ORANGE_BG),
("BOX", (0,0),(-1,-1), 2.5, ORANGE_BORDER),
("TOPPADDING", (0,0),(0,0), 14),
("BOTTOMPADDING", (0,-1),(-1,-1), 14),
("TOPPADDING", (0,1),(-1,2), 2),
]))
story += [cover, sp(0.4)]
# ════════════════════════════════════════════════════════
# PART I — VAMANA KARMA
# ════════════════════════════════════════════════════════
story += [
chapter_header("PART I", "VAMANA KARMA — Introduction & Definition", "Panchakarma"),
sp(0.2),
]
# 1.1 Derivation
story += [
sub_header("1.1 Etymology (Vyutpatti)"),
sp(0.15),
info_box(
"<b>Sanskrit root:</b> 'VAM' (वम्) = ejection, expelling, oozing, stream.<br/>"
"Vama + Lyut pratyaya = VAMANA<br/><br/>"
"<b>Four meanings of 'Vam':</b><br/>"
"1. Mardana — destroying/crushing<br/>"
"2. Chhardana — vomiting/emesis<br/>"
"3. Nissarana — expelling / going out<br/>"
"4. Abhishyanda — movement / oozing / flowing"
),
sp(0.25),
]
# 1.2 Definition — Charaka
story += [
sub_header("1.2 Definition of Vamana — Classical References"),
sp(0.15),
KeepTogether([
Paragraph("<b>A. Charaka Samhita (Siddhi Sthana 2/4-5)</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"vamanam naama kafasthaanat aamashaayaat kafaadinaam |\nurdhvamaargena nishkaasanam yat tad vamanam ||",
"(Charaka Samhita, Siddhi Sthana 2/4-5)",
"Vamana is defined as the elimination of Kapha and other Doshas from their site of accumulation (Amasaya — stomach/Kapha sthana) through the upward route (mouth/Urdhvamarga). This therapeutic procedure specifically targets the upper part of the body.",
"This is the most cited definition of Vamana in Ayurvedic classics."
),
sp(0.25),
]),
KeepTogether([
Paragraph("<b>B. Charaka Samhita (Sutra Sthana 25/40)</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"urdhvabhagaharan dravyam vamanam tat prakirtitam |",
"(Charaka Samhita, Sutra Sthana 25/40)",
"That which eliminates/expels the Doshas through the Urdhvabhaga (upper orifice — mouth) is called Vamana.",
"This defines Vamana by its route of drug action — upward expulsion."
),
sp(0.25),
]),
KeepTogether([
Paragraph("<b>C. Sushruta Samhita (Chikitsa Sthana 33/3)</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"urddhwam dosham hareyastam vamanam iti smritam |",
"(Sushruta Samhita, Chikitsa Sthana 33/3)",
"That therapeutic procedure which eliminates the Doshas upward (through the oral route) is known as Vamana. Sushruta emphasizes the upward direction of Dosha expulsion.",
"Sushruta's definition is concise and route-specific."
),
sp(0.25),
]),
KeepTogether([
Paragraph("<b>D. Ashtanga Hridayam — Vagbhata (Sutra Sthana 18/1)</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"urdhvabhagaharan dravyam sneha swedau tatpoorvakau |\nvamanam shodhananam cha prathamam karma chochyate ||",
"(Ashtanga Hridayam, Sutra Sthana 18/1)",
"Vagbhata defines Vamana as the first among Shodhana (purificatory) therapies, which expels Doshas through the upper route, preceded by Snehana (oleation) and Swedana (sudation) as Poorvakarma.",
"Vagbhata places Vamana as the FIRST and foremost among all five Panchakarma procedures."
),
sp(0.25),
]),
KeepTogether([
Paragraph("<b>E. Ashtanga Sangraha — Vagbhata (Sutra Sthana 27/1)</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"urdhwam apavartanam doshanam vamanam smrtam |",
"(Ashtanga Sangraha, Sutra Sthana 27/1)",
"Vamana is the upward expulsion of vitiated Doshas from the body.",
"This compact definition from Ashtanga Sangraha emphasizes the directional aspect."
),
sp(0.3),
]),
]
# ════════════════════════════════════════════════════════
# 1.3 TYPES OF VAMANA
# ════════════════════════════════════════════════════════
story += [
chapter_header("PART I", "Types of Vamana — Acharya-wise Classification", "Brihattrayi"),
sp(0.2),
sub_header("2.1 Types according to Acharya Charaka"),
sp(0.15),
]
types_data_ch = [
[Paragraph("<b>Type</b>", TH_S), Paragraph("<b>Description</b>", TH_S), Paragraph("<b>Reference</b>", TH_S)],
["Sadyovamana\n(Instant emesis)", "Administered immediately in acute conditions like poisoning (Visha), Ama-Ajeerna (acute indigestion), Madatyaya (alcohol toxicity). No Poorvakarma required.", "Ch. Chi. Sthana 23/45"],
["Kramika Vamana\n(Classical emesis)", "Done after proper Poorvakarma (Snehana + Swedana). Prescribed for chronic Kaphaja disorders including Shwasa, Kasa, Kustha, Medoroga.", "Ch. Kalpa Sthana 1/4"],
["Vasantika Vamana\n(Seasonal emesis)", "Administered in spring (Vasanta Ritu) for preventive health and Kapha elimination accumulated during Shishira Ritu.", "Ch. Su. Sthana 6/26"],
["Nitya Vamana\n(Daily emesis)", "For specific chronic conditions requiring daily Kapha elimination.", "Ch. Siddhi Sthana 2"],
]
types_ch = Table(types_data_ch, colWidths=[3.8*cm, 8.4*cm, 3.4*cm])
types_ch.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,0), DARK_BLUE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, LIGHT_TAN]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),
("FONTSIZE",(0,1),(-1,-1),9),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),
("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [types_ch, sp(0.25)]
story += [
sub_header("2.2 Types according to Acharya Sushruta"),
sp(0.15),
]
sush_types = [
[Paragraph("<b>Type</b>", TH_S), Paragraph("<b>Basis</b>", TH_S), Paragraph("<b>Reference</b>", TH_S)],
["Vamana (Emesis)","Expels Doshas upward — Urdhvabhaga Shodhana","Su. Chi. 33"],
["Sadyovamana","Instant emesis for acute toxicity, poisoning","Su. Chi. 23/45"],
["Dravyabhuta\n(Drug-based)","Using Vamaka Dravya (emetic drugs) like Madanaphala","Su. Kalpa"],
["Adravyabhuta\n(Non-drug)","Using physical stimuli — finger or feather to induce vomiting","Su. Chi."],
]
sush_t = Table(sush_types, colWidths=[3.8*cm, 8.4*cm, 3.4*cm])
sush_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),DEEP_GREEN),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, LIGHT_GREEN]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [sush_t, sp(0.25)]
story += [
sub_header("2.3 Types according to Acharya Vagbhata (A.H. Su. 18)"),
sp(0.15),
]
vag_types = [
[Paragraph("<b>Type</b>", TH_S), Paragraph("<b>Description</b>", TH_S), Paragraph("<b>Reference</b>", TH_S)],
["Vamana\n(Shodhana-type)","Classical purificatory emesis with Poorvakarma — for chronic Kapha disorders","A.H. Su. 18/1"],
["Sadyovamana","Emergency emesis — no Poorvakarma; used in poisoning, Ama conditions","A.H. Chi."],
["Vasantika Vamana","Seasonal therapeutic emesis in Vasanta Ritu (Spring)","A.H. Su. 3/17"],
["Ghreya Vamana","Emesis induced by nasal administration (inhalation route)","A.H. Su."],
["Punah Punah Vamana","Repeated emesis for deep-seated Kapha disorders","A.H. Chi."],
]
vag_t = Table(vag_types, colWidths=[3.8*cm, 8.4*cm, 3.4*cm])
vag_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),SAFFRON),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, ORANGE_BG]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [vag_t, sp(0.3)]
# Comparison table of definitions
story += [
sub_header("2.4 Comparative Definition of Vamana — Three Acharyas"),
sp(0.15),
]
comp = [
[Paragraph("<b>Acharya</b>", TH_S), Paragraph("<b>Definition Emphasis</b>", TH_S), Paragraph("<b>Reference</b>", TH_S)],
["Charaka","Elimination of Kapha from Amasaya via Urdhvamarga (stomach/upward route)","Si.Stha. 2/4-5"],
["Sushruta","Upward expulsion of Doshas — route-specific definition","Chi.Stha. 33/3"],
["Vagbhata","First Shodhana therapy; emphasizes Poorvakarma (Snehana + Swedana) prerequisite","Su.Stha. 18/1"],
]
comp_t = Table(comp, colWidths=[3*cm, 9.2*cm, 3.4*cm])
comp_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),DARK_BLUE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LIGHT_BLUE]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9),
("TOPPADDING",(0,0),(-1,-1),6),("BOTTOMPADDING",(0,0),(-1,-1),6),
("LEFTPADDING",(0,0),(-1,-1),8),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [comp_t, sp(0.4)]
# ════════════════════════════════════════════════════════
# PART II — TAMAKA SHWASA
# ════════════════════════════════════════════════════════
story += [
PageBreak(),
chapter_header("PART II", "TAMAKA SHWASA — Introduction & Definition", "Bronchial Asthma"),
sp(0.2),
sub_header("3.1 Introduction to Shwasa Roga"),
sp(0.15),
info_box(
"Shwasa Roga (Respiratory Disorders) is a group of five diseases described in Ayurvedic classics. "
"The word 'Shwasa' is derived from the root 'shvas' meaning to breathe or to hiss. "
"Shwasa is primarily a Pranavaha Srotas Vikara (disease of respiratory channels) with predominance "
"of Vata and Kapha Doshas. The five types are:<br/><br/>"
"<b>1. Maha Shwasa</b> — very severe, life-threatening dyspnoea<br/>"
"<b>2. Urdhva Shwasa</b> — difficulty in expiration; upward breathing<br/>"
"<b>3. Chinna Shwasa</b> — interrupted/irregular breathing<br/>"
"<b>4. Kshudra Shwasa</b> — minor breathing difficulty, easily curable<br/>"
"<b>5. Tamaka Shwasa</b> — correlated with Bronchial Asthma"
),
sp(0.2),
KeepTogether([
Paragraph("<b>Reference for 5 Types of Shwasa:</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"mahashwasa urdhvashwasa chinna kshudra tamakah |\npancha shwasah smritah vaidyair nidaanam teshaam shrinnu ||",
"(Charaka Samhita, Chikitsa Sthana 17/12 | A.H. Nidana Sthana 4/1)",
"Maha Shwasa, Urdhva Shwasa, Chinna Shwasa, Kshudra Shwasa and Tamaka Shwasa — these are the five types of Shwasa as described by the Vaidyas.",
"Ref: Charaka Samhita, Chikitsa Sthana 17/12 | Ashtanga Hridayam, Nidana Sthana 4/1"
),
sp(0.25),
]),
]
# 3.2 Definition of Tamaka Shwasa
story += [
sub_header("3.2 Definition of Tamaka Shwasa"),
sp(0.15),
KeepTogether([
Paragraph("<b>A. Charaka Samhita (Chikitsa Sthana 17/54-56)</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"pranavahani srotamsi pittasthaanam cha dushayam |\ntamako nama so shwasah kaphaatho pratamashcha sah ||",
"(Charaka Samhita, Chikitsa Sthana 17/54-56)",
"Tamaka Shwasa is a disease in which the Pranavaha Srotas (respiratory channels) are vitiated. It originates from Pitta Sthana (small intestine/Amasaya) and is characterized by Kapha dominance. When severe it is called Pratamaka.",
"Pitta Sthana Samudbhava — Tamaka Shwasa originates from the site of Pitta (Amasaya/small intestine)."
),
sp(0.2),
]),
KeepTogether([
Paragraph("<b>B. Key Diagnostic Shloka — Charaka (Chi. 17/55-56)</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"praatilomyam cha vaayu syaat ghurghurakam sa-shabda-shwasam |\ntamakah pratamashchaiva shleshmabhava-lakshanah ||",
"(Charaka Samhita, Chikitsa Sthana 17/55-56)",
"In Tamaka Shwasa: Vata moves in Pratiloma direction (reverse/upward), producing Ghurghuraka (wheeze sound), audible difficult breathing (Sashwasa). These features along with Kapha signs characterize it as Tamaka. When severe, it becomes Pratamaka.",
"Ghurghuraka = wheeze; Pratiloma Vata = obstructed Vata moving in wrong direction."
),
sp(0.2),
]),
KeepTogether([
Paragraph("<b>C. Ashtanga Hridayam — Vagbhata (Nidana Sthana 4/5-6)</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"sheetam anilam abhivaati prativaati cha | visheshato ratrau shoonam mukham trishna prasekah ||",
"(A.H. Nidana Sthana 4/5-6)",
"In Tamaka Shwasa: aggravation from cold air and wind, worse when facing the wind. Specifically worsened at night. There is dryness of mouth, thirst (Trishna) and excessive salivation/mucus (Praseka). The patient finds relief in warm climate.",
"Vagbhata additionally mentions the nocturnal aggravation — directly correlating with nocturnal asthma."
),
sp(0.25),
]),
]
# 3.3 Nidana
story += [
sub_header("3.3 Nidana (Causative Factors) of Tamaka Shwasa"),
sp(0.15),
KeepTogether([
shloka_box(
"rajas dhoomah sheeta-vaata anala-jala-abhishyanda-gram-aushadhah |\natisthoolah ati-krishnah cha nidanam shwasaroge smritam ||",
"(Charaka Samhita, Chikitsa Sthana 17/14-15)",
"Causative factors of Shwasa: Exposure to dust (Raja), smoke (Dhooma), cold wind (Sheeta Vaata), exposure to water/dampness (Jalabhishyanda), consumption of heavy, cold and incompatible foods (Viruddha Ahara), excessive exercise (Ativyayama), suppression of natural urges (Vegadharan), residing in cold/damp areas.",
"Ref: Charaka Samhita, Chikitsa Sthana 17/14-15"
),
sp(0.15),
]),
Paragraph("<b>Specific Nidanas:</b>", SEC_HDR_S),
bullet("Ahara Nidana: Guru (heavy), Sheeta (cold), Viruddha Ahara (incompatible food), excessive Masha, Tila"),
bullet("Vihara Nidana: Ativyayama (excessive exercise), Sheeta sthana nivasa (cold damp living), Ratri Jagarana"),
bullet("Manasika: Chinta (worry), Shoka (grief), Bhaya (fear) — aggravating Vata"),
bullet("Agantuja: Dhuma (smoke), Raja (dust), Vegadharana (suppression of natural urges)"),
sp(0.3),
]
# 3.4 Lakshanas
story += [
sub_header("3.4 Lakshanas (Clinical Features) of Tamaka Shwasa"),
sp(0.15),
KeepTogether([
shloka_box(
"ghurghurakam visheshena ratrau cha pratamashchaiva |\nsheetadveshaha prasekashcha pinasashcha visheshatah ||\nshwasah kaaso moordha-graho mukha-shoshaha trishna-bhramah |",
"(Charaka Samhita, Chikitsa Sthana 17/55-58 | A.H. Ni. 4/5-7)",
"Symptoms: Ghurghuraka (wheezing), worse at night, worse in cold, Praseka (excessive salivation/sputum), Pinasa (rhinitis/sinusitis), Shwasa (dyspnoea with forceful expiration), Kasa (cough), Moordhgraha (head heaviness), Mukha-shosha (dry mouth), Trishna (thirst), Bhrama (giddiness). Patient is comfortable sitting upright (Orthopnoea).",
"Nocturnal aggravation, cold intolerance, orthopnoea directly correlate with Bronchial Asthma features."
),
sp(0.2),
]),
Paragraph("<b>Modern Correlation:</b>", SEC_HDR_S),
info_box(
"<b>Tamaka Shwasa = Bronchial Asthma</b><br/><br/>"
"Ghurghuraka = Wheezing (polyphonic wheeze)<br/>"
"Shwasa (Pratiloma Vata) = Bronchospasm / Expiratory dyspnoea<br/>"
"Pinasa = Allergic rhinitis (comorbidity)<br/>"
"Ratra Vriddhi = Nocturnal asthma (circadian pattern of cortisol)<br/>"
"Sheeta Dwesha = Cold-induced bronchospasm<br/>"
"Kasa = Cough variant asthma / productive cough<br/>"
"Praseka = Excess mucus / hypersecretion",
bg=LIGHT_BLUE, border=DARK_BLUE
),
sp(0.3),
]
# ════════════════════════════════════════════════════════
# PART III — SAMPRAPTI
# ════════════════════════════════════════════════════════
story += [
PageBreak(),
chapter_header("PART III", "Samprapti of Tamaka Shwasa", "Pathogenesis"),
sp(0.2),
sub_header("4.1 Samprapti Shloka"),
sp(0.15),
KeepTogether([
shloka_box(
"praanavahanisrotamsi pittasthanaat samutthitam |\nkaphena saha vaayushcha praatilomagatim vrajet ||\ntato ghurghurakam shwasam tamakam tam vidurbudhah |",
"(Charaka Samhita, Chikitsa Sthana 17/54 | A.H. Nidana 4/3-4)",
"Samprapti: Nidana Sevana (exposure to causative factors) leads to aggravation of Kapha and Vata Doshas. Kapha accumulates in Pranavaha Srotas causing obstruction (Avarodha). Obstructed Vata (Prana Vata) begins moving in Pratiloma direction (Udana/Vyana route). This Pratiloma Vata in Pranavaha Srotas produces Ghurghuraka (wheeze) and Shwasa (dyspnoea) — this is Tamaka Shwasa.",
"Pittasthana (Amasaya) is the Utpatti (origin); Uras (chest) is the Adhisthana (site of manifestation)."
),
sp(0.2),
]),
sub_header("4.2 Samprapti Ghataka (Components of Pathogenesis)"),
sp(0.15),
]
samprapti_data = [
[Paragraph("<b>Component</b>", TH_S), Paragraph("<b>Details</b>", TH_S)],
["Dosha", "Primarily Vata (Prana Vata + Udana Vata) + Kapha (Avalambaka + Kledaka)"],
["Dushya", "Rasa Dhatu, Pranavayu (functional unit)"],
["Srotas", "Pranavaha Srotas (primary), Annavaha Srotas, Udakavaha Srotas"],
["Strotodushti","Sanga (obstruction) + Vimargagamana (abnormal pathway/Pratiloma Vata)"],
["Udbhava Sthana","Pitta Sthana (Amasaya — stomach/small intestine)"],
["Adhisthana","Uras (chest/lungs)"],
["Sanchara Sthana","Pranavaha Srotas, Rasavaha Srotas"],
["Vyakta Sthana","Uras (chest) — site of clinical manifestation"],
["Agni", "Jatharagni Mandya + Pranavayu Dushti"],
["Sadhyasadhyata","Yapya (palliable/chronic) — if new: Sadhya (curable) per Charaka"],
]
sp_t = Table(samprapti_data, colWidths=[4.5*cm, 11.1*cm])
sp_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),DARK_BLUE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LIGHT_BLUE]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9.5),
("TOPPADDING",(0,0),(-1,-1),6),("BOTTOMPADDING",(0,0),(-1,-1),6),
("LEFTPADDING",(0,0),(-1,-1),8),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),("VALIGN",(0,0),(-1,-1),"TOP"),
("FONTNAME",(0,1),(0,-1),"Helvetica-Bold"),
]))
story += [sp_t, sp(0.2)]
# Samprapti flowchart as table
story += [
sub_header("4.3 Samprapti Flow (Step-by-Step)"),
sp(0.15),
]
flow_data = [
[Paragraph("<b>Step</b>", TH_S), Paragraph("<b>Event</b>", TH_S)],
["1. Nidana Sevana", "Exposure to cold, dust, smoke, heavy food, suppression of urges"],
["2. Dosha Prakopa", "Aggravation of Kapha + Vata (especially Prana Vata) in Amasaya"],
["3. Dosha Sanchara", "Vitiated Kapha-Vata travel from Amasaya to Uras (chest) via Pranavaha Srotas"],
["4. Srotavarodha", "Kapha causes Margavarodha (obstruction) in Pranavaha Srotas"],
["5. Vata Pratiloma", "Obstructed Prana Vata begins Pratiloma Gati (reverse/upward movement)"],
["6. Vyakti", "Clinical manifestation: Ghurghuraka, Shwasa, Kasa, Praseka, nocturnal aggravation"],
["7. Bheda", "If untreated: Pratamaka Shwasa (very severe) → Yapya/Asadhya"],
]
flow_t = Table(flow_data, colWidths=[3.8*cm, 11.8*cm])
flow_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),DEEP_GREEN),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LIGHT_GREEN]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9.5),
("TOPPADDING",(0,0),(-1,-1),6),("BOTTOMPADDING",(0,0),(-1,-1),6),
("LEFTPADDING",(0,0),(-1,-1),8),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),("VALIGN",(0,0),(-1,-1),"TOP"),
("FONTNAME",(0,1),(0,-1),"Helvetica-Bold"),
]))
story += [flow_t, sp(0.4)]
# ════════════════════════════════════════════════════════
# PART IV — WHY VAMANA IN TAMAKA SHWASA
# ════════════════════════════════════════════════════════
story += [
PageBreak(),
chapter_header("PART IV", "Tamaka Shwasa Mein Vamana Kyon?", "Rationale & Shlokas"),
sp(0.2),
sub_header("5.1 Vamana — Shreshtha Chikitsa in Shwasa-Kasa"),
sp(0.15),
KeepTogether([
shloka_box(
"shwase kase cha vamanam shreshtham kaphe chordhvabhage sthite |",
"(Charaka Samhita, Chikitsa Sthana 17/63)",
"Vamana is the BEST (Shreshthatama) treatment for Shwasa (dyspnoea/asthma) and Kasa (cough) when Kapha is located in the Urdhvabhaga (upper body — chest/lungs/Uras).",
"Direct classical justification: Kapha is in Uras (upper part) — nearest exit is upward (Urdhvamarga) — hence Vamana is the most logical and effective Shodhana."
),
sp(0.2),
]),
KeepTogether([
shloka_box(
"tamake kaphasambhave vamanam hitam |",
"(Charaka Samhita, Chikitsa Sthana 17/63)",
"In Tamaka Shwasa, which arises from Kapha accumulation, Vamana is specifically beneficial and indicated.",
"This shloka directly prescribes Vamana for Tamaka Shwasa."
),
sp(0.2),
]),
sub_header("5.2 Rationale (Yukti) — Why Vamana in Tamaka Shwasa"),
sp(0.15),
info_box(
"<b>1. Kapha Pradhana Vyadhi:</b> Tamaka Shwasa is primarily a Kapha disorder. Vamana is THE most effective Shodhana for Kapha elimination.<br/><br/>"
"<b>2. Urdhvabhaga Sthiti of Dosha:</b> Vitiated Kapha is located in Uras (chest/lungs = Urdhvabhaga). Nearest route for elimination is upward = Vamana (Urdhvamarga Shodhana).<br/><br/>"
"<b>3. Pranavaha Srotas Shodhana:</b> Vamana clears the Pranavaha Srotas (bronchial passages) of accumulated Kapha, relieving Srotavarodha — the fundamental pathology.<br/><br/>"
"<b>4. Pittasthana Shodhana:</b> Tamaka Shwasa originates from Pitta Sthana (Amasaya). Vamana directly acts on Amasaya — cleaning the source of pathology.<br/><br/>"
"<b>5. Pratiloma Vata Correction:</b> By removing Kapha obstruction through Vamana, the blocked Prana Vata is freed and its normal Anuloma direction is restored.<br/><br/>"
"<b>6. Margavarodha Removal:</b> Vamana removes Kapha blocking Pranavaha Srotas → bronchi open → breathing normalizes.",
bg=LIGHT_GREEN, border=DEEP_GREEN
),
sp(0.2),
KeepTogether([
Paragraph("<b>Supporting Shloka — Urdhvabhaga Shodhana Principle:</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"urdhvagate doshe urdhvam haranam shreshtham |\nadhogate cha adho virechanam sreshtham |",
"(Charaka Samhita, Sutra Sthana 20/19)",
"When Doshas are located in the upper part of the body (Urdhvabhaga), elimination through the upper route (Vamana) is the best treatment. When in the lower part, Virechana (purgation) is best.",
"This is the foundational principle of Panchakarma selection — Tamaka Shwasa fulfills the Urdhvabhaga criterion."
),
sp(0.25),
]),
KeepTogether([
Paragraph("<b>Samshodhana Principle — Charaka (Su. 16/20):</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"shleshmaanam kafajanitam rogam vamanai nashayet kramaat |\nyada tu dosham dooshyam va gatre kupyanti taddwishaha ||",
"(Charaka Samhita, Sutra Sthana 16/20-21)",
"Diseases caused by Kapha should be eliminated through Vamana (therapeutic emesis) in a sequential and methodical way (Krama). When Doshas or vitiated tissues aggravate and accumulate in specific body parts, targeted Shodhana is essential.",
"This is the broad mandate for using Vamana in all Kapha-predominant disorders including Tamaka Shwasa."
),
sp(0.3),
]),
]
# Poorvakarma
story += [
sub_header("5.3 Poorvakarma (Pre-operative Procedures) for Vamana in Tamaka Shwasa"),
sp(0.15),
KeepTogether([
shloka_box(
"snehanam svedanam chaiva poorvakarmeti bhandhavah |\nkaphasthanagatan doshan kledayanti vishodhane ||",
"(Charaka Samhita, Sutra Sthana 15/3 | A.H. Su. 18)",
"Snehana (internal oleation with medicated ghee) and Swedana (fomentation/sudation) together constitute Poorvakarma. They liquefy and mobilize Doshas from their sites (Shakha) back to the Koshtha (gut) for easy elimination by Vamana.",
"Snehana and Swedana are MANDATORY before Vamana — skipping them causes complications (Vyapad)."
),
sp(0.15),
]),
Paragraph("<b>Snehana drug for Tamaka Shwasa:</b>", SEC_HDR_S),
shloka_box(
"vyosha-siddham ghritam payayet shodhanaartham shwasake |",
"(A.H. Chikitsa Sthana 4 | Ch. Chi. 17)",
"Trikatu (Vyosha = Shunthi + Maricha + Pippali) processed Ghrita (clarified butter) is given for Snehapana (internal oleation) before Vamana in Shwasa-Kasa conditions. Trikatu is Kapha-Vata shamaka and enhances Agni.",
"Dose: 30-120 ml daily for 3-7 days until Samyak Snigdha Lakshana appear."
),
sp(0.3),
]
# Vamana Dravyas
story += [
sub_header("5.4 Vamana Dravyas (Emetic Drugs) in Tamaka Shwasa"),
sp(0.15),
]
drug_data = [
[Paragraph("<b>Drug</b>", TH_S), Paragraph("<b>Botanical Name</b>", TH_S), Paragraph("<b>Action</b>", TH_S), Paragraph("<b>Reference</b>", TH_S)],
["Madanaphala","Randia dumetorum","Chief Vamaka dravya — Kapha nissaraka, emetic","Ch. Kalpa 1"],
["Ikshvaku","Lagenaria siceraria","Emetic, expectorant, anti-allergic, Rasayana","A.H. Kalpa"],
["Yashtimadhu","Glycyrrhiza glabra","Kapha nissaraka, soothing to respiratory mucosa","Ch. Kalpa 2"],
["Vacha","Acorus calamus","Kapha-Vata shamaka, bronchodilatory","Ch. Kalpa"],
["Saindhava","Rock salt","Srotoshodhaka, potentiates emetic action","Ch. Kalpa"],
["Pippali","Piper longum","Shwasahara, Kaphagna, Deepana","A.H. Chi. 4"],
["Ela (Cardamom)","Elettaria cardamomum","Shwasahara, Kapha-Vata shamaka","A.H. Kalpa"],
]
drug_t = Table(drug_data, colWidths=[3.0*cm, 4.0*cm, 5.2*cm, 3.4*cm])
drug_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),DARK_BLUE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LIGHT_BLUE]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),6),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [drug_t, sp(0.3)]
# Vamana Vidhi, Vegas, Paschat karma
story += [
sub_header("5.5 Vamana Vidhi, Vegas & Lakshanas"),
sp(0.15),
KeepTogether([
Paragraph("<b>Samyak Vamana Lakshana (Charaka Su. 15/22-23):</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"pittadarshanam vamane samyagvaantasya lakshanam |\nlaghutvan hridaye shuddhi shwasasya cha nivrittih ||",
"(Ch. Su. Sthana 15/22-23)",
"Signs of proper Vamana: Appearance of Pitta (yellow bile) at end of emesis indicates complete Dosha expulsion. Lightness of chest and heart (Laghutva), mental clarity, and relief from dyspnoea (Shwasasya nivritti) confirm successful emesis.",
"The last point — 'Shwasasya nivrittih' — directly confirms the effectiveness of Vamana in Tamaka Shwasa."
),
sp(0.2),
]),
KeepTogether([
Paragraph("<b>Vega Count (Ch. Su. 15/23 | A.H. Su. 18):</b>", SEC_HDR_S),
sp(0.1),
info_box(
"<b>Uttama Vamana (Proper):</b> 8 Vegas (bouts of vomiting) — Samyak Shodhana<br/>"
"<b>Madhyama Vamana (Moderate):</b> 6 Vegas<br/>"
"<b>Heena Vamana (Insufficient):</b> 4 Vegas — needs repeat or dose increase<br/><br/>"
"<b>Ref:</b> Charaka Samhita, Sutra Sthana 15/23 | Ashtanga Hridayam, Sutra Sthana 18"
),
sp(0.2),
]),
KeepTogether([
Paragraph("<b>Atiyoga (Excessive Vamana) — Ch. Su. 15/25:</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"murcha bhramah trishna dahah klamah cha-ativamanasya lakshanam |\nvatapittaprakopashcha shwasa-adhmana-adha-gamanam ||",
"(Charaka Samhita, Sutra Sthana 15/25 | A.H. Su. 18)",
"Signs of excessive Vamana: Fainting (Murcha), giddiness (Bhrama), thirst (Trishna), burning sensation (Daha), exhaustion (Klama), aggravation of Vata-Pitta, dyspnoea, bloating.",
"Action: Immediately stop Vamana; administer Pitta-pacifying cooling measures, glucose fluids."
),
sp(0.2),
]),
KeepTogether([
Paragraph("<b>Samsarjana Krama (Post-Vamana Diet) — Ch. Su. 15/30-32:</b>", SEC_HDR_S),
sp(0.1),
shloka_box(
"vamanananntaram ksuttrishne tyaktva laghvaahaaramaaacharet |\npeya-vilepi-kritayusha-mamsarasa-kramat pachet ||",
"(Charaka Samhita, Sutra Sthana 15/30-32)",
"After Vamana, when hunger and thirst return, progressive diet must be followed: 1. Peya (thin gruel) → 2. Vilepi (thick gruel) → 3. Akrita Yusha (unseasoned soup) → 4. Krita Yusha (seasoned soup) → 5. Mamsarasa (meat soup). Duration: 3-7 days depending on strength of Vamana.",
"Samsarjana Krama is as important as the Vamana procedure itself — essential for Agni recovery."
),
sp(0.3),
]),
]
# ════════════════════════════════════════════════════════
# PART V — AYURVEDIC MANAGEMENT
# ════════════════════════════════════════════════════════
story += [
PageBreak(),
chapter_header("PART V", "Ayurvedic Management of Tamaka Shwasa", "Complete Protocol"),
sp(0.2),
sub_header("6.1 Chikitsa Sutra — Treatment Principles"),
sp(0.15),
KeepTogether([
shloka_box(
"shwase vamanavirechanau snehah swedam cha poojakau |\nkaphavataghna dravyani tatha shwasahara aushadhani ||",
"(Charaka Samhita, Chikitsa Sthana 17/63-65 | A.H. Chi. 4)",
"In Shwasa: Vamana (emesis), Virechana (purgation), Snehana (oleation), Swedana (fomentation) are the primary procedures. Kapha-Vata shamaka and Shwasahara drugs form the basis of Shamana treatment.",
"Treatment follows Shodhana (purification) first, then Shamana (pacification)."
),
sp(0.2),
]),
sub_header("6.2 Shodhana Chikitsa (Purificatory Treatment)"),
sp(0.15),
]
shod_data = [
[Paragraph("<b>Procedure</b>", TH_S), Paragraph("<b>Indication</b>", TH_S), Paragraph("<b>Reference</b>", TH_S)],
["Vamana\n(Therapeutic Emesis)","Primary Shodhana. Eliminates Kapha from Pranavaha Srotas and Amasaya. Most important in Tamaka Shwasa.","Ch. Chi. 17/63"],
["Virechana\n(Therapeutic Purgation)","Secondary Shodhana when Pitta is also involved. Clears Pittasthana (origin of Tamaka Shwasa).","Ch. Chi. 17/64"],
["Nasya\n(Nasal Instillation)","Siro-Virechana for Kapha elimination from upper channels (Urdhvanga). Pippali, Shadbindu taila.","A.H. Chi. 4"],
["Dhooma\n(Medicated Smoke Inhalation)","Kapha and Vata elimination from Pranavaha Srotas. Uses Haritaki, Guggulu, Vacha.","Ch. Chi. 17/90 | A.H. Chi."],
["Basti\n(Medicated Enema)","Anuvasan Basti with Vata-shamaka oils — for underlying Vata prakopa in Tamaka Shwasa.","A.H. Chi."],
]
shod_t = Table(shod_data, colWidths=[3.2*cm, 8.6*cm, 3.8*cm])
shod_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),DEEP_GREEN),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LIGHT_GREEN]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [shod_t, sp(0.25)]
story += [
sub_header("6.3 Shamana Chikitsa (Palliative Treatment) — Key Formulations"),
sp(0.15),
]
sham_data = [
[Paragraph("<b>Formulation</b>", TH_S), Paragraph("<b>Indication</b>", TH_S), Paragraph("<b>Reference</b>", TH_S)],
["Sitopaladi Churna","Kasa, Shwasa, Pinasa — Kapha-Pitta shamaka","Sharangadhara Samhita"],
["Talisadi Churna","Shwasa, Kasa, Aruchi — Kapha Vata shamaka","Ashtanga Hridayam"],
["Kanakasava","Tamaka Shwasa, chronic Kasa, Rajayakshma","Sharangadhara Samhita"],
["Vasavaleha","Shwasa, Kasa — Vasa (Adhatoda) based expectorant","Charaka / Ashtanga Hridayam"],
["Agastya Haritaki Rasayana","Chronic Shwasa, Kasa — Rasayana + Shwasahara","Ch. Chi. 17 | A.H. Chi. 4"],
["Chyavanprasha","Rasayana, immunity, chronic respiratory disorders","Charaka Samhita, Chi. 1"],
["Haridra Khand","Allergic rhinitis (Pinasa) — comorbidity of Tamaka Shwasa","Ashtanga Hridayam"],
["Shwasananda/Shwaskuthar Ras","Acute management of Shwasa — Rasa Shastra preparation","Rasa Shastra"],
]
sham_t = Table(sham_data, colWidths=[4.2*cm, 7.5*cm, 3.9*cm])
sham_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),DARK_BLUE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LIGHT_BLUE]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [sham_t, sp(0.25)]
story += [
sub_header("6.4 Pathyapathya (Diet & Lifestyle)"),
sp(0.1),
info_box(
"<b>Pathya (Beneficial):</b><br/>"
"Ahara: Shashtika Shali (60-day rice), Mudga (green gram), Yava (barley), warm water, Purana Ghrita, "
"light easily digestible food, Vasa (Adhatoda) juice, Tulasi, Ginger (Shunthi), Garlic (Lashuna)<br/><br/>"
"<b>Vihara:</b> Avoid cold/damp environments, avoid cold water bath, use warm clothing, "
"practice Pranayama (Anuloma-Viloma, Bhramari), avoid Vegadharana (suppression of natural urges)<br/><br/>"
"<b>Apathya (Harmful — must avoid):</b><br/>"
"Cold food, cold water, curd, banana, heavy/oily food, excessive sweets, "
"Masha (black gram), night vigil, cold/damp weather, dust, smoke, aerosols, strong perfumes, "
"excessive exercise, suppression of natural urges",
bg=ORANGE_BG, border=ORANGE_BORDER
),
sp(0.3),
]
# ════════════════════════════════════════════════════════
# PART VI — MODERN MANAGEMENT
# ════════════════════════════════════════════════════════
story += [
PageBreak(),
chapter_header("PART VI", "Modern Management of Bronchial Asthma", "Allopathic Treatment"),
sp(0.2),
sub_header("7.1 Modern Definition (WHO / GINA Guidelines)"),
sp(0.15),
info_box(
"<b>Bronchial Asthma</b> is a chronic inflammatory disorder of the airways characterized by recurrent episodes of "
"wheezing, breathlessness, chest tightness, and cough — particularly at night or early morning. "
"It is associated with widespread but variable airflow obstruction that is often reversible either spontaneously "
"or with treatment, and an increase in airway hyperresponsiveness to a variety of stimuli.<br/><br/>"
"<b>Key Pathology:</b> Airway inflammation → Bronchospasm → Mucus hypersecretion → Airway remodeling<br/>"
"<b>Prevalence:</b> ~339 million people worldwide; 3rd most common chronic disease in India<br/>"
"<b>Ref:</b> Global Initiative for Asthma (GINA) Guidelines 2023"
),
sp(0.2),
sub_header("7.2 Diagnostic Criteria"),
sp(0.1),
]
dx_data = [
[Paragraph("<b>Test</b>", TH_S), Paragraph("<b>Finding in Asthma</b>", TH_S)],
["Spirometry (FEV1/FVC)","<70% = Obstructive pattern; reversible after bronchodilator"],
["Peak Expiratory Flow Rate (PEFR)","<200 L/min in moderate-severe attack; >20% diurnal variation"],
["Bronchodilator Response","≥12% and ≥200ml improvement in FEV1 after salbutamol"],
["Absolute Eosinophil Count (AEC)","Raised (>400/mm³) in allergic asthma"],
["IgE levels","Elevated in atopic/allergic asthma"],
["Chest X-ray","Hyperinflation, increased broncho-vascular markings"],
["Methacholine Challenge","Positive in borderline cases — confirms airway hyperresponsiveness"],
]
dx_t = Table(dx_data, colWidths=[5.0*cm, 10.6*cm])
dx_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),DARK_BLUE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LIGHT_BLUE]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),8),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),
]))
story += [dx_t, sp(0.25)]
story += [
sub_header("7.3 Pharmacological Management (GINA Step Therapy)"),
sp(0.15),
]
rx_data = [
[Paragraph("<b>GINA Step</b>", TH_S), Paragraph("<b>Severity</b>", TH_S), Paragraph("<b>Treatment</b>", TH_S)],
["Step 1","Mild Intermittent","PRN SABA (Salbutamol inhaler) — as needed. Low dose ICS-formoterol optional."],
["Step 2","Mild Persistent","Low-dose ICS (Budesonide 200 mcg/day) + PRN SABA"],
["Step 3","Moderate Persistent","Low-dose ICS + LABA (Budesonide + Formoterol) OR medium-dose ICS"],
["Step 4","Severe Persistent","Medium-high dose ICS + LABA. Add LAMA (Tiotropium) if needed."],
["Step 5","Very Severe / Refractory","Add-on Biologics: Omalizumab (anti-IgE), Mepolizumab (anti-IL5), Dupilumab. OCS if required."],
["Acute Attack","Emergency","SABA nebulization, Oxygen, IV Hydrocortisone, Ipratropium, IV Magnesium sulphate, ICU if needed"],
]
rx_t = Table(rx_data, colWidths=[2.6*cm, 3.0*cm, 10.0*cm])
rx_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),SAFFRON),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,ORANGE_BG]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [rx_t, sp(0.2)]
story += [
sub_header("7.4 Drug Classes in Asthma Management"),
sp(0.1),
]
drug_class = [
[Paragraph("<b>Class</b>", TH_S), Paragraph("<b>Examples</b>", TH_S), Paragraph("<b>Mechanism</b>", TH_S)],
["SABA (Short-acting beta-2 agonist)","Salbutamol, Terbutaline","Bronchodilation — fast relief (rescue)"],
["LABA (Long-acting beta-2 agonist)","Formoterol, Salmeterol","Sustained bronchodilation — controller"],
["ICS (Inhaled Corticosteroids)","Budesonide, Fluticasone","Anti-inflammatory — mainstay controller"],
["LAMA (Long-acting muscarinic)","Tiotropium","Anticholinergic bronchodilation — add-on"],
["Leukotriene modifiers","Montelukast","Blocks inflammatory mediators (CysLTs)"],
["Methylxanthines","Theophylline, Aminophylline","Bronchodilation + anti-inflammatory (narrow TI)"],
["Biologics","Omalizumab, Mepolizumab, Dupilumab","Targeted therapy for severe allergic/eosinophilic asthma"],
["Systemic Corticosteroids","Prednisolone, Hydrocortisone","Acute severe attacks — powerful anti-inflammatory"],
]
dc_t = Table(drug_class, colWidths=[4.0*cm, 4.8*cm, 6.8*cm])
dc_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),DARK_BLUE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LIGHT_BLUE]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [dc_t, sp(0.3)]
# ════════════════════════════════════════════════════════
# PART VII — COMPARATIVE & QUICK REFERENCE
# ════════════════════════════════════════════════════════
story += [
PageBreak(),
chapter_header("PART VII", "Ayurveda vs Modern — Comparative & Quick Reference", "Summary"),
sp(0.2),
sub_header("8.1 Comparative Analysis — Tamaka Shwasa vs Bronchial Asthma"),
sp(0.15),
]
comp_mod = [
[Paragraph("<b>Parameter</b>", TH_S), Paragraph("<b>Tamaka Shwasa (Ayurveda)</b>", TH_S), Paragraph("<b>Bronchial Asthma (Modern)</b>", TH_S)],
["Definition","Pratiloma Vata + Kapha Srotavarodha in Pranavaha Srotas","Chronic airway inflammation with reversible bronchoconstriction"],
["Primary Dosha","Kapha + Vata (Prana Vata)","Inflammation + bronchospasm"],
["Site","Uras (chest), Pranavaha Srotas","Bronchi, bronchioles, alveoli"],
["Causative factors","Sheeta, Raja, Dhooma, Viruddha Ahara, Vegadharana","Allergens, pollutants, exercise, cold air, infections"],
["Key symptom","Ghurghuraka (wheeze), Pratiloma Shwasa","Expiratory wheeze, dyspnoea"],
["Nocturnal pattern","Ratra Vriddhi","Nocturnal asthma (circadian cortisol drop)"],
["Prognosis","Yapya (chronic/palliable)","Chronic, controlled but not cured"],
["Primary treatment","Vamana (Shodhana)","ICS + LABA (GINA Step therapy)"],
["Mechanism","Kapha elimination, Srotoshodhana","Bronchodilation + anti-inflammation"],
]
cm_t = Table(comp_mod, colWidths=[3.2*cm, 6.2*cm, 6.2*cm])
cm_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),DARK_BLUE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LIGHT_BLUE]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),8.5),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),6),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),("VALIGN",(0,0),(-1,-1),"TOP"),
]))
story += [cm_t, sp(0.3)]
# Master Shloka Table
story += [
sub_header("8.2 Master Shloka Quick Reference Table"),
sp(0.15),
]
master = [
[Paragraph("<b>Shloka Topic</b>", TH_S), Paragraph("<b>Text</b>", TH_S), Paragraph("<b>Ref</b>", TH_S)],
["Vamana definition","Charaka Samhita","Si.Stha. 2/4-5"],
["Vamana definition (route)","Charaka Samhita","Su.Stha. 25/40"],
["Vamana definition","Sushruta Samhita","Chi.Stha. 33/3"],
["Vamana definition + Poorvakarma","Ashtanga Hridayam","Su.Stha. 18/1"],
["5 types of Shwasa","Charaka + A.H.","Chi.Stha. 17/12 | Ni.Stha. 4/1"],
["Tamaka Shwasa definition","Charaka Samhita","Chi.Stha. 17/54-56"],
["Tamaka Shwasa lakshanas","Charaka + Vagbhata","Chi.17/55-58 | A.H. Ni.4/5-7"],
["Nidana of Shwasa","Charaka Samhita","Chi.Stha. 17/14-15"],
["Samprapti","Charaka + A.H.","Chi.17/54 | A.H. Ni.4/3-4"],
["Vamana shreshtham in Shwasa","Charaka Samhita","Chi.Stha. 17/63"],
["Urdhvabhaga Shodhana principle","Charaka Samhita","Su.Stha. 20/19"],
["Samshodhana mandate for Kapha","Charaka Samhita","Su.Stha. 16/20-21"],
["Poorvakarma (Snehana+Swedana)","Charaka Samhita","Su.Stha. 15/3 | A.H. Su.18"],
["Snehapana for Shwasa","A.H. + Charaka","Chi.Stha. 4 | Chi.17"],
["Samyak Vamana lakshana","Charaka Samhita","Su.Stha. 15/22-23"],
["Vega count","Charaka + A.H.","Su.Stha. 15/23 | A.H. Su.18"],
["Atiyoga of Vamana","Charaka + A.H.","Su.Stha. 15/25 | A.H. Su.18"],
["Samsarjana Krama","Charaka Samhita","Su.Stha. 15/30-32"],
["Contraindications of Vamana","Charaka Samhita","Si.Stha. 2/8-9"],
]
master_t = Table(master, colWidths=[6.5*cm, 5.0*cm, 4.1*cm])
master_t.setStyle(TableStyle([
("BACKGROUND",(0,0),(-1,0),DARK_BLUE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,LIGHT_TAN]),
("FONTNAME",(0,1),(-1,-1),"Helvetica"),("FONTSIZE",(0,1),(-1,-1),9),
("TOPPADDING",(0,0),(-1,-1),5),("BOTTOMPADDING",(0,0),(-1,-1),5),
("LEFTPADDING",(0,0),(-1,-1),7),
("BOX",(0,0),(-1,-1),1,BORDER),("INNERGRID",(0,0),(-1,-1),0.5,BORDER),
("TEXTCOLOR",(0,1),(-1,-1),colors.black),
]))
story += [master_t, sp(0.4)]
# FOOTER
story += [
HRFlowable(width="100%", thickness=1.5, color=SAFFRON, spaceAfter=6),
Paragraph(
"Abbreviations: Ch. = Charaka Samhita | Su. = Sushruta Samhita | A.H. = Ashtanga Hridayam | "
"Su.Stha. = Sutra Sthana | Chi.Stha. = Chikitsa Sthana | Si.Stha. = Siddhi Sthana | "
"Ni.Stha. = Nidana Sthana | Kalpa = Kalpa Sthana",
ABBR_S
),
sp(0.15),
Paragraph(
"Clinical references: PMC5954254 (Ikshvaku Vamana in Tamaka Shwasa, AYU 2017) | "
"GINA Guidelines 2023 for Modern Management",
ABBR_S
),
sp(0.1),
Paragraph(
"Compiled for Ayurveda study purposes. Always refer to original classical texts and qualified Vaidya for clinical practice.",
DISC_S
),
]
# ── Build ────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT, pagesize=A4,
rightMargin=1.8*cm, leftMargin=1.8*cm,
topMargin=1.8*cm, bottomMargin=1.8*cm,
title="Vamana in Tamaka Shwasa — Complete Reference",
author="Ayurveda Study Aid"
)
doc.build(story)
print("PDF created:", OUTPUT)
python3 /home/daytona/workspace/ssps-pdf/vaman_tamakshwas.py 2>&1
Vamana Tamaka Shwasa Complete
PDF Document · PDF
| Part | Content |
|---|---|
| Part I | Vamana — Etymology, Definition by Charaka, Sushruta, Vagbhata (all 3 Acharyas with shlokas) |
| Part II | Types of Vamana — Acharya-wise (Charaka, Sushruta, Vagbhata) with comparison table |
| Part III | Tamaka Shwasa — Intro, 5 types of Shwasa, Definition shlokas (Charaka + Vagbhata), Nidana, Lakshanas, Modern correlation |
| Part IV | Samprapti — Full pathogenesis shloka, Samprapti Ghataka table, 7-step flow chart |
| Part V | Vamana Kyon? — Rationale shlokas (Chi.17/63), Urdhvabhaga principle, Poorvakarma, Vamana dravyas, Vegas, Samyak/Atiyoga lakshanas, Samsarjana Krama |
| Part VI | Modern Management — GINA step therapy, drug classes (SABA, ICS, LABA, Biologics), diagnostic criteria |
| Part VII | Comparative table (Ayurveda vs Modern) + Master Shloka quick reference (19 shlokas with exact references) |