Lap cholecystectomy with down syndrome adult patient with aesthetic consideration
laparoscopic cholecystectomy "Down syndrome"
"Down syndrome" anesthesia surgical considerations adult
PMID: 34165727
PMID: 36610856


| Concern | Implication |
|---|---|
| Macroglossia + short neck | Airway priority; use smaller ETT, video laryngoscopy |
| Atlantoaxial instability | Cervical spine X-rays preop; in-line stabilization during intubation and positioning |
| CHD / Pulmonary hypertension | Echo preop; minimize pneumoperitoneum pressure; avoid hypoxia/hypercarbia |
| OSA + obesity | Extended recovery monitoring; CPAP postop; low-opioid analgesia |
| Hypothyroidism | Check TSH; delayed emergence if undertreated |
| Cognitive impairment / dementia | Delirium risk; family/carer involvement in perioperative communication |
| GERD | RSI induction; NG/OG tube decompression intraop |
| Cooperation / consent | Assess decision-making capacity; involve guardian if needed; pre-admission familiarization visit may reduce anxiety |
Create a pre-anesthesia checklist (PDF) for DS adult cholecystectomy
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace not found"
mkdir -p /home/daytona/workspace/ds-cholecystectomy-checklist
~/ds-cholecystectomy-checklist/generate_checklist.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import mm
from reportlab.lib import colors
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_RIGHT
from reportlab.platypus import Flowable
import os
OUTPUT = "/home/daytona/workspace/ds-cholecystectomy-checklist/DS_Adult_Cholecystectomy_PreAnesthesia_Checklist.pdf"
# ─── Colour Palette ─────────────────────────────────────────────────────────
TEAL = colors.HexColor("#1A6B72") # main header bg
TEAL_LIGHT = colors.HexColor("#E8F4F5") # alt row tint
ORANGE = colors.HexColor("#E8640A") # alert/critical accent
ORANGE_LITE = colors.HexColor("#FFF3EC") # alert bg
GREY_DARK = colors.HexColor("#2C2C2C")
GREY_MID = colors.HexColor("#5A5A5A")
GREY_LIGHT = colors.HexColor("#F4F4F4")
WHITE = colors.white
DIVIDER = colors.HexColor("#B0D4D7")
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=14*mm, rightMargin=14*mm,
topMargin=12*mm, bottomMargin=12*mm,
)
W = A4[0] - 28*mm # usable page width
styles = getSampleStyleSheet()
# ─── Custom Styles ───────────────────────────────────────────────────────────
def S(name, **kw):
return ParagraphStyle(name, **kw)
TITLE_STYLE = S("DocTitle",
fontSize=17, textColor=WHITE, fontName="Helvetica-Bold",
leading=22, spaceAfter=1, alignment=TA_CENTER)
SUBTITLE_STYLE = S("DocSubtitle",
fontSize=10, textColor=colors.HexColor("#B2E0E4"),
fontName="Helvetica", leading=13, alignment=TA_CENTER)
SECTION_HDR = S("SectionHdr",
fontSize=9.5, textColor=WHITE, fontName="Helvetica-Bold",
leading=12, alignment=TA_LEFT, leftIndent=4)
ITEM_STYLE = S("Item",
fontSize=8.5, textColor=GREY_DARK, fontName="Helvetica",
leading=12, leftIndent=4, spaceAfter=0)
ITEM_BOLD = S("ItemBold",
fontSize=8.5, textColor=GREY_DARK, fontName="Helvetica-Bold",
leading=12, leftIndent=4, spaceAfter=0)
ALERT_STYLE = S("Alert",
fontSize=8, textColor=colors.HexColor("#7A2500"),
fontName="Helvetica-Bold", leading=11, leftIndent=4)
FOOTER_STYLE = S("Footer",
fontSize=7, textColor=GREY_MID, fontName="Helvetica",
leading=9, alignment=TA_CENTER)
NOTE_STYLE = S("Note",
fontSize=7.8, textColor=GREY_MID, fontName="Helvetica-Oblique",
leading=10, leftIndent=4)
PATIENT_LABEL = S("PatientLabel",
fontSize=8, textColor=GREY_MID, fontName="Helvetica",
leading=10)
PATIENT_FIELD = S("PatientField",
fontSize=8.5, textColor=GREY_DARK, fontName="Helvetica-Bold",
leading=11)
# ─── Helper: checkbox row ────────────────────────────────────────────────────
def cb(text, indent=0, bold=False, note=None):
"""Returns a row for the checklist table: [checkbox, text, result field]"""
sty = ITEM_BOLD if bold else ITEM_STYLE
main = Paragraph(text, sty)
rows = [[
Paragraph("☐", S("cb", fontSize=10, fontName="Helvetica",
leading=12, textColor=TEAL)),
main,
Paragraph("", ITEM_STYLE)
]]
if note:
rows.append([
Paragraph("", ITEM_STYLE),
Paragraph(note, NOTE_STYLE),
Paragraph("", ITEM_STYLE)
])
return rows
def cb_result(text, result_label="Result:", bold=False, note=None):
sty = ITEM_BOLD if bold else ITEM_STYLE
rows = [[
Paragraph("☐", S("cb2", fontSize=10, fontName="Helvetica",
leading=12, textColor=TEAL)),
Paragraph(text, sty),
Paragraph(result_label + " ______________________", NOTE_STYLE)
]]
if note:
rows.append([
Paragraph("", ITEM_STYLE),
Paragraph(note, NOTE_STYLE),
Paragraph("", ITEM_STYLE)
])
return rows
def section_table(items_rows, col_widths=None):
"""Build a bordered checklist table from rows."""
if col_widths is None:
col_widths = [6*mm, W*0.62, W*0.31]
all_rows = []
for r in items_rows:
all_rows.extend(r)
t = Table(all_rows, colWidths=col_widths, repeatRows=0)
n = len(all_rows)
style_cmds = [
("VALIGN", (0, 0), (-1, -1), "TOP"),
("LEFTPADDING", (0, 0), (-1, -1), 3),
("RIGHTPADDING", (0, 0), (-1, -1), 3),
("TOPPADDING", (0, 0), (-1, -1), 3),
("BOTTOMPADDING",(0, 0), (-1, -1), 3),
("ROWBACKGROUNDS", (0, 0), (-1, -1), [WHITE, GREY_LIGHT]),
("BOX", (0, 0), (-1, -1), 0.4, DIVIDER),
("LINEBELOW", (0, 0), (-1, -2), 0.25, DIVIDER),
]
t.setStyle(TableStyle(style_cmds))
return t
def section_header(title, color=TEAL):
data = [[Paragraph(title, SECTION_HDR)]]
t = Table(data, colWidths=[W])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
]))
return t
def alert_box(text):
data = [[Paragraph("⚠ " + text, ALERT_STYLE)]]
t = Table(data, colWidths=[W])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), ORANGE_LITE),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("BOX", (0,0), (-1,-1), 0.8, ORANGE),
]))
return t
# ═══════════════════════════════════════════════════════════════════════════
# DOCUMENT BUILD
# ═══════════════════════════════════════════════════════════════════════════
story = []
# ─── HEADER BANNER ──────────────────────────────────────────────────────────
header_data = [[
Paragraph("PRE-ANESTHESIA ASSESSMENT CHECKLIST", TITLE_STYLE),
]]
header_sub = [[
Paragraph(
"Down Syndrome Adult · Laparoscopic Cholecystectomy · Anesthesiologist Copy",
SUBTITLE_STYLE)
]]
banner = Table(
[
[Paragraph("PRE-ANESTHESIA ASSESSMENT CHECKLIST", TITLE_STYLE)],
[Paragraph("Down Syndrome (Trisomy 21) Adult Patient · Laparoscopic Cholecystectomy", SUBTITLE_STYLE)],
[Paragraph("Anesthesiologist Use Only · Complete 24–48 h Before Scheduled Surgery", SUBTITLE_STYLE)],
],
colWidths=[W]
)
banner.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), TEAL),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 10),
("ROUNDEDCORNERS", [4]),
]))
story.append(banner)
story.append(Spacer(1, 4*mm))
# ─── PATIENT INFO BAR ───────────────────────────────────────────────────────
pi_data = [[
Paragraph("Patient Name:", PATIENT_LABEL),
Paragraph("_______________________________", PATIENT_FIELD),
Paragraph("DOB:", PATIENT_LABEL),
Paragraph("____________", PATIENT_FIELD),
Paragraph("MRN:", PATIENT_LABEL),
Paragraph("____________", PATIENT_FIELD),
],[
Paragraph("Date of Assessment:", PATIENT_LABEL),
Paragraph("____________", PATIENT_FIELD),
Paragraph("Surgeon:", PATIENT_LABEL),
Paragraph("_______________________________", PATIENT_FIELD),
Paragraph("ASA Class:", PATIENT_LABEL),
Paragraph("____", PATIENT_FIELD),
]]
pi_table = Table(pi_data, colWidths=[30*mm, 45*mm, 18*mm, 28*mm, 18*mm, 28*mm])
pi_table.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "BOTTOM"),
("LEFTPADDING", (0,0), (-1,-1), 2),
("RIGHTPADDING",(0,0), (-1,-1), 2),
("TOPPADDING", (0,0), (-1,-1), 2),
("BOTTOMPADDING",(0,0),(-1,-1), 3),
("LINEBELOW", (0,0), (-1,-1), 0.4, DIVIDER),
("BACKGROUND", (0,0), (-1,-1), GREY_LIGHT),
("BOX", (0,0), (-1,-1), 0.4, DIVIDER),
]))
story.append(pi_table)
story.append(Spacer(1, 4*mm))
# ─── ALERT: DS-SPECIFIC REMINDER ────────────────────────────────────────────
story.append(KeepTogether([
alert_box(
"DS-SPECIFIC ALERT: This patient has Trisomy 21. "
"Anticipate difficult airway (default), screen for atlantoaxial instability, "
"congenital heart disease, pulmonary hypertension, OSA, and hypothyroidism "
"BEFORE proceeding. Do NOT skip cervical spine assessment."
),
Spacer(1, 3*mm),
]))
# ════════════════════════════════════════════════════════════════════
# SECTION 1 — CARDIOVASCULAR
# ════════════════════════════════════════════════════════════════════
story.append(KeepTogether([
section_header("1. CARDIOVASCULAR ASSESSMENT"),
section_table([
cb_result("Congenital heart disease (CHD) present?",
result_label="Type:", bold=True,
note="CHD present in ~40% DS adults (AV canal, VSD, ASD most common). If unknown → ECHO mandatory."),
cb("ECG obtained and reviewed",
note="Look for: arrhythmia, RVH (pulmonary HTN), conduction defects"),
cb("Echocardiogram reviewed (within 12 months or ordered if absent)",
bold=True,
note="Assess LVEF, RV pressures, PASP, valve function, residual shunts"),
cb_result("Pulmonary artery systolic pressure (PASP)?",
result_label="PASP: ___ mmHg",
note="PASP >40 mmHg = significant pulmonary HTN → Cardiology consult mandatory; "
"lower pneumoperitoneum pressure ≤10 mmHg intraop; avoid hypoxia/hypercarbia"),
cb("Cardiology consult obtained (if CHD or PASP >40 mmHg or unrepaired defect)"),
cb_result("Current cardiac medications",
result_label="Meds:", bold=False,
note="Continue most cardiac meds morning of surgery. Hold ACEi/ARB if instructed."),
cb("Air bubble protocol ordered (if intracardiac shunt present)",
note="All IV lines must be meticulously de-aired; use inline filter"),
]),
Spacer(1, 3*mm),
]))
# ════════════════════════════════════════════════════════════════════
# SECTION 2 — AIRWAY (DIFFICULT AIRWAY DEFAULT)
# ════════════════════════════════════════════════════════════════════
story.append(KeepTogether([
section_header("2. AIRWAY ASSESSMENT — TREAT AS DIFFICULT AIRWAY UNTIL PROVEN OTHERWISE", color=ORANGE),
section_table([
cb("Mallampati class recorded", bold=True),
cb_result("Mouth opening (inter-incisor distance)",
result_label="mm: ____"),
cb("Macroglossia present? ☐ Yes ☐ No", bold=True),
cb("High-arched palate / midface hypoplasia documented"),
cb_result("Neck circumference / short neck noted",
result_label="Neck circ: ___ cm"),
cb("Subglottic stenosis history or prior intubation difficulty?",
bold=True,
note="Use ETT ≥1 size smaller than predicted by weight/age. Start with 6.0 cuffed in adults."),
cb("Prior anesthesia records reviewed for intubation details",
note="Request previous records; DS patients often have multiple prior GAs"),
cb("Video laryngoscope (GlideScope/C-MAC) confirmed available and checked",
bold=True),
cb("Fiberoptic scope available if anticipated Grade III–IV view"),
cb("Difficult airway cart at bedside before induction"),
cb("ENT/Surgical airway backup arranged for anticipated severe difficulty"),
cb_result("Planned primary airway technique",
result_label="Plan:"),
cb_result("Planned backup (Plan B) airway technique",
result_label="Plan B:"),
]),
Spacer(1, 3*mm),
]))
# ════════════════════════════════════════════════════════════════════
# SECTION 3 — CERVICAL SPINE / ATLANTOAXIAL INSTABILITY
# ════════════════════════════════════════════════════════════════════
story.append(KeepTogether([
section_header("3. CERVICAL SPINE & ATLANTOAXIAL INSTABILITY (AAI)", color=colors.HexColor("#8B1A1A")),
alert_box(
"AAI occurs in up to 15–20% of DS patients. Unrecognised AAI + aggressive neck "
"flexion during laryngoscopy can cause irreversible tetraplegia."
),
section_table([
cb("Screened for AAI symptoms: neck pain, torticollis, gait change, "
"upper limb weakness, bowel/bladder change",
bold=True),
cb("Lateral flexion-extension cervical X-rays obtained (if symptomatic OR no prior imaging)",
bold=True,
note="Order if: no prior imaging documented, OR any new neurological symptom"),
cb_result("Atlantodens interval (ADI) on X-ray",
result_label="ADI: ___ mm (Normal <5 mm adults)",
note="ADI >5 mm in adults → high-risk; neurosurgery consult before proceeding"),
cb("Neurosurgery consult completed if ADI >5 mm or symptomatic AAI"),
cb("IN-LINE cervical stabilization technique confirmed with assistant for intubation",
bold=True),
cb("Positioning plan for reverse Trendelenburg documented; gentle head movement only"),
]),
Spacer(1, 3*mm),
]))
# ════════════════════════════════════════════════════════════════════
# SECTION 4 — RESPIRATORY / OSA
# ════════════════════════════════════════════════════════════════════
story.append(KeepTogether([
section_header("4. RESPIRATORY & OBSTRUCTIVE SLEEP APNEA (OSA)"),
section_table([
cb("STOP-BANG score completed", bold=True),
cb_result("Known OSA? ☐ Yes ☐ No CPAP/BiPAP user? ☐ Yes ☐ No",
result_label="CPAP pressure: ___ cmH₂O"),
cb("CPAP/BiPAP device brought to hospital for postop use",
note="Restart CPAP immediately postop when patient is awake and cooperative"),
cb("SpO₂ baseline documented (room air at rest)",
result_label="SpO₂: ___%"),
cb("Chest X-ray reviewed (if respiratory symptoms or new findings)"),
cb_result("Spirometry / PFTs reviewed (if severe OSA, obesity, or known lung disease)",
result_label="FEV1/FVC: ____"),
cb("Postoperative monitoring level agreed: ☐ PACU standard ☐ Step-down ☐ ICU",
bold=True,
note="ICU advised if: PASP >40 mmHg, severe OSA, BMI >40, or significant CHD"),
]),
Spacer(1, 3*mm),
]))
# ════════════════════════════════════════════════════════════════════
# SECTION 5 — ENDOCRINE & METABOLIC
# ════════════════════════════════════════════════════════════════════
story.append(KeepTogether([
section_header("5. ENDOCRINE & METABOLIC"),
section_table([
cb_result("TSH / thyroid function reviewed",
result_label="TSH: ___ mIU/L",
bold=True,
note="Hypothyroidism common in DS adults → increases anesthetic sensitivity, "
"delays emergence, lowers MAC requirement. Treat before elective surgery."),
cb("Levothyroxine continued morning of surgery (with sip of water)"),
cb_result("Fasting blood glucose on day of surgery",
result_label="BGL: ___ mmol/L"),
cb("Diabetes medications reviewed and adjusted per fasting protocol"),
cb_result("Electrolytes: Na / K / Cr",
result_label="Na:__ K:__ Cr:__ μmol/L"),
]),
Spacer(1, 3*mm),
]))
# ════════════════════════════════════════════════════════════════════
# SECTION 6 — NEUROLOGICAL / COGNITIVE
# ════════════════════════════════════════════════════════════════════
story.append(KeepTogether([
section_header("6. NEUROLOGICAL & COGNITIVE"),
section_table([
cb("Baseline cognitive function documented (mild / moderate / severe ID)",
bold=True),
cb("Dementia / Alzheimer's disease present? ☐ Yes ☐ No",
note="Early-onset Alzheimer's in DS adults from age ~40. "
"Increases postoperative delirium risk significantly."),
cb("Seizure disorder present? ☐ Yes ☐ No",
note="Document current antiepileptic drugs; continue perioperatively"),
cb_result("Antiepileptic drugs",
result_label="AED:"),
cb("Delirium screening tool agreed (CAM or equivalent) for postop monitoring"),
cb("Guardian / carer identified and informed of consent process",
bold=True),
cb("Pre-admission familiarisation visit offered (reduces procedural anxiety in DS)"),
cb("PCA suitability assessed: ☐ Suitable ☐ Not suitable (cognitive impairment)",
note="If PCA not suitable → nurse-controlled or multimodal analgesia protocol"),
]),
Spacer(1, 3*mm),
]))
# ════════════════════════════════════════════════════════════════════
# SECTION 7 — GI / ASPIRATION RISK
# ════════════════════════════════════════════════════════════════════
story.append(KeepTogether([
section_header("7. GASTROINTESTINAL & ASPIRATION RISK"),
section_table([
cb("GERD present? ☐ Yes ☐ No Current PPI/H2 blocker? ☐ Yes ☐ No",
bold=True),
cb("Aspiration prophylaxis prescribed (e.g., ranitidine 150 mg OR omeprazole 40 mg night before + morning of surgery)"),
cb("NPO status confirmed: solids ≥6 h, clear fluids ≥2 h",
bold=True),
cb("Rapid sequence induction (RSI) planned if GERD / full stomach / obesity",
bold=True,
note="RSI with succinylcholine or high-dose rocuronium + cricoid pressure"),
cb("Orogastric tube insertion planned for intraoperative gastric decompression"),
]),
Spacer(1, 3*mm),
]))
# ════════════════════════════════════════════════════════════════════
# SECTION 8 — ANAESTHETIC PLAN
# ════════════════════════════════════════════════════════════════════
story.append(KeepTogether([
section_header("8. ANAESTHETIC PLAN DOCUMENTED"),
section_table([
cb("Induction agent selected (Propofol / Ketamine / Sevoflurane inhalation)",
bold=True),
cb("Neuromuscular blocker selected ☐ Succinylcholine ☐ Rocuronium"),
cb("Reversal agent confirmed available: ☐ Sugammadex (preferred) ☐ Neostigmine",
note="Sugammadex preferred — avoids muscarinic effects; safer in pulmonary HTN"),
cb("Maintenance agent: ☐ Sevoflurane ☐ Desflurane ☐ TIVA",
note="Short-acting agents preferred for quicker emergence"),
cb("Quantitative neuromuscular monitoring (TOF) confirmed",
bold=True),
cb("Pneumoperitoneum pressure target documented: ≤12–14 mmHg standard / ≤10 mmHg if pulm HTN",
bold=True),
cb("End-tidal CO₂ monitoring confirmed — titrate ventilation to EtCO₂ 35–40 mmHg"),
cb("Multimodal analgesia plan: Paracetamol + Ketorolac + Port-site local anesthetic",
note="Minimise opioids given OSA risk"),
cb("Antiemetic prophylaxis: ondansetron ± dexamethasone"),
cb("VTE prophylaxis: LMWH + sequential compression devices"),
cb("Antibiotic prophylaxis given (within 60 min of incision)"),
]),
Spacer(1, 3*mm),
]))
# ════════════════════════════════════════════════════════════════════
# SECTION 9 — LABS & INVESTIGATIONS SUMMARY
# ════════════════════════════════════════════════════════════════════
story.append(KeepTogether([
section_header("9. REQUIRED INVESTIGATIONS — TICK WHEN REVIEWED"),
section_table(
col_widths=[6*mm, W*0.50, W*0.43],
items_rows=[
cb_result("FBC / CBC", result_label="Hb:___ Plt:___"),
cb_result("Coagulation (PT/INR/APTT)", result_label="INR:___ APTT:___"),
cb_result("U&E / CMP", result_label="Na:__ K:__ Cr:__"),
cb_result("LFTs / liver function", result_label="ALT:__ ALP:__ Bili:__"),
cb_result("TSH", result_label="___ mIU/L"),
cb_result("Blood glucose", result_label="___ mmol/L"),
cb_result("ECG", result_label="Interpretation:"),
cb_result("Echocardiogram", result_label="LVEF:___ PASP:___"),
cb_result("Cervical spine X-ray (if indicated)", result_label="ADI:___ mm"),
cb_result("Chest X-ray (if indicated)", result_label="Findings:"),
cb_result("Abdominal USS / CT report reviewed", result_label="Bile duct diam:___"),
cb_result("Group & Screen / Blood type", result_label="Group:___"),
]),
Spacer(1, 3*mm),
]))
# ════════════════════════════════════════════════════════════════════
# SECTION 10 — FINAL SIGN-OFF
# ════════════════════════════════════════════════════════════════════
story.append(KeepTogether([
section_header("10. FINAL CLEARANCE & SIGN-OFF"),
section_table([
cb("Patient / guardian informed consent obtained and documented",
bold=True),
cb("All critical issues identified above have been addressed or escalated"),
cb("Surgical team briefed on DS-specific risks"),
cb("OT team alerted: difficult airway equipment, cervical in-line stabilisation protocol"),
cb("ICU / HDU bed reserved (if indicated)"),
cb("CPAP device at bedside for postoperative use"),
]),
]))
story.append(Spacer(1, 4*mm))
# ─── Sign-off bar ────────────────────────────────────────────────────────────
signoff_data = [[
Paragraph("Assessed by:", PATIENT_LABEL),
Paragraph("_____________________________", PATIENT_FIELD),
Paragraph("Designation:", PATIENT_LABEL),
Paragraph("___________________", PATIENT_FIELD),
Paragraph("Date / Time:", PATIENT_LABEL),
Paragraph("___________________", PATIENT_FIELD),
]]
so_table = Table(signoff_data, colWidths=[24*mm, 48*mm, 24*mm, 36*mm, 22*mm, 33*mm])
so_table.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "BOTTOM"),
("LEFTPADDING", (0,0), (-1,-1), 2),
("RIGHTPADDING", (0,0), (-1,-1), 2),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING",(0,0), (-1,-1), 4),
("BACKGROUND", (0,0), (-1,-1), TEAL_LIGHT),
("BOX", (0,0), (-1,-1), 0.5, TEAL),
]))
story.append(so_table)
story.append(Spacer(1, 4*mm))
# ─── FOOTER ─────────────────────────────────────────────────────────────────
story.append(HRFlowable(width=W, thickness=0.5, color=DIVIDER))
story.append(Spacer(1, 1.5*mm))
story.append(Paragraph(
"References: Miller's Anesthesia 10e · Morgan & Mikhail's Clinical Anesthesiology 7e · "
"Sabiston Textbook of Surgery · Malinzak EB, Can J Anaesth 2021 (PMID 34165727) · "
"Aboud MA et al., J Cardiothorac Vasc Anesth 2023 (PMID 36610856) | "
"This checklist is a clinical aid and does not replace individual clinical judgment.",
FOOTER_STYLE
))
# ─── BUILD ──────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace/ds-cholecystectomy-checklist && python generate_check…
~/ds-cholecystectomy-checklist/generate_checklist.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/ds-cholecystectomy-checklist/generate_checklist.py'
cd /home/daytona/workspace/ds-cholecystectomy-checklist && python generate_check…
ls -lh /home/daytona/workspace/ds-cholecystectomy-checklist/
DS Adult Cholecystectomy PreAnesthesia Checklist
PDF Document · PDF
| Section | Key Content |
|---|---|
| Patient Info Bar | Name, DOB, MRN, Surgeon, ASA class, Date |
| DS Alert Banner | Highlighted warning box at the top reminding of the 5 non-negotiable DS-specific risks |
| 1. Cardiovascular | CHD screen, ECG, ECHO, PASP, air-bubble protocol, cardiology consult trigger |
| 2. Airway | Default difficult airway approach, macroglossia, subglottic stenosis, ETT sizing, video laryngoscope + fiberoptic confirmed, Plan A & B documented |
| 3. Cervical Spine / AAI | Symptom screen, flexion-extension X-ray indication, ADI measurement field, in-line stabilisation plan - highlighted in dark red |
| 4. Respiratory / OSA | STOP-BANG, CPAP details, baseline SpO₂, postop monitoring level decision |
| 5. Endocrine / Metabolic | TSH with action note for hypothyroidism, glucose, electrolytes |
| 6. Neurological / Cognitive | Cognitive baseline, Alzheimer's/dementia, seizures/AEDs, guardian consent, PCA suitability |
| 7. GI / Aspiration | GERD, RSI indication, NPO confirmation, OG tube plan |
| 8. Anaesthetic Plan | Induction agent, NMB, reversal (sugammadex preferred), pneumoperitoneum pressure target, multimodal analgesia, VTE, antibiotics |
| 9. Investigations Summary | All required labs with write-in result fields |
| 10. Sign-off | Final clearance, team briefing, ICU reservation, countersignature line |
Search for DS-specific anesthesia complications literature and case reports
"Down syndrome"[MeSH Terms] AND anesthesia AND complications
"Down syndrome"[MeSH Terms] AND airway AND intubation
"Down syndrome" AND "atlantoaxial" AND anesthesia
"Down syndrome" AND "pulmonary hypertension" AND surgery
Down syndrome anesthesia complications case reports perioperative adverse events adults
PMID: 35156260
PMID: 30207016
PMID: 30262364
PMID: 36716257
PMID: 39503133
"Down syndrome" AND bradycardia AND anesthesia
PMID: 20736433
PMID: 40376277
PMID: 26749540
PMID: 17315425
PMID: 15835829
https://ndss.org/resources/surgery-down-syndrome
"Down syndrome" AND "postoperative" AND (delirium OR cognitive OR respiratory)
PMID: 34165727
| Evidence | Year | Key Contribution | PMID |
|---|---|---|---|
| Systematic Review (Tier 1) | 2018 | 16 cases iatrogenic tetraplegia; no spontaneous resolution | 30262364 |
| Scoping Review + Consensus (Circulation) | 2023 | Cardiovascular complications full spectrum, disparities in care | 36716257 |
| Narrative Review (adults) | 2021 | Perioperative care of DS adults; comorbidity progression with aging | 34165727 |
| Review (DS + CHD noncardiac) | 2023 | Systematic approach for DS + CHD undergoing noncardiac surgery | 36610856 |
| Review (ANS) | 2022 | Autonomic dysfunction as unifying mechanism for bradycardia, hypotonia, airway obstruction | 35156260 |
| Review + Case Report (AAI) | 2018 | The screening dilemma; 30% radiologic AAI, 1-2% symptomatic | 30207016 |
| Review (preop eval) | 2016 | Comprehensive DS-specific risk stratification framework | 26749540 |
| Cohort study (bradycardia) | 2010 | DS = independent risk factor for induction bradycardia with sevoflurane | 20736433 |
| Prospective (bradycardia mechanism) | 2024 | Sympathetic failure mechanism; 58% bradycardia incidence | 40376277 |
| Case Report (tracheal stenosis) | 2024 | Tracheal stenosis found at intubation; 3D CT planning for next GA | 39503133 |
| Review (opioids) | 2006 | Altered opioid receptor system in DS brain | 17315425 |
| Case Report (lap chole + DS) | 2007 | Lap chole + Morgagni hernia repair in 40-year-old DS man; successful | 17519846 |