Open vial policy

Reading File
Searching the Web

Open Vial Policy WHO vaccine multi-dose guidelines 2024

Finding Sources
Reading Web Page

https://www.who.int/publications/i/item/WHO-IVB-14.07

Reading File
Here is a complete summary of the Open Vial Policy (OVP) based on Park's Textbook of Preventive and Social Medicine (2015 guidelines) and WHO guidance:

Open Vial Policy (OVP)

Definition

The OVP allows reuse of partially used multi-dose vaccine vials across subsequent immunization sessions (both fixed and outreach) for up to 4 weeks (28 days) after first opening, provided specific conditions are met. The goal is to reduce vaccine wastage.

Vaccines Covered Under OVP

OVP applies only to the following vaccines (under India's Universal Immunization Programme):
Applicable (Can reuse up to 28 days)NOT Applicable (Discard after session)
DPTMeasles / MR
Tetanus Toxoid (TT)BCG
Hepatitis BJapanese Encephalitis (JE)
Oral Polio Vaccine (OPV)Rotavirus
Liquid Pentavalent
Pneumococcal Conjugate Vaccine (PCV)
Injectable IPV
Globally (per WHO/PAHO), reconstituted lyophilized vaccines (BCG, MMR, Yellow Fever) must be discarded within 6 hours of reconstitution or at the end of session, whichever comes first.

Conditions for Reuse (All must be met)

A vial opened at a session site can be used in more than one session up to 4 weeks, provided:
  1. Expiry date has not passed
  2. Vaccines are stored under appropriate cold chain temperatures during both transport and storage
  3. The vaccine vial septum has not been submerged in water or contaminated in any way
  4. Aseptic technique was used to withdraw all doses
  5. The Vaccine Vial Monitor (VVM) has not reached the discard point
  6. The vial has not been exposed to direct sunlight

Key Operational Rules

  • Record date and time of opening on each open vial
  • Open vials should never be submerged in water (e.g., water accumulated in vaccine carrier) - this increases risk of septum contamination
  • At the end of every session, all open vials must be returned to the Cold Chain Point
  • At the Cold Chain Point, segregate vials into:
    • Reusable - DPT, TT, Hep B, Pentavalent (if criteria met)
    • Non-reusable - Measles/MR, BCG, JE (destroyed within 48 hours or before next session, whichever is earlier)

In Case of AEFI (Adverse Event Following Immunization)

If any AEFI is reported, all open vials (both usable and non-usable) must not be discarded or used. They must be stored under proper cold chain until investigation is complete.

Historical Note

The Open Vial Policy was introduced under India's UIP in 2012-2013 and was updated with revised guidelines in 2015. It is based on the WHO multi-dose vial policy (2014 revision) which provides the global framework.

Source: Park's Textbook of Preventive and Social Medicine, Open Vial Policy (2015) section; WHO/IVB/14.07 (2014 Revision)

Make a pdf of it

Reading File
Running Command

mkdir -p /home/daytona/workspace/open-vial-policy && ls /home/daytona/workspace/

Writing File

~/open-vial-policy/generate_pdf.py

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

OUTPUT = "/home/daytona/workspace/open-vial-policy/Open_Vial_Policy.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=2*cm, leftMargin=2*cm,
    topMargin=2*cm, bottomMargin=2*cm
)

styles = getSampleStyleSheet()

# Custom styles
title_style = ParagraphStyle(
    "Title", parent=styles["Title"],
    fontSize=22, textColor=colors.HexColor("#1a5276"),
    spaceAfter=6, alignment=TA_CENTER
)
subtitle_style = ParagraphStyle(
    "Subtitle", parent=styles["Normal"],
    fontSize=11, textColor=colors.HexColor("#555555"),
    spaceAfter=12, alignment=TA_CENTER
)
h2_style = ParagraphStyle(
    "H2", parent=styles["Heading2"],
    fontSize=13, textColor=colors.HexColor("#1a5276"),
    spaceBefore=14, spaceAfter=4,
    borderPad=3
)
body_style = ParagraphStyle(
    "Body", parent=styles["Normal"],
    fontSize=10.5, leading=16, spaceAfter=4
)
bullet_style = ParagraphStyle(
    "Bullet", parent=styles["Normal"],
    fontSize=10.5, leading=16, leftIndent=16, spaceAfter=3,
    bulletIndent=4
)
note_style = ParagraphStyle(
    "Note", parent=styles["Normal"],
    fontSize=9.5, leading=14, textColor=colors.HexColor("#7d6608"),
    leftIndent=12, spaceAfter=4
)
source_style = ParagraphStyle(
    "Source", parent=styles["Normal"],
    fontSize=9, textColor=colors.grey, alignment=TA_CENTER, spaceBefore=18
)

story = []

# ── Title ─────────────────────────────────────────────────────────────────────
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("Open Vial Policy (OVP)", title_style))
story.append(Paragraph("WHO / Universal Immunization Programme Guidelines (2015)", subtitle_style))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor("#1a5276")))
story.append(Spacer(1, 0.4*cm))

# ── Definition ────────────────────────────────────────────────────────────────
story.append(Paragraph("Definition", h2_style))
story.append(Paragraph(
    "The Open Vial Policy (OVP) allows reuse of partially used <b>multi-dose vaccine vials</b> "
    "across subsequent immunization sessions (both fixed and outreach) for up to <b>4 weeks (28 days)</b> "
    "after first opening, provided specific conditions are met. The primary goal is to <b>reduce vaccine wastage</b>.",
    body_style
))

# ── Vaccines Covered ───────────────────────────────────────────────────────────
story.append(Paragraph("Vaccines Covered Under OVP", h2_style))

table_data = [
    [Paragraph("<b>Applicable — Can reuse up to 28 days</b>", body_style),
     Paragraph("<b>NOT Applicable — Discard after session</b>", body_style)],
    ["DPT", "Measles / MR"],
    ["Tetanus Toxoid (TT)", "BCG"],
    ["Hepatitis B", "Japanese Encephalitis (JE)"],
    ["Oral Polio Vaccine (OPV)", "Rotavirus"],
    ["Liquid Pentavalent", ""],
    ["Pneumococcal Conjugate Vaccine (PCV)", ""],
    ["Injectable IPV", ""],
]

col_widths = [9*cm, 8*cm]
tbl = Table(table_data, colWidths=col_widths, repeatRows=1)
tbl.setStyle(TableStyle([
    ("BACKGROUND", (0, 0), (0, 0), colors.HexColor("#d6eaf8")),
    ("BACKGROUND", (1, 0), (1, 0), colors.HexColor("#fadbd8")),
    ("TEXTCOLOR", (0, 0), (-1, -1), colors.black),
    ("FONTSIZE", (0, 0), (-1, -1), 10),
    ("LEADING", (0, 0), (-1, -1), 14),
    ("ROWBACKGROUNDS", (0, 1), (-1, -1), [colors.white, colors.HexColor("#f4f6f7")]),
    ("GRID", (0, 0), (-1, -1), 0.5, colors.HexColor("#aab7b8")),
    ("VALIGN", (0, 0), (-1, -1), "MIDDLE"),
    ("TOPPADDING", (0, 0), (-1, -1), 5),
    ("BOTTOMPADDING", (0, 0), (-1, -1), 5),
    ("LEFTPADDING", (0, 0), (-1, -1), 8),
]))
story.append(tbl)
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph(
    "⚠ Globally (WHO/PAHO): Reconstituted lyophilized vaccines (BCG, MMR, Yellow Fever) must be "
    "discarded within <b>6 hours</b> of reconstitution or at end of session, whichever comes first.",
    note_style
))

# ── Conditions ────────────────────────────────────────────────────────────────
story.append(Paragraph("Conditions for Reuse (ALL must be met)", h2_style))
story.append(Paragraph(
    "A vial opened at a session site can be used in more than one session up to 4 weeks, <b>provided</b>:",
    body_style
))

conditions = [
    "Expiry date has <b>not passed</b>.",
    "Vaccines are stored under <b>appropriate cold chain temperatures</b> during both transport and storage.",
    "The <b>vaccine vial septum</b> has not been submerged in water or contaminated in any way.",
    "<b>Aseptic technique</b> was used to withdraw all doses.",
    "The <b>Vaccine Vial Monitor (VVM)</b> has not reached the discard point.",
    "The vial has <b>not been exposed to direct sunlight</b>.",
]
for c in conditions:
    story.append(Paragraph(f"✓  {c}", bullet_style))

# ── Operational Rules ─────────────────────────────────────────────────────────
story.append(Paragraph("Key Operational Rules", h2_style))

ops = [
    "Record the <b>date and time of opening</b> on each open vial.",
    "Open vials should <b>never be submerged in water</b> (e.g., water accumulated in vaccine carrier) — this increases risk of septum contamination.",
    "At the end of every session, all open vials must be <b>returned to the Cold Chain Point</b>.",
    "At the Cold Chain Point, segregate vials into:<br/>"
    "&nbsp;&nbsp;&nbsp;&bull; <b>Reusable:</b> DPT, TT, Hep B, Pentavalent (if all criteria met)<br/>"
    "&nbsp;&nbsp;&nbsp;&bull; <b>Non-reusable:</b> Measles/MR, BCG, JE — destroy within 48 hours or before next session, whichever is earlier.",
]
for op in ops:
    story.append(Paragraph(f"•  {op}", bullet_style))

# ── AEFI ──────────────────────────────────────────────────────────────────────
story.append(Paragraph("In Case of AEFI (Adverse Event Following Immunization)", h2_style))
story.append(Paragraph(
    "If any AEFI is reported, <b>all open vials</b> (both usable and non-usable) must <b>not be discarded or used</b>. "
    "They must be stored under proper cold chain conditions until the investigation is complete.",
    body_style
))

# ── Historical Note ───────────────────────────────────────────────────────────
story.append(Paragraph("Historical Note", h2_style))
story.append(Paragraph(
    "The Open Vial Policy was introduced under India's Universal Immunization Programme (UIP) in "
    "<b>2012-2013</b> and updated with revised guidelines in <b>2015</b>. It is based on the "
    "<b>WHO multi-dose vial policy (2014 revision)</b>, reference WHO/IVB/14.07, which provides the global framework.",
    body_style
))

# ── Footer / Source ───────────────────────────────────────────────────────────
story.append(Spacer(1, 0.5*cm))
story.append(HRFlowable(width="100%", thickness=0.8, color=colors.HexColor("#aab7b8")))
story.append(Paragraph(
    "Source: Park's Textbook of Preventive and Social Medicine (Open Vial Policy, 2015 guidelines) · WHO/IVB/14.07 (2014 Revision)",
    source_style
))

doc.build(story)
print(f"PDF created: {OUTPUT}")
Running Command

cat > /home/daytona/workspace/open-vial-policy/generate_pdf.py << 'PYEOF' from r…

Your PDF is ready:

Open Vial Policy

PDF Document · PDF

It includes all sections - definition, vaccines table (applicable vs. not applicable), conditions for reuse, operational rules, AEFI guidance, and the historical note - with clean formatting, color-coded table headers, and source citation at the bottom.

/visual learning of open vial policy

Generating Image

A clean, colorful medical infographic titled "Open Vial Policy (OVP)" for immunization education. The infographic is divided into clear sections: 1. TOP BANNER: Bold title "Open Vial Policy (OVP)" with subtitle "Reduce Vaccine Wastage" on a deep blue background with vaccine vial icons. 2. DEFINITION BOX: Light blue box stating "Allows reuse of opened multi-dose vaccine vials across sessions for up to 28 DAYS (4 weeks)" with a calendar icon. 3. TWO-COLUMN TABLE labeled "VACCINES": - LEFT (green column, checkmark icon): "CAN Reuse up to 28 days" listing: DPT, TT, Hepatitis B, OPV, Pentavalent, PCV, IPV - RIGHT (red column, X icon): "DISCARD After Session" listing: Measles/MR, BCG, Japanese Encephalitis, Rotavirus, All Reconstituted Vaccines (6 hrs) 4. CONDITIONS CHECKLIST section titled "6 Conditions to Reuse a Vial" with green checkmark icons: ✓ Not expired ✓ Cold chain maintained ✓ Septum not submerged in water ✓ Aseptic technique used ✓ VVM not reached discard point ✓ Not exposed to sunlight 5. BOTTOM RULES strip with icons: - Clock icon: "Record date & time of opening" - Snowflake icon: "Return to Cold Chain Point after session" - Warning icon: "Never submerge vial in water" - Alert icon: "In AEFI — preserve ALL vials, do not discard" Clean white background, professional medical illustration style, bold readable fonts, icons for each point.

Open Vial Policy Visual Infographic
Here's a visual summary infographic of the Open Vial Policy covering all key points at a glance:
  • Blue banner - policy name and goal
  • Green vs Red columns - which vaccines can/cannot be reused
  • 6-point checklist - conditions that must ALL be met before reusing a vial
  • Bottom strip - key operational rules including the AEFI caution
Let me know if you'd like this as a downloadable image, a flashcard, or a different visual format (e.g., flowchart for decision-making).
This is a shared conversation. Sign in to Orris to start your own chat.