in detail about cap splints

Reading File
Finding Sources
Finding Sources
Searching the Web

cap splint dental oral surgery types uses fabrication

Finding Sources
Finding Sources
Reading Web Page

https://pmc.ncbi.nlm.nih.gov/articles/PMC9897721

Finding Sources
Searching the Web

cap splint oral maxillofacial surgery definition types indications Gunning splint

Reading Web Page

https://pmc.ncbi.nlm.nih.gov/articles/PMC4257934

Searching PubMed

"cap splint" mandibular fracture management

Reading Article

PMID: 40515765

Searching the Web

cap splint fabrication steps materials acrylic cast metal open closed type advantages disadvantages

Reading Web Page

https://pmc.ncbi.nlm.nih.gov/articles/PMC9897721

Here is a detailed, comprehensive overview of cap splints in oral and maxillofacial surgery.

Cap Splints - Detailed Overview

Definition

A cap splint is a dental appliance that encases (or "caps") the crowns of teeth to provide immobilization and stabilization of fractured jaw segments, primarily in the management of mandibular and maxillary fractures. It acts as an occlusal guide, helps restore premorbid occlusion, and serves as an anchor for intermaxillary fixation (IMF).
The name "cap" reflects the appliance's design - it covers the entire occlusal and buccal/lingual surfaces of the teeth like a cap, distributing forces over multiple teeth rather than individual ones.

Historical Background

Cap splints have been used since the 19th century and are considered a time-honored technique in maxillofacial surgery. Although newer methods such as open reduction and internal fixation (ORIF) with miniplates have reduced their routine use in adults, cap splints remain highly relevant - especially in pediatric patients - due to their conservative, non-invasive nature. Cast metal cap splint for mandibular fracture (Yuffa et al., Oral Surgery 2015)

Types of Cap Splints

1. Based on Material

A. Acrylic (Resin) Cap Splint

  • Made from cold-cure or heat-cure polymethylmethacrylate (PMMA) acrylic resin
  • Most commonly used today, especially in pediatric cases
  • Fabricated in a dental laboratory using an impression/model
  • Advantages: lighter, easily adjustable, good occlusal coverage, biocompatible
  • Disadvantage: can fracture under heavy occlusal loads; requires skilled technician

B. Cast Metal Cap Splint

  • Fabricated from metal alloy (cobalt-chromium or gold alloys) using the lost-wax casting technique
  • More durable and precise than acrylic
  • Typically has a locking plate mechanism to allow sectional construction, especially useful when the fractured lower jaw must be reduced in segments
  • Cemented with glass ionomer cement
  • Classic technique described by Robertson (1964) and McGregor (1971)
  • Still used in complex adult fractures where surgical fixation is contraindicated

2. Based on Design/Coverage

A. Closed (Solid) Cap Splint

  • Completely covers all the occlusal surfaces
  • Provides maximum immobilization
  • Prevents tooth eruption
  • Less suitable for growing children with developing dentition

B. Open (Occlusal) Cap Splint

  • Has windows/openings over the occlusal surfaces of some teeth
  • Allows partial tooth eruption and continued dental development
  • Preferred in children with mixed dentition
  • Reduces risk of impeding eruption of permanent teeth
  • A modified open cap splint can incorporate arch bar hooks and molar tubes to facilitate IMF

3. Based on Location/Application

TypeLocationUse
Mandibular cap splintLower archMost common - for mandibular fractures
Maxillary cap splintUpper archFor maxillary/mid-face fractures, palatal fractures
Combined (both arches)Upper + lowerUsed together for IMF in bilateral fractures
Sectional cap splintLower jaw in two halvesFor displaced fractures requiring reduction in parts

Indications

  1. Pediatric mandibular fractures - the primary modern indication, especially:
    • Non-displaced or minimally displaced fractures
    • Symphysis, parasymphysis, and body fractures
    • Greenstick fractures
    • Mixed and primary dentition (where arch bars are inadequate)
  2. Adult mandibular fractures - when ORIF is contraindicated:
    • Concurrent cervical spine injuries (unable to position for surgery)
    • Medical comorbidities precluding general anesthesia
    • Complex multi-site fractures needing conservative stabilization
  3. Maxillary fractures - as part of combined IMF
  4. Post-orthognathic surgery stabilization
  5. Alveolar fractures with multiple involved teeth
According to a 2025 systematic review (Kumari et al.), cap splints are recommended for non-displaced pediatric mandibular fractures not involving the condyle, and luting cement is an acceptable alternative to circummandibular wiring for fixation.

Contraindications

  • Condylar fractures (relative - other methods preferred)
  • Severely displaced/comminuted fractures in adults (ORIF preferred)
  • Insufficient tooth structure for retention
  • Poor oral hygiene making cementation unreliable

Fabrication Steps

Step 1: Impressions

  • Maxillary and mandibular alginate impressions are taken
  • In fracture cases, the lower impression may be sectioned to reproduce the fractured anatomy

Step 2: Model Mounting

  • Both upper and lower dental models are mounted on an articulator
  • The premorbid occlusion is reproduced using the maxillary model as reference

Step 3: Wax Pattern

  • A wax pattern is constructed covering all teeth surfaces on the model
  • For sectional splints (fracture cases), the lower is made in two parts with a space at the fracture site

Step 4: Processing

  • Acrylic splint: Wax invested and packed with PMMA resin (cold or heat cure); finished and polished
  • Cast metal splint: Wax invested, burned out, metal alloy cast using lost-wax technique; then polished

Step 5: Additions (if needed)

  • Locking plates soldered to each segment of sectional splints
  • Eyelets or hooks welded for IMF wires
  • Arch bar hooks incorporated for modified designs
  • Molar tubes for elastics

Step 6: Cementation

  • Fitted in the mouth after fracture reduction
  • Cemented with zinc phosphate or glass ionomer cement
  • For sectional splints: segments connected with a locking bar/screw after cementation

Step 7: IMF Application

  • Elastic or wire intermaxillary fixation applied between upper and lower splints
  • Maintained typically for 4-6 weeks

Step 8: Removal

  • Splints removed after radiographic evidence of bony healing (typically 6-8 weeks in children, up to 6 weeks in adults)

Mechanism of Action

A cap splint works by:
  1. Occlusion-guided reduction - the upper splint acts as a template; the lower splint holds fractured segments in correct alignment against it
  2. Load distribution - forces are distributed over all capped teeth rather than individual teeth, minimizing the risk of tooth injury
  3. Rigid immobilization - when used with IMF, prevents movement at the fracture site allowing bone healing
  4. Splinting effect - teeth adjacent to the fracture are stabilized by being incorporated into a single rigid unit

Fixation Methods Used with Cap Splints

MethodDetails
Circummandibular wiringWire passed around the mandible and through holes in the splint; gold standard for retention in children
Luting cement aloneZinc phosphate or GIC; used as alternative to wiring, especially in cooperative patients
Circumzygomatic wiringFor maxillary splint retention in midface fractures
Intermaxillary fixation (IMF)Wires or elastics between upper and lower splints
Interdental wiringWires placed between individual teeth through holes in splint

Advantages

  • Non-invasive - no surgical incisions required (closed reduction)
  • Preservation of growth - does not damage periosteum or developing tooth buds (critical in children)
  • Occlusion-guided reduction - ensures restoration of premorbid bite
  • Maximum stability during healing without hardware
  • No second surgery needed for hardware removal (unlike plates and screws)
  • Applicable in any age group - even very young children with primary dentition
  • Ease of oral hygiene maintenance compared to arch bars
  • Protects injured teeth from further trauma

Disadvantages

  • Requires a skilled dental laboratory technician
  • Time-consuming to fabricate (laboratory time needed before surgery)
  • Thickness of splint may affect occlusion
  • Not suitable for severely displaced fractures needing ORIF
  • May impede tooth eruption if design is not carefully planned
  • Risk of splint fracture under heavy loads (acrylic type)
  • Cementation failure possible, especially on primary teeth with short crowns

Special Consideration: Pediatric Use

Cap splints are the preferred first-line conservative treatment for pediatric mandibular fractures because:
  • Open reduction risks damage to developing permanent tooth buds embedded in the mandible
  • Rigid plates may tether growth of the mandible
  • Children have robust healing capacity and can heal with conservative methods
  • Open cap splints allow continued eruption of permanent teeth during the healing period
The 2025 systematic review by Kumari et al. (PMID 40515765) across 47 studies confirmed that cap splints with either circummandibular wiring or luting cement are effective for non-displaced pediatric mandibular fractures not involving the condyle.

Cap Splint vs. Gunning Splint

FeatureCap SplintGunning Splint
DentitionDentate patientsEdentulous patients
RetentionCemented onto teethRetained by circumferential wiring/denture adhesive
MaterialAcrylic or metalVulcanite rubber or acrylic
DesignCovers tooth crownsCovers the edentulous ridge
IMFVia eyelets on splintVia eyelets on splint

Summary

Cap splints remain a relevant and effective tool in oral and maxillofacial surgery. While largely superseded by rigid internal fixation in adult practice, they are the cornerstone of conservative fracture management in the pediatric population. The choice between acrylic and cast metal, and between open and closed designs, depends on the patient's age, dentition status, fracture pattern, and whether growth preservation is a priority.

does cap splints used in dentoalveolar fractures of pediatric patients

Finding Sources
Finding Sources
Searching PubMed

"dentoalveolar fracture" pediatric splint management

Searching the Web

cap splint dentoalveolar fractures pediatric children alveolar process treatment

Finding Sources
Reading Article

PMID: 32454961

Searching PubMed

alveolar fracture children splinting acrylic cap circummandibular wiring

Reading Web Page

https://pmc.ncbi.nlm.nih.gov/articles/PMC7235701

Finding Sources
Searching the Web

cap splint acrylic alveolar fracture children circummandibular wiring technique stabilization

Yes - cap splints are indeed used in dentoalveolar fractures of pediatric patients, and they are in fact one of the two traditionally most used modalities for this purpose. Here is a detailed answer:

Cap Splints in Pediatric Dentoalveolar Fractures

What is a Dentoalveolar Fracture?

A dentoalveolar fracture involves fracture of the alveolar process (the tooth-bearing bone), typically with associated dental injuries - tooth displacement, luxation, or avulsion. These are among the most common pediatric facial injuries, with a prevalence of 11-30% in children with primary dentition and 5-20% in those with permanent dentition.

Yes - Cap Splints ARE Used, and Here's Why They Are Preferred in Children

"The two most commonly used modalities for stabilization of displaced dentoalveolar fractures are: the application of arch bars fixed with inter-dental wiring AND the use of metal (cap) splint/acrylic plates fixed using circummandibular wiring."
However, in pediatric patients - particularly those in mixed or primary dentition - cap splints are specifically preferred over arch bars because:
Problem with Arch Bars in ChildrenSolution with Cap Splints
Height of contour of deciduous teeth is below the gingival levelCap covers the entire crown - no height-of-contour dependency
Root resorption of deciduous teeth makes arch bars unstableCap distributes force over the whole dental arch
Incomplete root formation of erupting permanent teethCap does not depend on root length for retention
Arch bar bending to fit small deciduous teeth is technically demandingCap is laboratory-fabricated to exact fit

Specific Indications in Pediatric Dentoalveolar Fractures

1. Alveolar Process Fractures

  • Fractures of the alveolar segment with or without mobile teeth
  • Cap splint immobilizes the entire fractured segment, restoring and maintaining premorbid occlusion
  • Avoids the need for ORIF, which risks damaging developing permanent tooth buds embedded in the alveolar bone

2. Symphysis and Parasymphysis Fractures with Alveolar Involvement

3. Mandibular Body Fractures with Alveolar Disruption

  • Modified open cap splints used when fracture line involves the alveolar crest
  • Open design allows continued eruption of teeth during healing

4. Maxillary Alveolar Fractures

  • Maxillary cap splint combined with circumzygomatic wiring for midface/palatal dentoalveolar fractures

Why Cap Splints Are Particularly Valuable in Pediatric Dentoalveolar Fractures

1. Preservation of Developing Tooth Buds

  • The alveolar bone in children is packed with developing permanent tooth buds
  • ORIF with miniplates and screws risks direct damage to these buds during drilling
  • Cap splint allows fracture stabilization from outside the bone entirely - no intraosseous hardware

2. No Growth Disturbance

  • Plates secured to growing alveolar bone can act as tethers, causing asymmetric jaw growth
  • Cap splint imposes no restriction on bone growth since it is attached to teeth, not bone

3. No Periosteal Disruption

  • Surgical flap elevation strips periosteum, which is a critical source of blood supply and bone formation in children
  • Conservative cap splint approach preserves the periosteal envelope

4. Shorter Healing - Shorter Wear Time

  • Children heal faster due to thinner cortical bone, rich blood supply, and active bone metabolism
  • Typical cap splint retention: 2-3 weeks in children vs. 4-6 weeks in adults
  • Earlier removal reduces the risk of TMJ ankylosis (a serious concern with prolonged IMF in children)

Types of Cap Splints Used in Pediatric Dentoalveolar Fractures

Acrylic Cap Splint (Most Common)

  • PMMA-based, fabricated on a dental model
  • Covers all teeth in the arch
  • Retained with circummandibular wiring or glass ionomer cement (GIC)
  • Easy to apply and remove
  • Allows maintenance of oral hygiene

Modified Open Cap Splint

  • Has windows/openings in the occlusal surface
  • Allows continued eruption of teeth
  • Can incorporate arch bar hooks or buccal tubes for use of elastics
  • Used by Jha et al. (2023, PMID 37731795) for delayed mandibular dentoalveolar fractures in children

Metal (Cast) Cap Splint

  • More durable, precise
  • Used when acrylic is at risk of fracture under occlusal loads
  • More time-consuming to fabricate

Vacuum-Formed Splint (Modern Alternative)

  • Made from transparent thermoplastic sheet using a vacuum-forming machine
  • First reported by Lloyd (2001) for mandibular fractures in children
  • Highly retentive due to close adaptation to teeth and alveolar undercuts
  • Can be retained with GIC alone (no circummandibular wiring) - fully outpatient, under local anesthesia
  • Nilesh et al. (2020, PMID 32454961) reported successful use in a 12-year-old with displaced mandibular dentoalveolar fracture

Fixation Methods Used with Cap Splints in Children

MethodWhen Used
Circummandibular wiringGold standard for mandibular cap splint retention in active fractures
Glass ionomer cement (GIC) lutingAlternative to wiring; suitable for minimally displaced/cooperative patients; avoids GA
Circumzygomatic wiringFor maxillary cap splint retention
Cross elasticsFor guiding occlusion in modified splints with buccal arch bar hooks
Interdental wiring through splint holesAdjunct retention

Fabrication Steps for Pediatric Dentoalveolar Fracture Cap Splint

  1. Alginate impressions taken under local anesthesia (or GA if needed)
  2. Dental stone casts poured and mounted on articulator
  3. Acrylic cap splint fabricated in the lab - covers all teeth, with or without occlusal windows
  4. Fracture reduced clinically - alveolar segment repositioned manually
  5. Splint cemented with GIC or zinc phosphate cement
  6. Retention wires placed - circummandibular wires passed using mandibular awl (26-gauge wire), tightened on buccal and lingual aspects
  7. OPG taken to confirm reduction
  8. Follow-up weekly - clinical and radiographic monitoring
  9. Removal at 2-3 weeks in children (earlier than adults due to rapid healing)

Splinting Duration (Pediatric vs. Adult)

Age GroupRecommended DurationRationale
Pediatric (2-12 years)2-3 weeksRapid bone healing, avoid TMJ ankylosis, prevent growth restriction
Adult (>12 years)3-4 weeksSlower bone metabolism
IADT Recommendation4 weeks (all ages)Conservative guideline recommendation

Outcomes

Published case reports and the 2025 systematic review (Kumari et al., PMID 40515765) consistently show:
  • Stable occlusion restored post-treatment
  • Good bony healing on OPG at follow-up
  • No growth disturbance
  • No tooth bud damage
  • Good patient compliance and comfort
  • Oral hygiene maintainable during treatment period

Summary

Cap splints are not just "used" in pediatric dentoalveolar fractures - they are one of the two traditional first-line methods for this indication. In children with primary or mixed dentition, they are actually preferred over arch bars because of the anatomical characteristics of deciduous teeth. The acrylic cap splint with circummandibular wiring remains the treatment of choice for managing pediatric dentoalveolar and mandibular fractures conservatively, especially when developing tooth buds preclude the use of plates and screws.

can we use cap splints for luxated primary dentition with refernces

Finding Sources
Searching PubMed

luxated primary teeth splinting management

Searching the Web

cap splint luxated primary dentition treatment splinting indicated contraindicated guidelines IADT

Reading Article

PMID: 36930443

Reading Article

PMID: 37433924

Reading Web Page

https://pmc.ncbi.nlm.nih.gov/articles/PMC12094451

Reading Article

PMID: 36968882

Reading Article

PMID: 34562981

Searching the Web

IADT 2020 guidelines primary dentition luxation splinting lateral extrusion intrusion flexible rigid splint

This is a nuanced topic with an important answer. Here is a comprehensive, reference-backed response:

Can Cap Splints Be Used for Luxated Primary Dentition?

The Short, Direct Answer

Cap splints specifically - as rigid splints - are generally NOT the recommended first-choice splint for luxated primary teeth. The IADT 2020 guidelines and current evidence recommend flexible splints when splinting is indicated in primary dentition. Cap splints are rigid appliances, and their use in primary tooth luxations requires careful consideration.
However, splinting of luxated primary teeth is sometimes indicated in specific situations, and the question of which splint type to use depends on the luxation type.

Understanding the Key Distinction: Rigid vs. Flexible Splints

FeatureRigid Splint (e.g., Cap Splint)Flexible Splint (e.g., Composite-wire, TTS)
Tooth mobility allowedNoneYes - physiological movement preserved
Risk of ankylosisHigherLower
Risk of pulp necrosisHigherLower
Risk of external root resorptionHigherLower
Use in primary dentitionRestricted (alveolar fractures mainly)Preferred for luxation injuries
Duration in primary dentition4 weeks2-4 weeks depending on injury
"The IADT guidelines recommend using a flexible splint. A flexible splint (e.g., titanium trauma splint, composite and wire splint) allows functional movement in contrast to a rigid splint (e.g., composite splints) where the injured teeth are immobilized."

IADT 2020 Guidelines: When to Splint in Primary Dentition

Per the IADT 2020 guidelines (Dental Traumatology 2020;36:343-359), splinting in primary dentition is indicated only in three specific scenarios:
Injury TypeSplinting Indicated?TypeDuration
ConcussionNo - observation only--
SubluxationNo - observation only--
Extrusive luxation (<3mm)SometimesFlexible2-3 weeks
Lateral luxation (severe, with occlusal interference, repositioned)Yes - if repositioned and unstableFlexible4 weeks
Intrusive luxationNo - observation/extraction--
Root fractureOccasionallyFlexible4 weeks
Alveolar fractureYesFlexible4 weeks
AvulsionNo - do NOT reimplant primary teeth--

Luxation Type-by-Type Analysis for Cap Splint Use

1. Concussion and Subluxation

  • No splinting needed at all - observation only
  • Cap splint: Not indicated

2. Extrusive Luxation (tooth partially displaced out of socket)

  • If displacement is < 3 mm with no occlusal interference: allow spontaneous re-eruption, no splint
  • If displacement is > 3 mm: extraction recommended
  • If repositioned and unstable: flexible splint for 2-3 weeks
  • Cap splint (rigid): Not recommended - flexible is preferred
  • Reference: Di Giorgio et al., 2021 (PMID 34562981) - used flexible orthodontic splint for extrusive luxation + root fracture in a 3.5-year-old with good outcome

3. Lateral Luxation (most common luxation type)

  • Minimal/no occlusal interference: allow spontaneous repositioning - no splint
  • Severe displacement with occlusal interference: reposition + flexible splint for 4 weeks
  • Cap splint (rigid): Not specifically recommended; flexible composite-wire splint is the standard
  • Reference: Das et al., Cureus 2023 (PMID 36968882) - composite resin splinting for lateral luxation of primary maxillary incisors in a 5-year-old, splinted 4 weeks, good outcome with no damage to permanent successor

4. Intrusive Luxation

  • No splinting - monitor for spontaneous re-eruption (expected in 1-6 months)
  • Extract if apex displaced toward permanent tooth bud
  • Cap splint: Not indicated

5. Root Fracture in Primary Teeth

  • If coronal fragment is not mobile and no occlusal interference: observe
  • If unstable: flexible splint for 4 weeks; if fragment is very mobile, extract coronal fragment
  • Cap splint: Occasionally used for immobilization in root fractures of primary teeth
  • This is one of the situations where a rigid/semi-rigid approach may be considered

6. Alveolar Fracture (the main indication)

  • Flexible splint for 4 weeks (IADT recommendation)
  • Cap splint has historically been used here and remains clinically relevant - see previous discussion
  • The evidence supporting cap splint use in alveolar fractures is stronger than for luxation alone

Why Cap Splints Are Generally Avoided for Pure Luxation in Primary Teeth

1. Risk to Permanent Successor

The most important concern in primary dentition is damage to the underlying permanent tooth germ. A rigid cap splint:
  • May prolong immobilization stress on the alveolus
  • If combined with repositioning trauma, increases risk of disturbance to permanent tooth development
  • Ankylosis of primary tooth from rigid immobilization can interfere with permanent tooth eruption

2. Short Root Length of Primary Teeth

Primary teeth have shorter roots, especially those undergoing physiological resorption - they do not tolerate rigid immobilization as well, and ankylosis risk is higher.

3. Periodontal Ligament Concerns

Rigid splinting eliminates physiological tooth movement. In primary teeth, the PDL needs some functional stimulus to maintain vascularity and normal healing. Flexible splints preserve this.

4. Limited Retention

Primary teeth (especially in young children aged 2-5 years) have short clinical crowns, making cap splint cementation technically difficult and potentially unreliable.

When a Cap Splint Might Still Be Considered in Primary Dentition

Despite the above, literature acknowledges individualized use of cap splints in specific clinical scenarios:
  1. Alveolar fracture with concurrent luxated teeth - the cap splint immobilizes the entire segment including the luxated teeth
  2. Multiple luxated primary teeth across a fractured alveolar segment - isolated flexible splinting is not feasible; the cap splint stabilizes the whole arch unit
  3. Older cooperative children (6-8 years) approaching physiological exfoliation - less concern about growth interference
  4. When flexible splinting materials are unavailable in resource-limited settings
  5. Modified open cap splint - allows some tooth movement, used in mixed dentition fractures with alveolar involvement
"Individualized employment of the splinting option may be considered in other specific clinical conditions without jeopardizing the dentoalveolar health."

The Evidence on Splinting Primary Teeth: What Systematic Reviews Show

Fernandez et al., 2023 (PMID 36930443) - Systematic Review

  • Highest-level evidence available (Systematic Review, Tier 1)
  • 3 retrospective studies included
  • Root fractures in primary teeth: high success rate with splinting
  • Lateral luxation: benefit of splinting was not clearly identified, though it may be a recommended approach
  • Conclusion: "Based on low level of evidence, findings highlight better clinical success rate of TS in management of deciduous teeth with root fractures"
  • Journal: European Archives of Paediatric Dentistry, 2023

Deery, 2023 (PMID 37433924) - Evidence-Based Dentistry Commentary

  • Reviewed same 3 retrospective studies
  • "Outcome of management of root fractures in primary teeth may benefit from flexible splinting"
  • Evidence base is low overall

Recommended Splint Types for Primary Dentition (Not Cap Splints)

When splinting IS indicated for luxated primary teeth, these are preferred over cap splints:
Splint TypeDescriptionAdvantage in Primary Dentition
Composite resin + wire (acid-etch)Wire bonded with composite resin to adjacent teethFlexible, semi-rigid, easy, common
Titanium Trauma Splint (TTS)Thin titanium mesh bonded with compositeFlexible, biocompatible, allows physiological movement
Orthodontic flexible wire splintStainless steel/NiTi wire bonded across adjacent teethMost flexible option
Vacuum-formed thermoplastic splintThermoplastic sheet adapted to teeth, bonded with GICMinimally invasive, outpatient, excellent anatomical fit

Summary Table

Luxation TypeSplinting in Primary TeethCap Splint Appropriate?Recommended Splint
ConcussionNot indicatedNo-
SubluxationNot indicatedNo-
Extrusive luxation (<3mm)Rarely; if unstable after repositioningNoFlexible (composite-wire)
Extrusive luxation (>3mm)ExtractNo-
Lateral luxation (mild)Not neededNo-
Lateral luxation (severe, repositioned)Yes - 4 weeksNo (use flexible)Flexible (composite-wire, TTS)
Intrusive luxationNot indicatedNo-
Root fractureOccasionally - 4 weeksRigid only if necessaryFlexible preferred
Alveolar fracture with luxationYes - 4 weeksYes - acceptable hereFlexible/cap splint

Key References

  1. IADT 2020 Guidelines - Primary Dentition - Malmgren et al. Dental Traumatology 2020;36(4):343-359. doi: 10.1111/edt.12576 - AAPD-endorsed guidelines
  2. Fernandez MDS et al. (2023) - "Splinting in the management of dental trauma in the primary dentition: a systematic review." Eur Arch Paediatr Dent. 2023;74(2):279-287. PMID 36930443
  3. Deery C (2023) - "Should we splint traumatised primary teeth?" Evid Based Dent. 2023;24(3):118-119. PMID 37433924
  4. Adverse effects of splinting of luxated primary teeth (2025) - Systematic review confirming IADT-2020 recommendation for flexible splints in lateral luxation and root fractures. PMC12094451
  5. Das S et al. (2023) - "Management of Laterally Luxated Primary Teeth: A Case Report." Cureus. 2023;15(2):e35218. PMID 36968882 - Composite resin flexible splinting for lateral luxation, good outcome
  6. Di Giorgio G et al. (2021) - "Root Fracture and Extrusive Luxation in Primary Teeth." Dent J (Basel). 2021;9(9):107. PMID 34562981 - Flexible splinting for extrusive luxation + root fracture in primary tooth
  7. Trauma to the Primary Dentition - StatPearls - NCBI Bookshelf, 2024. NBK580475

Bottom Line

Cap splints (rigid splints) are generally NOT recommended for isolated luxation injuries of primary teeth. The IADT 2020 guidelines - the gold standard reference - specify flexible splints when splinting is needed in primary dentition. Cap splints have their role in pediatric dentoalveolar and alveolar fractures, but for pure luxation injuries of primary teeth, flexible composite-wire or titanium trauma splints are the evidence-based choice. The key reason is that rigid immobilization in primary teeth increases risk of ankylosis and permanent tooth germ disturbance - outcomes that can compromise the developing permanent dentition.

Create a clinical decision flowchart for splinting primary dentition trauma

Reading File
Running Command

mkdir -p /home/daytona/workspace/cap-splint-flowchart && ls /home/daytona/worksp…

Writing File

~/cap-splint-flowchart/flowchart.py

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from matplotlib.patches import FancyBboxPatch, FancyArrowPatch

fig, ax = plt.subplots(figsize=(22, 34))
ax.set_xlim(0, 22)
ax.set_ylim(0, 34)
ax.axis('off')

# ─── Color Palette ───────────────────────────────────────────────────────────
C_BG        = "#0D1B2A"   # deep navy  – canvas
C_TITLE     = "#1A2F4A"   # dark navy  – title banner
C_START     = "#1B6CA8"   # vivid blue – start/entry
C_DIAMOND   = "#D4870A"   # amber      – decision
C_ACTION    = "#1A7A4A"   # forest green – action/treatment
C_EXTRACT   = "#B03030"   # crimson    – extract
C_OBSERVE   = "#2E7D96"   # teal       – observe
C_SPLINT    = "#5B3A8C"   # purple     – splint indicated
C_FOOTER    = "#0D1B2A"   # same as bg
C_WHITE     = "#FFFFFF"
C_LTGRAY    = "#E8EDF2"
C_AMBER     = "#FFB830"
C_GOLD      = "#F0C040"

fig.patch.set_facecolor(C_BG)
ax.set_facecolor(C_BG)

# ─── Helper functions ─────────────────────────────────────────────────────────

def box(ax, x, y, w, h, text, facecolor, textcolor=C_WHITE, fontsize=9.5,
        bold=False, radius=0.35, style="round,pad=0.05", wrap=True, zorder=3,
        linewidth=0, edgecolor="none", alpha=1.0):
    rect = FancyBboxPatch((x - w/2, y - h/2), w, h,
                          boxstyle=f"round,pad=0.08",
                          facecolor=facecolor, edgecolor=edgecolor,
                          linewidth=linewidth, zorder=zorder, alpha=alpha)
    ax.add_patch(rect)
    weight = 'bold' if bold else 'normal'
    ax.text(x, y, text, ha='center', va='center', fontsize=fontsize,
            color=textcolor, fontweight=weight, wrap=True,
            multialignment='center', zorder=zorder+1,
            linespacing=1.35)

def diamond(ax, x, y, w, h, text, facecolor=C_DIAMOND, textcolor=C_WHITE, fontsize=9):
    xs = [x, x + w/2, x, x - w/2, x]
    ys = [y + h/2, y, y - h/2, y, y + h/2]
    ax.fill(xs, ys, color=facecolor, zorder=3)
    ax.plot(xs, ys, color="#FFC95A", linewidth=1.2, zorder=4)
    ax.text(x, y, text, ha='center', va='center', fontsize=fontsize,
            color=textcolor, fontweight='bold', multialignment='center',
            zorder=5, linespacing=1.3)

def arrow(ax, x1, y1, x2, y2, color="#90AFCC", lw=1.8, label="", label_side="right"):
    ax.annotate("", xy=(x2, y2), xytext=(x1, y1),
                arrowprops=dict(arrowstyle="-|>", color=color,
                                lw=lw, mutation_scale=14),
                zorder=2)
    if label:
        mx = (x1+x2)/2
        my = (y1+y2)/2
        offset = 0.22 if label_side == "right" else -0.22
        ax.text(mx + offset, my, label, ha='center', va='center',
                fontsize=8, color=C_GOLD, fontweight='bold', zorder=6)

def line(ax, x1, y1, x2, y2, color="#90AFCC", lw=1.8):
    ax.plot([x1, x2], [y1, y2], color=color, lw=lw, zorder=2)

# ─── TITLE BANNER ─────────────────────────────────────────────────────────────
title_bg = FancyBboxPatch((0.2, 32.3), 21.6, 1.5,
                           boxstyle="round,pad=0.1",
                           facecolor=C_TITLE, edgecolor=C_AMBER, linewidth=2, zorder=3)
ax.add_patch(title_bg)
ax.text(11, 33.15, "Clinical Decision Flowchart: Splinting in Primary Dentition Trauma",
        ha='center', va='center', fontsize=15, color=C_WHITE, fontweight='bold', zorder=4)
ax.text(11, 32.6, "Based on IADT 2020 Guidelines  |  Dental Traumatology 2020;36(4):343–359",
        ha='center', va='center', fontsize=8.5, color=C_GOLD, zorder=4)

# ─── ENTRY ────────────────────────────────────────────────────────────────────
box(ax, 11, 31.5, 7.5, 0.7,
    "PRIMARY TOOTH TRAUMA PRESENTED",
    C_START, bold=True, fontsize=11, edgecolor=C_AMBER, linewidth=1.5)

arrow(ax, 11, 31.15, 11, 30.55)

# ─── Step 1: Assess type ──────────────────────────────────────────────────────
box(ax, 11, 30.2, 8, 0.65,
    "Clinical + Radiographic Assessment\n(Type of Traumatic Dental Injury)",
    "#1A3A5C", fontsize=9.5, bold=False, edgecolor="#3A7ABF", linewidth=1)

arrow(ax, 11, 29.87, 11, 29.25)

diamond(ax, 11, 28.7, 9, 1.05,
        "What type of injury?", C_DIAMOND, fontsize=10)

# ─── Six branches from diamond ────────────────────────────────────────────────
# Positions (x) for six injury columns
cols = {
    "concussion":  2.0,
    "sublux":      4.8,
    "extrusion":   7.6,
    "lateral":    11.0,
    "intrusion":  14.4,
    "root_fx":    17.2,
    "alv_fx":     20.2,
}

y_label   = 27.65
y_injbox  = 26.95
y_q1      = 26.00
y_action1 = 25.05
y_splint  = 24.15
y_type    = 23.25
y_dur     = 22.35

branch_color = "#90AFCC"
label_color  = "#FFFFFF"

# ── draw horizontal distribution line ──
line(ax, 2.0, 28.18, 20.2, 28.18, color="#90AFCC")
for cx in cols.values():
    line(ax, cx, 28.18, cx, 27.95, color="#90AFCC")
    ax.annotate("", xy=(cx, 27.95), xytext=(cx, 28.18),
                arrowprops=dict(arrowstyle="-|>", color="#90AFCC", lw=1.5, mutation_scale=12), zorder=2)

# ─── CONCUSSION ──────────────────────────────────────────────────────────────
cx = cols["concussion"]
box(ax, cx, 27.5, 3.4, 0.65, "CONCUSSION", "#1A5276", bold=True, fontsize=9, edgecolor="#3A7ABF", linewidth=1)
arrow(ax, cx, 27.18, cx, 26.6)
box(ax, cx, 26.3, 3.4, 0.55, "Normal mobility\nNo displacement", "#1A3A5C", fontsize=8)
arrow(ax, cx, 26.02, cx, 25.42)
box(ax, cx, 25.15, 3.4, 0.52, "Observation only\nNo splinting", C_OBSERVE, fontsize=8.5, bold=True, edgecolor="#5BC0D0", linewidth=1)
arrow(ax, cx, 24.89, cx, 24.29)
box(ax, cx, 24.0, 3.4, 0.52, "F/U: 1 wk, 6-8 wks", "#1A3A5C", fontsize=8)

# ─── SUBLUXATION ─────────────────────────────────────────────────────────────
cx = cols["sublux"]
box(ax, cx, 27.5, 3.4, 0.65, "SUBLUXATION", "#1A5276", bold=True, fontsize=9, edgecolor="#3A7ABF", linewidth=1)
arrow(ax, cx, 27.18, cx, 26.6)
box(ax, cx, 26.3, 3.4, 0.55, "Increased mobility\nNo displacement", "#1A3A5C", fontsize=8)
arrow(ax, cx, 26.02, cx, 25.42)
box(ax, cx, 25.15, 3.4, 0.52, "Observation only\nNo splinting", C_OBSERVE, fontsize=8.5, bold=True, edgecolor="#5BC0D0", linewidth=1)
arrow(ax, cx, 24.89, cx, 24.29)
box(ax, cx, 24.0, 3.4, 0.52, "F/U: 1 wk, 6-8 wks", "#1A3A5C", fontsize=8)

# ─── EXTRUSIVE LUXATION ──────────────────────────────────────────────────────
cx = cols["extrusion"]
box(ax, cx, 27.5, 3.4, 0.65, "EXTRUSIVE\nLUXATION", "#1A5276", bold=True, fontsize=9, edgecolor="#3A7ABF", linewidth=1)
arrow(ax, cx, 27.17, cx, 26.6)
diamond(ax, cx, 26.1, 3.4, 0.85, "Displacement\n> 3 mm?", C_DIAMOND, fontsize=8)
# YES → extract
arrow(ax, cx + 1.7, 26.1, cx + 2.4, 26.1, color="#FF6B6B")
ax.text(cx + 2.0, 26.22, "YES", ha='center', va='bottom', fontsize=7.5, color="#FF6B6B", fontweight='bold')
box(ax, cx + 3.05, 26.1, 1.55, 0.52, "EXTRACT", C_EXTRACT, fontsize=8.5, bold=True)
# NO → observe/spontaneous
arrow(ax, cx, 25.67, cx, 25.12)
ax.text(cx + 0.18, 25.42, "NO", ha='left', va='center', fontsize=7.5, color=C_GOLD, fontweight='bold')
box(ax, cx, 24.85, 3.4, 0.52, "Allow spontaneous\nre-eruption", C_OBSERVE, fontsize=8, bold=True, edgecolor="#5BC0D0", linewidth=1)
arrow(ax, cx, 24.59, cx, 24.04)
diamond(ax, cx, 23.65, 3.4, 0.72, "Unstable after\nrepositioning?", C_DIAMOND, fontsize=7.5)
# YES splint
arrow(ax, cx, 23.29, cx, 22.74)
ax.text(cx + 0.18, 23.05, "YES", ha='left', va='center', fontsize=7.5, color=C_GOLD, fontweight='bold')
box(ax, cx, 22.45, 3.4, 0.55, "Flexible splint\n2-3 weeks", C_SPLINT, fontsize=8.5, bold=True, edgecolor="#A080D0", linewidth=1)
# NO
arrow(ax, cx - 1.7, 23.65, cx - 2.45, 23.65, color="#FF6B6B")
ax.text(cx - 2.05, 23.78, "NO", ha='center', va='bottom', fontsize=7.5, color="#FF6B6B", fontweight='bold')
box(ax, cx - 2.9, 23.65, 1.4, 0.52, "Observe", C_OBSERVE, fontsize=8)

# ─── LATERAL LUXATION ────────────────────────────────────────────────────────
cx = cols["lateral"]
box(ax, cx, 27.5, 3.4, 0.65, "LATERAL\nLUXATION", "#1A5276", bold=True, fontsize=9, edgecolor="#3A7ABF", linewidth=1)
arrow(ax, cx, 27.17, cx, 26.6)
diamond(ax, cx, 26.1, 3.4, 0.85, "Occlusal\ninterference?", C_DIAMOND, fontsize=8)
# NO → spontaneous
arrow(ax, cx - 1.7, 26.1, cx - 2.45, 26.1, color="#FF6B6B")
ax.text(cx - 2.05, 26.22, "NO", ha='center', va='bottom', fontsize=7.5, color="#FF6B6B", fontweight='bold')
box(ax, cx - 3.05, 26.1, 1.55, 0.55, "Spontaneous\nReposition", C_OBSERVE, fontsize=7.5)
# YES → reposition
arrow(ax, cx, 25.67, cx, 25.12)
ax.text(cx + 0.18, 25.42, "YES", ha='left', va='center', fontsize=7.5, color=C_GOLD, fontweight='bold')
box(ax, cx, 24.85, 3.4, 0.52, "Reposition gently\nunder LA", C_ACTION, fontsize=8.5, bold=True, edgecolor="#40BF7A", linewidth=1)
arrow(ax, cx, 24.59, cx, 24.04)
diamond(ax, cx, 23.65, 3.4, 0.72, "Still unstable?", C_DIAMOND, fontsize=8)
# YES splint
arrow(ax, cx, 23.29, cx, 22.74)
ax.text(cx + 0.18, 23.05, "YES", ha='left', va='center', fontsize=7.5, color=C_GOLD, fontweight='bold')
box(ax, cx, 22.45, 3.4, 0.55,
    "FLEXIBLE SPLINT\n4 weeks (IADT 2020)", C_SPLINT, fontsize=8.5, bold=True, edgecolor="#A080D0", linewidth=1.5)
# NO
arrow(ax, cx + 1.7, 23.65, cx + 2.5, 23.65, color="#FF6B6B")
ax.text(cx + 2.05, 23.78, "NO", ha='center', va='bottom', fontsize=7.5, color="#FF6B6B", fontweight='bold')
box(ax, cx + 3.05, 23.65, 1.5, 0.52, "Observe", C_OBSERVE, fontsize=8)

# ─── INTRUSION ────────────────────────────────────────────────────────────────
cx = cols["intrusion"]
box(ax, cx, 27.5, 3.4, 0.65, "INTRUSIVE\nLUXATION", "#1A5276", bold=True, fontsize=9, edgecolor="#3A7ABF", linewidth=1)
arrow(ax, cx, 27.17, cx, 26.6)
diamond(ax, cx, 26.1, 3.4, 0.85, "Apex toward\ntooth bud?", C_DIAMOND, fontsize=8)
# YES → extract
arrow(ax, cx, 25.67, cx, 25.12)
ax.text(cx + 0.18, 25.42, "YES", ha='left', va='center', fontsize=7.5, color=C_GOLD, fontweight='bold')
box(ax, cx, 24.85, 3.4, 0.52, "EXTRACT\n(protect tooth germ)", C_EXTRACT, fontsize=8, bold=True)
# NO → observe
arrow(ax, cx + 1.7, 26.1, cx + 2.45, 26.1, color="#90AFCC")
ax.text(cx + 2.05, 26.22, "NO", ha='center', va='bottom', fontsize=7.5, color=C_GOLD, fontweight='bold')
box(ax, cx + 2.95, 26.1, 1.55, 0.55, "Observe\nspontaneous\nre-eruption", C_OBSERVE, fontsize=7.5)
arrow(ax, cx, 24.59, cx, 24.02)
box(ax, cx, 23.72, 3.4, 0.55, "NO splinting\nMonitor 1-6 months", C_OBSERVE, fontsize=8.5, bold=True, edgecolor="#5BC0D0", linewidth=1)

# ─── ROOT FRACTURE ────────────────────────────────────────────────────────────
cx = cols["root_fx"]
box(ax, cx, 27.5, 3.4, 0.65, "ROOT\nFRACTURE", "#1A5276", bold=True, fontsize=9, edgecolor="#3A7ABF", linewidth=1)
arrow(ax, cx, 27.17, cx, 26.6)
diamond(ax, cx, 26.1, 3.4, 0.85, "Coronal fragment\nmobile / displaced?", C_DIAMOND, fontsize=7.8)
# YES
arrow(ax, cx, 25.67, cx, 25.12)
ax.text(cx + 0.18, 25.42, "YES", ha='left', va='center', fontsize=7.5, color=C_GOLD, fontweight='bold')
diamond(ax, cx, 24.75, 3.4, 0.72, "Apical fragment\nstable?", C_DIAMOND, fontsize=7.8)
arrow(ax, cx - 1.7, 24.75, cx - 2.45, 24.75)
ax.text(cx - 2.05, 24.87, "NO", ha='center', va='bottom', fontsize=7.5, color="#FF6B6B", fontweight='bold')
box(ax, cx - 2.95, 24.75, 1.55, 0.52, "Extract\ncoronal Fx", C_EXTRACT, fontsize=7.5, bold=True)
arrow(ax, cx, 24.39, cx, 23.84)
ax.text(cx + 0.18, 24.15, "YES", ha='left', va='center', fontsize=7.5, color=C_GOLD, fontweight='bold')
box(ax, cx, 23.55, 3.4, 0.55, "Flexible splint\n4 weeks\n(high success rate)", C_SPLINT, fontsize=8, bold=True, edgecolor="#A080D0", linewidth=1)
# NO
arrow(ax, cx + 1.7, 26.1, cx + 2.45, 26.1)
ax.text(cx + 2.05, 26.22, "NO", ha='center', va='bottom', fontsize=7.5, color=C_GOLD, fontweight='bold')
box(ax, cx + 2.95, 26.1, 1.55, 0.55, "Observe\nno splint\nneeded", C_OBSERVE, fontsize=7.5)

# ─── ALVEOLAR FRACTURE ────────────────────────────────────────────────────────
cx = cols["alv_fx"]
box(ax, cx, 27.5, 3.4, 0.65, "ALVEOLAR\nFRACTURE", "#1A5276", bold=True, fontsize=9, edgecolor="#3A7ABF", linewidth=1)
arrow(ax, cx, 27.17, cx, 26.6)
box(ax, cx, 26.3, 3.4, 0.55, "Displaced segment?\nOcclusal interference?", "#1A3A5C", fontsize=8)
arrow(ax, cx, 26.02, cx, 25.45)
box(ax, cx, 25.15, 3.4, 0.55, "Reposition segment\nunder LA", C_ACTION, fontsize=8.5, bold=True, edgecolor="#40BF7A", linewidth=1)
arrow(ax, cx, 24.87, cx, 24.29)
box(ax, cx, 24.0, 3.4, 0.7,
    "SPLINT to adjacent\nuninjured teeth\n4 weeks (IADT 2020)",
    C_SPLINT, fontsize=8.5, bold=True, edgecolor="#A080D0", linewidth=1.5)
arrow(ax, cx, 23.65, cx, 23.1)
diamond(ax, cx, 22.75, 3.4, 0.72, "Cap Splint\navailable?", C_DIAMOND, fontsize=8)
arrow(ax, cx, 22.39, cx, 21.84)
ax.text(cx + 0.18, 22.15, "YES", ha='left', va='center', fontsize=7.5, color=C_GOLD, fontweight='bold')
box(ax, cx, 21.55, 3.4, 0.55, "Cap Splint + CMW\n(Rigid - acceptable\nfor alveolar Fx)", "#6A3A9C", fontsize=8, bold=True, edgecolor="#C080FF", linewidth=1.5)
arrow(ax, cx - 1.7, 22.75, cx - 2.45, 22.75)
ax.text(cx - 2.05, 22.87, "NO", ha='center', va='bottom', fontsize=7.5, color="#FF6B6B", fontweight='bold')
box(ax, cx - 2.95, 22.75, 1.55, 0.55, "Composite\nwire splint\n(flexible)", C_SPLINT, fontsize=7.5)

# ─── BOTTOM COMMON CONVERGENCE: SPLINT TYPE GUIDANCE ─────────────────────────
y_guide = 20.2
guide_bg = FancyBboxPatch((0.5, 19.1), 21, 1.7,
                           boxstyle="round,pad=0.1",
                           facecolor="#0F2A45", edgecolor=C_AMBER, linewidth=1.5, zorder=3)
ax.add_patch(guide_bg)
ax.text(11, 20.65, "SPLINT SELECTION GUIDE FOR PRIMARY DENTITION",
        ha='center', va='center', fontsize=10, color=C_AMBER, fontweight='bold', zorder=4)

splint_data = [
    ("FLEXIBLE SPLINTS\n(IADT Recommended)", "Composite-wire\nTitanium Trauma Splint\nOrthodontic wire + resin",
     "Lateral luxation\nRoot fracture\nExtrusion (if needed)", "#5B3A8C"),
    ("RIGID SPLINTS\n(Limited use)", "Cap Splint (acrylic/cast metal)\nVacuum-formed splint + GIC\nComposite resin alone",
     "Alveolar fracture\nMultiple luxated teeth\n+ alveolar segment Fx", "#7A2C2C"),
    ("NOT INDICATED", "No splint required",
     "Concussion\nSubluxation\nIntrusion\nAvulsion (no reimplant)", "#2C5A3A"),
]
col_w = 6.5
start_x = 1.3
for i, (title, splints, when, color) in enumerate(splint_data):
    bx = start_x + i * col_w + col_w/2
    bx_rect = FancyBboxPatch((start_x + i * col_w, 17.25), col_w - 0.3, 1.65,
                              boxstyle="round,pad=0.07",
                              facecolor=color, edgecolor=C_AMBER, linewidth=1, zorder=3, alpha=0.9)
    ax.add_patch(bx_rect)
    ax.text(bx - 0.15, 18.67, title, ha='center', va='top', fontsize=8.5, color=C_WHITE,
            fontweight='bold', zorder=4, multialignment='center', linespacing=1.3)
    ax.text(bx - 0.15, 18.18, splints, ha='center', va='center', fontsize=7.5, color=C_LTGRAY,
            zorder=4, multialignment='center', linespacing=1.25)

ax.text(1.3 + 0*col_w + col_w/2 - 0.15, 17.5, "When?", ha='center', va='center', fontsize=7,
        color=C_GOLD, zorder=4)

# ─── DURATION TABLE ───────────────────────────────────────────────────────────
dur_y = 16.9
dur_bg = FancyBboxPatch((0.5, 14.8), 21, 1.95,
                         boxstyle="round,pad=0.1",
                         facecolor="#0A1E32", edgecolor="#3A7ABF", linewidth=1.2, zorder=3)
ax.add_patch(dur_bg)
ax.text(11, 16.55, "SPLINTING DURATION — IADT 2020 Primary Dentition Guidelines",
        ha='center', va='center', fontsize=9.5, color=C_GOLD, fontweight='bold', zorder=4)

dur_data = [
    ("Lateral Luxation\n(if splinted)",   "4 weeks", "Flexible"),
    ("Root Fracture\n(if splinted)",       "4 weeks", "Flexible"),
    ("Alveolar Fracture",                  "4 weeks", "Flexible / Cap Splint"),
    ("Extrusive Luxation\n(if unstable)",  "2-3 weeks", "Flexible"),
    ("Concussion / Subluxation",           "No splint", "—"),
    ("Intrusive Luxation",                 "No splint", "—"),
    ("Avulsion",                           "No reimplant", "—"),
]
col_xs = [2.2, 7.5, 12.0, 16.5]
headers = ["Injury Type", "Duration", "Splint Type", "Cap Splint?"]
cap_splint_yn = ["NO", "NO", "YES*", "NO", "—", "—", "—"]
for j, h in enumerate(headers):
    ax.text(col_xs[j], 16.05, h, ha='center', va='center', fontsize=8.5,
            color=C_AMBER, fontweight='bold', zorder=4)
ax.plot([0.7, 21.3], [15.78, 15.78], color="#3A7ABF", lw=0.8, zorder=4)
for i, (inj, dur, spl) in enumerate(dur_data):
    row_y = 15.55 - i * 0.28
    bg_c = "#0D243A" if i % 2 == 0 else "#0A1E32"
    row_rect = FancyBboxPatch((0.7, row_y - 0.13), 20.6, 0.27,
                               boxstyle="square,pad=0.0",
                               facecolor=bg_c, edgecolor="none", zorder=3)
    ax.add_patch(row_rect)
    ax.text(col_xs[0], row_y, inj.replace("\n", " "), ha='center', va='center',
            fontsize=7.2, color=C_WHITE, zorder=4)
    ax.text(col_xs[1], row_y, dur, ha='center', va='center',
            fontsize=7.5, color=C_WHITE, fontweight='bold', zorder=4)
    ax.text(col_xs[2], row_y, spl, ha='center', va='center',
            fontsize=7.2, color=C_LTGRAY, zorder=4)
    yn_color = "#70FF90" if cap_splint_yn[i] == "YES*" else ("#FF7070" if cap_splint_yn[i] == "NO" else C_LTGRAY)
    ax.text(col_xs[3], row_y, cap_splint_yn[i], ha='center', va='center',
            fontsize=8, color=yn_color, fontweight='bold', zorder=4)

# ─── FOLLOW-UP PROTOCOL BOX ───────────────────────────────────────────────────
fu_bg = FancyBboxPatch((0.5, 12.0), 10.1, 2.55,
                        boxstyle="round,pad=0.08",
                        facecolor="#0F2A45", edgecolor="#3A7ABF", linewidth=1.2, zorder=3)
ax.add_patch(fu_bg)
ax.text(5.55, 14.35, "FOLLOW-UP SCHEDULE", ha='center', va='center',
        fontsize=9, color=C_GOLD, fontweight='bold', zorder=4)
fu_items = [
    "1 week  — Clinical exam after repositioning/splinting",
    "4 weeks — Splint removal (if splint used)",
    "6-8 weeks — Clinical assessment of healing",
    "6 months — Check for complications",
    "1 year  — Radiographic check",
    "Age 6+  — Monitor permanent tooth eruption",
]
for i, item in enumerate(fu_items):
    ax.text(0.9, 14.0 - i * 0.35, f"•  {item}", ha='left', va='center',
            fontsize=7.8, color=C_LTGRAY, zorder=4)

# ─── COMPLICATION BOX ─────────────────────────────────────────────────────────
cx_comp = 16.0
comp_bg = FancyBboxPatch((10.8, 12.0), 10.7, 2.55,
                          boxstyle="round,pad=0.08",
                          facecolor="#1A0A0A", edgecolor="#B03030", linewidth=1.2, zorder=3)
ax.add_patch(comp_bg)
ax.text(cx_comp, 14.35, "WATCH FOR COMPLICATIONS", ha='center', va='center',
        fontsize=9, color="#FF8080", fontweight='bold', zorder=4)
comp_items = [
    "Pulp necrosis / abscess (darkening of crown)",
    "Pathological external root resorption",
    "Ankylosis (over-rigid / prolonged splinting)",
    "Developmental disturbance to permanent tooth",
    "Enamel hypoplasia of successor (Turner tooth)",
    "Failure of splint / loss of retention",
]
for i, item in enumerate(comp_items):
    ax.text(11.1, 14.0 - i * 0.35, f"⚠  {item}", ha='left', va='center',
            fontsize=7.8, color="#FFB0B0", zorder=4)

# ─── KEY PRINCIPLES BOX ───────────────────────────────────────────────────────
kp_bg = FancyBboxPatch((0.5, 10.0), 21, 1.75,
                        boxstyle="round,pad=0.1",
                        facecolor="#0A1E14", edgecolor="#1A7A4A", linewidth=1.5, zorder=3)
ax.add_patch(kp_bg)
ax.text(11, 11.57, "KEY PRINCIPLES FOR SPLINTING PRIMARY TEETH",
        ha='center', va='center', fontsize=9.5, color="#70E090", fontweight='bold', zorder=4)
principles = [
    "1  Use FLEXIBLE splints when splinting is indicated in primary dentition (IADT 2020)",
    "2  Cap splints (rigid) are acceptable ONLY for alveolar fractures or complex multi-segment injuries",
    "3  AVOID rigid splinting for pure luxation injuries — increases ankylosis + permanent tooth germ risk",
    "4  PRIMARY teeth are NOT reimplanted after avulsion",
    "5  Shorter splinting duration in children (2-4 wks) vs adults — rapid healing + TMJ ankylosis risk",
    "6  Protect permanent tooth bud — this is the PRIMARY GOAL in all primary dentition trauma management",
]
for i, p in enumerate(principles[:3]):
    ax.text(0.8, 11.22 - i*0.32, p, ha='left', va='center', fontsize=7.5, color=C_LTGRAY, zorder=4)
for i, p in enumerate(principles[3:]):
    ax.text(0.8, 10.25 - i*0.32 + 0.32, p, ha='left', va='center', fontsize=7.5, color=C_LTGRAY, zorder=4)

# ─── REFERENCES ───────────────────────────────────────────────────────────────
ref_bg = FancyBboxPatch((0.5, 8.35), 21, 1.45,
                         boxstyle="round,pad=0.08",
                         facecolor="#0D1B2A", edgecolor="#304A6A", linewidth=1, zorder=3)
ax.add_patch(ref_bg)
ax.text(11, 9.6, "KEY REFERENCES", ha='center', va='center',
        fontsize=8.5, color=C_GOLD, fontweight='bold', zorder=4)
refs = [
    "1.  Malmgren B et al. IADT Guidelines — Injuries in the Primary Dentition. Dental Traumatology 2020;36(4):343-359. doi:10.1111/edt.12576",
    "2.  Fernandez MDS et al. Splinting in the management of dental trauma in the primary dentition: systematic review. Eur Arch Paediatr Dent 2023. PMID 36930443",
    "3.  Deery C. Should we splint traumatised primary teeth? Evid Based Dent 2023;24(3):118-119. PMID 37433924",
    "4.  Adverse effects of splinting of luxated primary teeth: SR. PMC12094451  |  5.  Das S et al. Management of Laterally Luxated Primary Teeth. Cureus 2023. PMID 36968882",
]
for i, r in enumerate(refs):
    ax.text(0.8, 9.35 - i*0.26, r, ha='left', va='center', fontsize=7, color="#A0B8CC", zorder=4)

# ─── LEGEND ───────────────────────────────────────────────────────────────────
legend_items = [
    (C_DIAMOND, "Decision point"),
    (C_ACTION,  "Clinical action"),
    (C_SPLINT,  "Splinting indicated"),
    (C_OBSERVE, "Observe / no splint"),
    (C_EXTRACT, "Extract tooth"),
    ("#6A3A9C",  "Cap splint (rigid)"),
]
lx, ly = 0.7, 7.85
ax.text(lx, ly, "LEGEND:", ha='left', va='center', fontsize=8, color=C_GOLD, fontweight='bold', zorder=4)
for i, (color, label) in enumerate(legend_items):
    bx = lx + 1.5 + i * 3.2
    rect = FancyBboxPatch((bx, ly - 0.2), 0.45, 0.38,
                           boxstyle="round,pad=0.04",
                           facecolor=color, edgecolor="none", zorder=3)
    ax.add_patch(rect)
    ax.text(bx + 0.6, ly - 0.01, label, ha='left', va='center',
            fontsize=8, color=C_WHITE, zorder=4)

# ─── ASTERISK NOTE ────────────────────────────────────────────────────────────
ax.text(0.7, 7.3,
        "* Cap splint acceptable for alveolar fractures. CMW = Circummandibular Wiring. "
        "GIC = Glass Ionomer Cement. IADT = International Association of Dental Traumatology.",
        ha='left', va='center', fontsize=7.5, color="#88A0B8",
        style='italic', zorder=4)

# ─── BORDER ───────────────────────────────────────────────────────────────────
border = FancyBboxPatch((0.05, 0.05), 21.9, 33.9,
                         boxstyle="round,pad=0.1",
                         facecolor="none", edgecolor=C_AMBER, linewidth=2.5, zorder=1)
ax.add_patch(border)

plt.tight_layout(pad=0)
plt.savefig("/home/daytona/workspace/cap-splint-flowchart/primary_dentition_splinting_flowchart.png",
            dpi=180, bbox_inches='tight', facecolor=C_BG)
print("Saved successfully.")
Running Command

cd /home/daytona/workspace/cap-splint-flowchart && python flowchart.py 2>&1

Running Command

ls -lh /home/daytona/workspace/cap-splint-flowchart/

Your clinical decision flowchart is ready. Here is the download link:

primary dentition splinting flowchart

Image · PNG


Here is what the flowchart covers across its 7 injury-specific branches and 5 reference panels:
Top Section - Decision Branches (one per injury type):
BranchKey DecisionOutcome
ConcussionNo displacementObserve - no splint
SubluxationIncreased mobility onlyObserve - no splint
Extrusive Luxation>3mm? → Extract; unstable after reposition?Flexible splint 2-3 wks
Lateral LuxationOcclusal interference? → Reposition → still unstable?Flexible splint 4 wks
Intrusive LuxationApex toward tooth bud?Extract or observe
Root FractureCoronal fragment mobile? → Apical stable?Flexible splint 4 wks
Alveolar FractureSegment displaced? → Reposition → Cap splint available?Cap splint + CMW accepted
Bottom Reference Panels:
  • Splint selection guide - flexible vs rigid vs not indicated
  • IADT 2020 duration table with cap splint YES/NO column
  • Follow-up schedule (1 wk to age 6+)
  • Complications watch list (pulp necrosis, ankylosis, Turner tooth)
  • 6 key principles for primary dentition trauma
  • Full references including IADT 2020 and PMID numbers
This is a shared conversation. Sign in to Orris to start your own chat.