male patient 44 lumber drd kr rhi h best medicine bta jo efftive ho aur drd gayab kr de patient
best medicine for lumbar back pain male evidence based treatment 2024
"low back pain" AND treatment AND NSAIDs
| Dawa | Dose | Kab lein |
|---|---|---|
| Ibuprofen (Brufen) | 400-600 mg | Khane ke baad, din mein 3 baar |
| Naproxen (Naprosyn) | 250-500 mg | Din mein 2 baar |
| Diclofenac (Voveran) | 50 mg | Din mein 2-3 baar |
| Etoricoxib (Nucoxia 60) | 60-90 mg | Din mein 1 baar (stomach-friendly) |
Zaroori baat: NSAIDs khali pet mat lein. PPI (Omeprazole 20 mg) sath mein den taaki stomach protect ho.
| Dawa | Dose | Note |
|---|---|---|
| Thiocolchicoside (Muscoril) | 4 mg | Din mein 2 baar, 5-7 din |
| Cyclobenzaprine | 5-10 mg | Raat ko (neend aati hai) |
| Methocarbamol (Robaxin) | 750 mg | Din mein 3-4 baar |
| Chlorzoxazone (Muscol) | 250-500 mg | Din mein 3 baar |
NSAID + Muscle Relaxant combo akut (acute) pain mein bahut effective hota hai.
| Dawa | Dose |
|---|---|
| Pregabalin (Lyrica) | 75-150 mg raat ko ya din mein 2 baar |
| Gabapentin | 300 mg din mein 3 baar |
| Duloxetine | 30-60 mg din mein 1 baar (chronic pain mein bhi helpful) |
Disclaimer: Yeh medical information hai. Kisi bhi dawa shuru karne se pehle apne doctor se milein, khaas kar agar patient ko diabetes, hypertension, ya kidney disease ho. Proper examination aur zaroorat par MRI/X-ray ke baad hi final treatment decide hoti hai.
Ek kidney kharab h patient ki aur high bp rhti telmisartn 40 mg chlti h
"low back pain" AND "chronic kidney disease" AND analgesic
lumbar back pain treatment single kidney CKD hypertension safe analgesic avoid NSAIDs 2024
https://pmc.ncbi.nlm.nih.gov/articles/PMC7753951
| Dawa | Kyun Nahi |
|---|---|
| Ibuprofen, Diclofenac, Naproxen, Etoricoxib (koi bhi NSAID) | Kidney blood flow kam karti hain - sirf ek kidney hai, iski function aur kharab ho sakti hai. BP bhi badhati hain jo Telmisartan ki effect ko counter karti hai |
| Aspirin (analgesic dose mein) | NSAID jaise kaam karta hai |
| Morphine, Codeine, Hydrocodone | Kidney mein accumulate hoti hain - CKD mein contraindicated |
| Ketorolac (Toradol) | Sabse nephrotoxic NSAID - strictly avoid |
Kidney disease mein sabse safe analgesic - Kidney Care UK guidelines clearly recommend karti hain.
| Dawa | Dose | Frequency |
|---|---|---|
| Paracetamol (Crocin/Calpol/Tylenol) | 500 mg - 1 g | Har 6 ghante, max 4g/din |
| Dawa | Dose | Safety |
|---|---|---|
| Thiocolchicoside (Muscoril 4 mg) | 4 mg, din mein 2 baar | Generally safe, short course |
| Tizanidine (Sirdalud 2 mg) | 2-4 mg raat ko | Dose reduce karna parega if eGFR low hai |
Muscle relaxant + Paracetamol combination is patient mein ek reasonable starting point hai.
| Dawa | Dose | Kidney Adjustment |
|---|---|---|
| Pregabalin (Lyrica) | 25-50 mg raat ko (LOW dose se shuru) | Dose ZAROOR kam karni hogi - kidney se nikalti hai, accumulate ho sakti hai |
| Duloxetine | 30 mg din mein 1 baar | Liver se nikalta hai - kidney par zyada load nahi, relatively safer |
Pregabalin cautiously use karein - eGFR check karwaen pehle.
| Product | Use |
|---|---|
| Diclofenac gel (Voveran gel - sirf oopar lagaein, khaaein nahi) | Systemic absorption bahut kam - relatively safe topically |
| Capsaicin cream | Nerve pain mein helpful |
| Menthol/Camphor spray | Temporary relief |
Topical NSAIDs ka systemic absorption oral se bahut kam hota hai - evidence supports cautious topical use even in kidney patients.
| Dawa | Interaction |
|---|---|
| NSAIDs | Telmisartan ki BP-lowering effect kam karti hain + kidney double damage |
| Paracetamol | β Koi interaction nahi |
| Pregabalin | β Safe with telmisartan |
| Duloxetine | β Safe, BP par minor effect only |
| Muscle relaxants | β Generally safe |
STEP 1 (Abhi shuru karein):
- Paracetamol 500 mg-1g har 6 ghante (max 4g/din)
- Thiocolchicoside 4 mg din mein 2 baar (5-7 din)
- Hot compress locally
- Light walking - bed rest avoid
STEP 2 (Agar 5-7 din mein aaram na ho):
- Nephrologist ya physician se consult karein
- eGFR check karwaen
- Agar nerve pain ho to low-dose Duloxetine 30 mg ya
Pregabalin (dose kidney function ke hisaab se)
STEP 3 (Zaroor karwaen):
- Lumbar MRI (disc herniation rule out)
- Serum Creatinine, eGFR, Urea
- BP monitoring
- Physiotherapy referral
Bottom line: Is patient mein Paracetamol + Muscle Relaxant + Physiotherapy hi safest combination hai. NSAIDs strictly avoid karein - ek kidney aur BP ki dawa dono milakar NSAID use ko extremely risky banate hain. Nephologist se zaroor milwaen ek baar eGFR jaan'ne ke liye taaki aur dawaiyan safely dose ki ja sakein.
Flexon mr medicine
Flexon MR tablet composition ibuprofen paracetamol muscle relaxant India
| Ingredient | Amount | Role |
|---|---|---|
| Ibuprofen | 400 mg | NSAID - Pain & inflammation |
| Paracetamol | 325 mg | Analgesic - Pain & fever |
| Chlorzoxazone | 250 mg | Muscle relaxant - Spasm relief |
β EK KIDNEY hai
+ Ibuprofen kidney ki blood supply kam karta hai
= Remaining kidney bhi damage ho sakti hai
β HIGH BP hai + Telmisartan chal rahi hai
+ Ibuprofen BP badhata hai
= Telmisartan ki effect cancel ho jaati hai
= BP aur uncontrolled ho sakta hai
β NSAID + Telmisartan (ARB) combination
= "Triple Whammy" effect
= Acute Kidney Injury (AKI) ka serious risk
"Triple Whammy" - Medical literature mein yeh term use hoti hai jab NSAID + ACE inhibitor/ARB + diuretic sath liye jaein. Is patient mein Telmisartan (ARB) already chal rahi hai - NSAID add karna bahut dangerous hai.
| Safe Alternative | Composition | Kidney Safe? |
|---|---|---|
| Combiflam Plus β | Ibuprofen + Paracetamol | Nahi - NSAID hai |
| Paracetamol 500 mg β | Sirf Paracetamol | Haan |
| Dolowin Plus β | Nimesulide based | Nahi |
| Paracetamol + Thiocolchicoside (alag alag) β | Safe combo | Haan |
Paracetamol 500 mg-1g -- har 6 ghante
+
Thiocolchicoside 4 mg -- din mein 2 baar
(Muscoril / Myoril brand)
Summary: Flexon MR = Ibuprofen (NSAID) + Paracetamol + Muscle relaxant. Is patient ko sirf Paracetamol + Thiocolchicoside alag alag dein. Flexon MR strictly avoid karein.
Create a drug safety guide PDF for single-kidney patients with hypertension
mkdir -p /tmp/workspace/drug-safety-guide && ls /tmp/workspace/
~/drug-safety-guide/create_pdf.py
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, TA_JUSTIFY
from reportlab.platypus import Flowable
from datetime import date
OUTPUT = "/tmp/workspace/drug-safety-guide/Drug_Safety_Guide_Single_Kidney_Hypertension.pdf"
# ββ Color palette ββββββββββββββββββββββββββββββββββββββββββββββ
RED = colors.HexColor("#C0392B")
DARK_RED = colors.HexColor("#922B21")
ORANGE = colors.HexColor("#E67E22")
GREEN = colors.HexColor("#1E8449")
DARK_GREEN= colors.HexColor("#145A32")
BLUE = colors.HexColor("#1A5276")
LIGHT_BLUE= colors.HexColor("#D6EAF8")
LIGHT_RED = colors.HexColor("#FADBD8")
LIGHT_GREEN=colors.HexColor("#D5F5E3")
LIGHT_ORANGE=colors.HexColor("#FDEBD0")
YELLOW_BG = colors.HexColor("#FEF9E7")
GREY_BG = colors.HexColor("#F2F3F4")
DARK_GREY = colors.HexColor("#2C3E50")
MID_GREY = colors.HexColor("#7F8C8D")
WHITE = colors.white
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=1.8*cm, rightMargin=1.8*cm,
topMargin=1.5*cm, bottomMargin=1.8*cm,
title="Drug Safety Guide β Single Kidney & Hypertension",
author="Orris Medical AI",
subject="Pharmacology Safety Reference"
)
W = A4[0] - 3.6*cm # usable width
styles = getSampleStyleSheet()
# ββ Custom styles ββββββββββββββββββββββββββββββββββββββββββββββ
def S(name, **kw):
return ParagraphStyle(name, **kw)
cover_title = S("CoverTitle",
fontName="Helvetica-Bold", fontSize=24,
textColor=WHITE, alignment=TA_CENTER, spaceAfter=6)
cover_sub = S("CoverSub",
fontName="Helvetica", fontSize=13,
textColor=colors.HexColor("#D6EAF8"), alignment=TA_CENTER, spaceAfter=4)
cover_note = S("CoverNote",
fontName="Helvetica-Oblique", fontSize=10,
textColor=colors.HexColor("#AED6F1"), alignment=TA_CENTER)
section_h = S("SectionH",
fontName="Helvetica-Bold", fontSize=13,
textColor=WHITE, alignment=TA_LEFT,
spaceBefore=14, spaceAfter=6,
leftIndent=0, borderPad=6)
body = S("Body",
fontName="Helvetica", fontSize=9.5,
textColor=DARK_GREY, leading=14,
spaceAfter=4, alignment=TA_JUSTIFY)
bold_body = S("BoldBody",
fontName="Helvetica-Bold", fontSize=9.5,
textColor=DARK_GREY, leading=14, spaceAfter=3)
small = S("Small",
fontName="Helvetica", fontSize=8.5,
textColor=MID_GREY, leading=12, spaceAfter=2)
warning_style = S("Warning",
fontName="Helvetica-Bold", fontSize=10,
textColor=DARK_RED, alignment=TA_CENTER,
spaceBefore=4, spaceAfter=4)
footnote_style = S("Footnote",
fontName="Helvetica-Oblique", fontSize=8,
textColor=MID_GREY, alignment=TA_CENTER, spaceAfter=2)
bullet_style = S("Bullet",
fontName="Helvetica", fontSize=9.5,
textColor=DARK_GREY, leading=14,
leftIndent=14, spaceAfter=3)
# ββ Helper: colored section header box ββββββββββββββββββββββββ
def section_box(text, bg=BLUE):
data = [[Paragraph(text, section_h)]]
t = Table(data, colWidths=[W])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("ROUNDEDCORNERS", [4,4,4,4]),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
return t
def spacer(h=0.3):
return Spacer(1, h*cm)
def hr(color=colors.HexColor("#BDC3C7")):
return HRFlowable(width="100%", thickness=0.5, color=color, spaceAfter=4, spaceBefore=4)
# ββ Cover block (simulated with table) βββββββββββββββββββββββββ
def cover_block():
items = []
# Big header table
cover_data = [[
Paragraph("DRUG SAFETY GUIDE", cover_title),
],[
Paragraph("Single Kidney (Solitary Kidney) Patients with Hypertension", cover_sub),
],[
Paragraph("Which medicines are SAFE β’ Which to AVOID β’ Emergency Red Flags", cover_note),
]]
t = Table(cover_data, colWidths=[W])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), BLUE),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 16),
("RIGHTPADDING", (0,0), (-1,-1), 16),
("ROUNDEDCORNERS",[6,6,6,6]),
]))
items.append(t)
items.append(spacer(0.4))
# Patient profile strip
profile_data = [[
Paragraph("<b>Patient Profile:</b> Single functioning kidney | Hypertension on ARB/ACE therapy | Requires pain management", small),
Paragraph(f"<b>Date:</b> {date.today().strftime('%B %Y')}", small),
]]
pt = Table(profile_data, colWidths=[W*0.78, W*0.22])
pt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), GREY_BG),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
items.append(pt)
items.append(spacer(0.5))
return items
# ββ Why This Matters box βββββββββββββββββββββββββββββββββββββββ
def why_matters():
items = []
items.append(section_box("WHY THIS MATTERS", BLUE))
items.append(spacer(0.2))
points = [
("<b>Single kidney</b> has no backup β any nephrotoxic drug can cause irreversible loss of function.",),
("<b>Hypertension (ARB/ACE therapy)</b> already reduces efferent arteriolar tone in the kidney β adding NSAIDs causes a 'triple whammy' effect leading to acute kidney injury (AKI).",),
("<b>Over-the-counter painkillers</b> (Ibuprofen, Diclofenac, Naproxen) are freely available but extremely dangerous in this situation.",),
("<b>Common combination tablets</b> like Flexon MR, Combiflam, Brufen, Voveran contain hidden NSAIDs β patients must check labels.",),
]
for (txt,) in points:
row = [[Paragraph("β", bold_body), Paragraph(txt, body)]]
t = Table(row, colWidths=[0.5*cm, W-0.5*cm])
t.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 2),
("BOTTOMPADDING", (0,0), (-1,-1), 2),
("LEFTPADDING", (0,0), (-1,-1), 0),
]))
items.append(t)
items.append(spacer(0.3))
# Triple whammy box
tw_data = [[
Paragraph(
'<b>"TRIPLE WHAMMY" EFFECT</b><br/>'
'NSAID + ACE Inhibitor/ARB (e.g. Telmisartan) + Diuretic<br/>'
'<font color="#C0392B">= Drastically reduced kidney blood flow = ACUTE KIDNEY INJURY</font>',
S("TW", fontName="Helvetica", fontSize=9.5, textColor=DARK_GREY,
alignment=TA_CENTER, leading=15)
)
]]
tw = Table(tw_data, colWidths=[W])
tw.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), LIGHT_ORANGE),
("BOX", (0,0), (-1,-1), 1.2, ORANGE),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 12),
("RIGHTPADDING", (0,0), (-1,-1), 12),
]))
items.append(tw)
items.append(spacer(0.4))
return items
# ββ Avoid table ββββββββββββββββββββββββββββββββββββββββββββββββ
def avoid_section():
items = []
items.append(section_box("π« MEDICINES TO AVOID (DANGEROUS)", RED))
items.append(spacer(0.2))
header = [
Paragraph("<b>Drug / Brand Name</b>", S("TH", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
Paragraph("<b>Category</b>", S("TH", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
Paragraph("<b>Why Dangerous</b>", S("TH", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
]
cs = S("TC", fontName="Helvetica", fontSize=9, textColor=DARK_GREY, leading=13)
cb = S("TCB", fontName="Helvetica-Bold", fontSize=9, textColor=DARK_RED, leading=13)
rows = [header,
[Paragraph("Ibuprofen\n(Brufen, Advil, Flexon MR)", cb),
Paragraph("NSAID", cs),
Paragraph("Reduces renal prostaglandins β β GFR. Causes fluid retention β β BP. Counters Telmisartan.", cs)],
[Paragraph("Diclofenac\n(Voveran, Voltaren)", cb),
Paragraph("NSAID", cs),
Paragraph("Same mechanism as ibuprofen. Oral tablets especially harmful.", cs)],
[Paragraph("Naproxen\n(Naprosyn, Aleve)", cb),
Paragraph("NSAID", cs),
Paragraph("Long half-life β prolonged renal vasoconstriction.", cs)],
[Paragraph("Etoricoxib\n(Nucoxia, Arcoxia)", cb),
Paragraph("COX-2 inhibitor (NSAID)", cs),
Paragraph("COX-2 inhibitors also reduce renal prostaglandins β NOT safe in CKD/single kidney.", cs)],
[Paragraph("Ketorolac\n(Toradol)", cb),
Paragraph("NSAID (most nephrotoxic)", cs),
Paragraph("Highest risk of acute kidney injury. Absolutely contraindicated.", cs)],
[Paragraph("Nimesulide\n(Nimulid, Nise)", cb),
Paragraph("NSAID", cs),
Paragraph("Hepatotoxic + nephrotoxic. Banned in many countries. Avoid completely.", cs)],
[Paragraph("Aspirin >100 mg\n(analgesic dose)", cb),
Paragraph("NSAID / Antiplatelet", cs),
Paragraph("Analgesic doses act like NSAIDs. Low-dose (75 mg) cardiac aspirin only if cardiologist approves.", cs)],
[Paragraph("Morphine / Codeine\nHydrocodone / Oxycodone", cb),
Paragraph("Opioid", cs),
Paragraph("Accumulate in kidney disease β respiratory depression, sedation. High toxicity risk.", cs)],
[Paragraph("Combiflam, Flexon MR,\nBrufen Plus (combo tabs)", cb),
Paragraph("NSAID Combinations", cs),
Paragraph("Contain ibuprofen. Seemingly innocent OTC brands β patients must read composition.", cs)],
]
col_w = [W*0.30, W*0.20, W*0.50]
t = Table(rows, colWidths=col_w, repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), RED),
("ROWBACKGROUNDS",(0,1), (-1,-1), [LIGHT_RED, WHITE]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#E8DADF")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
]))
items.append(t)
items.append(spacer(0.4))
return items
# ββ Safe medicines table βββββββββββββββββββββββββββββββββββββββ
def safe_section():
items = []
items.append(section_box("β
SAFE MEDICINES (RECOMMENDED)", GREEN))
items.append(spacer(0.2))
header = [
Paragraph("<b>Drug</b>", S("TH2", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
Paragraph("<b>Dose</b>", S("TH2", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
Paragraph("<b>Use For</b>", S("TH2", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
Paragraph("<b>Precaution</b>", S("TH2", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
]
cg = S("TCG", fontName="Helvetica-Bold", fontSize=9, textColor=DARK_GREEN, leading=13)
cs = S("TC2", fontName="Helvetica", fontSize=9, textColor=DARK_GREY, leading=13)
co = S("TC3", fontName="Helvetica", fontSize=8.5, textColor=colors.HexColor("#6E2F13"), leading=13)
rows = [header,
[Paragraph("Paracetamol\n(Crocin, Calpol, Tylenol)", cg),
Paragraph("500 mgβ1 g\nevery 6 hrs\nMax 4 g/day", cs),
Paragraph("Mild-moderate pain,\nfever", cs),
Paragraph("Avoid alcohol. Check all OTC products for hidden paracetamol.", co)],
[Paragraph("Thiocolchicoside\n(Muscoril, Myoril)", cg),
Paragraph("4 mg\ntwice daily\n5β7 days", cs),
Paragraph("Muscle spasm,\nback pain", cs),
Paragraph("Short course only. May cause drowsiness.", co)],
[Paragraph("Tizanidine\n(Sirdalud)", cg),
Paragraph("2β4 mg\nat night\n(low dose)", cs),
Paragraph("Muscle spasm,\nnight pain", cs),
Paragraph("Reduce dose if eGFR <25. Monitor BP (can lower it).", co)],
[Paragraph("Duloxetine\n(Cymbalta, Duzela)", cg),
Paragraph("30 mg once\ndaily", cs),
Paragraph("Chronic back pain,\nneuropathic pain", cs),
Paragraph("Liver-metabolized β kidney-friendly. Avoid if eGFR <30.", co)],
[Paragraph("Pregabalin\n(Lyrica, Pregeb)", cg),
Paragraph("25β50 mg\nat night\n(START LOW)", cs),
Paragraph("Nerve pain,\nsciatica, radiculopathy", cs),
Paragraph("Renally cleared β MUST reduce dose per eGFR. Check creatinine first.", co)],
[Paragraph("Gabapentin\n(Gabapin, Neurontin)", cg),
Paragraph("100β300 mg\nonce daily\n(dose adjust)", cs),
Paragraph("Neuropathic pain", cs),
Paragraph("Renally excreted. Dose adjustment mandatory. Use cautiously.", co)],
[Paragraph("Tramadol\n(Ultram β last resort)", cg),
Paragraph("25β50 mg\nas needed\n(lowest dose)", cs),
Paragraph("Moderate-severe pain\nnot responding to above", cs),
Paragraph("Risk of accumulation. Use only under physician supervision. Short course.", co)],
[Paragraph("Diclofenac GEL\n(topical only β do NOT swallow)", cg),
Paragraph("Apply to skin\n3β4x daily", cs),
Paragraph("Localized back/\njoint pain", cs),
Paragraph("Topical absorption is <10% of oral β relatively safe for local use.", co)],
[Paragraph("Capsaicin Cream\n(0.025%β0.075%)", cg),
Paragraph("Apply 3β4x\ndaily", cs),
Paragraph("Nerve/muscle pain", cs),
Paragraph("No systemic effect. Safe for kidney and BP.", co)],
]
col_w = [W*0.28, W*0.17, W*0.22, W*0.33]
t = Table(rows, colWidths=col_w, repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_GREEN),
("ROWBACKGROUNDS",(0,1), (-1,-1), [LIGHT_GREEN, WHITE]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#A9DFBF")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
]))
items.append(t)
items.append(spacer(0.4))
return items
# ββ Recommended regimen ββββββββββββββββββββββββββββββββββββββββ
def regimen_section():
items = []
items.append(section_box("π RECOMMENDED TREATMENT REGIMEN", BLUE))
items.append(spacer(0.2))
col_w = [W*0.22, W*0.78]
def reg_block(label, label_color, content_lines, bg):
label_p = Paragraph(f"<b>{label}</b>", S("RL", fontName="Helvetica-Bold", fontSize=9.5, textColor=WHITE, alignment=TA_CENTER))
content_p = Paragraph("<br/>".join(content_lines), S("RC", fontName="Helvetica", fontSize=9, textColor=DARK_GREY, leading=14))
t = Table([[label_p, content_p]], colWidths=col_w)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,0), label_color),
("BACKGROUND", (1,0), (1,0), bg),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#BDC3C7")),
]))
return t
items.append(reg_block(
"ACUTE PAIN\n(< 4 weeks)",
colors.HexColor("#1A5276"),
[
"β’ Paracetamol 500 mgβ1 g every 6 hours (max 4 g/day)",
"β’ Thiocolchicoside 4 mg twice daily Γ 5β7 days",
"β’ Topical Diclofenac gel or Capsaicin cream locally",
"β’ Hot compress after 48 hrs; gentle walking; avoid bed rest",
],
LIGHT_BLUE
))
items.append(spacer(0.15))
items.append(reg_block(
"NERVE PAIN\n(Sciatica / Radiculopathy)",
colors.HexColor("#1E5631"),
[
"β’ Check eGFR / Serum Creatinine FIRST",
"β’ Duloxetine 30 mg once daily (preferred β liver-metabolized)",
"β’ OR Pregabalin 25β50 mg at night (START LOW, adjust by eGFR)",
"β’ Physiotherapy + lumbar MRI recommended",
],
LIGHT_GREEN
))
items.append(spacer(0.15))
items.append(reg_block(
"CHRONIC PAIN\n(> 6 weeks)",
colors.HexColor("#7D6608"),
[
"β’ Duloxetine 30β60 mg/day + Physiotherapy (core strengthening)",
"β’ Paracetamol as needed (not more than 4 g/day)",
"β’ Psychological pain management / CBT if available",
"β’ Avoid all NSAIDs regardless of duration",
],
YELLOW_BG
))
items.append(spacer(0.15))
items.append(reg_block(
"BEFORE STARTING\nANY NEW DRUG",
RED,
[
"β’ Check: Serum Creatinine, eGFR, Urea, Potassium",
"β’ Inform ALL doctors you have a single kidney + on Telmisartan",
"β’ Read tablet composition β avoid any product containing Ibuprofen/Diclofenac/Naproxen",
"β’ Consult nephrologist for dose adjustment of pregabalin/gabapentin",
],
LIGHT_RED
))
items.append(spacer(0.4))
return items
# ββ Drug interactions ββββββββββββββββββββββββββββββββββββββββββ
def interactions_section():
items = []
items.append(section_box("β‘ DRUG INTERACTIONS WITH TELMISARTAN (ARB)", colors.HexColor("#6C3483")))
items.append(spacer(0.2))
header = [
Paragraph("<b>Drug</b>", S("TI1", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
Paragraph("<b>Interaction</b>", S("TI2", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
Paragraph("<b>Action</b>", S("TI3", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
]
cs = S("TCI", fontName="Helvetica", fontSize=9, textColor=DARK_GREY, leading=13)
cb = S("TCIB", fontName="Helvetica-Bold", fontSize=9, textColor=DARK_RED, leading=13)
cg = S("TCIG", fontName="Helvetica-Bold", fontSize=9, textColor=DARK_GREEN, leading=13)
rows = [header,
[Paragraph("NSAIDs (any)", cb),
Paragraph("DANGEROUS: Reduces Telmisartan efficacy + nephrotoxic synergy", cs),
Paragraph("β AVOID completely", cb)],
[Paragraph("Paracetamol", cg),
Paragraph("No significant interaction", cs),
Paragraph("β
Safe to use", cg)],
[Paragraph("Pregabalin", cg),
Paragraph("No direct interaction; monitor for dizziness", cs),
Paragraph("β
Safe (adjust dose for eGFR)", cg)],
[Paragraph("Duloxetine", cg),
Paragraph("Minor: may modestly affect BP β monitor", cs),
Paragraph("β
Generally safe", cg)],
[Paragraph("Muscle relaxants\n(Thiocolchicoside, Tizanidine)", cg),
Paragraph("Tizanidine may enhance BP-lowering; monitor. Thiocolchicoside minimal interaction.", cs),
Paragraph("β
Use cautiously", cg)],
[Paragraph("Tramadol", S("TCIO", fontName="Helvetica-Bold", fontSize=9, textColor=ORANGE, leading=13)),
Paragraph("CNS depression possible; risk accumulation in low eGFR", cs),
Paragraph("β οΈ Only if essential, low dose", S("TCIO2", fontName="Helvetica", fontSize=9, textColor=ORANGE, leading=13))],
[Paragraph("Potassium supplements\nSpironolactone", cb),
Paragraph("Telmisartan raises potassium β additive hyperkalemia risk", cs),
Paragraph("β Avoid/use with caution", cb)],
]
col_w = [W*0.28, W*0.46, W*0.26]
t = Table(rows, colWidths=col_w, repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), colors.HexColor("#6C3483")),
("ROWBACKGROUNDS",(0,1), (-1,-1), [colors.HexColor("#EAF0FB"), WHITE]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#C39BD3")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
]))
items.append(t)
items.append(spacer(0.4))
return items
# ββ Red flags βββββββββββββββββββββββββββββββββββββββββββββββββ
def red_flags_section():
items = []
items.append(section_box("π RED FLAGS β GO TO HOSPITAL IMMEDIATELY", RED))
items.append(spacer(0.2))
flags = [
("Pain radiating down leg with numbness/tingling", "Possible nerve compression β needs urgent MRI"),
("Weakness in legs or foot drop", "Cauda equina / cord compression β surgical emergency"),
("Difficulty passing urine or urine retention", "Cauda equina syndrome β immediate surgery needed"),
("Severe sudden rise in BP (>180/110)", "Hypertensive emergency β IV antihypertensives needed"),
("Decreased urine output + swelling", "Acute Kidney Injury β stop all drugs, IV fluids, nephrology"),
("Swelling of face/tongue/lips (if on ACE inhibitor)", "Angioedema β anaphylaxis risk"),
("Confusion, excessive drowsiness on pain medication", "Drug accumulation β hold medication, seek review"),
]
col_w = [W*0.44, W*0.56]
header = [
Paragraph("<b>Warning Sign</b>", S("RF1", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
Paragraph("<b>What It Means</b>", S("RF2", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE)),
]
rows = [header]
cs = S("RFC", fontName="Helvetica", fontSize=9, textColor=DARK_GREY, leading=13)
cb = S("RFCB", fontName="Helvetica-Bold", fontSize=9, textColor=DARK_RED, leading=13)
for sign, meaning in flags:
rows.append([Paragraph(f"β {sign}", cb), Paragraph(meaning, cs)])
t = Table(rows, colWidths=col_w, repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), RED),
("ROWBACKGROUNDS",(0,1), (-1,-1), [LIGHT_RED, WHITE]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#E8DADF")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
]))
items.append(t)
items.append(spacer(0.4))
return items
# ββ Non-drug treatment βββββββββββββββββββββββββββββββββββββββββ
def non_drug_section():
items = []
items.append(section_box("π NON-DRUG (ESSENTIAL) TREATMENTS", colors.HexColor("#117A65")))
items.append(spacer(0.2))
tips = [
("Physiotherapy", "Core strengthening, lumbar stabilization exercises β most evidence-based long-term treatment for back pain."),
("Hot / Cold Therapy", "Cold pack first 48 hours β warm compress afterwards. 15β20 min sessions, 3β4x daily."),
("Posture Correction", "Ergonomic chair, lumbar support, avoid prolonged sitting. Raise monitor to eye level."),
("Weight Management", "Every 5 kg reduction in weight significantly reduces lumbar load."),
("Walking", "20β30 min brisk walking daily is more effective than bed rest. Avoid heavy lifting."),
("Yoga / Stretching", "Gentle yoga (cat-cow, child pose, pelvic tilt) reduces chronic back pain significantly."),
("BP Monitoring", "Check BP twice daily. Target <130/80 mmHg with single kidney. Log readings for your doctor."),
("Hydration", "Drink 2β2.5 L water daily. Adequate hydration protects the remaining kidney."),
("Nephrology Review", "Every 6 months: Creatinine, eGFR, urine ACR, potassium, BP. Annual ultrasound KUB."),
]
col_w = [W*0.24, W*0.76]
rows = []
cg = S("ND1", fontName="Helvetica-Bold", fontSize=9, textColor=DARK_GREEN, leading=13)
cs = S("ND2", fontName="Helvetica", fontSize=9, textColor=DARK_GREY, leading=13)
for title, desc in tips:
rows.append([Paragraph(title, cg), Paragraph(desc, cs)])
t = Table(rows, colWidths=col_w)
t.setStyle(TableStyle([
("ROWBACKGROUNDS", (0,0), (-1,-1), [LIGHT_GREEN, WHITE]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#A9DFBF")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 7),
("RIGHTPADDING", (0,0), (-1,-1), 7),
]))
items.append(t)
items.append(spacer(0.4))
return items
# ββ Common brand names cheatsheet βββββββββββββββββββββββββββββ
def brands_section():
items = []
items.append(section_box("π COMMON BRANDS β QUICK REFERENCE (INDIA)", colors.HexColor("#784212")))
items.append(spacer(0.2))
col_w = [W*0.50, W*0.50]
header_avoid = Paragraph("<b>β AVOID THESE BRANDS</b>", S("BA", fontName="Helvetica-Bold", fontSize=10, textColor=WHITE, alignment=TA_CENTER))
header_safe = Paragraph("<b>β
SAFE ALTERNATIVES</b>", S("BS", fontName="Helvetica-Bold", fontSize=10, textColor=WHITE, alignment=TA_CENTER))
avoid_brands = [
"Flexon MR (Ibuprofen + Paracetamol + Chlorzoxazone)",
"Combiflam (Ibuprofen + Paracetamol)",
"Brufen (Ibuprofen)",
"Voveran / Voltaren (Diclofenac)",
"Naprosyn / Naxdom (Naproxen)",
"Nucoxia / Arcoxia (Etoricoxib)",
"Nise / Nimulid (Nimesulide)",
"Toradol / Ketanov (Ketorolac)",
"Zerodol (Aceclofenac β NSAID)",
"Hifenac (Aceclofenac)",
]
safe_brands = [
"Crocin / Calpol / Dolo (Paracetamol)",
"Muscoril / Myoril (Thiocolchicoside)",
"Sirdalud (Tizanidine)",
"Cymbalta / Duzela / Dulane (Duloxetine)",
"Lyrica / Pregeb / Pregalin (Pregabalin β dose adjust)",
"Gabapin / Neurontin (Gabapentin β dose adjust)",
"Voltaren GEL β TOPICAL ONLY",
"Moov / Volini spray (topical NSAID β local use OK)",
"Capsicum-based cream (Capsaicin)",
"Hot packs, Physiotherapy, TENS",
]
cs_r = S("ABR", fontName="Helvetica", fontSize=8.5, textColor=DARK_RED, leading=13)
cs_g = S("ABS", fontName="Helvetica", fontSize=8.5, textColor=DARK_GREEN, leading=13)
avoid_p = [Paragraph(f"β’ {b}", cs_r) for b in avoid_brands]
safe_p = [Paragraph(f"β’ {b}", cs_g) for b in safe_brands]
# Pad to same length
while len(avoid_p) < len(safe_p): avoid_p.append(Paragraph("", cs_r))
while len(safe_p) < len(avoid_p): safe_p.append(Paragraph("", cs_g))
hrow = [[header_avoid, header_safe]]
ht = Table(hrow, colWidths=col_w)
ht.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,0), RED),
("BACKGROUND", (1,0), (1,0), DARK_GREEN),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
]))
items.append(ht)
data_rows = list(zip(avoid_p, safe_p))
bt = Table(data_rows, colWidths=col_w)
bt.setStyle(TableStyle([
("ROWBACKGROUNDS", (0,0), (-1,-1), [LIGHT_RED, WHITE]),
("BACKGROUND", (1,0), (1,-1), LIGHT_GREEN),
("ROWBACKGROUNDS", (1,0), (1,-1), [LIGHT_GREEN, WHITE]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 7),
("RIGHTPADDING", (0,0), (-1,-1), 7),
]))
items.append(bt)
items.append(spacer(0.4))
return items
# ββ Disclaimer βββββββββββββββββββββββββββββββββββββββββββββββββ
def disclaimer():
items = []
hr_line = HRFlowable(width="100%", thickness=1, color=MID_GREY, spaceBefore=6, spaceAfter=6)
items.append(hr_line)
disc_text = (
"<b>Medical Disclaimer:</b> This guide is for educational reference only and does not replace professional medical advice, "
"diagnosis, or treatment. All drug doses and recommendations must be verified by a qualified physician or pharmacologist "
"familiar with the patient's complete medical history, current renal function (eGFR), and medication list. "
"Drug safety in renal impairment depends on current kidney function β always check serum creatinine and eGFR before "
"initiating or adjusting any medication. In case of doubt, consult a nephrologist."
)
items.append(Paragraph(disc_text, footnote_style))
items.append(spacer(0.1))
items.append(Paragraph(
f"Generated by Orris Medical AI β’ {date.today().strftime('%d %B %Y')} β’ For clinical reference use",
footnote_style
))
return items
# ββ Assemble document ββββββββββββββββββββββββββββββββββββββββββ
story = []
story += cover_block()
story += why_matters()
story += avoid_section()
story += safe_section()
story += regimen_section()
story += interactions_section()
story += red_flags_section()
story += non_drug_section()
story += brands_section()
story += disclaimer()
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /tmp/workspace/drug-safety-guide && python create_pdf.py
ls -lh /tmp/workspace/drug-safety-guide/
Drug Safety Guide Single Kidney Hypertension
PDF Document Β· PDF
| Section | Content |
|---|---|
| Cover + Patient Profile | Title, patient context strip |
| Why This Matters | Triple Whammy effect explanation with warning box |
| π« Medicines to AVOID | 9-row color-coded table - NSAIDs, opioids, combos with reasons |
| β Safe Medicines | 9 safe options with doses, uses, precautions |
| π Treatment Regimen | 4 scenario-based plans (acute / nerve / chronic / pre-prescribing) |
| β‘ Drug Interactions | Telmisartan-specific interaction table for all common drugs |
| π Red Flags | 7 emergency warning signs requiring immediate hospital visit |
| π Non-Drug Treatments | 9 essential lifestyle/physio tips |
| π Brand Name Cheatsheet | India-specific - 10 brands to avoid vs 10 safe alternatives |
| Disclaimer | Professional medical disclaimer |
Bhai m khud ek resident hu
Paracetamol Β± Thiocolchicoside β agar nerve component ho to Duloxetine (hepatic metabolism, kidney-friendly) β Pregabalin sirf eGFR check ke baad, dose-adjusted.