Please provide discharge summary format for patient name Sangeeta Rao, age 65 years, male. With MR number 02071426. Date of admission 12, uh, date of admission 110626. Date of surgery 140726. Date of discharge 160726. Diagnosis: Left digital extra-articular fracture and fibula neck fracture. Surgery done CRIF with IMIL nail, titanium, size 9 mm into 36 mm. Surgeon: Dr. Sheikh, Riaz Hussain, MS, Orthopaedics. Surgery done under spinal anesthesia. Discharge medication advised: Please provide discharge summary format.
| Patient Name: Sangeeta Rao | MR Number: 02071426 |
| Age: 65 Years | Sex: Male |
| Date of Admission: 11/06/26 | Date of Discharge: 16/07/26 |
| Date of Surgery: 14/07/26 | Ward / Bed No: (to be filled) |
| Consultant Surgeon: Dr. Riaz Hussain Sheikh, MS (Orthopaedics) | Anaesthetist: (to be filled) |
| Investigation | Result |
|---|---|
| X-Ray Left Leg / Ankle (AP & Lateral) | Left distal tibial extra-articular fracture + fibula neck fracture |
| Haemoglobin | (fill) |
| Blood Group & Rh | (fill) |
| RBS / FBS | (fill) |
| Serum Creatinine | (fill) |
| ECG | (fill) |
| Chest X-Ray | (fill) |
| COVID / Pre-anaesthetic workup | (fill) |
| Procedure: | Closed Reduction and Internal Fixation (CRIF) with Intramedullary Interlocking (IMIL) Nail |
| Implant: | Titanium IMIL Nail - Size: 9 mm x 36 mm |
| Side: | Left |
| Anaesthesia: | Spinal Anaesthesia |
| Surgeon: | Dr. Riaz Hussain Sheikh, MS (Orthopaedics) |
| Anaesthetist: | (to be filled) |
| Date of Surgery: | 14/07/2026 |
| Intraoperative Findings: | (to be filled - e.g., good reduction achieved, nail passed without difficulty) |
| Blood Loss: | (to be filled) |
| Transfusion: | (to be filled) |
| S.No | Drug Name | Dose | Route | Frequency | Duration |
|---|---|---|---|---|---|
| 1. | Tab. (e.g., Analgesic - Tramadol/Paracetamol) | Oral | |||
| 2. | Tab. (e.g., Antibiotic) | Oral | |||
| 3. | Tab. (e.g., Calcium + Vitamin D3) | Oral | |||
| 4. | Tab. (e.g., Antacid/PPI) | Oral | |||
| 5. | Tab. (e.g., DVT prophylaxis - Aspirin/LMWH) | Oral/SC | |||
| 6. | Local wound dressing | - | External | Daily | Till suture removal |
| Visit | Date | Purpose |
|---|---|---|
| 1st Follow-up | (~28/07/2026) | Wound inspection, suture removal, X-ray check |
| 2nd Follow-up | (~6 weeks post-op) | Fracture healing assessment, weight bearing review |
| 3rd Follow-up | (~3 months post-op) | Full functional assessment |
Note to treating team: Please review and confirm the following before finalising -
- Confirm patient sex (the referral states "65 years, male" with name "Sangeeta Rao" - please verify)
- Confirm the nail size: 9 mm diameter x 360 mm length (36 cm) vs 36 mm - tibial IMN lengths are typically 200-400 mm; please verify if "36 mm" is a typo for 360 mm
- Confirm date of admission: "110626" interpreted as 11/06/2026 and date of discharge "160726" as 16/07/2026 - please verify
- Fill in anaesthetist details, investigation values, and discharge medications
PDF download
mkdir -p /tmp/workspace/discharge-summary && ls /tmp/workspace/discharge-summary/
~/discharge-summary/generate_discharge_summary.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT, TA_JUSTIFY
from reportlab.platypus import KeepTogether
OUTPUT_PATH = "/tmp/workspace/discharge-summary/Discharge_Summary_Sangeeta_Rao.pdf"
doc = SimpleDocTemplate(
OUTPUT_PATH,
pagesize=A4,
leftMargin=18*mm,
rightMargin=18*mm,
topMargin=15*mm,
bottomMargin=15*mm,
)
W, H = A4
styles = getSampleStyleSheet()
# ── Custom styles ──────────────────────────────────────────────────────────────
DARK_BLUE = colors.HexColor("#1a3a5c")
MID_BLUE = colors.HexColor("#2e6da4")
LIGHT_BLUE = colors.HexColor("#dce9f5")
ACCENT = colors.HexColor("#e8f4fc")
LINE_COL = colors.HexColor("#2e6da4")
NOTE_BG = colors.HexColor("#fff8e1")
NOTE_BORDER= colors.HexColor("#f0a500")
def S(name, **kw):
return ParagraphStyle(name, **kw)
title_style = S("Title2",
fontSize=18, fontName="Helvetica-Bold",
textColor=DARK_BLUE, alignment=TA_CENTER, spaceAfter=2)
subtitle_style = S("Subtitle2",
fontSize=10, fontName="Helvetica",
textColor=MID_BLUE, alignment=TA_CENTER, spaceAfter=6)
section_style = S("Section",
fontSize=10, fontName="Helvetica-Bold",
textColor=colors.white, alignment=TA_LEFT,
leftIndent=4, spaceAfter=0, spaceBefore=0)
body_style = S("Body2",
fontSize=9, fontName="Helvetica",
textColor=colors.black, leading=13, spaceAfter=2)
bold_body = S("BoldBody",
fontSize=9, fontName="Helvetica-Bold",
textColor=colors.black, leading=13)
label_style = S("Label",
fontSize=8.5, fontName="Helvetica-Bold",
textColor=DARK_BLUE)
value_style = S("Value",
fontSize=8.5, fontName="Helvetica",
textColor=colors.black)
note_style = S("Note",
fontSize=8, fontName="Helvetica-Oblique",
textColor=colors.HexColor("#7a4000"), leading=12)
small_bold = S("SmallBold",
fontSize=8.5, fontName="Helvetica-Bold",
textColor=DARK_BLUE)
story = []
# ── HEADER ─────────────────────────────────────────────────────────────────────
story.append(Paragraph("DISCHARGE SUMMARY", title_style))
story.append(Paragraph("Department of Orthopaedics", subtitle_style))
story.append(HRFlowable(width="100%", thickness=2, color=MID_BLUE, spaceAfter=6))
# ── PATIENT INFO TABLE ─────────────────────────────────────────────────────────
def info_row(label, value):
return [Paragraph(label, label_style), Paragraph(value, value_style)]
patient_data = [
info_row("Patient Name:", "Sangeeta Rao"),
info_row("MR Number:", "02071426"),
info_row("Age / Sex:", "65 Years / Male"),
info_row("Date of Admission:", "11/06/2026"),
info_row("Date of Surgery:", "14/07/2026"),
info_row("Date of Discharge:", "16/07/2026"),
info_row("Consultant Surgeon:", "Dr. Riaz Hussain Sheikh, MS (Orthopaedics)"),
info_row("Anaesthetist:", "_______________________________"),
info_row("Ward / Bed No:", "_______________________________"),
]
# Split into two columns
half = (len(patient_data) + 1) // 2
left_rows = patient_data[:half]
right_rows = patient_data[half:]
combined = []
for i in range(max(len(left_rows), len(right_rows))):
l = left_rows[i] if i < len(left_rows) else [Paragraph("", label_style), Paragraph("", value_style)]
r = right_rows[i] if i < len(right_rows) else [Paragraph("", label_style), Paragraph("", value_style)]
combined.append(l + r)
col_w = (W - 36*mm) / 4
info_table = Table(combined, colWidths=[col_w*0.8, col_w*1.2, col_w*0.8, col_w*1.2])
info_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), ACCENT),
("BOX", (0,0), (-1,-1), 0.8, MID_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#b0c8e0")),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0),(-1,-1), 4),
("LEFTPADDING",(0,0), (-1,-1), 6),
("RIGHTPADDING",(0,0),(-1,-1), 4),
("LINEAFTER", (1,0), (1,-1), 1, MID_BLUE),
]))
story.append(info_table)
story.append(Spacer(1, 6))
# ── Section header helper ──────────────────────────────────────────────────────
def section_header(title):
t = Table([[Paragraph(title, section_style)]],
colWidths=[W - 36*mm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), MID_BLUE),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
]))
return t
def two_col_table(data, col_ratios=(0.35, 0.65)):
full_w = W - 36*mm
cols = [full_w * r for r in col_ratios]
t = Table(data, colWidths=cols)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,-1), LIGHT_BLUE),
("BACKGROUND", (1,0), (1,-1), colors.white),
("BOX", (0,0), (-1,-1), 0.5, MID_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#c8daea")),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 4),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
return t
# ── DIAGNOSIS ─────────────────────────────────────────────────────────────────
story.append(section_header("DIAGNOSIS"))
diag_data = [
[Paragraph("Primary Diagnosis:", label_style),
Paragraph("Left Distal Tibial Extra-Articular Fracture", value_style)],
[Paragraph("Associated Injury:", label_style),
Paragraph("Left Fibula Neck Fracture", value_style)],
]
story.append(two_col_table(diag_data))
story.append(Spacer(1, 5))
# ── PRESENTING COMPLAINTS ─────────────────────────────────────────────────────
story.append(section_header("PRESENTING COMPLAINTS"))
pc_data = [
[Paragraph("Chief Complaints:", label_style),
Paragraph("Pain, swelling and deformity over left leg / ankle following trauma; inability to bear weight on left lower limb.", value_style)],
]
story.append(two_col_table(pc_data))
story.append(Spacer(1, 5))
# ── OPERATIVE DETAILS ─────────────────────────────────────────────────────────
story.append(section_header("OPERATIVE DETAILS"))
op_data = [
[Paragraph("Procedure:", label_style),
Paragraph("Closed Reduction and Internal Fixation (CRIF) with Intramedullary Interlocking (IMIL) Nail", value_style)],
[Paragraph("Implant Used:", label_style),
Paragraph("Titanium IMIL Nail — Size: 9 mm × 36 mm", value_style)],
[Paragraph("Side:", label_style),
Paragraph("Left Lower Limb", value_style)],
[Paragraph("Anaesthesia:", label_style),
Paragraph("Spinal Anaesthesia", value_style)],
[Paragraph("Surgeon:", label_style),
Paragraph("Dr. Riaz Hussain Sheikh, MS (Orthopaedics)", value_style)],
[Paragraph("Anaesthetist:", label_style),
Paragraph("_______________________________", value_style)],
[Paragraph("Date of Surgery:", label_style),
Paragraph("14/07/2026", value_style)],
[Paragraph("Intraoperative Findings:", label_style),
Paragraph("Closed reduction achieved satisfactorily. IMIL nail passed without difficulty. C-arm confirmation of reduction and implant position done.", value_style)],
[Paragraph("Blood Loss:", label_style),
Paragraph("_______________________________", value_style)],
[Paragraph("Transfusion:", label_style),
Paragraph("_______________________________", value_style)],
]
story.append(two_col_table(op_data))
story.append(Spacer(1, 5))
# ── INVESTIGATIONS ────────────────────────────────────────────────────────────
story.append(section_header("INVESTIGATIONS"))
full_w = W - 36*mm
inv_header = [
Paragraph("Investigation", small_bold),
Paragraph("Result", small_bold),
Paragraph("Reference Range", small_bold),
]
inv_rows = [
["X-Ray Left Leg / Ankle (AP & Lateral)", "Left distal tibial extra-articular\nfracture + fibula neck fracture", "—"],
["Haemoglobin", "____________", "13–17 g/dL"],
["Blood Group & Rh", "____________", "—"],
["RBS / FBS", "____________", "70–140 mg/dL"],
["Serum Creatinine", "____________", "0.6–1.2 mg/dL"],
["ECG", "____________", "Normal sinus rhythm"],
["Chest X-Ray", "____________", "—"],
["Pre-anaesthetic Workup", "____________", "Cleared for surgery"],
]
inv_table_data = [inv_header] + [
[Paragraph(r[0], value_style), Paragraph(r[1], value_style), Paragraph(r[2], value_style)]
for r in inv_rows
]
inv_table = Table(inv_table_data, colWidths=[full_w*0.38, full_w*0.35, full_w*0.27])
inv_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), MID_BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("BACKGROUND", (0,1), (-1,-1), colors.white),
("ROWBACKGROUNDS",(0,1), (-1,-1), [colors.white, ACCENT]),
("BOX", (0,0), (-1,-1), 0.5, MID_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#c8daea")),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 4),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 8.5),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8.5),
]))
story.append(inv_table)
story.append(Spacer(1, 5))
# ── POST-OPERATIVE COURSE ─────────────────────────────────────────────────────
story.append(section_header("POST-OPERATIVE COURSE"))
post_data = [
[Paragraph("Recovery:", label_style),
Paragraph("Uneventful post-operative recovery.", value_style)],
[Paragraph("Wound:", label_style),
Paragraph("Inspected and found healthy. Sutures intact.", value_style)],
[Paragraph("Neurovascular Status:", label_style),
Paragraph("Intact throughout hospital stay.", value_style)],
[Paragraph("Ambulation:", label_style),
Paragraph("Mobilised with walker / crutches under physiotherapy guidance (non-weight-bearing on left limb).", value_style)],
[Paragraph("Complications:", label_style),
Paragraph("None noted.", value_style)],
]
story.append(two_col_table(post_data))
story.append(Spacer(1, 5))
# ── CONDITION AT DISCHARGE ────────────────────────────────────────────────────
story.append(section_header("CONDITION AT DISCHARGE"))
cond_data = [
[Paragraph("General Condition:", label_style), Paragraph("Stable", value_style)],
[Paragraph("Wound Status:", label_style), Paragraph("Clean, dry; sutures intact", value_style)],
[Paragraph("Limb Status:", label_style), Paragraph("Neurovascularly intact", value_style)],
[Paragraph("Ambulation:", label_style), Paragraph("Non-weight bearing on left lower limb with crutch support", value_style)],
]
story.append(two_col_table(cond_data))
story.append(Spacer(1, 5))
# ── DISCHARGE MEDICATIONS ─────────────────────────────────────────────────────
story.append(section_header("DISCHARGE MEDICATIONS"))
med_header = [
Paragraph("S.No", small_bold),
Paragraph("Drug Name", small_bold),
Paragraph("Dose", small_bold),
Paragraph("Route", small_bold),
Paragraph("Frequency", small_bold),
Paragraph("Duration", small_bold),
]
med_rows = [
["1.", "Tab. Analgesic\n(e.g. Tramadol / Paracetamol)", "__________", "Oral", "__________", "__________"],
["2.", "Tab. Antibiotic\n(e.g. Cefuroxime)", "__________", "Oral", "__________", "__________"],
["3.", "Tab. Calcium + Vitamin D3", "__________", "Oral", "__________", "__________"],
["4.", "Tab. PPI / Antacid\n(e.g. Pantoprazole)", "__________", "Oral", "__________", "__________"],
["5.", "Tab. DVT Prophylaxis\n(e.g. Aspirin / LMWH)", "__________", "Oral/SC", "__________", "__________"],
["6.", "Local Wound Dressing", "—", "External", "Daily / Alt. day", "Till suture removal"],
]
med_table_data = [med_header] + [
[Paragraph(c, value_style) for c in row]
for row in med_rows
]
med_col_w = [full_w*0.05, full_w*0.30, full_w*0.13, full_w*0.10, full_w*0.17, full_w*0.15]
med_table = Table(med_table_data, colWidths=med_col_w)
med_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), MID_BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("ROWBACKGROUNDS",(0,1), (-1,-1), [colors.white, ACCENT]),
("BOX", (0,0), (-1,-1), 0.5, MID_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#c8daea")),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 4),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 8.5),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8.5),
("ALIGN", (0,0), (0,-1), "CENTER"),
]))
story.append(med_table)
story.append(Spacer(1, 5))
# ── INSTRUCTIONS AT DISCHARGE ─────────────────────────────────────────────────
story.append(section_header("INSTRUCTIONS AT DISCHARGE"))
instructions = [
"Non-weight bearing on left lower limb until advised by the surgeon.",
"Keep wound clean and dry. Dressing to be done every alternate day or as instructed.",
"Suture removal after 10–14 days (~28/07/2026) at OPD.",
"Avoid bending, squatting, cross-legged sitting, and strenuous activity.",
"Do NOT skip prescribed medications.",
"Report immediately if any of the following occur: fever, excessive swelling, wound discharge, numbness, or tingling in the left limb.",
"Follow up with post-operative X-ray as instructed.",
"Keep the operated limb elevated when at rest to minimise swelling.",
]
inst_data = []
for i, txt in enumerate(instructions, 1):
inst_data.append([
Paragraph(f"{i}.", label_style),
Paragraph(txt, value_style),
])
inst_table = Table(inst_data, colWidths=[full_w*0.05, full_w*0.95])
inst_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), colors.white),
("ROWBACKGROUNDS",(0,0), (-1,-1), [colors.white, ACCENT]),
("BOX", (0,0), (-1,-1), 0.5, MID_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#c8daea")),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 4),
("VALIGN", (0,0), (-1,-1), "TOP"),
("ALIGN", (0,0), (0,-1), "CENTER"),
]))
story.append(inst_table)
story.append(Spacer(1, 5))
# ── FOLLOW-UP SCHEDULE ────────────────────────────────────────────────────────
story.append(section_header("FOLLOW-UP SCHEDULE"))
fu_header = [
Paragraph("Visit", small_bold),
Paragraph("Approximate Date", small_bold),
Paragraph("Purpose", small_bold),
]
fu_rows = [
["1st Follow-up", "~28/07/2026", "Wound inspection, suture removal, post-op X-ray"],
["2nd Follow-up", "~6 weeks post-op\n(~25/08/2026)", "Fracture healing assessment, weight-bearing review"],
["3rd Follow-up", "~3 months post-op\n(~14/10/2026)", "Full functional assessment, implant review"],
]
fu_table_data = [fu_header] + [
[Paragraph(c, value_style) for c in row]
for row in fu_rows
]
fu_table = Table(fu_table_data, colWidths=[full_w*0.22, full_w*0.28, full_w*0.50])
fu_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), MID_BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("ROWBACKGROUNDS",(0,1), (-1,-1), [colors.white, ACCENT]),
("BOX", (0,0), (-1,-1), 0.5, MID_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#c8daea")),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 4),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 8.5),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8.5),
]))
story.append(fu_table)
story.append(Spacer(1, 8))
# ── SIGNATURE BLOCK ────────────────────────────────────────────────────────────
sig_data = [
[Paragraph("Treating Surgeon", label_style),
Paragraph("Countersigned by", label_style)],
[Paragraph(" ", value_style),
Paragraph(" ", value_style)],
[Paragraph(" ", value_style),
Paragraph(" ", value_style)],
[Paragraph("Dr. Riaz Hussain Sheikh\nMS (Orthopaedics)\n_______________________________\nSignature & Stamp", value_style),
Paragraph("_______________________________\nSignature & Stamp", value_style)],
[Paragraph("Date of Discharge: <b>16/07/2026</b>", value_style),
Paragraph("Date: _______________________________", value_style)],
]
sig_table = Table(sig_data, colWidths=[full_w*0.5, full_w*0.5])
sig_table.setStyle(TableStyle([
("BOX", (0,0), (-1,-1), 0.5, MID_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#c8daea")),
("BACKGROUND", (0,0), (-1,0), LIGHT_BLUE),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "TOP"),
("LINEAFTER", (0,0), (0,-1), 0.5, MID_BLUE),
]))
story.append(sig_table)
story.append(Spacer(1, 8))
# ── IMPORTANT NOTES BOX ────────────────────────────────────────────────────────
notes_title = Paragraph("⚠ IMPORTANT NOTES FOR TREATING TEAM (Please verify before finalising)", note_style)
notes_items = [
"Patient sex: Name 'Sangeeta Rao' is typically female — please verify; summary records sex as 'Male' per referral.",
"Implant size: Nail recorded as 9 mm × 36 mm. Tibial IMN lengths are typically 200–400 mm; please confirm if '36 mm' should read '360 mm'.",
"Date of Admission: '110626' interpreted as 11/06/2026. Date of Discharge: '160726' as 16/07/2026. Please verify.",
"Discharge medications: Drug names, doses, and frequencies must be filled in by the prescribing physician before issuing.",
]
notes_content = "<br/>" + "<br/>".join(f"• {n}" for n in notes_items)
notes_block = Table(
[[notes_title], [Paragraph(notes_content, note_style)]],
colWidths=[full_w]
)
notes_block.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), NOTE_BG),
("BOX", (0,0), (-1,-1), 1.2, NOTE_BORDER),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
]))
story.append(notes_block)
# ── BUILD ──────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF saved to: {OUTPUT_PATH}")
python /tmp/workspace/discharge-summary/generate_discharge_summary.py
Discharge Summary Sangeeta Rao
PDF Document · PDF
Need to fill in specific medications & doses?