Opd guide pdf

Asking for Preferences
Asking for Preferences
Reading File
Reading File
Running Command

mkdir -p /home/daytona/workspace/opd-guide && ls /home/daytona/workspace/opd-gui…

Writing File

~/opd-guide/create_opd_guide.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import mm, cm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    PageBreak, HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.pdfgen import canvas

# ─── Color Palette ────────────────────────────────────────────────────────────
NAVY      = colors.HexColor("#003366")
TEAL      = colors.HexColor("#007B7F")
LIGHT_BG  = colors.HexColor("#EAF4F4")
ACCENT    = colors.HexColor("#E87722")
LIGHT_ROW = colors.HexColor("#F0F8FF")
ALT_ROW   = colors.HexColor("#DDEEFF")
WHITE     = colors.white
BLACK     = colors.black
GRAY      = colors.HexColor("#555555")
LIGHT_GRAY= colors.HexColor("#888888")

PAGE_W, PAGE_H = A4

# ─── Styles ───────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()

def make_style(name, **kwargs):
    return ParagraphStyle(name=name, **kwargs)

title_style = make_style("DocTitle",
    fontSize=28, textColor=WHITE, alignment=TA_CENTER,
    fontName="Helvetica-Bold", spaceAfter=6)

subtitle_style = make_style("DocSub",
    fontSize=13, textColor=WHITE, alignment=TA_CENTER,
    fontName="Helvetica", spaceAfter=4)

chapter_style = make_style("Chapter",
    fontSize=16, textColor=WHITE, fontName="Helvetica-Bold",
    alignment=TA_LEFT, spaceAfter=2)

heading2_style = make_style("H2",
    fontSize=13, textColor=NAVY, fontName="Helvetica-Bold",
    spaceBefore=10, spaceAfter=4)

heading3_style = make_style("H3",
    fontSize=11, textColor=TEAL, fontName="Helvetica-Bold",
    spaceBefore=6, spaceAfter=3)

body_style = make_style("Body",
    fontSize=10, textColor=BLACK, fontName="Helvetica",
    leading=15, spaceAfter=4, alignment=TA_JUSTIFY)

bullet_style = make_style("Bullet",
    fontSize=10, textColor=BLACK, fontName="Helvetica",
    leading=14, spaceAfter=2, leftIndent=14,
    bulletIndent=4)

note_style = make_style("Note",
    fontSize=9, textColor=GRAY, fontName="Helvetica-Oblique",
    leading=12, spaceAfter=4, leftIndent=10)

footer_style = make_style("Footer",
    fontSize=8, textColor=LIGHT_GRAY, alignment=TA_CENTER)

# ─── Header / Footer ──────────────────────────────────────────────────────────
def on_page(canvas_obj, doc):
    canvas_obj.saveState()
    # Top accent line
    canvas_obj.setFillColor(TEAL)
    canvas_obj.rect(0, PAGE_H - 8*mm, PAGE_W, 4*mm, fill=1, stroke=0)
    # Bottom bar
    canvas_obj.setFillColor(NAVY)
    canvas_obj.rect(0, 0, PAGE_W, 12*mm, fill=1, stroke=0)
    canvas_obj.setFillColor(WHITE)
    canvas_obj.setFont("Helvetica", 8)
    canvas_obj.drawString(15*mm, 4*mm, "OPD OPERATIONAL GUIDE  |  General / Multi-Specialty")
    canvas_obj.drawRightString(PAGE_W - 15*mm, 4*mm,
        f"Page {doc.page}  |  Confidential - All Staff")
    canvas_obj.restoreState()

# ─── Chapter banner helper ─────────────────────────────────────────────────────
def chapter_banner(title, subtitle=None):
    """Returns a table that acts as a full-width colored chapter header."""
    inner = [Paragraph(title, chapter_style)]
    if subtitle:
        inner.append(Paragraph(subtitle, make_style("CSub",
            fontSize=10, textColor=colors.HexColor("#AADDEE"),
            fontName="Helvetica-Oblique")))
    t = Table([[inner]], colWidths=[PAGE_W - 40*mm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), NAVY),
        ("TOPPADDING",    (0,0), (-1,-1), 8),
        ("BOTTOMPADDING", (0,0), (-1,-1), 8),
        ("LEFTPADDING",   (0,0), (-1,-1), 12),
        ("RIGHTPADDING",  (0,0), (-1,-1), 12),
        ("ROUNDEDCORNERS", [4]),
    ]))
    return t

def section_box(content_list, bg=LIGHT_BG):
    """Wraps content in a shaded box."""
    t = Table([[content_list]], colWidths=[PAGE_W - 40*mm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("TOPPADDING",    (0,0), (-1,-1), 8),
        ("BOTTOMPADDING", (0,0), (-1,-1), 8),
        ("LEFTPADDING",   (0,0), (-1,-1), 12),
        ("RIGHTPADDING",  (0,0), (-1,-1), 12),
        ("BOX", (0,0), (-1,-1), 0.5, TEAL),
    ]))
    return t

def make_table(headers, rows, col_widths=None):
    data = [[Paragraph(h, make_style("TH",
                fontSize=10, fontName="Helvetica-Bold",
                textColor=WHITE)) for h in headers]]
    for i, row in enumerate(rows):
        bg = LIGHT_ROW if i % 2 == 0 else ALT_ROW
        data.append([Paragraph(str(c), make_style(f"TC{i}",
            fontSize=9, fontName="Helvetica", leading=13)) for c in row])
    avail = PAGE_W - 40*mm
    cw = col_widths if col_widths else [avail / len(headers)] * len(headers)
    t = Table(data, colWidths=cw)
    style = TableStyle([
        ("BACKGROUND", (0,0), (-1,0), TEAL),
        ("ROWBACKGROUNDS", (0,1), (-1,-1), [LIGHT_ROW, ALT_ROW]),
        ("GRID", (0,0), (-1,-1), 0.3, colors.HexColor("#AACCCC")),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 6),
        ("RIGHTPADDING",  (0,0), (-1,-1), 6),
        ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
    ])
    t.setStyle(style)
    return t

# ─── Cover Page ───────────────────────────────────────────────────────────────
def cover_page():
    elems = []

    # Big colored top block
    top_table = Table([[
        Paragraph("OPD OPERATIONAL GUIDE", title_style),
        Paragraph("General / Multi-Specialty Hospital", subtitle_style),
        Paragraph("Edition 2026  |  All Staff Reference Manual", subtitle_style),
    ]], colWidths=[PAGE_W - 40*mm])
    top_table.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), NAVY),
        ("TOPPADDING",    (0,0), (-1,-1), 30),
        ("BOTTOMPADDING", (0,0), (-1,-1), 30),
        ("LEFTPADDING",   (0,0), (-1,-1), 20),
        ("RIGHTPADDING",  (0,0), (-1,-1), 20),
    ]))
    elems.append(top_table)
    elems.append(Spacer(1, 14))

    # Accent strip
    elems.append(HRFlowable(width="100%", thickness=4, color=ACCENT, spaceAfter=14))

    # Quick-reference info boxes
    info_data = [
        ["Department", "Purpose", "Issued By", "Review Date"],
        ["All OPD Departments", "Operational Reference", "Hospital Administration", "July 2026"],
    ]
    elems.append(make_table(info_data[0], [info_data[1]]))
    elems.append(Spacer(1, 20))

    # About this guide
    elems.append(Paragraph("About This Guide", heading2_style))
    elems.append(Paragraph(
        "This Outpatient Department (OPD) Operational Guide is the definitive reference for all staff "
        "working in or supporting OPD services. It covers patient flow, registration, triage, clinical "
        "consultation, investigations, pharmacy, documentation, infection control, and emergency response. "
        "All staff are expected to read, understand, and comply with the procedures described herein.",
        body_style))
    elems.append(Spacer(1, 8))

    # Scope table
    elems.append(Paragraph("Scope of This Document", heading3_style))
    scope_rows = [
        ["Front Desk / Registration", "Patient registration, appointment management, billing"],
        ["Triage Nurses",             "Vitals, triage categorisation, queue management"],
        ["Medical Officers / Residents", "Consultation, clinical documentation, ordering investigations"],
        ["Specialist Consultants",    "Complex case review, referrals, procedure orders"],
        ["Pharmacy Staff",            "Dispensing, counselling, returns management"],
        ["Housekeeping / Support",    "Cleanliness, equipment handling, waste disposal"],
        ["OPD Manager / Supervisor",  "Operations oversight, staff scheduling, quality monitoring"],
    ]
    elems.append(make_table(["Role", "Primary Responsibilities"], scope_rows,
                             col_widths=[85*mm, PAGE_W - 40*mm - 85*mm]))
    elems.append(PageBreak())
    return elems

# ─── Table of Contents ────────────────────────────────────────────────────────
def toc_page():
    elems = []
    elems.append(chapter_banner("TABLE OF CONTENTS"))
    elems.append(Spacer(1, 12))

    sections = [
        ("1", "OPD Overview & Objectives",             "3"),
        ("2", "Patient Registration & Appointment",    "4"),
        ("3", "Triage & Vital Signs Assessment",       "5"),
        ("4", "Consultation Flow & Clinical Standards","6"),
        ("5", "Investigations & Diagnostic Services",  "7"),
        ("6", "Pharmacy & Prescription Management",    "8"),
        ("7", "Referral & Follow-up Protocols",        "9"),
        ("8", "Infection Prevention & Control",        "10"),
        ("9", "Emergency Response in OPD",             "11"),
        ("10","Documentation & Medical Records",       "12"),
        ("11","Patient Rights & Feedback",             "13"),
        ("12","Staff Conduct & Escalation",            "14"),
        ("13","Key Performance Indicators",            "15"),
        ("14","Quick Reference & Contacts",            "16"),
    ]
    toc_data = [[s, t, p] for s, t, p in sections]
    elems.append(make_table(["#", "Section", "Page"],
                             toc_data,
                             col_widths=[15*mm, PAGE_W - 40*mm - 35*mm, 20*mm]))
    elems.append(PageBreak())
    return elems

# ─── Section 1: OPD Overview ──────────────────────────────────────────────────
def section_overview():
    e = []
    e.append(chapter_banner("SECTION 1", "OPD Overview & Objectives"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("1.1  What is the OPD?", heading2_style))
    e.append(Paragraph(
        "The Outpatient Department (OPD) is the first point of contact for the majority of patients "
        "seeking non-emergency medical care. It provides scheduled consultations, follow-up visits, "
        "minor procedures, and allied health services without admission to a hospital ward.",
        body_style))

    e.append(Paragraph("1.2  Core Objectives", heading2_style))
    objectives = [
        "Provide timely, safe, and dignified care to every patient.",
        "Maintain efficient patient flow to minimise waiting times.",
        "Ensure accurate clinical documentation for continuity of care.",
        "Promote infection prevention and a clean clinical environment.",
        "Facilitate seamless referrals to inpatient and specialist services.",
        "Collect patient feedback to drive continuous quality improvement.",
    ]
    for obj in objectives:
        e.append(Paragraph(f"•  {obj}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("1.3  OPD Operating Hours", heading2_style))
    hours_rows = [
        ["General OPD",     "Monday - Saturday", "08:00 - 17:00"],
        ["Specialist Clinics","Monday - Friday",  "09:00 - 15:00"],
        ["Dental OPD",      "Monday - Friday",   "09:00 - 14:00"],
        ["Paediatric OPD",  "Monday - Saturday", "08:00 - 16:00"],
        ["Dermatology / Eye","Tuesday, Thursday, Saturday","10:00 - 14:00"],
        ["After-Hours Walk-in","Daily",           "17:00 - 22:00"],
    ]
    e.append(make_table(["Clinic", "Days", "Hours"], hours_rows,
                         col_widths=[70*mm, 70*mm, PAGE_W - 40*mm - 140*mm]))
    e.append(Paragraph(
        "Note: Hours may change on public holidays. Refer to the monthly schedule posted at the OPD notice board.",
        note_style))
    e.append(PageBreak())
    return e

# ─── Section 2: Registration ──────────────────────────────────────────────────
def section_registration():
    e = []
    e.append(chapter_banner("SECTION 2", "Patient Registration & Appointment"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("2.1  Walk-in Registration", heading2_style))
    steps = [
        "Patient approaches the registration counter; staff greets courteously.",
        "Verify patient identity using a government-issued photo ID.",
        "Search existing records in the Hospital Information System (HIS); create a new record if first visit.",
        "Confirm presenting complaint and direct to appropriate specialty counter.",
        "Issue a token / queue number and estimated waiting time.",
        "Collect registration fee (if applicable) and issue receipt.",
        "Guide patient to the waiting area.",
    ]
    for i, s in enumerate(steps, 1):
        e.append(Paragraph(f"<b>Step {i}:</b>  {s}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("2.2  Appointment Booking", heading2_style))
    appt_rows = [
        ["In-person",  "Registration counter",          "Same day / advance"],
        ["Telephone",  "Call centre (Ext. 200)",        "Advance booking only"],
        ["Online",     "Hospital patient portal",       "Up to 30 days ahead"],
        ["Mobile App", "Hospital app (iOS / Android)",  "Up to 30 days ahead"],
    ]
    e.append(make_table(["Channel", "Method", "Window"], appt_rows))

    e.append(Spacer(1, 8))
    e.append(Paragraph("2.3  Required Documentation", heading2_style))
    docs = [
        "Valid government-issued photo ID (Aadhaar / Passport / Driver Licence / Voter ID).",
        "Previous OPD card or UHID number (for follow-up patients).",
        "Referral letter (if referred from another facility).",
        "Previous investigation reports relevant to the presenting complaint.",
        "Insurance card / pre-authorisation letter (for insured patients).",
    ]
    for d in docs:
        e.append(Paragraph(f"&#8226;  {d}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("2.4  Cancellation & No-Show Policy", heading2_style))
    e.append(Paragraph(
        "Patients must cancel appointments at least 4 hours in advance by calling the call centre "
        "or using the online portal. Repeated no-shows (3 or more) may require administrative review "
        "before rebooking. Cancelled slots should be offered to walk-in or waiting-list patients promptly.",
        body_style))
    e.append(PageBreak())
    return e

# ─── Section 3: Triage ────────────────────────────────────────────────────────
def section_triage():
    e = []
    e.append(chapter_banner("SECTION 3", "Triage & Vital Signs Assessment"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("3.1  Purpose of Triage", heading2_style))
    e.append(Paragraph(
        "Triage ensures patients are seen in order of clinical urgency rather than order of arrival. "
        "A trained triage nurse must assess every patient within 5 minutes of registration.",
        body_style))

    e.append(Paragraph("3.2  Triage Categories", heading2_style))
    triage_rows = [
        ["Priority 1 - IMMEDIATE (Red)",   "Life-threatening; act within 0-10 min",
         "Chest pain, difficulty breathing, altered consciousness, severe bleeding"],
        ["Priority 2 - URGENT (Yellow)",   "Potentially serious; act within 10-30 min",
         "High fever >39 C, moderate pain, fractures, vomiting with dehydration"],
        ["Priority 3 - ROUTINE (Green)",   "Stable; wait is acceptable (30-60 min)",
         "Mild symptoms, follow-up visits, routine check-ups"],
        ["Priority 4 - NON-URGENT (Blue)", "Minor; can wait > 60 min or redirect to GP",
         "Minor cuts, insect bites, prescription refills, routine certificates"],
    ]
    e.append(make_table(["Category", "Action Timeline", "Examples"], triage_rows,
                         col_widths=[58*mm, 42*mm, PAGE_W - 40*mm - 100*mm]))

    e.append(Spacer(1, 8))
    e.append(Paragraph("3.3  Standard Vital Signs Protocol", heading2_style))
    vitals = [
        ("Temperature",       "Oral / axillary / tympanic", "Normal 36.1 - 37.2 degC"),
        ("Pulse Rate",        "Radial artery, 60 seconds",  "Normal 60 - 100 bpm"),
        ("Respiratory Rate",  "Chest observation, 60 s",    "Normal 12 - 20 breaths/min"),
        ("Blood Pressure",    "Upper arm cuff, seated 5 min","Normal < 120/80 mmHg"),
        ("SpO2",              "Pulse oximeter, index finger","Normal > 95%"),
        ("Blood Glucose (PRN)","Glucometer, fingertip",      "Fasting < 100 mg/dL"),
        ("Weight / Height",   "Calibrated scale / stadiometer","Record BMI"),
        ("Pain Score",        "Visual Analogue Scale 0-10",  "Document and act >= 7"),
    ]
    e.append(make_table(["Parameter", "Method", "Reference Range"], vitals,
                         col_widths=[50*mm, 65*mm, PAGE_W - 40*mm - 115*mm]))

    e.append(Spacer(1, 8))
    e.append(Paragraph("3.4  Red-Flag Signs - Immediate Escalation Required", heading2_style))
    red_flags = [
        "Oxygen saturation < 90% on room air",
        "Systolic BP < 90 mmHg or > 180 mmHg with symptoms",
        "Heart rate < 40 or > 150 bpm",
        "Glasgow Coma Scale (GCS) score < 13",
        "Active seizure or post-ictal state",
        "Suspected stroke (FAST positive: Face drooping, Arm weakness, Speech difficulty, Time to call)",
        "Anaphylaxis (urticaria + hypotension + bronchospasm)",
        "Uncontrolled haemorrhage",
    ]
    for rf in red_flags:
        e.append(Paragraph(f"&#9888;  {rf}", make_style("RF",
            fontSize=10, textColor=colors.HexColor("#CC0000"),
            fontName="Helvetica-Bold", leading=14, leftIndent=12, spaceAfter=3)))
    e.append(PageBreak())
    return e

# ─── Section 4: Consultation ──────────────────────────────────────────────────
def section_consultation():
    e = []
    e.append(chapter_banner("SECTION 4", "Consultation Flow & Clinical Standards"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("4.1  Consultation Room Standards", heading2_style))
    standards = [
        "Ensure privacy - door/curtain closed before examination.",
        "Confirm patient identity (name + date of birth) before beginning.",
        "Wash hands / use hand sanitiser before and after every patient contact.",
        "Offer a chaperone for intimate examinations; document consent.",
        "Explain diagnosis, treatment plan, and next steps in simple language.",
        "Provide written instructions or a printed prescription to every patient.",
    ]
    for s in standards:
        e.append(Paragraph(f"&#8226;  {s}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("4.2  SOAP Note Documentation", heading2_style))
    soap_rows = [
        ["S - Subjective", "Chief complaint, history of present illness, past medical history, drug history, allergies, social history, family history"],
        ["O - Objective",  "Vital signs, physical examination findings, relevant investigations"],
        ["A - Assessment", "Diagnosis or differential diagnoses with reasoning"],
        ["P - Plan",       "Investigations ordered, treatment prescribed, referrals, follow-up date, patient education"],
    ]
    e.append(make_table(["Component", "Content"], soap_rows,
                         col_widths=[45*mm, PAGE_W - 40*mm - 45*mm]))

    e.append(Spacer(1, 8))
    e.append(Paragraph("4.3  Prescription Standards", heading2_style))
    rx_items = [
        "Write legibly or use electronic prescribing module.",
        "Include: patient name, UHID, date, drug name (generic preferred), dose, frequency, duration, route.",
        "Indicate allergies prominently at the top of the prescription.",
        "Sign and stamp with designation and registration number.",
        "Avoid abbreviations that may be misread (e.g., use 'micrograms' not 'mcg').",
        "High-alert medications require dual check and second physician signature.",
    ]
    for item in rx_items:
        e.append(Paragraph(f"&#8226;  {item}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("4.4  Average Consultation Time Targets", heading2_style))
    time_rows = [
        ["New Patient - General",   "15 - 20 minutes"],
        ["Follow-up - General",     "8 - 12 minutes"],
        ["New Patient - Specialist","20 - 30 minutes"],
        ["Follow-up - Specialist",  "10 - 15 minutes"],
        ["Minor Procedure",         "20 - 45 minutes"],
    ]
    e.append(make_table(["Visit Type", "Target Duration"], time_rows,
                         col_widths=[100*mm, PAGE_W - 40*mm - 100*mm]))
    e.append(PageBreak())
    return e

# ─── Section 5: Investigations ────────────────────────────────────────────────
def section_investigations():
    e = []
    e.append(chapter_banner("SECTION 5", "Investigations & Diagnostic Services"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("5.1  Ordering Investigations", heading2_style))
    steps = [
        "Investigations must be ordered through the HIS; paper requests are only for system downtime.",
        "Clearly indicate clinical indication on every request form.",
        "Urgent requests must be verbally communicated to the lab / radiology team.",
        "Inform the patient of expected turnaround times and collection instructions.",
        "Review all results on the same day or within 24 hours of reporting.",
        "Critical values must be communicated verbally and documented immediately.",
    ]
    for s in steps:
        e.append(Paragraph(f"&#8226;  {s}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("5.2  Turnaround Time (TAT) Targets", heading2_style))
    tat_rows = [
        ["Routine haematology / biochemistry", "2 - 4 hours"],
        ["Urgent / STAT tests",                "< 1 hour"],
        ["Microbiology cultures",              "24 - 72 hours"],
        ["Histopathology",                     "5 - 7 working days"],
        ["Plain X-ray (reporting)",            "1 - 2 hours"],
        ["Ultrasound abdomen",                 "Same day (scheduled)"],
        ["CT scan (routine)",                  "Same day / next day"],
        ["ECG",                                "15 minutes"],
        ["Pulmonary Function Test",            "45 minutes"],
    ]
    e.append(make_table(["Investigation", "Target TAT"], tat_rows,
                         col_widths=[110*mm, PAGE_W - 40*mm - 110*mm]))

    e.append(Spacer(1, 8))
    e.append(Paragraph("5.3  Critical Value Policy", heading2_style))
    e.append(Paragraph(
        "When the laboratory or radiology department reports a critical value, they must call the "
        "ordering clinician directly within 15 minutes. The clinician must acknowledge, document the "
        "call (time, value, action taken) in the HIS, and initiate appropriate management immediately.",
        body_style))

    critical = [
        "Haemoglobin < 6.0 g/dL or > 20 g/dL",
        "Platelet count < 50 x 10^9/L or > 1000 x 10^9/L",
        "Serum K+ < 2.8 or > 6.5 mEq/L",
        "Serum Na+ < 120 or > 160 mEq/L",
        "Blood glucose < 50 or > 500 mg/dL",
        "INR > 5.0",
        "Troponin I positive (any level)",
        "SpO2 < 85% on pulse oximetry",
    ]
    for c in critical:
        e.append(Paragraph(f"&#9888;  {c}", make_style("Crit",
            fontSize=10, textColor=colors.HexColor("#880000"),
            fontName="Helvetica", leading=13, leftIndent=12, spaceAfter=3)))
    e.append(PageBreak())
    return e

# ─── Section 6: Pharmacy ──────────────────────────────────────────────────────
def section_pharmacy():
    e = []
    e.append(chapter_banner("SECTION 6", "Pharmacy & Prescription Management"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("6.1  Prescription Submission & Dispensing", heading2_style))
    pharm_steps = [
        "Patient submits prescription at the OPD pharmacy counter.",
        "Pharmacist verifies patient identity, UHID, and prescription authenticity.",
        "Check for drug interactions, allergies, and dose appropriateness.",
        "Dispense medications and counsel patient on usage, side effects, and storage.",
        "Issue a labelled package with printed instructions for every medication.",
        "Record dispensing in the pharmacy management system.",
    ]
    for s in pharm_steps:
        e.append(Paragraph(f"&#8226;  {s}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("6.2  Controlled Substance Protocol", heading2_style))
    e.append(Paragraph(
        "Schedule H / H1 / X drugs require a prescription signed and stamped by a registered medical "
        "practitioner. Quantity dispensed must match prescription exactly. All controlled substance "
        "transactions must be recorded in the controlled drug register and reconciled daily.",
        body_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("6.3  Medication Return & Disposal", heading2_style))
    e.append(Paragraph(
        "Patients may return unused, sealed medications within 7 days of purchase with receipt. "
        "Returned medications are quarantined and disposed of per biomedical waste rules - they "
        "must never be re-dispensed. Document returns in the system.",
        body_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("6.4  Prescription Error Reporting", heading2_style))
    e.append(Paragraph(
        "Any prescription ambiguity must be clarified with the prescribing physician before dispensing. "
        "Near-miss events and dispensing errors must be reported through the Incident Reporting System "
        "within 24 hours. Patient safety is the absolute priority.",
        body_style))
    e.append(PageBreak())
    return e

# ─── Section 7: Referral ──────────────────────────────────────────────────────
def section_referral():
    e = []
    e.append(chapter_banner("SECTION 7", "Referral & Follow-up Protocols"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("7.1  Internal Referral", heading2_style))
    e.append(Paragraph(
        "Refer patients within the hospital using the HIS referral module. The referral should include "
        "a clinical summary, reason for referral, and urgency level. The receiving specialist acknowledges "
        "within 2 hours for urgent and 24 hours for routine referrals.",
        body_style))

    e.append(Paragraph("7.2  External Referral", heading2_style))
    e.append(Paragraph(
        "When referring to an external facility, provide a signed referral letter with: patient demographics, "
        "diagnosis, treatment given, investigations, and reason for referral. Ensure patient/family "
        "understands the referral and has transport if needed.",
        body_style))

    e.append(Spacer(1, 6))
    e.append(Paragraph("7.3  Referral Urgency Classification", heading2_style))
    ref_rows = [
        ["Routine",   "> 24 hours", "Stable, non-urgent condition requiring specialist input"],
        ["Soon",      "Same day",   "Worsening but currently stable; specialist review needed today"],
        ["Urgent",    "< 2 hours",  "Significant clinical concern; potential for deterioration"],
        ["Emergency", "Immediate",  "Activate emergency team; patient at risk of serious harm"],
    ]
    e.append(make_table(["Level", "Response Time", "Criteria"], ref_rows,
                         col_widths=[28*mm, 28*mm, PAGE_W - 40*mm - 56*mm]))

    e.append(Spacer(1, 8))
    e.append(Paragraph("7.4  Follow-up Appointments", heading2_style))
    followup = [
        "Every patient with an ongoing condition should leave OPD with a follow-up appointment date.",
        "Follow-up intervals should be guided by the clinical condition and treatment plan.",
        "SMS / app reminders should be sent 48 hours before the scheduled appointment.",
        "Patients who miss follow-up should be contacted by the care coordinator within 48 hours.",
        "Discharge from OPD follow-up must be documented with clear patient instructions.",
    ]
    for f in followup:
        e.append(Paragraph(f"&#8226;  {f}", bullet_style))
    e.append(PageBreak())
    return e

# ─── Section 8: Infection Control ────────────────────────────────────────────
def section_ipc():
    e = []
    e.append(chapter_banner("SECTION 8", "Infection Prevention & Control (IPC)"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("8.1  Hand Hygiene - WHO 5 Moments", heading2_style))
    moments = [
        "Before touching a patient",
        "Before a clean / aseptic procedure",
        "After body fluid exposure risk",
        "After touching a patient",
        "After touching a patient's surroundings",
    ]
    for i, m in enumerate(moments, 1):
        e.append(Paragraph(f"<b>{i}.</b>  {m}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("8.2  Personal Protective Equipment (PPE)", heading2_style))
    ppe_rows = [
        ["Standard examination",           "Gloves (as needed), apron if splash risk"],
        ["Suspected airborne infection",   "N95 respirator, gown, eye protection, gloves"],
        ["Wound dressing / minor procedure","Sterile gloves, mask, drape"],
        ["COVID-19 / influenza screening", "Surgical mask, gloves, face shield or goggles"],
    ]
    e.append(make_table(["Situation", "PPE Required"], ppe_rows,
                         col_widths=[75*mm, PAGE_W - 40*mm - 75*mm]))

    e.append(Spacer(1, 8))
    e.append(Paragraph("8.3  Environmental Cleaning", heading2_style))
    cleaning = [
        "Consultation rooms: clean between every patient with 70% ethanol or approved disinfectant.",
        "Waiting area: wipe high-touch surfaces (chairs, counters) every 2 hours.",
        "Terminal cleaning: full room cleaning after any known infectious case.",
        "Spills of blood/body fluid: use spill kit; follow written spill management protocol.",
    ]
    for c in cleaning:
        e.append(Paragraph(f"&#8226;  {c}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("8.4  Biomedical Waste Segregation", heading2_style))
    waste_rows = [
        ["Yellow bag",  "Anatomical waste, soiled dressings, body fluids"],
        ["Red bag",     "Recyclable contaminated plastic (syringes, IV bags)"],
        ["Blue / White","Glass, sharps - place directly in sharps container"],
        ["Black bag",   "General non-hazardous solid waste"],
        ["Sharps bin",  "Needles, blades, lancets - never recap needles"],
    ]
    e.append(make_table(["Container", "Contents"], waste_rows,
                         col_widths=[40*mm, PAGE_W - 40*mm - 40*mm]))
    e.append(PageBreak())
    return e

# ─── Section 9: Emergency Response ───────────────────────────────────────────
def section_emergency():
    e = []
    e.append(chapter_banner("SECTION 9", "Emergency Response in OPD"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("9.1  Cardiac Arrest - OPD Response", heading2_style))
    cpr_steps = [
        "Call for help loudly; ask someone to call the crash team (Ext. 999) and get the AED.",
        "Check for responsiveness - shout and tap shoulders.",
        "Open airway (head-tilt chin-lift); look, listen, feel for breathing (max 10 seconds).",
        "If no breathing / only gasping: start CPR - 30 compressions : 2 breaths.",
        "Compression rate 100-120/min; depth 5-6 cm; allow full chest recoil.",
        "Attach AED as soon as available; follow voice prompts.",
        "Continue CPR until crash team arrives or patient shows signs of life.",
        "Document time of arrest, interventions, and outcome.",
    ]
    for i, s in enumerate(cpr_steps, 1):
        e.append(Paragraph(f"<b>{i}.</b>  {s}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("9.2  Anaphylaxis Management", heading2_style))
    ana_steps = [
        "Identify trigger; remove or stop if possible.",
        "Adrenaline (Epinephrine) 0.5 mg (0.5 mL of 1:1000) IM into outer thigh - FIRST-LINE.",
        "Call for help (Ext. 999); lay patient flat, legs elevated (unless breathing difficulty).",
        "High-flow oxygen 10-15 L/min via non-rebreathing mask.",
        "IV access; 500-1000 mL 0.9% saline fluid challenge.",
        "Chlorphenamine 10 mg IV and Hydrocortisone 200 mg IV (after adrenaline).",
        "Monitor vitals every 5 minutes; repeat adrenaline every 5 min if no improvement.",
        "Transfer to Emergency Department.",
    ]
    for i, s in enumerate(ana_steps, 1):
        e.append(Paragraph(f"<b>{i}.</b>  {s}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("9.3  Emergency Equipment Checklist (Daily)", heading2_style))
    eq_rows = [
        ["AED (Defibrillator)",     "Charged and functional"],
        ["Crash Trolley",           "Sealed; check seal intact; reconcile after any use"],
        ["Oxygen cylinder",         "> 75% full; regulator functional"],
        ["Bag-valve-mask (BVM)",    "Present and clean"],
        ["Adrenaline 1:1000 ampoules","In-date stock; minimum 3 ampoules"],
        ["IV cannula kit",          "Various sizes available"],
        ["Glucometer + strips",     "Calibrated; strip expiry checked"],
    ]
    e.append(make_table(["Equipment", "Daily Check Requirement"], eq_rows,
                         col_widths=[80*mm, PAGE_W - 40*mm - 80*mm]))
    e.append(PageBreak())
    return e

# ─── Section 10: Documentation ────────────────────────────────────────────────
def section_documentation():
    e = []
    e.append(chapter_banner("SECTION 10", "Documentation & Medical Records"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("10.1  Principles of Medical Documentation", heading2_style))
    principles = [
        "Every patient encounter must be documented on the same day.",
        "Entries must be legible, dated, timed, and signed with designation.",
        "Corrections: draw a single line through the error, initial, date, and rewrite - never use whiteout.",
        "Late entries: clearly label as 'Late Entry', include original and current date/time.",
        "Use standardised clinical terminology; avoid non-approved abbreviations.",
        "All consented procedures must have a signed consent form attached.",
        "Electronic records are the primary system; paper serves as backup during downtime only.",
    ]
    for p in principles:
        e.append(Paragraph(f"&#8226;  {p}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("10.2  Minimum Dataset per OPD Visit", heading2_style))
    dataset_rows = [
        ["Date and time of visit",    "Mandatory"],
        ["Patient identifiers (name, UHID, DOB)","Mandatory"],
        ["Presenting complaint",      "Mandatory"],
        ["Vital signs",               "Mandatory"],
        ["Clinical examination findings","Mandatory"],
        ["Diagnosis / differential",  "Mandatory"],
        ["Investigations ordered",    "If applicable"],
        ["Treatment / prescription",  "If applicable"],
        ["Referral",                  "If applicable"],
        ["Follow-up plan",            "Mandatory"],
        ["Patient education given",   "Mandatory"],
        ["Signature & stamp",         "Mandatory"],
    ]
    e.append(make_table(["Data Element", "Status"], dataset_rows,
                         col_widths=[100*mm, PAGE_W - 40*mm - 100*mm]))
    e.append(PageBreak())
    return e

# ─── Section 11: Patient Rights ───────────────────────────────────────────────
def section_patient_rights():
    e = []
    e.append(chapter_banner("SECTION 11", "Patient Rights & Feedback"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("11.1  Patient Rights", heading2_style))
    rights = [
        "Right to receive respectful, non-discriminatory care irrespective of gender, religion, or economic status.",
        "Right to be informed about their diagnosis, treatment options, and prognosis in a language they understand.",
        "Right to give or withhold informed consent before any procedure or treatment.",
        "Right to privacy and confidentiality of medical information.",
        "Right to access their own medical records.",
        "Right to refuse treatment (with documented informed refusal).",
        "Right to lodge a complaint without fear of retribution.",
        "Right to be referred to another provider if a second opinion is sought.",
    ]
    for r in rights:
        e.append(Paragraph(f"&#8226;  {r}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("11.2  Patient Feedback Mechanism", heading2_style))
    feedback_rows = [
        ["Feedback form",       "Available at registration desk and exit; deposit in suggestion box"],
        ["QR code survey",      "Displayed in waiting area; instant smartphone access"],
        ["Online portal",       "hospital.example.com/feedback"],
        ["Call centre",         "Ext. 210; Mon-Sat 08:00-17:00"],
        ["Patient relations desk","Level 1, near main OPD entrance"],
    ]
    e.append(make_table(["Channel", "Details"], feedback_rows,
                         col_widths=[55*mm, PAGE_W - 40*mm - 55*mm]))

    e.append(Spacer(1, 8))
    e.append(Paragraph("11.3  Complaint Resolution Timeline", heading2_style))
    comp_rows = [
        ["Verbal complaint at counter","Resolve immediately at point of care"],
        ["Written complaint",          "Acknowledge within 24 hours; resolve within 7 days"],
        ["Formal grievance",           "Acknowledge within 24 hours; resolve within 21 days"],
        ["Escalation to regulator",    "As per applicable law; legal team involvement"],
    ]
    e.append(make_table(["Complaint Type", "Response Timeline"], comp_rows,
                         col_widths=[80*mm, PAGE_W - 40*mm - 80*mm]))
    e.append(PageBreak())
    return e

# ─── Section 12: Staff Conduct ────────────────────────────────────────────────
def section_staff_conduct():
    e = []
    e.append(chapter_banner("SECTION 12", "Staff Conduct & Escalation"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("12.1  Code of Conduct", heading2_style))
    conduct = [
        "Maintain professional appearance: clean uniform, name badge visible at all times.",
        "Address patients by their preferred name; always introduce yourself.",
        "Use plain language; avoid medical jargon when speaking to patients and families.",
        "Mobile phone personal use is restricted to break times only in designated areas.",
        "Do not discuss patient information in public areas (corridors, lifts, cafeteria).",
        "Treat all colleagues with respect; harassment of any kind will not be tolerated.",
        "Follow the hospital social media policy - never post patient images or details online.",
    ]
    for c in conduct:
        e.append(Paragraph(f"&#8226;  {c}", bullet_style))

    e.append(Spacer(1, 8))
    e.append(Paragraph("12.2  Escalation Matrix", heading2_style))
    esc_rows = [
        ["Clinical concern about a patient",    "Immediate supervisor / duty doctor / crash team (999)"],
        ["Staffing shortage",                   "OPD Supervisor / Nurse Manager"],
        ["Equipment failure",                   "Biomedical Engineering (Ext. 310)"],
        ["IT / HIS downtime",                   "IT Helpdesk (Ext. 400); activate downtime procedure"],
        ["Patient aggression / security issue", "Security (Ext. 100); do not engage aggressively"],
        ["Ethical / legal concern",             "Hospital Ethics Committee or Legal Dept."],
        ["Medication error / near-miss",        "Incident Reporting System + immediate supervisor"],
    ]
    e.append(make_table(["Situation", "Escalate To"], esc_rows,
                         col_widths=[80*mm, PAGE_W - 40*mm - 80*mm]))
    e.append(PageBreak())
    return e

# ─── Section 13: KPIs ─────────────────────────────────────────────────────────
def section_kpi():
    e = []
    e.append(chapter_banner("SECTION 13", "Key Performance Indicators (KPIs)"))
    e.append(Spacer(1, 10))

    e.append(Paragraph(
        "The following KPIs are monitored monthly by the OPD Manager and reported to the Hospital "
        "Quality Committee. All staff are expected to contribute to meeting these targets.",
        body_style))
    e.append(Spacer(1, 8))

    kpi_rows = [
        ["Registration to triage time",     "< 5 minutes",  "95% of patients"],
        ["Triage to doctor seen (Priority 3)","< 30 minutes","90% of patients"],
        ["Average OPD turnaround time",      "< 90 minutes", "85% of visits"],
        ["Patient satisfaction score",       ">= 4.0 / 5.0","Monthly survey"],
        ["Prescription error rate",          "< 0.1%",       "Monthly audit"],
        ["Investigation critical value notification","< 15 min","100% compliance"],
        ["Hand hygiene compliance",          ">= 85%",       "Audit twice monthly"],
        ["OPD appointment no-show rate",     "< 15%",        "Monthly report"],
        ["Documentation completeness",       ">= 95%",       "Random 10% audit"],
        ["Complaint resolution within SLA",  "100%",         "Monthly review"],
    ]
    e.append(make_table(["KPI", "Target", "Monitoring Method"], kpi_rows,
                         col_widths=[90*mm, 35*mm, PAGE_W - 40*mm - 125*mm]))
    e.append(PageBreak())
    return e

# ─── Section 14: Quick Reference ─────────────────────────────────────────────
def section_quick_ref():
    e = []
    e.append(chapter_banner("SECTION 14", "Quick Reference & Key Contacts"))
    e.append(Spacer(1, 10))

    e.append(Paragraph("14.1  Emergency Extension Numbers", heading2_style))
    ext_rows = [
        ["Crash Team / Code Blue",    "999"],
        ["Security",                   "100"],
        ["Fire Emergency",             "101"],
        ["Nursing Supervisor",         "150"],
        ["OPD Manager",                "160"],
        ["Patient Relations",          "210"],
        ["Call Centre / Appointments", "200"],
        ["Pharmacy",                   "220"],
        ["Laboratory",                 "230"],
        ["Radiology",                  "240"],
        ["Biomedical Engineering",     "310"],
        ["IT Helpdesk",                "400"],
        ["Housekeeping",               "450"],
        ["Ambulance",                  "108 (national)"],
    ]
    e.append(make_table(["Service", "Extension / Number"], ext_rows,
                         col_widths=[100*mm, PAGE_W - 40*mm - 100*mm]))

    e.append(Spacer(1, 10))
    e.append(Paragraph("14.2  Common Acronyms", heading2_style))
    acronym_rows = [
        ["AED",  "Automated External Defibrillator"],
        ["BVM",  "Bag-Valve-Mask"],
        ["CPR",  "Cardiopulmonary Resuscitation"],
        ["GCS",  "Glasgow Coma Scale"],
        ["HIS",  "Hospital Information System"],
        ["IPC",  "Infection Prevention and Control"],
        ["PPE",  "Personal Protective Equipment"],
        ["SOAP", "Subjective, Objective, Assessment, Plan (clinical note format)"],
        ["STAT", "From Latin statim - immediately"],
        ["TAT",  "Turnaround Time"],
        ["UHID", "Unique Hospital Identification Number"],
    ]
    e.append(make_table(["Acronym", "Full Form"], acronym_rows,
                         col_widths=[30*mm, PAGE_W - 40*mm - 30*mm]))

    e.append(Spacer(1, 14))
    e.append(HRFlowable(width="100%", thickness=2, color=TEAL))
    e.append(Spacer(1, 8))
    e.append(Paragraph(
        "This document is reviewed annually or whenever there is a significant change in policy or regulation. "
        "Queries regarding this guide should be directed to the OPD Manager (Ext. 160) or the Quality Department.",
        note_style))
    e.append(Paragraph(
        "OPD Operational Guide  |  Edition 2026  |  All rights reserved - Hospital Administration",
        footer_style))
    return e

# ─── Build PDF ─────────────────────────────────────────────────────────────────
OUTPUT = "/home/daytona/workspace/opd-guide/OPD_Operational_Guide_2026.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=20*mm, leftMargin=20*mm,
    topMargin=20*mm,   bottomMargin=18*mm,
    title="OPD Operational Guide 2026",
    author="Hospital Administration",
    subject="Outpatient Department Reference Manual",
)

story = []
story += cover_page()
story += toc_page()
story += section_overview()
story += section_registration()
story += section_triage()
story += section_consultation()
story += section_investigations()
story += section_pharmacy()
story += section_referral()
story += section_ipc()
story += section_emergency()
story += section_documentation()
story += section_patient_rights()
story += section_staff_conduct()
story += section_kpi()
story += section_quick_ref()

doc.build(story, onFirstPage=on_page, onLaterPages=on_page)
print(f"PDF created: {OUTPUT}")
Running Command

python3 /home/daytona/workspace/opd-guide/create_opd_guide.py 2>&1

Running Command

ls -lh /home/daytona/workspace/opd-guide/OPD_Operational_Guide_2026.pdf

Your OPD Operational Guide PDF is ready for download:

OPD Operational Guide 2026

PDF Document · PDF


What's inside (16 sections, ~40 KB, A4 format):
#SectionHighlights
1OPD Overview & ObjectivesGoals, operating hours table for all clinics
2Patient Registration & AppointmentStep-by-step walk-in flow, booking channels, required documents
3Triage & Vital Signs4-level triage colour system, vital sign reference ranges, red-flag signs
4Consultation FlowRoom standards, SOAP note format, prescription rules, time targets
5Investigations & DiagnosticsTAT targets, critical value policy with alert values
6PharmacyDispensing flow, controlled substances, error reporting
7Referral & Follow-upUrgency classification (Routine / Soon / Urgent / Emergency), follow-up policy
8Infection Prevention & ControlWHO 5 Moments, PPE guide, waste segregation colour codes
9Emergency ResponseCPR steps, anaphylaxis protocol, daily equipment checklist
10DocumentationSOAP principles, minimum dataset per visit
11Patient Rights & FeedbackRights charter, feedback channels, complaint SLAs
12Staff Conduct & EscalationCode of conduct, escalation matrix
13KPIs10 measurable indicators with targets
14Quick ReferenceEmergency extensions, common acronyms
The document has branded headers/footers, colour-coded tables, and chapter banners for easy navigation. Let me know if you'd like to customise the hospital name, logo, contact numbers, or any section content.

I am not able to download

Running Command

ls -lh /home/daytona/workspace/opd-guide/ && python3 -c " from pypdf import PdfR…

The file is valid (17 pages, 40 KB). The download link works by clicking directly on the filename in the message below - try these options:
Option 1 - Direct link (click the filename):

OPD Operational Guide 2026

PDF Document · PDF

Option 2 - If the above doesn't work, the issue is likely your browser or network blocking sandbox file links. Here are workarounds:
  1. Right-click the link above and choose "Save link as..." or "Download linked file"
  2. Try a different browser (Chrome / Edge work best with sandbox file downloads)
  3. If you're on mobile, switch to desktop mode in your browser settings
Option 3 - I can convert the content into a format that's easier for you to copy - let me know if you'd prefer:
  • A Word (.docx) file instead
  • The full content as plain text you can copy-paste
  • A shareable Google Docs-style HTML version
Which option works best for you?

I am not able to dowanload

Reading File
Running Command

cd /home/daytona/workspace/opd-guide && node -e " const { Document, Packer, Para…

Running Command

cd /home/daytona/workspace/opd-guide && node -e " const { Document, Packer, Para…

Both files are ready. Try downloading either one - the Word format often works when PDF doesn't:
Word Document (.docx):

OPD Operational Guide 2026

Word Document · DOCX

PDF (original):

OPD Operational Guide 2026

PDF Document · PDF


If neither link downloads, here's what to try:
  1. Right-click the link above and select "Save link as" or "Download linked file"
  2. Switch browsers - Chrome or Edge handle these sandbox links best
  3. Disable any browser extensions (ad blockers or download managers can interfere)
  4. Check your Downloads folder - the file may have already downloaded silently
If you're still stuck, let me know what device/browser you're using and I'll find another way to get it to you.

Not able to download paste text here ill read or copy the.

Here is the full OPD Operational Guide as plain text - copy it all:

OPD OPERATIONAL GUIDE

General / Multi-Specialty Hospital

Edition 2026 | All Staff Reference Manual

Issued By: Hospital Administration | Review Date: July 2026

ABOUT THIS GUIDE

This Outpatient Department (OPD) Operational Guide is the definitive reference for all staff working in or supporting OPD services. It covers patient flow, registration, triage, clinical consultation, investigations, pharmacy, documentation, infection control, and emergency response. All staff are expected to read, understand, and comply with the procedures described herein.

SECTION 1 - OPD OVERVIEW & OBJECTIVES

1.1 What is the OPD?

The Outpatient Department (OPD) is the first point of contact for the majority of patients seeking non-emergency medical care. It provides scheduled consultations, follow-up visits, minor procedures, and allied health services without admission to a hospital ward.

1.2 Core Objectives

  • Provide timely, safe, and dignified care to every patient.
  • Maintain efficient patient flow to minimise waiting times.
  • Ensure accurate clinical documentation for continuity of care.
  • Promote infection prevention and a clean clinical environment.
  • Facilitate seamless referrals to inpatient and specialist services.
  • Collect patient feedback to drive continuous quality improvement.

1.3 OPD Operating Hours

ClinicDaysHours
General OPDMonday - Saturday08:00 - 17:00
Specialist ClinicsMonday - Friday09:00 - 15:00
Dental OPDMonday - Friday09:00 - 14:00
Paediatric OPDMonday - Saturday08:00 - 16:00
Dermatology / EyeTuesday, Thursday, Saturday10:00 - 14:00
After-Hours Walk-inDaily17:00 - 22:00
Note: Hours may change on public holidays. Refer to the monthly schedule at the OPD notice board.

SECTION 2 - PATIENT REGISTRATION & APPOINTMENT

2.1 Walk-in Registration Steps

  1. Patient approaches the registration counter; staff greets courteously.
  2. Verify patient identity using a government-issued photo ID.
  3. Search existing records in the Hospital Information System (HIS); create a new record if first visit.
  4. Confirm presenting complaint and direct to appropriate specialty counter.
  5. Issue a token / queue number and estimated waiting time.
  6. Collect registration fee (if applicable) and issue receipt.
  7. Guide patient to the waiting area.

2.2 Appointment Booking Channels

ChannelMethodWindow
In-personRegistration counterSame day / advance
TelephoneCall centre (Ext. 200)Advance booking only
OnlineHospital patient portalUp to 30 days ahead
Mobile AppHospital app (iOS / Android)Up to 30 days ahead

2.3 Required Documentation

  • Valid government-issued photo ID (Aadhaar / Passport / Driver Licence / Voter ID).
  • Previous OPD card or UHID number (for follow-up patients).
  • Referral letter (if referred from another facility).
  • Previous investigation reports relevant to the presenting complaint.
  • Insurance card / pre-authorisation letter (for insured patients).

2.4 Cancellation & No-Show Policy

Patients must cancel at least 4 hours in advance by calling the call centre or using the online portal. Repeated no-shows (3 or more) may require administrative review before rebooking. Cancelled slots should be offered to walk-in or waiting-list patients promptly.

SECTION 3 - TRIAGE & VITAL SIGNS ASSESSMENT

3.1 Triage Categories

CategoryAction TimelineExamples
Priority 1 - IMMEDIATE (Red)0-10 minutesChest pain, difficulty breathing, altered consciousness, severe bleeding
Priority 2 - URGENT (Yellow)10-30 minutesHigh fever >39C, moderate pain, fractures, vomiting with dehydration
Priority 3 - ROUTINE (Green)30-60 minutesMild symptoms, follow-up visits, routine check-ups
Priority 4 - NON-URGENT (Blue)>60 minutesMinor cuts, insect bites, prescription refills, routine certificates

3.2 Standard Vital Signs Protocol

ParameterMethodReference Range
TemperatureOral / axillary / tympanicNormal 36.1 - 37.2 degC
Pulse RateRadial artery, 60 secondsNormal 60 - 100 bpm
Respiratory RateChest observation, 60 secNormal 12 - 20 breaths/min
Blood PressureUpper arm cuff, seated 5 minNormal < 120/80 mmHg
SpO2Pulse oximeter, index fingerNormal > 95%
Blood Glucose (PRN)Glucometer, fingertipFasting < 100 mg/dL
Weight / HeightCalibrated scale / stadiometerRecord BMI
Pain ScoreVisual Analogue Scale 0-10Document and act if >= 7

3.3 Red-Flag Signs - Immediate Escalation Required

  • SpO2 < 90% on room air
  • Systolic BP < 90 mmHg or > 180 mmHg with symptoms
  • Heart rate < 40 or > 150 bpm
  • Glasgow Coma Scale (GCS) score < 13
  • Active seizure or post-ictal state
  • Suspected stroke (FAST positive: Face drooping, Arm weakness, Speech difficulty, Time to call)
  • Anaphylaxis (urticaria + hypotension + bronchospasm)
  • Uncontrolled haemorrhage

SECTION 4 - CONSULTATION FLOW & CLINICAL STANDARDS

4.1 Consultation Room Standards

  • Ensure privacy - door/curtain closed before examination.
  • Confirm patient identity (name + date of birth) before beginning.
  • Wash hands / use hand sanitiser before and after every patient contact.
  • Offer a chaperone for intimate examinations; document consent.
  • Explain diagnosis, treatment plan, and next steps in simple language.
  • Provide written instructions or a printed prescription to every patient.

4.2 SOAP Note Documentation

ComponentContent
S - SubjectiveChief complaint, history of present illness, past medical history, drug history, allergies, social and family history
O - ObjectiveVital signs, physical examination findings, relevant investigations
A - AssessmentDiagnosis or differential diagnoses with reasoning
P - PlanInvestigations ordered, treatment prescribed, referrals, follow-up date, patient education

4.3 Prescription Standards

  • Write legibly or use the electronic prescribing module.
  • Include: patient name, UHID, date, drug name (generic preferred), dose, frequency, duration, route.
  • Indicate allergies prominently at the top of every prescription.
  • Sign and stamp with designation and registration number.
  • Avoid abbreviations that may be misread (e.g., write "micrograms" not "mcg").
  • High-alert medications require dual check and second physician signature.

4.4 Consultation Time Targets

Visit TypeTarget Duration
New Patient - General15 - 20 minutes
Follow-up - General8 - 12 minutes
New Patient - Specialist20 - 30 minutes
Follow-up - Specialist10 - 15 minutes
Minor Procedure20 - 45 minutes

SECTION 5 - INVESTIGATIONS & DIAGNOSTIC SERVICES

5.1 Ordering Investigations

  • Investigations must be ordered through the HIS; paper requests only during system downtime.
  • Clearly indicate clinical indication on every request form.
  • Urgent requests must be verbally communicated to the lab / radiology team.
  • Inform the patient of expected turnaround times and collection instructions.
  • Review all results on the same day or within 24 hours of reporting.
  • Critical values must be communicated verbally and documented immediately.

5.2 Turnaround Time (TAT) Targets

InvestigationTarget TAT
Routine haematology / biochemistry2 - 4 hours
Urgent / STAT tests< 1 hour
Microbiology cultures24 - 72 hours
Histopathology5 - 7 working days
Plain X-ray (reporting)1 - 2 hours
Ultrasound abdomenSame day (scheduled)
CT scan (routine)Same day / next day
ECG15 minutes
Pulmonary Function Test45 minutes

5.3 Critical Value Policy

When the lab or radiology reports a critical value, they must call the ordering clinician directly within 15 minutes. The clinician must acknowledge, document the call (time, value, action taken) in the HIS, and initiate management immediately.
Critical values include:
  • Haemoglobin < 6.0 g/dL or > 20 g/dL
  • Platelet count < 50 x 10^9/L or > 1000 x 10^9/L
  • Serum K+ < 2.8 or > 6.5 mEq/L
  • Serum Na+ < 120 or > 160 mEq/L
  • Blood glucose < 50 or > 500 mg/dL
  • INR > 5.0
  • Troponin I positive (any level)
  • SpO2 < 85% on pulse oximetry

SECTION 6 - PHARMACY & PRESCRIPTION MANAGEMENT

6.1 Dispensing Flow

  1. Patient submits prescription at the OPD pharmacy counter.
  2. Pharmacist verifies patient identity, UHID, and prescription authenticity.
  3. Check for drug interactions, allergies, and dose appropriateness.
  4. Dispense medications and counsel patient on usage, side effects, and storage.
  5. Issue a labelled package with printed instructions for every medication.
  6. Record dispensing in the pharmacy management system.

6.2 Controlled Substance Protocol

Schedule H / H1 / X drugs require a prescription signed and stamped by a registered medical practitioner. Quantity dispensed must match prescription exactly. All controlled substance transactions must be recorded in the controlled drug register and reconciled daily.

6.3 Medication Return & Disposal

Patients may return unused, sealed medications within 7 days of purchase with receipt. Returned medications are quarantined and disposed of per biomedical waste rules - they must never be re-dispensed.

6.4 Prescription Error Reporting

Any prescription ambiguity must be clarified with the prescribing physician before dispensing. Near-miss events and dispensing errors must be reported through the Incident Reporting System within 24 hours.

SECTION 7 - REFERRAL & FOLLOW-UP PROTOCOLS

7.1 Internal Referral

Refer using the HIS referral module. Include a clinical summary, reason for referral, and urgency level. Receiving specialist acknowledges within 2 hours for urgent and 24 hours for routine referrals.

7.2 External Referral

Provide a signed referral letter with: patient demographics, diagnosis, treatment given, investigations done, and reason for referral. Ensure patient/family understands the referral and has transport arranged if needed.

7.3 Referral Urgency Classification

LevelResponse TimeCriteria
Routine> 24 hoursStable, non-urgent condition requiring specialist input
SoonSame dayWorsening but currently stable; specialist review needed today
Urgent< 2 hoursSignificant clinical concern; potential for deterioration
EmergencyImmediatePatient at risk of serious harm - activate emergency team

7.4 Follow-up Appointments

  • Every patient with an ongoing condition should leave OPD with a follow-up date.
  • SMS / app reminders should be sent 48 hours before the appointment.
  • Patients who miss follow-up should be contacted within 48 hours.
  • Discharge from OPD follow-up must be documented with clear patient instructions.

SECTION 8 - INFECTION PREVENTION & CONTROL (IPC)

8.1 Hand Hygiene - WHO 5 Moments

  1. Before touching a patient
  2. Before a clean / aseptic procedure
  3. After body fluid exposure risk
  4. After touching a patient
  5. After touching a patient's surroundings

8.2 Personal Protective Equipment (PPE)

SituationPPE Required
Standard examinationGloves (as needed), apron if splash risk
Suspected airborne infectionN95 respirator, gown, eye protection, gloves
Wound dressing / minor procedureSterile gloves, mask, drape
COVID-19 / influenza screeningSurgical mask, gloves, face shield or goggles

8.3 Environmental Cleaning

  • Consultation rooms: clean between every patient with 70% ethanol or approved disinfectant.
  • Waiting area: wipe high-touch surfaces (chairs, counters) every 2 hours.
  • Terminal cleaning: full room cleaning after any known infectious case.
  • Spills of blood/body fluid: use spill kit; follow written spill management protocol.

8.4 Biomedical Waste Segregation

ContainerContents
Yellow bagAnatomical waste, soiled dressings, body fluids
Red bagRecyclable contaminated plastic (syringes, IV bags)
Blue / WhiteGlass and sharps - place directly in sharps container
Black bagGeneral non-hazardous solid waste
Sharps binNeedles, blades, lancets - NEVER recap needles

SECTION 9 - EMERGENCY RESPONSE IN OPD

9.1 Cardiac Arrest - OPD Response

  1. Call for help loudly; ask someone to call the crash team (Ext. 999) and get the AED.
  2. Check for responsiveness - shout and tap shoulders.
  3. Open airway (head-tilt chin-lift); look, listen, feel for breathing (max 10 seconds).
  4. If no breathing / only gasping: start CPR - 30 compressions : 2 breaths.
  5. Compression rate 100-120/min; depth 5-6 cm; allow full chest recoil.
  6. Attach AED as soon as available; follow voice prompts.
  7. Continue CPR until crash team arrives or patient shows signs of life.
  8. Document time of arrest, interventions, and outcome.

9.2 Anaphylaxis Management

  1. Identify trigger; remove or stop if possible.
  2. Adrenaline (Epinephrine) 0.5 mg (0.5 mL of 1:1000) IM into outer thigh - FIRST LINE.
  3. Call crash team (Ext. 999); lay patient flat, legs elevated (unless breathing difficulty).
  4. High-flow oxygen 10-15 L/min via non-rebreathing mask.
  5. IV access; 500-1000 mL 0.9% saline fluid challenge.
  6. Chlorphenamine 10 mg IV and Hydrocortisone 200 mg IV (after adrenaline).
  7. Monitor vitals every 5 minutes; repeat adrenaline every 5 min if no improvement.
  8. Transfer to Emergency Department.

9.3 Emergency Equipment Checklist (Daily)

EquipmentDaily Check Requirement
AED (Defibrillator)Charged and functional
Crash TrolleySealed; reconcile after any use
Oxygen cylinder> 75% full; regulator functional
Bag-valve-mask (BVM)Present and clean
Adrenaline 1:1000 ampoulesIn-date; minimum 3 ampoules
IV cannula kitVarious sizes available
Glucometer + stripsCalibrated; strip expiry checked

SECTION 10 - DOCUMENTATION & MEDICAL RECORDS

10.1 Principles of Medical Documentation

  • Every patient encounter must be documented on the same day.
  • Entries must be legible, dated, timed, and signed with designation.
  • Corrections: draw a single line through the error, initial, date, and rewrite - never use whiteout.
  • Late entries: clearly label as "Late Entry", include original and current date/time.
  • Use standardised clinical terminology; avoid non-approved abbreviations.
  • All consented procedures must have a signed consent form attached.

10.2 Minimum Dataset per OPD Visit

Data ElementStatus
Date and time of visitMandatory
Patient identifiers (name, UHID, DOB)Mandatory
Presenting complaintMandatory
Vital signsMandatory
Clinical examination findingsMandatory
Diagnosis / differentialMandatory
Investigations orderedIf applicable
Treatment / prescriptionIf applicable
Follow-up planMandatory
Patient education givenMandatory
Signature & stampMandatory

SECTION 11 - PATIENT RIGHTS & FEEDBACK

11.1 Patient Rights

  • Right to receive respectful, non-discriminatory care irrespective of gender, religion, or economic status.
  • Right to be informed about diagnosis, treatment options, and prognosis in a language they understand.
  • Right to give or withhold informed consent before any procedure or treatment.
  • Right to privacy and confidentiality of medical information.
  • Right to access their own medical records.
  • Right to refuse treatment (with documented informed refusal).
  • Right to lodge a complaint without fear of retribution.
  • Right to be referred to another provider if a second opinion is sought.

11.2 Patient Feedback Channels

ChannelDetails
Feedback formAvailable at registration desk and exit; deposit in suggestion box
QR code surveyDisplayed in waiting area; instant smartphone access
Online portalhospital.example.com/feedback
Call centreExt. 210; Mon-Sat 08:00-17:00
Patient relations deskLevel 1, near main OPD entrance

11.3 Complaint Resolution Timeline

Complaint TypeResponse Timeline
Verbal complaint at counterResolve immediately at point of care
Written complaintAcknowledge within 24 hours; resolve within 7 days
Formal grievanceAcknowledge within 24 hours; resolve within 21 days

SECTION 12 - STAFF CONDUCT & ESCALATION

12.1 Code of Conduct

  • Maintain professional appearance: clean uniform, name badge visible at all times.
  • Address patients by their preferred name; always introduce yourself.
  • Use plain language; avoid medical jargon when speaking to patients and families.
  • Mobile phone personal use is restricted to break times only in designated areas.
  • Do not discuss patient information in public areas (corridors, lifts, cafeteria).
  • Treat all colleagues with respect; harassment of any kind will not be tolerated.
  • Follow the hospital social media policy - never post patient images or details online.

12.2 Escalation Matrix

SituationEscalate To
Clinical concern about a patientImmediate supervisor / duty doctor / crash team (999)
Staffing shortageOPD Supervisor / Nurse Manager
Equipment failureBiomedical Engineering (Ext. 310)
IT / HIS downtimeIT Helpdesk (Ext. 400); activate downtime procedure
Patient aggression / security issueSecurity (Ext. 100)
Ethical / legal concernHospital Ethics Committee or Legal Department
Medication error / near-missIncident Reporting System + immediate supervisor

SECTION 13 - KEY PERFORMANCE INDICATORS (KPIs)

KPITargetMonitoring
Registration to triage time< 5 minutes95% of patients
Triage to doctor seen (Priority 3)< 30 minutes90% of patients
Average OPD turnaround time< 90 minutes85% of visits
Patient satisfaction score>= 4.0 / 5.0Monthly survey
Prescription error rate< 0.1%Monthly audit
Critical value notification< 15 minutes100% compliance
Hand hygiene compliance>= 85%Audit twice monthly
Appointment no-show rate< 15%Monthly report
Documentation completeness>= 95%Random 10% audit
Complaint resolution within SLA100%Monthly review

SECTION 14 - QUICK REFERENCE & KEY CONTACTS

14.1 Emergency Extension Numbers

ServiceExtension / Number
Crash Team / Code BlueExt. 999
SecurityExt. 100
Fire EmergencyExt. 101
Nursing SupervisorExt. 150
OPD ManagerExt. 160
Patient RelationsExt. 210
Call Centre / AppointmentsExt. 200
PharmacyExt. 220
LaboratoryExt. 230
RadiologyExt. 240
Biomedical EngineeringExt. 310
IT HelpdeskExt. 400
HousekeepingExt. 450
National Ambulance108

14.2 Common Acronyms

AcronymFull Form
AEDAutomated External Defibrillator
BVMBag-Valve-Mask
CPRCardiopulmonary Resuscitation
GCSGlasgow Coma Scale
HISHospital Information System
IPCInfection Prevention and Control
PPEPersonal Protective Equipment
SOAPSubjective, Objective, Assessment, Plan
STATImmediately (from Latin: statim)
TATTurnaround Time
UHIDUnique Hospital Identification Number

This document is reviewed annually or whenever there is a significant change in policy or regulation. Queries regarding this guide should be directed to the OPD Manager (Ext. 160) or the Quality Department.
OPD Operational Guide | Edition 2026 | Hospital Administration | Confidential - All Staff

That is the complete guide - all 14 sections. You can select all the text above and paste it into Word, Google Docs, Notepad, or any editor you prefer. Let me know if you need any section expanded, customised with your hospital name, or formatted differently.

Crete

Asking for Preferences

Create internal medicine department of gastrointestinal opd ipd

Here is the complete guide - copy all the text below:

GASTROINTESTINAL (GI) UNIT

Internal Medicine Department

OPD & IPD Operational Guide | Edition 2026 | All Staff Reference Manual

Department: Internal Medicine - Gastroenterology Issued By: Hospital Administration / Department Head Applies To: OPD + IPD (Inpatient Department) Review Date: July 2026

ABOUT THIS GUIDE

This guide covers all operational procedures for the Gastrointestinal (GI) Unit under the Internal Medicine Department. It applies to both Outpatient (OPD) and Inpatient (IPD) services and is intended for all clinical and non-clinical staff including doctors, nurses, technicians, dietitians, administrative staff, and housekeeping.

PART A - OPD (OUTPATIENT DEPARTMENT)


SECTION 1 - GI OPD OVERVIEW

1.1 Services Provided in GI OPD

  • New patient consultations for GI complaints
  • Follow-up visits for chronic GI conditions
  • Pre-procedure counselling (endoscopy, colonoscopy, ERCP)
  • Post-procedure review
  • Nutrition and dietary counselling
  • Hepatology consultations (liver disease, jaundice, cirrhosis)
  • Colorectal screening consultations
  • Stoma care follow-up

1.2 OPD Operating Hours

ClinicDaysHours
General GI OPDMonday - Saturday08:00 - 14:00
Hepatology ClinicMonday, Wednesday, Friday09:00 - 13:00
Endoscopy Pre-assessmentTuesday, Thursday09:00 - 12:00
Colorectal Screening ClinicWednesday, Saturday10:00 - 13:00
Nutrition / Dietitian ClinicMonday - Friday10:00 - 14:00
Stoma Care ClinicThursday09:00 - 12:00

1.3 OPD Staff Roles

RoleResponsibility
OPD Consultant / RegistrarConsultation, diagnosis, treatment planning
GI Nurse / Clinic NurseVitals, patient preparation, documentation assist
Endoscopy NursePre/post procedure care, consent, equipment
DietitianNutritional assessment and counselling
Registration StaffPatient registration, appointments, billing
Stoma Care NurseStoma assessment, patient education

SECTION 2 - GI OPD PATIENT FLOW

2.1 Step-by-Step Patient Flow

  1. Patient arrives at GI OPD reception; staff greets and confirms appointment.
  2. Registration verified in HIS; new patients registered with UHID issued.
  3. Nurse takes vital signs: BP, pulse, temperature, weight, BMI, pain score.
  4. Triage nurse reviews urgency; red-flag GI symptoms escalated immediately.
  5. Patient directed to consultation room; waiting time communicated.
  6. Physician conducts consultation; SOAP note documented in HIS.
  7. Investigations ordered as required (labs, imaging, endoscopy).
  8. Prescription issued; pharmacy counselling provided.
  9. Referral / admission / follow-up arranged as needed.
  10. Patient exits via billing counter; feedback form offered.

2.2 Red-Flag GI Symptoms - Escalate Immediately

Red-Flag SymptomAction
Haematemesis (vomiting blood)Call crash team Ext. 999; IV access; prepare for emergency endoscopy
Melaena (black tarry stools)Urgent review; IV access; cross-match blood; GI bleed protocol
Severe abdominal pain (acute abdomen)Surgical review stat; NPO; IV fluids
Jaundice with fever and rigorsAdmit; blood cultures; ERCP team alert (Charcot's triad = cholangitis)
Uncontrolled vomiting with dehydrationIV fluids; electrolyte replacement; antiemetics
Altered consciousness + liver diseaseHepatic encephalopathy protocol; ICU liaison
Rectal bleeding with haemodynamic instabilityEmergency colonoscopy / surgical review
Severe dysphagia with droolingENT + GI review; airway assessment

SECTION 3 - GI OPD CLINICAL ASSESSMENT

3.1 History Taking - GI Specific Points

  • Onset, duration, progression of symptoms
  • Nature of pain: site, radiation, character, severity (0-10), aggravating / relieving factors
  • Bowel habits: frequency, consistency (Bristol Stool Chart), blood / mucus in stool
  • Nausea, vomiting: nature of vomitus (food, bile, blood, coffee-ground)
  • Dysphagia: solids vs liquids, progressive vs intermittent
  • Jaundice: onset, colour of urine and stools, pruritus
  • Weight loss: amount, duration (>10% in 6 months is significant)
  • Appetite changes, early satiety
  • Alcohol history: units per week, duration, last drink
  • Drug history: NSAIDs, steroids, antibiotics, PPI use, traditional medicines
  • Family history: colorectal cancer, IBD, coeliac disease, liver disease
  • Social history: travel history, water source, sexual history (hepatitis B/C risk)
  • Nutritional screening: MUST (Malnutrition Universal Screening Tool) score

3.2 Physical Examination - GI Focused

General:
  • Signs of malnutrition, cachexia, pallor, jaundice, clubbing, leukonychia
  • Lymphadenopathy (Virchow's node - left supraclavicular = GI malignancy)
Abdominal Examination:
  • Inspection: distension, visible peristalsis, surgical scars, spider naevi, caput medusae
  • Auscultation: bowel sounds (absent = ileus/peritonitis; high-pitched = obstruction)
  • Percussion: liver size, shifting dullness (ascites), tympany
  • Palpation: tenderness, guarding, rigidity, organomegaly (liver, spleen), masses
  • Digital Rectal Exam (DRE): if indicated for rectal bleeding, constipation, prostate
Specific Signs:
  • Murphy's sign (cholecystitis)
  • McBurney's point tenderness (appendicitis)
  • Rovsing's sign
  • Fluid thrill and shifting dullness (ascites)
  • Cullen's sign / Grey-Turner's sign (pancreatitis)

3.3 GI OPD Vitals & Monitoring

ParameterGI Relevance
Weight + BMIMalnutrition screening; track loss in IBD, malignancy, cirrhosis
Blood PressureHypotension in GI bleed; portal hypertension assessment
TemperatureInfection: cholangitis, peritonitis, abscess
PulseTachycardia in GI bleed, sepsis, dehydration
SpO2Hepatopulmonary syndrome; pre-sedation endoscopy check
Pain Score (0-10)Abdominal pain severity; escalate if >=7
Abdominal GirthTrack ascites in cirrhotic patients (measure at umbilicus)

SECTION 4 - GI OPD INVESTIGATIONS

4.1 Routine Investigations

Blood Tests:
  • Full Blood Count (FBC): anaemia (GI bleed/malabsorption), infection
  • Liver Function Tests (LFTs): ALT, AST, ALP, GGT, bilirubin, albumin, total protein
  • Renal Function Tests (RFTs): urea, creatinine, electrolytes
  • Coagulation: PT/INR (liver synthetic function)
  • Blood glucose and HbA1c (pancreatic disease, diabetes screening)
  • Serum amylase / lipase (pancreatitis)
  • CRP / ESR (inflammation in IBD, infection)
  • Vitamin B12, folate, iron studies (malabsorption)
  • Thyroid function (TFTs - constipation/diarrhoea workup)
  • Coeliac screen: anti-tTG IgA + total IgA
  • Hepatitis B surface antigen (HBsAg), anti-HCV, anti-HAV IgM
  • Tumour markers: CEA (colorectal), AFP (hepatocellular carcinoma), CA 19-9 (pancreatic)
  • H. pylori: urea breath test (preferred), stool antigen, serology
Stool Tests:
  • Stool for occult blood (FOBT)
  • Stool microscopy, culture and sensitivity
  • Stool for ova and parasites
  • Faecal calprotectin (IBD vs IBS differentiation)
  • Clostridium difficile toxin assay
Urine Tests:
  • Urinalysis: bilirubin, urobilinogen (jaundice workup)
  • Urine amylase (pancreatitis)

4.2 Imaging

InvestigationIndication
Ultrasound AbdomenFirst-line: gallstones, liver disease, ascites, masses
CT Abdomen/Pelvis (with contrast)Acute abdomen, malignancy staging, pancreatitis complications
MRI Abdomen / MRCPBiliary tree, liver lesions, pancreatic ducts (no radiation)
Barium Swallow / MealOesophageal/gastric motility (if endoscopy not feasible)
Barium EnemaColonic assessment (if colonoscopy not feasible)
Endoscopic Ultrasound (EUS)Submucosal lesions, staging of GI malignancy
Nuclear Scan (HIDA)Biliary function, acute cholecystitis
PET-CTStaging / restaging of GI malignancies

4.3 Endoscopic Procedures (OPD Scheduling)

ProcedureIndicationPreparation
OGD (Upper GI Endoscopy)Dyspepsia, GORD, haematemesis, dysphagia, H. pylori biopsyNBM 6 hrs; stop anticoagulants per protocol
ColonoscopyRectal bleeding, altered bowel habit, colorectal screening, IBDBowel prep (Polyethylene glycol); clear liquids 24 hrs before
Flexible SigmoidoscopyRectal bleeding, sigmoid pathologyEnema prep; no full bowel prep needed
ERCPCholedocholithiasis, biliary obstruction, biliary stentingNBM 6 hrs; consent for pancreatitis risk; antibiotics if cholangitis
Capsule EndoscopyObscure GI bleeding, small bowel pathologyNBM 12 hrs; bowel prep; pacemaker check
EUSStaging GI malignancy, pancreatic assessmentNBM 6 hrs

4.4 Turnaround Time (TAT) Targets

InvestigationTAT
STAT bloods (GI bleed)< 1 hour
Routine bloods2 - 4 hours
Ultrasound abdomenSame day / next day
CT abdomen (urgent)Same day
H. pylori urea breath test30 minutes
Endoscopy (urgent - bleeding)< 2 hours (emergency)
Endoscopy (elective)Within 2 weeks
Colonoscopy (symptomatic)Within 2 weeks
Histopathology (biopsy)5 - 7 working days

SECTION 5 - COMMON GI CONDITIONS - OPD MANAGEMENT GUIDE

5.1 Gastro-Oesophageal Reflux Disease (GORD)

  • Lifestyle: weight loss, head-of-bed elevation, avoid triggers (coffee, alcohol, fatty food, late meals)
  • First-line: PPI (Omeprazole 20-40 mg OD, 30 min before breakfast) for 4-8 weeks
  • Step-up: Double-dose PPI or add H2 blocker at night
  • Refer for endoscopy if: >40 years with new onset, dysphagia, weight loss, anaemia, recurrent vomiting, Barrett's surveillance

5.2 Peptic Ulcer Disease (PUD)

  • Test and treat H. pylori: triple therapy (PPI + Amoxicillin 1g BD + Clarithromycin 500 mg BD) x 14 days
  • Stop NSAIDs; add PPI if NSAIDs cannot be stopped
  • Confirm eradication with urea breath test 4 weeks after completing antibiotics
  • Endoscopy follow-up for gastric ulcers at 6-8 weeks to confirm healing and exclude malignancy

5.3 Irritable Bowel Syndrome (IBS)

  • Exclude organic causes: FBC, CRP, coeliac screen, faecal calprotectin, stool culture
  • Lifestyle: stress management, regular meals, low-FODMAP diet (dietitian referral)
  • IBS-D (diarrhoea): Loperamide, Mebeverine, low-dose antidepressant (Amitriptyline)
  • IBS-C (constipation): Ispaghula husk, Lactulose, Linaclotide
  • Reassurance and patient education are central to management

5.4 Inflammatory Bowel Disease (IBD) - Crohn's / Ulcerative Colitis

  • Confirm with: colonoscopy + biopsy, faecal calprotectin, MRI small bowel (Crohn's)
  • Induction: Mesalazine (UC), Prednisolone (moderate-severe)
  • Maintenance: Azathioprine, Mesalazine; biologics (Infliximab, Adalimumab) for refractory
  • Monitor: FBC, LFTs, renal function every 3 months on immunosuppressants
  • Refer to IBD nurse specialist; annual colonoscopy surveillance after 8 years of disease

5.5 Liver Cirrhosis (Outpatient Management)

  • Monitor: LFTs, FBC, PT/INR, RFTs, albumin every 3 months
  • USS abdomen + AFP every 6 months (HCC surveillance)
  • Manage complications: diuretics for ascites (Spironolactone + Furosemide), beta-blockers for varices (Propranolol/Carvedilol), lactulose for encephalopathy prevention
  • Nutrition: high-protein diet (1.2-1.5 g/kg/day); avoid alcohol absolutely
  • Vaccinate: Hepatitis A, Hepatitis B, Pneumococcal, Influenza

5.6 Chronic Pancreatitis

  • Stop alcohol and smoking completely
  • Enzyme replacement: Pancreatin (Creon) with every meal and snack
  • Analgesia: stepwise - Paracetamol → NSAIDs → Pregabalin → Opioids
  • Monitor for diabetes (pancreatic exocrine + endocrine insufficiency)
  • CT scan annually to monitor for complications (pseudocyst, malignancy)

5.7 Colorectal Cancer Screening Protocol

Risk LevelPopulationScreening MethodFrequency
AverageAge 45-75, no risk factorsFIT (Faecal Immunochemical Test)Every 1-2 years
ModerateFamily history 1st degree relative <60 yearsColonoscopyEvery 5 years from age 40
HighFAP / Lynch syndrome / IBD >8 yearsColonoscopyEvery 1-2 years
Positive FITPositive FIT resultColonoscopyWithin 4 weeks

SECTION 6 - GI OPD PRESCRIPTION STANDARDS

  • Always document allergy status before prescribing.
  • Note potential drug interactions with immunosuppressants (Azathioprine, biologics).
  • PPI prescriptions should specify indication and planned duration.
  • Laxatives and anti-diarrhoeals should be prescribed for shortest effective duration.
  • Controlled medications (e.g., opioids for chronic pain) must follow controlled substance protocol.
  • All GI medications with hepatotoxic potential must be monitored with periodic LFTs.
  • Provide written dietary instructions in addition to prescription for all GI patients.

PART B - IPD (INPATIENT DEPARTMENT)


SECTION 7 - GI IPD OVERVIEW

7.1 Indications for GI Admission (IPD)

  • Acute upper or lower GI bleeding
  • Acute severe ulcerative colitis / Crohn's flare
  • Acute liver failure / decompensated cirrhosis
  • Cholangitis / biliary sepsis
  • Acute pancreatitis (moderate to severe)
  • Severe dehydration / electrolyte imbalance due to GI cause
  • Post-endoscopic complications (perforation, bleeding)
  • Malnutrition requiring enteral / parenteral nutrition
  • GI malignancy requiring workup or palliative care
  • Uncontrolled GI symptoms failing outpatient management

7.2 IPD Bed Categories

Bed TypeIndication
General Ward (GI)Stable GI conditions requiring monitoring and treatment
High Dependency Unit (HDU)GI bleed with haemodynamic instability; acute severe pancreatitis
ICUAcute liver failure; GI bleed with shock; post-operative complications
Isolation RoomInfectious gastroenteritis; C. difficile; viral hepatitis
Day CareDay procedures: endoscopy, colonoscopy, ascitic tap, liver biopsy

SECTION 8 - IPD ADMISSION PROCEDURE

8.1 Admission Steps

  1. Admitting doctor completes admission note in HIS and issues admission order.
  2. Ward nurse receives patient; completes nursing admission assessment within 1 hour.
  3. Vital signs taken and documented; pain score assessed.
  4. Allergy status confirmed and flagged in HIS and on patient wristband.
  5. MUST nutritional screening score completed.
  6. Admission bloods ordered (see Section 9.1).
  7. Patient oriented to ward: call bell, bathroom, visiting hours, rights.
  8. Consent for procedure (if applicable) obtained and filed.
  9. IV access secured if required; fluid orders written.
  10. Patient and family briefed on diagnosis, plan, and expected length of stay.

8.2 Admission Documentation Checklist

DocumentCompleted Within
Admission history and examination (SOAP)2 hours of admission
Drug chart (medications prescribed)Before first dose due
Allergy documentationAt admission
Nursing assessment1 hour of admission
Nutritional screening (MUST)4 hours of admission
VTE risk assessment4 hours of admission
Pressure ulcer risk (Braden/Waterlow)4 hours of admission
Falls risk assessment4 hours of admission
Consent form (if procedure planned)Before procedure

SECTION 9 - IPD CLINICAL PROTOCOLS

9.1 Acute Upper GI Bleed (UGIB) Protocol

Immediate Management (within 1 hour):
  1. Call senior doctor / GI registrar immediately.
  2. Two large-bore IV cannulae (16G or larger).
  3. Blood tests: FBC, coagulation (PT/INR/APTT), LFTs, RFTs, group and cross-match (4 units).
  4. IV fluid resuscitation: 0.9% saline 500 mL bolus; reassess.
  5. Transfuse packed red cells if Hb < 7 g/dL (target Hb 7-9 g/dL); < 8 g/dL if cardiac disease.
  6. IV PPI: Pantoprazole / Omeprazole 80 mg bolus then 8 mg/hr infusion.
  7. IV Terlipressin 2 mg 6-hourly if variceal bleed suspected.
  8. Reverse anticoagulation if INR > 2.5: IV Vitamin K + FFP.
  9. IV antibiotics (Ceftriaxone 1g OD) if cirrhosis/varices suspected.
  10. NPO (Nil by Mouth); urinary catheter; hourly urine output monitoring.
  11. Urgent endoscopy within 24 hours (within 12 hours if haemodynamically unstable).
  12. GCS monitoring; escalate to ICU if GCS <14, systolic BP <90 mmHg, HR >110 bpm.
Glasgow-Blatchford Score (GBS) - Risk Stratification:
ScoreRisk LevelAction
0LowMay be managed as outpatient; early discharge
1-5ModerateAdmit; endoscopy within 24 hours
>5HighUrgent admission; endoscopy within 12 hours

9.2 Acute Pancreatitis Protocol

Severity Assessment - Modified Glasgow (APACHE-II / Ranson also used):
  • PaO2 < 60 mmHg
  • Age > 55 years
  • Neutrophils > 15 x 10^9/L
  • Calcium < 2.0 mmol/L
  • Renal function: urea > 16 mmol/L
  • Enzymes: LDH > 600 IU/L; AST > 200 IU/L
  • Albumin < 32 g/L
  • Blood glucose > 10 mmol/L (no diabetic history)
3 or more criteria = Severe Pancreatitis → HDU/ICU admission
Management:
  1. IV fluid resuscitation: Ringer's Lactate preferred; 250-500 mL/hr for first 12-24 hours.
  2. NPO initially; restart oral feeding as soon as tolerated (early feeding improves outcomes).
  3. Analgesia: Morphine IV titrated to pain; avoid Morphine if sphincter spasm concern (use Pethidine 75 mg IM or Tramadol).
  4. Antiemetics: Ondansetron 4-8 mg IV 8-hourly.
  5. Monitor: hourly urine output; BGL 4-hourly; ABG if respiratory compromise.
  6. ERCP within 24-72 hours if biliary pancreatitis with cholangitis or biliary obstruction.
  7. Antibiotics: NOT routine; only if infected necrosis suspected (CT-guided FNA for culture).
  8. Nutritional support: nasojejunal tube feeding if oral not tolerated after 48 hours.
  9. CT abdomen with contrast at 48-72 hours if severe (Balthazar grading).
Causes to Identify and Treat:
  • Gallstones (USS → cholecystectomy after recovery)
  • Alcohol (cessation counselling; Thiamine 100 mg IV/IM)
  • Hypertriglyceridaemia (triglycerides > 11 mmol/L → insulin infusion + heparin)
  • Drugs (stop offending agent)

9.3 Acute Severe Ulcerative Colitis (ASUC) Protocol

Truelove & Witts Criteria for ASUC (any 1 of):
  • Bloody stools > 6/day
  • Tachycardia > 90 bpm
  • Temperature > 37.8 degC
  • Haemoglobin < 10.5 g/dL
  • ESR > 30 mm/hr or CRP > 30 mg/L
Management:
  1. Admit; IV Hydrocortisone 100 mg QID (first-line).
  2. Daily abdominal X-ray (exclude toxic megacolon: transverse colon > 6 cm = surgical emergency).
  3. Stool cultures + C. difficile toxin (before steroids).
  4. FBC, CRP, albumin daily; electrolyte replacement.
  5. DVT prophylaxis: LMWH (IBD patients have high VTE risk).
  6. IV fluids; correct electrolytes; consider NG feeding if malnourished.
  7. Day 3 review: if no improvement → IV Ciclosporin or Infliximab (biologic rescue).
  8. Day 5 review: colectomy discussion if no response to rescue therapy.
  9. GI surgeon involvement from admission (in case colectomy needed).

9.4 Decompensated Liver Cirrhosis Protocol

Complications to Identify and Treat:
A. Ascites:
  • Diagnostic paracentesis: send for cell count, albumin, protein, culture
  • SAAG (Serum-Ascites Albumin Gradient) > 1.1 = portal hypertension
  • Oral diuretics: Spironolactone 100 mg + Furosemide 40 mg (titrate up)
  • Therapeutic paracentesis if tense ascites: drain up to 5L; give Albumin 8g per litre drained
  • Salt restriction: < 2 g sodium/day
B. Spontaneous Bacterial Peritonitis (SBP):
  • Diagnose: ascitic fluid neutrophils > 250 cells/mm3
  • IV Cefotaxime 2g TDS x 5 days (or Ceftriaxone 1g OD)
  • IV Albumin 1.5 g/kg on day 1, 1.0 g/kg on day 3 (prevents hepatorenal syndrome)
  • Long-term prophylaxis: Norfloxacin 400 mg OD (after first episode)
C. Hepatic Encephalopathy:
  • Grade I-II: Lactulose PO (2-4 stools/day target); Rifaximin 550 mg BD
  • Grade III-IV: ICU; airway protection; Lactulose via NG tube; identify and treat precipitant
  • Precipitants: infection, GI bleed, constipation, hyponatraemia, benzodiazepines, diuretics
D. Variceal Bleeding:
  • Follow UGIB protocol (Section 9.1)
  • IV Terlipressin + IV antibiotics + urgent endoscopy (band ligation)
  • TIPS if refractory bleeding
E. Hepatorenal Syndrome (HRS):
  • Stop NSAIDs, diuretics, nephrotoxins
  • IV Albumin 1g/kg/day (max 100g) + IV Terlipressin
  • Dialysis if no response

9.5 C. Difficile Infection (CDI) Protocol

  • Isolate patient in single room; contact precautions (gloves + apron).
  • Stop offending antibiotic if possible.
  • Mild-moderate: Oral Metronidazole 400 mg TDS x 10 days.
  • Severe (WBC >15, creatinine raised, temperature >38.5): Oral Vancomycin 125 mg QID x 10 days.
  • Fulminant (toxic megacolon, ileus, shock): IV Metronidazole + Oral/NG Vancomycin + surgical review.
  • Sporicidal hand washing with soap and water (alcohol gel NOT effective for C. diff spores).
  • Environmental cleaning with chlorine-based disinfectant.
  • Retest only if symptoms persist or recur; do NOT test stool of asymptomatic patients.

SECTION 10 - IPD NURSING PROTOCOLS

10.1 GI IPD Nursing Assessment

  • Vital signs every 4 hours (every 1-2 hours in HDU/ICU/active bleed).
  • Stool chart: document frequency, Bristol Stool Form Scale type, colour, presence of blood/mucus.
  • Vomit chart: frequency, volume, nature (food, bile, blood, coffee-ground).
  • Fluid balance chart: strict input/output; daily weight in cirrhotic/ascites patients.
  • Abdominal girth measurement daily in ascites patients (at umbilicus; mark with pen).
  • Skin assessment: jaundice, pressure areas, peripheral oedema.
  • Pain score (0-10) every 4 hours; escalate if >= 7.
  • Nutritional intake: document % meals eaten; escalate if < 50% for 3 consecutive meals.

10.2 Nursing Care - GI Bleed

  • Keep patient NPO; mouth care every 2 hours.
  • IV access patent; IV infusions running as ordered.
  • Vital signs every 30 minutes until haemodynamically stable.
  • Observe vomitus and stool; save sample for ward round review if fresh blood.
  • Keep blood products prescription chart at bedside; check blood group wristband.
  • Prepare endoscopy trolley if emergency OGD ordered.
  • Emotional support and clear communication with patient and family.

10.3 Nasogastric (NG) Tube Care

  • Confirm position before every feed: aspirate pH < 5.5 OR X-ray confirmation at insertion.
  • Feed at prescribed rate; flush tube with 30 mL water before and after feed and medications.
  • Change NG tube every 28 days (Silk tube) or as per manufacturer's recommendation.
  • Elevate head of bed 30-45 degrees during feeding; keep elevated 1 hour after.
  • Document residual volume (>200 mL x 2 = withhold feed and inform dietitian/doctor).
  • Mouth care every 4 hours.

10.4 Stoma Care (Post-operative / Established)

  • Inspect stoma colour (should be pink/red) and output every shift.
  • Change stoma bag when 1/3 to 1/2 full; document output type and volume.
  • Assess peristomal skin for excoriation, leakage, or infection.
  • Measure stoma lumen at each bag change (stoma size changes for 6-8 weeks post-op).
  • Refer to stoma care nurse specialist for patient education before discharge.

SECTION 11 - IPD NUTRITION PROTOCOL

11.1 Nutritional Screening

  • MUST (Malnutrition Universal Screening Tool) score on every admission.
  • Score 0 = Low risk; routine care.
  • Score 1 = Medium risk; dietary advice; document intake.
  • Score 2+ = High risk; refer dietitian; nutritional support initiated within 24 hours.

11.2 Enteral Nutrition (Nasogastric / Nasojejunal / PEG)

IndicationRouteFormula
Oral intake < 60% for > 3 daysNG tubeStandard polymeric (e.g., Ensure, Fresubin)
Gastroparesis; post-pancreatitisNasojejunalSemi-elemental
Long-term enteral feeding > 4 weeksPEG (Percutaneous Endoscopic Gastrostomy)Standard / disease-specific
Liver failureNGBranched-chain amino acid formula
IBD flareNG or oral sipElemental formula

11.3 Parenteral Nutrition (PN)

  • Indicated when enteral route is not possible: short bowel syndrome, prolonged ileus, bowel obstruction, intestinal failure.
  • Central venous access required (PICC line or central line).
  • PN must be prescribed by physician and reviewed by dietitian daily.
  • Monitor: blood glucose (6-hourly initially), LFTs, renal function, triglycerides, phosphate (refeeding risk).
  • Target: 25-30 kcal/kg/day; 1.2-1.5 g protein/kg/day.
  • Wean PN gradually as enteral/oral intake resumes.

11.4 Refeeding Syndrome Prevention

  • High risk: chronic malnutrition, anorexia, prolonged fasting, alcoholism, malabsorption.
  • Check electrolytes (phosphate, potassium, magnesium) before starting feeding.
  • Replace phosphate, potassium, magnesium before and during refeeding.
  • Start feeding at 10 kcal/kg/day; increase gradually over 4-7 days.
  • IV Thiamine 100 mg before first feed and daily for first week.

SECTION 12 - ENDOSCOPY UNIT PROTOCOLS

12.1 Pre-Endoscopy Checklist (OPD / Day Care / IPD)

  • Consent form signed (includes risks: bleeding, perforation, missed lesion, reaction to sedation).
  • Allergy check (latex, iodine, sedative agents, antibiotics).
  • Coagulation status: stop Warfarin 5 days prior (INR < 1.5 for elective); consult haematology for bridge therapy.
  • Stop Clopidogrel 7 days prior for high-bleeding-risk procedures.
  • NBM: 6 hours solid food; 2 hours clear fluids (upper endoscopy).
  • Bowel prep compliance confirmed (colonoscopy): Boston Bowel Prep Scale >= 6.
  • IV access (18G) secured.
  • Baseline vitals documented.
  • Dentures and nail polish removed.
  • Escort confirmed (mandatory if sedation used; patient must not drive for 24 hours).

12.2 Sedation Protocol

  • Pre-sedation assessment: ASA classification, airway (Mallampati), BMI, OSA history.
  • Standard sedation: IV Midazolam 2-5 mg + IV Fentanyl 50-100 mcg (titrate).
  • Monitoring during procedure: SpO2, BP, ECG, capnography (if available).
  • Reversal agents available: Flumazenil (Midazolam reversal), Naloxone (opioid reversal).
  • Recovery: 30-60 minutes in recovery bay; discharge criteria: SpO2 >95%, alert, tolerating fluids, vitals stable.

12.3 Post-Endoscopy Care

  • Vital signs every 15 min for 1 hour post-procedure.
  • Monitor for complications: bleeding, perforation (severe pain, peritonism, fever).
  • OGD patients: sips of water after 30 min; normal diet when gag reflex confirmed.
  • Colonoscopy: diet as tolerated; may have mild bloating from gas insufflation (reassure).
  • Document: procedure findings, interventions (biopsy, polypectomy, band ligation), histology sent.
  • Discharge instructions: written; what to watch for (red flags); who to call.
  • Biopsy results: phone patient within 2 weeks; letter to GP / referring doctor.

12.4 Emergency Endoscopy (GI Bleed)

  • Alert endoscopy team immediately (Ext. 230).
  • Prepare emergency endoscopy trolley: therapeutic scope, injection catheters, haemostatic clips, banding kit (varices), Argon Plasma Coagulation (APC).
  • Anesthesia / airway team on standby for unconscious/encephalopathic patients.
  • Ensure blood products (PRBCs, FFP, platelets) available in room.
  • Goal: endoscopy within 12 hours for high-risk UGIB; within 24 hours for stable.

SECTION 13 - DISCHARGE PLANNING (IPD)

13.1 Discharge Criteria

ConditionDischarge Criteria
GI BleedHaemodynamically stable 24 hrs; Hb stable; tolerating oral diet; no active bleeding on endoscopy
Acute PancreatitisPain controlled on oral analgesia; tolerating oral diet; amylase/lipase trending down
UC / Crohn's FlareStool frequency < 3/day; no blood; tolerating oral medications; CRP improving
Decompensated CirrhosisAscites controlled; encephalopathy resolved; no active infection; stable LFTs
Acute PancreatitisPain controlled; tolerating oral feeds; no complications
C. difficileStools formed; afebrile; WBC normalising

13.2 Discharge Documentation Checklist

  • Discharge summary completed in HIS (within 24 hours of discharge).
  • Diagnosis, investigations, procedures, and treatment during admission documented.
  • Discharge medications: reconcile; counsel patient/family; written list provided.
  • Follow-up appointment booked before leaving ward.
  • GP / referring doctor letter sent within 48 hours.
  • Diet and lifestyle instructions given in writing.
  • Red flags explained: when to return to ED / call OPD.
  • Pending results (histology, cultures) tracked and actioned.

13.3 Patient Discharge Education - GI Specific

General:
  • Diet modifications specific to condition (written plan by dietitian).
  • Alcohol cessation if relevant; referral to alcohol services if needed.
  • Smoking cessation advice and resources.
  • Medication compliance: importance of not stopping steroids / immunosuppressants abruptly.
Condition-Specific Red Flags to Return to Hospital:
  • Fresh blood in vomit or stools
  • Severe worsening abdominal pain
  • High fever > 38.5 degC
  • Inability to keep fluids down
  • Yellowing of eyes/skin (jaundice)
  • Confusion or difficulty waking (encephalopathy)
  • Increasing abdominal swelling

SECTION 14 - INFECTION CONTROL - GI UNIT

14.1 Enteric Precautions

  • Single room / cohort for: C. difficile, norovirus, rotavirus, typhoid, cholera, infectious hepatitis.
  • Contact precautions: gloves + apron for all patient contact and environment.
  • Hand hygiene: soap and water MANDATORY for C. difficile (alcohol gel ineffective for spores).
  • Dedicated equipment: stethoscope, BP cuff, thermometer for isolated patients.
  • Visitor restriction: limit to 2 visitors; instruct on hand washing.
  • Environmental: chlorine-based disinfectant (1000 ppm) for C. difficile rooms; twice daily + terminal clean.

14.2 Endoscopy Decontamination

  • Endoscopes are SEMI-CRITICAL instruments: require HIGH-LEVEL DISINFECTION (HLD) after every use.
  • Process: pre-clean at bedside → manual clean → automated endoscope reprocessor (AER) with Glutaraldehyde or Peracetic acid → drying → storage hanging vertically.
  • Scope traceability: log patient ID, scope ID, reprocessor cycle, operator for every procedure.
  • Leak test before and after each use; report scope damage immediately.
  • Biopsy forceps and other accessories: STERILE (single use preferred; if reusable then sterilised by autoclave).

14.3 Sharps and Specimen Handling

  • All blood and stool specimens: universal precautions; sealed specimen bags; labelled clearly.
  • Needles, scopes, biopsy forceps: dispose in sharps containers immediately after use.
  • Spills of blood/body fluid: use GI spill kit; wear PPE; chlorine disinfectant.

SECTION 15 - KEY PERFORMANCE INDICATORS - GI UNIT

KPITarget
Time to endoscopy - UGIB (high risk)< 12 hours
Time to endoscopy - UGIB (stable)< 24 hours
Elective endoscopy wait time< 2 weeks
Colonoscopy completion rate> 90%
Adenoma detection rate (colonoscopy)> 25%
C. difficile cases per 1000 bed days< 2
Endoscope reprocessing compliance audit100%
MUST screening on admission> 95%
VTE prophylaxis prescribed100% of eligible patients
Discharge summary within 24 hours> 95%
30-day readmission rate (GI bleed)< 10%
Patient satisfaction score>= 4.0 / 5.0

SECTION 16 - QUICK REFERENCE - GI UNIT CONTACTS

ServiceExtension
GI OPD ReceptionExt. 300
GI Ward Nurses' StationExt. 310
GI Consultant On-callExt. 315
Endoscopy UnitExt. 320
Endoscopy Nurse In-chargeExt. 321
GI DietitianExt. 325
Stoma Care NurseExt. 326
GI Registrar (24/7)Ext. 330
Blood BankExt. 340
Laboratory (STAT)Ext. 345
RadiologyExt. 350
GI Surgeon On-callExt. 360
ICU / HDU LiaisonExt. 370
Crash Team / Code BlueExt. 999
SecurityExt. 100

SECTION 17 - COMMON ACRONYMS - GI UNIT

AcronymFull Form
AFPAlpha-Fetoprotein
ALPAlkaline Phosphatase
ALT / ASTAlanine / Aspartate Aminotransferase
APACHEAcute Physiology and Chronic Health Evaluation
ASUCAcute Severe Ulcerative Colitis
CDIClostridioides difficile Infection
CEACarcinoembryonic Antigen
ERCPEndoscopic Retrograde Cholangiopancreatography
EUSEndoscopic Ultrasound
FITFaecal Immunochemical Test
FOBTFaecal Occult Blood Test
GORDGastro-Oesophageal Reflux Disease
HCCHepatocellular Carcinoma
HRSHepatorenal Syndrome
IBDInflammatory Bowel Disease
IBSIrritable Bowel Syndrome
INRInternational Normalised Ratio
LFTLiver Function Test
MRCPMagnetic Resonance Cholangiopancreatography
MUSTMalnutrition Universal Screening Tool
NBMNil By Mouth
NPONothing Per Os (Nil By Mouth)
OGDOesophago-Gastro-Duodenoscopy (Upper Endoscopy)
PEGPercutaneous Endoscopic Gastrostomy
PNParenteral Nutrition
PPIProton Pump Inhibitor
SAAGSerum-Ascites Albumin Gradient
SBPSpontaneous Bacterial Peritonitis
TIPSTransjugular Intrahepatic Portosystemic Shunt
UGIBUpper Gastrointestinal Bleeding
VTEVenous Thromboembolism

GI Unit - Internal Medicine Department | OPD & IPD Operational Guide | Edition 2026 Reviewed annually | Queries: GI Department Head or Quality Department Confidential - All Staff

That is the complete GI OPD & IPD guide - all 17 sections. Select all and paste into Word, Google Docs, or any editor. Let me know if you need any section expanded, or if you want to add your hospital name and logo details.

Tell me about the sources

Here is a transparent breakdown of the sources behind the GI OPD & IPD guide:

Sources Used

1. Clinical Guidelines (Incorporated by Knowledge)

GuidelineOrganisationTopics Covered in Guide
BSG Guidelines on Upper GI BleedingBritish Society of Gastroenterology (BSG)UGIB protocol, Glasgow-Blatchford Score, endoscopy timing, transfusion targets
BSG Guidelines on Acute PancreatitisBSG / IAP (International Association of Pancreatology)Severity scoring, fluid resuscitation, ERCP timing, nutrition
ECCO Guidelines on IBDEuropean Crohn's & Colitis OrganisationASUC criteria (Truelove & Witts), IBD management, rescue therapy
EASL Guidelines on CirrhosisEuropean Association for the Study of the LiverAscites, SBP, hepatic encephalopathy, variceal bleeding, HRS
ACG Guidelines on C. difficileAmerican College of GastroenterologyCDI severity classification, antibiotic choices, infection control
ESPEN Guidelines on Nutritional SupportEuropean Society for Clinical Nutrition and MetabolismEnteral/parenteral nutrition, MUST scoring, refeeding syndrome
WHO Hand Hygiene GuidelinesWorld Health Organisation5 Moments of Hand Hygiene
NICE Guidelines (CG184 - Acute GI Bleeding)National Institute for Health and Care Excellence (UK)Risk stratification, transfusion, endoscopy
NICE Guidelines on Colorectal Cancer ScreeningNICE / NHSFIT screening, colonoscopy intervals, risk stratification
Truelove & Witts Criteria (1955, updated)Classic published criteriaASUC severity scoring
DECONTAMINATION / HLD GuidelinesBSG / ESGE (European Society of GI Endoscopy)Endoscope reprocessing, AER, traceability

2. Medical Knowledge Base (Training Data)

The guide draws on well-established clinical knowledge that is consistent across major medical textbooks, including:
  • Harrison's Principles of Internal Medicine - General internal medicine, GI diseases
  • Sleisenger & Fordtran's Gastrointestinal and Liver Disease - Specialist GI reference
  • Oxford Handbook of Gastroenterology - Clinical protocols and quick reference
  • Davidson's Principles & Practice of Medicine - Internal medicine standards
  • Schwartz's Principles of Surgery - Acute abdomen, surgical GI conditions

3. Standard Hospital Operations Frameworks

  • JCI (Joint Commission International) Accreditation Standards - Documentation, patient rights, safety checklists
  • NABH (National Accreditation Board for Hospitals, India) - OPD/IPD operational standards, nursing protocols
  • WHO Patient Safety Framework - Red flags, escalation, incident reporting

Important Disclaimer

This guide was generated from my training knowledge (cutoff early 2025) and reflects guidelines and standards that were current at the time of training. It was not pulled from a live database in real time for this session.
You should:
  1. Cross-check drug doses against your local formulary before clinical use.
  2. Verify guideline versions - BSG, EASL, ECCO, ACG all update periodically.
  3. Adapt extension numbers, bed categories, and operational details to your specific hospital.
  4. Have the guide reviewed and approved by your department head and quality team before official use.

Let me know if you want me to cite specific PMID references for any particular protocol, or add a formal reference list to the guide.
This is a shared conversation. Sign in to Orris to start your own chat.