Amalgam v/s composites 50 marks pdf
amalgam vs composite restoration comparison longevity systematic review mercury phase down
dental amalgam composite restoration survival
mkdir -p /tmp/workspace/amalgam-vs-composite/output && ls -la /tmp/workspace/
~/amalgam-vs-composite/gen_pdf.py
#!/usr/bin/env python3
"""Generate 'Amalgam vs Composites' 50-marks exam answer PDF."""
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, PageBreak, ListFlowable, ListItem)
from reportlab.lib.enums import TA_CENTER, TA_JUSTIFY
OUT = "/tmp/workspace/amalgam-vs-composite/output/Amalgam_vs_Composites_50_Marks.pdf"
styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name="TitleBig", fontSize=20, leading=24, alignment=TA_CENTER,
spaceAfter=6, textColor=colors.HexColor("#1a3c6e"), fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="SubTitle", fontSize=11, leading=14, alignment=TA_CENTER,
spaceAfter=16, textColor=colors.HexColor("#555555")))
styles.add(ParagraphStyle(name="H1", fontSize=14, leading=17, spaceBefore=14, spaceAfter=6,
textColor=colors.HexColor("#1a3c6e"), fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="H2", fontSize=12, leading=15, spaceBefore=10, spaceAfter=4,
textColor=colors.HexColor("#2b5b9e"), fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="Body", fontSize=10.3, leading=14.5, alignment=TA_JUSTIFY, spaceAfter=6))
styles.add(ParagraphStyle(name="BodyBold", parent=styles["Body"], fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="Bullet", parent=styles["Body"], leftIndent=14, bulletIndent=4, spaceAfter=3))
styles.add(ParagraphStyle(name="TableCell", fontSize=9, leading=11.5, alignment=TA_JUSTIFY))
styles.add(ParagraphStyle(name="TableHead", fontSize=9.5, leading=12, alignment=TA_CENTER,
textColor=colors.white, fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="Ref", fontSize=8.7, leading=11.5, spaceAfter=3))
def P(text, style="Body"):
return Paragraph(text, styles[style])
def bullets(items, style="Bullet"):
return ListFlowable([ListItem(P(i, style), leftIndent=10) for i in items],
bulletType='bullet', start='circle', leftIndent=12)
def styled_table(data, col_widths, head_rows=1):
t = Table(data, colWidths=col_widths, repeatRows=head_rows)
style = [
('BACKGROUND', (0, 0), (-1, head_rows - 1), colors.HexColor("#1a3c6e")),
('TEXTCOLOR', (0, 0), (-1, head_rows - 1), colors.white),
('FONTNAME', (0, 0), (-1, head_rows - 1), 'Helvetica-Bold'),
('GRID', (0, 0), (-1, -1), 0.6, colors.HexColor("#9fb3cc")),
('VALIGN', (0, 0), (-1, -1), 'TOP'),
('ROWBACKGROUNDS', (0, head_rows), (-1, -1), [colors.white, colors.HexColor("#eef3fa")]),
('LEFTPADDING', (0, 0), (-1, -1), 5),
('RIGHTPADDING', (0, 0), (-1, -1), 5),
('TOPPADDING', (0, 0), (-1, -1), 4),
('BOTTOMPADDING', (0, 0), (-1, -1), 4),
]
t.setStyle(TableStyle(style))
return t
story = []
# ---------- Title ----------
story.append(Spacer(1, 0.5*cm))
story.append(P("Dental Amalgam v/s Composite Resin Restorations", "TitleBig"))
story.append(P("A Comparative Essay - Conservative Dentistry & Dental Materials Science (Long Essay - 50 Marks)", "SubTitle"))
story.append(Spacer(1, 0.2*cm))
# ---------- 1. Introduction ----------
story.append(P("1. Introduction", "H1"))
story.append(P(
"Direct restorative materials are used to restore tooth structure lost to caries, trauma or wear, "
"in a single clinical visit inside the cavity itself. <b>Dental amalgam</b> and <b>resin-based composite</b> "
"are the two most widely used direct restorative materials in clinical dentistry, and a comparison between "
"them is a classic question in operative/conservative dentistry because they represent two fundamentally "
"different philosophies of restoration - amalgam being a non-adhesive, mechanically retained metallic "
"restoration, and composite being an adhesively bonded, tooth-coloured aesthetic restoration.", "Body"))
story.append(P(
"<b>Dental amalgam</b> is defined as an alloy of mercury with silver, tin, copper and sometimes zinc, "
"formed by the reaction of mercury with a silver-tin alloy (triturating/amalgamation). "
"<b>Composite resin</b> is defined as a three-dimensional combination of a resin matrix (organic polymer) "
"and an inorganic filler, bonded together by a coupling agent (silane), that sets by a free-radical "
"polymerisation reaction (light-cured or chemically cured).", "Body"))
# ---------- 2. Classification ----------
story.append(P("2. Classification", "H1"))
story.append(P("2.1 Classification of Dental Amalgam Alloy", "H2"))
story.append(bullets([
"<b>By particle shape</b>: Lathe-cut (irregular), Spherical, Admixed (blend of lathe-cut + spherical).",
"<b>By copper content</b>: Low-copper alloy (<6% Cu, conventional) and High-copper alloy (>6% Cu, unicompositional or admixed - current standard as it eliminates the weak gamma-2 phase).",
"<b>By zinc content</b>: Zinc-containing (>0.01% Zn) and Zinc-free alloys.",
"<b>By number of metals</b>: Binary (Ag-Sn), Ternary (Ag-Sn-Cu), Quaternary (Ag-Sn-Cu-In/Pd) alloys.",
"<b>By mercury content of set mass</b>: Conventional (45-50% Hg) and Low-mercury/high-copper systems.",
]))
story.append(P("2.2 Classification of Composite Resin", "H2"))
story.append(bullets([
"<b>By filler particle size</b>: Traditional/macrofilled (8-12 μm), Microfilled (0.04-0.4 μm), "
"Hybrid (0.6-1 μm + colloidal silica), Microhybrid, Nanofilled/Nanohybrid (5-100 nm), Packable and Flowable composites.",
"<b>By mode of activation/cure</b>: Self-cure (chemically activated, 2-paste system), Light-cure "
"(visible-light activated, camphorquinone initiator), Dual-cure.",
"<b>By viscosity/consistency</b>: Flowable, Conventional (paste), Packable (condensable) and Bulk-fill composites.",
"<b>By resin matrix</b>: Bis-GMA, UDMA, TEGDMA-based, and silorane/ormocer-based low-shrinkage composites.",
]))
# ---------- 3. Composition ----------
story.append(P("3. Composition", "H1"))
story.append(P("3.1 Composition of Amalgam", "H2"))
data_amal = [
[P("Component", "TableHead"), P("Approx. %", "TableHead"), P("Function", "TableHead")],
[P("Silver (Ag)", "TableCell"), P("40-70% (alloy)", "TableCell"), P("Increases strength, expansion, corrosion resistance; hastens setting", "TableCell")],
[P("Tin (Sn)", "TableCell"), P("25-30% (alloy)", "TableCell"), P("Controls reaction rate with mercury; reduces strength and hardness", "TableCell")],
[P("Copper (Cu)", "TableCell"), P("<6% (low-Cu) or up to 30% (high-Cu)", "TableCell"), P("Increases strength/hardness; eliminates weak gamma-2 phase in high-Cu alloys", "TableCell")],
[P("Zinc (Zn)", "TableCell"), P("0-2%", "TableCell"), P("Acts as scavenger/deoxidiser during manufacture; excess causes delayed expansion if moisture-contaminated", "TableCell")],
[P("Mercury (Hg)", "TableCell"), P("~45-50% of set mass", "TableCell"), P("Wets and reacts with alloy particles to form the amalgam matrix (gamma-1 phase)", "TableCell")],
]
story.append(styled_table(data_amal, [4.2*cm, 4*cm, 8.3*cm]))
story.append(Spacer(1, 0.3*cm))
story.append(P("3.2 Composition of Composite Resin", "H2"))
data_comp = [
[P("Component", "TableHead"), P("Example", "TableHead"), P("Function", "TableHead")],
[P("Organic resin matrix", "TableCell"), P("Bis-GMA, UDMA, TEGDMA, Bis-EMA", "TableCell"), P("Forms cross-linked polymer network on curing; provides handling consistency", "TableCell")],
[P("Inorganic filler", "TableCell"), P("Quartz, colloidal silica, barium/strontium/zirconium glass", "TableCell"), P("Provides strength, wear resistance, reduces shrinkage, provides radiopacity", "TableCell")],
[P("Coupling agent", "TableCell"), P("Silane (organosilane)", "TableCell"), P("Chemically bonds inorganic filler to organic resin matrix", "TableCell")],
[P("Initiator system", "TableCell"), P("Camphorquinone + amine (light-cure); Benzoyl peroxide (self-cure)", "TableCell"), P("Initiates free-radical polymerisation on activation", "TableCell")],
[P("Inhibitor", "TableCell"), P("Hydroquinone, BHT", "TableCell"), P("Prevents premature polymerisation, increases shelf life/working time", "TableCell")],
[P("Pigments/Optical modifiers", "TableCell"), P("Metal oxides, TiO2", "TableCell"), P("Shade matching and opacity control", "TableCell")],
]
story.append(styled_table(data_comp, [3.6*cm, 5.4*cm, 7.5*cm]))
story.append(PageBreak())
# ---------- 4. Setting reaction ----------
story.append(P("4. Setting Reaction / Curing Mechanism", "H1"))
story.append(P("4.1 Amalgamation Reaction", "H2"))
story.append(P(
"On trituration, mercury diffuses into and reacts with the surface of the alloy particles: "
"<br/><b>Ag<sub>3</sub>Sn (gamma) + Hg → Ag<sub>2</sub>Hg<sub>3</sub> (gamma-1, matrix phase) + Sn<sub>7-8</sub>Hg (gamma-2, weak corrosion-prone phase) + unreacted gamma</b>. "
"In high-copper alloys, copper reacts preferentially with tin to form Cu<sub>6</sub>Sn<sub>5</sub> (eta phase), "
"largely eliminating the weak gamma-2 phase and improving corrosion resistance and long-term strength.", "Body"))
story.append(P("4.2 Polymerisation of Composite", "H2"))
story.append(P(
"Composite sets by a free-radical addition polymerisation. Light in the blue wavelength range "
"(~468 nm) excites camphorquinone, which with an amine co-initiator generates free radicals that open "
"the C=C double bonds of the dimethacrylate monomers, producing a cross-linked polymer network. "
"This reaction is accompanied by polymerisation shrinkage (1.5-5% volumetric), which is a major "
"cause of marginal microleakage, post-operative sensitivity and cuspal deflection if not managed by "
"incremental placement techniques.", "Body"))
# ---------- 5. Properties comparison ----------
story.append(P("5. Comparative Properties", "H1"))
data_props = [
[P("Property", "TableHead"), P("Dental Amalgam", "TableHead"), P("Composite Resin", "TableHead")],
[P("Bonding to tooth", "TableCell"), P("Non-adhesive; retained by mechanical undercuts/cavity design", "TableCell"), P("Adhesive - bonds via acid-etch + bonding agent (micromechanical + chemical bond)", "TableCell")],
[P("Tooth preparation", "TableCell"), P("Extension for prevention; removal of sound tooth structure for retention form (box, undercuts)", "TableCell")],
[P("Compressive strength", "TableCell"), P("High (~350-450 MPa)", "TableCell"), P("Moderate-high (~200-400 MPa, hybrid/nanofill higher)", "TableCell")],
[P("Tensile strength", "TableCell"), P("Low (~50-60 MPa) - brittle, cannot be used for thin sections", "TableCell"), P("Moderate (~40-80 MPa)", "TableCell")],
[P("Wear resistance", "TableCell"), P("Excellent for occlusal stress-bearing areas", "TableCell"), P("Good in modern nanohybrids, less than amalgam in heavy occlusal load with older composites", "TableCell")],
[P("Dimensional change on setting", "TableCell"), P("Slight contraction/expansion depending on trituration and moisture contamination", "TableCell")],
[P("Polymerisation/setting shrinkage", "TableCell"), P("Not applicable", "TableCell"), P("1.5-5% volumetric shrinkage - causes microleakage/cuspal flexure", "TableCell")],
[P("Marginal seal", "TableCell"), P("Initially poor; improves over time by corrosion products (self-sealing)", "TableCell")],
[P("Esthetics", "TableCell"), P("Poor - silver/grey colour, unesthetic", "TableCell"), P("Excellent - tooth coloured, translucency and shade matching possible", "TableCell")],
[P("Biocompatibility", "TableCell"), P("Generally safe; releases trace mercury vapour, occasional lichenoid reaction/amalgam tattoo", "TableCell")],
[P("Technique sensitivity", "TableCell"), P("Low - relatively tolerant of moisture, faster placement", "TableCell"), P("High - requires strict moisture/isolation control, layering technique, curing light output")],
[P("Working/setting time", "TableCell"), P("Fixed by trituration; limited working time before initial set", "TableCell"), P("Controlled by operator (light-cure gives extended working time until cured on demand)")],
[P("Thermal conductivity", "TableCell"), P("High - can cause thermal sensitivity, needs cavity liner/base", "TableCell"), P("Low - closer to natural tooth, better insulation")],
[P("Cost", "TableCell"), P("Lower material and chair-time cost", "TableCell"), P("Higher material cost and increased chair-side time")],
[P("Repairability", "TableCell"), P("Difficult to repair; usually needs replacement", "TableCell"), P("Can be repaired/added to easily")],
[P("Radiopacity", "TableCell"), P("Highly radiopaque", "TableCell"), P("Radiopaque (filler-dependent) but generally less than amalgam")],
[P("Environmental impact", "TableCell"), P("Mercury waste requires amalgam separators; environmental/regulatory concern (Minamata Convention)", "TableCell")],
[P("Longevity (mean/median survival)", "TableCell"), P("Higher - median survival often >10-16 years in systematic reviews", "TableCell")],
]
# fix rows that used 2-col shorthand by rebuilding properly (ensure 3 columns each)
def fix_row(row):
if len(row) == 2:
return [row[0], row[1], P("-", "TableCell")]
return row
data_props = [fix_row(r) for r in data_props]
story.append(styled_table(data_props, [4.3*cm, 5.9*cm, 5.9*cm]))
story.append(PageBreak())
# ---------- 6. Advantages / Disadvantages ----------
story.append(P("6. Advantages and Disadvantages", "H1"))
story.append(P("6.1 Advantages of Amalgam", "H2"))
story.append(bullets([
"High compressive strength and excellent wear resistance - ideal for stress-bearing posterior restorations.",
"Long track record (>150 years of clinical use) with predictable long-term performance.",
"Relatively insensitive to moisture contamination during placement - technique-forgiving.",
"Self-sealing margins over time due to formation of corrosion products.",
"Lower cost and shorter chair-side time; easier and faster to place, especially in bulk.",
"Antibacterial effect from released metal ions may reduce secondary caries at margins in some situations.",
]))
story.append(P("6.2 Disadvantages of Amalgam", "H2"))
story.append(bullets([
"Poor esthetics - silver-grey colour unacceptable for anterior teeth and increasingly for posterior teeth.",
"Non-adhesive - requires mechanical retention form, sacrificing sound tooth structure.",
"Risk of mercury toxicity/hypersensitivity, occupational exposure, and environmental mercury pollution.",
"Marginal breakdown, corrosion, and possibility of galvanic reaction with other metallic restorations.",
"Amalgam tattoo and lichenoid reactions in adjacent soft tissue.",
"Regulatory phase-down under the Minamata Convention on Mercury (2013) restricts future use, especially in children under 15 years, pregnant/breastfeeding women in many countries.",
]))
story.append(P("6.3 Advantages of Composite Resin", "H2"))
story.append(bullets([
"Excellent esthetics - tooth-coloured, matches natural dentition, ideal for anterior and visible posterior restorations.",
"Adhesive bonding allows conservative, minimally invasive cavity preparation preserving tooth structure.",
"Can reinforce remaining tooth structure through the adhesive bond.",
"Command-set (light-cured on demand) gives the operator control over working time.",
"Easily repairable without full replacement; good insulating (low thermal conductivity) properties.",
"No mercury; more acceptable to environmentally and esthetically conscious patients.",
]))
story.append(P("6.4 Disadvantages of Composite Resin", "H2"))
story.append(bullets([
"Highly technique-sensitive - requires meticulous moisture/isolation control and incremental placement.",
"Polymerisation shrinkage leads to marginal microleakage, secondary caries and post-operative sensitivity if mishandled.",
"Lower wear resistance historically in high-stress occlusal areas (though modern nanohybrids have narrowed this gap).",
"Higher material cost and longer, more meticulous placement time.",
"Risk of monomer leaching (e.g., unreacted Bis-GMA/ TEGDMA, trace BPA-related compounds) raising biocompatibility questions, although current evidence shows no proven systemic harm at clinical exposure levels.",
"Water sorption and hydrolytic degradation of the resin matrix over time; polymerisation shrinkage stresses can cause cuspal fracture.",
]))
# ---------- 7. Clinical evidence ----------
story.append(P("7. Clinical Performance and Evidence-Based Longevity", "H1"))
story.append(P(
"Multiple systematic reviews and meta-analyses have directly compared survival of amalgam versus composite "
"in posterior teeth:", "Body"))
story.append(bullets([
"<b>Moraschini et al. (2015, J Dent)</b> meta-analysis: amalgam restorations show statistically higher "
"longevity than composite, though the absolute difference is modest and both are clinically acceptable.",
"<b>Cochrane review, Worthington et al. (2021)</b>: low-to-moderate certainty evidence found little to no "
"difference in restoration failure between composite and amalgam at up to 10 years follow-up.",
"<b>Maciel et al. (2022, Eur J Prosthodont Restor Dent)</b> and <b>Santos et al. (2025)</b> systematic reviews "
"report amalgam median survival of roughly 11-16+ years versus roughly 8-11 years for composite, with "
"<i>secondary caries</i> as the leading cause of composite failure and <i>bulk fracture</i> as the leading "
"cause of amalgam failure.",
"<b>Al-Sulimmani et al. (2025, Int Dent J)</b> meta-analysis of failure risk found no statistically "
"significant overall difference in failure rate between the two materials when operator skill and case "
"selection (cavity size, caries risk) are controlled for.",
"Patient-related factors (oral hygiene, caries risk, bruxism, cavity size/complexity) affect longevity of "
"both materials more than the material choice itself, particularly for smaller/simple restorations.",
]))
story.append(P(
"<b>Recent-evidence note:</b> the above meta-analyses (2021-2025) are broadly consistent with older data - "
"amalgam retains a modest edge in raw survival statistics, but with proper isolation and modern adhesive/bulk-fill "
"composite systems the clinical gap has narrowed considerably, which is why global dental practice has shifted "
"decisively towards composite for most indications (PMIDs: 34387873, 35438266, 40458903, 40578032).", "Body"))
story.append(PageBreak())
# ---------- 8. Biocompatibility/mercury ----------
story.append(P("8. Biocompatibility, Mercury Safety and Environmental Considerations", "H1"))
story.append(P(
"Toxicology and pharmacology texts note that dental amalgam is a significant source of elemental mercury "
"(Hg<sup>0</sup>) vapour exposure in the general population, though major reviews (e.g., Katzung's Basic and "
"Clinical Pharmacology; Adams and Victor's Principles of Neurology) conclude there is no convincing evidence "
"that mercury from dental amalgam causes systemic disease at the levels typically released in situ. "
"Localised reactions such as <i>amalgam tattoo</i> (grey-black mucosal pigmentation from amalgam particles "
"embedded in soft tissue) and rare <i>lichenoid contact stomatitis</i> adjacent to amalgam restorations are "
"well documented (Cummings Otolaryngology; Andrews' Diseases of the Skin).", "Body"))
story.append(P(
"Because of environmental mercury pollution concerns, the <b>Minamata Convention on Mercury (2013)</b>, "
"ratified by most countries, mandates a phase-down (not an outright ban) of dental amalgam use - encouraging "
"mercury-free alternatives (composite, glass ionomer), requiring amalgam separators in dental office "
"wastewater, and restricting amalgam use in children under 15 years and pregnant/breastfeeding women in "
"several jurisdictions. Composite resin, having no mercury component, is not subject to these restrictions, "
"which is accelerating its adoption worldwide even though it is not entirely free of biocompatibility "
"debate (trace monomer release).", "Body"))
# ---------- 9. Indications ----------
story.append(P("9. Clinical Indications", "H1"))
data_ind = [
[P("Amalgam preferred", "TableHead"), P("Composite preferred", "TableHead")],
[P("Class I and II cavities in posterior teeth with heavy occlusal load, where esthetics is not a priority", "TableCell"),
P("Class III, IV and V cavities and all anterior restorations where esthetics is essential", "TableCell")],
[P("Patients where rubber-dam/moisture isolation cannot be reliably achieved (e.g., difficult access, pediatric non-cooperative cases)", "TableCell"),
P("Conservative/minimally invasive preparations, sealant-restorations, and preventive resin restorations", "TableCell")],
[P("Core build-ups under full-coverage crowns in posterior teeth", "TableCell"),
P("Restorations in patients who prefer mercury-free/tooth-coloured options, or where amalgam use is regulated (children, pregnant women per local guidelines)", "TableCell")],
[P("Cost-limited settings needing durable, fast restorations", "TableCell"),
P("Diastema closure, veneers, and esthetic contouring", "TableCell")],
]
story.append(styled_table(data_ind, [8.05*cm, 8.05*cm]))
# ---------- 10. Conclusion ----------
story.append(P("10. Conclusion", "H1"))
story.append(P(
"Amalgam and composite resin remain the two workhorse direct restorative materials, each with a distinct "
"balance of strengths and weaknesses. Amalgam offers superior compressive strength, technique tolerance and "
"historically longer raw survival, but at the cost of poor esthetics, non-adhesive cavity design and mercury-related "
"environmental/regulatory concerns. Composite resin offers excellent esthetics and conservative, adhesive "
"cavity preparation, but demands strict technique and moisture control, and carries polymerisation-shrinkage-related "
"risks. Current systematic reviews and meta-analyses (2021-2025) show the survival gap between the two materials "
"has narrowed considerably with modern adhesive and bulk-fill composite systems, and combined with the global "
"mercury phase-down under the Minamata Convention, contemporary conservative dentistry has shifted decisively "
"towards composite resin as the default direct restorative material, reserving amalgam for select "
"heavy-load posterior situations or resource-limited settings.", "Body"))
# ---------- References ----------
story.append(P("References", "H1"))
refs = [
"Anusavice KJ, Shen C, Rawls HR. Phillips' Science of Dental Materials, 12th/13th ed. Elsevier/Saunders.",
"Craig RG, Powers JM. Restorative Dental Materials. Mosby.",
"Worthington HV, Khangura S, Seal K, et al. Direct composite resin fillings versus amalgam fillings for permanent posterior teeth. Cochrane Database Syst Rev. 2021. PMID: 34387873.",
"Moraschini V, Fai CK, Alto RM, Dos Santos GO. Amalgam and resin composite longevity of posterior restorations: A systematic review and meta-analysis. J Dent. 2015;43(9):1043-50.",
"Maciel CM, Baroudi K, Costa LDC, et al. Longevity of Resin Composite and Amalgam Posterior Restorations: A Systematic Review. Eur J Prosthodont Restor Dent. 2022. PMID: 35438266.",
"Santos MJMC, Saadaldin S, R\u00e9go HMC, et al. Clinical Longevity of Complex Direct Posterior Resin Composite and Amalgam Restorations: A Systematic Review and Meta-analysis. Oper Dent. 2025. PMID: 40458903.",
"Al-Sulimmani W, Al-Rasheed A, Al-Daraan H. Failure Risk of Composite Resin and Amalgam Restorations: A Systematic Review and Meta-Analysis. Int Dent J. 2025. PMID: 40578032.",
"American Dental Association. Amalgam - Oral Health Topics. ada.org.",
"Katzung's Basic and Clinical Pharmacology, 16th ed. - Chapter on Mercury.",
"Minamata Convention on Mercury, UNEP, 2013 - provisions on dental amalgam phase-down.",
]
for i, r in enumerate(refs, 1):
story.append(P(f"{i}. {r}", "Ref"))
doc = SimpleDocTemplate(OUT, pagesize=A4,
leftMargin=1.8*cm, rightMargin=1.8*cm,
topMargin=1.6*cm, bottomMargin=1.6*cm,
title="Amalgam vs Composites - 50 Marks Answer")
doc.build(story)
print("PDF written to", OUT)
cd /tmp/workspace/amalgam-vs-composite && python3 gen_pdf.py
~/amalgam-vs-composite/gen_pdf.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/amalgam-vs-composite/gen_pdf.py'
~/amalgam-vs-composite/gen_pdf.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/amalgam-vs-composite/gen_pdf.py'
cd /tmp/workspace/amalgam-vs-composite && python3 gen_pdf.py
ls -la /tmp/workspace/amalgam-vs-composite/output/ && python3 -c " import pdfplumber with pdfplumber.open('/tmp/workspace/amalgam-vs-composite/output/Amalgam_vs_Composites_50_Marks.pdf') as pdf: print('pages:', len(pdf.pages)) "
Amalgam vs Composites 50 Marks
PDF Document · PDF
Direct v/s indirect tooth coloured restorations 50 marks essay pdf
direct versus indirect composite ceramic restoration comparison clinical performance systematic review
direct indirect composite restoration posterior teeth survival
~/direct-vs-indirect/gen_pdf.py
#!/usr/bin/env python3
"""Generate 'Direct vs Indirect Tooth-Coloured Restorations' 50-marks exam essay PDF."""
import os
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, PageBreak, ListFlowable, ListItem)
from reportlab.lib.enums import TA_CENTER, TA_JUSTIFY
os.makedirs("/tmp/workspace/direct-vs-indirect/output", exist_ok=True)
OUT = "/tmp/workspace/direct-vs-indirect/output/Direct_vs_Indirect_Tooth_Coloured_Restorations_50_Marks.pdf"
styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name="TitleBig", fontSize=19, leading=23, alignment=TA_CENTER,
spaceAfter=6, textColor=colors.HexColor("#1a3c6e"), fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="SubTitle", fontSize=11, leading=14, alignment=TA_CENTER,
spaceAfter=16, textColor=colors.HexColor("#555555")))
styles.add(ParagraphStyle(name="H1", fontSize=14, leading=17, spaceBefore=14, spaceAfter=6,
textColor=colors.HexColor("#1a3c6e"), fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="H2", fontSize=12, leading=15, spaceBefore=10, spaceAfter=4,
textColor=colors.HexColor("#2b5b9e"), fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="Body", fontSize=10.3, leading=14.5, alignment=TA_JUSTIFY, spaceAfter=6))
styles.add(ParagraphStyle(name="MyBullet", parent=styles["Body"], leftIndent=14, bulletIndent=4, spaceAfter=3))
styles.add(ParagraphStyle(name="TableCell", fontSize=9, leading=11.5, alignment=TA_JUSTIFY))
styles.add(ParagraphStyle(name="TableHead", fontSize=9.5, leading=12, alignment=TA_CENTER,
textColor=colors.white, fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="Ref", fontSize=8.7, leading=11.5, spaceAfter=3))
def P(text, style="Body"):
return Paragraph(text, styles[style])
def bullets(items, style="MyBullet"):
return ListFlowable([ListItem(P(i, style), leftIndent=10) for i in items],
bulletType='bullet', start='circle', leftIndent=12)
def styled_table(data, col_widths, head_rows=1):
t = Table(data, colWidths=col_widths, repeatRows=head_rows)
style = [
('BACKGROUND', (0, 0), (-1, head_rows - 1), colors.HexColor("#1a3c6e")),
('TEXTCOLOR', (0, 0), (-1, head_rows - 1), colors.white),
('FONTNAME', (0, 0), (-1, head_rows - 1), 'Helvetica-Bold'),
('GRID', (0, 0), (-1, -1), 0.6, colors.HexColor("#9fb3cc")),
('VALIGN', (0, 0), (-1, -1), 'TOP'),
('ROWBACKGROUNDS', (0, head_rows), (-1, -1), [colors.white, colors.HexColor("#eef3fa")]),
('LEFTPADDING', (0, 0), (-1, -1), 5),
('RIGHTPADDING', (0, 0), (-1, -1), 5),
('TOPPADDING', (0, 0), (-1, -1), 4),
('BOTTOMPADDING', (0, 0), (-1, -1), 4),
]
t.setStyle(TableStyle(style))
return t
story = []
# ---------- Title ----------
story.append(Spacer(1, 0.5*cm))
story.append(P("Direct v/s Indirect Tooth-Coloured Restorations", "TitleBig"))
story.append(P("A Comparative Essay - Conservative Dentistry & Esthetic Restorative Materials (Long Essay - 50 Marks)", "SubTitle"))
# ---------- 1. Introduction ----------
story.append(P("1. Introduction", "H1"))
story.append(P(
"Tooth-coloured restorations restore lost tooth structure using esthetic, non-metallic materials - "
"principally resin composite and dental ceramic. They are broadly classified by their <b>method of "
"fabrication</b> into <b>direct</b> and <b>indirect</b> restorations.", "Body"))
story.append(P(
"<b>Direct restorations</b> are placed, contoured and set/cured directly inside the prepared cavity in "
"a single clinical visit, entirely inside the patient's mouth (e.g., direct composite resin fillings, "
"direct composite veneers).", "Body"))
story.append(P(
"<b>Indirect restorations</b> are fabricated outside the mouth - on a die/cast in the laboratory or by "
"CAD/CAM milling/printing - and are subsequently cemented/bonded into or onto the prepared tooth in a "
"separate visit (e.g., composite or ceramic inlays, onlays, laminate veneers, and full-coverage crowns "
"such as lithium disilicate or zirconia crowns).", "Body"))
story.append(P(
"The choice between the two techniques depends on the extent of tooth destruction, esthetic demand, "
"occlusal load, remaining tooth structure, cost, and patient/operator factors, and is a key topic in "
"modern minimally-invasive and esthetic dentistry.", "Body"))
# ---------- 2. Classification ----------
story.append(P("2. Classification", "H1"))
story.append(P("2.1 Direct Tooth-Coloured Restorations", "H2"))
story.append(bullets([
"Direct composite resin restorations - Class I-VI cavities (conventional, flowable, packable, bulk-fill composites).",
"Direct composite veneers/build-ups for diastema closure, chipped incisal edges, discoloration masking.",
"Preventive resin restorations and resin-modified glass ionomer combinations (sandwich technique).",
"Direct composite onlay/overlay build-ups on posterior teeth in select conservative cases.",
]))
story.append(P("2.2 Indirect Tooth-Coloured Restorations", "H2"))
story.append(bullets([
"<b>Indirect composite</b> - inlays, onlays, overlays fabricated on a model/CAD-CAM and cemented (lab-processed composite has enhanced conversion/strength vs chairside cure).",
"<b>Ceramic restorations</b> - inlays, onlays, laminate veneers, and crowns using feldspathic porcelain, leucite-reinforced ceramic, lithium disilicate (e.g., IPS e.max), and zirconia-based/zirconia-lithium-silicate ceramics.",
"<b>CAD/CAM chairside indirect restorations</b> - single-visit milled ceramic/composite restorations (e.g., CEREC) that blur the line between direct and traditional lab-indirect techniques.",
"<b>Semi-direct technique</b> - composite restoration fabricated on a model of the prepared tooth taken chairside, cured extraorally, then bonded in the same or next visit.",
]))
# ---------- 3. Materials ----------
story.append(P("3. Materials Used", "H1"))
data_mat = [
[P("Direct", "TableHead"), P("Indirect", "TableHead")],
[P("Resin composite (Bis-GMA/UDMA matrix with glass/silica filler) - flowable, universal, bulk-fill, packable grades", "TableCell"),
P("Laboratory/CAD-CAM composite blocks (higher filler loading, post-cured for enhanced properties)", "TableCell")],
[P("Resin-modified glass ionomer (as liner/base or sandwich restorations)", "TableCell"),
P("Feldspathic porcelain, leucite-reinforced ceramic, lithium disilicate glass-ceramic, zirconia-reinforced lithium silicate, zirconia", "TableCell")],
[P("Compomer (limited direct esthetic use, mainly paediatric)", "TableCell"),
P("Resin cements (self-adhesive, etch-and-rinse, dual-cure) for cementation of indirect restorations", "TableCell")],
]
story.append(styled_table(data_mat, [8.05*cm, 8.05*cm]))
story.append(PageBreak())
# ---------- 4. Clinical procedure ----------
story.append(P("4. Clinical Procedure / Technique", "H1"))
story.append(P("4.1 Direct Technique", "H2"))
story.append(bullets([
"Single appointment: cavity preparation, isolation (rubber dam preferred), etch-bond, incremental placement and light-curing, finishing and polishing - all in the same visit.",
"Anatomy, contacts and occlusion are built up and adjusted freehand by the operator chairside.",
"Polymerisation shrinkage occurs <i>in situ</i>, generating shrinkage stress at the tooth-restoration interface.",
]))
story.append(P("4.2 Indirect Technique", "H2"))
story.append(bullets([
"<b>Visit 1</b>: tooth preparation with defined resistance/retention form and finish line, impression (conventional or digital scan), shade selection, and placement of a provisional/temporary restoration.",
"<b>Laboratory/CAD-CAM stage</b>: restoration fabricated on a die/digital model - waxed and pressed, layered and fired, or milled from a pre-fabricated block, followed by extraoral (often heat/pressure or additional light) post-curing that improves the degree of conversion and mechanical properties compared with chairside cure.",
"<b>Visit 2</b>: removal of the provisional, try-in for fit/shade/contacts/occlusion, surface treatment (etching, silane for ceramic; sandblasting/silica-coating for composite), adhesive cementation with a thin layer of resin cement, finishing and occlusal adjustment.",
"With chairside CAD/CAM systems, both stages may be compressed into a single visit using an intraoral scanner and in-office milling unit.",
]))
# ---------- 5. Comparative properties ----------
story.append(P("5. Comparative Properties", "H1"))
data_props = [
[P("Property", "TableHead"), P("Direct Restoration", "TableHead"), P("Indirect Restoration", "TableHead")],
[P("Number of clinical visits", "TableCell"), P("Single visit", "TableCell"), P("Usually two visits (or one with chairside CAD/CAM)", "TableCell")],
[P("Polymerisation shrinkage/stress", "TableCell"), P("Occurs fully intraorally - higher risk of marginal microleakage, cuspal flexure, post-op sensitivity", "TableCell"), P("Bulk of the material is cured/fired extraorally; only a thin cement layer shrinks intraorally - lower net shrinkage stress", "TableCell")],
[P("Degree of cure / mechanical properties", "TableCell"), P("Limited by chairside light-curing depth and time", "TableCell"), P("Enhanced by laboratory post-curing (heat/pressure/light) - greater strength, wear resistance, colour stability", "TableCell")],
[P("Marginal fit and contour", "TableCell"), P("Operator-dependent, more difficult to achieve ideal proximal contacts/anatomy in large cavities", "TableCell"), P("More accurate anatomical form, contacts and occlusal morphology achieved extraorally/digitally", "TableCell")],
[P("Esthetics (shade, translucency)", "TableCell"), P("Good, but limited shade layering chairside", "TableCell"), P("Excellent - multiple layering/staining possible in the lab; ceramics offer superior translucency and colour stability long-term", "TableCell")],
[P("Wear resistance", "TableCell"), P("Moderate; may show wear/staining over time, especially older composite formulations", "TableCell")],
[P("Tooth structure removal", "TableCell"), P("Minimal - adhesive, minimally invasive preparation", "TableCell"), P("Greater tooth reduction required for adequate restoration thickness/retention/draw path")],
[P("Chair-side time", "TableCell"), P("Shorter overall (single visit)", "TableCell"), P("Longer overall (two visits + lab turnaround), though each visit is efficient")],
[P("Cost", "TableCell"), P("Lower material and lab cost", "TableCell"), P("Higher - laboratory/CAD-CAM fabrication costs, cement, additional appointment")],
[P("Repairability", "TableCell"), P("Easy to repair/add material directly", "TableCell"), P("Harder to repair chairside; ceramic fracture often needs remake, though composite indirect can sometimes be repaired")],
[P("Technique sensitivity", "TableCell"), P("High (moisture control, incremental layering)", "TableCell"), P("High but distributed - preparation design, impression/scan accuracy, and cementation protocol are all critical")],
[P("Longevity", "TableCell"), P("Good for small-medium restorations; more failures (secondary caries, fracture) in large/complex cavities over years", "TableCell"), P("Generally superior for large/complex cavities and cusp-replacing restorations; ceramic slightly outperforms composite indirect long-term")],
[P("Best-suited cavity size", "TableCell"), P("Small to moderate defects with sufficient remaining tooth structure", "TableCell"), P("Large defects, cusp replacement, endodontically treated posterior teeth")],
]
def fix_row(row):
if len(row) == 2:
return [row[0], row[1], P("-", "TableCell")]
return row
data_props = [fix_row(r) for r in data_props]
story.append(styled_table(data_props, [4.1*cm, 6.0*cm, 6.0*cm]))
story.append(PageBreak())
# ---------- 6. Advantages/Disadvantages ----------
story.append(P("6. Advantages and Disadvantages", "H1"))
story.append(P("6.1 Advantages of Direct Restorations", "H2"))
story.append(bullets([
"Completed in a single visit - convenient, faster, cheaper.",
"Minimally invasive - conserves maximum tooth structure since no draw path/thickness is needed.",
"Easily repaired or added to without remaking the entire restoration.",
"No impression, temporary restoration, laboratory fee, or cementation step required.",
"Good esthetic result for small-to-moderate defects, especially anterior teeth.",
]))
story.append(P("6.2 Disadvantages of Direct Restorations", "H2"))
story.append(bullets([
"Full polymerisation shrinkage occurs intraorally - greater risk of marginal gaps, microleakage, secondary caries, post-operative sensitivity, and cuspal deflection in large cavities.",
"Operator-dependent anatomical form/contacts; harder to achieve ideal proximal contours in large multi-surface cavities.",
"Lower degree of conversion (cure) than laboratory-processed material, translating to comparatively lower wear resistance and greater risk of staining/discoloration over time.",
"Less suitable for extensively broken-down or cusp-replacing situations, especially in endodontically treated teeth with reduced structural integrity.",
]))
story.append(P("6.3 Advantages of Indirect Restorations", "H2"))
story.append(bullets([
"Fabricated/cured extraorally under optimal conditions - superior mechanical properties, wear resistance, colour stability, and marginal integrity.",
"Only a thin resin cement layer polymerises intraorally, minimising net shrinkage stress at the tooth interface.",
"Better control over anatomical contour, proximal contacts and occlusal morphology, especially for large/complex restorations.",
"Ceramic options provide the best long-term esthetics (translucency, fluorescence, colour stability) and are ideal for extensively destroyed or endodontically treated teeth needing cuspal protection.",
"Suitable for onlay/overlay designs that provide cuspal coverage without a full crown, preserving more tooth structure than a crown while restoring strength.",
]))
story.append(P("6.4 Disadvantages of Indirect Restorations", "H2"))
story.append(bullets([
"Requires two (or more) appointments, an impression/digital scan, a temporary restoration, and laboratory involvement, unless chairside CAD/CAM is available.",
"Higher cost due to laboratory fees/CAD-CAM materials and additional chair time.",
"Greater tooth structure removal needed to provide adequate restoration thickness and a path of insertion/draw.",
"Cementation is a critical, technique-sensitive step; failure of the resin-cement bond can lead to debonding, microleakage or secondary caries.",
"Ceramic restorations are brittle and can fracture/chip if occlusal thickness or support is inadequate; repair, if possible, is less predictable than for composite.",
]))
# ---------- 7. Clinical evidence ----------
story.append(P("7. Clinical Evidence and Comparative Longevity", "H1"))
story.append(P(
"Numerous systematic reviews and meta-analyses have directly compared direct and indirect tooth-coloured "
"restorations, particularly for posterior teeth:", "Body"))
story.append(bullets([
"<b>Azeem & Sureshbabu (2018, PMC5852929)</b>: indirect composite inlays showed superior clinical "
"performance compared with direct composite restorations, despite requiring greater loss of tooth structure "
"and more clinical steps - attributed to reduced polymerisation shrinkage stress and improved marginal adaptation.",
"<b>de Kuijper et al. (2023, J Prosthet Dent, PMID 34980474)</b> systematic review and meta-analysis on "
"endodontically treated posterior teeth found low-quality evidence of no significant difference between "
"direct and indirect restorations for short-term restorative success, though indirect restorations trended "
"better over longer follow-up, especially cusp-covering designs.",
"<b>Josic et al. (2023, Dent Mater, PMID 37827872)</b> updated systematic review and meta-analysis on direct "
"and indirect posterior resin composite restorations reported comparable annual failure rates overall, with "
"indirect composite performing somewhat better for large/multi-surface restorations.",
"<b>Tennert et al. (2024, Dent Mater, PMID 39122602)</b> meta-analysis on longevity of posterior direct versus "
"indirect composite restorations found broadly similar survival, reinforcing that case selection (cavity size, "
"remaining tooth structure, occlusal load) matters more than the direct/indirect label itself.",
"<b>Dioguardi et al. (2021, Clin Oral Investig, PMID 34628547)</b> found favourable long-term survival for "
"bonded partial indirect posterior restorations (inlays/onlays) on both vital and endodontically treated teeth.",
"<b>Prott et al. (2025, J Esthet Restor Dent, PMID 39558793)</b> systematic review on partial-coverage "
"restorations (veneers, inlays, onlays, partial crowns) reported high survival rates for ceramic partial "
"coverage restorations, supporting their use as a conservative alternative to full crowns.",
]))
story.append(P(
"<b>Take-home evidence point:</b> the historical assumption that indirect restorations are always superior "
"is being refined - for small-to-moderate cavities, well-executed direct composite performs comparably to "
"indirect options in the short-to-medium term, while indirect (especially ceramic) restorations retain a "
"clear advantage for large, cusp-replacing, or endodontically treated posterior restorations over the "
"long term.", "Body"))
story.append(PageBreak())
# ---------- 8. Indications ----------
story.append(P("8. Clinical Indications", "H1"))
data_ind = [
[P("Direct restoration preferred", "TableHead"), P("Indirect restoration preferred", "TableHead")],
[P("Small to moderate Class I-V cavities with adequate remaining tooth structure", "TableCell"),
P("Large, multi-surface or cusp-replacing cavities with substantial loss of tooth structure", "TableCell")],
[P("Anterior esthetic restorations, diastema closure, minor chips/fractures", "TableCell"),
P("Endodontically treated posterior teeth needing cuspal protection", "TableCell")],
[P("Patients wanting single-visit, cost-effective treatment", "TableCell"),
P("Cases requiring precise interproximal contacts/occlusal anatomy or high esthetic demand (veneers, anterior crowns)", "TableCell")],
[P("Preventive resin restorations and minimally invasive sealant-restorations", "TableCell"),
P("High-wear/high-load posterior situations, bruxers requiring durable cuspal coverage", "TableCell")],
[P("Repair of existing restorations without full replacement", "TableCell"),
P("Cases where isolation/moisture control for a large direct restoration is difficult to guarantee", "TableCell")],
]
story.append(styled_table(data_ind, [8.05*cm, 8.05*cm]))
# ---------- 9. Conclusion ----------
story.append(P("9. Conclusion", "H1"))
story.append(P(
"Direct and indirect tooth-coloured restorations both aim to restore function and esthetics conservatively "
"without the use of metallic materials, but they differ fundamentally in fabrication location, number of "
"visits, degree of cure, shrinkage behaviour and cost. Direct composite restorations remain the material of "
"choice for small-to-moderate defects due to their minimally invasive, single-visit, cost-effective nature. "
"Indirect restorations - whether composite or ceramic - offer superior mechanical properties, marginal "
"adaptation and esthetic control achieved through extraoral fabrication and post-curing, making them the "
"preferred option for large, cusp-replacing, or highly esthetic-demanding restorations, and particularly for "
"endodontically treated or heavily loaded posterior teeth. Recent systematic reviews and meta-analyses "
"(2021-2025) show that with appropriate case selection, both techniques can achieve comparable clinical "
"success, and the choice ultimately depends on the extent of tooth destruction, functional demand, esthetic "
"requirement, and patient/operator considerations rather than a fixed rule favouring one technique "
"universally.", "Body"))
# ---------- References ----------
story.append(P("References", "H1"))
refs = [
"Anusavice KJ, Shen C, Rawls HR. Phillips' Science of Dental Materials, 12th/13th ed. Elsevier/Saunders.",
"Azeem RA, Sureshbabu NM. Clinical performance of direct versus indirect composite restorations in posterior teeth: A systematic review. J Conserv Dent. 2018. PMC5852929.",
"de Kuijper MCFM, Cune MS, \u00d6zcan M, et al. Clinical performance of direct composite resin versus indirect restorations on endodontically treated posterior teeth: A systematic review and meta-analysis. J Prosthet Dent. 2023. PMID: 34980474.",
"Josic U, D'Alessandro C, Miletic V, et al. Clinical longevity of direct and indirect posterior resin composite restorations: An updated systematic review and meta-analysis. Dent Mater. 2023. PMID: 37827872.",
"Tennert C, Maliakal C, Su\u00e1rez Machado L, et al. Longevity of posterior direct versus indirect composite restorations: A systematic review and meta-analysis. Dent Mater. 2024. PMID: 39122602.",
"Dioguardi M, Alovisi M, Troiano G, et al. Clinical outcome of bonded partial indirect posterior restorations on vital and non-vital teeth: a systematic review and meta-analysis. Clin Oral Investig. 2021. PMID: 34628547.",
"Prott LS, Pieralli S, Klein P, et al. Survival and Complications of Partial Coverage Restorations on Posterior Teeth - A Systematic Review and Meta-Analysis. J Esthet Restor Dent. 2025. PMID: 39558793.",
"Wolff D, Frese C, Frankenberger R, et al. Direct Composite Restorations on Permanent Teeth - An Evidence-Based Clinical Practice Guideline, Part 1. J Adhes Dent. 2024. PMID: 39286910.",
"Rosenstiel SF, Land MF, Fujimoto J. Contemporary Fixed Prosthodontics. Elsevier/Mosby.",
"Garg N, Garg A. Textbook of Operative Dentistry. Jaypee Brothers Medical Publishers.",
]
for i, r in enumerate(refs, 1):
story.append(P(f"{i}. {r}", "Ref"))
doc = SimpleDocTemplate(OUT, pagesize=A4,
leftMargin=1.8*cm, rightMargin=1.8*cm,
topMargin=1.6*cm, bottomMargin=1.6*cm,
title="Direct vs Indirect Tooth-Coloured Restorations - 50 Marks Answer")
doc.build(story)
print("PDF written to", OUT)
cd /tmp/workspace/direct-vs-indirect && python3 gen_pdf.py
python3 -c " import pdfplumber with pdfplumber.open('/tmp/workspace/direct-vs-indirect/output/Direct_vs_Indirect_Tooth_Coloured_Restorations_50_Marks.pdf') as pdf: print('pages:', len(pdf.pages)) " && ls -la /tmp/workspace/direct-vs-indirect/output/
Direct vs Indirect Tooth Coloured Restorations 50 Marks
PDF Document · PDF
Direct v/s indirect tooth coloured restorations 50 marks pdf
Direct vs Indirect Tooth Coloured Restorations 50 Marks
PDF Document · PDF
Obturation techniques in endodontics 50 marks essay
obturation techniques endodontics comparison lateral condensation warm vertical carrier-based systematic review
root canal obturation technique quality voids
~/obturation-techniques/gen_pdf.py
#!/usr/bin/env python3
"""Generate 'Obturation Techniques in Endodontics' 50-marks exam essay PDF."""
import os
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, PageBreak, ListFlowable, ListItem)
from reportlab.lib.enums import TA_CENTER, TA_JUSTIFY
os.makedirs("/tmp/workspace/obturation-techniques/output", exist_ok=True)
OUT = "/tmp/workspace/obturation-techniques/output/Obturation_Techniques_in_Endodontics_50_Marks.pdf"
styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name="TitleBig", fontSize=19, leading=23, alignment=TA_CENTER,
spaceAfter=6, textColor=colors.HexColor("#1a3c6e"), fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="SubTitle", fontSize=11, leading=14, alignment=TA_CENTER,
spaceAfter=16, textColor=colors.HexColor("#555555")))
styles.add(ParagraphStyle(name="H1", fontSize=14, leading=17, spaceBefore=14, spaceAfter=6,
textColor=colors.HexColor("#1a3c6e"), fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="H2", fontSize=12, leading=15, spaceBefore=10, spaceAfter=4,
textColor=colors.HexColor("#2b5b9e"), fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="Body", fontSize=10.2, leading=14.3, alignment=TA_JUSTIFY, spaceAfter=6))
styles.add(ParagraphStyle(name="MyBullet", parent=styles["Body"], leftIndent=14, bulletIndent=4, spaceAfter=3))
styles.add(ParagraphStyle(name="TableCell", fontSize=8.8, leading=11.2, alignment=TA_JUSTIFY))
styles.add(ParagraphStyle(name="TableHead", fontSize=9.3, leading=11.8, alignment=TA_CENTER,
textColor=colors.white, fontName="Helvetica-Bold"))
styles.add(ParagraphStyle(name="Ref", fontSize=8.6, leading=11.3, spaceAfter=3))
def P(text, style="Body"):
return Paragraph(text, styles[style])
def bullets(items, style="MyBullet"):
return ListFlowable([ListItem(P(i, style), leftIndent=10) for i in items],
bulletType='bullet', start='circle', leftIndent=12)
def styled_table(data, col_widths, head_rows=1):
t = Table(data, colWidths=col_widths, repeatRows=head_rows)
style = [
('BACKGROUND', (0, 0), (-1, head_rows - 1), colors.HexColor("#1a3c6e")),
('TEXTCOLOR', (0, 0), (-1, head_rows - 1), colors.white),
('FONTNAME', (0, 0), (-1, head_rows - 1), 'Helvetica-Bold'),
('GRID', (0, 0), (-1, -1), 0.6, colors.HexColor("#9fb3cc")),
('VALIGN', (0, 0), (-1, -1), 'TOP'),
('ROWBACKGROUNDS', (0, head_rows), (-1, -1), [colors.white, colors.HexColor("#eef3fa")]),
('LEFTPADDING', (0, 0), (-1, -1), 5),
('RIGHTPADDING', (0, 0), (-1, -1), 5),
('TOPPADDING', (0, 0), (-1, -1), 4),
('BOTTOMPADDING', (0, 0), (-1, -1), 4),
]
t.setStyle(TableStyle(style))
return t
story = []
# ---------- Title ----------
story.append(Spacer(1, 0.5*cm))
story.append(P("Obturation Techniques in Endodontics", "TitleBig"))
story.append(P("Long Essay - Endodontics / Conservative Dentistry (50 Marks)", "SubTitle"))
# ---------- 1. Introduction ----------
story.append(P("1. Introduction", "H1"))
story.append(P(
"<b>Obturation</b> is the final stage of root canal treatment in which the cleaned, shaped and "
"disinfected root canal system is three-dimensionally filled with an inert, biologically compatible "
"filling material in order to entomb residual microorganisms, prevent reinfection by coronal or "
"periapical microleakage, and create an environment favourable for periapical healing.", "Body"))
story.append(P(
"The objective, as classically stated, is to obturate the canal system in <b>three dimensions</b> - "
"length (working length), width (all canal walls including fins, isthmuses and accessory canals) and "
"depth - creating a fluid-tight hermetic seal from the apical foramen to the orifice.", "Body"))
story.append(P("<b>Criteria for obturation (readiness of the canal)</b>", "H2"))
story.append(bullets([
"Tooth asymptomatic - no pain, tenderness to percussion/palpation.",
"No sinus tract or swelling; canal dry or minimally moist (no persistent exudate).",
"No odour, and canal free of debris on the last irrigation.",
"Apical preparation with resistance form (apical stop) achieved to the correct working length.",
]))
# ---------- 2. Ideal requirements ----------
story.append(P("2. Ideal Requirements of an Obturating Material (Grossman's Requirements)", "H1"))
story.append(bullets([
"Easily introduced into the root canal.",
"Seals the canal laterally as well as apically (three-dimensional seal).",
"Does not shrink after being inserted.",
"Impervious to moisture.",
"Bacteriostatic or at least does not encourage bacterial growth.",
"Radiopaque for radiographic visualisation.",
"Does not stain tooth structure.",
"Does not irritate periapical tissue / non-toxic, non-carcinogenic, non-allergenic.",
"Sterile or easily sterilised immediately before insertion.",
"Easily removed from the canal if retreatment is required.",
]))
story.append(PageBreak())
# ---------- 3. Materials ----------
story.append(P("3. Materials Used in Obturation", "H1"))
story.append(P("3.1 Core (Solid) Filling Materials", "H2"))
story.append(bullets([
"<b>Gutta-percha (GP)</b> - the most widely used core material; composed of zinc oxide (~60-75%), "
"gutta-percha matrix (~20%), radiopacifiers (heavy metal salts), and waxes/resins. Available in "
"alpha-phase (used in thermoplasticized/injectable systems - better flow, adaptation) and beta-phase "
"(used in conventional/standardized and accessory cones - more rigid, used at room temperature).",
"<b>Resilon</b> - a thermoplastic synthetic polymer-based (polycaprolactone) core material designed to "
"bond with resin sealers, forming a 'monoblock' with the canal wall.",
"<b>Silver points</b> - historical, rigid metallic cones; largely obsolete due to corrosion and poor "
"adaptation to canal irregularities.",
"<b>Carrier-based systems</b> - a plastic or cross-linked GP carrier coated with alpha-phase gutta-percha "
"(e.g., Thermafil, GuttaCore).",
]))
story.append(P("3.2 Root Canal Sealers", "H2"))
data_sealer = [
[P("Class", "TableHead"), P("Examples", "TableHead"), P("Notes", "TableHead")],
[P("Zinc oxide-eugenol based", "TableCell"), P("Grossman's sealer, Roth's 811, Tubliseal", "TableCell"), P("Long track record; mild antibacterial (eugenol); can be resorbed if extruded", "TableCell")],
[P("Resin based", "TableCell"), P("AH Plus, AH26", "TableCell"), P("Excellent adhesion/sealing ability, low solubility, gold standard in many studies", "TableCell")],
[P("Calcium hydroxide based", "TableCell"), P("Sealapex, CRCS, Apexit", "TableCell"), P("Antibacterial and potentially osteo-inductive; higher solubility over time", "TableCell")],
[P("Glass ionomer based", "TableCell"), P("Ketac-Endo", "TableCell"), P("Chemically bonds to dentin; difficult to remove for retreatment", "TableCell")],
[P("Bioceramic / calcium silicate based", "TableCell"), P("EndoSequence BC Sealer, TotalFill BC, MTA Fillapex", "TableCell"), P("Bioactive, hydrophilic, forms hydroxyapatite on contact with moisture; used in 'hydraulic' single-cone obturation", "TableCell")],
]
story.append(styled_table(data_sealer, [3.6*cm, 4.6*cm, 8.3*cm]))
# ---------- 4. Classification ----------
story.append(P("4. Classification of Obturation Techniques", "H1"))
story.append(bullets([
"<b>A. Cold compaction techniques</b> - Lateral (cold lateral condensation), Single cone technique.",
"<b>B. Warm/thermoplasticized compaction techniques</b> - Warm lateral condensation, Warm vertical "
"condensation (Schilder's technique), Continuous wave of condensation, Thermomechanical compaction "
"(McSpadden technique), Injection thermoplasticized GP technique (Obtura II/III, Ultrafil).",
"<b>C. Carrier-based techniques</b> - Thermafil, GuttaCore, and similar solid-core carrier systems.",
"<b>D. Chemically softened (solvent) techniques</b> - Chloropercha (chloroform), Eucapercha (eucalyptol), "
"Rickert's/resin-solvent technique.",
"<b>E. Other/special techniques</b> - Sectional (segmented) method, Apical plug technique (MTA/Biodentine "
"for open apex/immature roots), Bioceramic sealer-based 'hydraulic' single-cone obturation, Custom/anatomic "
"cone technique.",
]))
story.append(PageBreak())
# ---------- 5. Detailed description ----------
story.append(P("5. Detailed Description of Major Techniques", "H1"))
story.append(P("5.1 Cold Lateral Condensation", "H2"))
story.append(P(
"The most widely taught and used technique. A master gutta-percha cone matching the apical preparation "
"size and taper is fitted to working length with tug-back, coated with a thin film of sealer, and seated. "
"A finger/hand spreader is inserted alongside the master cone to within 1-2 mm of working length to "
"laterally compact it, creating space for an accessory cone coated with sealer. This cycle of "
"spreader-then-accessory-cone is repeated until the canal is completely filled from apex to orifice, "
"then excess GP is seared off at the orifice and vertically compacted with a plugger.", "Body"))
story.append(P("5.2 Warm Vertical Condensation (Schilder's Technique)", "H2"))
story.append(P(
"A master cone is fitted and seared off ~3-4 mm short of the apex, then softened in increments using a "
"heated plugger (down-pack) and vertically compacted apically with hand/finger pluggers to adapt "
"softened GP into all canal irregularities, followed by sequential backfilling in increments of warm "
"injected or plugger-compacted GP (back-pack) until the orifice level, achieving a dense, homogeneous "
"three-dimensional fill.", "Body"))
story.append(P("5.3 Continuous Wave of Condensation (Buchanan Technique)", "H2"))
story.append(P(
"A modification of warm vertical condensation using an electronically heated pluggers/units "
"(e.g., System B) that deliver a single continuous wave of heat and pressure to soften and downpack the "
"master cone to within 3-5 mm of the apex in one smooth motion, followed by backfilling using an "
"injectable thermoplasticized GP delivery system (e.g., Obtura). It is faster and more predictable than "
"the classical stepwise Schilder technique.", "Body"))
story.append(P("5.4 Thermomechanical Compaction (McSpadden Technique)", "H2"))
story.append(P(
"A specially designed rotary compactor resembling an inverted Hedstrom file is rotated in a low-speed "
"handpiece within the canal containing a master cone, generating frictional heat that softens the GP "
"while the reverse-flute design forces it apically and laterally to adapt to the canal walls. Rapid but "
"technique-sensitive; risk of apical extrusion or vertical root fracture from excessive pressure/heat.", "Body"))
story.append(P("5.5 Injection Thermoplasticized Technique (Obtura / Ultrafil)", "H2"))
story.append(P(
"Alpha-phase gutta-percha is heated to a semi-fluid state (~160-200 degC at the tip, cooling to ~50-60 "
"degC intracanal) in a specialised gun/cartridge system and injected directly into the sealer-coated "
"canal starting from the apical third, then backfilled in increments, allowing excellent adaptation to "
"canal irregularities, fins and lateral canals.", "Body"))
story.append(P("5.6 Carrier-Based Obturation (Thermafil / GuttaCore)", "H2"))
story.append(P(
"A pre-verified plastic or cross-linked gutta-percha carrier coated with a layer of alpha-phase GP is "
"heated in a specialised oven, coated with sealer, and inserted directly into the canal to working "
"length in one motion, carrying softened GP into the apical and lateral irregularities as it seats. "
"Fast and technique-tolerant but retreatment is more difficult because the carrier remains embedded "
"within the filling (GuttaCore's GP carrier is comparatively easier to remove than Thermafil's plastic "
"carrier).", "Body"))
story.append(P("5.7 Single-Cone Technique with Bioceramic Sealer ('Hydraulic' Obturation)", "H2"))
story.append(P(
"A single master cone matching the final rotary/reciprocating file taper is fitted with tug-back and "
"seated with an abundant coating of a hydrophilic, bioactive calcium-silicate (bioceramic) sealer, which "
"flows into fins, irregularities and accessory canals and sets by reacting with residual canal moisture, "
"relying on the sealer (rather than gutta-percha compaction) for the three-dimensional seal. Simple and "
"fast, increasingly popular with the rise of single-file rotary/reciprocating shaping systems.", "Body"))
story.append(P("5.8 Apical Plug Technique (MTA / Biodentine)", "H2"))
story.append(P(
"Used for teeth with open/immature apices or resorptive apical defects where a conventional apical stop "
"cannot be achieved. Mineral trioxide aggregate (MTA) or Biodentine is placed as a 3-5 mm apical plug "
"against a matrix (e.g., resorbable collagen or calcium sulfate) to create an artificial apical barrier, "
"which is then backfilled with conventional gutta-percha and sealer.", "Body"))
story.append(PageBreak())
# ---------- 6. Comparison table ----------
story.append(P("6. Comparative Summary of Techniques", "H1"))
data_cmp = [
[P("Technique", "TableHead"), P("Advantages", "TableHead"), P("Disadvantages / Limitations", "TableHead")],
[P("Cold lateral condensation", "TableCell"),
P("Simple, inexpensive, good control, considered 'gold standard' for comparison, suitable for open apices", "TableCell"),
P("More voids/less homogeneous fill on micro-CT; risk of vertical root fracture from excessive spreader force; does not fill irregular canal cross-sections well", "TableCell")],
[P("Single cone (conventional sealer)", "TableCell"),
P("Fast, simple, minimal instrumentation", "TableCell"),
P("Relies heavily on sealer for lateral seal - risk of voids/gaps if canal not round/tapered to match cone", "TableCell")],
[P("Warm vertical condensation", "TableCell"),
P("Superior 3D adaptation, fills irregularities/fins/lateral canals, dense homogeneous fill", "TableCell"),
P("Technique-sensitive, longer chair time, risk of extrusion/burns, requires special heat-carrying instruments", "TableCell")],
[P("Continuous wave of condensation", "TableCell"),
P("Faster than classic vertical technique, good adaptation, efficient down-pack/back-fill", "TableCell"),
P("Requires special electronic heat unit; learning curve; possible apical extrusion", "TableCell")],
[P("Thermomechanical compaction (McSpadden)", "TableCell"),
P("Rapid filling, good lateral adaptation", "TableCell"),
P("Risk of instrument fracture, apical extrusion, excess heat generation, root fracture", "TableCell")],
[P("Injection thermoplasticized (Obtura)", "TableCell"),
P("Excellent adaptation to irregularities, good for retreatment/backfill after apical plug", "TableCell"),
P("Equipment cost, risk of shrinkage on cooling if not compacted, extrusion risk", "TableCell")],
[P("Carrier-based (Thermafil/GuttaCore)", "TableCell"),
P("Fast, simple, consistent, good adaptation to canal irregularities, technique-tolerant", "TableCell"),
P("Difficult retreatment (carrier remnant), higher material cost, risk of carrier separation/extrusion", "TableCell")],
[P("Bioceramic single-cone ('hydraulic')", "TableCell"),
P("Simple, bioactive sealer with hydroxyapatite formation, good marginal adaptation, minimal shrinkage", "TableCell"),
P("Long working time may complicate retreatment, sealer solubility/wash-out debated, newer material - less long-term data", "TableCell")],
[P("Apical plug (MTA/Biodentine)", "TableCell"),
P("Only reliable option for open apex/immature roots and apical resorption defects", "TableCell"),
P("Technique-sensitive placement, long setting time, additional cost, requires backfill with a second material", "TableCell")],
]
story.append(styled_table(data_cmp, [3.6*cm, 6.2*cm, 6.7*cm]))
story.append(PageBreak())
# ---------- 7. Evidence ----------
story.append(P("7. Evidence-Based Comparison of Obturation Techniques", "H1"))
story.append(bullets([
"A systematic review of micro-CT studies comparing cold lateral condensation with thermoplastic (warm) "
"techniques found that thermoplasticized/warm techniques generally produce fewer voids and better "
"three-dimensional canal-wall adaptation than cold lateral condensation, particularly in irregular or "
"oval canal cross-sections.",
"A large meta-analysis (84 studies, PubMed/Cochrane/ScienceDirect) comparing warm vertical, warm "
"lateral, cold lateral, single-cone and carrier-based techniques found <b>no statistically significant "
"difference in long-term clinical/radiographic success</b> among techniques beyond 36 months for primary "
"root canal treatment; some intermediate time-point differences favoured carrier-based and cold lateral "
"condensation over single-cone technique at 24 months, and single-cone outperformed cold lateral "
"condensation in retreatment cases at 12 months - differences that did not persist long-term.",
"A systematic review comparing 'hydraulic' (single-cone with bioceramic sealer) versus 'thermogenic' "
"(warm vertical compaction) techniques concluded both are effective, but thermogenic obturation offers "
"better adaptability and sealing in complex canal anatomy, while hydraulic technique offers simplicity "
"and speed.",
"A network meta-analysis of vertical fracture resistance found that the choice of obturation system/"
"technique can influence root fracture resistance in vitro, with some carrier-based and warm compaction "
"techniques showing more favourable stress distribution than aggressive lateral/thermomechanical "
"compaction under excessive force.",
"A systematic review and meta-analysis on retreatment outcomes with different gutta-percha techniques "
"found comparable healing outcomes across techniques, reinforcing that overall disinfection quality "
"during shaping/irrigation is at least as important as the obturation technique itself for long-term "
"success.",
"Ultrasonic activation of sealer during single-cone obturation has been shown in laboratory meta-analyses "
"to improve sealer penetration and reduce voids compared with static placement, suggesting adjunctive "
"activation may narrow the quality gap between single-cone and thermoplastic techniques.",
]))
story.append(P(
"<b>Overall evidence synthesis:</b> while laboratory (micro-CT) studies consistently show warm/"
"thermoplasticized techniques achieve denser, more void-free three-dimensional fills than cold lateral "
"condensation or plain single-cone technique, long-term clinical outcome studies show comparable success "
"rates across most techniques when canal shaping, disinfection and coronal seal are adequate - "
"underscoring that biologic factors (disinfection, coronal leakage prevention) often outweigh the choice "
"of obturation technique alone in determining endodontic treatment success.", "Body"))
# ---------- 8. Conclusion ----------
story.append(P("8. Conclusion", "H1"))
story.append(P(
"Obturation is the culmination of root canal therapy, aiming to achieve a three-dimensional, hermetic "
"seal of the cleaned and shaped canal system. A wide spectrum of techniques exists, ranging from the "
"time-tested cold lateral condensation to warm/thermoplasticized methods (vertical condensation, "
"continuous wave, thermomechanical compaction, injection techniques), carrier-based systems, and newer "
"bioceramic-sealer-based single-cone ('hydraulic') techniques, each with distinct advantages, technique "
"sensitivity, cost and indications. Warm and thermoplasticized techniques generally provide superior "
"three-dimensional adaptation on laboratory (micro-CT) analysis, but current clinical evidence shows "
"comparable long-term outcomes across most techniques, provided that meticulous canal preparation, "
"disinfection and a well-sealed coronal restoration accompany the chosen obturation method. Clinician "
"skill, canal anatomy, apical status (mature vs open apex) and case-specific factors should guide "
"technique selection rather than any single universally superior method.", "Body"))
# ---------- References ----------
story.append(P("References", "H1"))
refs = [
"Cohen S, Hargreaves KM. Cohen's Pathways of the Pulp, 12th ed. Elsevier/Mosby.",
"Ingle JI, Bakland LK, Baumgartner JC. Ingle's Endodontics, 7th ed. PMPH.",
"Grossman LI, Oliet S, Del Rio CE. Endodontic Practice, 11th ed. Lea & Febiger.",
"Complete Obturation - Cold Lateral Condensation vs. Thermoplastic Techniques: A Systematic Review of Micro-CT Studies. PMC8304925.",
"Effect of root canal filling techniques and materials on endodontic treatment outcomes: a systematic review and meta-analysis. Sci Rep (Nature). 2026.",
"Hydraulic (Single Cone) Versus Thermogenic (Warm Vertical Compaction) Obturation Techniques: A Systematic Review. PMC11193544.",
"Feng S, Zhou W, Chu X, et al. Effect of ultrasonic activation of endodontic sealers on root canal filling quality during single-cone obturation: a systematic review and meta-analysis. Odontology. 2025. PMID: 40193004.",
"Li G, Li Y, He J, et al. Comparative assessment of vertical fracture resistance in endodontically treated roots with different obturating systems and techniques: a systematic review and network meta-analysis. BMC Oral Health. 2024. PMID: 39604933.",
"Olivieri JG, Encinas M, Nathani T, et al. Outcome of root canal retreatment filled with gutta-percha techniques: A systematic review and meta-analysis. J Dent. 2024. PMID: 38145805.",
"Pirani C, Camilleri J. Effectiveness of root canal filling materials and techniques for treatment of apical periodontitis: A systematic review. Int Endod J. 2023. PMID: 35735776.",
]
for i, r in enumerate(refs, 1):
story.append(P(f"{i}. {r}", "Ref"))
doc = SimpleDocTemplate(OUT, pagesize=A4,
leftMargin=1.8*cm, rightMargin=1.8*cm,
topMargin=1.6*cm, bottomMargin=1.6*cm,
title="Obturation Techniques in Endodontics - 50 Marks Essay")
doc.build(story)
print("PDF written to", OUT)
cd /tmp/workspace/obturation-techniques && python3 gen_pdf.py