Can you hand me over the pdf made for my ward common drugs used in daily life Dosage to side effects to in co occuring conditions like liver renal pathologies Ceftrixone
"ceftriaxone"[MeSH Terms] AND "adverse effects"
ceftriaxone dosing renal impairment hepatic impairment prescribing information adults pediatrics contraindications calcium neonates
https://www.accessdata.fda.gov/drugsatfda_docs/label/2026/01…
mkdir -p /tmp/workspace/ward-drugs && cat > /tmp/workspace/ward-drugs/make.py <<'EOF' from reportlab.lib.pagesizes import A4 from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, KeepTogether from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib import colors from reportlab.lib.units import mm out="/tmp/workspace/ward-drugs/Ceftriaxone_Ward_Drug_Card.pdf" doc=SimpleDocTemplate(out,pagesize=A4,leftMargin=15*mm,rightMargin=15*mm,topMargin=14*mm,bottomMargin=14*mm,title="Ceftriaxone Ward Drug Card") ss=getSampleStyleSheet() B=ParagraphStyle('b',parent=ss['Normal'],fontSize=9,leading=12) H=ParagraphStyle('h',parent=ss['Heading2'],fontSize=11.5,textColor=colors.HexColor('#12497a'),spaceBefore=8,spaceAfter=3) T=ParagraphStyle('t',parent=ss['Title'],fontSize=19,textColor=colors.HexColor('#12497a'),spaceAfter=2,alignment=0) S=ParagraphStyle('s',parent=B,textColor=colors.grey,fontSize=8.5) C=ParagraphStyle('c',parent=B,fontSize=8.7,leading=11.3) CH=ParagraphStyle('ch',parent=C,textColor=colors.white,fontName='Helvetica-Bold') def P(x,s=C): return Paragraph(x,s) def tbl(rows,widths,head=True): data=[[P(c,CH if (head and i==0) else C) for c in r] for i,r in enumerate(rows)] t=Table(data,colWidths=[w*mm for w in widths],repeatRows=1 if head else 0) st=[('GRID',(0,0),(-1,-1),0.4,colors.HexColor('#b7c4d1')),('VALIGN',(0,0),(-1,-1),'TOP'), ('ROWBACKGROUNDS',(0,1),(-1,-1),[colors.white,colors.HexColor('#f1f5f9')]), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3)] if head: st.append(('BACKGROUND',(0,0),(-1,0),colors.HexColor('#12497a'))) t.setStyle(TableStyle(st)); return t def bl(items): return [Paragraph("• "+i,B) for i in items] E=[] E.append(Paragraph("Ceftriaxone",T)) E.append(Paragraph("Ward drug card | Third-generation cephalosporin | Injection 0.25, 0.5, 1, 2, 10 g | Contains about 3.6 mEq Na per g",S)) E.append(Spacer(1,4)) E.append(Paragraph("1. Quick facts",H)) E.append(tbl([["Item","Detail"], ["Class / action","Beta-lactam, bactericidal (inhibits cell wall synthesis via PBPs). Good gram-negative cover, moderate gram-positive cover. No Pseudomonas or enterococcal cover, no MRSA or Listeria cover."], ["Common uses","Community-acquired pneumonia, meningitis, complicated UTI/pyelonephritis, intra-abdominal infection (with metronidazole), enteric fever, gonorrhoea, PID, Lyme disease, sepsis, endocarditis prophylaxis, surgical prophylaxis."], ["Elimination","Dual route: renal plus biliary (biliary clearance about 35-45%). Long half-life (about 6-9 h), so once or twice daily dosing. Highly albumin bound."], ["Route","IV (slow push or infusion over about 30 min) or deep IM. For IM, dilute in 1% lidocaine (250-350 mg/mL); never give lidocaine-diluted product IV."]],[35,145])) E.append(Paragraph("2. Dosage (check local protocol and weight)",H)) E.append(tbl([["Patient / indication","Dose"], ["Adult, usual","1-2 g IV/IM every 12-24 h. Maximum 2 g per dose and 4 g per 24 h."], ["Adult, meningitis / severe infection","2 g IV every 12 h."], ["Uncomplicated gonorrhoea","500 mg IM single dose (1 g if weight 150 kg or more)."], ["PID, mild/moderate","0.5-1 g IM once, plus doxycycline and metronidazole for 14 days. Severe: 1 g IV daily, plus doxycycline and metronidazole."], ["Endocarditis prophylaxis (dental/upper airway)","Adult 1 g IV/IM, child 50 mg/kg (max 1 g), 30-60 min before procedure."], ["Child (over 1 month), mild/moderate","50-75 mg/kg/day in 1-2 divided doses, max 2 g/day."], ["Child, severe infection / meningitis","100 mg/kg/day divided every 12 h, max 2 g per dose and 4 g/day."], ["Child, acute otitis media","50 mg/kg IM/IV (max 1 g) single dose. Persistent or relapsing: once daily for 3 doses."], ["Neonate","Gonococcal ophthalmia or prophylaxis: 25-50 mg/kg once (max 250 mg). Other neonatal dosing: use unit protocol. Avoid if hyperbilirubinaemic."]],[62,118])) E.append(Paragraph("Source: Harriet Lane Handbook (Johns Hopkins), 23rd ed, p. 1068-1069 (ceftriaxone monograph).",S)) E.append(Paragraph("3. Adverse effects",H)) E.append(tbl([["Frequency","Effects"], ["Common","Rash, injection site pain or phlebitis, diarrhoea, nausea, transient rise in liver enzymes, eosinophilia."], ["Biliary","Reversible biliary sludge / pseudolithiasis and cholelithiasis (calcium-ceftriaxone salt), jaundice. Seen mainly with high doses (60-100 mg/kg/day in children) and prolonged courses; most sludge resolves after stopping."], ["Hypersensitivity","Urticaria, bronchospasm, anaphylaxis (rare). Cross-reactivity with penicillin depends on side chains; low risk if the penicillin reaction was mild or remote. Severe immediate penicillin reaction: skin test or test dose approach."], ["Haematological","Positive Coombs test (haemolysis rare), neutropenia, thrombocytopenia, bleeding or raised INR (rare, more in malnourished or vitamin K deficient patients)."], ["GI","Antibiotic-associated diarrhoea, Clostridioides difficile infection."], ["Neurological","Encephalopathy, myoclonus, seizures (rare, reported post-marketing, mostly with renal failure or very high dose)."], ["Other serious","Calcium-ceftriaxone precipitates in lungs and kidneys (fatal in neonates), nephrolithiasis or post-renal AKI (rare), immune haemolytic anaemia, SJS/TEN, DRESS."], ["Lab interference","Jaffe creatinine assay, false-positive urine protein and urine reducing substances (Clinitest, Benedict). Use glucose-oxidase strips."]],[32,148])) E.append(Paragraph("Sources: Goodman and Gilman's Pharmacological Basis of Therapeutics, Adverse Reactions (cephalosporins); Sleisenger and Fordtran's GI and Liver Disease, Ceftriaxone section; Harriet Lane Handbook, p. 1069.",S)) E.append(Paragraph("4. Co-existing conditions",H)) E.append(tbl([["Condition","What to do"], ["Renal impairment (CKD / AKI)","Usually no dose change for renal impairment alone, because the biliary route compensates (Goldman-Cecil lists ceftriaxone among antimicrobials not needing renal adjustment). Keep the total at 2 g/day or less if renal impairment is severe and you are also unsure of hepatic function. Not meaningfully removed by haemodialysis: give the daily dose after dialysis on dialysis days. Watch for encephalopathy and myoclonus in ESRD. Avoid mixing with nephrotoxins without need."], ["Hepatic impairment (cirrhosis, hepatitis)","No dose change for liver disease alone because renal clearance compensates. Monitor LFTs and bilirubin. Higher albumin binding displacement in hypoalbuminaemia gives more free drug and bilirubin displacement. Check coagulation (INR) in cirrhosis, as bleeding risk is higher."], ["Combined severe renal AND hepatic dysfunction","Both routes fail, so drug accumulates. Reduce: do not exceed 2 g/day and monitor levels of toxicity (Goldman-Cecil: dose adjustment may be needed for patients with both). Prefer an agent with a single dominant route if infection allows."], ["Biliary disease (gallstones, cholestasis, biliary obstruction, pancreatitis)","Use with caution. Higher risk of sludge and pseudolithiasis. Consider an alternative drug if symptomatic. Stop the drug if biliary pain develops."], ["Neonates / hyperbilirubinaemia","Contraindicated in hyperbilirubinaemic neonates (displaces bilirubin, kernicterus risk). Cefotaxime preferred in this group. Never give with IV calcium in neonates up to 28 days, even by separate lines."], ["Calcium or Ringer's infusion","Never mix or give via the same Y-site at any age. Over 28 days of age: sequential only, with line flushed between. Includes Ringer's lactate and TPN with calcium."], ["Penicillin allergy","Risk of cross-reaction is low for mild or old reactions. Avoid or test in severe anaphylaxis or SCAR history."], ["Anticoagulants / malnutrition","Monitor INR with warfarin. Consider vitamin K in prolonged courses in poor nutrition."], ["Pregnancy / lactation","Generally regarded as acceptable when indicated. Small amounts in breast milk, watch the infant for loose stools or thrush."], ["Elderly","Standard dosing. Monitor for diarrhoea, C. difficile and confusion."], ["Other drugs","Do not mix in the same syringe or line with vancomycin, aminoglycosides or fluconazole (incompatibility). Hospital Ringer's lactate is incompatible."]],[48,132])) E.append(Paragraph("Sources: Goldman-Cecil Medicine, Renal and Hepatic Function (antimicrobial dosing); Harriet Lane Handbook, p. 1069; manufacturer labelling for the calcium warning. The combined renal plus hepatic 2 g/day ceiling and the dialysis advice come from the standard prescribing information and general pharmacology references, not from the textbooks above. Confirm against your hospital formulary.",S)) E.append(Paragraph("5. Ward monitoring checklist",H)) for p in bl(["Allergy history before the first dose (record the type of penicillin reaction).", "Baseline and repeat creatinine, LFTs, bilirubin, CBC with platelets; INR if on warfarin, cirrhotic or malnourished.", "Look at the infusion line: no calcium-containing fluids running with it.", "Abdominal pain or jaundice in children on high doses: ultrasound for sludge.", "Review at 48-72 h: culture result, switch to a narrower or oral agent, set a stop date.", "New diarrhoea: test for C. difficile before treating symptomatically."]): E.append(p) E.append(Paragraph("6. Recent evidence flag",H)) E.append(Paragraph("A 2025 systematic review and meta-analysis on ceftriaxone-induced cholelithiasis in children (PMID 41074174, Italian Journal of Pediatrics) pooled the frequency, symptoms and risk factors. It is consistent with the textbook guidance above, and no change in practice is suggested from it.",B)) E.append(Spacer(1,8)) E.append(Paragraph("Reference aid only. It does not replace your hospital antibiotic policy, pharmacist advice or the senior team's decision. Doses are for normal-weight patients with normal organ function unless stated.",S)) doc.build(E) EOF cd /tmp/workspace/ward-drugs && python make.py && python -c " import pypdf;r=pypdf.PdfReader('Ceftriaxone_Ward_Drug_Card.pdf');print(len(r.pages))"; ls -la
cd /tmp/workspace/ward-drugs && python - <<'EOF' s=open('make.py').read() s=s.replace(" Keep the total at 2 g/day or less if renal impairment is severe and you are also unsure of hepatic function. Not meaningfully removed by haemodialysis: give the daily dose after dialysis on dialysis days."," Ceftriaxone is not significantly removed by haemodialysis, so no supplemental dose is usually needed.") s=s.replace(" Higher albumin binding displacement in hypoalbuminaemia gives more free drug and bilirubin displacement."," In low albumin states the free drug fraction rises, and ceftriaxone can displace bilirubin.") s=s.replace("Reduce: do not exceed 2 g/day and monitor levels of toxicity (Goldman-Cecil: dose adjustment may be needed for patients with both).","Cap the dose at 2 g/day (Goldman-Cecil: dose adjustment may be needed when both are impaired) and watch for neurotoxicity and bleeding.") s=s.replace(" Hospital Ringer's lactate is incompatible.","") s=s.replace("p. 1068-1069","p. 1068-1069").replace("Harriet Lane Handbook, p. 1069; manufacturer","Harriet Lane Handbook, p. 1069; manufacturer") open('make.py','w').write(s) EOF python make.py && python -c " import pdfplumber with pdfplumber.open('Ceftriaxone_Ward_Drug_Card.pdf') as p: print(len(p.pages)); print(p.pages[1].extract_text()[:600])"
Ceftriaxone Ward Drug Card
PDF Document · PDF
Combine common ward drugs into one Excel dose-adjustment table
common inpatient drugs renal dose adjustment table eGFR CrCl enoxaparin metformin gabapentin piperacillin meropenem
https://australianprescriber.tg.org.au/articles/prescribing-…
drug dosing in liver cirrhosis Child-Pugh common drugs paracetamol NSAIDs opioids benzodiazepines statins avoid reduce dose review
mkdir -p /tmp/workspace/ward-drugs && cat > /tmp/workspace/ward-drugs/make_xlsx.py <<'EOF' from openpyxl import Workbook from openpyxl.styles import Font, PatternFill, Alignment, Border, Side from openpyxl.formatting.rule import FormulaRule from openpyxl.utils import get_column_letter import math # (category, drug, usual dose, renal text, renal flag, hepatic text, hepatic flag, monitoring, source) D=[ ("Antimicrobial","Ceftriaxone","1-2 g IV/IM q12-24h; max 4 g/day. Meningitis 2 g q12h.", "No adjustment for renal impairment alone (dual renal and biliary clearance). Not removed by haemodialysis.","None", "No adjustment for hepatic impairment alone. If BOTH severe renal and hepatic failure: max 2 g/day.","Caution", "Biliary sludge/pseudolithiasis, rash, diarrhoea, C. difficile. Never with IV calcium in neonates. Avoid in hyperbilirubinaemic neonates.","A, C"), ("Antimicrobial","Piperacillin-tazobactam","4.5 g IV q6-8h (3.375 g q6h in some protocols).", "CrCl 20-40: 2.25 g q6h. CrCl <20: 2.25 g q8h. Haemodialysis: 2.25 g q12h plus 0.75 g after each session. (Extended-infusion protocols differ: follow local policy.)","Adjust", "No adjustment.","None", "Rash, diarrhoea, cytopenias, hypokalaemia, AKI (esp. with vancomycin). Sodium load.","B, C"), ("Antimicrobial","Meropenem","1 g IV q8h (500 mg q8h for lower-risk indications).", "CrCl 26-50: usual dose q12h. CrCl 10-25: half dose q12h. CrCl <10: half dose q24h. Dialysis: give after session.","Adjust", "No adjustment.","None", "Seizures (higher in renal failure), diarrhoea, rash. Lowers valproate levels sharply: avoid combination.","B, C"), ("Antimicrobial","Amoxicillin-clavulanate","500/125 mg PO q8h or 875/125 mg q12h; IV 1.2 g q8h.", "CrCl 10-30: 500/125 mg q12h (do NOT use 875 mg tablet). CrCl <10: 500/125 mg q24h. Dose after dialysis.","Adjust", "Caution. Cholestatic jaundice and hepatitis, may be delayed weeks after the course. Avoid if previous co-amoxiclav liver injury. Check LFTs in prolonged courses.","Caution", "Diarrhoea, rash, cholestatic hepatitis, C. difficile.","C"), ("Antimicrobial","Ciprofloxacin","500-750 mg PO q12h; 400 mg IV q8-12h.", "CrCl 30-50: 250-500 mg q12h. CrCl 5-29: 250-500 mg q18h (or 400 mg IV q18-24h). Dialysis: after session.","Adjust", "No adjustment, but avoid in severe liver disease if possible (limited data).","Caution", "QT prolongation, tendinopathy, dysglycaemia, CNS effects, C. difficile. Chelated by antacids, iron, calcium.","B, C"), ("Antimicrobial","Levofloxacin","750 mg q24h (IV or PO).", "CrCl 20-49: 750 mg q48h. CrCl 10-19 or haemodialysis: 750 mg once then 500 mg q48h.","Adjust", "No adjustment.","None", "QT prolongation, tendinopathy, dysglycaemia, delirium. Katzung: moxifloxacin is the quinolone that does not need renal adjustment.","A, B"), ("Antimicrobial","Gentamicin","5-7 mg/kg IV once daily (extended-interval), or 1-1.5 mg/kg q8h.", "Narrow therapeutic index. Lengthen interval (q36-48h) as CrCl falls; avoid if CrCl <20 unless guided by levels. Use local nomogram and drug levels.","Adjust", "No metabolic adjustment. Cirrhosis and hepatorenal states greatly raise nephrotoxicity risk.","Caution", "Nephrotoxicity, ototoxicity. Check trough/random levels and creatinine daily.","A, C"), ("Antimicrobial","Vancomycin","15-20 mg/kg IV q8-12h (AUC-guided preferred).", "Dose by levels (AUC or trough) and renal function. Extend interval in CKD. Haemodialysis: dose after session by pre-dialysis level.","Adjust", "No adjustment.","None", "Nephrotoxicity (worse with pip-tazo or aminoglycosides), infusion reaction, ototoxicity.","A, C"), ("Antimicrobial","Metronidazole","500 mg IV/PO q8h.", "No adjustment in most cases. Metabolites accumulate in ESRD (haemodialysis removes drug: give after session).","None", "Severe hepatic impairment (Child-Pugh C): reduce dose by about 50%. Katzung lists it as needing hepatic adjustment.","Adjust", "Metallic taste, nausea, peripheral neuropathy and encephalopathy with prolonged use. Disulfiram-like reaction with alcohol.","A, C"), ("Antimicrobial","Co-trimoxazole (TMP-SMX)","960 mg PO q12h (higher weight-based doses for PCP).", "CrCl 15-30: reduce dose by 50%. CrCl <15: avoid unless dialysis and specialist advice.","Adjust", "Caution in hepatic impairment. Avoid in severe disease (hepatotoxicity, cholestasis).","Caution", "Hyperkalaemia, creatinine rise (blocks tubular secretion), rash/SJS, marrow suppression. Raises INR with warfarin.","A, C"), ("Antimicrobial","Azithromycin","500 mg daily PO/IV.", "No adjustment (use caution if GFR <10).","None", "Caution. Avoid in severe hepatic impairment (hepatotoxicity, biliary excretion).","Caution", "QT prolongation, diarrhoea, hearing changes with long courses.","C"), ("Antimicrobial","Fluconazole","200-400 mg daily PO/IV.", "CrCl 50 or less (not on dialysis): give 50% of the usual dose. Haemodialysis: full dose after each session.","Adjust", "Caution. Can cause hepatotoxicity: monitor LFTs, avoid prolonged use in cirrhosis if alternatives exist.","Caution", "QT prolongation, strong CYP2C9/3A4 inhibition (warfarin, statins, phenytoin).","C"), ("Antimicrobial","Acyclovir (IV)","5-10 mg/kg IV q8h.", "CrCl 25-50: q12h. CrCl 10-25: q24h. CrCl <10: 50% dose q24h. Dialysis: dose after session.","Adjust", "No adjustment.","None", "Crystal nephropathy (hydrate well), encephalopathy, phlebitis.","B, C"), ("Analgesic","Paracetamol (acetaminophen)","1 g PO/IV q6h; max 4 g/day (under 50 kg: 15 mg/kg, max 60 mg/kg/day).", "CrCl <30: extend interval to q6-8h (max about 3 g/day) per many local protocols.","Adjust", "Chronic liver disease, cirrhosis, alcohol excess, malnutrition: max 2-3 g/day. Avoid IV route where possible in advanced liver disease (BASL: max 3 g/day IV). Count all combination products.","Adjust", "Hepatotoxicity in overdose. Safest first-line analgesic in cirrhosis at reduced dose.","B, C"), ("Analgesic","Ibuprofen / diclofenac (NSAIDs)","Ibuprofen 400 mg PO q8h; diclofenac 50 mg PO q8h (with food).", "AVOID in AKI and CrCl <30. Use with caution in CKD 3 (hyperkalaemia, AKI). Avoid with ACE inhibitor plus diuretic.","Avoid", "AVOID in cirrhosis (renal failure, ascites, variceal and GI bleeding). Diclofenac contraindicated in severe hepatic impairment.","Avoid", "GI bleed, AKI, fluid retention, hypertension. Sabiston and Tintinalli: avoid NSAIDs in cirrhosis.","A, B"), ("Analgesic","Tramadol","50-100 mg PO q6h; max 400 mg/day.", "CrCl <30: q12h, max 200 mg/day. Avoid modified-release in CrCl <30.","Adjust", "Cirrhosis: 50 mg q12h. Avoid in severe disease.","Adjust", "Seizures, serotonin syndrome, nausea, hyponatraemia.","C"), ("Analgesic","Morphine","2.5-10 mg PO/SC q4h PRN (opioid-naive start low).", "Active metabolite (M6G) accumulates: reduce dose, lengthen interval. Avoid in CrCl <30 where alternatives exist (e.g. fentanyl, hydromorphone with care).","Avoid", "Start below normal dose and give less often. Prefer immediate-release, add laxative. Sedatives and constipation can precipitate encephalopathy.","Adjust", "Sedation, respiratory depression, constipation, delirium. Pethidine and codeine also best avoided in renal failure.","B, C"), ("Analgesic","Gabapentin","300 mg PO q8h (up to 3.6 g/day).", "CrCl 30-59: 400-1400 mg/day in 2 doses. CrCl 15-29: 200-700 mg/day once daily. CrCl <15: 100-300 mg/day. Haemodialysis: supplemental dose after session.","Adjust", "No adjustment (renal elimination only).","None", "Sedation, dizziness, confusion, myoclonus (toxic in renal failure), falls.","B, C"), ("Anticoagulant","Enoxaparin","Prophylaxis 40 mg SC daily. Treatment 1 mg/kg SC q12h.", "CrCl <30: prophylaxis 30 mg SC daily; treatment 1 mg/kg SC once daily. Consider anti-Xa monitoring in CrCl <30, obesity, pregnancy. Consider UFH in severe renal failure.","Adjust", "No dose adjustment. Check baseline platelets, INR, varices risk: cirrhosis does not protect from clots, but INR does not reflect bleeding risk.","Caution", "Bleeding, thrombocytopenia (HIT), hyperkalaemia, raised LFTs.","B, C"), ("Anticoagulant","Unfractionated heparin","Infusion titrated to aPTT/anti-Xa per protocol.", "No adjustment (preferred when CrCl <15-30).","None", "No adjustment. Baseline coagulopathy and low platelets raise bleeding risk.","Caution", "Bleeding, HIT. Monitor aPTT, platelets.","C"), ("Anticoagulant","Warfarin","INR-guided, usual 2-10 mg daily.", "Lower dose requirement and higher bleeding risk in CKD. Monitor INR more often.","Caution", "Increased sensitivity in liver disease (low clotting factors). Start low. Avoid in decompensated cirrhosis if possible.","Adjust", "Bleeding. Many interactions: co-trimoxazole, metronidazole, fluconazole, ciprofloxacin and ceftriaxone raise INR.","C"), ("Anticoagulant","Apixaban","AF: 5 mg PO q12h. VTE: 10 mg q12h x 7 days, then 5 mg q12h.", "AF dose 2.5 mg q12h if two of: age 80+, weight 60 kg or less, creatinine 133 micromol/L (1.5 mg/dL) or more. CrCl 15-29: caution. CrCl <15: limited data, specialist advice.","Adjust", "Child-Pugh B: caution. Child-Pugh C: avoid.","Adjust", "Bleeding. Interactions with strong CYP3A4/P-gp inhibitors and inducers.","C"), ("Cardiovascular","Furosemide","20-80 mg PO/IV daily or q12h.", "Higher doses needed as GFR falls (threshold effect). Use IV or infusion in CKD 4-5.","Adjust", "Cirrhosis: use with spironolactone, titrate carefully. Hypokalaemia, hypovolaemia and AKI can precipitate encephalopathy and hepatorenal syndrome.","Caution", "Hypokalaemia, hyponatraemia, AKI, ototoxicity (high IV doses).","C"), ("Cardiovascular","Spironolactone","25-100 mg PO daily (up to 400 mg in ascites).", "Avoid or use with great caution if eGFR <30 (life-threatening hyperkalaemia). Monitor K+ and creatinine.","Avoid", "First-line for ascites in cirrhosis. Titrate to response, watch sodium, potassium and creatinine.","Caution", "Hyperkalaemia, gynaecomastia, hyponatraemia, AKI. Avoid with ACEi plus NSAID.","C"), ("Cardiovascular","Ramipril (ACE inhibitor)","2.5-10 mg PO daily.", "CrCl <30: start 1.25 mg daily, max 5 mg daily. Monitor creatinine and K+ 1-2 weeks after starting or changing dose. Hold in AKI or sepsis.","Adjust", "Prodrug: reduced activation in hepatic impairment (start 1.25 mg, max 5 mg). Avoid in decompensated cirrhosis with ascites (hypotension, AKI).","Adjust", "Cough, hyperkalaemia, AKI, angioedema.","C"), ("Cardiovascular","Atenolol","25-100 mg PO daily.", "Renally cleared. CrCl 15-35: max 50 mg daily. CrCl <15: max 25 mg daily. Haemodialysis: dose after session.","Adjust", "No adjustment.","None", "Bradycardia, hypotension, bronchospasm. Australian Prescriber lists atenolol and sotalol as needing renal reduction.","B, C"), ("Cardiovascular","Digoxin","AF: 62.5-125 micrograms PO daily (after loading if needed).", "Renally cleared and narrow margin: reduce dose, check level (6 h or more post dose). Toxicity enhanced by hypokalaemia, hypomagnesaemia, hypercalcaemia.","Adjust", "No adjustment.","None", "Nausea, visual change, arrhythmias, confusion. Interacts with amiodarone, verapamil, clarithromycin.","B, C"), ("Cardiovascular","Atorvastatin","10-80 mg PO at night.", "No adjustment.","None", "Contraindicated in active or decompensated liver disease. Start very cautiously in cirrhosis. Baseline LFTs.","Avoid", "Myalgia, raised ALT, rhabdomyolysis. Interacts with clarithromycin, fluconazole, diltiazem.","B, C"), ("Endocrine","Metformin","500 mg PO q8-12h; max 2 g/day.", "eGFR 45-59: continue, review risks. eGFR 30-44: max 1 g/day. eGFR <30: STOP. Hold in AKI, sepsis, dehydration, hypoxia, IV contrast.","Adjust", "Avoid in significant hepatic impairment (impaired lactate clearance, lactic acidosis).","Avoid", "GI upset, lactic acidosis (rare), B12 deficiency.","B, C"), ("Endocrine","Insulin (all types)","Individualised basal-bolus or sliding scale per protocol.", "GFR 10-50: reduce total dose by about 25%. GFR <10: reduce by about 50%. Reduced insulin clearance causes prolonged action.","Adjust", "Cirrhosis: both hypoglycaemia (poor gluconeogenesis) and insulin resistance. Monitor glucose closely.","Caution", "Hypoglycaemia. Check CBG 4-6 hourly when unwell or nil by mouth.","C"), ("Endocrine","Prednisolone","5-60 mg PO daily depending on indication.", "No adjustment.","None", "Prefer prednisolone over prednisone in severe liver disease (prednisone needs hepatic conversion).","Caution", "Hyperglycaemia, infection, GI bleed (with NSAIDs), psychosis, adrenal suppression.","C"), ("GI","Pantoprazole","40 mg PO/IV daily.", "No adjustment.","None", "Severe hepatic impairment: max 20 mg daily. In cirrhosis review the need: PPIs raise risk of infection, SBP and encephalopathy.","Adjust", "C. difficile, hypomagnesaemia, B12 deficiency, fractures.","C"), ("GI","Ondansetron","4-8 mg PO/IV q8h.", "No adjustment.","None", "Severe hepatic impairment (Child-Pugh C): max 8 mg/day.","Adjust", "QT prolongation, constipation, headache.","C"), ("GI","Metoclopramide","10 mg PO/IV q8h; max 30 mg/day, short course.", "CrCl <60 (US label) or <40 (UK): reduce dose by about 50%. Risk of extrapyramidal effects higher.","Adjust", "Moderate-severe hepatic impairment (US label): reduce dose. Fluid retention risk in cirrhosis.","Adjust", "Extrapyramidal reactions, tardive dyskinesia, drowsiness.","C"), ("Neuro / Other","Levetiracetam","500-1500 mg PO/IV q12h.", "CrCl 50-80: 500-1000 mg q12h. CrCl 30-50: 250-750 mg q12h. CrCl <30: 250-500 mg q12h. Haemodialysis: 500-1000 mg daily plus 250-500 mg supplement after session.","Adjust", "Mild-moderate: no adjustment. Severe hepatic impairment with CrCl <70: reduce maintenance dose by 50%.","Adjust", "Somnolence, irritability, behavioural change.","C"), ("Neuro / Other","Diazepam","2-10 mg PO q6-12h PRN.", "Use lower doses (active metabolites accumulate).","Caution", "Reduce dose by 50% in all stages of cirrhosis. Can precipitate encephalopathy. Lorazepam (glucuronidated) is generally preferred.","Adjust", "Sedation, falls, respiratory depression, delirium.","B, C"), ("Neuro / Other","Allopurinol","100-300 mg PO daily.", "Start 50-100 mg daily and titrate slowly to urate target. Metabolite oxypurinol accumulates (hypersensitivity risk).","Adjust", "Caution. Monitor LFTs.","Caution", "Rash, SJS/TEN (check HLA-B*58:01 where available), hepatitis.","C"), ] wb=Workbook() ws=wb.active; ws.title="Dose Adjustment Table" font=Font(name="Arial",size=10) hfont=Font(name="Arial",size=10,bold=True,color="FFFFFF") thin=Side(style="thin",color="B7C4D1") border=Border(left=thin,right=thin,top=thin,bottom=thin) ws["A1"]="Ward Drug Dose-Adjustment Table: renal and hepatic impairment" ws["A1"].font=Font(name="Arial",size=14,bold=True,color="12497A") ws["A2"]="Reference aid for adult inpatients. Confirm against your hospital formulary, local antibiotic policy and a pharmacist. Source key A/B/C is on the 'Notes and Sources' sheet. Renal bands use CrCl (Cockcroft-Gault) in mL/min unless eGFR is stated." ws["A2"].font=Font(name="Arial",size=9,italic=True,color="555555") ws.merge_cells("A2:J2"); ws["A2"].alignment=Alignment(wrap_text=True,vertical="top"); ws.row_dimensions[2].height=28 heads=["#","Category","Drug","Usual adult dose (normal function)","Renal impairment adjustment","Renal action","Hepatic impairment adjustment","Hepatic action","Key adverse effects and monitoring","Source"] widths=[5,15,24,34,52,11,52,11,46,9] HR=4 for i,(h,w) in enumerate(zip(heads,widths),1): c=ws.cell(row=HR,column=i,value=h); c.font=hfont; c.fill=PatternFill("solid",fgColor="12497A") c.alignment=Alignment(wrap_text=True,vertical="center",horizontal="center"); c.border=border ws.column_dimensions[get_column_letter(i)].width=w ws.row_dimensions[HR].height=32 for n,r in enumerate(D,1): row=HR+n vals=[n,r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8]] for i,v in enumerate(vals,1): c=ws.cell(row=row,column=i,value=v); c.font=font; c.border=border c.alignment=Alignment(wrap_text=True,vertical="top",horizontal="center" if i in (1,6,8,10) else "left") ws.cell(row=row,column=3).font=Font(name="Arial",size=10,bold=True) lines=max(math.ceil(len(str(v))/(widths[i]*1.05)) for i,v in enumerate(vals)) ws.row_dimensions[row].height=max(28,13.5*lines+4) last=HR+len(D) ws.freeze_panes=ws.cell(row=HR+1,column=4) ws.auto_filter.ref=f"A{HR}:J{last}" fills={"Avoid":"F4B6B6","Adjust":"FCE4A8","Caution":"FFF2CC","None":"CDE8CF"} for col in ("F","H"): rng=f"{col}{HR+1}:{col}{last}" for k,v in fills.items(): ws.conditional_formatting.add(rng,FormulaRule(formula=[f'{col}{HR+1}="{k}"'],fill=PatternFill("solid",bgColor=v,fgColor=v))) # summary counts with formulas ws.cell(row=last+2,column=3,value="Summary (live counts)").font=Font(name="Arial",size=10,bold=True) labels=["Avoid","Adjust","Caution","None"] ws.cell(row=last+3,column=3,value="Action").font=Font(name="Arial",size=10,bold=True) ws.cell(row=last+3,column=4,value="Renal count").font=Font(name="Arial",size=10,bold=True) ws.cell(row=last+3,column=5,value="Hepatic count").font=Font(name="Arial",size=10,bold=True) for j,l in enumerate(labels): rr=last+4+j ws.cell(row=rr,column=3,value=l).font=font ws.cell(row=rr,column=4,value=f'=COUNTIF($F${HR+1}:$F${last},C{rr})').font=font ws.cell(row=rr,column=5,value=f'=COUNTIF($H${HR+1}:$H${last},C{rr})').font=font for cc in (4,5): ws.cell(row=rr,column=cc).alignment=Alignment(horizontal="left") ws.cell(row=rr,column=3).fill=PatternFill("solid",fgColor=fills[l]) ws.page_setup.orientation="landscape"; ws.page_setup.fitToWidth=1; ws.page_setup.fitToHeight=0 ws.sheet_properties.pageSetUpPr.fitToPage=True ws.print_title_rows=f"{HR}:{HR}" # Calculator sheet cs=wb.create_sheet("CrCl Calculator") cs.column_dimensions["A"].width=34; cs.column_dimensions["B"].width=18; cs.column_dimensions["C"].width=70 cs["A1"]="Cockcroft-Gault creatinine clearance"; cs["A1"].font=Font(name="Arial",size=14,bold=True,color="12497A") cs["A2"]="Blue cells are inputs. Use actual weight if normal BMI; ideal or adjusted weight if obese. Unreliable in AKI, extremes of weight or age." cs["A2"].font=Font(name="Arial",size=9,italic=True,color="555555") inp=[("Age (years)",70),("Weight (kg)",65),("Sex (M or F)","M"),("Serum creatinine (micromol/L)",110)] for i,(l,v) in enumerate(inp,4): cs.cell(row=i,column=1,value=l).font=font c=cs.cell(row=i,column=2,value=v); c.font=Font(name="Arial",size=10,color="0000FF"); c.fill=PatternFill("solid",fgColor="FFFFCC"); c.border=border cs["A9"]="Estimated CrCl (mL/min)"; cs["A9"].font=Font(name="Arial",size=10,bold=True) cs["B9"]='=IF(AND(B7>0,B4>0,B5>0),ROUND((140-B4)*B5*IF(UPPER(B6)="F",1.04,1.23)/B7,0),"Check inputs")' cs["B9"].font=Font(name="Arial",size=10,bold=True); cs["B9"].border=border cs["A10"]="Renal band for table"; cs["A10"].font=Font(name="Arial",size=10,bold=True) cs["B10"]='=IF(ISNUMBER(B9),IF(B9>=60,"60 or above",IF(B9>=30,"30-59",IF(B9>=15,"15-29","Below 15"))),"")' cs["B10"].font=Font(name="Arial",size=10,bold=True); cs["B10"].border=border cs["C9"]="Formula: (140 - age) x weight x 1.23 (men) or 1.04 (women) / creatinine in micromol/L."; cs["C9"].font=Font(name="Arial",size=9,color="555555") cs["C10"]="Dose adjustment is usually needed for renally cleared drugs once CrCl falls below 60 (Australian Prescriber)." cs["C10"].font=Font(name="Arial",size=9,color="555555") for r in (9,10): cs.cell(row=r,column=3).alignment=Alignment(wrap_text=True,vertical="top") cs["A12"]="Child-Pugh quick reference (liver)"; cs["A12"].font=Font(name="Arial",size=11,bold=True,color="12497A") cp=[("Class A","5-6 points","Mild"),("Class B","7-9 points","Moderate"),("Class C","10-15 points","Severe")] for i,(a,b,c_) in enumerate(cp,13): for j,v in enumerate((a,b,c_),1): cell=cs.cell(row=i,column=j,value=v); cell.font=font; cell.border=border # Notes ns=wb.create_sheet("Notes and Sources") ns.column_dimensions["A"].width=14; ns.column_dimensions["B"].width=120 rows=[("Source key",""), ("A","Medical textbook library: Katzung's Basic and Clinical Pharmacology 16e (Table 51-6, antimicrobials needing renal/hepatic adjustment); Goldman-Cecil Medicine (Renal and Hepatic Function); Harriet Lane Handbook 23e; Goodman and Gilman; Sleisenger and Fordtran; Sabiston and Tintinalli (NSAIDs in cirrhosis)."), ("B","Web references retrieved this session: Australian Prescriber 'Prescribing in renal disease'; CommonSpirit renal dose adjustment tables; NKF case vignettes (enoxaparin, metformin, gabapentin); BASL symptom control guideline and a systematic review of dosing in cirrhosis (PMC10374753)."), ("C","Standard prescribing information and general pharmacology knowledge. These thresholds were NOT checked line by line against the labels in this session. Verify against your formulary before use."), ("",""), ("Action key",""), ("Avoid","Avoid in this setting unless specialist advice and no alternative."), ("Adjust","Reduce dose and/or lengthen interval, or use a modified regimen."), ("Caution","No fixed dose change, but extra monitoring or clinical judgement needed."), ("None","No adjustment usually needed."), ("",""), ("Limits","Adult doses only. Doses assume normal weight and stable renal function. Not valid in AKI with changing creatinine, CRRT or ECMO, which need pharmacist-led dosing. Neonatal and paediatric dosing are not covered here (see the separate ceftriaxone card for examples)."), ("Principle","Renal: adjustment is usually needed once CrCl is below 60 mL/min. Hepatic: there is no reliable liver equivalent of CrCl, so adjust using Child-Pugh class, albumin, INR, bilirubin and the drug's extraction ratio (Cockcroft-Gault and Child-Pugh both have limits)."), ] for i,(a,b) in enumerate(rows,1): ca=ns.cell(row=i,column=1,value=a); cb=ns.cell(row=i,column=2,value=b) ca.font=Font(name="Arial",size=10,bold=True); cb.font=font cb.alignment=Alignment(wrap_text=True,vertical="top"); ca.alignment=Alignment(vertical="top") if a in("Source key","Action key"): ca.font=Font(name="Arial",size=11,bold=True,color="12497A") if len(b)>120: ns.row_dimensions[i].height=14*math.ceil(len(b)/115)+4 wb.save("/tmp/workspace/ward-drugs/Ward_Drug_Dose_Adjustment_Table.xlsx") print(len(D)) EOF cd /tmp/workspace/ward-drugs && python make_xlsx.py && python - <<'EOF' from openpyxl import load_workbook wb=load_workbook("Ward_Drug_Dose_Adjustment_Table.xlsx") print(wb.sheetnames, wb.active.max_row) import re bad=0 for ws in wb: for row in ws.iter_rows(): for c in row: if isinstance(c.value,str) and ('\u2014' in c.value or '\u2013' in c.value): bad+=1;print(c.coordinate) print("dash cells",bad) EOF
Ward Drug Dose Adjustment Table
Spreadsheet · XLSX
Make a one-page laminated PDF cheat sheet of renal dose bands
cat > /tmp/workspace/ward-drugs/make_sheet.py <<'EOF' from reportlab.lib.pagesizes import A4 from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle from reportlab.lib.styles import ParagraphStyle from reportlab.lib import colors from reportlab.lib.units import mm import sys FS=float(sys.argv[1]) if len(sys.argv)>1 else 6.9 G,Y,O,R,N=("#D5EDD7","#FFF1B8","#FBD2A0","#F4B0B0","#E8EEF4") # drug, [(text,color)x4] S=lambda t:(t,G) # full dose rows=[ ("ANTIMICROBIALS",None), ("Ceftriaxone",[("Full",G),("Full",G),("Full",G),("Full. Max 2 g/day if severe liver failure too",Y)]), ("Pip-tazobactam",[("Full",G),("Full if >40; 2.25 g q6h if 20-40",Y),("2.25 g q6h (20-40); q8h if <20",Y),("2.25 g q8h. HD: q12h + 0.75 g post",Y)]), ("Meropenem",[("Full",G),("Usual dose q12h (26-50)",Y),("Half dose q12h (10-25)",Y),("Half dose q24h; give post HD",Y)]), ("Amox-clavulanate",[("Full",G),("Full",G),("500/125 q12h. No 875 tab",Y),("500/125 q24h; post HD",Y)]), ("Ciprofloxacin",[("Full",G),("250-500 mg PO q12h (30-50)",Y),("250-500 mg q18h",Y),("q18-24h; post HD",Y)]), ("Levofloxacin 750",[("750 q24h",G),("750 q48h (20-49)",Y),("750 q48h; 750 then 500 q48h if <20",Y),("750 then 500 q48h",Y)]), ("Gentamicin",[("Per levels / nomogram",Y),("Extend interval q36-48h, levels",Y),("Levels. Avoid if <20",O),("Avoid unless levels guided",R)]), ("Vancomycin",[("AUC / level guided",Y),("AUC / level guided",Y),("Level guided, extend interval",Y),("Dose by pre-HD level",Y)]), ("Co-trimoxazole",[("Full",G),("Full",G),("50% dose (15-30)",Y),("Avoid",R)]), ("Fluconazole",[("Full",G),("50% dose (if 50 or less)",Y),("50% dose",Y),("50% dose; full post HD",Y)]), ("Acyclovir IV",[("Full",G),("q12h (25-50)",Y),("q24h (10-25)",Y),("50% dose q24h",Y)]), ("Metronidazole",[("Full",G),("Full",G),("Full",G),("Full; give post HD",G)]), ("ANALGESICS",None), ("Paracetamol",[("Full (max 4 g)",G),("Full",G),("q6-8h, max about 3 g",Y),("q8h, max about 3 g",Y)]), ("NSAIDs",[("Caution",O),("Caution; avoid if AKI risk",O),("Avoid",R),("Avoid",R)]), ("Tramadol",[("Full",G),("Full",G),("q12h, max 200 mg/d; no MR",Y),("q12h, max 200 mg/d; no MR",Y)]), ("Morphine",[("Full",G),("Reduce dose, longer interval",Y),("Avoid if alternative exists",O),("Avoid; use fentanyl",R)]), ("Gabapentin",[("900-3600 mg/d",G),("400-1400 mg/d in 2 doses",Y),("200-700 mg/d once daily",Y),("100-300 mg/d; extra dose post HD",Y)]), ("ANTICOAGULANTS",None), ("Enoxaparin",[("Full",G),("Full",G),("Ppx 30 mg daily; Rx 1 mg/kg daily",Y),("As 15-29; consider UFH, anti-Xa",O)]), ("Heparin (UFH)",[("Per aPTT",G),("Per aPTT",G),("Per aPTT",G),("Preferred. Per aPTT",G)]), ("Apixaban",[("Full (AF: 2.5 mg if 2 of age 80+, 60 kg or less, Cr 133+)",G),("As left",G),("Caution (15-29)",O),("Limited data, specialist",R)]), ("Warfarin",[("INR guided",G),("Lower dose need, more INR checks",Y),("Lower dose need, bleeding risk",Y),("Lower dose need, bleeding risk",O)]), ("CARDIAC / DIURETICS",None), ("Furosemide",[("Full",G),("May need higher dose",Y),("Higher / IV dose",Y),("Highest doses, infusion; little effect if anuric",O)]), ("Spironolactone",[("Full",G),("Caution: check K+",O),("Avoid (hyperkalaemia)",R),("Avoid",R)]), ("Ramipril",[("Full",G),("Full; check K+/Cr at 1-2 wk",Y),("Start 1.25 mg, max 5 mg",Y),("As 15-29, specialist",O)]), ("Atenolol",[("Full",G),("Full; max 50 mg if under 35",Y),("Max 50 mg daily",Y),("Max 25 mg daily; post HD",Y)]), ("Digoxin",[("Standard, check level",Y),("Reduce dose, level",Y),("Reduce about 50%, level",O),("Much lower dose, level",O)]), ("DIABETES / OTHER",None), ("Metformin",[("Full (max 2 g/d)",G),("45-59 continue; 30-44 max 1 g/d",Y),("STOP",R),("STOP",R)]), ("Insulin",[("Per protocol",G),("Per protocol, watch lows",G),("Reduce about 25%",Y),("Reduce about 50%",O)]), ("Metoclopramide",[("Full",G),("Reduce about 50% if below 60",Y),("50% dose",Y),("50% dose",Y)]), ("Levetiracetam",[("50-80: 500-1000 mg q12h",Y),("250-750 mg q12h (30-50)",Y),("250-500 mg q12h",Y),("500-1000 mg daily + post HD dose",Y)]), ("Allopurinol",[("Start 100 mg, titrate",G),("Start 50-100 mg, slow",Y),("Start 50-100 mg, slow",Y),("Start 50-100 mg, slow",O)]), ("No change needed",[("Pantoprazole, ondansetron, prednisolone, atorvastatin, azithromycin (caution if <10), diazepam (use lower dose)",N)]), ] doc=SimpleDocTemplate("/tmp/workspace/ward-drugs/Renal_Dose_Bands_Cheat_Sheet.pdf",pagesize=A4,leftMargin=9*mm,rightMargin=9*mm,topMargin=8*mm,bottomMargin=7*mm,title="Renal Dose Bands Cheat Sheet") nav=colors.HexColor('#12497A') T=ParagraphStyle('t',fontName='Helvetica-Bold',fontSize=15,textColor=nav,leading=17) Sb=ParagraphStyle('s',fontName='Helvetica',fontSize=7.4,leading=9.2) C=ParagraphStyle('c',fontName='Helvetica',fontSize=FS,leading=FS+1.5) CB=ParagraphStyle('cb',parent=C,fontName='Helvetica-Bold') CH=ParagraphStyle('ch',parent=C,fontName='Helvetica-Bold',textColor=colors.white,alignment=1,fontSize=8,leading=9.5) CG=ParagraphStyle('cg',parent=C,fontName='Helvetica-Bold',textColor=colors.white,fontSize=7.5) F=ParagraphStyle('f',fontName='Helvetica',fontSize=6.3,leading=7.6,textColor=colors.HexColor('#333333')) E=[Paragraph("Renal Dose Bands: ward cheat sheet (adults)",T)] E.append(Paragraph("<b>CrCl (Cockcroft-Gault)</b> = (140 - age) x weight kg x 1.23 (men) or 1.04 (women) / creatinine micromol/L. Adjust for most renally cleared drugs once CrCl is under 60. Not valid in AKI with changing creatinine, CRRT, extremes of weight. Bands are mL/min. <b>Colour:</b> green = full dose, yellow = reduce or extend interval, orange = caution/specialist, red = avoid or stop.",Sb)) E.append(Spacer(1,3)) head=[Paragraph("Drug",CH)]+[Paragraph(x,CH) for x in ["60 or above","30-59","15-29","Below 15 / HD"]] data=[head]; st=[('BACKGROUND',(0,0),(-1,0),nav)] for r in rows: i=len(data) if r[1] is None: data.append([Paragraph(r[0],CG)]+[""]*4) st+= [('SPAN',(0,i),(-1,i)),('BACKGROUND',(0,i),(-1,i),colors.HexColor('#4A7BA6'))] elif len(r[1])==1: data.append([Paragraph(r[0],CB),Paragraph(r[1][0][0],C),"","",""]) st+= [('SPAN',(1,i),(-1,i)),('BACKGROUND',(1,i),(-1,i),colors.HexColor(N)),('BACKGROUND',(0,i),(0,i),colors.HexColor('#F7F9FB'))] else: data.append([Paragraph(r[0],CB)]+[Paragraph(t,C) for t,_ in r[1]]) st.append(('BACKGROUND',(0,i),(0,i),colors.HexColor('#F7F9FB'))) for j,(t,c) in enumerate(r[1],1): st.append(('BACKGROUND',(j,i),(j,i),colors.HexColor(c))) tw=A4[0]-18*mm t=Table(data,colWidths=[24*mm]+[(tw-24*mm)/4]*4,repeatRows=1) st+=[('GRID',(0,0),(-1,-1),0.35,colors.HexColor('#7A8B9A')),('VALIGN',(0,0),(-1,-1),'MIDDLE'), ('TOPPADDING',(0,0),(-1,-1),1.4),('BOTTOMPADDING',(0,0),(-1,-1),1.4),('LEFTPADDING',(0,0),(-1,-1),2.5),('RIGHTPADDING',(0,0),(-1,-1),2), ('BOX',(0,0),(-1,-1),1.2,nav)] t.setStyle(TableStyle(st)); E.append(t); E.append(Spacer(1,3)) E.append(Paragraph("Sources: Katzung 16e Table 51-6 and Goldman-Cecil (ceftriaxone, metronidazole, antimicrobial classes needing adjustment); Australian Prescriber (metformin, general renal prescribing); hospital renal dosing tables (levofloxacin, meropenem, enoxaparin, gabapentin); remaining thresholds from standard prescribing information, not re-verified line by line. Doses vary by indication and local protocol: check your formulary or pharmacist before prescribing. Liver impairment is NOT covered on this sheet. HD = haemodialysis, post HD = give after the session, Ppx = prophylaxis, Rx = treatment.",F)) doc.build(E) EOF cd /tmp/workspace/ward-drugs && python make_sheet.py 6.9 && python -c " import pypdf;print(len(pypdf.PdfReader('Renal_Dose_Bands_Cheat_Sheet.pdf').pages))"
cd /tmp/workspace/ward-drugs && python - <<'EOF' import pdfplumber with pdfplumber.open('Renal_Dose_Bands_Cheat_Sheet.pdf') as p: pg=p.pages[0] ws=pg.extract_words() print(pg.height, max(w['bottom'] for w in ws)) EOF for f in 7.6 7.9 8.2; do python make_sheet.py $f && python -c " import pypdf,pdfplumber r=pdfplumber.open('Renal_Dose_Bands_Cheat_Sheet.pdf');print($f,len(r.pages),max(w['bottom'] for w in r.pages[0].extract_words()))"; done
cd /tmp/workspace/ward-drugs && for f in 9.0 9.6 10.2; do python make_sheet.py $f && python -c " import pdfplumber r=pdfplumber.open('Renal_Dose_Bands_Cheat_Sheet.pdf');print($f,len(r.pages),max(w['bottom'] for w in r.pages[0].extract_words()))"; done
cd /tmp/workspace/ward-drugs && python make_sheet.py 8.6 && python - <<'EOF' import pdfplumber r=pdfplumber.open('Renal_Dose_Bands_Cheat_Sheet.pdf') print(len(r.pages),max(w['bottom'] for w in r.pages[0].extract_words())) try: r.pages[0].to_image(resolution=80).save('preview.png');print('img ok') except Exception as e: print('noimg',e) EOF ls
Renal Dose Bands Cheat Sheet
PDF Document · PDF