MAKE PPT ON IDENTIFY,DISCUSS AND DEFEND ,MEDICOLEGAL ,SOCIOCULTURAL AND ETHICAL ISSUES AS THEY PERTAIN TO CONSENT FOR SURGICAL PROCEDURES FOR ATECOM UG MBBS CLASS
"informed consent"[MeSH Terms] AND "surgical procedures, operative"[MeSH Terms]
India informed consent surgery law Samira Kohli v Prabha Manchanda Bharatiya Nyaya Sanhita 2023 consent section 30 NMC guidelines AETCOM
Bharatiya Nyaya Sanhita 2023 sections 25 26 30 consent good faith medical; NMC Registered Medical Practitioner Professional Conduct Regulations 2023 consent
ls -la /tmp/workspace/; mkdir -p /tmp/workspace/consent-ppt/output
~/consent-ppt/build.py
import math
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.enum.shapes import MSO_SHAPE
from pptx.oxml.ns import qn
from lxml import etree
NAVY = RGBColor(0x0B, 0x25, 0x45)
TEAL = RGBColor(0x13, 0x8D, 0x90)
AMBER = RGBColor(0xE0, 0x8E, 0x2B)
RED = RGBColor(0xB8, 0x32, 0x3C)
GREEN = RGBColor(0x2E, 0x7D, 0x4F)
LIGHT = RGBColor(0xF3, 0xF6, 0xF9)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
INK = RGBColor(0x22, 0x2B, 0x38)
GREY = RGBColor(0x6B, 0x77, 0x85)
FONT = "Calibri"
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
BLANK = prs.slide_layouts[6]
count = [0]
warnings = []
def rect(slide, x, y, w, h, fill, line=None, shape=MSO_SHAPE.RECTANGLE):
s = slide.shapes.add_shape(shape, Inches(x), Inches(y), Inches(w), Inches(h))
s.fill.solid()
s.fill.fore_color.rgb = fill
if line is None:
s.line.fill.background()
else:
s.line.color.rgb = line
s.line.width = Pt(1)
s.shadow.inherit = False
return s
def est_lines(text, size, width_in):
cw = size * 0.0068 # inches per char approx for Calibri
per = max(1, int(width_in / cw))
return max(1, math.ceil(len(text) / per))
def set_bullet(p, size, indent=0.22):
pPr = p._p.get_or_add_pPr()
pPr.set("marL", str(int(Inches(indent))))
pPr.set("indent", str(-int(Inches(indent))))
for tag in ("a:buNone", "a:buChar", "a:buAutoNum"):
for e in pPr.findall(qn(tag)):
pPr.remove(e)
bu = etree.SubElement(pPr, qn("a:buChar"))
bu.set("char", "\u2022")
def text(slide, x, y, w, h, content, size=16, color=INK, bold=False, align=PP_ALIGN.LEFT,
anchor=MSO_ANCHOR.TOP, bullets=False, space=4, italic=False, check=True):
tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = tb.text_frame
tf.word_wrap = True
tf.vertical_anchor = anchor
tf.margin_left = tf.margin_right = Inches(0.05)
tf.margin_top = tf.margin_bottom = Inches(0.03)
items = content if isinstance(content, list) else [content]
total = 0.0
for i, it in enumerate(items):
p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
p.alignment = align
p.space_after = Pt(space)
# allow (bold_lead, rest)
if isinstance(it, tuple):
r1 = p.add_run()
r1.text = it[0]
r1.font.bold = True
r1.font.size = Pt(size)
r1.font.name = FONT
r1.font.color.rgb = color
r2 = p.add_run()
r2.text = it[1]
r2.font.size = Pt(size)
r2.font.name = FONT
r2.font.color.rgb = color
s = it[0] + it[1]
else:
r = p.add_run()
r.text = it
r.font.size = Pt(size)
r.font.bold = bold
r.font.italic = italic
r.font.name = FONT
r.font.color.rgb = color
s = it
if bullets:
set_bullet(p, size)
wid = w - 0.1 - (0.22 if bullets else 0)
total += est_lines(s, size, wid) * size * 1.2 / 72 + space / 72
if check and total > h + 0.05:
warnings.append(f"slide {count[0]}: text est {total:.2f}in > box {h:.2f}in :: {str(items[0])[:40]}")
return tb
def base(title, notes="", kicker=None):
s = prs.slides.add_slide(BLANK)
count[0] += 1
bg = s.background.fill
bg.solid()
bg.fore_color.rgb = WHITE
rect(s, 0, 0, 13.333, 1.15, NAVY)
rect(s, 0, 1.15, 13.333, 0.06, TEAL)
text(s, 0.55, 0.12, 12.2, 0.9, title, size=30, color=WHITE, bold=True, anchor=MSO_ANCHOR.MIDDLE)
text(s, 0.55, 7.08, 9, 0.3, "ATECOM | UG MBBS | AETCOM: Consent for Surgical Procedures", size=11, color=GREY, check=False)
text(s, 11.8, 7.08, 1.0, 0.3, str(count[0]), size=11, color=GREY, align=PP_ALIGN.RIGHT, check=False)
if notes:
s.notes_slide.notes_text_frame.text = notes
return s
def card(slide, x, y, w, h, head, items, accent=TEAL, size=15, fill=LIGHT, bullets=True, head_size=17):
rect(slide, x, y, w, h, fill)
rect(slide, x, y, 0.09, h, accent)
text(slide, x + 0.2, y + 0.08, w - 0.3, 0.42, head, size=head_size, color=accent, bold=True, check=False)
text(slide, x + 0.2, y + 0.55, w - 0.35, h - 0.62, items, size=size, bullets=bullets, space=4)
def table(slide, x, y, w, col_w, rows, header_fill=NAVY, size=13, row_h=0.5):
nrows, ncols = len(rows), len(rows[0])
gs = slide.shapes.add_table(nrows, ncols, Inches(x), Inches(y), Inches(w), Inches(row_h * nrows))
tbl = gs.table
tblPr = tbl._tbl.tblPr
# remove style banding look
for i, cw in enumerate(col_w):
tbl.columns[i].width = Inches(cw)
for r in range(nrows):
maxl = 1
for c in range(ncols):
cell = tbl.cell(r, c)
cell.margin_left = cell.margin_right = Inches(0.08)
cell.margin_top = cell.margin_bottom = Inches(0.04)
tf = cell.text_frame
tf.word_wrap = True
tf.text = rows[r][c]
para = tf.paragraphs[0]
run = para.runs[0]
run.font.size = Pt(size)
run.font.name = FONT
if r == 0:
run.font.bold = True
run.font.color.rgb = WHITE
cell.fill.solid()
cell.fill.fore_color.rgb = header_fill
else:
run.font.color.rgb = INK
run.font.bold = (c == 0)
cell.fill.solid()
cell.fill.fore_color.rgb = LIGHT if r % 2 else WHITE
maxl = max(maxl, est_lines(rows[r][c], size, col_w[c] - 0.2))
tbl.rows[r].height = Inches(max(row_h, maxl * size * 1.2 / 72 + 0.12))
tot = sum(tbl.rows[r].height for r in range(nrows)) / 914400
if y + tot > 7.0:
warnings.append(f"slide {count[0]}: table est bottom {y+tot:.2f}")
return tbl
# ---------------------------------------------------------------- 1 Title
s = prs.slides.add_slide(BLANK)
count[0] += 1
s.background.fill.solid()
s.background.fill.fore_color.rgb = NAVY
rect(s, 0, 5.2, 13.333, 0.08, TEAL)
rect(s, 0.7, 1.2, 0.12, 2.9, AMBER)
text(s, 1.05, 0.7, 11, 0.5, "AETCOM | ETHICS, PROFESSIONALISM AND COMMUNICATION", size=16, color=AMBER, bold=True)
text(s, 1.05, 1.3, 11.4, 2.0, "Consent for Surgical Procedures", size=48, color=WHITE, bold=True)
text(s, 1.05, 2.5, 11.4, 1.6,
"Identify, discuss and defend the medicolegal, sociocultural and ethical issues",
size=26, color=RGBColor(0xCF, 0xE3, 0xEA))
text(s, 1.05, 5.5, 11, 0.5, "For UG MBBS students, ATECOM", size=22, color=WHITE, bold=True)
text(s, 1.05, 6.0, 11, 0.5, "Competency domain: Attitude, Ethics and Communication | Phase III (Surgery)", size=16,
color=RGBColor(0xB5, 0xC7, 0xD6))
s.notes_slide.notes_text_frame.text = ("Welcome. This session is an AETCOM small-group-friendly module. Aim: by the end, each student can "
"identify the issues, discuss them from legal, cultural and ethical angles, and defend a reasoned position.")
# ---------------------------------------------------------------- 2 Objectives
s = base("Learning objectives",
"Read out the objectives. Stress that 'defend' means giving a reasoned position with justification, not just recalling rules.")
objs = [
("Identify ", "the medicolegal, sociocultural and ethical issues around consent for surgery"),
("Discuss ", "the legal basis, valid elements, types and exceptions to consent in the Indian setting"),
("Explain ", "the landmark judgment Samira Kohli v Prabha Manchanda (2008) and its lessons"),
("Apply ", "the four ethical principles to surgical consent dilemmas"),
("Defend ", "a reasoned course of action in case scenarios (minor, emergency, refusal, family pressure)"),
("Demonstrate ", "the steps of a good consent conversation and how to document it"),
]
y = 1.55
for i, (a, b) in enumerate(objs):
rect(s, 0.7, y, 0.62, 0.62, TEAL, shape=MSO_SHAPE.OVAL)
text(s, 0.7, y, 0.62, 0.62, str(i + 1), size=20, color=WHITE, bold=True, align=PP_ALIGN.CENTER,
anchor=MSO_ANCHOR.MIDDLE, check=False)
text(s, 1.55, y - 0.02, 11, 0.66, [(a, b)], size=20, anchor=MSO_ANCHOR.MIDDLE, check=False)
y += 0.88
# ---------------------------------------------------------------- 3 Trigger case
s = base("Trigger case: what went wrong?",
"Based on the facts reported in Samira Kohli v Dr Prabha Manchanda (Supreme Court of India, 16 Jan 2008). "
"Let students discuss for 3 minutes before revealing the issues on the right.")
card(s, 0.6, 1.5, 6.4, 5.3, "The scene", [
"An adult woman is admitted with menstrual problems.",
"She signs consent for a diagnostic procedure (laparoscopy) and a laparotomy only if needed.",
"While she is under general anaesthesia, the surgeon decides on a hysterectomy with removal of both ovaries and tubes.",
"Her mother, waiting outside, is asked and agrees. The patient is not asked.",
"The patient wakes up without her uterus and ovaries.",
], accent=NAVY, size=17)
card(s, 7.3, 1.5, 5.45, 5.3, "Ask yourself", [
"Was there valid consent for the radical surgery?",
"Could the mother consent for a competent adult?",
"Was it an emergency? Could the surgeon have waited and asked the patient?",
"What should the original consent form have said?",
"What are the legal, ethical and cultural issues?",
], accent=AMBER, size=17)
# ---------------------------------------------------------------- 4 What is consent
s = base("What is consent, and why does it matter?",
"Definition from the forensic medicine texts: voluntary agreement, compliance or permission; legally valid only if the person understands what it is given for and the risks involved.")
rect(s, 0.6, 1.5, 12.1, 1.35, NAVY)
text(s, 0.85, 1.55, 11.6, 1.25,
"Consent is the voluntary agreement of a person with capacity, given after understanding the nature, risks, benefits and alternatives of a proposed act.",
size=21, color=WHITE, anchor=MSO_ANCHOR.MIDDLE)
card(s, 0.6, 3.1, 3.9, 3.7, "Legal reason", [
"Touching or operating without consent is assault/battery in law",
"Patient can sue for failure to inform",
"Protects the surgeon when outcome is poor",
], accent=RED, size=16)
card(s, 4.72, 3.1, 3.9, 3.7, "Ethical reason", [
"Respects autonomy and bodily integrity",
"Builds trust in the doctor-patient relationship",
"Moves care from paternalism to shared decision making",
], accent=TEAL, size=16)
card(s, 8.84, 3.1, 3.9, 3.7, "Practical reason", [
"Better understanding, less anxiety",
"Fewer complaints and litigation",
"Documents the discussion that took place",
], accent=AMBER, size=16)
# ---------------------------------------------------------------- 5 Types of consent
s = base("Types of consent",
"Source: Essentials of Forensic Medicine and Toxicology (36th ed), Consent in Medical Practice. Emphasise that blanket consent at admission is not valid for surgery (see Samira Kohli and the Indian clinical-practice guidance on consent).")
table(s, 0.6, 1.5, 12.1, [2.6, 5.0, 4.5], [
["Type", "Meaning", "Surgical example"],
["Implied", "Inferred from the patient's conduct; adequate for routine, low-risk acts", "Patient holds out the arm for an injection or IV cannula"],
["Express (oral)", "Patient states agreement in words; hard to prove later", "Verbal agreement to a minor dressing or suture removal"],
["Express (written)", "Signed, dated, witnessed form after discussion", "Any operation, anaesthesia, blood transfusion, high-risk procedure"],
["Informed", "Express consent given after full, understandable disclosure", "Laparotomy: risks, alternatives, expected outcome explained"],
["Blanket / general", "One signature at admission for 'all treatment'. Not valid for surgery", "Admission form saying 'consent to any procedure'"],
], size=14, row_h=0.6)
rect(s, 0.6, 6.2, 12.1, 0.65, RGBColor(0xFD, 0xF1, 0xDF))
text(s, 0.8, 6.22, 11.8, 0.6, "Rule of thumb: the greater the risk and the more invasive or irreversible the procedure, the more explicit the consent must be.",
size=16, color=INK, bold=True, anchor=MSO_ANCHOR.MIDDLE)
# ---------------------------------------------------------------- 6 Elements of valid consent
s = base("Five elements of valid consent",
"Use the mnemonic C-V-I-S-D: Capacity, Voluntariness, Information, Specificity, Documentation. Under BNS (formerly IPC s.90) consent given under fear of injury or misconception of fact is not valid consent.")
els = [
("C", "Capacity", "Age of majority (18 y) and sound mind; able to understand, retain, weigh and communicate a decision", TEAL),
("V", "Voluntary", "Free from coercion, undue influence, pressure from family, or fear; not given under misconception", NAVY),
("I", "Informed", "Nature, purpose, benefits, material risks, alternatives and consequences of refusal, in a language the patient understands", TEAL),
("S", "Specific", "Given for a named procedure, side and surgeon; does not extend to other procedures", NAVY),
("D", "Documented", "Written, signed, dated, witnessed, with the discussion noted in the case record", TEAL),
]
x = 0.6
for letter, head, body, col in els:
rect(s, x, 1.6, 2.3, 5.1, LIGHT)
rect(s, x, 1.6, 2.3, 1.3, col)
text(s, x, 1.6, 2.3, 0.8, letter, size=40, color=WHITE, bold=True, align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE, check=False)
text(s, x, 2.3, 2.3, 0.5, head, size=18, color=WHITE, bold=True, align=PP_ALIGN.CENTER, check=False)
text(s, x + 0.12, 3.05, 2.06, 3.6, body, size=15)
x += 2.45
# ---------------------------------------------------------------- 7 Informed consent content
s = base("What must be disclosed for informed consent?",
"Seven elements adapted from the forensic medicine textbook. Mention the 'prudent patient' rule: what a reasonable person in the patient's position would want to know. "
"Disclosure must be in a language the patient understands; the patient need not be told risks the doctor is unaware of or risks every average person knows.")
card(s, 0.6, 1.5, 6.6, 5.3, "Disclose (Essentials of Forensic Medicine, 36th ed)", [
"Nature of the condition",
"Nature of the proposed procedure",
"Expected benefit and likelihood of success",
"Alternative treatments, including no surgery",
"Risks and benefits of the proposal and of the alternatives",
"Risks of not having treatment",
"Material inherent risks that affect the decision",
], size=17)
card(s, 7.5, 1.5, 5.25, 2.5, "Standard of disclosure", [
"Prudent patient rule: what would a reasonable patient want to know?",
"Material risks, not every remote risk",
], accent=NAVY, size=15)
card(s, 7.5, 4.2, 5.25, 2.6, "Language and comprehension", [
"Use the patient's own language, simple words, diagrams",
"Check understanding with teach-back",
"Allow questions and time to decide",
], accent=AMBER, size=15)
# ---------------------------------------------------------------- 8 Who can consent
s = base("Who can give consent? (Indian legal position)",
"Section mapping: BNS 25 = IPC 87, BNS 26 = IPC 88, BNS 27 = IPC 89, BNS 28 = IPC 90, BNS 30 = IPC 92. "
"Students may still hear the old IPC numbers in older books and in practice. NMC 2023 RMP Professional Conduct Regulations were held in abeyance in Aug 2023, so the IMC 2002 Regulations (clause 7.16 on consent) are the working reference. "
"Verify current status before use in exams or practice.")
table(s, 0.6, 1.5, 12.1, [3.4, 3.5, 5.2], [
["Patient", "Who consents", "Legal / practical note"],
["Adult (18 y or above) with capacity", "The patient alone", "BNS s.25-26. Relatives cannot override or substitute (Samira Kohli)"],
["Minor (below 18 y)", "Parent or legal guardian", "BNS s.27 (guardian, child under 12). Assent of older minor is good ethical practice"],
["Adult lacking capacity (mental illness, unconscious)", "Legally authorised representative / nominated representative", "Mental Healthcare Act 2017: capacity assessed, advance directive and nominated representative recognised"],
["Emergency, no one available", "Doctor acts in good faith for the patient's benefit", "BNS s.30. Document the emergency and the second opinion"],
["Operation that may cause sterility", "Patient; IMC 2002 Regs cl. 7.16 also asks spouse consent", "Spousal rule is debated: it conflicts with individual autonomy"],
], size=13, row_h=0.55)
text(s, 0.6, 6.45, 12.1, 0.5, "Consent obtained through fear, force or misconception of fact is not valid consent (BNS s.28).",
size=15, color=RED, bold=True)
# ---------------------------------------------------------------- 9 Issues overview
s = base("Three lenses on consent: what are the issues?",
"Overview slide: the next slides take each lens in turn. Ask students to place issues from the trigger case in each column.")
card(s, 0.6, 1.5, 3.95, 5.3, "Medicolegal", [
"Battery, assault, trespass to person",
"Negligence and deficiency in service",
"Unauthorised additional procedure",
"Blanket or pre-signed forms",
"Poor documentation",
"Wrong patient, site or side",
"Professional misconduct",
], accent=RED, size=16)
card(s, 4.69, 1.5, 3.95, 5.3, "Sociocultural", [
"Family-centred decisions",
"Gender, husband or in-law permission",
"Literacy and language gaps",
"Religious and traditional beliefs",
"Cancer diagnosis hidden by family",
"Cost, poverty and implied coercion",
"Trust in the doctor as authority",
], accent=AMBER, size=16)
card(s, 8.78, 1.5, 3.95, 5.3, "Ethical", [
"Autonomy versus paternalism",
"Beneficence versus refusal",
"Truth telling versus harm",
"Confidentiality versus family right to know",
"Capacity and vulnerable patients",
"Teaching and training on patients",
"Justice and access to information",
], accent=TEAL, size=16)
# ---------------------------------------------------------------- 10 Medicolegal consequences
s = base("Medicolegal issues: where can the surgeon be held liable?",
"Three parallel forums. Indian Medical Association v V.P. Shantha (1995) brought medical services within the Consumer Protection Act. "
"Jacob Mathew v State of Punjab (2005): criminal liability needs gross negligence or recklessness. Consent defects are most often fought as civil negligence or deficiency in service.")
card(s, 0.6, 1.5, 3.95, 4.1, "Civil", [
"Negligence / battery claim for damages",
"Consumer Protection Act 2019: deficiency in service before consumer commissions",
"Compensation, often with refund of fees (as in Samira Kohli)",
], accent=NAVY, size=15)
card(s, 4.69, 1.5, 3.95, 4.1, "Criminal", [
"Needs gross negligence or recklessness (Jacob Mathew, 2005)",
"BNS s.106 replaces IPC 304A for death by negligence",
"Operating without consent may amount to hurt or grievous hurt if no defence applies",
], accent=RED, size=15)
card(s, 8.78, 1.5, 3.95, 4.1, "Professional", [
"State Medical Council / NMC inquiry",
"Penalties range from warning to removal from the register",
"Breach of the Code of Ethics (IMC 2002 Regulations)",
], accent=AMBER, size=15)
rect(s, 0.6, 5.85, 12.15, 0.95, RGBColor(0xE6, 0xF3, 0xF3))
text(s, 0.8, 5.88, 11.8, 0.9,
"Defences available to the surgeon: valid informed consent, documented emergency under BNS s.30, procedure within the scope consented to, and standard of care met.",
size=16, bold=True, anchor=MSO_ANCHOR.MIDDLE)
# ---------------------------------------------------------------- 11 Samira Kohli
s = base("Landmark judgment: Samira Kohli v Dr Prabha Manchanda (SC, 2008)",
"Key holdings (Supreme Court of India, 16 January 2008): consent for a diagnostic procedure is not consent for therapeutic surgery; consent for one surgery is not consent for an additional procedure; "
"exception only for life-threatening or emergent situations where waiting would be unreasonable; a mother's consent for a competent adult is invalid; blanket consent not valid. "
"Source: Supreme Court judgment text (indiankanoon / CLPR copies).")
card(s, 0.6, 1.5, 6.0, 5.3, "What the Court held", [
"Every patient has the right to consent or to refuse",
"Consent to a diagnostic procedure is not consent to therapeutic surgery, conservative or radical (except in life-threatening or emergent situations)",
"Consent to one operation is not consent to an unauthorised additional procedure",
"Consent from the mother for a competent adult was invalid",
"Consent must be real: patient given enough information to understand the nature, effects and complications",
], accent=NAVY, size=15)
card(s, 6.85, 1.5, 5.9, 2.65, "The one exception", [
"Additional procedure may go ahead only if it is necessary to save life or avoid grave harm and it is unreasonable or unsafe to wait to ask the patient",
], accent=AMBER, size=15)
card(s, 6.85, 4.3, 5.9, 2.5, "Lesson for the surgeon", [
"If the extra procedure can wait, stop, wake the patient, counsel, and consent again",
"Plan for foreseeable extensions in the original form",
], accent=GREEN, size=15)
# ---------------------------------------------------------------- 12 Other cases
s = base("Other cases and laws every student should know",
"Aruna Shanbaug (2011) and Common Cause v Union of India (2018): passive euthanasia and advance directives. Pt. Parmanand Katara (1989): duty to give emergency care. "
"Schloendorff (1914) is the classic statement of bodily self-determination; Montgomery (UK, 2015) moved disclosure from doctor-centred to patient-centred. Bolam (1957) is the professional-standard test.")
table(s, 0.6, 1.5, 12.1, [3.6, 1.2, 7.3], [
["Case / law", "Year", "Principle"],
["Schloendorff v NY Hospital (USA)", "1914", "Every adult of sound mind has the right to determine what is done to his body"],
["Bolam v Friern Hospital (UK)", "1957", "A doctor is not negligent if acting in line with a responsible body of medical opinion"],
["Pt. Parmanand Katara v Union of India", "1989", "Duty to give immediate emergency care; no delay for formalities"],
["Jacob Mathew v State of Punjab", "2005", "Criminal liability of doctors needs gross negligence or recklessness"],
["Samira Kohli v Prabha Manchanda", "2008", "Specific, informed consent; no extension beyond the consented procedure"],
["Montgomery v Lanarkshire (UK)", "2015", "Disclose material risks a reasonable patient would want to know"],
["Common Cause v Union of India", "2018", "Right to refuse treatment; advance directives recognised"],
["Mental Healthcare Act", "2017", "Capacity, advance directive, nominated representative"],
], size=13, row_h=0.5)
# ---------------------------------------------------------------- 13 Exceptions
s = base("Exceptions to informed consent",
"From the forensic medicine textbook: emergency, therapeutic privilege, waiver. Add statutory and court-ordered situations. "
"Therapeutic privilege is narrow and risky; ethical practice is to disclose to the family or next of kin and document the reasons and second opinion.")
card(s, 0.6, 1.5, 6.0, 2.55, "1. Emergency", [
"Life or limb at risk, patient unable to consent, no surrogate reachable in time",
"Treat only what is needed; document and get a colleague's opinion",
], accent=RED, size=15)
card(s, 6.75, 1.5, 6.0, 2.55, "2. Therapeutic privilege", [
"Disclosure itself would seriously harm a fragile patient",
"Narrow exception. Record the reason; inform next of kin",
], accent=AMBER, size=15)
card(s, 0.6, 4.25, 6.0, 2.55, "3. Waiver by the patient", [
"Patient says 'you decide' or 'tell my son'",
"Must be voluntary and written in the record",
], accent=TEAL, size=15)
card(s, 6.75, 4.25, 6.0, 2.55, "4. Statute or court order", [
"For example notified disease control, medicolegal examination ordered by law",
"Surgery still needs consent unless the law specifically provides otherwise",
], accent=NAVY, size=15)
# ---------------------------------------------------------------- 14 Special situations
s = base("Special situations in surgical consent",
"MTP Act (amended 2021): consent of the pregnant woman is needed; guardian's consent for a minor or a woman with mental illness; husband's consent is not required (as stated in the forensic textbook). "
"Organ donation is governed by THOTA 1994 with its own authorisation committee. Intoxicated patients lack capacity at that time unless it is an emergency.")
card(s, 0.6, 1.5, 4.0, 2.6, "Minors", [
"Parent or guardian consents",
"Seek the child's assent; involve older adolescents",
"Consent from siblings or neighbours is not enough",
], accent=TEAL, size=14)
card(s, 4.75, 1.5, 4.0, 2.6, "Mental illness", [
"Assess capacity for this decision, not globally",
"Use nominated representative if lacking capacity",
], accent=NAVY, size=14)
card(s, 8.9, 1.5, 3.85, 2.6, "Intoxicated or sedated", [
"Capacity is impaired; defer if safe",
"Do not take consent after premedication",
], accent=AMBER, size=14)
card(s, 0.6, 4.3, 4.0, 2.5, "Termination of pregnancy", [
"Woman's own consent (MTP Act)",
"Guardian if minor or mentally ill",
"Husband's consent not required",
], accent=RED, size=14)
card(s, 4.75, 4.3, 4.0, 2.5, "Sterilisation", [
"Patient's consent essential",
"IMC 2002 asks both spouses; debated",
"Counsel on irreversibility",
], accent=TEAL, size=14)
card(s, 8.9, 4.3, 3.85, 2.5, "Organ donation and research", [
"THOTA 1994 and committee approval",
"Research: ICMR guidelines, separate written consent",
], accent=NAVY, size=14)
# ---------------------------------------------------------------- 15 Sociocultural
s = base("Sociocultural issues in the Indian setting",
"Discuss with students how to respect culture without giving up the patient's legal right to decide. The doctor's role is to include the family while keeping the patient at the centre. "
"Practical tip: offer a private moment with the patient (for example, 'Do you want to decide alone or with your family?').")
table(s, 0.6, 1.5, 12.1, [3.4, 4.2, 4.5], [
["Issue", "What happens in practice", "A defensible approach"],
["Family decides", "Relatives sign; patient is bypassed", "Ask the patient first how she wants decisions made; patient signs if competent"],
["Women's autonomy", "Husband or in-laws must permit surgery", "Legally the woman consents; counsel family, do not coerce her"],
["Withholding diagnosis", "Family asks 'do not tell him it is cancer'", "Ask the patient what he wants to know; avoid blanket concealment"],
["Low literacy, language", "Thumb impression on an English form", "Explain in local language; independent witness reads and signs"],
["Religion and belief", "Refusal of blood (Jehovah's Witness), fate or astrology", "Explore, respect informed refusal of a competent adult, document, offer alternatives"],
["Cost and dependence", "Patient feels unable to question", "Reassure that questions and refusal do not change care"],
], size=13, row_h=0.55)
# ---------------------------------------------------------------- 16 Ethics principles
s = base("Ethical principles applied to consent",
"Link each principle to a consent behaviour. Conflicts between principles (for example autonomy versus beneficence in a refusal of a life-saving operation) are the core of 'defend your position'.")
pr = [
("Autonomy", "Right to decide about one's own body", "Offer choices, accept refusal", TEAL),
("Beneficence", "Act for the patient's good", "Recommend what is best; explain benefit", NAVY),
("Non-maleficence", "Do no harm", "Disclose risks; avoid needless procedures", RED),
("Justice", "Fairness for all patients", "Same quality of information for every patient", AMBER),
]
x = 0.6
for h, d, a, col in pr:
rect(s, x, 1.5, 2.9, 3.6, LIGHT)
rect(s, x, 1.5, 2.9, 0.75, col)
text(s, x, 1.5, 2.9, 0.75, h, size=20, color=WHITE, bold=True, align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE, check=False)
text(s, x + 0.15, 2.4, 2.6, 1.0, d, size=16, bold=True)
text(s, x + 0.15, 3.5, 2.6, 1.5, "In consent: " + a, size=15)
x += 3.07
rect(s, 0.6, 5.35, 12.1, 1.45, RGBColor(0xE6, 0xF3, 0xF3))
text(s, 0.85, 5.4, 11.6, 1.35, [
("Also relevant: ", "veracity (truth telling), confidentiality, fidelity, and professionalism."),
("Framework to defend a decision: ", "state the facts, name the conflicting principles, weigh them, choose, justify, document."),
], size=16, anchor=MSO_ANCHOR.MIDDLE)
# ---------------------------------------------------------------- 17 Process
s = base("How to take good consent: a step-by-step approach",
"Teach this as a communication skill. Best practice is that the surgeon who will operate, or a trained member of the team, takes consent well before the day of surgery, never at the theatre door. "
"Recent systematic reviews (2025) in surgical consent show that patient recall of disclosed information is poor, so teach-back, written/visual aids and procedure-specific forms help.")
steps = [
("1", "Prepare", "Know the case, review notes, choose a private place and time"),
("2", "Assess capacity", "Can the patient understand, retain, weigh and express a choice?"),
("3", "Explain", "Condition, procedure, benefits, risks, alternatives, no-treatment"),
("4", "Check", "Teach-back; invite questions; allow time and family discussion"),
("5", "Document", "Form signed, dated, witnessed; discussion noted in the record"),
]
x = 0.5
for n, h, d in steps:
ch = rect(s, x, 1.6, 2.5, 1.0, TEAL if int(n) % 2 else NAVY, shape=MSO_SHAPE.PENTAGON)
text(s, x + 0.1, 1.6, 2.1, 1.0, n + ". " + h, size=17, color=WHITE, bold=True, anchor=MSO_ANCHOR.MIDDLE, check=False)
text(s, x + 0.05, 2.8, 2.35, 1.9, d, size=15)
x += 2.5
card(s, 0.6, 4.75, 6.0, 2.05, "Do", [
"Use plain words, drawings and the local language",
"Let the patient say the plan back to you",
"Re-confirm just before surgery (WHO checklist)",
], accent=GREEN, size=14)
card(s, 6.75, 4.75, 6.0, 2.05, "Avoid", [
"Rushing, jargon, consent at the theatre door",
"Consent after sedation or by pre-signed forms",
"Leaving the junior to take consent for a procedure they cannot explain",
], accent=RED, size=14)
# ---------------------------------------------------------------- 18 Form checklist
s = base("The consent form: checklist and common defects",
"The form is evidence of a conversation, not a substitute for it. A signed form with no discussion will not protect the surgeon if the patient later says she was not told. "
"Thumb impression: ensure an independent witness confirms that the content was read out and understood.")
card(s, 0.6, 1.5, 6.0, 5.3, "A valid form contains", [
"Patient name, age, hospital number",
"Exact procedure named in plain language; site and side",
"Name of surgeon and anaesthetic type",
"Risks discussed, including common and serious ones",
"Foreseeable additional procedures, explicitly described",
"Blood transfusion and anaesthesia consent",
"Signature or thumb impression, date and time",
"Witness name and signature; language used",
], accent=GREEN, size=15)
card(s, 6.85, 1.5, 5.9, 5.3, "Common defects that invalidate it", [
"Blank or pre-signed forms",
"Blanket admission consent",
"Abbreviations or jargon only",
"Language the patient cannot read",
"Signed under sedation or in labour pain",
"Signed by a relative when the patient has capacity",
"No witness for a thumb impression",
"No record of what was actually explained",
], accent=RED, size=15)
# ---------------------------------------------------------------- 19 Scenarios
s = base("Defend your position: scenarios for small groups",
"Divide the class into four groups. Each group has 5 minutes to decide and 2 minutes to defend. Model answers are on the next slide. Insist that students name the principle and the law or guideline.")
sc = [
("A. The 16-year-old with appendicitis", "Parents are abroad. An uncle brings her at midnight with a perforated appendix and signs the form."),
("B. The refusing adult", "A 45-year-old woman with a bleeding ulcer refuses blood transfusion on religious grounds. Husband begs you to transfuse."),
("C. The extra finding", "During a lap cholecystectomy, you find an ovarian mass. Patient has consented only for cholecystectomy."),
("D. 'Do not tell him'", "A son asks you not to tell his father he has carcinoma stomach before surgery, 'he will collapse'."),
]
pos = [(0.6, 1.5), (6.75, 1.5), (0.6, 4.2), (6.75, 4.2)]
cols = [TEAL, NAVY, AMBER, RED]
for (h, b), (px, py), c in zip(sc, pos, cols):
card(s, px, py, 6.0, 2.5, h, [b], accent=c, size=16, bullets=False)
# ---------------------------------------------------------------- 20 Model answers
s = base("Scenario discussion: defensible positions",
"These are model positions for teaching. Local law, hospital policy and a senior colleague's advice apply in real practice. "
"In scenario B emphasise that a competent adult may refuse even life-saving treatment; document and explore alternatives (cell salvage, iron, tranexamic acid, endoscopic haemostasis).")
table(s, 0.6, 1.5, 12.1, [2.3, 5.2, 4.6], [
["Scenario", "Defensible action", "Principle / law"],
["A. Minor, emergency", "Operate; it is a life-threatening emergency. Try to reach parents by phone, get a second opinion, document", "BNS s.30; beneficence; Parmanand Katara"],
["B. Refusal", "Respect informed refusal of a competent adult; explore alternatives; document; husband cannot override", "Autonomy; Common Cause 2018"],
["C. Extra finding", "Close, wake the patient, counsel, plan a second stage unless there is immediate threat to life", "Samira Kohli; specificity of consent"],
["D. Hidden diagnosis", "Ask the patient what he wants to know and who may know; do not collude in lies", "Autonomy; veracity; therapeutic privilege is narrow"],
], size=14, row_h=0.7)
# ---------------------------------------------------------------- 21 Role of the student
s = base("Your role as an MBBS student and future intern",
"Students and interns are common targets of consent-related complaints because they may be asked to 'just get the signature'. Teach them to escalate. "
"NMC Competency-Based Medical Education emphasises that students work under supervision.")
card(s, 0.6, 1.5, 6.0, 5.3, "What you can do", [
"Learn to explain common procedures in simple language",
"Observe and assist a senior taking consent",
"Check the patient actually understood",
"Make sure forms are complete and correctly named",
"Introduce yourself as a student; patient may refuse student involvement",
], accent=GREEN, size=16)
card(s, 6.85, 1.5, 5.9, 5.3, "What you must not do", [
"Take surgical consent alone for a procedure you cannot explain",
"Pressure a patient to sign",
"Take photos or videos without written consent",
"Discuss the patient's details outside the team",
"Hide an error or an unconsented act; report to your senior",
], accent=RED, size=16)
# ---------------------------------------------------------------- 22 MCQ
s = base("Check your understanding",
"Answers: 1-B, 2-C, 3-A, 4-D, 5-B. Reveal on the next slide with explanations.")
qs = [
"1. A signed consent for diagnostic laparoscopy authorises:\nA. Hysterectomy if needed B. The diagnostic procedure only C. Any procedure D. Tubectomy",
"2. Which person can give valid consent for surgery on a competent 30-year-old woman?\nA. Husband B. Mother C. The patient herself D. Treating surgeon",
"3. Consent given at admission for 'all procedures' is called:\nA. Blanket consent B. Implied C. Informed D. Substituted",
"4. Which is NOT an exception to informed consent?\nA. Emergency B. Therapeutic privilege C. Waiver D. Family pressure",
"5. Samira Kohli (2008) is a landmark judgment on:\nA. Brain death B. Consent in surgery C. Euthanasia D. Clinical trials",
]
y = 1.45
for q in qs:
lines = q.split("\n")
text(s, 0.7, y, 12, 0.5, lines[0], size=17, bold=True, check=False)
text(s, 0.95, y + 0.4, 11.8, 0.4, lines[1], size=15, color=GREY, check=False)
y += 1.08
# ---------------------------------------------------------------- 23 Answers
s = base("Answers and explanations")
ans = [
("1. B ", "Consent to a diagnostic procedure is not consent to therapeutic or radical surgery (Samira Kohli)."),
("2. C ", "A competent adult decides for herself; husband or mother cannot consent on her behalf."),
("3. A ", "Blanket consent at admission is not valid for surgery."),
("4. D ", "Emergency, therapeutic privilege and waiver are accepted exceptions; pressure from family is not."),
("5. B ", "Supreme Court held that consent must be specific and informed and cannot be extended beyond the procedure authorised."),
]
text(s, 0.7, 1.6, 12, 5.0, ans, size=19, space=14)
# ---------------------------------------------------------------- 24 Take home
s = base("Take-home messages",
"Close by asking each student to state one behaviour they will change when they take consent.")
msgs = [
"Consent is a process of communication, not a form to be signed",
"Valid consent is voluntary, informed, specific, given by a person with capacity, and documented",
"Consent for one procedure does not cover another (Samira Kohli)",
"Family can support but cannot replace a competent adult",
"Emergency (BNS s.30) is the main exception: act, document, get a second opinion",
"Respect culture, but keep the patient at the centre of the decision",
"When in doubt: explain more, document more, and ask a senior",
]
y = 1.5
for i, m in enumerate(msgs):
rect(s, 0.7, y, 0.1, 0.55, TEAL if i % 2 == 0 else AMBER)
text(s, 0.95, y, 11.7, 0.6, m, size=18, anchor=MSO_ANCHOR.MIDDLE, check=False)
y += 0.77
# ---------------------------------------------------------------- 25 References
s = base("References and further reading",
"Verify current statutory text and NMC notifications before using this material for assessment or practice.")
refs = [
"Essentials of Forensic Medicine and Toxicology, 36th ed. Consent in medical practice (FM10.19).",
"P C Dikshit. Textbook of Forensic Medicine and Toxicology. Informed consent; exceptions to informed consent.",
"Parikh's Textbook of Medical Jurisprudence, Forensic Medicine and Toxicology. Consent and emergency.",
"Bailey and Love's Short Practice of Surgery, 28th ed. Consent as part of preoperative care.",
"Samira Kohli v Dr Prabha Manchanda, (2008) 2 SCC 1; Supreme Court of India, 16 January 2008.",
"Bharatiya Nyaya Sanhita, 2023: ss. 25-28, 30, 106.",
"Indian Medical Council (Professional Conduct, Etiquette and Ethics) Regulations, 2002; NMC notification of Aug 2023 holding the 2023 RMP regulations in abeyance.",
"Mental Healthcare Act, 2017; MTP (Amendment) Act, 2021; Consumer Protection Act, 2019.",
"Norvill J et al. Role of procedure-specific consent forms: a systematic review. Ann R Coll Surg Engl 2025 (PMID 39360925).",
"Elmahdi A, Smith D. Inadequate disclosure and patient recall in neurosurgical consent: systematic review. Surgeon 2025 (PMID 39658497).",
]
text(s, 0.7, 1.45, 12, 5.5, refs, size=15, bullets=True, space=6)
prs.save("/tmp/workspace/consent-ppt/output/Consent_for_Surgical_Procedures_ATECOM_MBBS.pptx")
print("saved", count[0], "slides")
for w in warnings:
print("WARN", w)
cd /tmp/workspace/consent-ppt && python build.py
cd /tmp/workspace/consent-ppt && sed -i 's/Landmark judgment: Samira Kohli v Dr Prabha Manchanda (SC, 2008)/Landmark case: Samira Kohli v Prabha Manchanda (2008)/' build.py && sed -i 's| if y + tot > 7.0:| print("table bottom slide", count[0], round(y+tot,2))\n if y + tot > 7.0:|' build.py && python build.py
cd /tmp/workspace/consent-ppt && sed -i 's/text(s, 0.6, 6.45, 12.1, 0.5, "Consent obtained/text(s, 0.6, 5.9, 12.1, 0.5, "Consent obtained/' build.py && python build.py | tail -2 && ls -la output
Consent for Surgical Procedures ATECOM MBBS
Presentation · PPTX