Nasya karma a ayuvedic procedure

Reading File
Searching the Web

Nasya karma Ayurvedic procedure types benefits indications

Finding Sources
Searching Images

Nasya karma Ayurvedic nasal therapy procedure

This composite of three clinical photographs documents a Photodynamic Therapy (PDT) procedure for a skin lesion on the lateral aspect of the nose. Frame (a) demonstrates the initial stage: needle-free intradermal administration of 20% Aminolevulinic Acid (ALA) using a MadaJet medical injector. The injector's clear nozzle is positioned against the nasal alar region. Frame (b) shows the immediate post-injection tissue response, characterized by localized erythema and slight edema at the delivery site, indicating successful penetration of the ALA solution. Frame (c) illustrates the skin's appearance following the full PDT procedure (red LED light illumination at 630 nm). The treatment area exhibits marked inflammatory changes, including prominent focal erythema and small areas of petechiae or superficial crusting, which are typical acute reactions to the photochemical process. This sequence illustrates a dermatological protocol for managing localized skin lesions, highlighting the transition from drug delivery to the immediate inflammatory phase of treatment.

This composite of three clinical photographs documents a Photodynamic Therapy (PDT) procedure for a skin lesion on the lateral aspect of the nose. Frame (a) demonstrates the initial stage: needle-free intradermal administration of 20% Aminolevulinic Acid (ALA) using a MadaJet medical injector. The injector's clear nozzle is positioned against the nasal alar region. Frame (b) shows the immediate post-injection tissue response, characterized by localized erythema and slight edema at the delivery site, indicating successful penetration of the ALA solution. Frame (c) illustrates the skin's appearance following the full PDT procedure (red LED light illumination at 630 nm). The treatment area exhibits marked inflammatory changes, including prominent focal erythema and small areas of petechiae or superficial crusting, which are typical acute reactions to the photochemical process. This sequence illustrates a dermatological protocol for managing localized skin lesions, highlighting the transition from drug delivery to the immediate inflammatory phase of treatment.

This composite educational graphic illustrates the fabrication process and comparative internal structures of nasal radiation therapy boluses. Panels (a) and (b) show the clinical procedure of creating a plaster facial impression using alginate and Plaster of Paris to ensure patient-specific anatomical fit. Panel (c) compares a hollow 3D-printed Polylactic Acid (PLA) shell (green) with a traditional manually manufactured solid wax bolus (red). Panel (d) displays diagnostic CT cross-sections showing the difference in internal density between an 18% infill and a 100% solid infill 3D-printed shell, highlighting technical variations in additive manufacturing. Panel (e) provides schematic illustrations of the finished bolus types: a solid wax bolus (grey), a 3D-printed shell with water fill (blue), and a 3D-printed shell with wax fill (red), each shown fitted to a facial contour. The content is designed for radiation oncology training, emphasizing the transition from manual molding to high-precision 3D-printed tissue-equivalent materials to optimize dose distribution and surface conformity during treatment.

This composite educational graphic illustrates the fabrication process and comparative internal structures of nasal radiation therapy boluses. Panels (a) and (b) show the clinical procedure of creating a plaster facial impression using alginate and Plaster of Paris to ensure patient-specific anatomical fit. Panel (c) compares a hollow 3D-printed Polylactic Acid (PLA) shell (green) with a traditional manually manufactured solid wax bolus (red). Panel (d) displays diagnostic CT cross-sections showing the difference in internal density between an 18% infill and a 100% solid infill 3D-printed shell, highlighting technical variations in additive manufacturing. Panel (e) provides schematic illustrations of the finished bolus types: a solid wax bolus (grey), a 3D-printed shell with water fill (blue), and a 3D-printed shell with wax fill (red), each shown fitted to a facial contour. The content is designed for radiation oncology training, emphasizing the transition from manual molding to high-precision 3D-printed tissue-equivalent materials to optimize dose distribution and surface conformity during treatment.

This composite of three intraoperative clinical photographs demonstrates a ciliary muscle electrotransfection procedure in a rabbit model, showcasing a method for ocular gene therapy. Panel A illustrates the initial step where a clear, dedicated ocular stabilization device is placed on the nasal scleral surface. A syringe with a 29G needle is used to perform a precise injection of a plasmid solution (highlighted with blue tracer dye) into the ciliary muscle fibers. Panel B provides a close-up view of the eye following injection, showing the localized distribution of the blue tracer dye within the ocular tissue for demonstration of anatomical targeting. Panel C depicts the subsequent electrotransfection step; the ocular device is aligned with the limbus to guide the insertion of a metallic comb electrode into the ocular tissues. This electrode, connected via a black cable to a pulse generator, facilitates the delivery of square-wave electrical pulses to enhance cellular plasmid uptake. The images serve as an educational resource for non-viral gene delivery techniques and ocular surgical maneuvers.

This composite of three intraoperative clinical photographs demonstrates a ciliary muscle electrotransfection procedure in a rabbit model, showcasing a method for ocular gene therapy. Panel A illustrates the initial step where a clear, dedicated ocular stabilization device is placed on the nasal scleral surface. A syringe with a 29G needle is used to perform a precise injection of a plasmid solution (highlighted with blue tracer dye) into the ciliary muscle fibers. Panel B provides a close-up view of the eye following injection, showing the localized distribution of the blue tracer dye within the ocular tissue for demonstration of anatomical targeting. Panel C depicts the subsequent electrotransfection step; the ocular device is aligned with the limbus to guide the insertion of a metallic comb electrode into the ocular tissues. This electrode, connected via a black cable to a pulse generator, facilitates the delivery of square-wave electrical pulses to enhance cellular plasmid uptake. The images serve as an educational resource for non-viral gene delivery techniques and ocular surgical maneuvers.

Searching PubMed

Nasya karma Ayurveda nasal therapy clinical evidence

Finding Sources
Searching PubMed

Nasya Ayurveda nasal drug delivery

Reading Web Page

https://www.iosrjournals.org/iosr-jpbs/papers/Vol20-issue4/S…

Here is a thorough overview of Nasya Karma, the Ayurvedic nasal therapy:

Nasya Karma - Ayurvedic Nasal Therapy

What is Nasya Karma?

Nasya Karma is one of the five main Panchakarma (detoxification/purification) procedures in Ayurveda. It involves administering medicated substances - oils, ghee preparations, herbal powders, or decoctions - through the nasal passages. The nose is described in classical texts as "Shirasodwaram" - the gateway to the head and brain. Because the nasal passages connect intimately with the olfactory system and the cribriform plate, medicines introduced this way can directly influence the brain, nervous system, and sense organs.
Classical texts refer to this therapy as "Shirah kapala shuddhi" - purification of the head and skull.

Types of Nasya Karma

Classification by Therapeutic Action (Charaka & Sushruta - 5 Types)

TypePrimary PurposeDrugs UsedIndications
Rechana / Virechana (Cleansing)Detoxification and clearingStrong herbal powders, pungent decoctions (e.g., Vacha/calamus)Chronic sinusitis, allergic rhinitis, mental disorders
Brimhana (Nourishing)Strengthening and nourishmentMedicated oils, ghee, shatavari ghee, ashwagandha ghee, medicated milkNeurological disorders, memory, Vata conditions, emaciation
Shamana (Pacifying/Sedative)Balancing aggravated DoshasMild herbal preparations, Brahmi ghee (Pitta), Vacha oil (Kapha/Vata)Inflammatory conditions, chronic allergies, mild imbalances
NavanaMixed decoctions + oilsDecoctions, fresh herbal juices, and oils combinedPitta-Vata or Pitta-Kapha disorders
Marshya / PratimarshyaDaily maintenanceSmall amount of ghee or oil inserted with the little fingerDaily self-care, stress relief, deep tissue nourishment

Classification by Dosage (Sushruta)

  • Hina Matra - 8 drops per nostril
  • Madhyama Matra - 16 drops per nostril
  • Uttama Matra - 32 drops per nostril

Classification by Drug Form

  • Taila Nasya - medicated oils (most common)
  • Ghrita Nasya - medicated ghee (especially for nervous system and cognition)
  • Churna Nasya - fine herbal powders (for chronic conditions)

The Procedure (Step-by-Step)

Pre-procedure (Purvakarma):
  1. Patient ensures natural urges (bowel/bladder) are attended to
  2. Light diet is given
  3. Tooth brushing and oral hygiene
  4. Adequate Dhumapana (medicated smoking/inhalation) may be given
  5. Patient lies on the Nasya Saiya (treatment table) with head tilted back
  6. Snehana (gentle oil massage) of the scalp, face, and neck
  7. Swedana (mild fomentation/heat application) to the head, face, nose, neck, and throat regions to liquefy and mobilize Doshas - the patient's nostrils, forehead, cheeks, and throat are gently warmed
  8. Smooth massage applied to throat, cheeks, and forehead after fomentation
Main procedure (Pradhanakarma):
  • Patient lies supine with head tilted back
  • One nostril is closed; the medicated substance is gently instilled into the open nostril
  • Patient sniffs deeply to draw the medicine upward
  • Procedure is repeated on the other nostril
  • Patient remains lying for 1-2 minutes to allow medicine to penetrate
Post-procedure (Paschatkarma):
  • Spitting out excess drainage from the throat/mouth
  • Gargling with warm water
  • Dhumapana (medicated smoke inhalation) to clear excess from airways
  • Warm water drinking or mouth washing

Indications

Nasya is indicated for a wide range of conditions affecting the head and above-the-shoulders structures:
Neurological / Head:
  • Ardita (facial paralysis)
  • Ardhavabhedaka (migraine/hemicrania)
  • Shira shula (headache)
  • Apatantraka/Apatanaka (seizures, tetanus)
  • Memory and cognitive decline
ENT and Sensory:
  • Pinasa (rhinitis, upper respiratory infections)
  • Timira (vision disorders)
  • Vartma Roga (eyelid disorders)
  • Karnashula (earache)
  • Loss of smell or taste
Musculoskeletal (head/neck region):
  • Manya sthambha (neck stiffness)
  • Greewa Roga (neck pain)
  • Hanusthambha (jaw stiffness, TMJ)
  • Amsashula (upper back and shoulder pain)
Throat and Oral:
  • Galashundika (tonsillitis)
  • Mukha Roga (oral disorders)
  • Hoarse voice
Skin and Cosmetic:
  • Vyanga (hyperpigmentation/skin patches on face)
  • Premature greying (Palita) and hair loss (Khalitya)

Contraindications

Nasya should not be administered in the following conditions:
  • Immediately after meals (Bhukta Bhakta)
  • Indigestion (Ajirna)
  • Shortly after oily/ghee intake
  • Intoxication (alcohol, Matta)
  • Pregnancy (Garbhini)
  • Unconsciousness (Murcchita)
  • Immediately after Virechana (purgation) treatment
  • Severe injury or trauma (Shastra Dandahata)
  • Extreme fatigue (Shramarta, Vyayama Klanta)
  • Immediately after bathing or before bathing
  • Excessive thirst or hunger

Mechanism of Action (Modern Understanding)

The nose provides direct access to the central nervous system via two pathways:
  1. Olfactory pathway - the olfactory nerve fibres pass through the cribriform plate directly into the olfactory bulb, which connects to the limbic system and brain
  2. Trigeminal pathway - the trigeminal nerve distributes widely across the nasal mucosa and connects centrally
Medicated substances administered nasally can:
  • Bypass the blood-brain barrier to some extent
  • Stimulate mucociliary clearance and reduce mucus viscosity (respiratory benefit)
  • Deliver neuroactive compounds directly to brain regions
  • Nourish and balance the Prana Vata (the vital force governing the head region), Tarpaka Kapha (nourishing fluid of the brain), and Sadhaka Pitta (the mind-governing fire)

Benefits of Adequate Nasya

  • Prevention and management of eye, ear, and nasal diseases
  • Improved voice quality
  • Enhanced sensory perception (smell, vision, hearing, taste)
  • Healthy hair - prevention of premature greying and hair loss
  • Relief from headaches and migraines
  • Delayed aging
  • Strength to scalp, teeth, neck, and shoulders
  • Stress reduction and improved sleep
  • Mental clarity and memory improvement
  • Pleasant oral smell

Common Nasya Formulations

  • Anu Taila - a classic polyherbal medicated oil, widely used for daily/preventive Nasya
  • Shadbindu Taila - used for sinusitis, headaches, and hair disorders
  • Brahmi Ghrita - for cognitive and neurological conditions
  • Vacha (Calamus) oil - for Kapha and Vata conditions
  • Gudadi Nasya - for diseases of eyes, ears, nose, head, throat, and shoulders
  • Marichadi Nasya - a cleansing (Pradhamana) type for respiratory conditions

Current Research

A 2026 randomized controlled trial protocol (PMID 41511827) is investigating the impact of intranasal Ayurvedic medicine on neurophysiological variables and brain functional connectivity using fMRI in healthy individuals - reflecting growing scientific interest in validating the CNS mechanisms of Nasya. Robust clinical trial data, however, remains limited, and most evidence for Nasya is based on classical texts and observational reports.

In summary, Nasya Karma is a sophisticated Ayurvedic nasal therapy that works as both a purification and nourishing treatment. Its primary domain is diseases of the head, neck, and sense organs, and it is considered particularly valuable when performed as part of a complete Panchakarma protocol under qualified Ayurvedic supervision.
attachment
attachment

Expalkn this

This slide shows Charaka's classification of Nasya Karma from Charaka Samhita, Siddhisthana Chapter 9 — the classical Ayurvedic text's definitive categorization of nasal therapies into 5 types.
Here is a detailed explanation of each:

Charaka's 5 Types of Nasya (Cha. Si. 9)


1. 🫧 Navana Nasya

  • Meaning: "To pour" or instill
  • Drug form: A mixture of decoctions (kwatha) + fresh herbal juices + oils combined together
  • Method: Liquid drops instilled directly into the nostrils
  • Sub-types:
    • Snehana Navana - using oily/unctuous preparations (for nourishment)
    • Shodhana Navana - using cleansing preparations (for purification)
  • Used for: Pitta-Vata and Pitta-Kapha disorders, general head diseases, sinusitis, migraine, paralysis
  • This is the most commonly performed type in clinical practice

2. 🌿 Avapida Nasya

  • Meaning: "To press/squeeze out" - derived from pressing fresh herbs
  • Drug form: Fresh herbal juice expressed by pressing/squeezing plant material - no oil base
  • Method: The juice is expressed fresh and instilled as drops into the nostrils
  • Potency: Stronger action than Navana because the raw plant juice retains full phytochemical potency
  • Used for: Conditions requiring strong therapeutic action - epilepsy (Apasmara), unconsciousness, poisoning, severe mental disorders, convulsions
  • Key feature: The drug is more concentrated and acts more forcefully

3. 💨 Dhmapana Nasya (also written Dhmaapana)

  • Meaning: "To blow in" (Dhma = to blow)
  • Drug form: Dry herbal powder blown forcefully into the nostrils using a tube (nadi/pipe)
  • Method: Fine medicated powder is insufflated (blown) into the nasal passages through a thin tube - the patient inhales it
  • This is also called Pradhamana Nasya in other classifications
  • Potency: The most powerful and intense type - works rapidly
  • Used for: Emergency/acute conditions - unconsciousness, epilepsy, stroke, psychiatric disorders (Unmada), poisoning, extreme drowsiness, Kapha-dominant diseases of the head
  • Key feature: Rapid onset; causes sneezing and forceful expulsion of Doshas

4. 🌫️ Dhuma Nasya

  • Meaning: "Smoke/fume" inhalation
  • Drug form: Medicated smoke from specially prepared herbal cigarettes (Dhumavarti) or burning of herbal compounds
  • Method: Medicated herbal sticks/wicks are lit and the smoke is inhaled through the nose (and sometimes exhaled through the mouth) using a pipe
  • Three types of Dhumavarti (medicated wicks):
    • Snigdha (unctuous) - oily herbs, for Vata disorders
    • Madhyama (moderate) - balanced herbs, for general use
    • Teekshna (sharp/intense) - pungent herbs, for Kapha disorders
  • Used for: Diseases of nose, throat, head; excessive Kapha, rhinitis, hoarseness, hiccups, excessive salivation, skin diseases of the face
  • Contraindication: NOT to be used in Pitta-dominant conditions, bleeding disorders, or eye diseases

5. 🤏 Pratimarsha Nasya

  • Meaning: "Daily/repeated" nasal application (Prati = every day, Marsha = the measure)
  • Drug form: A very small quantity of oil or ghee (just 2 drops per nostril) applied with the tip of the little finger
  • Method: Dip the clean little finger (or a thin wick) in medicated oil and gently insert into each nostril, massaging the inner nasal wall softly
  • Dose: Only 2 drops (Bindu matra) - the smallest dose of all types
  • Key feature: This is the daily preventive/maintenance Nasya - safe for everyday use without any special preparation or purification rituals
  • Used for: Daily health maintenance, prevention of disease, anti-aging, keeping nasal passages moist and healthy, preventing premature greying
  • Can be done: Every day, all seasons, by almost anyone
  • Distinguished from Marsha Nasya (which uses slightly larger doses and is done periodically, not daily)

Quick Comparison Table

#TypeDrug FormPotencyMain Use
1NavanaJuice + decoction + oilModerateGeneral head diseases
2AvapidaFresh pressed juice onlyStrongEpilepsy, severe disorders
3DhmapanaDry powder blown inMost intenseEmergency, Kapha excess
4DhumaMedicated smokeModerate-strongKapha disorders, throat
5Pratimarsha2 drops oil (finger)MildestDaily prevention

Why Charaka's Classification Matters

Charaka organized these 5 types based on drug consistency and route of delivery rather than therapeutic intent. This is different from Sushruta's classification (which groups by therapeutic purpose: Shodhana, Brimhana, Shamana, Navana, Marshya). Charaka's approach in Siddhisthana 9 is the more anatomically detailed account and is the basis for clinical Panchakarma training in Ayurvedic colleges - which is why it appears on this lecture slide by Dr. Brinda Kan[t/war].

Give comparison with table

Here is a detailed comparison of Charaka's vs Sushruta's classification of Nasya Karma:

Charaka vs Sushruta - Classification of Nasya Karma

Basic Difference in Approach

ParameterCharaka (Cha. Si. 9)Sushruta (Su. Chi. 40)
Basis of classificationDrug form / route of deliveryTherapeutic purpose / action
Number of types55
FocusHow the drug is givenWhy the drug is given
Clinical relevanceProcedural/technicalDisease-targeted

Side-by-Side Type Comparison

#Charaka's TypeSushruta's TypeCommon Ground
1NavanaNavanaSame name, same concept - both describe liquid instillation
2AvapidaShodhana (Rechana)Both are cleansing/purifying types using strong preparations
3DhmapanaPradhamanaSame procedure - dry powder blown into nostril; Sushruta uses a different name
4DhumaShamanaSushruta's Shamana = pacifying; Charaka's Dhuma is smoke-based and overlaps differently
5PratimarshaBrimhanaBoth are gentle, nourishing, maintenance-type applications

Detailed Head-to-Head Comparison of Each Type

FeatureNavana (Both)Avapida (Charaka) / Shodhana (Sushruta)Dhmapana (Charaka) / Pradhamana (Sushruta)Dhuma (Charaka) / Shamana (Sushruta)Pratimarsha (Charaka) / Brimhana (Sushruta)
Drug formJuice + decoction + oilFresh pressed juice / strong herbal decoctionsDry herbal powderMedicated smoke / mild decoctions or oils2 drops oil (finger) / medicated oils and ghee
MethodDrop instillationDrop instillationPowder blown in via tubeInhalation of smoke / gentle dropsSelf-application with little finger
PotencyModerateStrongMost intense/forcefulModerate (smoke) / Mild (Shamana)Mildest
Dosage8-32 drops4-8 dropsBlown as neededInhaled as smoke2 drops only
Dominant DoshaVata + PittaKapha excess, VataKapha (acute)Kapha (Dhuma) / all 3 Doshas (Shamana)Vata (Pratimarsha) / Vata-Pitta (Brimhana)
Main conditionsGeneral head diseases, sinusitis, migraineEpilepsy, unconsciousness, poisoningEmergency - stroke, seizures, comaRhinitis, hoarse voice, throat disordersDaily prevention, anti-aging
FrequencyTherapeutic coursesAs neededEmergency/acute usePeriodicDaily (every day)
Preparation neededYes (full Panchakarma prep)YesYesYesNo (can do independently)

Charaka's 5 Types - Individual Detail

TypeSanskrit MeaningDrugPotencyDuration of EffectPrimary Target
NavanaTo pour/instillJuice + kwatha + oilModerate4-6 hoursGeneral head diseases
AvapidaTo press/squeezeFresh herb juice onlyStrong2-4 hoursAcute neurological, Kapha
DhmapanaTo blow inDry herbal powderMost intense1-2 hours (rapid)Emergency, severe Kapha
DhumaSmoke/fumeMedicated smokeModerate-strong3-4 hoursThroat, nose, Kapha head
PratimarshaDaily/repeatedOil - 2 drops onlyMildestOngoing/maintenancePrevention, daily health

Sushruta's 5 Types - Individual Detail

TypeSanskrit MeaningDrugPotencyDosha TargetPrimary Purpose
NavanaTo pourJuice + decoction + oilModerateVata + PittaGeneral therapeutic
Shodhana / RechanaCleansing/purifyingStrong herbal powders, pungent oilsStrongKapha excessDetoxification
PradhamanaTo blow/propelDry powder blown inMost intenseKapha (acute)Emergency cleansing
ShamanaPacifying/balancingMild oils, medicated decoctionsMildAll DoshasMaintenance, balancing
BrimhanaNourishing/strengtheningMedicated ghee, milk, nutritive oilsMild-moderateVata depletionNourishment, anti-aging

Vagbhata's Approach (Ashtanga Hridayam)

Vagbhata, the third major classical author, simplified the classification:
Vagbhata's TypeEquivalent in CharakaEquivalent in Sushruta
VirechanaDhmapana + AvapidaShodhana + Pradhamana
BrimhanaPratimarsha (nourishing)Brimhana
ShamanaNavana + DhumaShamana + Navana
Vagbhata reduced the types to 3 broad categories based purely on therapeutic outcome, making it easier to apply clinically.

Contraindications - Comparison

ConditionNavanaAvapidaDhmapanaDhumaPratimarsha
PregnancyAvoidAvoidAvoidAvoidCaution
After mealsAvoidAvoidAvoidAvoidSafe
Eye diseaseSafeCautionAvoidContraindicatedSafe
Bleeding disordersCautionAvoidAvoidContraindicatedSafe
ChildrenAvoidAvoidAvoidAvoidSafe
Old age (weak)CautionAvoidAvoidCautionSafe
Daily useNoNoNoNoYes

Summary - Key Differences at a Glance

FeatureCharakaSushruta
Classification basisDrug formTherapeutic action
Most unique typeDhuma (smoke)Brimhana (nourishing)
Overlapping typesNavana, DhmapanaNavana, Pradhamana
Daily-use typePratimarshaShamana
Emergency typeDhmapanaPradhamana
Nourishing typePratimarsha (mild)Brimhana (dedicated)
Cleansing typeAvapidaShodhana/Rechana
Practical emphasisTechnical procedureDisease management
Best for studentsUnderstanding HOW to giveUnderstanding WHEN to give

Bottom line: Charaka tells you how to administer Nasya (the technique and drug form), while Sushruta tells you why and for whom (the therapeutic goal and Dosha target). In clinical practice, both classifications are used together - Charaka's technique + Sushruta's indication = correct Nasya prescription.

Can you turn this in a a4 size printable form

Reading File
Running Command

mkdir -p /tmp/workspace/nasya-karma && ls /tmp/workspace/nasya-karma/

Writing File

~/nasya-karma/generate_pdf.py

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

OUTPUT = "/tmp/workspace/nasya-karma/Nasya_Karma_Comparison.pdf"

# ── Colours ──────────────────────────────────────────────────────────────────
DARK_GREEN   = colors.HexColor("#1B4332")
MID_GREEN    = colors.HexColor("#2D6A4F")
LIGHT_GREEN  = colors.HexColor("#D8F3DC")
ACCENT       = colors.HexColor("#40916C")
PALE         = colors.HexColor("#F0FFF4")
HEADER_TEXT  = colors.white
BODY_BG      = colors.HexColor("#FAFFFE")
ALT_ROW      = colors.HexColor("#EAF4EE")
BORDER       = colors.HexColor("#74C69D")

# ── Document ──────────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=1.5*cm, rightMargin=1.5*cm,
    topMargin=1.8*cm,  bottomMargin=1.8*cm,
    title="Nasya Karma – Classification Comparison",
    author="Orris | Dr. Brinda Kant Lecture Notes"
)

styles = getSampleStyleSheet()

# Custom paragraph styles
title_style = ParagraphStyle(
    "Title", parent=styles["Title"],
    fontSize=18, textColor=DARK_GREEN,
    spaceAfter=4, spaceBefore=0,
    alignment=TA_CENTER, fontName="Helvetica-Bold"
)
subtitle_style = ParagraphStyle(
    "Subtitle", parent=styles["Normal"],
    fontSize=9, textColor=ACCENT,
    spaceAfter=10, alignment=TA_CENTER, fontName="Helvetica-Oblique"
)
section_style = ParagraphStyle(
    "Section", parent=styles["Normal"],
    fontSize=11, textColor=DARK_GREEN,
    spaceBefore=12, spaceAfter=4,
    fontName="Helvetica-Bold"
)
note_style = ParagraphStyle(
    "Note", parent=styles["Normal"],
    fontSize=7.5, textColor=colors.HexColor("#555555"),
    spaceBefore=3, spaceAfter=6,
    fontName="Helvetica-Oblique", alignment=TA_JUSTIFY
)
cell_style = ParagraphStyle(
    "Cell", parent=styles["Normal"],
    fontSize=7.5, leading=10, fontName="Helvetica"
)
cell_bold = ParagraphStyle(
    "CellBold", parent=styles["Normal"],
    fontSize=7.5, leading=10, fontName="Helvetica-Bold"
)

def P(text, style=None):
    return Paragraph(text, style or cell_style)

def hdr(text):
    return Paragraph(f"<b>{text}</b>", ParagraphStyle(
        "Hdr", parent=styles["Normal"],
        fontSize=8, leading=10,
        textColor=HEADER_TEXT, fontName="Helvetica-Bold",
        alignment=TA_CENTER
    ))

def make_table(data, col_widths, header_rows=1, alt_start=1):
    t = Table(data, colWidths=col_widths, repeatRows=header_rows)
    n = len(data)
    style_cmds = [
        # Header
        ("BACKGROUND",  (0,0), (-1, header_rows-1), MID_GREEN),
        ("TEXTCOLOR",   (0,0), (-1, header_rows-1), HEADER_TEXT),
        ("FONTNAME",    (0,0), (-1, header_rows-1), "Helvetica-Bold"),
        ("FONTSIZE",    (0,0), (-1, header_rows-1), 8),
        ("ALIGN",       (0,0), (-1, header_rows-1), "CENTER"),
        ("VALIGN",      (0,0), (-1,-1), "MIDDLE"),
        # Grid
        ("GRID",        (0,0), (-1,-1), 0.4, BORDER),
        ("ROWBACKGROUND",(0, header_rows), (-1,-1),
         [PALE, ALT_ROW] * ((n - header_rows)//2 + 1)),
        ("LEFTPADDING",  (0,0), (-1,-1), 4),
        ("RIGHTPADDING", (0,0), (-1,-1), 4),
        ("TOPPADDING",   (0,0), (-1,-1), 3),
        ("BOTTOMPADDING",(0,0), (-1,-1), 3),
        # First column accent
        ("BACKGROUND",  (0, header_rows), (0,-1), LIGHT_GREEN),
        ("FONTNAME",    (0, header_rows), (0,-1), "Helvetica-Bold"),
    ]
    t.setStyle(TableStyle(style_cmds))
    return t

# ─────────────────────────────────────────────────────────────────────────────
story = []

# ── PAGE HEADER ───────────────────────────────────────────────────────────────
story.append(Paragraph("NASYA KARMA", title_style))
story.append(Paragraph(
    "Classification &amp; Comparison — Charaka vs Sushruta vs Vagbhata",
    subtitle_style
))
story.append(HRFlowable(width="100%", thickness=1.5, color=MID_GREEN, spaceAfter=6))

# ── TABLE 1 – Basic Difference ────────────────────────────────────────────────
story.append(Paragraph("1. Basis of Classification", section_style))
W = doc.width
t1_data = [
    [hdr("Parameter"), hdr("Charaka  (Cha. Si. 9)"), hdr("Sushruta  (Su. Chi. 40)"), hdr("Vagbhata  (A.H.)")],
    [P("Basis"),         P("Drug form / route of delivery"), P("Therapeutic purpose / action"), P("Therapeutic outcome")],
    [P("No. of types"),  P("5"), P("5"), P("3")],
    [P("Focus"),         P("HOW the drug is given"),         P("WHY / for whom it is given"),   P("Net clinical effect")],
    [P("Approach"),      P("Procedural / technical"),        P("Disease-targeted"),             P("Simplified / broad")],
]
story.append(make_table(t1_data, [W*0.18, W*0.28, W*0.28, W*0.26]))
story.append(Spacer(1, 8))

# ── TABLE 2 – Side-by-side type mapping ──────────────────────────────────────
story.append(Paragraph("2. Type-to-Type Mapping", section_style))
t2_data = [
    [hdr("#"), hdr("Charaka's Type"), hdr("Sushruta's Type"), hdr("Vagbhata"), hdr("Overlap / Difference")],
    [P("1"), P("Navana"),       P("Navana"),              P("Shamana"),  P("Same name & concept — liquid instillation")],
    [P("2"), P("Avapida"),      P("Shodhana / Rechana"),  P("Virechana"),P("Both cleansing; Charaka = fresh juice, Sushruta = strong decoctions")],
    [P("3"), P("Dhmapana"),     P("Pradhamana"),          P("Virechana"),P("Identical procedure — dry powder blown in; only name differs")],
    [P("4"), P("Dhuma"),        P("Shamana"),             P("Shamana"),  P("Different: Charaka = smoke inhalation; Sushruta = mild balancing drops")],
    [P("5"), P("Pratimarsha"),  P("Brimhana"),            P("Brimhana"), P("Both gentle/daily; Sushruta focuses on nourishment, Charaka on maintenance")],
]
story.append(make_table(t2_data, [W*0.05, W*0.16, W*0.18, W*0.14, W*0.47]))
story.append(Spacer(1, 8))

# ── TABLE 3 – Charaka detail ──────────────────────────────────────────────────
story.append(Paragraph("3. Charaka's 5 Types — Detailed", section_style))
t3_data = [
    [hdr("Type"), hdr("Meaning"), hdr("Drug Form"), hdr("Potency"), hdr("Dosha"), hdr("Duration"), hdr("Primary Use")],
    [P("Navana"),      P("To pour"),       P("Juice + kwatha + oil"),        P("Moderate"), P("V+P"),    P("4–6 h"), P("Sinusitis, migraine, head diseases")],
    [P("Avapida"),     P("To press/squeeze"),P("Fresh pressed herb juice"),  P("Strong"),   P("K, V"),   P("2–4 h"), P("Epilepsy, unconsciousness, poisoning")],
    [P("Dhmapana"),    P("To blow in"),    P("Dry herbal powder (blown)"),   P("Strongest"),P("K acute"),P("1–2 h"), P("Emergency — stroke, seizures, coma")],
    [P("Dhuma"),       P("Smoke/fume"),    P("Medicated smoke"),             P("Mod–Strong"),P("K"),     P("3–4 h"), P("Rhinitis, hoarseness, throat/Kapha")],
    [P("Pratimarsha"), P("Daily/repeated"),P("2 drops oil (little finger)"), P("Mildest"),  P("V"),      P("Daily"), P("Prevention, anti-aging, daily health")],
]
story.append(make_table(t3_data, [W*0.13, W*0.12, W*0.20, W*0.10, W*0.08, W*0.09, W*0.28]))
story.append(Spacer(1, 8))

# ── TABLE 4 – Sushruta detail ─────────────────────────────────────────────────
story.append(Paragraph("4. Sushruta's 5 Types — Detailed", section_style))
t4_data = [
    [hdr("Type"), hdr("Meaning"), hdr("Drug Form"), hdr("Potency"), hdr("Dosha Target"), hdr("Primary Purpose")],
    [P("Navana"),           P("To pour"),        P("Juice + decoction + oil"),         P("Moderate"),    P("Vata + Pitta"), P("General therapeutic use")],
    [P("Shodhana/Rechana"), P("Cleansing"),       P("Strong herbal powders, pungent oils"), P("Strong"), P("Kapha excess"), P("Detoxification / purification")],
    [P("Pradhamana"),       P("To propel/blow"),  P("Dry powder blown via tube"),       P("Strongest"),   P("Kapha acute"),  P("Emergency cleansing")],
    [P("Shamana"),          P("Pacifying"),       P("Mild decoctions, medicated oils"), P("Mild"),        P("All Doshas"),   P("Maintenance, balancing")],
    [P("Brimhana"),         P("Nourishing"),      P("Medicated ghee, milk, nutritive oils"), P("Mild–Mod"), P("Vata depletion"), P("Nourishment, anti-aging, debility")],
]
story.append(make_table(t4_data, [W*0.18, W*0.12, W*0.23, W*0.11, W*0.14, W*0.22]))
story.append(Spacer(1, 8))

# ── PAGE 2 ─────────────────────────────────────────────────────────────────────
story.append(PageBreak())
story.append(Paragraph("NASYA KARMA — Continued", title_style))
story.append(HRFlowable(width="100%", thickness=1.5, color=MID_GREEN, spaceAfter=8))

# ── TABLE 5 – Dosage ──────────────────────────────────────────────────────────
story.append(Paragraph("5. Dosage Classification (Sushruta)", section_style))
t5_data = [
    [hdr("Dose Type"), hdr("Sanskrit Term"), hdr("Drops per Nostril"), hdr("Used For")],
    [P("Low dose"),    P("Hina Matra"),    P("8 drops"),  P("Children, elderly, debilitated patients")],
    [P("Medium dose"), P("Madhyama Matra"),P("16 drops"), P("Standard adult therapeutic dose")],
    [P("High dose"),   P("Uttama Matra"),  P("32 drops"), P("Strong constitution, Kapha-dominant conditions")],
]
story.append(make_table(t5_data, [W*0.18, W*0.22, W*0.22, W*0.38]))
story.append(Spacer(1, 8))

# ── TABLE 6 – Contraindications ───────────────────────────────────────────────
story.append(Paragraph("6. Contraindications Comparison", section_style))

def ci(text, ok=False, warn=False):
    if ok:
        return Paragraph(f'<font color="#1B4332"><b>{text}</b></font>', cell_style)
    if warn:
        return Paragraph(f'<font color="#B5451B">{text}</font>', cell_style)
    return P(text)

t6_data = [
    [hdr("Condition"),         hdr("Navana"),  hdr("Avapida"), hdr("Dhmapana"), hdr("Dhuma"),  hdr("Pratimarsha")],
    [P("Pregnancy"),           ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Avoid",warn=True), P("Caution")],
    [P("After meals"),         ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Safe",ok=True)],
    [P("Eye disease"),         ci("Safe",ok=True), P("Caution"), ci("Avoid",warn=True), ci("Contra-indicated",warn=True), ci("Safe",ok=True)],
    [P("Bleeding disorders"),  P("Caution"),  ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Contra-indicated",warn=True), ci("Safe",ok=True)],
    [P("Children"),            ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Safe",ok=True)],
    [P("Elderly / weak"),      P("Caution"),  ci("Avoid",warn=True), ci("Avoid",warn=True), P("Caution"), ci("Safe",ok=True)],
    [P("Daily long-term use"), P("No"),       P("No"),    P("No"),    P("No"),    ci("YES",ok=True)],
    [P("Indigestion"),         ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Avoid",warn=True)],
    [P("Intoxication"),        ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Avoid",warn=True), ci("Avoid",warn=True), P("Caution")],
]
story.append(make_table(t6_data, [W*0.24, W*0.14, W*0.14, W*0.14, W*0.18, W*0.16]))
story.append(Spacer(1, 8))

# ── TABLE 7 – Summary ─────────────────────────────────────────────────────────
story.append(Paragraph("7. Key Differences at a Glance", section_style))
t7_data = [
    [hdr("Feature"),              hdr("Charaka"),                  hdr("Sushruta"),               hdr("Vagbhata")],
    [P("Classification basis"),   P("Drug form / technique"),      P("Therapeutic action"),        P("Clinical outcome")],
    [P("Most unique type"),       P("Dhuma (smoke)"),              P("Brimhana (nourishing)"),     P("3-type simplification")],
    [P("Daily-use type"),         P("Pratimarsha"),                P("Shamana"),                   P("Shamana")],
    [P("Emergency type"),         P("Dhmapana"),                   P("Pradhamana"),                P("Virechana")],
    [P("Nourishing type"),        P("Pratimarsha (mild)"),         P("Brimhana (dedicated)"),      P("Brimhana")],
    [P("Cleansing type"),         P("Avapida"),                    P("Shodhana / Rechana"),        P("Virechana")],
    [P("Practical emphasis"),     P("HOW to administer"),          P("WHEN & for whom"),           P("Broad therapeutic goal")],
    [P("Best for students"),      P("Technique mastery"),          P("Disease management"),        P("Quick clinical decision")],
]
story.append(make_table(t7_data, [W*0.24, W*0.26, W*0.26, W*0.24]))
story.append(Spacer(1, 10))

# ── Footer note ───────────────────────────────────────────────────────────────
story.append(HRFlowable(width="100%", thickness=0.8, color=ACCENT, spaceAfter=4))
story.append(Paragraph(
    "<b>Clinical Pearl:</b> Charaka tells you <i>how</i> to administer Nasya (technique + drug form); "
    "Sushruta tells you <i>why and for whom</i> (therapeutic goal + Dosha target). "
    "In practice, use Charaka's technique with Sushruta's indication for a complete Nasya prescription. "
    "Vagbhata's 3-type system is best for quick bedside decisions.",
    note_style
))
story.append(Paragraph(
    "Reference: Charaka Samhita – Siddhisthana Ch. 9 | Sushruta Samhita – Chikitsa Ch. 40 | "
    "Ashtanga Hridayam – Sutrasthana Ch. 20    •    Prepared for academic reference.",
    ParagraphStyle("Footer", parent=styles["Normal"],
                   fontSize=6.5, textColor=colors.grey,
                   alignment=TA_CENTER, fontName="Helvetica-Oblique")
))

# ── Build ──────────────────────────────────────────────────────────────────────
doc.build(story)
print("PDF created:", OUTPUT)
Running Command

cd /tmp/workspace/nasya-karma && python generate_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/nasya-karma/Nasya_Karma_Comparison.pdf

Your A4 printable PDF is ready! Download it here:

Nasya Karma Comparison

PDF Document · PDF


What's inside (2 pages, print-ready A4):
PageContent
Page 1Basis of classification table • Type-to-type mapping (Charaka vs Sushruta vs Vagbhata) • Charaka's 5 types detailed • Sushruta's 5 types detailed
Page 2Dosage classification (Hina/Madhyama/Uttama Matra) • Contraindications comparison • Key differences summary • Clinical pearl + references
Design features:
  • Deep green header theme fitting Ayurvedic aesthetics
  • Alternating row shading for easy reading
  • First-column bold accent for quick scanning
  • Contraindications marked in red/green for fast reference
  • References to Cha. Si. 9, Su. Chi. 40, and A.H. at the bottom
  • Fits cleanly on 2 A4 pages at standard print margins

Similarly give abt dhumpana

Searching the Web

Dhumapana Ayurvedic medicated smoke inhalation types procedure indications Charaka Sushruta

Reading Web Page

https://www.easyayurveda.com/dhumapana-ayurvedic-medicated-s…

Searching the Web

Dhumapana Dhumavarti types Snigdha Madhyama Teekshna Charaka Samhita classification procedure

Reading Web Page

https://ijrap.net/admin/php/uploads/2186_pdf.pdf

Writing File

~/nasya-karma/generate_dhumapana_pdf.py

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

OUTPUT = "/tmp/workspace/nasya-karma/Dhumapana_Complete_Reference.pdf"

# ── Colours ───────────────────────────────────────────────────────────────────
DARK       = colors.HexColor("#3B1F0A")   # dark brown
MID        = colors.HexColor("#7B3F00")   # warm brown
LIGHT      = colors.HexColor("#FDF0E0")   # light cream
ACCENT     = colors.HexColor("#C47C2B")   # amber
PALE       = colors.HexColor("#FFFAF3")
ALT        = colors.HexColor("#F5E6CF")
BORDER     = colors.HexColor("#D4A05A")
HDR_TEXT   = colors.white
GREEN_OK   = colors.HexColor("#1B4332")
RED_WARN   = colors.HexColor("#B5451B")

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=1.5*cm, rightMargin=1.5*cm,
    topMargin=1.8*cm,  bottomMargin=1.8*cm,
    title="Dhumapana – Complete Ayurvedic Reference",
    author="Orris Academic Reference"
)

styles = getSampleStyleSheet()

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

title_s   = PS("T",  fontSize=18, textColor=DARK, alignment=TA_CENTER,
               fontName="Helvetica-Bold", spaceAfter=3)
sub_s     = PS("S",  fontSize=9,  textColor=ACCENT, alignment=TA_CENTER,
               fontName="Helvetica-Oblique", spaceAfter=10)
sec_s     = PS("Se", fontSize=11, textColor=DARK, fontName="Helvetica-Bold",
               spaceBefore=10, spaceAfter=4)
cell_s    = PS("C",  fontSize=7.5, leading=10, fontName="Helvetica")
cell_b    = PS("CB", fontSize=7.5, leading=10, fontName="Helvetica-Bold")
note_s    = PS("N",  fontSize=7.5, textColor=colors.HexColor("#555555"),
               fontName="Helvetica-Oblique", alignment=TA_JUSTIFY,
               spaceBefore=3, spaceAfter=5)
foot_s    = PS("F",  fontSize=6.5, textColor=colors.grey,
               fontName="Helvetica-Oblique", alignment=TA_CENTER)

def P(t, s=None): return Paragraph(t, s or cell_s)
def PB(t):        return Paragraph(f"<b>{t}</b>", cell_s)

def hdr(t, center=True):
    return Paragraph(f"<b>{t}</b>", PS("H", fontSize=8, leading=10,
        textColor=HDR_TEXT, fontName="Helvetica-Bold",
        alignment=TA_CENTER if center else TA_LEFT))

def make_table(data, cw, hr=1):
    t = Table(data, colWidths=cw, repeatRows=hr)
    n = len(data)
    t.setStyle(TableStyle([
        ("BACKGROUND",   (0,0),(-1,hr-1), MID),
        ("TEXTCOLOR",    (0,0),(-1,hr-1), HDR_TEXT),
        ("FONTNAME",     (0,0),(-1,hr-1), "Helvetica-Bold"),
        ("FONTSIZE",     (0,0),(-1,hr-1), 8),
        ("ALIGN",        (0,0),(-1,hr-1), "CENTER"),
        ("VALIGN",       (0,0),(-1,-1),   "MIDDLE"),
        ("GRID",         (0,0),(-1,-1),   0.4, BORDER),
        ("ROWBACKGROUND",(0,hr),(-1,-1),
         [PALE, ALT]*((n-hr)//2+1)),
        ("LEFTPADDING",  (0,0),(-1,-1), 4),
        ("RIGHTPADDING", (0,0),(-1,-1), 4),
        ("TOPPADDING",   (0,0),(-1,-1), 3),
        ("BOTTOMPADDING",(0,0),(-1,-1), 3),
        ("BACKGROUND",   (0,hr),(0,-1), LIGHT),
        ("FONTNAME",     (0,hr),(0,-1), "Helvetica-Bold"),
    ]))
    return t

def ci(t, ok=False, warn=False):
    if ok:   return Paragraph(f'<font color="#1B4332"><b>{t}</b></font>', cell_s)
    if warn: return Paragraph(f'<font color="#B5451B">{t}</font>', cell_s)
    return P(t)

story = []
W = doc.width

# ══ TITLE ════════════════════════════════════════════════════════════════════
story.append(Paragraph("DHUMAPANA", title_s))
story.append(Paragraph(
    "Ayurvedic Medicated Smoke Inhalation – Complete Classification &amp; Reference",
    sub_s))
story.append(HRFlowable(width="100%", thickness=1.5, color=MID, spaceAfter=6))

# ══ TABLE 1 – Overview ═══════════════════════════════════════════════════════
story.append(Paragraph("1. Basic Overview", sec_s))
t1 = [
    [hdr("Aspect"), hdr("Details")],
    [PB("Etymology"),   P("Dhuma (smoke) + Pana (to consume/inhale) = Inhalation of medicated smoke")],
    [PB("Synonym"),     P("Dhumra")],
    [PB("Definition"),  P("An Ayurvedic procedure where medicated herbal wicks (Dhumavarti) are ignited and the smoke is inhaled through nostrils/mouth for prevention and treatment of disease")],
    [PB("Category"),    P("Dinacharya (daily regimen) + Panchakarma (Purvakarma & Paschatkarma)")],
    [PB("Primary site"),P("Head, neck, throat, sense organs, respiratory tract, psychosomatic disorders")],
    [PB("References"),  P("Ch.Sa. Sutrasthana 5/14–58 | Su.Sa. Chikitsa 40/4 | A.H. Sutrasthana 21")],
    [PB("Route"),       P("Inhalation through nostrils; exhalation ALWAYS through mouth")],
    [PB("Frequency"),   P("Prayogika type: up to 3 times daily | Others: as prescribed, part of therapy")],
]
story.append(make_table(t1, [W*0.22, W*0.78]))
story.append(Spacer(1, 8))

# ══ TABLE 2 – Classification comparison ══════════════════════════════════════
story.append(Paragraph("2. Classification by Acharya – Comparison", sec_s))
t2 = [
    [hdr("#"), hdr("Charaka\n(Ch.Sa. Su. 5)"), hdr("Sushruta\n(Su.Sa. Chi. 40)"), hdr("Vagbhata\n(A.H. Su. 21)"), hdr("Common Ground")],
    [P("1"), P("Prayogika\n(Shamana)"),  P("Prayogika\n(Shamana)"),  P("Snigdha"),    P("Daily use / preventive / pacifying")],
    [P("2"), P("Vairechanika"),          P("Vairechanika"),           P("Madhyama"),   P("Cleansing / purgative type")],
    [P("3"), P("Snaihika"),              P("Snaihika"),               P("Teekshna"),   P("Unctuous / lubricating type")],
    [P("4"), P("—"),                     P("Kashaghna"),              P("Sodhanam"),   P("Sushruta only: antitussive for cough")],
    [P("5"), P("—"),                     P("Vamaniya"),               P("Vranagna"),   P("Sushruta only: emesis-inducing | Vagbhata: wound-healing")],
    [P("6"), P("—"),                     P("Vranagna"),               P("Brimhanam"),  P("Sushruta: wound-healing | Vagbhata: nourishing")],
]
story.append(make_table(t2, [W*0.05, W*0.17, W*0.17, W*0.16, W*0.45]))
story.append(Spacer(1, 8))

# ══ TABLE 3 – Charaka's 3 types in detail ════════════════════════════════════
story.append(Paragraph("3. Charaka's 3 Types — Detailed (Ch.Sa. Sutrasthana 5)", sec_s))
t3 = [
    [hdr("Type"), hdr("Meaning"), hdr("Key Herbs / Materials"), hdr("Potency"), hdr("Dosha"), hdr("Primary Indications")],
    [P("Prayogika\n(Shamana)"), P("Daily use /\nPacifying"),
     P("Ela (cardamom), Patra, Twak, Chandana, Agaru, Guggulu, Sarjarasa, Madhuka, Priyangu"),
     P("Mild"),       P("All Doshas\n(preventive)"),
     P("Daily maintenance; post-bath, post-meals, after Nasya, after sleep; prevention of head/throat diseases")],
    [P("Vairechanika"), P("Cleansing /\nPurgative"),
     P("Aparajita (Clitoria ternatea), Jyotishmati, Hartal, Manah-shila, Gandha Agaru, Patra (Cinnamomum tamala)"),
     P("Strong"),      P("Kapha excess"),
     P("Chronic sinusitis, excess Kapha in head, psychiatric disorders, epilepsy, skin diseases of face")],
    [P("Snaihika"), P("Unctuous /\nLubricating"),
     P("Vasa (fat), Ghrita (clarified butter), Madhuchhishta (beeswax) + Jeevaniya Gana drugs (Jeevaka, Meda, Kakoli, Jeevanti, Madhuka, etc.)"),
     P("Moderate"),    P("Vata"),
     P("Neurological disorders, dryness of head/throat, Vata diseases, hoarseness, hair disorders, debility")],
]
story.append(make_table(t3, [W*0.12, W*0.11, W*0.29, W*0.09, W*0.10, W*0.29]))
story.append(Spacer(1, 8))

# ══ TABLE 4 – Sushruta's 5 types ═════════════════════════════════════════════
story.append(Paragraph("4. Sushruta's 5 Types — Detail (Su.Sa. Chikitsa 40)", sec_s))
t4 = [
    [hdr("Type"), hdr("Meaning"), hdr("Potency"), hdr("Dosha"), hdr("Indications"), hdr("Special Feature")],
    [P("Prayogika"),  P("Daily / Preventive"),    P("Mild"),         P("All"),      P("Daily health, Dinacharya, post-procedure care"),     P("Safe for everyone; can be done daily up to 3×/day")],
    [P("Vairechanika"),P("Cleansing"),             P("Strong"),       P("Kapha"),    P("Sinusitis, mental disorders, epilepsy, skin"),        P("Most commonly used in clinical Panchakarma")],
    [P("Snaihika"),   P("Lubricating"),            P("Moderate"),     P("Vata"),     P("Vata diseases, neurological, dryness, hoarseness"),   P("Contains Jeevaniya Gana — highly nourishing")],
    [P("Kashaghna"),  P("Cough-relieving"),        P("Moderate"),     P("Kapha+Vata"),P("Kasa (cough), respiratory disorders, asthma"),     P("Unique to Sushruta — specific for respiratory use")],
    [P("Vamaniya"),   P("Emesis-inducing"),        P("Strong"),       P("Kapha"),    P("Nausea, severe Kapha head accumulation, epilepsy"),   P("Used before Vamana procedure or as standalone")],
]
story.append(make_table(t4, [W*0.13, W*0.14, W*0.10, W*0.11, W*0.28, W*0.24]))

# ══ PAGE 2 ════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(Paragraph("DHUMAPANA — Continued", title_s))
story.append(HRFlowable(width="100%", thickness=1.5, color=MID, spaceAfter=8))

# ══ TABLE 5 – Vagbhata's classification ══════════════════════════════════════
story.append(Paragraph("5. Vagbhata's Classification (A.H. Sutrasthana 21)", sec_s))
t5 = [
    [hdr("Type"), hdr("Meaning"), hdr("Potency"), hdr("Drug Property"), hdr("Main Use")],
    [P("Snigdha"),  P("Unctuous / oily"),    P("Mild"),      P("Fatty, unctuous, smooth smoke"),  P("Vata diseases, neurological, dryness")],
    [P("Madhyama"), P("Moderate / balanced"), P("Moderate"),  P("Balanced herbs, mixed potency"),  P("General therapeutic and maintenance")],
    [P("Teekshna"), P("Sharp / intense"),     P("Strong"),    P("Pungent, sharp, penetrating"),    P("Kapha disorders, acute cleansing, psychiatric")],
]
story.append(make_table(t5, [W*0.15, W*0.20, W*0.13, W*0.27, W*0.25]))
story.append(Spacer(1, 8))

# ══ TABLE 6 – Procedure ═══════════════════════════════════════════════════════
story.append(Paragraph("6. Procedure of Dhumapana (Step-by-Step)", sec_s))
t6 = [
    [hdr("Stage"), hdr("Step"), hdr("Details")],
    [P("Pre-procedure"),   P("1. Patient preparation"),   P("Patient should not be hungry, intoxicated, or have just eaten")],
    [P(""),                P("2. Pre-treatment"),          P("Snehana (oil massage) and Swedana (fomentation) of head, neck, face if part of Panchakarma")],
    [P(""),                P("3. Dhumavarti preparation"),  P("Medicated wick prepared with appropriate herbs on Ishika (hay/bamboo reed) base; smear ghee, ignite for 30 seconds before use")],
    [P("Procedure"),       P("4. Posture"),                P("Patient sits comfortably upright; breathes normally")],
    [P(""),                P("5. Setup"),                  P("Place lit Dhumavarti into Dhumanetra (special nozzle pipe with 3 curves — Trikosha)")],
    [P(""),                P("6. Inhalation"),             P("Inhale smoke slowly through ONE nostril; ALWAYS exhale through mouth (never through nose)")],
    [P(""),                P("7. Rounds"),                 P("3 puffs per nostril = 1 round; repeat through other nostril; total 3 rounds normally")],
    [P("Post-procedure"),  P("8. After care"),             P("Gargle with warm water; rest in comfortable position; avoid cold, wind, dust")],
    [P(""),                P("9. Observation"),            P("Check for Samyak Yoga (proper signs) — lightness in chest, throat clarity, clear sense organs")],
]
story.append(make_table(t6, [W*0.16, W*0.22, W*0.62], hr=1))
story.append(Spacer(1, 8))

# ══ TABLE 7 – Dhumanetra ═════════════════════════════════════════════════════
story.append(Paragraph("7. Dhumanetra (Inhalation Pipe) — Specifications", sec_s))
t7 = [
    [hdr("Feature"), hdr("Specification")],
    [PB("Material"),   P("Same as Bastinetra: Gold (Suvarna), Silver (Rajata), Tin (Ranga), Lead (Naga), Copper (Tamra), or Bronze")],
    [PB("Structure"),  P("Must have 3 Kosha (three curves/bends) — called Trikosha Dhumanetra")],
    [PB("Base hole"),  P("Width of Angushtha (thumb tip) at the base opening")],
    [PB("Upper hole"), P("Width of Kolasthi (small bone/seed) at the upper mouthpiece")],
    [PB("Length"),     P("Approximately 24 Angula (finger widths) for standard adult use; shorter for children")],
    [PB("Purpose"),    P("The curves cool the smoke slightly and allow controlled inhalation; prevents direct flame/heat entry")],
]
story.append(make_table(t7, [W*0.20, W*0.80]))
story.append(Spacer(1, 8))

# ══ TABLE 8 – Samyak / Atiyoga / Ayoga ══════════════════════════════════════
story.append(Paragraph("8. Signs of Proper (Samyak), Excessive (Atiyoga) & Insufficient (Ayoga) Dhumapana", sec_s))
t8 = [
    [hdr("Category"), hdr("Signs / Symptoms"), hdr("Management")],
    [P("Samyak Yoga\n(Proper)"),
     P("• Lightness in chest (Hrudaya) and throat (Kantha)\n• Clarity in all sense organs\n• Feeling of freshness and comfort\n• Clear nasal passages\n• Pleasant sensation in head"),
     P("Continue; procedure was done correctly")],
    [P("Atiyoga\n(Excessive)"),
     P("• Burning sensation in throat\n• Excessive thirst\n• Bleeding (Raktapitta)\n• Giddiness / fainting\n• Dryness of mouth and nose\n• Pitta aggravation"),
     P("Cold water gargling; Pitta-pacifying diet; ghee intake; rest; Chandana + milk decoction")],
    [P("Ayoga\n(Insufficient)"),
     P("• Heaviness in head and chest\n• Running nose / excess mucus\n• Lethargy and drowsiness\n• Kapha not expelled\n• Stiffness of neck"),
     P("Repeat Dhumapana with stronger preparation; Teekshna (Vairechanika) type advised")],
]
story.append(make_table(t8, [W*0.15, W*0.45, W*0.40]))
story.append(Spacer(1, 8))

# ══ TABLE 9 – Indications ════════════════════════════════════════════════════
story.append(Paragraph("9. Indications of Dhumapana", sec_s))
t9 = [
    [hdr("System"), hdr("Conditions")],
    [PB("Respiratory"),      P("Pinasa (rhinitis), Pratishyaya (common cold), Kasa (cough), Shwasa (asthma), Hiccups (Hikka)")],
    [PB("Neurological"),     P("Ardita (facial paralysis), Apasmara (epilepsy), Manyastambha (neck stiffness), Shirahshula (headache)")],
    [PB("ENT"),              P("Karnashula (earache), ear discharge, Galaganda (goitre/throat swelling), hoarseness of voice")],
    [PB("Oral / Dental"),    P("Mukhashosa (dry mouth), bad breath, Dantashula (toothache), excessive salivation")],
    [PB("Psychiatric"),      P("Unmada (insanity), Apasmara (epilepsy), Nidra (excessive sleep/drowsiness), anxiety")],
    [PB("Hair & Skin"),      P("Khalitya (hair loss), Palita (premature greying), facial skin disorders, Vyanga (pigmentation)")],
    [PB("Eye"),              P("Mild eye discomfort, heaviness of eyelids (NOT for acute eye inflammation)")],
    [PB("Post-procedure"),   P("After Nasya, Vamana, Danta-dhavana (tooth cleaning), Anjana (eye drops), sneezing, bathing, sleep")],
]
story.append(make_table(t9, [W*0.20, W*0.80]))

# ══ TABLE 10 – Contraindications ════════════════════════════════════════════
story.append(PageBreak())
story.append(Paragraph("DHUMAPANA — Continued", title_s))
story.append(HRFlowable(width="100%", thickness=1.5, color=MID, spaceAfter=8))

story.append(Paragraph("10. Contraindications (Apathya) of Dhumapana", sec_s))
t10 = [
    [hdr("Category"), hdr("Specific Condition"), hdr("Reason")],
    [PB("Pitta conditions"),   P("Raktapitta (bleeding disorders), eye inflammation, fever"), P("Smoke aggravates Pitta and can cause burning, bleeding")],
    [PB("After substances"),   P("After consuming honey (Madhu), ghee (Ghrita), curd, milk, fish, alcohol, gruels"), P("These are incompatible with smoke; can cause Viruddha Ahara reaction")],
    [PB("Pregnancy"),          P("Garbhini (pregnant women)"),                                P("Can disturb Apana Vata and harm foetus")],
    [PB("Head injury"),        P("Shiro-abhighata (head trauma)"),                            P("Smoke pressure may worsen intracranial injury")],
    [PB("Exhaustion"),         P("Sramarta (physical fatigue), Kshudha (hungry), Pipasa (thirsty)"), P("Weak Agni cannot process the smoke properly")],
    [PB("Eye diseases"),       P("Acute eye infections, Timira (vision disorders with inflammation)"), P("Smoke directly irritates ocular mucosa")],
    [PB("Intoxication"),       P("Madya-pana (alcohol), drugs"),                              P("Combined effect can cause severe Pitta disturbance")],
    [PB("Mental exhaustion"),  P("Chinta (extreme grief/anxiety), Klama (mental fatigue)"),   P("May worsen Vata-Pitta imbalance in mind")],
]
story.append(make_table(t10, [W*0.20, W*0.35, W*0.45]))
story.append(Spacer(1, 8))

# ══ TABLE 11 – Timing ════════════════════════════════════════════════════════
story.append(Paragraph("11. Appropriate Timing for Dhumapana (Kala)", sec_s))
t11 = [
    [hdr("Time / Occasion"), hdr("Type Recommended"), hdr("Benefit")],
    [P("After waking up"),           P("Prayogika"),    P("Clears Kapha accumulated during night; freshens sense organs")],
    [P("After bathing (Snana)"),     P("Prayogika"),    P("Removes residual moisture/cold from nasal tract")],
    [P("After meals (Bhojana)"),     P("Prayogika"),    P("Aids digestion; clears throat; prevents post-meal Kapha")],
    [P("After Vamana"),              P("Prayogika"),    P("Paschatkarma — clears residual vomit material from upper tract")],
    [P("After Nasya"),               P("Prayogika"),    P("Paschatkarma — helps clear nasally administered medicine residue")],
    [P("After Anjana (eye drops)"),  P("Prayogika"),    P("Clears excess Kapha stimulated by eye drops")],
    [P("After sneezing"),            P("Prayogika"),    P("Stabilises Prana Vata; prevents rebound congestion")],
    [P("Therapeutic (diseased)"),    P("Vairechanika/\nSnaihika per Dosha"), P("Used as main treatment for specific disorders")],
    [P("Maximum daily dose"),        P("All types"),    P("3 times per day for Prayogika; 1–2× for Vairechanika/Snaihika")],
]
story.append(make_table(t11, [W*0.28, W*0.22, W*0.50]))
story.append(Spacer(1, 8))

# ══ TABLE 12 – Dhumapana vs Nasya vs Modern Inhalation ══════════════════════
story.append(Paragraph("12. Dhumapana vs Dhuma Nasya vs Modern Steam Inhalation", sec_s))
t12 = [
    [hdr("Feature"),          hdr("Dhumapana"),               hdr("Dhuma Nasya\n(within Nasya)"),      hdr("Modern Steam Inhalation")],
    [PB("Route"),             P("Mouth + Nostrils"),           P("Nostrils only"),                       P("Mouth + Nostrils")],
    [PB("Medium"),            P("Medicated smoke (dry heat)"), P("Smoke as part of Nasya"),              P("Water vapor (moist heat)")],
    [PB("Drug delivery"),     P("Through mucosa via smoke"),   P("As one type of Nasya"),                P("Dissolved in steam")],
    [PB("CNS effect"),        P("Moderate — via olfactory"),   P("Strong — direct nasal route"),         P("Minimal")],
    [PB("Dosha action"),      P("Kapha + Vata (mainly)"),      P("All Doshas per drug"),                 P("Not classified by Dosha")],
    [PB("Daily use"),         P("Yes (Prayogika type)"),        P("No — requires full prep"),             P("Yes")],
    [PB("Contraindication"),  P("Eye disease, Pitta, bleeding"),P("Broader CI list"),                    P("Minimal CI")],
    [PB("Classical basis"),   P("Ch.Sa. Su.5 / Su.Chi.40"),    P("Part of Nasya classification"),        P("No classical basis")],
]
story.append(make_table(t12, [W*0.20, W*0.27, W*0.27, W*0.26]))
story.append(Spacer(1, 10))

# ══ Footer ════════════════════════════════════════════════════════════════════
story.append(HRFlowable(width="100%", thickness=0.8, color=ACCENT, spaceAfter=4))
story.append(Paragraph(
    "<b>Clinical Pearl:</b> Prayogika Dhumapana is the safest type — it can be used by both healthy and diseased individuals as part of daily Dinacharya, "
    "up to 3 times a day. Vairechanika (cleansing) is most powerful and used in clinical Panchakarma. "
    "Inhalation is ALWAYS through the nose/mouth but exhalation MUST be through the mouth — never re-inhale through nostrils. "
    "The Dhumanetra (pipe) must have 3 curves (Trikosha) to prevent direct heat from reaching the mucosa.",
    note_s
))
story.append(Paragraph(
    "References: Charaka Samhita – Sutrasthana 5/14–58 | Sushruta Samhita – Chikitsa 40/4 | "
    "Ashtanga Hridayam – Sutrasthana 21 | IJRAP 10(1) 2019 (Prayogika Dhumavarti Standardization)   •   Academic reference only.",
    foot_s
))

doc.build(story)
print("PDF created:", OUTPUT)
Running Command

cd /tmp/workspace/nasya-karma && python generate_dhumapana_pdf.py 2>&1

Here's the full explanation, plus your printable PDF:

Dhumapana Complete Reference

PDF Document · PDF


Dhumapana — Complete Reference

Etymology: Dhuma (smoke) + Pana (to consume/inhale) = Inhalation of medicated smoke. Synonym: Dhumra.
Dhumapana is an Ayurvedic procedure where specially prepared medicated herbal wicks (Dhumavarti) are ignited and the smoke is inhaled through the nostrils and mouth for both prevention and treatment. It functions as part of Dinacharya (daily regimen) and as Purvakarma/Paschatkarma (pre/post procedures) in Panchakarma. The smoke acts on Prana Vata, Tarpaka Kapha, and Udana Vata — all governing the head region.

Classification by Acharya

Charaka (Ch.Sa. Sutrasthana 5) — 3 Types

TypeMeaningDrugs UsedPotencyDoshaUse
Prayogika (Shamana)Daily / PacifyingEla, Patra, Twak, Chandana, Agaru, Guggulu, Sarjarasa, MadhukaMildAll (preventive)Daily Dinacharya — after bath, meals, Nasya, sleep
VairechanikaCleansing / PurgativeAparajita, Jyotishmati, Hartal, Manah-shila, Gandha Agaru, PatraStrongKaphaSinusitis, psychiatric disorders, epilepsy, facial skin
SnaihikaUnctuous / LubricatingVasa (fat), Ghrita, Madhuchhishta (beeswax) + entire Jeevaniya GanaModerateVataNeurological disorders, dryness, hoarseness, hair disorders

Sushruta (Su.Sa. Chikitsa 40) — 5 Types

Sushruta added 2 more types beyond Charaka:
TypeAdded byPotencySpecific Use
PrayogikaBothMildDaily use
VairechanikaBothStrongKapha cleansing
SnaihikaBothModerateVata nourishing
KashaghnaSushruta onlyModerateCough, asthma, respiratory disorders
VamaniyaSushruta onlyStrongEmesis-inducing; before Vamana or for Kapha accumulation

Vagbhata (A.H. Sutrasthana 21) — 6 Types

Vagbhata classified differently: Snigdha, Madhyama, Teekshna, Sodhanam, Brimhanam, Vranagna — based on the quality of smoke (unctuous/moderate/sharp) rather than purpose.

Procedure

  1. Prepare the Dhumavarti — herbal wick on Ishika (hay/bamboo) base; coat with appropriate herbs; smear ghee, ignite for 30 seconds
  2. Insert into the Dhumanetra (3-curved pipe — Trikosha) — curves cool the smoke and prevent direct heat
  3. Patient sits upright comfortably
  4. Inhale through ONE nostril slowly
  5. Exhale ALWAYS through mouth — never back through the nose (critical rule)
  6. 3 puffs = 1 round per nostril; repeat the other side; 3 rounds total
  7. Post-procedure: warm water gargling; rest; avoid cold/wind

Signs of Proper Administration (Samyak Yoga)

(Cha.Sa. Sutra 5/37)
  • Lightness in chest and throat
  • Clarity of all sense organs
  • Feeling of freshness, lightness in head
  • Clear nasal passages

Atiyoga (Excess) vs Ayoga (Insufficient)

SignsManagement
AtiyogaBurning throat, thirst, bleeding, giddiness, dry mouthCold gargling, ghee, Chandana+milk, Pitta diet
AyogaHeavy head, excess mucus, lethargy, Kapha not clearedRepeat with stronger Teekshna/Vairechanika type

Indications

  • Respiratory: Rhinitis, common cold, cough, asthma, hiccups
  • Neurological: Facial paralysis (Ardita), epilepsy, neck stiffness, headache
  • ENT: Earache, hoarseness, throat swelling, ear discharge
  • Oral: Dry mouth, bad breath, toothache, excess salivation
  • Psychiatric: Unmada (insanity), excessive sleep, drowsiness
  • Hair/Skin: Hair loss, premature greying, Vyanga (pigmentation)
  • Post-Panchakarma: After Nasya, Vamana, tooth cleaning, Anjana

Contraindications

  • Pitta-dominant conditions, bleeding disorders, eye inflammation
  • After consuming honey, ghee, curd, milk, fish, or alcohol
  • Pregnancy, head trauma, severe exhaustion, hunger/thirst
  • Acute eye diseases, intoxication, extreme mental fatigue

Timing for Dhumapana (Kala)

Classical texts specify exact occasions when Prayogika Dhumapana should be done: after waking, after bathing, after meals, after Vamana, after Nasya, after Anjana, after sneezing, after sleep. Maximum 3 times daily for the Prayogika type.

Key Rule to Remember

"Inhale through the nose/mouth — ALWAYS exhale through the mouth." Exhaling through the nose is strictly forbidden as it pushes smoke back into deeper nasal passages.

PDF contents (3 pages): Overview table → Acharya comparison → Charaka's 3 types detail → Sushruta's 5 types → Vagbhata's classification → Procedure steps → Dhumanetra specifications → Samyak/Atiyoga/Ayoga signs → Indications → Contraindications → Timing guide → Dhumapana vs Dhuma Nasya vs modern steam inhalation comparison.

Karnapurana

Searching the Web

Karnapurana Ayurvedic ear therapy types procedure indications contraindications Charaka Sushruta classification

Reading Web Page

https://www.ijcrt.org/papers/IJCRT2606267.pdf

Searching the Web

Karnapurana Karna Poorana medicated oils Bilva Nirgundi procedure Dinacharya Vata ear Ayurveda classical text

Writing File

~/nasya-karma/generate_karnapurana_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import cm
from reportlab.platypus import (
    SimpleDocTemplate, Table, TableStyle, Paragraph,
    Spacer, HRFlowable, PageBreak
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_JUSTIFY

OUTPUT = "/tmp/workspace/nasya-karma/Karnapurana_Complete_Reference.pdf"

# ── Colours (deep blue-teal theme for ear/sound) ──────────────────────────────
DARK     = colors.HexColor("#0D2B45")
MID      = colors.HexColor("#1A5276")
LIGHT    = colors.HexColor("#D6EAF8")
ACCENT   = colors.HexColor("#2E86C1")
PALE     = colors.HexColor("#F0F8FF")
ALT      = colors.HexColor("#D9EDF7")
BORDER   = colors.HexColor("#5DADE2")
HDR_TEXT = colors.white

doc = SimpleDocTemplate(
    OUTPUT, pagesize=A4,
    leftMargin=1.5*cm, rightMargin=1.5*cm,
    topMargin=1.8*cm,  bottomMargin=1.8*cm,
    title="Karnapurana – Complete Ayurvedic Reference",
    author="Orris Academic Reference"
)
styles = getSampleStyleSheet()

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

title_s = PS("T", fontSize=18, textColor=DARK,  alignment=TA_CENTER, fontName="Helvetica-Bold", spaceAfter=3)
sub_s   = PS("S", fontSize=9,  textColor=ACCENT, alignment=TA_CENTER, fontName="Helvetica-Oblique", spaceAfter=10)
sec_s   = PS("Se",fontSize=11, textColor=DARK,   fontName="Helvetica-Bold", spaceBefore=10, spaceAfter=4)
cell_s  = PS("C", fontSize=7.5, leading=10, fontName="Helvetica")
note_s  = PS("N", fontSize=7.5, textColor=colors.HexColor("#444444"),
             fontName="Helvetica-Oblique", alignment=TA_JUSTIFY, spaceBefore=3, spaceAfter=5)
foot_s  = PS("F", fontSize=6.5, textColor=colors.grey, fontName="Helvetica-Oblique", alignment=TA_CENTER)

def P(t, s=None): return Paragraph(t, s or cell_s)
def PB(t):        return Paragraph(f"<b>{t}</b>", cell_s)

def hdr(t):
    return Paragraph(f"<b>{t}</b>", PS("H", fontSize=8, leading=10,
        textColor=HDR_TEXT, fontName="Helvetica-Bold", alignment=TA_CENTER))

def make_table(data, cw, hr=1):
    t = Table(data, colWidths=cw, repeatRows=hr)
    n = len(data)
    t.setStyle(TableStyle([
        ("BACKGROUND",   (0,0),(-1,hr-1), MID),
        ("TEXTCOLOR",    (0,0),(-1,hr-1), HDR_TEXT),
        ("ALIGN",        (0,0),(-1,hr-1), "CENTER"),
        ("VALIGN",       (0,0),(-1,-1),   "MIDDLE"),
        ("GRID",         (0,0),(-1,-1),   0.4, BORDER),
        ("ROWBACKGROUND",(0,hr),(-1,-1),  [PALE, ALT]*((n-hr)//2+1)),
        ("LEFTPADDING",  (0,0),(-1,-1), 4),
        ("RIGHTPADDING", (0,0),(-1,-1), 4),
        ("TOPPADDING",   (0,0),(-1,-1), 3),
        ("BOTTOMPADDING",(0,0),(-1,-1), 3),
        ("BACKGROUND",   (0,hr),(0,-1), LIGHT),
        ("FONTNAME",     (0,hr),(0,-1), "Helvetica-Bold"),
    ]))
    return t

def ci(t, ok=False, warn=False):
    if ok:   return Paragraph(f'<font color="#1B4332"><b>{t}</b></font>', cell_s)
    if warn: return Paragraph(f'<font color="#B5451B">{t}</font>', cell_s)
    return P(t)

story = []
W = doc.width

# ══ TITLE ════════════════════════════════════════════════════════════════════
story.append(Paragraph("KARNAPURANA", title_s))
story.append(Paragraph("Ayurvedic Medicated Ear Oil Therapy – Complete Classification &amp; Reference", sub_s))
story.append(HRFlowable(width="100%", thickness=1.5, color=MID, spaceAfter=6))

# ══ TABLE 1 – Overview ═══════════════════════════════════════════════════════
story.append(Paragraph("1. Basic Overview", sec_s))
t1 = [
    [hdr("Aspect"), hdr("Details")],
    [PB("Etymology"),    P("Karna (ear) + Purana (to fill) = Filling the ear with medicated substances")],
    [PB("Synonyms"),     P("Karna Poorana, Karna Taila, Karna Sneha")],
    [PB("Definition"),   P("An Ayurvedic procedure where lukewarm medicated oil (Taila), ghee (Ghrita), or herbal juice (Swarasa) is instilled into the ear canal and retained for a specific duration to prevent and treat diseases of the ear, neck and head")],
    [PB("Category"),     P("Dinacharya (daily regimen) + Sthanika Snehana (localised oleation) + Shalakya Tantra (ENT branch)")],
    [PB("Primary Dosha"),P("Vata — the ear has predominance of Akasha Mahabhuta; all Karnarogas are mainly due to vitiation of Vata")],
    [PB("Related organ"),P("Karna (ear) — connected to Asthi Dhatu (bone tissue), Majja Dhatu (nerve/marrow tissue) and Prana Vata")],
    [PB("References"),   P("A.H. Sutrasthana 22 | Ch.Sa. Sutrasthana 5 | Su.Sa. Chikitsa 40 | Sha.Sa.")],
    [PB("Drug form"),    P("Taila (oil) most common; also Ghrita (ghee), Swarasa (fresh juice), Kwatha (decoction), Dugdha (milk)")],
]
story.append(make_table(t1, [W*0.20, W*0.80]))
story.append(Spacer(1, 8))

# ══ TABLE 2 – Types ═══════════════════════════════════════════════════════════
story.append(Paragraph("2. Classification / Types of Karnapurana", sec_s))
t2 = [
    [hdr("Basis"), hdr("Type"), hdr("Description"), hdr("Frequency")],
    [PB("By Purpose\n(Classical)"), P("Swastha\n(Preventive)"),
     P("Done in healthy individuals as part of Dinacharya; uses plain sesame oil or Prayogika medicated oils; maintains ear health, prevents dryness and Vata disorders"),
     P("Daily or periodically (every 7–15 days)")],
    [P(""), P("Chikitsa\n(Therapeutic)"),
     P("Done in disease conditions; uses specifically indicated medicated oils per Dosha and disease; stronger, disease-targeted formulations"),
     P("As prescribed per course of treatment")],
    [PB("By Drug Used"), P("Taila Karnapurana"), P("Medicated oils — most common; Snigdha (unctuous), Vatahara properties"), P("Daily to periodic")],
    [P(""), P("Ghrita Karnapurana"), P("Medicated ghee — for Pitta conditions, burning, inflammatory ear disorders"), P("Therapeutic courses")],
    [P(""), P("Swarasa Karnapurana"), P("Fresh herbal juice — e.g. Nirgundi swarasa; for infections, pain, discharge"), P("Therapeutic")],
    [P(""), P("Kshara Karnapurana"), P("Alkaline preparations — for chronic suppurative otitis, worm infestations in ear"), P("Therapeutic only")],
    [PB("By Condition"), P("Karnaroga\n(Ear disease)"), P("Specific disease-targeted; duration 100 Matra"), P("Per disease course")],
    [P(""), P("Kantharoga\n(Throat disease)"), P("Oil retained longer — 500 Matra; acts on throat via absorption and reflex pathways"), P("Per disease course")],
    [P(""), P("Shiroroga\n(Head disease)"), P("Longest retention — 1000 Matra; influences head, brain, nervous system via ear canal"), P("Per disease course")],
    [P(""), P("Shoola\n(Pain)"), P("Retained until pain is relieved — flexible duration"), P("Until relief")],
]
story.append(make_table(t2, [W*0.15, W*0.17, W*0.47, W*0.21]))
story.append(Spacer(1, 8))

# ══ TABLE 3 – Medicated Oils ══════════════════════════════════════════════════
story.append(Paragraph("3. Medicated Oils (Taila) Used in Karnapurana", sec_s))
t3 = [
    [hdr("Oil / Preparation"), hdr("Key Ingredients"), hdr("Dosha"), hdr("Indications")],
    [PB("Bilva Taila"),          P("Bilva (Aegle marmelos), sesame oil base"),               P("Vata"),       P("Ear pain (Karnashoola), Vata-dominant disorders, stiffness")],
    [PB("Dashamoola Taila"),     P("10 roots (Bilva, Syonaka, Patala, Kashmari, etc.)"),     P("Vata, Kapha"), P("Anti-inflammatory, analgesic; pain, inflammation, hearing loss")],
    [PB("Narayana Taila"),       P("Ashwagandha, Bala, Shatavari, Sesame oil"),              P("Vata"),       P("Degenerative conditions, neurological, chronic hearing impairment")],
    [PB("Apamarga Kshara Taila"),P("Apamarga (Achyranthes aspera) kshara"),                  P("Kapha, Vata"), P("Chronic suppurative otitis media, discharge, wax accumulation")],
    [PB("Lasuna Taila"),         P("Garlic (Allium sativum), sesame oil"),                   P("Kapha, Vata"), P("Ear infections, Karnanada (tinnitus), bacterial/fungal ear conditions")],
    [PB("Nirgundi Swarasa"),     P("Vitex negundo leaf juice"),                              P("Vata, Kapha"), P("Ear pain, swelling, discharge, anti-inflammatory")],
    [PB("Anu Taila"),            P("Polyherbal — Sesame, Bala, Ashwagandha, etc."),          P("All"),        P("General preventive; can be used in both ear and nose")],
    [PB("Sesame Oil (plain)"),   P("Tila Taila — plain sesame"),                            P("Vata"),       P("Daily Dinacharya; plain lubrication and maintenance")],
    [PB("Go-Ghrita"),            P("Cow's ghee"),                                            P("Pitta, Vata"), P("Burning sensation in ear, Pitta disorders, dryness")],
]
story.append(make_table(t3, [W*0.22, W*0.28, W*0.12, W*0.38]))

# ══ PAGE 2 ════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(Paragraph("KARNAPURANA — Continued", title_s))
story.append(HRFlowable(width="100%", thickness=1.5, color=MID, spaceAfter=8))

# ══ TABLE 4 – Step-by-step procedure ═════════════════════════════════════════
story.append(Paragraph("4. Procedure of Karnapurana (Step-by-Step)", sec_s))
t4 = [
    [hdr("Stage"), hdr("Step"), hdr("Details")],
    [P("Purvakarma\n(Pre-procedure)"),
     P("1. Positioning"),
     P("Patient lies on lateral decubitus (side-lying) position; the hand of the same side placed under the head; other hand rests on the trunk")],
    [P(""),
     P("2. Pinna massage"),
     P("Gentle massage with lukewarm medicated oil around the pinna (external ear), mastoid region, and lateral neck below the ear — improves circulation and tissue absorption")],
    [P(""),
     P("3. Fomentation\n(Swedana)"),
     P("Mild local heat applied around the ear using a warm towel (not hot) — softens the wax, relaxes muscles, opens channels (Srotas)")],
    [P("Pradhanakarma\n(Main procedure)"),
     P("4. Oil warming"),
     P("Medicated oil is warmed to lukewarm (body temperature ~37°C) — test on inner wrist before instillation; never use hot oil")],
    [P(""),
     P("5. Instillation"),
     P("Oil is gently poured into the ear canal using a dropper/thin vessel until the canal is fully filled — patient should not feel pain; watch for any discomfort")],
    [P(""),
     P("6. Retention\n(Dharana)"),
     P("Oil retained as per condition: Karnaroga = 100 Matra | Kantharoga = 500 Matra | Shiroroga = 1000 Matra | Pain = until relieved. Patient remains in lateral position throughout")],
    [P(""),
     P("7. Gentle plugging"),
     P("A small clean cotton plug may be placed at the ear opening to prevent oil spillage during retention — not pushed deep inside")],
    [P("Paschatkarma\n(Post-procedure)"),
     P("8. Drainage"),
     P("Patient turns head to allow oil to drain naturally; excess oil gently wiped with sterile dry cotton — never use cotton buds/Q-tips inside the canal")],
    [P(""),
     P("9. Repeat\nother ear"),
     P("Patient turns to the other side; same procedure repeated for the fellow ear")],
    [P(""),
     P("10. Post-care"),
     P("Avoid cold water, cold wind, and dust on ears after the procedure; keep ear dry; avoid swimming or head bath immediately")],
]
story.append(make_table(t4, [W*0.17, W*0.18, W*0.65], hr=1))
story.append(Spacer(1, 8))

# ══ TABLE 5 – Duration (Matra) ════════════════════════════════════════════════
story.append(Paragraph("5. Duration of Retention (Matra) — Classical Reference", sec_s))
t5 = [
    [hdr("Condition"), hdr("Retention Duration"), hdr("Rationale")],
    [PB("Karnaroga (Ear disease)"),   P("100 Matra"),          P("Short retention — sufficient for local ear conditions; prevents saturation")],
    [PB("Kantharoga (Throat disease)"),P("500 Matra"),         P("Medium retention — allows oil to act on deeper throat channels via ear")],
    [PB("Shiroroga (Head disease)"),  P("1000 Matra"),         P("Longest retention — oil penetrates deeply to influence brain and cranial structures")],
    [PB("Shoola (Pain)"),             P("Until pain subsides"), P("Flexible duration — pain is the clinical endpoint; stop when relief achieved")],
    [PB("Swastha (Healthy/Prevention)"),P("100 Matra"),        P("Same as Karnaroga dose; preventive, not therapeutic intensity")],
]
note_matra = P("Note: 1 Matra = approximately 1 second (duration of a snap of fingers). 100 Matra ≈ 2 minutes | 500 Matra ≈ 8–10 minutes | 1000 Matra ≈ 15–20 minutes.")
story.append(make_table(t5, [W*0.28, W*0.22, W*0.50]))
story.append(note_matra)
story.append(Spacer(1, 8))

# ══ TABLE 6 – Samyak / Atiyoga / Ayoga ═══════════════════════════════════════
story.append(Paragraph("6. Signs of Proper, Excessive & Insufficient Karnapurana", sec_s))
t6 = [
    [hdr("Category"), hdr("Signs / Symptoms"), hdr("Management")],
    [P("Samyak Yoga\n(Proper outcome)"),
     P("• Lightness in ear and head\n• Reduced pain and discomfort\n• Clear hearing\n• Feeling of comfort and relaxation\n• No discharge or irritation"),
     P("Procedure was done correctly; continue as prescribed")],
    [P("Atiyoga\n(Excessive)"),
     P("• Heaviness in ear\n• Giddiness / vertigo\n• Sensation of fullness / blockage\n• Reduced hearing temporarily\n• Oil enters middle ear (if perforation present)"),
     P("Stop immediately; tilt head to drain; dry ear with gentle warm air; if symptoms persist, seek evaluation; avoid in perforated TM")],
    [P("Ayoga\n(Insufficient)"),
     P("• Persistent pain unchanged\n• Dryness remains\n• Stiffness not relieved\n• Tinnitus persists\n• No sense of relief"),
     P("Increase retention time; use stronger medicated oil specific to Dosha; combine with Nasya or Abhyanga")],
]
story.append(make_table(t6, [W*0.15, W*0.45, W*0.40]))
story.append(Spacer(1, 8))

# ══ TABLE 7 – Indications ════════════════════════════════════════════════════
story.append(Paragraph("7. Indications of Karnapurana", sec_s))
t7 = [
    [hdr("System / Category"), hdr("Condition"), hdr("Classical Name")],
    [PB("Ear (Primary)"), P("Ear pain"),                  P("Karnashoola")],
    [P(""),               P("Tinnitus / ringing in ear"), P("Karnanada")],
    [P(""),               P("Hearing impairment"),         P("Badhirya")],
    [P(""),               P("Dryness / itching in ear"),   P("Karnakandu / Karnashushkta")],
    [P(""),               P("Earwax accumulation"),        P("Karnamedata")],
    [P(""),               P("Ear stiffness"),              P("Karnagraha")],
    [PB("Head & Neck"),   P("Headache, migraine"),         P("Shirahshula, Ardhavabhedaka")],
    [P(""),               P("Neck stiffness"),             P("Manyastambha")],
    [P(""),               P("Jaw pain / TMJ"),             P("Hanustambha")],
    [PB("Neurological"),  P("Vertigo / dizziness"),        P("Bhrama")],
    [P(""),               P("Balance disorders"),          P("Related to Vata in Karna")],
    [P(""),               P("Poor sleep, anxiety"),        P("Anidra, Chinta (Vata in mind)")],
    [PB("Preventive"),    P("Daily ear maintenance"),      P("Dinacharya (healthy persons)")],
    [P(""),               P("Prevention of ear infections"),P("6-monthly preventive Karnapurana")],
    [PB("Modern equiv."), P("Mild conductive hearing loss"),P("Badhirya")],
    [P(""),               P("Tinnitus"),                   P("Karnanada")],
    [P(""),               P("Otitis externa (mild)"),      P("Karnashoola with Kapha/Pitta")],
]
story.append(make_table(t7, [W*0.20, W*0.40, W*0.40]))

# ══ PAGE 3 ════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(Paragraph("KARNAPURANA — Continued", title_s))
story.append(HRFlowable(width="100%", thickness=1.5, color=MID, spaceAfter=8))

# ══ TABLE 8 – Contraindications ══════════════════════════════════════════════
story.append(Paragraph("8. Contraindications of Karnapurana", sec_s))
t8 = [
    [hdr("Condition"), hdr("Reason"), hdr("Risk")],
    [PB("Perforated tympanic membrane"),
     P("Oil enters middle ear cavity directly"),
     ci("ABSOLUTE CI — risk of otitis media, ossicular damage", warn=True)],
    [PB("Acute suppurative otitis media\n(ASOM)"),
     P("Active infection + oil = worsening of infection and pain"),
     ci("Contraindicated — may seal in infection", warn=True)],
    [PB("Active bleeding from ear"),
     P("Oil can trap blood, increase pressure in canal"),
     ci("Absolute contraindication", warn=True)],
    [PB("Severe ear trauma"),
     P("Unknown integrity of ear canal or drum"),
     ci("Avoid until assessed", warn=True)],
    [PB("High-grade fever with ear infection"),
     P("Systemic infection needs medical treatment first"),
     ci("Postpone until fever resolved", warn=True)],
    [PB("Foreign body in ear"),
     P("Oil may cause foreign body to swell or be pushed deeper"),
     ci("Remove foreign body first", warn=True)],
    [PB("Known hypersensitivity"),
     P("Allergy to specific oil ingredients"),
     ci("Patch test; switch oil", warn=True)],
    [PB("After ear surgery"),
     P("Surgical sites need medical clearance"),
     ci("Consult surgeon first", warn=True)],
]
story.append(make_table(t8, [W*0.27, W*0.38, W*0.35]))
story.append(Spacer(1, 8))

# ══ TABLE 9 – Benefits ═══════════════════════════════════════════════════════
story.append(Paragraph("9. Benefits of Karnapurana (Classical & Contemporary)", sec_s))
t9 = [
    [hdr("Benefit"), hdr("Classical Explanation"), hdr("Modern Understanding")],
    [PB("Reduces ear pain"),        P("Snigdha (unctuous) properties pacify Vata — the primary cause of Karnashoola"),              P("Anti-inflammatory & analgesic oils (Dashamoola, Bilva) reduce prostaglandin-mediated pain")],
    [PB("Relieves tinnitus"),       P("Vata in Karna causes abnormal sound — oil grounds Vata, restores normal nerve function"),      P("Nourishes acoustic nerve; may modulate auditory nerve hypersensitivity")],
    [PB("Improves hearing"),        P("Nourishes Asthi and Majja Dhatu — the ear bones and auditory nerve"),                         P("Lubricates ear canal; removes cerumen; improves sound conduction")],
    [PB("Prevents infections"),     P("Creates protective oil layer; prevents Kapha and Krimi (micro-organisms) from settling"),      P("Antimicrobial properties of garlic oil, sesame; creates hostile environment for pathogens")],
    [PB("Reduces vertigo"),         P("Balance is governed by Prana Vata in the ear — oil stabilises Prana Vata"),                   P("May reduce vestibular hypersensitivity; improves inner ear circulation")],
    [PB("Calms nervous system"),    P("Ears connected to Manas (mind) via Prana Vata — ear oiling settles Vata-driven anxiety"),    P("Vagal stimulation via auricular nerve; activates parasympathetic response — reduces cortisol")],
    [PB("Jaw/neck relief"),         P("Vata in Karna spreads to adjacent Manya (neck) and Hanu (jaw) regions"),                     P("Oil penetrates periauricular fascia; reduces TMJ and cervical muscle tension")],
    [PB("Better sleep"),            P("Grounding Vata through Karna reduces Anidra (sleeplessness)"),                               P("Relaxation response; melatonin regulation may improve via parasympathetic activation")],
]
story.append(make_table(t9, [W*0.18, W*0.42, W*0.40]))
story.append(Spacer(1, 8))

# ══ TABLE 10 – Comparison with related therapies ════════════════════════════
story.append(Paragraph("10. Karnapurana vs Related Ayurvedic Ear Therapies", sec_s))
t10 = [
    [hdr("Feature"),         hdr("Karnapurana"),              hdr("Karnadhupana\n(Ear Fumigation)"),  hdr("Karnaseka\n(Ear Stream pour)"), hdr("Karna Basti\n(Ear oil pool)")],
    [PB("Method"),           P("Oil instilled & retained"),   P("Medicated smoke blown into ear"),    P("Continuous stream of oil poured"), P("Dough ring on ear, filled with oil")],
    [PB("Medium"),           P("Oil, ghee, juice"),           P("Medicated smoke"),                   P("Oil stream (continuous)"),         P("Oil pooled in dough container")],
    [PB("Duration"),         P("100–1000 Matra"),             P("Brief inhalation"),                  P("Continuous flow, 5–10 min"),       P("30–45 min retention")],
    [PB("Primary Dosha"),    P("Vata (primary)"),             P("Kapha, Vata"),                       P("Vata, Pitta"),                     P("Vata (intense)")],
    [PB("Depth of action"),  P("External canal"),             P("Surface only"),                      P("External canal + local"),          P("Deep penetration via prolonged contact")],
    [PB("Common use"),       P("Daily & therapeutic"),        P("Ear infections, insects in ear"),    P("Acute pain, inflammation"),        P("Chronic Vata disorders, tinnitus, hearing loss")],
    [PB("Daily safe?"),      ci("Yes (Prayogika)", ok=True),  P("No"),                                P("No"),                              P("No — therapeutic only")],
]
story.append(make_table(t10, [W*0.17, W*0.20, W*0.21, W*0.20, W*0.22]))
story.append(Spacer(1, 10))

# ══ Footer ════════════════════════════════════════════════════════════════════
story.append(HRFlowable(width="100%", thickness=0.8, color=ACCENT, spaceAfter=4))
story.append(Paragraph(
    "<b>Clinical Pearls:</b> (1) ALWAYS warm the oil to body temperature before instillation — cold oil aggravates Vata and can cause pain. "
    "(2) NEVER perform Karnapurana if the tympanic membrane is perforated — this is an absolute contraindication. "
    "(3) The ear has predominance of Akasha Mahabhuta — all ear diseases are primarily Vata in origin; oil is the ideal antidote. "
    "(4) For daily preventive use, plain sesame oil or Anu Taila are safe choices. "
    "(5) Karnapurana can be combined with Nasya for comprehensive head region therapy.",
    note_s
))
story.append(Paragraph(
    "References: Ashtanga Hridayam – Sutrasthana 22 | Charaka Samhita – Sutrasthana 5 | Sushruta Samhita – Chikitsa 40 | "
    "IJCRT 2026 | Semantic Scholar (Karnapurana Kriya in Karnarogas)   •   Academic reference only.",
    foot_s
))

doc.build(story)
print("PDF created:", OUTPUT)
Running Command

cd /tmp/workspace/nasya-karma && python generate_karnapurana_pdf.py 2>&1

Here is the full explanation and your printable PDF:

Karnapurana Complete Reference

PDF Document · PDF


Karnapurana — Complete Reference

Etymology: Karna (ear) + Purana (to fill) = Filling the ear with medicated substances. Synonyms: Karna Poorana, Karna Taila, Karna Sneha.
Karnapurana is an Ayurvedic procedure where lukewarm medicated oil, ghee, or herbal juice is instilled into the ear canal and retained for a specific duration. The ear has the predominance of Akasha Mahabhuta (space element) and is connected to Asthi Dhatu (bone) and Majja Dhatu (nerve/marrow). All ear diseases (Karnarogas) are primarily caused by vitiated Vata, making oil — the natural antidote to Vata — the ideal therapeutic medium.

Types / Classification

By Purpose

TypeUseFrequency
Swastha (Preventive)Healthy individuals, DinacharyaDaily or every 7–15 days
Chikitsa (Therapeutic)Disease conditions, targeted formulationsPer treatment course

By Drug Form

TypeMediumDosha
Taila KarnapuranaMedicated oil (most common)Vata
Ghrita KarnapuranaMedicated gheePitta, Vata
Swarasa KarnapuranaFresh herbal juice (e.g. Nirgundi)Kapha, Vata
Kshara KarnapuranaAlkaline preparationsKapha (chronic)

By Condition — Duration (Matra)

ConditionRetentionApprox. Time
Karnaroga (Ear disease)100 Matra~2 min
Kantharoga (Throat disease)500 Matra~8–10 min
Shiroroga (Head disease)1000 Matra~15–20 min
Shoola (Pain)Until pain subsidesFlexible
1 Matra = approx. 1 second (duration of one finger-snap)

Medicated Oils Used

OilKey HerbsBest For
Bilva TailaBilva (Aegle marmelos)Karnashoola, Vata ear disorders
Dashamoola Taila10 roots combinationInflammation, pain, hearing loss
Narayana TailaAshwagandha, Bala, ShatavariNeurological, degenerative hearing
Lasuna TailaGarlic + sesameInfections, tinnitus, Karnanada
Nirgundi SwarasaVitex negundo juicePain, discharge, swelling
Apamarga Kshara TailaApamarga alkaline prepChronic suppurative otitis, wax
Sesame oil (plain)Tila TailaDaily preventive Dinacharya
Go-GhritaCow's gheeBurning, Pitta disorders

Procedure (Step-by-Step)

Purvakarma (Pre-procedure):
  1. Patient lies in lateral decubitus (side-lying); same-side hand under the head
  2. Gentle massage with lukewarm oil around pinna, mastoid region, and lateral neck
  3. Mild fomentation (warm towel) around the ear — softens wax, opens Srotas
Pradhanakarma (Main procedure): 4. Warm oil to body temperature (~37°C) — test on inner wrist 5. Instill into ear canal with dropper until fully filled 6. Retain for prescribed Matra duration; patient stays in lateral position 7. Optional: small cotton plug at the opening (not pushed deep)
Paschatkarma (Post-procedure): 8. Tilt head to drain oil naturally; clean with sterile dry cotton 9. Repeat on other ear 10. Avoid cold water, wind, and dust on ears; no head bath immediately

Signs of Proper, Excessive & Insufficient Karnapurana

CategorySignsManagement
Samyak Yoga (Proper)Lightness in ear & head, reduced pain, clear hearing, relaxationProcedure done correctly
Atiyoga (Excessive)Heaviness, vertigo, fullness, temporary hearing reductionDrain immediately; warm, dry the ear
Ayoga (Insufficient)Persistent pain, dryness, tinnitus unchangedIncrease retention; stronger medicated oil

Indications

  • Ear: Karnashoola (pain), Karnanada (tinnitus), Badhirya (hearing loss), dryness, itching, wax accumulation
  • Head/Neck: Shirahshula (headache), migraine, Manyastambha (neck stiffness), jaw pain
  • Neurological: Bhrama (vertigo), balance disorders, poor sleep, anxiety
  • Preventive: Daily maintenance, prevention of ear infections (6-monthly cycle)
  • Modern equivalent: Mild conductive hearing loss, tinnitus, otitis externa (mild)

Contraindications

ConditionType
Perforated tympanic membraneAbsolute - oil enters middle ear
Acute suppurative otitis mediaAbsolute - worsens infection
Active ear bleedingAbsolute
Severe ear traumaAvoid until assessed
Foreign body in earRemove first
Post-ear surgeryMedical clearance needed
High-grade fever with ear infectionPostpone

Related Ear Therapies — Quick Comparison

TherapyMethodDurationBest Use
KarnapuranaOil retained in canal100–1000 MatraGeneral ear care + therapeutic
KarnadhupanaSmoke blown into earBriefEar infections, insects in ear
KarnasekaContinuous oil stream poured5–10 minAcute pain, inflammation
Karna BastiDough ring + oil pool on ear30–45 minChronic Vata, tinnitus, severe hearing loss

PDF contents (3 pages, colour-coded blue theme): Overview → Classification by purpose/drug/condition → 9 medicated oils with indications → Step-by-step procedure → Duration (Matra) table → Samyak/Atiyoga/Ayoga signs → Indications (classical & modern) → Contraindications with risk levels → Benefits (classical + contemporary science) → Comparison with related ear therapies.
This is a shared conversation. Sign in to Orris to start your own chat.