Explain marma it's nirukti classification of marma in detain.explain individual marma vidhalakshana
marma definition nirukti etymology classification Ayurveda Sushruta Samhita detailed
marma vidhalaKshana individual marma points classification Ayurveda 107 marma
https://www.carakasamhitaonline.com/index.php/Marma
vidhalakshana marma individual marma injury symptoms effects Sushruta 107 marma description
"The site where Mamsa (muscles), Sira (vessels), Snayu (ligaments), Asthi (bones), and Sandhi (joints) converge, and where Prana (vital energy) resides."
"Mrityae asmin iti Marma" "That in which there is likelihood of death upon infliction - that is Marma"
| Region | Marmas | Count |
|---|---|---|
| Shakha (Upper Limbs) | 11 in each arm | 22 |
| Shakha (Lower Limbs) | 11 in each leg | 22 |
| Madhya Shareera - Uras (Chest) | Thorax region | 12 (combined chest + abdomen) |
| Madhya Shareera - Udara (Abdomen) | Abdominal region | (included above) |
| Prustha (Back) | Posterior trunk | 14 |
| Shiro-Griva (Head and Neck) | Head and neck | 37 |
| Total | 107 |
| Type | Predominant Structure | Sushruta's Count | Ashtanga Hridaya Count |
|---|---|---|---|
| Mamsa Marma | Muscle (fleshy tissue) predominant | 11 | 10 |
| Sira Marma | Veins/blood vessels predominant | 41 | 37 |
| Snayu Marma | Ligaments/tendons predominant | 27 | 23 |
| Asthi Marma | Bone predominant | 8 | 8 |
| Sandhi Marma | Joint predominant | 20 | 20 |
| Dhamani Marma | Arteries predominant (added by Vagbhata) | - | 9 |
| Total | 107 | 107 |
| Type | Effect of Injury | Number | Predominant Bhuta/Dosha |
|---|---|---|---|
| Sadyah Pranahara | Immediate death | 19 | Agneya (Agni dominant) |
| Kalantara Pranahara | Delayed/gradual death (after some time) | 33 | Agneya + Saumya |
| Vishalyaghna | Death occurs when foreign body is removed (safe while embedded) | 3 | Vayavya (Vayu dominant) |
| Vaikalyakara | Permanent deformity/disability | 44 | Saumya (Soma dominant) |
| Rujakara | Severe, unbearable pain | 8 | Agni + Vayu |
| Total | 107 |
| Size | Marma | Measurement |
|---|---|---|
| Large (4 Angula) | Nila, Manya, Matrika (2+2+8 = 12 Marmas) | Four finger-breadths each |
| Small (½ Angula) | All remaining Marmas | Half a finger-breadth |
| # | Marma | Location | Type | Vidhalakshana (Injury Effect) |
|---|---|---|---|---|
| 1 | Kshipra | Between big toe and 2nd toe (sole) | Snayu | Rujakara - excruciating pain; if deeply injured - Kalantara Pranahara (spasm, convulsions, tetanus-like death) |
| 2 | Talahridaya | Centre of sole of foot | Mamsa | Rujakara - severe pain in the foot and leg; Kalantara Pranahara if major injury |
| 3 | Kurcha | Base of big toe on dorsum of foot | Snayu | Vaikalyakara - stiffness, swelling, loss of function of foot; Rujakara |
| 4 | Kurchashira | Posterior heel region | Snayu | Rujakara - the most classic Rujakara Marma; severe heel/foot pain, lameness |
| 5 | Gulpha | Ankle joint | Sandhi | Vaikalyakara - deformity of the foot, impaired gait, lame-foot (Khanjata) |
| 6 | Indrabasti | Middle of calf muscle (posterior leg) | Mamsa | Rujakara - profuse hemorrhage (Raktasrava), severe pain; Kalantara Pranahara |
| 7 | Janu | Knee joint | Sandhi | Vaikalyakara - Pangu (lameness/paralysis of the leg); the person becomes crippled |
| 8 | Ani | 3 Angula above knee joint | Snayu | Vaikalyakara - loss of sensation and motor function of leg below; atrophy |
| 9 | Urvi | Middle of thigh (medial-anterior) | Mamsa | Kalantara Pranahara - severe hemorrhage leading to death after some time |
| 10 | Lohitaksha | Groin area/root of thigh (femoral triangle) | Sira | Kalantara Pranahara - profuse arterial bleeding, death from exsanguination |
| 11 | Vitapa | Inguinal region/scrotum junction | Snayu | Vaikalyakara - loss of reproductive function; impotence (Klibata) |
| # | Marma | Location | Type | Vidhalakshana |
|---|---|---|---|---|
| 1 | Kshipra | Between index finger and thumb | Snayu | Rujakara - severe pain; Kalantara Pranahara if deep - tetanus/spasm |
| 2 | Talahridaya | Centre of palm | Mamsa | Rujakara - severe palm and arm pain |
| 3 | Kurcha | Base of thumb/thenar eminence | Snayu | Vaikalyakara - impaired thumb grip and hand function |
| 4 | Kurchashira | Wrist (radial aspect) | Snayu | Rujakara - severe wrist pain |
| 5 | Manibandha | Wrist joint | Sandhi | Vaikalyakara - wrist drop, loss of hand movements (Pangu of hand) |
| 6 | Indrabasti | Middle of forearm | Mamsa | Rujakara - profuse bleeding, severe pain |
| 7 | Kurpara | Elbow joint | Sandhi | Vaikalyakara - loss of elbow flexion/extension, crippled arm |
| 8 | Ani | 3 Angula above elbow | Snayu | Vaikalyakara - atrophy of forearm and hand |
| 9 | Urvi | Middle of upper arm | Mamsa | Kalantara Pranahara - hemorrhage and death |
| 10 | Lohitaksha | Axilla/shoulder joint | Sira | Kalantara Pranahara - major vascular injury, death from blood loss |
| 11 | Kakshadhara | Axillary fold region | Snayu | Kalantara Pranahara - paralysis of arm, then death |
| # | Marma | Location | Type | Vidhalakshana |
|---|---|---|---|---|
| 1 | Guda | Anus/rectum | Snayu | Sadyah Pranahara - immediate death; injury causes acute intestinal obstruction, shock |
| 2 | Vasti | Urinary bladder | Snayu | Sadyah Pranahara - immediate death from urinary shock, acute retention, peritonitis |
| 3 | Nabhi | Umbilicus | Sira | Sadyah Pranahara - injury causes catastrophic injury to abdominal aorta/IVC; immediate death |
| 4 | Hridaya | Heart | Sira | Sadyah Pranahara - immediate death; the most important Marma; cardiac arrest |
| 5 | Stana Moola (x2) | Base of each breast | Sira | Sadyah Pranahara - injury to internal mammary vessels, pneumothorax, death |
| 6 | Stana Rohita (x2) | 4 Angula above each nipple | Sira | Kalantara Pranahara - gradual death from pulmonary/pleural injury |
| 7 | Apalapa (x2) | Axillary region (lateral chest wall) | Sira | Kalantara Pranahara - hemopneumothorax, gradual respiratory failure |
| 8 | Apastambha (x2) | Bilateral para-sternal areas | Sira | Kalantara Pranahara - respiratory distress, gradual death from cardiopulmonary involvement |
| # | Marma | Location | Type | Vidhalakshana |
|---|---|---|---|---|
| 1 | Katika Taruna (x2) | Sacro-iliac joint region | Asthi | Vaikalyakara - deformity of pelvis and lower limb function |
| 2 | Kukundara (x2) | Posterior superior iliac spine region | Snayu | Vaikalyakara - inability to walk, hip deformity |
| 3 | Nitamba (x2) | Gluteal region/buttocks | Asthi | Vaikalyakara - impaired gluteal and lower limb function |
| 4 | Parshvasandhi (x2) | Lumbar flank region | Snayu | Vaikalyakara - back deformity, loss of lumbar movement |
| 5 | Vrihati (x2) | Posterior chest wall (scapular region) | Sira | Kalantara Pranahara - injury to posterior intercostal vessels; gradual death |
| 6 | Amsaphalaka (x2) | Scapula | Asthi | Vaikalyakara - loss of shoulder and arm function; wasting of arm (Shushka) |
| 7 | Amsa (x2) | Shoulder joint | Snayu | Vaikalyakara - frozen shoulder, drooping of arm |
| # | Marma | Location | Type | Vidhalakshana |
|---|---|---|---|---|
| 1 | Nila (x2) | Lateral aspect of neck (near carotid) | Sira | Kalantara Pranahara - loss of speech (Vangnirodha), difficulty swallowing, death delayed |
| 2 | Manya (x2) | Anterior neck (near sternomastoid) | Sira | Kalantara Pranahara - stiffness of neck (Stambha), dysphonia, eventual death |
| 3 | Sringataka (x4) | Hard palate - convergence of 4 vessels | Sira | Sadyah Pranahara - immediate death from hemorrhagic shock |
| 4 | Adhipati | Crown of head (Brahmarandhra) | Sandhi | Sadyah Pranahara - immediate death; injury to superior sagittal sinus or brain |
| 5 | Simanta (x5) | Suture lines of skull (coronal, sagittal, lambdoid, etc.) | Asthi | Vishalyaghna - the patient survives as long as the foreign body is in place; removal causes death |
| 6 | Sthapani | Between eyebrows (glabella/nasion area) | Sira | Vishalyaghna - immediate death on removal of the embedded weapon |
| 7 | Utkshepa (x2) | Temporal region (above ears) | Sira | Vishalyaghna - the third Vishalyaghna Marma; death when weapon removed |
| 8 | Apanga (x2) | Outer canthus of eye | Sira | Vaikalyakara - loss of vision (Andhatva/Timira), visual disturbances |
| 9 | Avarta (x2) | Supraorbital notch / eyebrow arch | Snayu | Vaikalyakara - ptosis, drooping eyelid, visual disturbance |
| 10 | Shankha (x2) | Temple region (temporal bone) | Asthi | Sadyah Pranahara - immediate death; thin bone over middle meningeal artery |
| 11 | Utkshepam (see above) | Temporal suture area | Sira | Vishalyaghna |
| 12 | Vidhura (x2) | Behind the ear (mastoid region) | Snayu | Vaikalyakara - deafness (Badhirya), tinnitus, loss of hearing |
| 13 | Phana (x2) | Alar cartilage/sides of nose | Sira | Vaikalyakara - anosmia (loss of smell), nasal obstruction |
| 14 | Matrika (x8) | Bilateral great vessels of neck (carotid + jugular region) | Sira | Sadyah Pranahara - immediate death from massive hemorrhage; 4 on each side |
| 15 | Krikatika (x2) | Posterior atlanto-occipital junction | Snayu | Vaikalyakara - loss of head-turning movement, neck rigidity, torticollis |
| 16 | Vidhura (x2) | Mastoid (as above) | Snayu | Vaikalyakara - deafness |
| 17 | Murdha | Top of head (vertex) | Asthi/Sandhi | Sadyah Pranahara |
| Marma Type | Number | Characteristic Vidhalakshana |
|---|---|---|
| Sadyah Pranahara | 19 | Immediate death - cardiac arrest, massive hemorrhage, respiratory failure |
| Kalantara Pranahara | 33 | Gradual death over days/weeks - sepsis, organ failure, slow hemorrhage |
| Vishalyaghna | 3 (Simanta x5, Sthapani, Utkshepa x2 - counted as 3 groups) | Death upon removal of embedded weapon - (Sthapani, Utkshepa, Simanta) |
| Vaikalyakara | 44 | Permanent deformity: paralysis, blindness, deafness, lameness, impotence |
| Rujakara | 8 | Excruciating, unbearable pain without necessarily causing death |
Make a pdf of this
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace not found"
~/marma_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, mm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
OUTPUT = "/home/daytona/workspace/Marma_Nirukti_Classification_Vidhalakshana.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2.2*cm, bottomMargin=2*cm,
title="Marma - Nirukti, Classification & Vidhalakshana",
author="Ayurveda Study Notes"
)
W, H = A4
styles = getSampleStyleSheet()
# ── custom styles ──────────────────────────────────────────────────────────────
GOLD = colors.HexColor("#B8860B")
DKBLUE = colors.HexColor("#1B3A6B")
LTBLUE = colors.HexColor("#E8F0FB")
CREAM = colors.HexColor("#FFFBF0")
DKRED = colors.HexColor("#8B0000")
TEAL = colors.HexColor("#005A5B")
GREY = colors.HexColor("#F4F4F4")
WHITE = colors.white
def S(name, **kw):
return ParagraphStyle(name, parent=styles["Normal"], **kw)
title_style = S("Title",
fontSize=22, textColor=DKBLUE, alignment=TA_CENTER,
spaceAfter=4, leading=28, fontName="Helvetica-Bold")
subtitle_style = S("Subtitle",
fontSize=12, textColor=GOLD, alignment=TA_CENTER,
spaceAfter=2, leading=16, fontName="Helvetica-Oblique")
h1 = S("H1",
fontSize=14, textColor=WHITE, leading=18,
spaceBefore=14, spaceAfter=4, fontName="Helvetica-Bold",
leftIndent=0, borderPad=6,
backColor=DKBLUE, borderColor=DKBLUE,
borderWidth=0, borderRadius=3)
h2 = S("H2",
fontSize=12, textColor=DKBLUE, leading=16,
spaceBefore=10, spaceAfter=3, fontName="Helvetica-Bold",
leftIndent=0)
h3 = S("H3",
fontSize=11, textColor=TEAL, leading=15,
spaceBefore=8, spaceAfter=2, fontName="Helvetica-Bold",
leftIndent=8)
body = S("Body",
fontSize=9.5, leading=14, spaceAfter=4,
textColor=colors.HexColor("#2C2C2C"), alignment=TA_JUSTIFY,
leftIndent=8)
bullet = S("Bullet",
fontSize=9.5, leading=13, spaceAfter=2,
textColor=colors.HexColor("#2C2C2C"),
leftIndent=20, bulletIndent=8)
caption = S("Caption",
fontSize=8, textColor=colors.HexColor("#555555"),
alignment=TA_CENTER, spaceAfter=6, fontName="Helvetica-Oblique")
ref_style = S("Ref",
fontSize=8.5, textColor=colors.HexColor("#444444"),
leading=12, leftIndent=12, spaceAfter=2)
# ── helper wrappers ────────────────────────────────────────────────────────────
def HR(color=GOLD, thickness=1.2):
return HRFlowable(width="100%", thickness=thickness, color=color, spaceAfter=4, spaceBefore=2)
def section_header(txt):
"""Coloured banner heading."""
tbl = Table([[Paragraph(txt, h1)]], colWidths=[W - 4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DKBLUE),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 10),
("ROUNDEDCORNERS", [4]),
]))
return tbl
def make_table(headers, rows, col_widths=None):
data = [headers] + rows
tbl = Table(data, colWidths=col_widths, repeatRows=1)
n = len(rows)
style = [
("BACKGROUND", (0,0), (-1,0), DKBLUE),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 8),
("LEADING", (0,0), (-1,-1), 11),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#AAAAAA")),
("ROWBACKGROUNDS",(0,1),(-1,-1), [WHITE, GREY]),
]
tbl.setStyle(TableStyle(style))
return tbl
# ── content ────────────────────────────────────────────────────────────────────
story = []
# ---- Title block -------------------------------------------------------------
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("MARMA", title_style))
story.append(Paragraph("Nirukti · Classification · Vidhalakshana", subtitle_style))
story.append(Paragraph("Based on Sushruta Samhita, Ashtanga Hridaya & Classical Ayurvedic Texts", caption))
story.append(HR(GOLD, 2))
story.append(Spacer(1, 0.3*cm))
# ── SECTION 1 – DEFINITION ────────────────────────────────────────────────────
story.append(section_header("1. DEFINITION OF MARMA"))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"According to <b>Sushruta Samhita Sharira Sthana 6/15-16</b>, Marma is defined as:", body))
story.append(Paragraph(
"<i>\"The site where Mamsa (muscles), Sira (vessels), Snayu (ligaments), Asthi (bones), and Sandhi "
"(joints) converge, and where Prana (vital energy) resides.\"</i>", body))
story.append(Paragraph(
"<b>Ashtanga Hridaya (Sha. 4/37):</b> \"That body part which shows uncharacteristic pulsation with severe "
"pain after infliction is called Marma.\"", body))
story.append(Paragraph(
"<b>Ashtanga Hridaya Sha. 4/2</b> calls them <b>\"Seats of Life\"</b> - the essential abodes of Prana (vital force).", body))
story.append(Paragraph(
"Sushruta declared Marma knowledge as <b>\"Shalya Vishayardha\"</b> - equal to <b>half the entire science of surgery</b> "
"(Su.Sa. Sha. 6/35). A surgeon ignorant of Marma cannot perform any procedure safely.", body))
story.append(Paragraph(
"<b>Charaka's Tri-Marma:</b> Charaka identified three supremely important Marmas: <b>Shira/Murdha</b> (brain/head), "
"<b>Hridaya</b> (heart), and <b>Vasti</b> (urinary bladder). He acknowledged all 107 but elevated these three as most vital.", body))
story.append(Spacer(1, 0.15*cm))
# ── SECTION 2 – NIRUKTI ───────────────────────────────────────────────────────
story.append(section_header("2. NIRUKTI (ETYMOLOGY) OF MARMA"))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"The Nirukti derives the word 'Marma' from multiple classical Sanskrit sources. "
"The root <b>dhatu 'mri'</b> means death/dying, forming the etymological core.", body))
story.append(Paragraph("<b>A. Amarakosha:</b>", h3))
story.append(Paragraph(
"Derived from <b>'mri + manin'</b> or <b>'mri + pranatyage'</b> — meaning "
"<i>'That which causes death or death-like miseries.'</i>", body))
story.append(Paragraph("<b>B. Shabdakalpadruma:</b>", h3))
story.append(Paragraph(
"Derived from <b>'mri dhatu'</b>, explained as <b>Sandhisthana</b> — a place of junction/union "
"where death (mrityu) can occur upon injury.", body))
story.append(Paragraph("<b>C. Classical Commentators:</b>", h3))
nirukti_data = [
[Paragraph("<b>Source</b>", S("th", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE)),
Paragraph("<b>Sanskrit</b>", S("th", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE)),
Paragraph("<b>Meaning</b>", S("th", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE))],
["Dalhana (on Su.Sa.)", "Marayanti iti tani marmani", "Those that kill are called Marma"],
["Arunadatta (on A.H.)", "Maranat sadrishadukhadatayatwat va", "They cause death or pain similar to death"],
["Raja Nighantu", "Jeevasthana tu marmasyat", "The site of Jeeva (life/soul) is Marma"],
["Common phrase", "Mrityae asmin iti Marma", "That in which there is likelihood of death = Marma"],
]
story.append(make_table(
nirukti_data[0], nirukti_data[1:],
col_widths=[4.2*cm, 6.5*cm, 6.0*cm]
))
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph(
"The word also connotes <b>'hidden'</b> or <b>'secret'</b> — because these points are not externally visible "
"yet are vitally significant internally. Marmas are sites of <b>Prana, Agni, Soma,</b> and <b>Panchamahabhuta</b>.", body))
# ── SECTION 3 – CLASSIFICATION ────────────────────────────────────────────────
story.append(section_header("3. CLASSIFICATION OF MARMA"))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"Sushruta classifies the <b>107 Marmas</b> in three major ways. Each Marma belongs to all three classifications simultaneously.", body))
# 3.1 Location
story.append(Paragraph("3.1 Based on Location (Desha Bheda / Shadanga)", h2))
loc_data = [
["Region", "Sub-region", "Count"],
["Shakha (Limbs)", "Upper limbs (11 per arm)", "22"],
["Shakha (Limbs)", "Lower limbs (11 per leg)", "22"],
["Madhya Shareera", "Chest (Uras) + Abdomen (Udara)", "12"],
["Prustha (Back)", "Posterior trunk", "14"],
["Shiro-Griva", "Head and Neck", "37"],
["TOTAL", "", "107"],
]
story.append(make_table(
[Paragraph(h, S("th2", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE)) for h in loc_data[0]],
[[Paragraph(str(c), body) if i < 2 else Paragraph(f"<b>{c}</b>", body) for i,c in enumerate(row)] for row in loc_data[1:]],
col_widths=[5*cm, 8*cm, 3.7*cm]
))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph(
"<b>Three broad divisions:</b> (1) Shakha Gata Marma — Limbs (44), "
"(2) Madhya Shareera Gata Marma — Trunk (26), (3) Shirogata Marma — Head & Neck (37).", body))
story.append(Spacer(1, 0.2*cm))
# 3.2 Structural
story.append(Paragraph("3.2 Based on Structural Components (Rachana / Nivesha Bheda)", h2))
struct_data = [
["Type", "Predominant Structure", "Sushruta", "Ashtanga Hridaya"],
["Mamsa Marma", "Muscle (fleshy tissue)", "11", "10"],
["Sira Marma", "Veins / blood vessels", "41", "37"],
["Snayu Marma", "Ligaments / tendons", "27", "23"],
["Asthi Marma", "Bone", "8", "8"],
["Sandhi Marma", "Joint", "20", "20"],
["Dhamani Marma", "Arteries (Vagbhata's addition)", "—", "9"],
["Total", "", "107", "107"],
]
story.append(make_table(
[Paragraph(h, S("th3", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE)) for h in struct_data[0]],
struct_data[1:],
col_widths=[4.5*cm, 6*cm, 2.5*cm, 3.7*cm]
))
story.append(Spacer(1, 0.2*cm))
# 3.3 Prognosis
story.append(Paragraph("3.3 Based on Prognosis after Injury (Parinam / Vyapath Bheda)", h2))
prog_data = [
["Type", "Effect of Injury", "No.", "Bhuta/Dosha"],
["Sadyah Pranahara", "Immediate death", "19", "Agneya (Agni dominant)"],
["Kalantara Pranahara", "Delayed / gradual death", "33", "Agneya + Saumya"],
["Vishalyaghna", "Death on REMOVAL of embedded foreign body", "3", "Vayavya (Vayu dominant)"],
["Vaikalyakara", "Permanent deformity / disability", "44", "Saumya (Soma dominant)"],
["Rujakara", "Excruciating pain only", "8", "Agni + Vayu"],
["Total", "", "107", ""],
]
story.append(make_table(
[Paragraph(h, S("th4", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE)) for h in prog_data[0]],
prog_data[1:],
col_widths=[4.5*cm, 6.8*cm, 1.5*cm, 3.9*cm]
))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Sadyah Pranahara (19):</b> Injury leads to immediate/rapid death. Example: Hridaya (heart), Shringataka.",
bullet))
story.append(Paragraph(
"<b>Kalantara Pranahara (33):</b> Death follows after days to weeks. Example: Stanarohita, Kakshadhara.",
bullet))
story.append(Paragraph(
"<b>Vishalyaghna (3):</b> Patient survives while weapon is embedded; extraction causes immediate death. "
"Example: Sthapani, Utkshepa, Simanta.",
bullet))
story.append(Paragraph(
"<b>Vaikalyakara (44):</b> Permanent deformity — paralysis, blindness, deafness, lameness. Example: Apanga, Vidhura.",
bullet))
story.append(Paragraph(
"<b>Rujakara (8):</b> Excruciating unbearable pain without necessarily causing death. Example: Kurchashira, Indrabasti.",
bullet))
story.append(Spacer(1, 0.2*cm))
# 3.4 Dimension
story.append(Paragraph("3.4 Based on Dimension / Size (Pramana Bheda)", h2))
story.append(Paragraph(
"• <b>Large (4 Angula):</b> Nila (×2), Manya (×2), Matrika (×8) — 12 Marmas measuring four finger-breadths each.", bullet))
story.append(Paragraph(
"• <b>Small (½ Angula):</b> All remaining Marmas — measuring half a finger-breadth.", bullet))
# ── SECTION 4 – VIDHALAKSHANA ─────────────────────────────────────────────────
story.append(section_header("4. INDIVIDUAL MARMA — VIDHALAKSHANA"))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Vidhalakshana</b> refers to the specific signs and symptoms (lakshanas) that appear when individual Marma "
"points are injured (vidhata = struck). Described in detail in <b>Sushruta Samhita Sha. 6 — Pratheka Marma Nirdesa</b>.", body))
story.append(Paragraph("<b>General Symptoms of Marma Injury</b> (Su.Sa.Su. 25/34-35):", h3))
gen_syms = [
["Sanskrit Term", "Clinical Manifestation"],
["Bhrama", "Giddiness / Vertigo"],
["Pralapa", "Delirium / Confusion"],
["Patana", "Fainting / Collapse"],
["Pramoha", "Altered mental status / Delusion"],
["Vicheshtana", "Loss of movement in body parts"],
["Sanlayana", "Semi-consciousness"],
["Ushnata", "Fever / increased body temperature"],
["Srasta-angataa", "Laxity / flaccidity of body parts"],
["Mamsa-dhavana srava", "Bleeding like meat-wash coloured discharge"],
["Indriya-nasha", "Loss of sensory perception"],
]
story.append(make_table(
[Paragraph(h, S("th5", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE)) for h in gen_syms[0]],
gen_syms[1:],
col_widths=[5.5*cm, 11.2*cm]
))
story.append(Spacer(1, 0.3*cm))
# ── 4A Lower Limb ─────────────────────────────────────────────────────────────
story.append(Paragraph("4A. Shakha Gata Marma — Lower Limb (11 per limb)", h2))
ll_data = [
["#", "Marma", "Location", "Type", "Vidhalakshana"],
["1", "Kshipra", "Between big toe & 2nd toe (sole)", "Snayu", "Rujakara — severe pain; deep injury causes tetanus-like spasm, Kalantara Pranahara"],
["2", "Talahridaya", "Centre of sole", "Mamsa", "Rujakara — severe foot and leg pain; Kalantara Pranahara if major"],
["3", "Kurcha", "Base of big toe (dorsum)", "Snayu", "Vaikalyakara — stiffness, swelling, loss of foot function; Rujakara"],
["4", "Kurchashira", "Posterior heel", "Snayu", "Rujakara (classic) — severe heel pain, lameness"],
["5", "Gulpha", "Ankle joint", "Sandhi", "Vaikalyakara — deformity of foot, impaired gait (Khanjata)"],
["6", "Indrabasti", "Middle of calf (posterior leg)", "Mamsa", "Rujakara — profuse haemorrhage, severe pain; Kalantara Pranahara"],
["7", "Janu", "Knee joint", "Sandhi", "Vaikalyakara — Pangu (lameness/paralysis below knee); crippled leg"],
["8", "Ani", "3 Angula above knee", "Snayu", "Vaikalyakara — loss of sensation and motor function, atrophy"],
["9", "Urvi", "Middle of thigh (medial-anterior)", "Mamsa", "Kalantara Pranahara — severe haemorrhage, delayed death"],
["10", "Lohitaksha", "Groin / femoral triangle", "Sira", "Kalantara Pranahara — profuse arterial bleed, exsanguination"],
["11", "Vitapa", "Inguinal region / scrotum junction", "Snayu", "Vaikalyakara — loss of reproductive function, Klibata (impotence)"],
]
story.append(make_table(
[Paragraph(h, S("th6", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE)) for h in ll_data[0]],
ll_data[1:],
col_widths=[0.6*cm, 2.5*cm, 3.4*cm, 2.0*cm, 8.2*cm]
))
story.append(Spacer(1, 0.3*cm))
# ── 4B Upper Limb ─────────────────────────────────────────────────────────────
story.append(Paragraph("4B. Shakha Gata Marma — Upper Limb (11 per limb)", h2))
ul_data = [
["#", "Marma", "Location", "Type", "Vidhalakshana"],
["1", "Kshipra", "Between index finger & thumb", "Snayu", "Rujakara — severe pain; deep injury causes tetanus/spasm, Kalantara Pranahara"],
["2", "Talahridaya", "Centre of palm", "Mamsa", "Rujakara — severe palm and arm pain"],
["3", "Kurcha", "Base of thumb / thenar eminence", "Snayu", "Vaikalyakara — impaired thumb grip, hand function"],
["4", "Kurchashira", "Wrist (radial aspect)", "Snayu", "Rujakara — severe wrist pain"],
["5", "Manibandha", "Wrist joint", "Sandhi", "Vaikalyakara — wrist drop, loss of hand movements (Pangu of hand)"],
["6", "Indrabasti", "Middle of forearm", "Mamsa", "Rujakara — profuse bleeding, severe pain"],
["7", "Kurpara", "Elbow joint", "Sandhi", "Vaikalyakara — loss of elbow flexion/extension, crippled arm"],
["8", "Ani", "3 Angula above elbow", "Snayu", "Vaikalyakara — atrophy of forearm and hand"],
["9", "Urvi", "Middle of upper arm", "Mamsa", "Kalantara Pranahara — haemorrhage and delayed death"],
["10", "Lohitaksha", "Axilla / shoulder region", "Sira", "Kalantara Pranahara — major vascular injury, death from blood loss"],
["11", "Kakshadhara", "Axillary fold region", "Snayu", "Kalantara Pranahara — paralysis of arm then death"],
]
story.append(make_table(
[Paragraph(h, S("th7", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE)) for h in ul_data[0]],
ul_data[1:],
col_widths=[0.6*cm, 2.5*cm, 3.4*cm, 2.0*cm, 8.2*cm]
))
story.append(Spacer(1, 0.3*cm))
# ── 4C Anterior Trunk ─────────────────────────────────────────────────────────
story.append(Paragraph("4C. Madhya Shareera Gata Marma — Anterior Trunk / Chest & Abdomen (12)", h2))
at_data = [
["#", "Marma", "Location", "Type", "Vidhalakshana"],
["1", "Guda", "Anus / rectum", "Snayu", "Sadyah Pranahara — immediate death; acute obstruction, peritoneal shock"],
["2", "Vasti", "Urinary bladder", "Snayu", "Sadyah Pranahara — immediate death from urinary shock, peritonitis"],
["3", "Nabhi", "Umbilicus", "Sira", "Sadyah Pranahara — injury to aorta/IVC; catastrophic haemorrhage, immediate death"],
["4", "Hridaya", "Heart (cardiac region)", "Sira", "Sadyah Pranahara — immediate death; cardiac arrest (MOST important Marma)"],
["5", "Stana Moola ×2", "Base of each breast", "Sira", "Sadyah Pranahara — internal mammary vessel injury, pneumothorax, death"],
["6", "Stana Rohita ×2", "4 Angula above each nipple", "Sira", "Kalantara Pranahara — pulmonary/pleural injury; gradual death"],
["7", "Apalapa ×2", "Axillary / lateral chest wall", "Sira", "Kalantara Pranahara — haemopneumothorax, respiratory failure"],
["8", "Apastambha ×2", "Bilateral para-sternal areas", "Sira", "Kalantara Pranahara — cardiopulmonary involvement, respiratory distress, gradual death"],
]
story.append(make_table(
[Paragraph(h, S("th8", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE)) for h in at_data[0]],
at_data[1:],
col_widths=[0.6*cm, 2.8*cm, 3.0*cm, 1.8*cm, 8.5*cm]
))
story.append(Spacer(1, 0.3*cm))
# ── 4D Back ───────────────────────────────────────────────────────────────────
story.append(Paragraph("4D. Madhya Shareera Gata Marma — Posterior Trunk / Back (14)", h2))
bk_data = [
["#", "Marma", "Location", "Type", "Vidhalakshana"],
["1", "Katika Taruna ×2", "Sacro-iliac joint region", "Asthi", "Vaikalyakara — pelvic deformity, lower limb functional loss"],
["2", "Kukundara ×2", "Posterior superior iliac spine", "Snayu", "Vaikalyakara — inability to walk, hip deformity"],
["3", "Nitamba ×2", "Gluteal region / buttocks", "Asthi", "Vaikalyakara — impaired gluteal and lower limb function"],
["4", "Parshvasandhi ×2", "Lumbar flank region", "Snayu", "Vaikalyakara — back deformity, loss of lumbar movement"],
["5", "Vrihati ×2", "Posterior chest wall (scapular region)", "Sira", "Kalantara Pranahara — posterior intercostal vessel injury, gradual death"],
["6", "Amsaphalaka ×2", "Scapula", "Asthi", "Vaikalyakara — loss of shoulder/arm function, wasting of arm (Shushka)"],
["7", "Amsa ×2", "Shoulder joint", "Snayu", "Vaikalyakara — frozen shoulder, drooping arm"],
]
story.append(make_table(
[Paragraph(h, S("th9", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE)) for h in bk_data[0]],
bk_data[1:],
col_widths=[0.6*cm, 3.0*cm, 3.8*cm, 2.0*cm, 7.3*cm]
))
story.append(Spacer(1, 0.3*cm))
# ── 4E Head & Neck ────────────────────────────────────────────────────────────
story.append(Paragraph("4E. Shiro-Griva Gata Marma — Head and Neck (37)", h2))
hn_data = [
["#", "Marma", "Location", "Type", "Vidhalakshana"],
["1", "Nila ×2", "Lateral neck (carotid area)", "Sira", "Kalantara Pranahara — loss of speech (Vangnirodha), dysphagia, delayed death"],
["2", "Manya ×2", "Anterior neck (sternomastoid)", "Sira", "Kalantara Pranahara — neck stiffness (Stambha), dysphonia, eventual death"],
["3", "Sringataka ×4", "Hard palate — 4-vessel convergence", "Sira", "Sadyah Pranahara — immediate death from haemorrhagic shock"],
["4", "Adhipati", "Crown of head (Brahmarandhra/vertex)", "Sandhi", "Sadyah Pranahara — immediate death; injury to superior sagittal sinus/brain"],
["5", "Simanta ×5", "Skull suture lines (5 sutures)", "Asthi", "Vishalyaghna — death occurs on REMOVAL of embedded weapon"],
["6", "Sthapani", "Glabella / nasion (between eyebrows)", "Sira", "Vishalyaghna — immediate death on weapon removal"],
["7", "Utkshepa ×2", "Temporal region (above ears)", "Sira", "Vishalyaghna — death when weapon removed"],
["8", "Apanga ×2", "Outer canthus of eye", "Sira", "Vaikalyakara — blindness (Andhatva/Timira), visual disturbances"],
["9", "Avarta ×2", "Supraorbital notch / eyebrow arch", "Snayu", "Vaikalyakara — ptosis, drooping eyelid, visual disturbance"],
["10", "Shankha ×2", "Temple (temporal bone)", "Asthi", "Sadyah Pranahara — immediate death; thin bone over middle meningeal artery"],
["11", "Vidhura ×2", "Behind ear (mastoid region)", "Snayu", "Vaikalyakara — deafness (Badhirya), tinnitus, hearing loss"],
["12", "Phana ×2", "Alar cartilage / sides of nose", "Sira", "Vaikalyakara — anosmia (loss of smell), nasal obstruction"],
["13", "Matrika ×8", "Bilateral great vessels of neck", "Sira", "Sadyah Pranahara — immediate death from massive haemorrhage (4 per side)"],
["14", "Krikatika ×2", "Posterior atlanto-occipital junction", "Snayu", "Vaikalyakara — loss of head rotation, neck rigidity, torticollis"],
["15", "Murdha", "Top of head (vertex/Brahmarandhra)", "Asthi/Sandhi", "Sadyah Pranahara — immediate death"],
]
story.append(make_table(
[Paragraph(h, S("th10", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE)) for h in hn_data[0]],
hn_data[1:],
col_widths=[0.6*cm, 2.5*cm, 3.4*cm, 2.0*cm, 8.2*cm]
))
story.append(Spacer(1, 0.3*cm))
# ── SECTION 5 – SUMMARY TABLE ─────────────────────────────────────────────────
story.append(section_header("5. SUMMARY — VIDHALAKSHANA BY MARMA TYPE"))
story.append(Spacer(1, 0.2*cm))
summary_data = [
["Marma Type", "Count", "Characteristic Vidhalakshana", "Dosha/Bhuta"],
["Sadyah Pranahara", "19", "Immediate death — cardiac arrest, massive haemorrhage, brain injury", "Agneya"],
["Kalantara Pranahara", "33", "Gradual death over days/weeks — sepsis, organ failure, slow haemorrhage", "Agneya + Saumya"],
["Vishalyaghna", "3", "Death upon removal of embedded weapon; safe while embedded", "Vayavya"],
["Vaikalyakara", "44", "Permanent deformity — paralysis, blindness, deafness, lameness, impotence", "Saumya"],
["Rujakara", "8", "Excruciating, unbearable pain; not necessarily fatal", "Agni + Vayu"],
["Total", "107", "", ""],
]
story.append(make_table(
[Paragraph(h, S("th11", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE)) for h in summary_data[0]],
summary_data[1:],
col_widths=[4.0*cm, 1.5*cm, 8.5*cm, 2.7*cm]
))
# ── SECTION 6 – PATHOGENESIS ──────────────────────────────────────────────────
story.append(Spacer(1, 0.3*cm))
story.append(section_header("6. PATHOGENESIS OF MARMA INJURY"))
story.append(Spacer(1, 0.2*cm))
pathogenesis = [
"Marma injury is <b>Agantuja</b> in origin (external/traumatic cause)",
"Trauma disturbs <b>Prana Vayu</b> — the governing vital force",
"In later stages leads to <b>Tridosha Vaishamya</b> (imbalance of Vata, Pitta, Kapha)",
"Agneya Marmas (injured): haemorrhage, fever, burning — Pitta predominant features",
"Saumya Marmas (injured): oedema, coldness, loss of function — Kapha predominant features",
"Vayavya Marmas (injured): pain, tremors, dryness — Vata predominant features",
"Intensity of trauma determines whether a Vaikalyakara Marma produces deformity alone or progresses to death",
"Even Agantuja Marma injury eventually involves <b>Nija</b> (endogenous) Dosha imbalance",
]
for p in pathogenesis:
story.append(Paragraph(f"• {p}", bullet))
# ── SECTION 7 – CLINICAL SIGNIFICANCE ────────────────────────────────────────
story.append(Spacer(1, 0.2*cm))
story.append(section_header("7. CLINICAL & SURGICAL SIGNIFICANCE"))
story.append(Spacer(1, 0.2*cm))
clinical = [
"The physician/surgeon must memorize all 107 Marmas before performing any surgery, incision (Chedana), cauterization (Dahana), or bloodletting (Raktamokshana)",
"<b>Vishalyaghna Marmas:</b> Shalya (foreign bodies) embedded in these Marmas must NEVER be removed without careful management — extraction itself is lethal",
"Marma knowledge forms the basis of <b>Marma Chikitsa</b> (therapeutic stimulation) used in Kerala's Kalaripayattu and Ayurvedic marma massage therapy",
"<b>Modern correlation:</b> Sadyah Pranahara Marmas correspond to heart, great vessels, brain, aorta injuries — all immediately life-threatening",
"<b>Modern correlation:</b> Vaikalyakara Marmas correspond to nerve plexus and joint injuries causing permanent disability",
"<b>Modern correlation:</b> Rujakara Marmas correspond to areas with high pain receptor density or major nerve trunks",
"Concept of Marma is called <b>Shalya Vishayardha</b> — equal to half the knowledge required for surgery",
"Marma knowledge extends to <b>therapeutics</b>: stimulation (not injury) of Marma points can relieve pain, restore function, and promote healing",
]
for p in clinical:
story.append(Paragraph(f"• {p}", bullet))
# ── REFERENCES ────────────────────────────────────────────────────────────────
story.append(Spacer(1, 0.4*cm))
story.append(HR(GOLD, 1))
story.append(Paragraph("References", h2))
refs = [
"Sushruta Samhita, Sharira Sthana 6 (Pratheka Marma Nirdesa) — Primary classical source",
"Ashtanga Hridaya, Sharira Sthana 4 — Vagbhata's description with Dhamani Marma addition",
"Amarakosha and Shabdakalpadruma — Sanskrit lexicons for Nirukti",
"Dalhana's commentary (Nibandha Sangraha) on Sushruta Samhita",
"Arunadatta's commentary (Sarvangasundara) on Ashtanga Hridaya",
"Comparative study of Marma and acupoints — PMC10382659",
"Science of Marma in Ayurvedic diagnosis and treatment — PMC4687231",
]
for r in refs:
story.append(Paragraph(f"• {r}", ref_style))
story.append(Spacer(1, 0.3*cm))
story.append(HR(DKBLUE, 0.8))
story.append(Paragraph(
"Document generated for academic/study purposes based on classical Ayurvedic texts.",
caption))
# ── BUILD ──────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace && python marma_pdf.py 2>&1
ls -lh /home/daytona/workspace/Marma_Nirukti_Classification_Vidhalakshana.pdf
Marma Nirukti Classification Vidhalakshana
PDF Document · PDF
Explain marmaghata chikitsa and it's surgical importance
Marmaghata chikitsa treatment Sushruta Samhita Ayurveda marma injury management
marma surgical importance Shalya tantra avoidance marma during surgery Ayurveda
https://ijnrd.org/papers/IJNRD2602175.pdf
https://www.ijcrt.org/papers/IJCRT25A4424.pdf
"Any damage or injury to the Marma Sthana - whether mild or severe - which produces death, severe pain, loss of sensation, loss of function, or disability is called Marmaghata."
| # | Sanskrit Term | Clinical Manifestation |
|---|---|---|
| 1 | Bhrama | Giddiness / Vertigo |
| 2 | Pralapa | Delirium / Confusion |
| 3 | Patana | Fainting / Collapse |
| 4 | Pramoha | Delusion / Altered mental status |
| 5 | Vicheshtana | Loss of movement of body parts |
| 6 | Sanlayana | Semi-consciousness |
| 7 | Ushnata | Rise in body temperature / Fever |
| 8 | Srasta-angataa | Weakness / Laxity of body parts |
| 9 | Murcha | Fainting / Syncope |
| 10 | Urdhwavata | Increased expirations / Dyspnea |
| 11 | Vatakrita Ruja | Severe pain caused by vitiated Vata |
| 12 | Mamsadokabham rudhiram | Bleeding resembling meat-wash fluid |
| 13 | Sarvendriyaarthoparama | Cessation of activity of all sense organs |
| Marma Injury | Primary Treatment |
|---|---|
| Vata dominant (Rujakara, Vaikalyakara) | Snehana, Mardana, Upanaha, Basti |
| Pitta dominant (haemorrhage, burning) | Raktamokshana, cooling Lepa, Virechana |
| Kapha dominant (swelling, laxity) | Agnikarma, Udvartana, Upanaha |
| Vishalyaghna Marma | Stabilize Prana, prepare with Sneha BEFORE attempting Shalya Nirhana (extraction) |
| Sadyah Pranahara | Emergency Prana stabilization, Hridayavarana herbs, Mritasanjivani preparations |
| Phase | Methods | Goal |
|---|---|---|
| Purva Karma | Triage, Dosha assessment, Shalya evaluation, wound cleaning | Stabilize, prevent worsening |
| Pradhana Karma | Sneha, Upanaha, Agnikarma, Bandhana, Mardana, Raktamokshana, Panchakarma | Treat root cause, restore Prana |
| Paschata Karma | Rasayana, Pathya, Yoga, Marma stimulation | Rehabilitate, prevent recurrence |
"Shalya Vishayardham" (Su.Sa.Sha. 6/35)
| Procedure | Marma Precaution |
|---|---|
| Siravedha (phlebotomy/venesection) | Avoid Sira Marma; select veins remote from Marma sites; no venesection at Hridaya, Nabhi, Nila regions |
| Agnikarma (cauterization) | Never apply heat directly over Sadyah Pranahara Marma; avoid Hridaya, Nabhi, Shira |
| Kshara Karma (chemical cautery) | Strictly avoid application over Marma points - Kshara can destroy underlying Sira and Snayu |
| Raktamokshana | Site selection must avoid Marma; Jalauka (leeches) not to be placed over thin-skinned Marma regions |
| Chedana/Bhedana (incision/excision) | Rule: "Never incise directly over a Marma; take oblique or lateral approach" |
| Vidhana (piercing/probing) | Probes must not be advanced through Marma Sthana - direction of probe must be verified before insertion |
When a weapon (Shalya) is embedded in Simanta, Sthapani, or Utkshepa Marma - the patient lives as long as it remains. Extraction (Shalya Nirhana) must only be done after:
| Marma | Modern Anatomical Equivalent | Surgical Risk if Injured |
|---|---|---|
| Hridaya | Heart + pericardium | Cardiac tamponade, cardiac arrest |
| Nabhi | Aortic bifurcation / inferior vena cava | Catastrophic haemorrhage |
| Vasti | Urinary bladder / pelvic vessels | Urinary peritonitis, vascular shock |
| Nila/Manya | Carotid artery / internal jugular / vagus nerve | Stroke, haemorrhage, hoarseness |
| Matrika (×8) | Bilateral common/internal carotid + jugular veins | Immediate exsanguination or stroke |
| Shankha | Middle meningeal artery (extradural) | Extradural haematoma, death |
| Lohitaksha | Femoral triangle (femoral artery/vein/nerve) | Haemorrhage, femoral nerve palsy |
| Apanga | Ophthalmic artery / optic nerve territory | Permanent blindness |
| Vidhura | Facial nerve (mastoid segment) / posterior auricular artery | Facial palsy, deafness |
| Janu | Popliteal artery / peroneal nerve | Vascular injury, foot drop |
| Kshipra | Digital vessels + nerves | Digital ischaemia, tetanic response |
External Trauma (Agantuja Nidana)
↓
Vitiation of Prana Vayu at Marma site
↓
Disturbance of Agni, Soma, Vayu at Marma Pradesha
↓
Tridosha Vaishamya (Dosha imbalance)
↓
Dhatu Kshaya (tissue destruction) at affected Marma
↓
Depending on Marma type:
Agneya → Sadyah Pranahara (immediate death)
Agneya+Saumya → Kalantara Pranahara (delayed death)
Vayavya → Vishalyaghna (death on Shalya removal)
Saumya → Vaikalyakara (deformity)
Agni+Vayu → Rujakara (pain)
| Text | Reference | Content |
|---|---|---|
| Sushruta Samhita | Sha.Stha. 6 | Prateka Marma Nirdesa - complete description of 107 Marma and their Vedha Lakshana |
| Sushruta Samhita | Chi.Stha. 5/23 | Direct prescription of Marma Chikitsa - Sneha, Upanaha, Agnikarma, Bandhana, Mardana |
| Charaka Samhita | Siddhi Sthana Ch. 9 | Trimarmiya Adhyaya - on the three supreme Marma (Hridaya, Shira, Vasti) |
| Ashtanga Hridaya | Sha.Stha. 4 | Marma description; Marma as seats of Prana; added Dhamani Marma category |
| Ashtanga Samgraha | Sha.Stha. 7 | General symptoms of Marmaghata; treatment principles |
| Principle | Classical Statement |
|---|---|
| Marma = Half of Surgery | "Shalya Vishayardham" (Su.Sa.Sha. 6/35) |
| Primary Marmaghata Chikitsa | Snehana (oleation) is first-line treatment |
| Vishalyaghna Rule | Never extract embedded weapon without preparation |
| Surgical Safety | Every incision must avoid Marma |
| Treatment Goal | Restore Prana Vayu balance at injured Marma |
| Prognostic Guide | Type of Marma determines treatment urgency |
Make it a pdf
~/marmaghata_chikitsa_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
OUTPUT = "/home/daytona/workspace/Marmaghata_Chikitsa_Surgical_Importance.pdf"
doc = SimpleDocTemplate(
OUTPUT, pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2.2*cm, bottomMargin=2*cm,
title="Marmaghata Chikitsa & Surgical Importance",
author="Ayurveda Study Notes"
)
W, H = A4
styles = getSampleStyleSheet()
# ── Colour palette ─────────────────────────────────────────────────────────────
DKBLUE = colors.HexColor("#1B3A6B")
GOLD = colors.HexColor("#B8860B")
TEAL = colors.HexColor("#005A5B")
DKRED = colors.HexColor("#7B1A1A")
LTBLUE = colors.HexColor("#E8F0FB")
CREAM = colors.HexColor("#FFFBF0")
GREY = colors.HexColor("#F4F4F4")
WHITE = colors.white
DKGREY = colors.HexColor("#2C2C2C")
def S(name, **kw):
return ParagraphStyle(name, parent=styles["Normal"], **kw)
title_sty = S("TS", fontSize=22, textColor=DKBLUE, alignment=TA_CENTER,
spaceAfter=4, leading=28, fontName="Helvetica-Bold")
sub_sty = S("SS", fontSize=12, textColor=GOLD, alignment=TA_CENTER,
spaceAfter=2, leading=16, fontName="Helvetica-Oblique")
cap_sty = S("CS", fontSize=8, textColor=colors.HexColor("#555"),
alignment=TA_CENTER, spaceAfter=6, fontName="Helvetica-Oblique")
h2_sty = S("H2", fontSize=12, textColor=DKBLUE, leading=16,
spaceBefore=10, spaceAfter=3, fontName="Helvetica-Bold")
h3_sty = S("H3", fontSize=10.5, textColor=TEAL, leading=14,
spaceBefore=7, spaceAfter=2, fontName="Helvetica-Bold", leftIndent=8)
body_sty = S("BD", fontSize=9.5, leading=14, spaceAfter=4,
textColor=DKGREY, alignment=TA_JUSTIFY, leftIndent=8)
bullet_sty = S("BU", fontSize=9.5, leading=13, spaceAfter=2,
textColor=DKGREY, leftIndent=22, bulletIndent=10)
ref_sty = S("RF", fontSize=8.5, textColor=colors.HexColor("#444"),
leading=12, leftIndent=12, spaceAfter=2)
box_sty = S("BX", fontSize=10, textColor=DKRED, fontName="Helvetica-Bold",
alignment=TA_CENTER, leading=14)
def HR(color=GOLD, t=1.2):
return HRFlowable(width="100%", thickness=t, color=color, spaceAfter=4, spaceBefore=2)
def sec_hdr(txt, color=DKBLUE):
p = Paragraph(txt, S("sh", fontSize=13, textColor=WHITE, fontName="Helvetica-Bold",
leading=17, leftIndent=0))
tbl = Table([[p]], colWidths=[W - 4*cm])
tbl.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), 12),
]))
return tbl
def subsec_hdr(txt):
p = Paragraph(txt, S("ssh", fontSize=11, textColor=WHITE, fontName="Helvetica-Bold",
leading=15, leftIndent=0))
tbl = Table([[p]], colWidths=[W - 4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), TEAL),
("TOPPADDING", (0,0),(-1,-1), 4),
("BOTTOMPADDING", (0,0),(-1,-1), 4),
("LEFTPADDING", (0,0),(-1,-1), 10),
]))
return tbl
TH = S("TH", fontSize=8.5, textColor=WHITE, fontName="Helvetica-Bold", leading=11)
TC = S("TC", fontSize=8.5, textColor=DKGREY, leading=11)
def mktbl(hdr_texts, rows, col_widths):
hdr = [Paragraph(h, TH) for h in hdr_texts]
data = [hdr]
for row in rows:
data.append([Paragraph(str(c), TC) for c in row])
tbl = Table(data, colWidths=col_widths, repeatRows=1)
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,0), DKBLUE),
("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0),(-1,-1), 8.5),
("LEADING", (0,0),(-1,-1), 11),
("ALIGN", (0,0),(-1,-1), "LEFT"),
("VALIGN", (0,0),(-1,-1), "TOP"),
("TOPPADDING", (0,0),(-1,-1), 4),
("BOTTOMPADDING", (0,0),(-1,-1), 4),
("LEFTPADDING", (0,0),(-1,-1), 5),
("RIGHTPADDING", (0,0),(-1,-1), 5),
("GRID", (0,0),(-1,-1), 0.4, colors.HexColor("#AAAAAA")),
("ROWBACKGROUNDS",(0,1),(-1,-1), [WHITE, GREY]),
]))
return tbl
def highlight_box(txt):
tbl = Table([[Paragraph(txt, box_sty)]], colWidths=[W - 4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), colors.HexColor("#FFF5F5")),
("TOPPADDING", (0,0),(-1,-1), 8),
("BOTTOMPADDING", (0,0),(-1,-1), 8),
("LEFTPADDING", (0,0),(-1,-1), 10),
("BOX", (0,0),(-1,-1), 1.2, DKRED),
]))
return tbl
# ══════════════════════════════════════════════════════════════════════════════
story = []
# ── Title ──────────────────────────────────────────────────────────────────────
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("MARMAGHATA CHIKITSA", title_sty))
story.append(Paragraph("& Surgical Importance in Shalya Tantra", sub_sty))
story.append(Paragraph("Based on Sushruta Samhita, Ashtanga Hridaya, Charaka Samhita", cap_sty))
story.append(HR(GOLD, 2))
story.append(Spacer(1, 0.3*cm))
# ── 1. DEFINITION ─────────────────────────────────────────────────────────────
story.append(sec_hdr("1. MARMAGHATA — DEFINITION"))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"<b>Marmaghata</b> (also Marmabhighata) is composed of: <b>Marma</b> (vital point) + "
"<b>Aghata/Abhighata</b> (trauma/blow/injury).", body_sty))
story.append(Paragraph(
"It refers to any injury, trauma, or insult to Marma points caused by:", body_sty))
causes = ["Incision — Chedana", "Stabbing / Piercing — Bhedana",
"Burning / Cauterization — Dahana", "External Blow — Abhighata",
"Compression or Pressure — Peedana", "Foreign Body Impact — Shalya Vedha"]
for c in causes:
story.append(Paragraph(f"• {c}", bullet_sty))
story.append(Spacer(1, 0.15*cm))
story.append(highlight_box(
'"The location of the damage is given more weightage than the type of injury.\n'
'Even a minor injury at a critical Marma site can be fatal."'))
story.append(Spacer(1, 0.2*cm))
# ── 2. LAKSHANA ────────────────────────────────────────────────────────────────
story.append(sec_hdr("2. MARMAGHATA LAKSHANA (Signs & Symptoms)"))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph(
"Acharya Sushruta described the following general symptoms (Su.Sa.Su. 25/34-35):", body_sty))
lak_rows = [
["1", "Bhrama", "Giddiness / Vertigo"],
["2", "Pralapa", "Delirium / Confusion"],
["3", "Patana", "Fainting / Collapse"],
["4", "Pramoha", "Delusion / Altered mental status"],
["5", "Vicheshtana", "Loss of movement of body parts"],
["6", "Sanlayana", "Semi-consciousness"],
["7", "Ushnata", "Rise in body temperature / Fever"],
["8", "Srasta-angataa", "Weakness / Laxity of body parts"],
["9", "Murcha", "Syncope / Fainting"],
["10", "Urdhwavata", "Increased expirations / Dyspnea"],
["11", "Vatakrita Ruja", "Severe pain caused by vitiated Vata"],
["12", "Mamsadokabham Rudhiram", "Bleeding resembling meat-wash fluid"],
["13", "Sarvendriyaarthoparama", "Cessation of all sense organ activity"],
]
story.append(mktbl(["#", "Sanskrit Term", "Clinical Manifestation"],
lak_rows, [1.0*cm, 5.5*cm, 10.2*cm]))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph(
"<b>Additional signs (A.Sa.Sha. 7):</b> Gaurava (heaviness), Tandra (drowsiness), "
"Sheetata (cold extremities), Sweda (sweating), Vamana (vomiting).", body_sty))
# ── 3. CHIKITSA ────────────────────────────────────────────────────────────────
story.append(Spacer(1, 0.2*cm))
story.append(sec_hdr("3. MARMAGHATA CHIKITSA — TREATMENT"))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph(
"Treatment follows the classical three-phase framework based on Su.Sa.Chi.Stha. 5/23, "
"Ashtanga Hridaya and Charaka Samhita:", body_sty))
# Phase 1
story.append(Spacer(1, 0.1*cm))
story.append(subsec_hdr("PHASE 1 — PURVA KARMA (Pre-treatment / Preparatory Measures)"))
story.append(Spacer(1, 0.1*cm))
purva = [
("<b>Triage & Assessment</b>", "Determine Marma type (Sadyah Pranahara / Kalantara / Vishalyaghna / Vaikalyakara / Rujakara) to guide prognosis and urgency"),
("<b>Dosha Assessment</b>", "Identify primarily vitiated Dosha — Vata, Pitta, or Kapha"),
("<b>Patient Stabilisation</b>", "Consciousness assessment, Nadi Pariksha (pulse), thermal status evaluation"),
("<b>Shalya Assessment</b>", "For Vishalyaghna Marma injury: assess embedded foreign body — DO NOT remove without preparation"),
("<b>Wound Management</b>", "Initial cleaning (Prakshalana) with appropriate herbal decoctions"),
("<b>Administration of Ahara</b>", "Suitable diet/fluid to stabilise Prana before treatment begins"),
]
story.append(mktbl(["Step", "Action"], purva, [4.5*cm, 12.2*cm]))
# Phase 2
story.append(Spacer(1, 0.2*cm))
story.append(subsec_hdr("PHASE 2 — PRADHANA KARMA (Main Treatment Modalities)"))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph(
"Sushruta (Su.Sa.Chi. 5/23): <i>\"Snehopanaha Mahagni Mardana...\"</i> — prescribes "
"Oleation, Poultice, Agnikarma, Bandaging and Massage as the principal modalities.", body_sty))
story.append(Spacer(1, 0.1*cm))
modalities = [
("A. SNEHA (Oleation)", "PRIMARY treatment. Vata is chief Dosha in most Marmaghata (Prana Vayu affected).",
"Internal: medicated Ghrita/Taila orally.\nExternal: Abhyanga with Mahanarayan Taila, Kshirabala Taila, Bala Taila"),
("B. UPANAHA (Poultice)", "Warm medicated dressing applied to injured Marma site.",
"Vata-pacifying herb paste; reduces swelling, pain, stiffness; heals Sira, Snayu, Mamsa. Best for Rujakara & Vaikalyakara Marma"),
("C. AGNIKARMA (Cauterisation)", "Controlled heat application at/near Marma site.",
"For Kapha-dominant presentations (swelling, laxity). Activates local Agni, restores balance. Indicated in Sandhi Marma injuries (Janu, Gulpha, Kurpara)"),
("D. BANDHANA (Bandaging)", "Proper immobilisation of injured Marma region.",
"Prevents further trauma; supports healing. 14 types of Bandha; choose per location. Essential for Sandhi & Asthi Marma injuries"),
("E. MARDANA (Massage)", "Targeted therapeutic massage and pressure on injured Marma.",
"Restores Prana flow. Distinct from routine Abhyanga — deliberate, precise. Must be performed by trained practitioners only"),
("F. RAKTAMOKSHANA (Bloodletting)", "Removes vitiated Rakta in Sira Marma injury.",
"Methods: Jalauka (leech), Pracchana (scarification), Siravyadha. Relieves pressure, burning, throbbing pain in Pitta-Sira Marma"),
("G. SHODHANA (Purification)", "Panchakarma based on dominant Dosha.",
"Vamana (Kapha dominant) | Virechana (Pitta dominant) | Basti (Vata dominant) — Anuvasana Basti is most important; pacifies Prana & Apana Vayu"),
]
for mod, desc, detail in modalities:
story.append(KeepTogether([
Paragraph(f"<b>{mod}</b>", h3_sty),
Paragraph(desc, body_sty),
Paragraph(detail, bullet_sty),
Spacer(1, 0.05*cm),
]))
# Specific protocols table
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph("<b>Specific Marma-Based Treatment Protocols:</b>", h3_sty))
proto_rows = [
["Vata dominant (Rujakara, Vaikalyakara)", "Snehana, Mardana, Upanaha, Basti (Anuvasana)"],
["Pitta dominant (haemorrhage, burning)", "Raktamokshana, cooling Lepa, Virechana, Pitta-pacifying Ghrita"],
["Kapha dominant (swelling, laxity)", "Agnikarma, Udvartana, Upanaha, dry fomentation"],
["Vishalyaghna Marma", "Full Snehana + Vata-pacifying Basti BEFORE Shalya Nirhana (extraction) — extraction without prep = immediate death"],
["Sadyah Pranahara Marma", "Emergency Prana stabilisation, Hridayavarana herbs, Mritasanjivani preparations"],
["Kalantara Pranahara Marma", "Sustained Sneha + Basti + Rasayana; close monitoring over days/weeks"],
]
story.append(mktbl(["Marma Injury Type", "Primary Treatment"],
proto_rows, [6.5*cm, 10.2*cm]))
# Phase 3
story.append(Spacer(1, 0.2*cm))
story.append(subsec_hdr("PHASE 3 — PASCHATA KARMA (Post-treatment / Rehabilitation)"))
story.append(Spacer(1, 0.1*cm))
paschata = [
"<b>Rasayana Therapy:</b> Rejuvenating herbs to restore tissue integrity — Ashwagandha, Shatavari, Bala, Amalaki",
"<b>Dietary management (Pathya):</b> Vata-pacifying, easily digestible, nutritive warm and unctuous foods",
"<b>Yoga and Vyayama:</b> Gradual, guided physical rehabilitation to restore lost function in Vaikalyakara injuries",
"<b>Sattvavajaya:</b> Psychological support for patients with delirium, altered consciousness, or post-traumatic distress",
"<b>Marma stimulation therapy:</b> Gentle pressure at healing Marma points to restore Prana flow — therapeutic, NOT traumatic",
]
for p in paschata:
story.append(Paragraph(f"• {p}", bullet_sty))
# Phase summary table
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("<b>Phase-wise Summary:</b>", h3_sty))
phase_rows = [
["Purva Karma", "Triage, Dosha assessment, Shalya evaluation, wound cleaning", "Stabilise, prevent worsening"],
["Pradhana Karma", "Sneha, Upanaha, Agnikarma, Bandhana, Mardana, Raktamokshana, Panchakarma", "Treat root cause, restore Prana"],
["Paschata Karma", "Rasayana, Pathya, Yoga, Marma stimulation", "Rehabilitate, prevent recurrence"],
]
story.append(mktbl(["Phase", "Methods", "Goal"],
phase_rows, [3.8*cm, 9.0*cm, 3.9*cm]))
# ── 4. SURGICAL IMPORTANCE ────────────────────────────────────────────────────
story.append(Spacer(1, 0.3*cm))
story.append(sec_hdr("4. SURGICAL IMPORTANCE OF MARMA (SHALYA TANTRA)"))
story.append(Spacer(1, 0.15*cm))
story.append(highlight_box(
'"Shalya Vishayardham" — Su.Sa.Sha. 6/35\n'
'Knowledge of Marma = Half the entire science of Shalya Tantra'))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("<b>4.1 Pre-Surgical Marma Awareness</b>", h2_sty))
story.append(Paragraph(
"Before performing any surgical procedure, the surgeon must:", body_sty))
presurg = [
"<b>Map Marma in the operative field</b> — identify all Marma points within and adjacent to the proposed surgical site",
"<b>Choose incision lines (Chedya Marga)</b> that avoid Marma — classical texts specify precise incision directions and depths to safely bypass vital points",
"<b>Control incision depth</b> — different Marma have different Pramana (dimensions); surgeon must not penetrate beyond safe depth in Marma-dense regions",
"<b>Select instruments carefully</b> — blunt dissection preferred near Marma sites to avoid inadvertent piercing of Sira or Snayu",
"<b>Follow procedure-specific Marma rules</b> — each Shastra Karma chapter in Sushruta ends with guidelines for protecting nearby Marma; e.g., Ashmari Chikitsa chapter specifically mentions protecting the <b>Ashtamarma</b> of the bladder-perineal region",
]
for p in presurg:
story.append(Paragraph(f"• {p}", bullet_sty))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("<b>4.2 Para-Surgical Procedures and Marma Protection</b>", h2_sty))
parasurg_rows = [
["Siravedha (phlebotomy)", "Avoid Sira Marma; no venesection near Hridaya, Nabhi, Nila regions"],
["Agnikarma (cauterisation)", "Never apply heat directly over Sadyah Pranahara Marma — avoid Hridaya, Nabhi, Shira"],
["Kshara Karma (chemical cautery)", "Strictly prohibited over Marma — Kshara destroys underlying Sira and Snayu"],
["Raktamokshana (bloodletting)", "Site selection must avoid Marma; Jalauka not to be placed over thin-skinned Marma regions"],
["Chedana/Bhedana (incision/excision)", "Rule: Never incise directly over a Marma; take oblique or lateral approach"],
["Vidhana (probing)", "Probes must not be advanced through Marma Sthana — direction of probe must be verified before insertion"],
]
story.append(mktbl(["Procedure", "Marma Precaution"],
parasurg_rows, [5.0*cm, 11.7*cm]))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("<b>4.3 Vishalyaghna Marma — The Critical Surgical Rule</b>", h2_sty))
story.append(highlight_box(
"When a weapon is embedded in Simanta, Sthapani, or Utkshepa Marma —\n"
"the patient LIVES as long as it remains.\n"
"Extraction (Shalya Nirhana) MUST only be done after full Snehana + Vata-pacifying Basti."))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph(
"Because extraction from these three Vishalyaghna Marmas without preparation causes "
"<b>immediate death</b>. The classical surgeon must prepare the patient thoroughly before "
"any attempt at foreign body removal.", body_sty))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("<b>4.4 Specific Surgical Scenarios and Marma Considerations</b>", h2_sty))
scenarios = [
["Thyroid surgery", "Nila, Manya Marma region (neck)", "Speech loss, dysphonia, vascular injury"],
["Inguinal/groin surgery", "Lohitaksha, Vitapa Marma", "Arterial haemorrhage, reproductive dysfunction (Klibata)"],
["Knee surgery", "Janu Marma (Sandhi)", "Permanent lameness (Pangu), popliteal vessel injury"],
["Orbital/ophthalmic surgery", "Apanga, Avarta Marma", "Permanent blindness (Andhatva)"],
["Bladder/pelvic surgery", "Vasti Marma (Snayu)", "Urinary peritonitis, pelvic vascular shock"],
["Cranial/temporal surgery", "Shankha, Adhipati, Simanta", "Extradural haematoma, immediate death"],
["Neck vessel surgery", "Matrika (×8), Nila, Manya", "Exsanguination, stroke, immediate death"],
["Abdominal aortic area", "Nabhi Marma (Sira)", "Catastrophic haemorrhage — Sadyah Pranahara"],
]
story.append(mktbl(
["Surgical Area", "Relevant Marma", "Risk if Marma Injured"],
scenarios, [4.5*cm, 5.0*cm, 7.2*cm]
))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph("<b>4.5 Modern Anatomical Correlations</b>", h2_sty))
modern_rows = [
["Hridaya", "Heart + pericardium", "Cardiac tamponade, cardiac arrest"],
["Nabhi", "Aortic bifurcation / inferior vena cava", "Catastrophic haemorrhage — Sadyah Pranahara"],
["Vasti", "Urinary bladder / pelvic vessels", "Urinary peritonitis, vascular shock"],
["Nila / Manya", "Carotid artery / jugular vein / vagus nerve", "Stroke, haemorrhage, hoarseness"],
["Matrika (×8)", "Bilateral common/internal carotid + jugular veins", "Immediate exsanguination or stroke"],
["Shankha", "Middle meningeal artery (extradural)", "Extradural haematoma, rapid death"],
["Lohitaksha", "Femoral triangle (femoral artery/vein/nerve)", "Haemorrhage, femoral nerve palsy"],
["Apanga", "Ophthalmic artery / optic nerve territory", "Permanent blindness"],
["Vidhura", "Facial nerve (mastoid) / posterior auricular artery", "Facial palsy, deafness"],
["Janu", "Popliteal artery / common peroneal nerve", "Vascular injury, foot drop"],
["Kshipra", "Digital vessels + digital nerves", "Digital ischaemia, tetanic response"],
["Adhipati", "Superior sagittal sinus / brain vertex", "Immediate death from brain injury"],
]
story.append(mktbl(
["Marma", "Modern Anatomical Equivalent", "Surgical Risk if Injured"],
modern_rows, [3.5*cm, 7.0*cm, 6.2*cm]
))
# ── 5. PANCHAKARMA ────────────────────────────────────────────────────────────
story.append(Spacer(1, 0.3*cm))
story.append(sec_hdr("5. MARMA IN PANCHAKARMA SAFETY"))
story.append(Spacer(1, 0.15*cm))
pk_rows = [
["Abhyanga", "Marma points must receive specific pressure — neither too heavy (injury) nor too light (ineffective); stroke direction must follow Marma Sthana"],
["Swedana", "Intense heat over Sadyah Pranahara Marma (Hridaya, Nabhi, testes) is contraindicated"],
["Nasya", "Sthapani Marma (glabella) must be correctly stimulated before Nasya to open Prana pathways"],
["Shirodhara / Shirobasti", "Head Marma awareness essential — Adhipati, Sthapani, Shankha must be protected from pressure/heat"],
["Basti (enema)", "Vasti Marma proximity means proper positioning and pressure control is critical to avoid bladder trauma"],
["Raktamokshana", "Site-specific — Jalauka (leeches) must NOT be placed directly over Marma regions"],
]
story.append(mktbl(["Panchakarma Procedure", "Marma Precaution"], pk_rows, [4.5*cm, 12.2*cm]))
# ── 6. PATHOGENESIS ───────────────────────────────────────────────────────────
story.append(Spacer(1, 0.3*cm))
story.append(sec_hdr("6. PATHOGENESIS (SAMPRAPTI) OF MARMAGHATA"))
story.append(Spacer(1, 0.15*cm))
path_rows = [
["Step 1", "External Trauma (Agantuja Nidana)", "Mechanical injury to Marma Sthana"],
["Step 2", "Vitiation of Prana Vayu", "Prana Vayu at Marma site is primarily disturbed"],
["Step 3", "Disturbance of Agni, Soma, Vayu", "Panchabhutic elements at Marma Pradesha disrupted"],
["Step 4", "Tridosha Vaishamya", "Vata, Pitta, Kapha imbalance develops (Nija component)"],
["Step 5", "Dhatu Kshaya", "Tissue destruction at affected Marma region"],
["Step 6A", "Agneya Marma injured", "Sadyah Pranahara — immediate death"],
["Step 6B", "Agneya + Saumya injured", "Kalantara Pranahara — delayed death"],
["Step 6C", "Vayavya Marma injured", "Vishalyaghna — death on Shalya removal"],
["Step 6D", "Saumya Marma injured", "Vaikalyakara — permanent deformity"],
["Step 6E", "Agni + Vayu Marma injured", "Rujakara — excruciating pain"],
]
story.append(mktbl(["Step", "Event", "Outcome"], path_rows, [2.0*cm, 6.0*cm, 8.7*cm]))
# ── 7. THERAPEUTIC MARMA CHIKITSA ─────────────────────────────────────────────
story.append(Spacer(1, 0.3*cm))
story.append(sec_hdr("7. MARMA CHIKITSA AS POSITIVE THERAPEUTIC APPLICATION"))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph(
"Beyond injury management, Marma Chikitsa uses <b>deliberate stimulation</b> (not injury) "
"of Marma points to release blocked Prana and restore Dosha balance:", body_sty))
therapeutic = [
"<b>Musculoskeletal pain:</b> Gridhrasi (sciatica), Sandhivata (osteoarthritis), Avabahuka (frozen shoulder)",
"<b>Neurological conditions:</b> Hemiplegia, facial palsy, peripheral neuropathy, traumatic paraplegia",
"<b>Sports injuries:</b> Manibandha, Janu, Gulpha, Kurchashira Marma injuries common in athletes",
"<b>Stress and psychosomatic disorders:</b> Stimulation of head Marma (Adhipati, Sthapani) for mental calm",
"<b>Post-surgical rehabilitation:</b> Restoring function in post-operative Vaikalyakara injuries",
"<b>Mechanism:</b> Stimulating a specific Marma corrects Vikruti (abnormal state) caused by vitiated Dosha, restoring Prakruti (normal tissue function)",
]
for t in therapeutic:
story.append(Paragraph(f"• {t}", bullet_sty))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph("<b>Methods used therapeutically:</b>", h3_sty))
methods = [
["Sparsha (pressure)", "Gentle, precise manual pressure at selected Marma point"],
["Marma Abhyanga", "Targeted oil massage with Vata-pacifying oils; directional strokes"],
["Agnikarma at Marma", "Controlled thermal stimulation for Kapha-dominant conditions"],
["Mardana", "Deep tissue massage and manipulation to restore Prana circulation"],
["Lepa (Herbal paste)", "Specific herb pastes applied to injured Marma — e.g., Manjishthadi Lepa for Rujakara Marma"],
]
story.append(mktbl(["Method", "Application"], methods, [5.0*cm, 11.7*cm]))
# ── 8. CLASSICAL TEXT REFERENCES ──────────────────────────────────────────────
story.append(Spacer(1, 0.3*cm))
story.append(sec_hdr("8. IMPORTANCE IN CLASSICAL TEXTS"))
story.append(Spacer(1, 0.15*cm))
text_rows = [
["Sushruta Samhita", "Sha.Stha. 6", "Prateka Marma Nirdesa — complete Marma description and Vidha Lakshana"],
["Sushruta Samhita", "Chi.Stha. 5/23", "Direct Marmaghata Chikitsa — Sneha, Upanaha, Agnikarma, Bandhana, Mardana"],
["Charaka Samhita", "Siddhi Sthana Ch. 9", "Trimarmiya Adhyaya — on three supreme Marma (Hridaya, Shira, Vasti)"],
["Ashtanga Hridaya", "Sha.Stha. 4", "Marma as seats of Prana; added Dhamani Marma category (Vagbhata)"],
["Ashtanga Samgraha", "Sha.Stha. 7", "General Marmaghata symptoms; treatment principles"],
]
story.append(mktbl(
["Text", "Reference", "Content"],
text_rows, [4.5*cm, 4.0*cm, 8.2*cm]
))
# ── 9. KEY PRINCIPLES SUMMARY ─────────────────────────────────────────────────
story.append(Spacer(1, 0.3*cm))
story.append(sec_hdr("9. KEY PRINCIPLES SUMMARY"))
story.append(Spacer(1, 0.15*cm))
key_rows = [
["Marma = Half of Surgery", '"Shalya Vishayardham" — Su.Sa.Sha. 6/35'],
["Primary Marmaghata Chikitsa", "Snehana (oleation) is first-line treatment — Vata is primary Dosha"],
["Vishalyaghna Rule", "NEVER extract embedded weapon without full Snehana + Basti preparation"],
["Surgical Safety", "Every incision, probe, and cauterisation must be planned to avoid Marma"],
["Treatment Goal", "Restore Prana Vayu balance at injured Marma; correct Tridosha Vaishamya"],
["Prognostic Guide", "Type of Marma (Prognosis classification) determines treatment urgency"],
["Therapeutic Use", "Deliberate Marma stimulation heals disease; injury destroys life"],
["Panchakarma", "All 5 Panchakarma procedures must be performed with Marma awareness"],
]
story.append(mktbl(["Principle", "Classical Basis / Detail"], key_rows, [5.5*cm, 11.2*cm]))
# ── References ─────────────────────────────────────────────────────────────────
story.append(Spacer(1, 0.4*cm))
story.append(HR(GOLD, 1))
story.append(Paragraph("References", h2_sty))
refs = [
"Sushruta Samhita, Sharira Sthana 6 & Chikitsa Sthana 5/23 — Primary classical source",
"Ashtanga Hridaya, Sharira Sthana 4 — Vagbhata",
"Charaka Samhita, Siddhi Sthana Chapter 9 — Trimarmiya Adhyaya",
"Ashtanga Samgraha, Sharira Sthana 7",
"Marma Therapy in Ayurveda: A Comprehensive Literature Review — IJNRD, Vol. 11, Issue 2, Feb 2026",
"Importance and Modern Relevance of Marma Sharira in Surgical Practice — IJCRT, Vol. 13, Issue 4, April 2025",
"A Review on Marma and Marmaghata — IJCRT, 2023",
"Concept, Classification and Clinical Importance in Ayurveda — IJIRT, 2026",
]
for r in refs:
story.append(Paragraph(f"• {r}", ref_sty))
story.append(Spacer(1, 0.3*cm))
story.append(HR(DKBLUE, 0.8))
story.append(Paragraph(
"Document generated for academic/study purposes based on classical Ayurvedic texts.",
cap_sty))
# ── BUILD ──────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace && python marmaghata_chikitsa_pdf.py 2>&1
ls -lh /home/daytona/workspace/Marmaghata_Chikitsa_Surgical_Importance.pdf
Marmaghata Chikitsa Surgical Importance
PDF Document · PDF
Describe methods and types of sterilization for 5 marks essay question in university exam
| Method | Mechanism | Temperature/Dose | Uses | Kills Spores? |
|---|---|---|---|---|
| Autoclave (steam) | Protein denaturation | 121°C / 15 min | Surgical instruments, dressings | Yes |
| Dry heat | Oxidation, denaturation | 160°C / 2 hr | Glassware, oils, metals | Yes |
| Incineration | Direct combustion | Flame | Wire loops, waste | Yes |
| Ethylene oxide gas | DNA alkylation | Room temp / 4 hr + 12 hr aeration | Heat-labile instruments | Yes |
| Plasma gas (H₂O₂) | Free radical oxidation | Low temp | Instruments | Yes |
| Glutaraldehyde | Protein cross-linking | Room temp / prolonged | Endoscopes | Yes (prolonged) |
| UV radiation | Thymine dimer formation | 260 nm wavelength | Air, surfaces | Yes (poor penetration) |
| Ionizing radiation | Free radical DNA damage | Gamma/X-ray | Disposable supplies, food | Yes |
Make a pdf
~/sterilization_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
OUTPUT = "/home/daytona/workspace/Sterilization_Methods_Types.pdf"
doc = SimpleDocTemplate(
OUTPUT, pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2.2*cm, bottomMargin=2*cm,
title="Methods and Types of Sterilization",
author="Medical Microbiology Study Notes"
)
W, H = A4
# ── Palette ────────────────────────────────────────────────────────────────────
DKBLUE = colors.HexColor("#1B3A6B")
GOLD = colors.HexColor("#B8860B")
TEAL = colors.HexColor("#005A5B")
GREEN = colors.HexColor("#1A5C2A")
DKRED = colors.HexColor("#7B1A1A")
GREY = colors.HexColor("#F4F4F4")
LTBLUE = colors.HexColor("#EAF0FB")
WHITE = colors.white
DKGREY = colors.HexColor("#2C2C2C")
def S(name, **kw):
return ParagraphStyle(name, parent=getSampleStyleSheet()["Normal"], **kw)
title_s = S("T", fontSize=22, textColor=DKBLUE, alignment=TA_CENTER,
spaceAfter=4, leading=28, fontName="Helvetica-Bold")
sub_s = S("SU", fontSize=11, textColor=GOLD, alignment=TA_CENTER,
spaceAfter=2, leading=15, fontName="Helvetica-Oblique")
cap_s = S("CA", fontSize=8, textColor=colors.HexColor("#555"),
alignment=TA_CENTER, spaceAfter=6, fontName="Helvetica-Oblique")
h2_s = S("H2", fontSize=12, textColor=DKBLUE, leading=16,
spaceBefore=10, spaceAfter=3, fontName="Helvetica-Bold")
h3_s = S("H3", fontSize=10.5, textColor=TEAL, leading=14,
spaceBefore=7, spaceAfter=2, fontName="Helvetica-Bold", leftIndent=8)
h4_s = S("H4", fontSize=10, textColor=GREEN, leading=13,
spaceBefore=5, spaceAfter=1, fontName="Helvetica-Bold", leftIndent=16)
body_s = S("BD", fontSize=9.5, leading=14, spaceAfter=4,
textColor=DKGREY, alignment=TA_JUSTIFY, leftIndent=8)
bullet_s = S("BU", fontSize=9.5, leading=13, spaceAfter=2,
textColor=DKGREY, leftIndent=24, bulletIndent=10)
ref_s = S("RF", fontSize=8.5, textColor=colors.HexColor("#444"),
leading=12, leftIndent=12, spaceAfter=2)
key_s = S("KY", fontSize=9.5, textColor=DKGREY, leading=13,
leftIndent=20, spaceAfter=2, fontName="Helvetica")
def HR(color=GOLD, t=1.2):
return HRFlowable(width="100%", thickness=t, color=color, spaceAfter=4, spaceBefore=2)
def sec_hdr(txt, color=DKBLUE):
p = Paragraph(txt, S("sh", fontSize=13, textColor=WHITE, fontName="Helvetica-Bold",
leading=17, leftIndent=0))
tbl = Table([[p]], colWidths=[W - 4*cm])
tbl.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), 12),
]))
return tbl
def subsec_hdr(txt, color=TEAL):
p = Paragraph(txt, S("ssh", fontSize=11, textColor=WHITE, fontName="Helvetica-Bold",
leading=15))
tbl = Table([[p]], colWidths=[W - 4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), color),
("TOPPADDING", (0,0),(-1,-1), 4),
("BOTTOMPADDING", (0,0),(-1,-1), 4),
("LEFTPADDING", (0,0),(-1,-1), 10),
]))
return tbl
def highlight_box(txt, bg=LTBLUE, border=DKBLUE):
p = Paragraph(txt, S("hb", fontSize=9.5, textColor=DKGREY, leading=13,
alignment=TA_JUSTIFY))
tbl = Table([[p]], colWidths=[W - 4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), bg),
("TOPPADDING", (0,0),(-1,-1), 7),
("BOTTOMPADDING", (0,0),(-1,-1), 7),
("LEFTPADDING", (0,0),(-1,-1), 10),
("RIGHTPADDING", (0,0),(-1,-1), 10),
("BOX", (0,0),(-1,-1), 1.2, border),
]))
return tbl
def keybox(txt):
p = Paragraph(txt, S("kb", fontSize=9.5, textColor=DKRED, fontName="Helvetica-Bold",
leading=13, alignment=TA_JUSTIFY))
tbl = Table([[p]], colWidths=[W - 4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), colors.HexColor("#FFF5F5")),
("TOPPADDING", (0,0),(-1,-1), 7),
("BOTTOMPADDING", (0,0),(-1,-1), 7),
("LEFTPADDING", (0,0),(-1,-1), 10),
("RIGHTPADDING", (0,0),(-1,-1), 10),
("BOX", (0,0),(-1,-1), 1.2, DKRED),
]))
return tbl
TH = S("TH", fontSize=8.5, textColor=WHITE, fontName="Helvetica-Bold", leading=11)
TC = S("TC", fontSize=8.5, textColor=DKGREY, leading=11)
def mktbl(headers, rows, col_widths):
data = [[Paragraph(h, TH) for h in headers]]
for row in rows:
data.append([Paragraph(str(c), TC) for c in row])
tbl = Table(data, colWidths=col_widths, repeatRows=1)
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DKBLUE),
("FONTSIZE", (0,0), (-1,-1), 8.5),
("LEADING", (0,0), (-1,-1), 11),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#AAAAAA")),
("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY]),
]))
return tbl
# ══════════════════════════════════════════════════════════════════════════════
story = []
# ── Title block ────────────────────────────────────────────────────────────────
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("METHODS AND TYPES OF STERILIZATION", title_s))
story.append(Paragraph("5-Mark University Exam Essay", sub_s))
story.append(Paragraph("Medical Microbiology | Based on Murray et al. & Sherris & Ryan's Medical Microbiology", cap_s))
story.append(HR(GOLD, 2))
story.append(Spacer(1, 0.25*cm))
# ── Definition ─────────────────────────────────────────────────────────────────
story.append(sec_hdr("DEFINITION"))
story.append(Spacer(1, 0.15*cm))
story.append(highlight_box(
"<b>Sterilization</b> is the <b>total destruction or removal of ALL forms of microbial life</b>, "
"including the most resistant forms — bacterial spores, mycobacteria, non-enveloped (non-lipid) "
"viruses, and fungi. It is distinct from <b>Disinfection</b> (destroys most but not all microbes) "
"and <b>Antisepsis</b> (use of chemical agents on living tissue to inhibit microbes)."))
story.append(Spacer(1, 0.2*cm))
# Definitions mini-table
def_rows = [
["Sterilization", "Total destruction of ALL microbial life including spores"],
["Disinfection", "Destruction of most microbes; spores and some resistant organisms survive"],
["Antisepsis", "Chemical agents used on living tissue to inhibit/eliminate microbes; no sporicidal action implied"],
["Decontamination", "Reduction of microbial load to a safe level; does not imply complete sterility"],
]
story.append(mktbl(["Term", "Definition"], def_rows, [4.5*cm, 12.2*cm]))
story.append(Spacer(1, 0.25*cm))
# ── Classification overview ────────────────────────────────────────────────────
story.append(sec_hdr("CLASSIFICATION OF STERILIZATION METHODS"))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("Sterilization methods are broadly classified into three categories:", body_s))
class_rows = [
["I", "Physical Methods", "Heat (Autoclave, Dry heat, Incineration), Filtration"],
["II", "Gaseous / Chemical Methods","Ethylene oxide, Hydrogen peroxide plasma, Formaldehyde, Peracetic acid, Glutaraldehyde"],
["III", "Radiation Methods", "Ultraviolet (UV) radiation, Ionizing radiation (Gamma/X-rays)"],
]
story.append(mktbl(["Category", "Type", "Examples"], class_rows, [1.5*cm, 4.5*cm, 10.7*cm]))
story.append(Spacer(1, 0.25*cm))
# ══════════════════════════════════════════════════════════════════════════════
# I. PHYSICAL METHODS
story.append(sec_hdr("I. PHYSICAL METHODS"))
story.append(Spacer(1, 0.15*cm))
# A. Moist Heat
story.append(subsec_hdr("A. Moist Heat — Autoclave (Steam Under Pressure)"))
story.append(Spacer(1, 0.1*cm))
story.append(keybox("GOLD STANDARD of sterilization — most widely used, inexpensive, nontoxic, reliable"))
story.append(Spacer(1, 0.1*cm))
autoclave_pts = [
"<b>Mechanism:</b> Steam at high temperature irreversibly denatures microbial proteins by disrupting "
"hydrogen bonds between peptide groups. Moist heat is far more rapid and effective than dry heat because "
"reactive water molecules aid protein denaturation at relatively low temperatures.",
"<b>Standard Cycle:</b> Saturated steam at <b>121°C for 15 minutes</b> at 15 psi (103 kPa). "
"Spores directly exposed are killed in less than 5 minutes; 15 minutes allows margin for steam penetration.",
"<b>Flash Autoclave</b> (operating rooms): <b>134°C for 3 minutes</b> — used for rapid turnaround of metal instruments.",
"<b>Three critical parameters:</b> Time, Temperature, and Moisture. A drop of just <b>1.7°C increases required "
"exposure time by 48%</b>.",
"<b>Mechanism of action:</b> Pressure per se plays NO direct role in sterilization — it only ensures "
"the higher temperature of the steam.",
"<b>Types:</b> (1) Downward displacement autoclave — air displaced by gravity as steam enters from top; "
"(2) Pre-vacuum autoclave — air evacuated mechanically before steam entry.",
"<b>Kills:</b> All vegetative bacteria, bacterial spores, viruses, fungi — complete sterilization.",
"<b>Limitations:</b> Cannot be used for heat-labile plastics, certain lensed instruments, rubber items, "
"or moisture-sensitive materials.",
]
for pt in autoclave_pts:
story.append(Paragraph(f"• {pt}", bullet_s))
story.append(Spacer(1, 0.15*cm))
# B. Dry Heat
story.append(subsec_hdr("B. Dry Heat Sterilization"))
story.append(Spacer(1, 0.1*cm))
dry_pts = [
"<b>Temperature required:</b> <b>160°C for 2 hours</b> (no moisture present).",
"<b>Mechanism:</b> Oxidative destruction of cellular components and protein denaturation at high temperature.",
"<b>Uses:</b> Glassware, metal instruments, oils, powders, and materials that cannot be exposed to moisture.",
"<b>Disadvantage:</b> Prolonged exposure required; damages many instruments — <b>not currently recommended</b> "
"for most clinical items when autoclaving is possible.",
]
for pt in dry_pts:
story.append(Paragraph(f"• {pt}", bullet_s))
story.append(Spacer(1, 0.15*cm))
# C. Incineration
story.append(subsec_hdr("C. Incineration (Flaming)"))
story.append(Spacer(1, 0.1*cm))
inc_pts = [
"Simplest method — exposure to <b>naked flame</b> (e.g., wire loop in microbiology labs).",
"Effective for emergency sterilization of knife blades, needles, or inoculation loops.",
"Used industrially for destruction and disposal of contaminated disposable materials and biomedical waste.",
"Complete and immediate — nothing survives direct incineration.",
]
for pt in inc_pts:
story.append(Paragraph(f"• {pt}", bullet_s))
story.append(Spacer(1, 0.15*cm))
# D. Boiling / Pasteurization note
story.append(subsec_hdr("D. Boiling and Pasteurization (NOT true sterilization — for comparison)"))
story.append(Spacer(1, 0.1*cm))
bp_rows = [
["Boiling (100°C)", "Kills vegetative bacteria, most viruses; spores may survive — HIGH-level disinfection only, NOT sterilization"],
["Pasteurization", "Kills vegetative bacteria; intermediate level — used for beverages and plastic hospital equipment"],
]
story.append(mktbl(["Method", "Effect"], bp_rows, [4.5*cm, 12.2*cm]))
story.append(Spacer(1, 0.2*cm))
# E. Filtration
story.append(subsec_hdr("E. Filtration"))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph(
"• Membrane filters (0.22 μm pore size) physically remove bacteria and fungi from heat-labile liquids "
"(e.g., serum, vaccines, certain drugs). Does NOT remove viruses or toxins — used to sterilize solutions "
"rather than surfaces.", bullet_s))
story.append(Spacer(1, 0.25*cm))
# ══════════════════════════════════════════════════════════════════════════════
# II. GASEOUS / CHEMICAL METHODS
story.append(sec_hdr("II. GASEOUS / CHEMICAL METHODS"))
story.append(Spacer(1, 0.15*cm))
# ETO
story.append(subsec_hdr("A. Ethylene Oxide (ETO) Gas"))
story.append(Spacer(1, 0.1*cm))
eto_pts = [
"<b>Indication:</b> Sterilization of <b>temperature- or pressure-sensitive items</b> — artificial heart valves, "
"certain plastics, lensed instruments, catheters, and other heat-labile devices.",
"<b>Mechanism:</b> <b>Alkylating agent</b> — inactivates microorganisms by replacing labile hydrogen atoms "
"in DNA, permanently disrupting DNA replication and protein synthesis.",
"<b>Procedure:</b> Exposure for <b>4 hours</b>, followed by mandatory <b>12 hours of aeration</b> to allow "
"the toxic residual gas to diffuse out of absorbed materials before clinical use.",
"<b>Spectrum:</b> Kills ALL microorganisms including bacterial spores — true sterilization.",
"<b>Disadvantages:</b> Flammable and potentially <b>explosive</b>; <b>carcinogenic</b> to laboratory "
"animals; strict occupational safety regulations; aeration requirement delays availability; "
"<b>avoided when acceptable alternatives exist</b>.",
]
for pt in eto_pts:
story.append(Paragraph(f"• {pt}", bullet_s))
story.append(Spacer(1, 0.15*cm))
# Plasma
story.append(subsec_hdr("B. Hydrogen Peroxide Plasma Gas Sterilization"))
story.append(Spacer(1, 0.1*cm))
plasma_pts = [
"<b>Mechanism:</b> Hydrogen peroxide is vaporized, then <b>reactive free radicals</b> are produced using "
"microwave-frequency or radio-frequency energy — these free radicals oxidize and destroy all microbial "
"proteins, lipids, and nucleic acids.",
"<b>Advantages:</b> Highly efficient, operates at <b>low temperature</b>, produces <b>no toxic by-products</b> "
"(final products are water and oxygen) — has <b>largely replaced ethylene oxide</b> for many applications.",
"<b>Uses:</b> Heat-labile instruments, endoscopes, optical instruments.",
"<b>Limitation:</b> Cannot be used with materials that absorb hydrogen peroxide or react with it "
"(e.g., certain cellulose-containing materials, linen).",
]
for pt in plasma_pts:
story.append(Paragraph(f"• {pt}", bullet_s))
story.append(Spacer(1, 0.15*cm))
# Formaldehyde
story.append(subsec_hdr("C. Formaldehyde Vapor"))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph(
"• <b>Alkylating agent</b> — cross-links proteins and nucleic acids. Used <b>without pressure</b> to "
"decontaminate larger enclosed areas such as rooms, cabinets, and biological safety cabinets. "
"Pungent, irritating, and potentially carcinogenic — less preferred than plasma sterilization.", bullet_s))
story.append(Spacer(1, 0.15*cm))
# Chemical sterilants table
story.append(subsec_hdr("D. Chemical Liquid Sterilants"))
story.append(Spacer(1, 0.1*cm))
chem_rows = [
["Peracetic Acid", "Oxidizing agent", "Excellent antimicrobial; end products (acetic acid + O₂) are non-toxic — preferred over glutaraldehyde", "Instrument sterilization"],
["Glutaraldehyde (2%)", "Protein cross-linking (alkylation)", "High-level; kills all including spores with prolonged contact (10 hours for sterilization); TOXIC — strict handling required", "Endoscopes, delicate surgical instruments"],
["Hydrogen Peroxide (liquid)", "Oxidizing agent", "High-level disinfection; inactivated by organic matter", "Contact lenses, instrument disinfection"],
]
story.append(mktbl(
["Agent", "Mechanism", "Properties / Cautions", "Uses"],
chem_rows,
[3.0*cm, 3.0*cm, 7.5*cm, 3.2*cm]
))
story.append(Spacer(1, 0.25*cm))
# ══════════════════════════════════════════════════════════════════════════════
# III. RADIATION
story.append(sec_hdr("III. RADIATION METHODS"))
story.append(Spacer(1, 0.15*cm))
story.append(subsec_hdr("A. Ultraviolet (UV) Radiation"))
story.append(Spacer(1, 0.1*cm))
uv_pts = [
"<b>Wavelength:</b> ~260 nm (germicidal UV-C range).",
"<b>Mechanism:</b> Causes formation of <b>thymine dimers</b> in bacterial DNA, blocking DNA replication "
"and transcription — lethal to exposed microorganisms.",
"<b>Spectrum:</b> Kills all microorganisms (sterilizing), but effectiveness is highly limited by penetration.",
"<b>Critical Limitation:</b> <b>Very poor penetration</b> — effective only on directly exposed surfaces. "
"Cannot penetrate glass, plastic, liquids, or shadowed areas.",
"<b>Uses:</b> Operating room and laboratory air disinfection, laminar flow hoods, water treatment, "
"food preparation surfaces.",
]
for pt in uv_pts:
story.append(Paragraph(f"• {pt}", bullet_s))
story.append(Spacer(1, 0.15*cm))
story.append(subsec_hdr("B. Ionizing Radiation (Gamma Rays / X-rays)"))
story.append(Spacer(1, 0.1*cm))
ir_pts = [
"<b>Source:</b> Cobalt-60 (gamma rays) or electron beam accelerators.",
"<b>Mechanism:</b> Produces <b>reactive free radicals</b> (especially from water radiolysis) that "
"irreversibly damage microbial DNA and cellular components.",
"<b>Spectrum:</b> Sterilizing — kills all organisms including bacterial spores.",
"<b>Key Advantage:</b> <b>Excellent penetration</b> — penetrates through packaging; items can be "
"<b>sterilized after final packaging</b> (unlike all other methods).",
"<b>No heat, no chemicals</b> — effective at room temperature; does not alter physical properties of materials.",
"<b>Uses:</b> Industrial sterilization of disposable medical supplies (syringes, gloves, sutures, "
"catheters, prosthetics), pharmaceutical products, and food irradiation.",
"<b>Disadvantage:</b> Expensive equipment; requires radiation safety infrastructure; not suitable for "
"routine small-scale clinical use.",
]
for pt in ir_pts:
story.append(Paragraph(f"• {pt}", bullet_s))
story.append(Spacer(1, 0.25*cm))
# ══════════════════════════════════════════════════════════════════════════════
# SUMMARY TABLE
story.append(sec_hdr("SUMMARY TABLE — Methods of Sterilization"))
story.append(Spacer(1, 0.15*cm))
summary_rows = [
["Autoclave\n(Moist heat)", "Protein denaturation by steam", "121°C / 15 min\n134°C / 3 min (flash)", "Instruments, dressings, media", "YES — gold standard"],
["Dry Heat", "Oxidation + denaturation", "160°C / 2 hours", "Glassware, metals, oils", "YES"],
["Incineration", "Direct combustion", "Direct flame", "Wire loops, waste disposal", "YES"],
["Ethylene Oxide Gas", "DNA alkylation", "Room temp / 4 hr + 12 hr aeration", "Heat-labile devices, plastics", "YES"],
["H₂O₂ Plasma Gas", "Free radical oxidation", "Low temperature", "Instruments, endoscopes", "YES"],
["Glutaraldehyde 2%", "Protein cross-linking", "Room temp / 10 hr (sterilisation)", "Endoscopes, delicate instruments", "YES (prolonged)"],
["Peracetic Acid", "Oxidation (non-toxic end products)", "Room temp", "Instrument sterilization", "YES"],
["UV Radiation", "Thymine dimer formation in DNA", "260 nm wavelength", "Air, surfaces, laminar hoods", "YES (surfaces only)"],
["Ionizing Radiation", "Free radical DNA damage", "Gamma / X-rays", "Disposables, food, sutures", "YES"],
["Filtration", "Physical removal (0.22 μm)", "Room temperature", "Heat-labile solutions, vaccines", "NO (viruses pass through)"],
]
story.append(mktbl(
["Method", "Mechanism", "Conditions", "Uses", "Kills Spores?"],
summary_rows,
[3.2*cm, 3.8*cm, 3.2*cm, 4.2*cm, 2.3*cm]
))
story.append(Spacer(1, 0.25*cm))
# ══════════════════════════════════════════════════════════════════════════════
# KEY EXAM POINTS
story.append(sec_hdr("KEY POINTS FOR EXAM", color=DKRED))
story.append(Spacer(1, 0.15*cm))
key_pts = [
"Sterilization = <b>complete destruction of ALL microbial life including spores</b> (unlike disinfection)",
"<b>Autoclave (121°C / 15 min, 15 psi)</b> is the gold standard — moist heat most efficient because water aids protein denaturation",
"Pressure in autoclave plays <b>no direct role</b> in killing — it only ensures higher steam temperature",
"A drop of <b>1.7°C reduces autoclave efficiency significantly</b> — increasing exposure time needed by 48%",
"<b>Ethylene oxide</b> = choice for heat-labile materials; requires 12 hr aeration; flammable, explosive, carcinogenic",
"<b>Plasma gas (H₂O₂ vapor)</b> has largely replaced ETO — no toxic by-products, low temperature",
"<b>UV radiation</b> — poor penetration, surface use only; forms thymine dimers in DNA",
"<b>Ionizing radiation (gamma)</b> — penetrates packaging; used for industrial sterilization of disposables",
"<b>Glutaraldehyde</b> requires 10 hours for sterilization vs. 20-45 minutes for high-level disinfection",
"<b>Filtration</b> removes bacteria but NOT viruses — not a complete sterilization method",
"<b>Boiling (100°C)</b> is high-level disinfection only — NOT sterilization (spores survive)",
]
for kp in key_pts:
story.append(Paragraph(f"★ {kp}", key_s))
story.append(Spacer(1, 0.25*cm))
# ── References ─────────────────────────────────────────────────────────────────
story.append(HR(GOLD, 1))
story.append(Paragraph("References", h2_s))
refs = [
"Murray PR et al. Medical Microbiology, 9th Ed. — Chapter 3: Sterilization, Disinfection, and Antisepsis",
"Sherris & Ryan's Medical Microbiology, 8th Ed. — Chapter 3: Sterilization, Disinfection, and Infection Control",
"Jawetz, Melnick & Adelberg's Medical Microbiology, 28th Ed.",
]
for r in refs:
story.append(Paragraph(f"• {r}", ref_s))
story.append(Spacer(1, 0.3*cm))
story.append(HR(DKBLUE, 0.8))
story.append(Paragraph(
"Study notes compiled for academic purposes from standard medical microbiology textbooks.",
cap_s))
# ── BUILD ──────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace && python sterilization_pdf.py 2>&1
ls -lh /home/daytona/workspace/Sterilization_Methods_Types.pdf
Sterilization Methods Types
PDF Document · PDF
Describe local anaesthetic drugs, technique, indication, contraindication, complications and their management
| Feature | ESTERS | AMIDES |
|---|---|---|
| Examples | Cocaine, Procaine, Tetracaine (Amethocaine), Benzocaine, Chloroprocaine | Lidocaine, Bupivacaine, Prilocaine, Ropivacaine, Levobupivacaine, Mepivacaine |
| Metabolism | Rapid — by plasma cholinesterase (pseudocholinesterase) | Slow — hepatic (cytochrome P450) |
| Systemic toxicity | Less likely | More likely |
| Allergic reactions | Possible — PABA (para-aminobenzoic acid) derivatives formed | Very rare |
| Stability | Breaks down with heat/light | Very stable chemically |
| pKa | Higher than physiologic pH (8.5–8.9) → slower onset | Close to physiologic pH (7.6–8.1) → faster onset |
| Drug | Class | Max Dose | Onset | Duration | Key Properties |
|---|---|---|---|---|---|
| Lidocaine (Lignocaine) | Amide | 3 mg/kg plain; 7 mg/kg with adrenaline | Rapid | Intermediate | Most widely used; good diffusion through tissues; most common cause of serious reactions due to overdose |
| Bupivacaine | Amide | 2 mg/kg | Slow | Long (3–8 hr) | Long-lasting; high potency; most cardiotoxic — causes treatment-resistant VF; never give IV |
| Prilocaine | Amide | 6 mg/kg plain; 9 mg/kg with adrenaline | Moderate | Intermediate | Least systemic toxicity of all LAs; causes methaemoglobinaemia in high doses |
| Ropivacaine | Amide | 3–4 mg/kg | Moderate | Long | Less cardiotoxic than bupivacaine; greatest sensory–motor separation — preferred for labour analgesia |
| Levobupivacaine | Amide | 2 mg/kg | Slow | Long | S-enantiomer of bupivacaine; fewer cardiotoxic properties than racemic bupivacaine |
| Tetracaine (Amethocaine) | Ester | Variable | Slow | Long | Used for spinal anaesthesia and topical; high potency |
| Cocaine | Ester | Topical only | Rapid | Moderate | Only LA with vasoconstriction intrinsically; used in ENT as topical |
| Concentration | Max Volume (plain) | Max Volume (with adrenaline 1:200,000) |
|---|---|---|
| 0.5% (5 mg/mL) | 40 mL | 100 mL |
| 1% (10 mg/mL) | 20 mL | 50 mL |
| 2% (20 mg/mL) | 10 mL | 25 mL |
| 4% (40 mg/mL) | 5 mL (topical only) | — |
| Block | Indication | Drug/Volume |
|---|---|---|
| Brachial plexus (supraclavicular) | Upper limb surgery | 30 mL lignocaine/prilocaine 1% with adrenaline |
| Axillary brachial plexus | Forearm and hand surgery | 20 mL × 2 injections above/below axillary artery |
| Femoral nerve block | Fractured femur, knee surgery | 20–30 mL |
| Sciatic nerve block | Lower limb surgery | 20–30 mL |
| Digital nerve block | Finger/toe surgery | 2–3 mL each side — without adrenaline |
| Intercostal nerve block | Rib fractures, post-thoracotomy pain | 3–5 mL per level |
| Ring block (digit) | Finger surgery | 3–5 mL per digit |
| Indication | Context |
|---|---|
| Minor surgical procedures | Wound suturing, excision of skin lesions, abscess drainage |
| Day-case surgery | Avoids GA risks and recovery time |
| High-risk patients | Severe cardiorespiratory disease where GA carries prohibitive risk |
| Obstetrics | Epidural labour analgesia, spinal for Caesarean section |
| Postoperative analgesia | Epidural/nerve blocks as adjuncts to reduce opioid use |
| Diagnostic procedures | Endoscopy, bronchoscopy, lumbar puncture |
| ENT surgery | Nasal, pharyngeal, laryngeal procedures |
| Ophthalmic surgery | Cataract surgery, corneal procedures |
| Dental procedures | Dental extraction, restoration |
| Pain management | Chronic pain nerve blocks, trigger point injection |
| Complication | Cause | Management |
|---|---|---|
| Local infection / Abscess | Inadequate skin preparation; injection through infected tissue | Avoid injection through infected areas; strict asepsis; treat with antibiotics/drainage |
| Haematoma | Inadvertent vessel puncture | Aspiration before injection; apply pressure; ultrasound guidance |
| Nerve damage | Direct needle trauma; intraneural injection; prolonged compression | Use fine needles; stop injection if severe paraesthesia; ultrasound guidance; time (most resolve spontaneously) |
| Ischaemic necrosis | Adrenaline in end-arteries (digits, nose, penis) | Never use adrenaline in end-arterial locations; if occurs — phentolamine injection reverses digital ischaemia |
| Failure of block | Inadequate dose, wrong location, infection (low pH neutralises drug) | Reassess anatomy; supplement block; repeat if safe dose limit not exceeded |
| Stage | CNS Features | CVS Features |
|---|---|---|
| Early (low blood levels) | Circumoral tingling, numbness of tongue, metallic taste, tinnitus, dizziness, visual disturbances | Tachycardia, hypertension |
| Intermediate | Confusion, slurred speech, muscle twitching, agitation | — |
| Severe (high blood levels) | Convulsions, loss of consciousness, respiratory arrest | Cardiac arrhythmias, hypotension |
| Very severe | Coma | Cardiovascular collapse, cardiac arrest |
Note: Bupivacaine is particularly dangerous — it causes treatment-resistant ventricular fibrillation and cardiac arrest with very little warning, because its high lipid solubility allows rapid myocardial binding.
| Complication | Cause | Management |
|---|---|---|
| Hypotension | Sympathetic blockade → vasodilatation | IV fluids, vasopressors (ephedrine), left lateral tilt in pregnancy |
| High/Total spinal | Excessive spread of LA to brainstem | Airway support, intubation, vasopressors |
| Post-dural puncture headache | CSF leak from dural puncture | Flat position, analgesia, caffeine, blood patch if persistent |
| Urinary retention | Sacral nerve block | Catheterisation |
| Epidural haematoma | Coagulopathy, anticoagulant use | Urgent MRI, neurosurgical decompression within 8 hours |
| Epidural abscess | Infection | Antibiotics, surgical drainage |
Make the pdf of this for 5 marks essay
~/local_anaesthetic_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_JUSTIFY
OUTPUT = "/home/daytona/workspace/Local_Anaesthetic_Drugs_5Mark_Essay.pdf"
doc = SimpleDocTemplate(
OUTPUT, pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2.2*cm, bottomMargin=2*cm,
title="Local Anaesthetic Drugs – 5 Mark Essay",
author="Surgery / Anaesthesia Study Notes"
)
W, H = A4
# ── Palette ────────────────────────────────────────────────────────────────────
DKBLUE = colors.HexColor("#1B3A6B")
GOLD = colors.HexColor("#B8860B")
TEAL = colors.HexColor("#005A5B")
GREEN = colors.HexColor("#1A5C2A")
DKRED = colors.HexColor("#7B1A1A")
ORANGE = colors.HexColor("#8B4500")
GREY = colors.HexColor("#F4F4F4")
LTBLUE = colors.HexColor("#EAF0FB")
WHITE = colors.white
DKGREY = colors.HexColor("#2C2C2C")
def S(name, **kw):
return ParagraphStyle(name, parent=getSampleStyleSheet()["Normal"], **kw)
title_s = S("T", fontSize=20, textColor=DKBLUE, alignment=TA_CENTER,
spaceAfter=3, leading=26, fontName="Helvetica-Bold")
sub_s = S("SU", fontSize=10.5, textColor=GOLD, alignment=TA_CENTER,
spaceAfter=2, leading=14, fontName="Helvetica-Oblique")
cap_s = S("CA", fontSize=8, textColor=colors.HexColor("#555"),
alignment=TA_CENTER, spaceAfter=5, fontName="Helvetica-Oblique")
h2_s = S("H2", fontSize=11.5, textColor=DKBLUE, leading=15,
spaceBefore=9, spaceAfter=3, fontName="Helvetica-Bold")
h3_s = S("H3", fontSize=10.5, textColor=TEAL, leading=14,
spaceBefore=6, spaceAfter=2, fontName="Helvetica-Bold", leftIndent=6)
h4_s = S("H4", fontSize=10, textColor=GREEN, leading=13,
spaceBefore=4, spaceAfter=1, fontName="Helvetica-Bold", leftIndent=14)
body_s = S("BD", fontSize=9.2, leading=13.5, spaceAfter=3,
textColor=DKGREY, alignment=TA_JUSTIFY, leftIndent=6)
bullet_s = S("BU", fontSize=9.2, leading=12.5, spaceAfter=2,
textColor=DKGREY, leftIndent=22, bulletIndent=8)
ref_s = S("RF", fontSize=8, textColor=colors.HexColor("#444"),
leading=11, leftIndent=10, spaceAfter=2)
key_s = S("KY", fontSize=9.2, textColor=DKRED, leading=13,
leftIndent=18, spaceAfter=2)
def HR(color=GOLD, t=1.2):
return HRFlowable(width="100%", thickness=t, color=color, spaceAfter=3, spaceBefore=2)
def sec_hdr(txt, bg=DKBLUE):
p = Paragraph(txt, S("sh", fontSize=12.5, textColor=WHITE, fontName="Helvetica-Bold",
leading=16, leftIndent=0))
tbl = Table([[p]], colWidths=[W - 4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), bg),
("TOPPADDING", (0,0),(-1,-1), 5),
("BOTTOMPADDING", (0,0),(-1,-1), 5),
("LEFTPADDING", (0,0),(-1,-1), 11),
]))
return tbl
def subsec_hdr(txt, bg=TEAL):
p = Paragraph(txt, S("ssh", fontSize=10.5, textColor=WHITE, fontName="Helvetica-Bold", leading=14))
tbl = Table([[p]], colWidths=[W - 4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), bg),
("TOPPADDING", (0,0),(-1,-1), 3),
("BOTTOMPADDING", (0,0),(-1,-1), 3),
("LEFTPADDING", (0,0),(-1,-1), 9),
]))
return tbl
def hbox(txt, bg=LTBLUE, bc=DKBLUE):
p = Paragraph(txt, S("hb", fontSize=9.2, textColor=DKGREY, leading=13, alignment=TA_JUSTIFY))
tbl = Table([[p]], colWidths=[W - 4*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), bg),
("TOPPADDING", (0,0),(-1,-1), 6),
("BOTTOMPADDING", (0,0),(-1,-1), 6),
("LEFTPADDING", (0,0),(-1,-1), 9),
("RIGHTPADDING", (0,0),(-1,-1), 9),
("BOX", (0,0),(-1,-1), 1.1, bc),
]))
return tbl
def rbox(txt):
return hbox(txt, bg=colors.HexColor("#FFF5F5"), bc=DKRED)
TH = S("TH", fontSize=8, textColor=WHITE, fontName="Helvetica-Bold", leading=10)
TC = S("TC", fontSize=8, textColor=DKGREY, leading=10)
def mktbl(headers, rows, col_widths):
data = [[Paragraph(h, TH) for h in headers]]
for row in rows:
data.append([Paragraph(str(c), TC) for c in row])
t = Table(data, colWidths=col_widths, repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DKBLUE),
("FONTSIZE", (0,0), (-1,-1), 8),
("LEADING", (0,0), (-1,-1), 10),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
("LEFTPADDING", (0,0), (-1,-1), 4),
("RIGHTPADDING", (0,0), (-1,-1), 4),
("GRID", (0,0), (-1,-1), 0.35, colors.HexColor("#AAAAAA")),
("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY]),
]))
return t
# ══════════════════════════════════════════════════════════════════════════════
story = []
# Title
story.append(Spacer(1, 0.25*cm))
story.append(Paragraph("LOCAL ANAESTHETIC DRUGS", title_s))
story.append(Paragraph(
"Drugs · Techniques · Indications · Contraindications · Complications & Management", sub_s))
story.append(Paragraph(
"5-Mark University Exam Essay | Bailey & Love · Pye's · Lippincott Pharmacology · Tintinalli", cap_s))
story.append(HR(GOLD, 2))
story.append(Spacer(1, 0.2*cm))
# ── 1. DEFINITION & MECHANISM ─────────────────────────────────────────────────
story.append(sec_hdr("1. DEFINITION & MECHANISM OF ACTION"))
story.append(Spacer(1, 0.12*cm))
story.append(hbox(
"<b>Local anaesthetics (LAs)</b> are drugs that produce <b>reversible loss of sensation in a "
"circumscribed area</b> by blocking nerve conduction, without loss of consciousness."))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph(
"<b>Mechanism:</b> LAs bind to a receptor on the <b>voltage-gated sodium (Na⁺) channel</b> "
"on the axon membrane, preventing channel opening and thereby <b>blocking depolarisation</b> "
"and propagation of the nerve impulse. Action is <i>use-dependent</i> — actively firing channels "
"are blocked more easily.", body_s))
story.append(Paragraph(
"<b>Order of nerve fibre blockade</b> (smallest → largest fibre diameter):", body_s))
story.append(Paragraph(
"Pain (C & Aδ fibres) → Temperature → Touch → Pressure → <b>Motor (last)</b>", bullet_s))
story.append(Paragraph(
"This differential blockade is clinically exploited — e.g., ropivacaine provides sensory block "
"with minimal motor block, ideal for labour analgesia.", body_s))
story.append(Spacer(1, 0.2*cm))
# ── 2. CLASSIFICATION ─────────────────────────────────────────────────────────
story.append(sec_hdr("2. CLASSIFICATION OF LOCAL ANAESTHETICS"))
story.append(Spacer(1, 0.1*cm))
class_rows = [
["Feature", "ESTERS", "AMIDES"],
["Examples", "Cocaine, Procaine, Tetracaine,\nBenzocaine, Chloroprocaine",
"Lidocaine, Bupivacaine, Prilocaine,\nRopivacaine, Levobupivacaine, Mepivacaine"],
["Metabolism", "Rapid — plasma cholinesterase", "Slow — hepatic (cytochrome P450)"],
["Systemic toxicity", "Less likely", "More likely"],
["Allergic reactions", "Possible (PABA derivatives formed)", "Very rare"],
["Stability", "Breaks down with heat/light", "Very stable chemically"],
["pKa", "Higher than pH (8.5–8.9) → slower onset", "Close to pH (7.6–8.1) → faster onset"],
]
story.append(mktbl(
["Feature", "ESTERS", "AMIDES"],
class_rows[1:],
[3.5*cm, 6.4*cm, 6.8*cm]
))
story.append(Spacer(1, 0.2*cm))
# ── 3. INDIVIDUAL DRUGS ───────────────────────────────────────────────────────
story.append(sec_hdr("3. INDIVIDUAL DRUGS — PROPERTIES & DOSAGE"))
story.append(Spacer(1, 0.1*cm))
drug_rows = [
["Lidocaine\n(Lignocaine)", "Amide", "3 mg/kg plain\n7 mg/kg + adrenaline", "Rapid", "Intermediate",
"Most widely used; good tissue diffusion; most common cause of LA reactions (overdose)"],
["Bupivacaine", "Amide", "2 mg/kg", "Slow", "Long (3–8 hr)",
"Long-lasting; highly cardiotoxic — causes treatment-resistant VF; NEVER give IV"],
["Prilocaine", "Amide", "6 mg/kg plain\n9 mg/kg + adrenaline", "Moderate", "Intermediate",
"LEAST systemic toxicity; causes methaemoglobinaemia in high doses; drug of choice for IVRA"],
["Ropivacaine", "Amide", "3–4 mg/kg", "Moderate", "Long",
"Less cardiotoxic than bupivacaine; greatest sensory–motor separation; preferred for labour"],
["Levobupivacaine", "Amide", "2 mg/kg", "Slow", "Long",
"S-enantiomer of bupivacaine; fewer cardiotoxic properties"],
["Tetracaine\n(Amethocaine)", "Ester", "Variable\n(topical/spinal)", "Slow", "Long",
"Spinal anaesthesia; topical (EMLA-type); high potency"],
["Cocaine", "Ester", "Topical only", "Rapid", "Moderate",
"ENT use only; ONLY LA with intrinsic vasoconstriction; no systemic/injectable use"],
]
story.append(mktbl(
["Drug", "Class", "Max Dose", "Onset", "Duration", "Key Properties"],
drug_rows,
[2.3*cm, 1.5*cm, 2.5*cm, 1.8*cm, 2.2*cm, 6.4*cm]
))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph("<b>Lidocaine dosage guide (Pye's Surgical Handicraft):</b>", h3_s))
lido_rows = [
["0.5% (5 mg/mL) — plain", "40 mL", "100 mL"],
["1% (10 mg/mL) — plain", "20 mL", "50 mL"],
["2% (20 mg/mL) — plain", "10 mL", "25 mL"],
["4% (40 mg/mL) — topical only", "5 mL", "—"],
]
story.append(mktbl(
["Concentration", "Max Volume (Plain)", "Max Volume (+Adrenaline 1:200,000)"],
lido_rows, [5.5*cm, 4.5*cm, 6.7*cm]
))
story.append(Spacer(1, 0.12*cm))
story.append(Paragraph("<b>Role of Adrenaline (Epinephrine) added to LA:</b>", h3_s))
adr_pts = [
"Hastens onset · Prolongs duration · Permits higher maximum dose",
"Causes local vasoconstriction → reduced systemic absorption → drier operative field (wait ≥5 min)",
"Use 1:200,000 for large volumes; 1:100,000 limits safe volume to 40 mL maximum",
]
for p in adr_pts:
story.append(Paragraph(f"• {p}", bullet_s))
story.append(rbox(
"ADRENALINE CONTRAINDICATED IN: End-arterial sites (digits, penis, nose, ear, toes) — ischaemic necrosis | "
"Cardiovascular disease | Patients on TCAs or MAO inhibitors"))
story.append(Spacer(1, 0.2*cm))
# ── 4. TECHNIQUES ─────────────────────────────────────────────────────────────
story.append(sec_hdr("4. TECHNIQUES OF LOCAL ANAESTHESIA"))
story.append(Spacer(1, 0.1*cm))
# Topical
story.append(KeepTogether([
subsec_hdr("A. Topical Anaesthesia"),
Spacer(1, 0.08*cm),
]))
topical_rows = [
["EMLA cream", "Lidocaine 2.5% + Prilocaine 2.5%", "60 min under occlusive dressing on intact skin", "IV cannulation, minor procedures in children"],
["Tetracaine gel (Ametop)", "Tetracaine 4%", "30 min under occlusive dressing", "Children (no metHb risk); venepuncture"],
["Lidocaine spray 10%", "Lidocaine 10%", "Max 20 sprays", "Pharynx, larynx, trachea (endoscopy, intubation)"],
["Lidocaine 4% solution", "Lidocaine 4%", "Max 7.5 mL", "Mucous membranes"],
["Cocaine 4–10%", "Cocaine", "Topical only", "ENT — unique intrinsic vasoconstriction"],
]
story.append(mktbl(["Agent", "Composition", "Application", "Use"],
topical_rows, [3.3*cm, 3.5*cm, 3.5*cm, 6.4*cm]))
story.append(Spacer(1, 0.12*cm))
# Infiltration
story.append(KeepTogether([
subsec_hdr("B. Local Infiltration"),
Spacer(1, 0.08*cm),
Paragraph(
"LA injected directly into the tissue to be operated on. Suitable for wound closure, "
"minor skin lesions, abscess drainage. Technique: raise skin wheal → infiltrate deeper planes. "
"<b>Always aspirate before injecting</b> to exclude intravascular placement.", body_s),
Spacer(1, 0.1*cm),
]))
# Field Block
story.append(KeepTogether([
subsec_hdr("C. Field Block"),
Spacer(1, 0.08*cm),
Paragraph(
"LA deposited <b>around</b> (not into) the operative field to block all supplying nerves. "
"Used for herniotomy, scalp incisions, abdominal wall procedures.", body_s),
Spacer(1, 0.1*cm),
]))
# Peripheral Nerve Block
story.append(subsec_hdr("D. Peripheral Nerve Block"))
story.append(Spacer(1, 0.08*cm))
story.append(Paragraph(
"LA injected at or near a specific nerve/plexus producing anaesthesia in its entire distribution. "
"Modern technique uses <b>ultrasound guidance</b> (reduces nerve damage, intravascular injection, "
"higher success rate) ± nerve stimulator for confirmation.", body_s))
nb_rows = [
["Brachial plexus — supraclavicular", "Upper limb surgery", "30 mL lignocaine/prilocaine 1% + adrenaline; fan-shaped injection"],
["Axillary brachial plexus", "Forearm and hand surgery", "20 mL above + 20 mL below axillary artery; arm abducted 90°"],
["Femoral nerve block", "Fractured femur, knee surgery", "20–30 mL"],
["Digital / Ring block", "Finger/toe surgery", "2–3 mL each side — WITHOUT ADRENALINE"],
["Intercostal block", "Rib fractures, post-thoracotomy pain", "3–5 mL per level at angle of rib"],
]
story.append(mktbl(["Block", "Indication", "Key Details"],
nb_rows, [4.0*cm, 4.0*cm, 8.7*cm]))
story.append(Spacer(1, 0.12*cm))
# IVRA
story.append(subsec_hdr("E. Intravenous Regional Anaesthesia (IVRA / Bier's Block)"))
story.append(Spacer(1, 0.08*cm))
story.append(Paragraph(
"One of the commonest LA techniques for <b>upper limb surgery</b>. Drug of choice: "
"<b>Prilocaine 0.5%</b> (least toxicity). <b>Bupivacaine MUST NEVER be used</b> for IVRA "
"(fatal cardiotoxicity on cuff deflation).", body_s))
ivra_steps = [
"Apply double pneumatic tourniquet above elbow; check systolic BP",
"Cannulate dorsum of affected hand (18G/19G Venflon); insert IV in unaffected arm also",
"Exsanguinate limb with Esmarch bandage; inflate proximal cuff to 100 mmHg above systolic BP",
"Inject prilocaine 0.5% (40–50 mL) IV slowly",
"After 20 min: inflate distal cuff, then deflate proximal cuff (reduces cuff ischaemia pain)",
"Maintain cuff minimum 20 min regardless of surgical duration to prevent sudden drug release",
]
for i, s in enumerate(ivra_steps, 1):
story.append(Paragraph(f"{i}. {s}", bullet_s))
story.append(Spacer(1, 0.12*cm))
# Neuraxial
story.append(subsec_hdr("F. Central Neuraxial Blocks"))
story.append(Spacer(1, 0.08*cm))
neur_rows = [
["Spinal (Intrathecal)", "LA injected into subarachnoid space (CSF)",
"Dense, rapid onset block; lower abdomen, perineum, lower limb surgery; Caesarean section"],
["Epidural", "LA injected into epidural space via catheter",
"Slower onset; continuous infusion possible; labour analgesia, major abdominal/thoracic surgery"],
]
story.append(mktbl(["Technique", "Route", "Features & Uses"],
neur_rows, [3.5*cm, 4.5*cm, 8.7*cm]))
story.append(Spacer(1, 0.2*cm))
# ── 5. INDICATIONS ────────────────────────────────────────────────────────────
story.append(sec_hdr("5. INDICATIONS"))
story.append(Spacer(1, 0.1*cm))
ind_rows = [
["Minor surgical procedures", "Wound suturing, skin lesion excision, abscess drainage"],
["Day-case / ambulatory surgery", "Avoids GA risks and prolonged recovery"],
["High-risk patients", "Severe cardiorespiratory disease where GA carries prohibitive risk"],
["Obstetrics", "Epidural labour analgesia; spinal for Caesarean section"],
["Postoperative analgesia", "Nerve blocks as adjuncts to reduce opioid requirement"],
["Diagnostic procedures", "Endoscopy, bronchoscopy, laryngoscopy, lumbar puncture"],
["ENT / Dental surgery", "Nasal, pharyngeal, laryngeal, dental procedures"],
["Ophthalmic surgery", "Cataract, corneal procedures"],
["Chronic pain management", "Nerve blocks, trigger point injections"],
]
story.append(mktbl(["Indication", "Examples"], ind_rows, [5.5*cm, 11.2*cm]))
story.append(Spacer(1, 0.2*cm))
# ── 6. CONTRAINDICATIONS ──────────────────────────────────────────────────────
story.append(sec_hdr("6. CONTRAINDICATIONS"))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph("<b>Absolute:</b>", h3_s))
abs_ci = [
"Patient refusal",
"Allergy / hypersensitivity to the specific LA agent (true amide allergy extremely rare; "
"ester allergy via PABA more common)",
"Local infection at injection site (risk of spreading; reduced pH inactivates LA)",
"Coagulopathy (absolute for neuraxial blocks and deep plexus blocks)",
]
for c in abs_ci:
story.append(Paragraph(f"• {c}", bullet_s))
story.append(Paragraph("<b>Relative:</b>", h3_s))
rel_ci = [
"Uncooperative or confused patient",
"Raised intracranial pressure (contraindication to spinal/epidural)",
"Hypovolaemia / shock — neuraxial blocks cause vasodilatation → cardiovascular collapse",
"Hepatic failure — impaired amide metabolism → drug accumulation",
"Reduced body weight, elderly, epilepsy, heart block — require dose reduction",
]
for c in rel_ci:
story.append(Paragraph(f"• {c}", bullet_s))
story.append(Spacer(1, 0.2*cm))
# ── 7. COMPLICATIONS ──────────────────────────────────────────────────────────
story.append(sec_hdr("7. COMPLICATIONS AND THEIR MANAGEMENT"))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph("<b>A. Local Complications</b>", h2_s))
local_rows = [
["Local infection / Abscess", "Inadequate skin preparation; injection through infected tissue",
"Strict asepsis; avoid infected sites; antibiotics / drainage if occurs"],
["Haematoma", "Inadvertent vessel puncture", "Aspirate before injection; apply pressure; use ultrasound guidance"],
["Nerve damage", "Direct needle trauma; intraneural injection", "Fine needles; stop if severe paraesthesia; ultrasound guidance; most resolve spontaneously"],
["Ischaemic necrosis", "Adrenaline in end-arteries (digits, nose, penis)", "Never use adrenaline in end-arterial locations; phentolamine injection if ischaemia occurs"],
["Block failure", "Inadequate dose, wrong location, infection (low pH)", "Reassess anatomy; supplement; repeat if dose limit not exceeded"],
]
story.append(mktbl(["Complication", "Cause", "Management"],
local_rows, [3.5*cm, 5.2*cm, 8.0*cm]))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("<b>B. Systemic Complications</b>", h2_s))
# LAST
story.append(subsec_hdr("B1. Local Anaesthetic Systemic Toxicity (LAST)"))
story.append(Spacer(1, 0.08*cm))
story.append(Paragraph(
"LAST is caused by <b>dose-related sodium channel blockade in non-target tissues</b> — primarily "
"the brain and heart. Most common cause: <b>inadvertent intravascular injection</b> or overdose. "
"More susceptible: children, elderly, pregnant women. <b>CNS features precede CVS features.</b>", body_s))
last_rows = [
["Early (low blood levels)",
"Circumoral tingling, numbness of tongue, metallic taste, tinnitus, dizziness",
"Tachycardia, hypertension"],
["Intermediate",
"Confusion, slurred speech, muscle twitching, agitation",
"—"],
["Severe",
"CONVULSIONS, loss of consciousness, respiratory arrest",
"Cardiac arrhythmias, hypotension"],
["Very severe",
"Coma",
"Cardiovascular collapse, CARDIAC ARREST\n(Bupivacaine → treatment-resistant VF)"],
]
story.append(mktbl(["Stage", "CNS Features", "CVS Features"],
last_rows, [3.2*cm, 7.5*cm, 6.0*cm]))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph("<b>Management of LAST — Step by Step:</b>", h3_s))
last_mgmt = [
"<b>STOP injection immediately</b>",
"<b>Call for help</b> — resuscitation team",
"<b>Airway management</b> — 100% oxygen; secure airway if unconscious (intubation)",
"<b>IV access</b> if not already in place",
"<b>Seizures:</b> IV Benzodiazepines — Diazepam 5–10 mg or Midazolam; Thiopentone if refractory",
"<b>Cardiovascular support:</b> Vasopressors (adrenaline) for hypotension; defibrillation for VF",
"<b>LIPID RESCUE THERAPY — 20% Intralipid (key specific treatment):</b>\n"
" • Acts as 'lipid sink' — sequesters lipid-soluble LA (especially bupivacaine) from cardiac channels\n"
" • Dose: 1.5 mL/kg IV bolus over 1 min → infusion 0.25 mL/kg/min for 10 min after haemodynamic stability\n"
" • If instability persists: repeat bolus; max dose ~10 mL/kg over first 30 min",
"<b>CPR</b> if cardiac arrest — prolonged resuscitation required (LA effect wears off)",
"<b>AVOID:</b> Propofol as substitute for lipid emulsion; lignocaine for arrhythmias (adds to toxicity)",
]
for pt in last_mgmt:
story.append(Paragraph(f"★ {pt}", key_s))
story.append(Spacer(1, 0.12*cm))
# Other systemic
story.append(subsec_hdr("B2. Other Systemic Complications"))
story.append(Spacer(1, 0.08*cm))
other_rows = [
["Vasovagal syncope",
"Anxiety, pain → bradycardia, hypotension, pallor, sweating, collapse",
"Lay flat, elevate legs, O₂; IV atropine 0.6 mg if bradycardia persists"],
["Allergic / Anaphylaxis",
"Ester class (PABA metabolite); preservatives (methylparaben); adrenaline — urticaria, bronchospasm, hypotension",
"Adrenaline 0.5 mg IM; antihistamines; corticosteroids; airway support"],
["Methaemoglobinaemia",
"Prilocaine (o-toluidine metabolite oxidises Hb) — cyanosis, SpO₂ falsely normal, chocolate-brown blood on ABG",
"IV Methylene blue 1–2 mg/kg; resolves with time"],
]
story.append(mktbl(["Complication", "Features", "Management"],
other_rows, [3.5*cm, 7.0*cm, 6.2*cm]))
story.append(Spacer(1, 0.12*cm))
# Neuraxial complications
story.append(subsec_hdr("B3. Complications of Neuraxial (Spinal / Epidural) Blocks"))
story.append(Spacer(1, 0.08*cm))
neur_rows2 = [
["Hypotension", "Sympathetic blockade → vasodilatation",
"IV fluids, vasopressors (ephedrine 6–9 mg IV), left lateral tilt in pregnancy"],
["High / Total spinal", "Excessive cephalad spread of LA → brainstem",
"Immediate airway support, intubation, vasopressors, IPPV"],
["Post-dural puncture headache", "CSF leak through dural puncture — postural, frontal/occipital",
"Flat position, analgesia, caffeine; Epidural blood patch if persistent (>24–48 hr)"],
["Urinary retention", "Sacral nerve (S2–S4) block — bladder atony",
"Catheterisation"],
["Epidural haematoma", "Coagulopathy, anticoagulant use — back pain, rapid neurological deficit",
"Urgent MRI; neurosurgical decompression within 8 hours"],
["Epidural abscess", "Infection — fever, back pain, neurological deficit",
"Antibiotics; surgical drainage if neurological compromise"],
]
story.append(mktbl(["Complication", "Cause / Features", "Management"],
neur_rows2, [3.5*cm, 5.8*cm, 7.4*cm]))
story.append(Spacer(1, 0.2*cm))
# ── 8. KEY SAFETY RULES ───────────────────────────────────────────────────────
story.append(sec_hdr("8. KEY SAFETY RULES FOR EXAM", bg=DKRED))
story.append(Spacer(1, 0.1*cm))
safety = [
"<b>Always aspirate</b> before every injection — exclude intravascular placement",
"<b>Calculate weight-based maximum dose</b> before any LA procedure",
"<b>Resuscitation equipment, oxygen, and IV access</b> must always be available",
"<b>Reduce dose</b> in children, elderly, debilitated patients, hepatic disease, epilepsy, heart block",
"<b>NEVER use bupivacaine IV</b> (Bier's block) — use prilocaine instead",
"<b>NEVER use adrenaline-containing LA</b> in end-arterial locations (digits, penis, nose, ear, toes)",
"<b>Lipid emulsion (Intralipid 20%) must be available</b> wherever LA blocks are performed",
"<b>CNS toxicity precedes CVS toxicity</b> in LAST — tingling/tinnitus/metallic taste are early warning signs",
"<b>Bupivacaine</b> causes treatment-resistant VF — lipid rescue is mandatory",
"<b>Prilocaine</b> = drug of choice for IVRA (Bier's block); causes metHb in overdose (treat with methylene blue)",
"<b>Ester LAs</b> metabolised by plasma cholinesterase; <b>Amide LAs</b> metabolised by liver",
]
for pt in safety:
story.append(Paragraph(f"★ {pt}", key_s))
story.append(Spacer(1, 0.25*cm))
# References
story.append(HR(GOLD, 1))
story.append(Paragraph("References", h2_s))
refs = [
"Bailey & Love's Short Practice of Surgery, 28th Ed. — Chapter 23: Anaesthesia",
"Pye's Surgical Handicraft, 22nd Ed. — Chapter 8: Local Anaesthetic Drugs",
"Lippincott Illustrated Reviews: Pharmacology — Chapter 20: Local Anaesthetics",
"Tintinalli's Emergency Medicine, 9th Ed. — Chapter 36: Local Anaesthetic Systemic Toxicity",
"Miller's Anesthesia, 10th Ed. — Local Anaesthetic Systemic Toxicity",
"Barash, Cullen & Stoelting's Clinical Anesthesia, 9th Ed. — Chapter 22",
]
for r in refs:
story.append(Paragraph(f"• {r}", ref_s))
story.append(Spacer(1, 0.25*cm))
story.append(HR(DKBLUE, 0.8))
story.append(Paragraph(
"Study notes compiled for academic purposes from standard surgical and anaesthesia textbooks.",
cap_s))
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace && python local_anaesthetic_pdf.py 2>&1
ls -lh /home/daytona/workspace/Local_Anaesthetic_Drugs_5Mark_Essay.pdf
Local Anaesthetic Drugs 5Mark Essay
PDF Document · PDF