Tell all about fever medicines n few common conditions if I m sitting in clinic to prescribe
Which part should I cover first in practical detail?
fever AND antipyretics
WHO clinical management fever outpatient adults children antibiotic stewardship guidance
Create a fever-medicine clinic quick-reference PDF
~/
fever AND antipyretics
NICE fever in under 5s red flags paracetamol ibuprofen recommendations
mkdir -p "/tmp/workspace/fever-clinic-reference/src" "/tmp/workspace/fever-clinic-reference/output" && python - <<'PY' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT from reportlab.lib.units import mm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, PageBreak, KeepTogether from reportlab.pdfbase.pdfmetrics import stringWidth from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfbase import pdfmetrics from reportlab.lib.colors import HexColor from reportlab.pdfbase.pdfmetrics import registerFontFamily from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfbase import pdfmetrics from reportlab.lib.styles import ParagraphStyle from reportlab.pdfbase.pdfmetrics import registerFont import os out='/tmp/workspace/fever-clinic-reference/output/fever_medicine_clinic_quick_reference.pdf' # Standard fonts to avoid compatibility concerns navy=HexColor('#103B52'); teal=HexColor('#007F82'); pale=HexColor('#E8F4F4'); amber=HexColor('#FFF4D8'); red=HexColor('#FCE9E7'); gray=HexColor('#52616B'); line=HexColor('#D7E1E5') styles=getSampleStyleSheet() styles.add(ParagraphStyle(name='CoverTitle', parent=styles['Title'], fontName='Helvetica-Bold', fontSize=23, leading=27, textColor=navy, alignment=TA_CENTER, spaceAfter=8)) styles.add(ParagraphStyle(name='Sub', parent=styles['Normal'], fontName='Helvetica', fontSize=9.4, leading=13, textColor=gray, alignment=TA_CENTER)) styles.add(ParagraphStyle(name='H1x', parent=styles['Heading1'], fontName='Helvetica-Bold', fontSize=15, leading=18, textColor=navy, spaceBefore=8, spaceAfter=6)) styles.add(ParagraphStyle(name='H2x', parent=styles['Heading2'], fontName='Helvetica-Bold', fontSize=10.5, leading=13, textColor=teal, spaceBefore=7, spaceAfter=4)) styles.add(ParagraphStyle(name='Bodyx', parent=styles['BodyText'], fontName='Helvetica', fontSize=8.5, leading=11.2, textColor=HexColor('#1D2C33'), spaceAfter=3)) styles.add(ParagraphStyle(name='Small', parent=styles['BodyText'], fontName='Helvetica', fontSize=7.2, leading=9, textColor=gray)) styles.add(ParagraphStyle(name='Cell', parent=styles['BodyText'], fontName='Helvetica', fontSize=7.35, leading=9.0, textColor=HexColor('#19282F'))) styles.add(ParagraphStyle(name='CellBold', parent=styles['BodyText'], fontName='Helvetica-Bold', fontSize=7.35, leading=9.0, textColor=navy)) styles.add(ParagraphStyle(name='Callout', parent=styles['BodyText'], fontName='Helvetica-Bold', fontSize=8.5, leading=11, textColor=navy)) def P(txt, style='Bodyx'): return Paragraph(txt, styles[style]) def bullets(items): return [P('• '+x) for x in items] def section_bar(title, color=teal): t=Table([[P(title,'H2x')]], colWidths=[178*mm]) t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),pale if color==teal else amber),('LINEBEFORE',(0,0),(0,0),3,color),('LEFTPADDING',(0,0),(-1,-1),7),('RIGHTPADDING',(0,0),(-1,-1),7),('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3)])) return t def footer(canvas, doc): canvas.saveState(); w,h=A4 canvas.setStrokeColor(line); canvas.line(16*mm, 12*mm, w-16*mm, 12*mm) canvas.setFont('Helvetica',7); canvas.setFillColor(gray) canvas.drawString(16*mm,7.5*mm,'Fever-Medicine Clinic Quick Reference | Educational support - verify local protocol/formulary') canvas.drawRightString(w-16*mm,7.5*mm,f'Page {doc.page}') canvas.restoreState() doc=SimpleDocTemplate(out,pagesize=A4,rightMargin=16*mm,leftMargin=16*mm,topMargin=14*mm,bottomMargin=18*mm,title='Fever-Medicine Clinic Quick Reference',author='Orris') story=[] story += [Spacer(1,10*mm), P('FEVER-MEDICINE', 'CoverTitle'), P('CLINIC QUICK REFERENCE', 'CoverTitle'), Spacer(1,4*mm), P('A safety-first point-of-care aid for trained clinicians', 'Sub'), Spacer(1,8*mm)] call=Table([[P('<b>Scope and limits</b><br/>This is an educational reference, not a substitute for local protocols, a current formulary, clinical examination, or emergency referral. Fever is a sign, not a diagnosis. Choose treatment for distress and the underlying syndrome, not the temperature alone. Do not use it to calculate a prescription without confirming the patient’s age, weight, formulation strength, comorbidities, allergies, pregnancy status, kidney/liver function, and locally approved doses.', 'Callout')]],colWidths=[178*mm]) call.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),amber),('BOX',(0,0),(-1,-1),0.8,HexColor('#D5A630')),('LEFTPADDING',(0,0),(-1,-1),9),('RIGHTPADDING',(0,0),(-1,-1),9),('TOPPADDING',(0,0),(-1,-1),8),('BOTTOMPADDING',(0,0),(-1,-1),8)])) story += [call, Spacer(1,7*mm), section_bar('1. FIRST 60 SECONDS: STABILIZE AND SCREEN'), Spacer(1,3*mm)] triage=[['CHECK','ACT NOW IF PRESENT'],[P('<b>Appearance / CNS</b>','Cell'),P('Altered mental status, inconsolability, lethargy, seizure, focal deficit, bulging fontanelle, neck stiffness, petechial or purpuric rash.', 'Cell')],[P('<b>Breathing</b>','Cell'),P('Respiratory distress, cyanosis, severe chest indrawing, low oxygen saturation, apnea, suspected pneumonia/sepsis.', 'Cell')],[P('<b>Circulation / hydration</b>','Cell'),P('Hypotension, poor perfusion, prolonged capillary refill, severe tachycardia, oliguria/anuria, inability to drink, persistent vomiting, severe dehydration.', 'Cell')],[P('<b>High-risk host</b>','Cell'),P('Age under 3 months with temperature ≥38°C, pregnancy, major immunosuppression, neutropenia, advanced frailty, major cardiac/renal/hepatic disease.', 'Cell')]] t=Table(triage,colWidths=[43*mm,135*mm],repeatRows=1); t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),navy),('TEXTCOLOR',(0,0),(-1,0),colors.white),('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'),('FONTSIZE',(0,0),(-1,0),8),('GRID',(0,0),(-1,-1),0.35,line),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),6),('RIGHTPADDING',(0,0),(-1,-1),6),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5),('BACKGROUND',(0,1),(-1,-1),colors.white)])); story += [t, Spacer(1,5*mm)] story += [section_bar('2. PRE-PRESCRIBING CHECKLIST'), Spacer(1,2*mm)] story += bullets(['Record temperature method, illness day, symptom pattern, and focused exposure history: travel, mosquito/tick risk, sick contacts, food/water, urinary symptoms, medicines.', 'Measure and document: weight in children, vital signs, hydration, mental state, focused respiratory/ENT/abdominal/skin/urinary exam.', 'Ask: drug allergy; all medicines and combination cold/flu products; liver disease/heavy alcohol use; kidney disease; ulcer/GI bleed; anticoagulants; asthma/NSAID reaction; pregnancy/breastfeeding.', 'Decide the working syndrome and whether tests/referral are needed before symptom treatment. Do not infer safety from a temporary temperature reduction.']) story += [Spacer(1,4*mm), section_bar('3. ANTYPYRETIC SELECTION: A PRACTICAL COMPARISON'), Spacer(1,3*mm)] med=[['AGENT','WHEN IT FITS','DO NOT USE / USE EXTRA CAUTION','COUNSELLING POINT'],[P('<b>Paracetamol<br/>(acetaminophen)</b>','Cell'),P('Usually the first symptomatic option when the patient is distressed by fever or has pain, especially if NSAIDs are unsuitable.', 'Cell'),P('Serious hepatic impairment, suspected overdose, substantial alcohol use, severe malnutrition. Count all combination products.', 'Cell'),P('Use the current local formulary maximum. Prevent duplicate ingredient exposure. It does not meaningfully treat inflammation or platelet function.', 'Cell')],[P('<b>Ibuprofen<br/>(NSAID)</b>','Cell'),P('Fever with inflammatory pain when patient is hydrated and has no NSAID risk factors.', 'Cell'),P('Dehydration, AKI/CKD, active ulcer or GI bleeding, anticoagulation/bleeding risk, NSAID hypersensitivity, some asthma, significant cardiovascular risk. Avoid in suspected dengue. Avoid in later pregnancy; follow local obstetric advice.', 'Cell'),P('Give with fluid/food if appropriate. Stop if GI bleed, wheeze/allergy, reduced urine, or worsening dehydration.', 'Cell')],[P('<b>Aspirin</b>','Cell'),P('Not a routine antipyretic choice.', 'Cell'),P('Do not use for fever in children or adolescents because of Reye syndrome risk. Bleeding and GI risks in adults.', 'Cell'),P('Do not substitute for paracetamol/ibuprofen in pediatric fever.', 'Cell')]] t=Table(med,colWidths=[29*mm,45*mm,63*mm,41*mm],repeatRows=1); t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),navy),('TEXTCOLOR',(0,0),(-1,0),colors.white),('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'),('FONTSIZE',(0,0),(-1,0),7.2),('GRID',(0,0),(-1,-1),0.35,line),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),4),('RIGHTPADDING',(0,0),(-1,-1),4),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4),('ROWBACKGROUNDS',(0,1),(-1,-1),[colors.white,HexColor('#F6FAFA')])])) ; story += [t] story += [Spacer(1,5*mm), P('<b>Do not:</b> treat a number alone; give both agents simultaneously in children; routinely alternate agents because it increases error risk; use tepid sponging; give antibiotics without a supported bacterial diagnosis; or give NSAIDs where dengue or significant dehydration is possible.', 'Callout')] story += [PageBreak(), section_bar('4. CHILDREN: SAFETY RULES'), Spacer(1,3*mm)] story += bullets(['Use antipyretics only for <b>distress or discomfort</b>, not solely to reduce the temperature. NICE recommends either paracetamol or ibuprofen, not both together. Change to the other agent only if distress is not relieved or recurs before the next dose is due.', 'Do not use response to antipyretics to distinguish serious from non-serious illness. Antipyretics do not prevent febrile seizures.', 'Always prescribe by <b>current weight</b> and product concentration. Use an oral syringe, write the dose in mg and mL, interval, maximum doses in 24 hours, and duration. Verify the local pediatric formulary.', 'Do not use aspirin in children/adolescents. Avoid ibuprofen in dehydration, varicella if local guidance advises avoidance, renal disease, GI bleeding risk, and suspected dengue.', '<b>Urgent assessment:</b> age under 3 months with ≥38°C, non-blanching rash, meningism, focal neurology, prolonged/recurrent seizure, cyanosis, respiratory distress, poor perfusion, severe dehydration, or concern from caregiver.']) story += [Spacer(1,4*mm), section_bar('5. ADULTS: SAFETY RULES'), Spacer(1,3*mm)] story += bullets(['Assess for pregnancy, immunosuppression, sepsis risk, medication interactions, liver/kidney disease, anticoagulants, and a source requiring targeted therapy.', 'In older adults, fever may be absent despite serious infection. New confusion, functional decline, hypotension, tachypnea, hypoxia, or oliguria needs prompt escalation.', 'Use a single antipyretic where possible. Ensure fluids if appropriate and give clear stop rules. Avoid NSAIDs in AKI risk, volume depletion, GI bleeding risk, or suspected dengue.', 'Persistent fever, recurrent fever, or fever without source needs diagnosis-focused reassessment rather than repeated symptomatic prescriptions.']) story += [Spacer(1,4*mm), section_bar('6. FEVER SYNDROME PROMPTS: WHAT TO LOOK FOR'), Spacer(1,3*mm)] syn=[['SYNDROME','FOCUSED QUESTIONS / EXAM','USUAL NEXT STEP'],[P('<b>Respiratory</b>','Cell'),P('Cough, dyspnea, pleuritic pain, oxygen saturation, focal chest signs; sore throat, rhinorrhea, ear pain.', 'Cell'),P('Assess for pneumonia, influenza/COVID where relevant, streptococcal pharyngitis when criteria/testing support it. Viral URTI usually needs symptomatic care, not antibiotics.', 'Cell')],[P('<b>Urinary</b>','Cell'),P('Dysuria, frequency, flank pain, vomiting, pregnancy; urine testing when indicated.', 'Cell'),P('Consider cystitis versus pyelonephritis. Fever with flank pain/systemic features merits prompt assessment and locally guided therapy.', 'Cell')],[P('<b>GI / travel</b>','Cell'),P('Diarrhea, vomiting, abdominal pain, blood in stool, jaundice, water/food exposure, travel.', 'Cell'),P('Hydration assessment first. Consider enteric, hepatitis, or invasive infection based on syndrome and location.', 'Cell')],[P('<b>Vector-borne</b>','Cell'),P('Travel/endemic exposure, day of illness, myalgia, rash, bleeding, hypotension, thrombocytopenia risk.', 'Cell'),P('Test/referral according to local malaria/dengue/rickettsial protocol. Avoid NSAIDs in possible dengue.', 'Cell')],[P('<b>Skin / soft tissue</b>','Cell'),P('Rapidly spreading erythema, pain out of proportion, abscess, wound, diabetes/immunosuppression.', 'Cell'),P('Look for drainage requirement, necrotizing infection, or sepsis. Antibiotics depend on defined syndrome/local policy.', 'Cell')]] t=Table(syn,colWidths=[27*mm,78*mm,73*mm],repeatRows=1);t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),navy),('TEXTCOLOR',(0,0),(-1,0),colors.white),('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'),('FONTSIZE',(0,0),(-1,0),7.2),('GRID',(0,0),(-1,-1),0.35,line),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),4),('RIGHTPADDING',(0,0),(-1,-1),4),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4),('ROWBACKGROUNDS',(0,1),(-1,-1),[colors.white,HexColor('#F6FAFA')])])) ; story += [t] story += [Spacer(1,5*mm), section_bar('7. DISCHARGE / SAFETY-NET SCRIPT'), Spacer(1,3*mm)] story += [P('<b>Tell the patient/caregiver:</b> “Use the medicine only as written. Do not combine products that contain paracetamol/acetaminophen. Keep drinking if able. Seek urgent care now for trouble breathing, blue/grey skin, confusion or unusual sleepiness, stiff neck, a non-blanching rash, seizure, severe weakness, fainting, reduced urine, inability to drink/keep fluids down, bleeding, or rapid worsening. Return for review if fever persists, the diagnosis remains uncertain, or any planned follow-up test is abnormal.”', 'Bodyx')] story += [Spacer(1,4*mm), section_bar('8. PRESCRIPTION AND DOCUMENTATION PROMPT'), Spacer(1,2*mm)] story += [P('<b>Document:</b> working diagnosis and differential; red-flag screen; vital signs and weight; medication/allergy/comorbidity review; selected medicine and contraindication check; dose in mg and mL/tablets, interval and 24-hour maximum from local formulary; tests and results; antimicrobial indication if any; follow-up timing; and explicit return precautions.', 'Bodyx')] story += [Spacer(1,6*mm), P('<b>Sources used for this quick reference</b><br/>NICE, <i>Fever in under 5s: assessment and initial management</i>, NG143, recommendations accessed October 2026. WHO, <i>Informal consultation on fever management in peripheral health care settings</i>. Tintinalli’s Emergency Medicine: A Comprehensive Study, sections on pediatric fever and nonopioid analgesics. Recent evidence screen: Marseglia et al., systematic review of ibuprofen versus acetaminophen in febrile children, PMID 42870135 (2026). Local protocols and current national formularies supersede this document.', 'Small')] doc.build(story,onFirstPage=footer,onLaterPages=footer) print(out) PY
~/fever-clinic-reference/output
python - <<'PY' from pypdf import PdfReader p='/tmp/workspace/fever-clinic-reference/output/fever_medicine_clinic_quick_reference.pdf' r=PdfReader(p) text='\n'.join(page.extract_text() or '' for page in r.pages) print('pages=',len(r.pages)) print('size=',__import__('os').path.getsize(p)) for s in ['FEVER-MEDICINE','ANTIPYRETIC SELECTION','CHILDREN: SAFETY RULES','Sources used']: print(s, s in text) print(text[:700]) PY
fever medicine clinic quick reference
PDF Document · PDF