mkdir -p /tmp/workspace/disease-guide && python3 << 'EOF'
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, HRFlowable, KeepTogether)
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.platypus import PageBreak
# ββ document ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc = SimpleDocTemplate(
"/tmp/workspace/disease-guide/Disease_Reference_Guide.pdf",
pagesize=A4,
topMargin=1.8*cm, bottomMargin=1.8*cm,
leftMargin=1.8*cm, rightMargin=1.8*cm,
title="Disease Reference Guide by Body System",
author="Orris Medical Reference",
)
# ββ colour palette βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
DARK_BLUE = colors.HexColor("#1a3a5c")
MED_BLUE = colors.HexColor("#2563A8")
LIGHT_BLUE = colors.HexColor("#dbeafe")
ACCENT = colors.HexColor("#e74c3c")
TABLE_HEAD = colors.HexColor("#1a3a5c")
ROW_ALT = colors.HexColor("#f0f6ff")
ROW_WHITE = colors.white
BORDER = colors.HexColor("#93c5fd")
# ββ styles βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
styles = getSampleStyleSheet()
title_style = ParagraphStyle("title", fontSize=26, leading=32,
textColor=DARK_BLUE, alignment=TA_CENTER, fontName="Helvetica-Bold",
spaceAfter=4)
subtitle_style = ParagraphStyle("subtitle", fontSize=12, leading=16,
textColor=MED_BLUE, alignment=TA_CENTER, fontName="Helvetica",
spaceAfter=2)
date_style = ParagraphStyle("date", fontSize=9, leading=12,
textColor=colors.grey, alignment=TA_CENTER, fontName="Helvetica")
section_style = ParagraphStyle("section", fontSize=13, leading=17,
textColor=colors.white, fontName="Helvetica-Bold",
leftIndent=6, spaceAfter=0, spaceBefore=0)
num_style = ParagraphStyle("num", fontSize=9, leading=12,
textColor=colors.HexColor("#374151"), fontName="Helvetica-Bold",
alignment=TA_CENTER)
disease_style = ParagraphStyle("disease", fontSize=9, leading=12,
textColor=colors.HexColor("#111827"), fontName="Helvetica",
leftIndent=4)
# ββ data βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
sections = [
("π« Cardiovascular System (CVS)", [
"Hypertension (High Blood Pressure)", "Coronary Artery Disease (CAD)",
"Myocardial Infarction (Heart Attack)", "Heart Failure (Congestive Heart Failure)",
"Atrial Fibrillation", "Deep Vein Thrombosis (DVT)", "Pulmonary Embolism",
"Peripheral Artery Disease (PAD)", "Aortic Aneurysm", "Rheumatic Heart Disease",
"Infective Endocarditis", "Pericarditis",
"Cardiomyopathy (Dilated, Hypertrophic, Restrictive)",
"Valvular Heart Disease (Mitral/Aortic stenosis, regurgitation)",
"Arrhythmias (VT, VF, SVT, Heart Block)",
]),
("π§ Neurological System (Neuro)", [
"Stroke (Ischemic & Hemorrhagic)", "Transient Ischemic Attack (TIA)",
"Epilepsy / Seizure Disorders", "Migraine", "Parkinson's Disease",
"Alzheimer's Disease", "Multiple Sclerosis (MS)",
"Meningitis (Bacterial, Viral, TB)", "Encephalitis",
"Brain Tumor (Glioma, Meningioma)", "Guillain-Barre Syndrome",
"Myasthenia Gravis", "Motor Neuron Disease (ALS)", "Peripheral Neuropathy",
"Subdural / Epidural Hematoma", "Bell's Palsy",
"Trigeminal Neuralgia", "Huntington's Disease",
]),
("π« Respiratory System (Resp)", [
"Asthma", "Chronic Obstructive Pulmonary Disease (COPD)",
"Pneumonia (Bacterial, Viral, Atypical)", "Tuberculosis (TB)", "Lung Cancer",
"Pleural Effusion", "Pneumothorax", "Pulmonary Fibrosis (ILD)",
"Bronchiectasis", "Sleep Apnea (OSA)", "Pulmonary Hypertension",
"Sarcoidosis", "Acute Respiratory Distress Syndrome (ARDS)",
"COVID-19 / Influenza", "Cystic Fibrosis",
]),
("π₯ Gastrointestinal System (GI)", [
"Gastroesophageal Reflux Disease (GERD)", "Peptic Ulcer Disease (PUD)",
"Irritable Bowel Syndrome (IBS)",
"Inflammatory Bowel Disease (Crohn's, Ulcerative Colitis)", "Liver Cirrhosis",
"Hepatitis A, B, C, D, E", "Colorectal Cancer", "Appendicitis",
"Pancreatitis (Acute & Chronic)", "Gallstones (Cholelithiasis) / Cholecystitis",
"Celiac Disease", "Gastrointestinal Bleeding (Upper & Lower)",
"Intestinal Obstruction", "Diverticular Disease",
"Non-Alcoholic Fatty Liver Disease (NAFLD)",
]),
("π©Ί Renal / Urinary System (Nephro/Uro)", [
"Chronic Kidney Disease (CKD)", "Acute Kidney Injury (AKI)",
"Nephrotic Syndrome", "Nephritic Syndrome / Glomerulonephritis",
"Urinary Tract Infection (UTI)", "Pyelonephritis",
"Renal Calculi (Kidney Stones)", "Polycystic Kidney Disease (PKD)",
"Renal Cell Carcinoma", "Benign Prostatic Hyperplasia (BPH)",
"Bladder Cancer", "Renal Tubular Acidosis", "Urinary Incontinence",
]),
("𦴠Musculoskeletal System (MSK)", [
"Osteoarthritis", "Rheumatoid Arthritis", "Osteoporosis",
"Gout & Pseudogout", "Systemic Lupus Erythematosus (SLE)",
"Ankylosing Spondylitis", "Psoriatic Arthritis", "Fibromyalgia",
"Osteomyelitis", "Fractures & Stress Fractures", "Paget's Disease of Bone",
"Septic Arthritis", "Polymyalgia Rheumatica", "Muscular Dystrophies",
]),
("π©Έ Endocrine System", [
"Diabetes Mellitus (Type 1 & Type 2)", "Hypothyroidism",
"Hyperthyroidism / Graves' Disease", "Cushing's Syndrome",
"Addison's Disease", "Acromegaly",
"Hyperparathyroidism / Hypoparathyroidism", "Pheochromocytoma",
"Diabetes Insipidus", "Polycystic Ovarian Syndrome (PCOS)",
"Metabolic Syndrome", "Thyroid Cancer",
]),
("π¬ Hematological System (Hemato)", [
"Iron Deficiency Anemia", "Vitamin B12 / Folate Deficiency Anemia",
"Sickle Cell Disease", "Thalassemia", "Hemophilia (A & B)",
"Leukemia (ALL, AML, CLL, CML)", "Lymphoma (Hodgkin's & Non-Hodgkin's)",
"Multiple Myeloma", "Polycythemia Vera",
"Idiopathic Thrombocytopenic Purpura (ITP)",
"Disseminated Intravascular Coagulation (DIC)",
"Deep Vein Thrombosis / Thrombophilia",
]),
("π§« Infectious Diseases", [
"Malaria", "Typhoid Fever", "HIV/AIDS", "Dengue Fever", "COVID-19",
"Influenza", "Sepsis / Septic Shock", "Leptospirosis", "Rabies",
"Tetanus", "Cholera", "Measles / Mumps / Rubella",
"Varicella (Chickenpox) / Herpes Zoster",
"Sexually Transmitted Infections (HIV, Syphilis, Gonorrhea, Chlamydia)",
]),
("𧬠Dermatological System (Derm)", [
"Psoriasis", "Eczema / Atopic Dermatitis", "Acne Vulgaris", "Rosacea",
"Melanoma / Skin Cancers (BCC, SCC)", "Urticaria (Hives)", "Cellulitis",
"Scabies", "Tinea (Fungal infections)", "Pemphigus / Bullous Pemphigoid",
"Vitiligo", "Stevens-Johnson Syndrome",
]),
("ποΈ Ophthalmology (Eye)", [
"Glaucoma", "Cataract", "Diabetic Retinopathy",
"Age-related Macular Degeneration (AMD)", "Conjunctivitis", "Uveitis",
"Retinal Detachment", "Amblyopia / Strabismus",
]),
("π ENT (Ear, Nose, Throat)", [
"Otitis Media (Ear Infection)", "Sinusitis", "Tonsillitis / Pharyngitis",
"Hearing Loss / Deafness", "Vertigo / Meniere's Disease", "Laryngitis",
"Head & Neck Cancers", "Allergic Rhinitis",
]),
("π§ Psychiatry / Mental Health", [
"Depression (Major Depressive Disorder)",
"Anxiety Disorders (GAD, Panic Disorder)", "Schizophrenia",
"Bipolar Disorder", "Obsessive-Compulsive Disorder (OCD)",
"Post-Traumatic Stress Disorder (PTSD)", "ADHD",
"Autism Spectrum Disorder", "Eating Disorders (Anorexia, Bulimia)",
"Substance Use Disorders", "Dementia (Alzheimer's, Vascular)",
]),
("π€° Obstetrics & Gynecology (OBG)", [
"Preeclampsia / Eclampsia", "Gestational Diabetes", "Ectopic Pregnancy",
"Endometriosis", "Uterine Fibroids (Leiomyoma)",
"Ovarian Cysts / Ovarian Cancer", "Cervical Cancer (HPV-related)",
"Breast Cancer", "Menstrual Disorders (Dysmenorrhea, Amenorrhea)",
"Pelvic Inflammatory Disease (PID)",
]),
("πΆ Pediatrics", [
"Neonatal Jaundice", "Congenital Heart Defects (VSD, ASD, PDA)",
"Kawasaki Disease", "Febrile Seizures", "Intussusception",
"RSV / Bronchiolitis", "Pediatric Asthma", "Failure to Thrive",
"Juvenile Idiopathic Arthritis (JIA)", "Neural Tube Defects (Spina Bifida)",
]),
]
# ββ page header/footer callback βββββββββββββββββββββββββββββββββββββββββββββ
def on_page(canvas, doc):
canvas.saveState()
w, h = A4
# footer
canvas.setFont("Helvetica", 7.5)
canvas.setFillColor(colors.grey)
canvas.drawString(1.8*cm, 1.1*cm, "Orris Medical Reference | Disease Reference Guide by Body System")
canvas.drawRightString(w - 1.8*cm, 1.1*cm, f"Page {doc.page}")
# top rule
canvas.setStrokeColor(MED_BLUE)
canvas.setLineWidth(0.8)
canvas.line(1.8*cm, h - 1.3*cm, w - 1.8*cm, h - 1.3*cm)
canvas.restoreState()
# ββ build story ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story = []
# Cover block
story.append(Spacer(1, 1.2*cm))
story.append(Paragraph("Disease Reference Guide", title_style))
story.append(Paragraph("Organized by Body System", subtitle_style))
story.append(Paragraph("Orris Medical Reference | July 2026", date_style))
story.append(Spacer(1, 0.3*cm))
story.append(HRFlowable(width="100%", thickness=2, color=MED_BLUE, spaceAfter=4))
# intro sentence
intro_style = ParagraphStyle("intro", fontSize=9, leading=13,
textColor=colors.HexColor("#374151"), fontName="Helvetica",
alignment=TA_CENTER, spaceAfter=10)
story.append(Paragraph(
"A quick-reference list of commonly encountered diseases across 15 clinical specialties, "
"suitable for medical students, clinicians, and exam preparation (MBBS / USMLE / NCLEX).",
intro_style))
story.append(Spacer(1, 0.15*cm))
# ββ section tables βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
COL_W = [1.0*cm, 14.7*cm]
for sec_title, diseases in sections:
# section header row
header_para = Paragraph(sec_title, section_style)
header_table = Table([[header_para]], colWidths=[15.7*cm])
header_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), TABLE_HEAD),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("ROWBACKGROUNDS",(0,0), (-1,-1), [TABLE_HEAD]),
]))
# disease rows
rows = []
for i, d in enumerate(diseases):
bg = ROW_ALT if i % 2 == 0 else ROW_WHITE
rows.append((
Paragraph(str(i+1), num_style),
Paragraph(d, disease_style),
bg
))
data = [[Paragraph("#", ParagraphStyle("hdr_num", fontSize=9,
fontName="Helvetica-Bold", textColor=colors.white,
alignment=TA_CENTER)),
Paragraph("Disease / Condition", ParagraphStyle("hdr_dis", fontSize=9,
fontName="Helvetica-Bold", textColor=colors.white,
leftIndent=4))]]
row_bgs = [MED_BLUE]
for num_p, dis_p, bg in rows:
data.append([num_p, dis_p])
row_bgs.append(bg)
tbl = Table(data, colWidths=COL_W, repeatRows=1)
ts = TableStyle([
("BACKGROUND", (0, 0), (-1, 0), MED_BLUE),
("GRID", (0, 0), (-1, -1), 0.3, BORDER),
("TOPPADDING", (0, 0), (-1, -1), 3),
("BOTTOMPADDING", (0, 0), (-1, -1), 3),
("LEFTPADDING", (0, 0), (-1, -1), 4),
("RIGHTPADDING", (0, 0), (-1, -1), 4),
("VALIGN", (0, 0), (-1, -1), "MIDDLE"),
])
for i, bg in enumerate(row_bgs):
if i > 0:
ts.add("BACKGROUND", (0, i), (-1, i), bg)
tbl.setStyle(ts)
story.append(KeepTogether([header_table, tbl]))
story.append(Spacer(1, 0.35*cm))
# ββ build ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc.build(story, onFirstPage=on_page, onLaterPages=on_page)
print("PDF created successfully!")
EOF
show command