Make 100 CBT questions for ot technitian West Bengal for 2026 Preparation

Searching the Web

OT Technician West Bengal 2026 exam syllabus CBT pattern

Here are 100 CBT Questions for OT Technician - West Bengal 2026 Exam Preparation, covering all key syllabus topics (Anatomy & Physiology, Sterilization & Asepsis, OT Instruments, Anesthesia, Surgical Procedures, Patient Care, and General Nursing/Allied Sciences):

100 CBT Questions: OT Technician - West Bengal 2026


SECTION A: ANATOMY & PHYSIOLOGY (Q1-20)

1. The largest organ of the human body is:
  • A) Liver
  • B) Lung
  • C) Skin ✅
  • D) Brain
2. The normal adult blood volume is approximately:
  • A) 3 liters
  • B) 5 liters ✅
  • C) 7 liters
  • D) 9 liters
3. Which bone is commonly fractured in a "Colles fracture"?
  • A) Ulna
  • B) Humerus
  • C) Radius ✅
  • D) Tibia
4. The pacemaker of the heart is:
  • A) AV node
  • B) Bundle of His
  • C) SA node ✅
  • D) Purkinje fibers
5. Which nerve is most commonly injured in a fracture of the surgical neck of humerus?
  • A) Radial nerve
  • B) Axillary nerve ✅
  • C) Ulnar nerve
  • D) Median nerve
6. The normal pulse rate in an adult at rest is:
  • A) 40-60 bpm
  • B) 60-100 bpm ✅
  • C) 100-120 bpm
  • D) 120-140 bpm
7. The peritoneum lining the abdominal wall is called:
  • A) Visceral peritoneum
  • B) Mesentery
  • C) Parietal peritoneum ✅
  • D) Omentum
8. The "appendix" is attached to the:
  • A) Ileum
  • B) Cecum ✅
  • C) Sigmoid colon
  • D) Duodenum
9. Normal tidal volume in an adult is:
  • A) 150 mL
  • B) 350 mL
  • C) 500 mL ✅
  • D) 1000 mL
10. Which blood group is the "universal donor"?
  • A) AB
  • B) A
  • C) B
  • D) O ✅
11. The femoral nerve is a branch of the:
  • A) Sacral plexus
  • B) Lumbar plexus ✅
  • C) Brachial plexus
  • D) Cervical plexus
12. McBurney's point is located in the:
  • A) Left iliac fossa
  • B) Epigastric region
  • C) Right iliac fossa ✅
  • D) Umbilical region
13. The normal serum sodium level is:
  • A) 100-120 mEq/L
  • B) 135-145 mEq/L ✅
  • C) 150-165 mEq/L
  • D) 170-185 mEq/L
14. The gallbladder is located under which lobe of the liver?
  • A) Left lobe
  • B) Caudate lobe
  • C) Right lobe ✅
  • D) Quadrate lobe
15. Trendelenburg position is used for surgeries on:
  • A) Head and neck
  • B) Chest
  • C) Pelvic organs ✅
  • D) Upper limb
16. The ureter enters the bladder at a structure called:
  • A) Fundus
  • B) Trigone ✅
  • C) Dome
  • D) Neck
17. The "sciatic nerve" exits the pelvis through:
  • A) Obturator foramen
  • B) Greater sciatic foramen ✅
  • C) Femoral triangle
  • D) Lesser sciatic foramen
18. The normal adult respiratory rate is:
  • A) 8-10 breaths/min
  • B) 12-20 breaths/min ✅
  • C) 22-30 breaths/min
  • D) 30-40 breaths/min
19. Which cranial nerve controls eye movement (lateral rectus)?
  • A) CN III
  • B) CN IV
  • C) CN VI ✅
  • D) CN VII
20. Spleen is located in which abdominal region?
  • A) Right hypochondrium
  • B) Epigastric
  • C) Left hypochondrium ✅
  • D) Umbilical

SECTION B: STERILIZATION, DISINFECTION & ASEPSIS (Q21-35)

21. The gold standard method of sterilization in OT is:
  • A) Boiling
  • B) UV irradiation
  • C) Autoclaving (steam under pressure) ✅
  • D) Chemical soaking
22. Standard autoclaving is done at:
  • A) 100°C, 15 psi
  • B) 121°C, 15 psi ✅
  • C) 134°C, 5 psi
  • D) 150°C, 20 psi
23. The dry heat oven (hot air oven) is used for sterilizing:
  • A) Rubber gloves
  • B) Plastic instruments
  • C) Glassware and oils ✅
  • D) Sutures
24. Flash (immediate use) sterilization is done at:
  • A) 121°C for 30 min
  • B) 132°C for 3 min ✅
  • C) 100°C for 60 min
  • D) 160°C for 1 hour
25. The chemical used in OT fumigation is:
  • A) Chlorhexidine
  • B) Povidone iodine
  • C) Formaldehyde ✅
  • D) Hydrogen peroxide 3%
26. ETO (Ethylene Oxide) sterilization is used for:
  • A) Metal instruments
  • B) Heat-sensitive items ✅
  • C) Glassware
  • D) Surgical linen
27. The outer zone of OT complex is:
  • A) Sterile zone
  • B) Restricted zone
  • C) Clean zone
  • D) Unrestricted zone ✅
28. "Surgical asepsis" means:
  • A) Reducing microbial count
  • B) Complete absence of microorganisms ✅
  • C) Using antiseptics on skin
  • D) Wearing gloves only
29. A sterile field is considered contaminated when:
  • A) A masked person speaks near it
  • B) A sterile item is placed on it
  • C) A sterile gloved hand drops below waist level ✅
  • D) The surgeon stands 1 foot away
30. Which antiseptic is preferred for skin preparation before surgery?
  • A) Savlon
  • B) Chlorhexidine gluconate 2-4% or Povidone iodine ✅
  • C) Ethanol 50%
  • D) Hydrogen peroxide
31. The biological indicator (spore test) used to verify autoclave efficacy is:
  • A) Aspergillus niger
  • B) Clostridium tetani
  • C) Bacillus stearothermophilus ✅
  • D) E. coli
32. HEPA filters in OT air handling units remove particles as small as:
  • A) 10 microns
  • B) 5 microns
  • C) 0.3 microns ✅
  • D) 1 micron
33. Shelf life of a sterilized pack in a closed cabinet is usually:
  • A) 24 hours
  • B) 3 days
  • C) 30 days ✅
  • D) 6 months
34. Chemical indicator tapes (autoclave tape) change color to indicate:
  • A) Pack is sterile
  • B) Exposure to sterilization conditions ✅
  • C) Pack has expired
  • D) Correct temperature inside the pack
35. Prion-contaminated instruments require:
  • A) Routine autoclaving
  • B) ETO sterilization
  • C) Prolonged autoclaving at 134°C or incineration ✅
  • D) Glutaraldehyde soaking

SECTION C: OT INSTRUMENTS & EQUIPMENT (Q36-50)

36. Which instrument is used to hold soft tissues apart during surgery?
  • A) Kocher's forceps
  • B) Retractor ✅
  • C) Needle holder
  • D) Towel clip
37. The Babcock forceps is used to hold:
  • A) Bones
  • B) Delicate structures like bowel and fallopian tube ✅
  • C) Draping towels
  • D) Bleeding vessels
38. Kocher's forceps are used to:
  • A) Hold delicate tissue
  • B) Clamp large vessels and tough tissues ✅
  • C) Cut sutures
  • D) Hold needles
39. Needle holder (Mayo-Hegar) is used to:
  • A) Retract tissues
  • B) Hold surgical needles while suturing ✅
  • C) Cut blood vessels
  • D) Remove drains
40. Which retractor is self-retaining?
  • A) Langenbeck retractor
  • B) Deaver retractor
  • C) Balfour/Finochietto retractor ✅
  • D) Morris retractor
41. The instrument used to cut and simultaneously coagulate tissue using electricity is:
  • A) Cold scissors
  • B) Electrocautery/Diathermy ✅
  • C) Laser knife
  • D) Harmonic scalpel
42. A No. 10 scalpel blade is used for:
  • A) Fine ophthalmic incisions
  • B) Large skin and fascia incisions ✅
  • C) Tendon repair
  • D) Pediatric surgery
43. Bone-cutting forceps (rongeur) are used in:
  • A) Soft tissue surgery
  • B) Abdominal surgery
  • C) Orthopedic/neurosurgical procedures ✅
  • D) Laparoscopic surgery
44. The purpose of a tourniquet in limb surgery is:
  • A) Prevent nerve injury
  • B) Create a bloodless field ✅
  • C) Support the limb
  • D) Measure blood pressure
45. Which instrument is used to aspirate blood and fluids from the surgical field?
  • A) Cautery
  • B) Suction tip (Yankauer/Poole) ✅
  • C) Retractor
  • D) Sponge holder
46. "Yankauer suction" is specifically used for:
  • A) Abdominal cavity
  • B) Oropharyngeal suctioning ✅
  • C) Thoracic cavity
  • D) Urinary bladder
47. Gigli saw is used for:
  • A) Cutting soft tissue
  • B) Cutting bone ✅
  • C) Suturing tendons
  • D) Ligating vessels
48. The purpose of a "mayo stand" in OT is:
  • A) Positioning the patient
  • B) Holding instruments for immediate use during surgery ✅
  • C) Storing sterile packs
  • D) Mounting IV fluids
49. Laparoscopic insufflation gas used is:
  • A) Oxygen
  • B) Nitrogen
  • C) Carbon dioxide (CO2) ✅
  • D) Nitrous oxide
50. The Harmonic scalpel works using:
  • A) Laser energy
  • B) Electrical current
  • C) Ultrasonic vibration ✅
  • D) Thermal heat

SECTION D: ANESTHESIA (Q51-65)

51. Spinal anesthesia is given in which space?
  • A) Epidural space
  • B) Subdural space
  • C) Subarachnoid (intrathecal) space ✅
  • D) Intramuscular space
52. The most common complication of spinal anesthesia is:
  • A) Respiratory failure
  • B) Post-dural puncture headache ✅
  • C) Cardiac arrest
  • D) Seizures
53. Epidural anesthesia is commonly used in:
  • A) Eye surgery
  • B) Obstetric labor analgesia ✅
  • C) Brain surgery
  • D) Hand surgery
54. Succinylcholine is a:
  • A) Inhalational anesthetic
  • B) Depolarizing neuromuscular blocking agent ✅
  • C) Non-depolarizing muscle relaxant
  • D) Opioid analgesic
55. The reversal agent for non-depolarizing muscle relaxants is:
  • A) Naloxone
  • B) Flumazenil
  • C) Neostigmine ✅
  • D) Atropine
56. Ketamine produces which type of anesthesia?
  • A) Regional anesthesia
  • B) Dissociative anesthesia ✅
  • C) Local anesthesia
  • D) Epidural anesthesia
57. The most potent inhalational anesthetic agent is:
  • A) Nitrous oxide
  • B) Enflurane
  • C) Isoflurane
  • D) Sevoflurane ✅ (lowest MAC among modern agents)
58. Nitrous oxide is stored in cylinders of which color (Indian standard)?
  • A) Blue
  • B) Grey ✅
  • C) Black
  • D) Green
59. "Mallampati classification" is used to assess:
  • A) Cardiac risk
  • B) Airway for intubation ✅
  • C) Renal function
  • D) Liver reserve
60. The most serious complication of general anesthesia is:
  • A) Nausea and vomiting
  • B) Laryngospasm ✅
  • C) Mild hypotension
  • D) Shivering
61. Which drug is the antidote for opioid overdose?
  • A) Flumazenil
  • B) Neostigmine
  • C) Naloxone ✅
  • D) Physostigmine
62. LMA (Laryngeal Mask Airway) is inserted into the:
  • A) Trachea
  • B) Hypopharynx/laryngeal inlet ✅
  • C) Esophagus
  • D) Bronchus
63. Endotracheal tube cuff is inflated to:
  • A) Prevent tube displacement
  • B) Prevent aspiration and maintain seal ✅
  • C) Administer drugs
  • D) Measure tidal volume
64. Lignocaine (lidocaine) is classified as which type of local anesthetic?
  • A) Ester type
  • B) Amide type ✅
  • C) Opiate type
  • D) Barbiturate type
65. ASA physical status classification ASA III means:
  • A) Normal healthy patient
  • B) Mild systemic disease
  • C) Severe systemic disease - not incapacitating ✅
  • D) Moribund patient

SECTION E: SURGICAL PROCEDURES & OT PROTOCOLS (Q66-80)

66. "Informed consent" for surgery must be obtained by:
  • A) OT nurse
  • B) Anesthetist
  • C) Surgeon ✅
  • D) Ward boy
67. The term "laparotomy" means:
  • A) Incision into the chest
  • B) Incision into the abdomen ✅
  • C) Removal of the appendix
  • D) Suturing of the bowel
68. Which suture material is absorbable?
  • A) Nylon
  • B) Prolene
  • C) Catgut (chromic) ✅
  • D) Silk
69. The position used for rectal and perineal surgery is:
  • A) Prone
  • B) Lithotomy ✅
  • C) Lateral
  • D) Fowler's
70. Pneumoperitoneum is created during:
  • A) Open cholecystectomy
  • B) Laparoscopic surgery ✅
  • C) Thoracotomy
  • D) Craniotomy
71. "Time Out" in OT (WHO Surgical Safety Checklist) is performed:
  • A) Before induction of anesthesia
  • B) Before skin incision ✅
  • C) After the incision
  • D) During wound closure
72. Which drain is placed after total thyroidectomy to detect hematoma?
  • A) T-tube drain
  • B) Negative suction (Redivac) drain ✅
  • C) Penrose drain
  • D) Chest drain
73. A "T-tube" drain is placed in the:
  • A) Abdominal wall
  • B) Common bile duct ✅
  • C) Urinary bladder
  • D) Thoracic cavity
74. The WHO Surgical Safety Checklist has how many phases?
  • A) 2
  • B) 3 ✅
  • C) 4
  • D) 5
75. Which stitch is used for subcuticular (skin) closure?
  • A) Mattress suture
  • B) Figure of 8 suture
  • C) Continuous subcuticular suture ✅
  • D) Interrupted suture
76. Diathermy should NOT be used near:
  • A) Abdominal wall
  • B) Cardiac pacemaker ✅
  • C) Healthy skin
  • D) Subcutaneous tissue
77. The "sign-in" phase of WHO Surgical Checklist is done:
  • A) Before skin incision
  • B) Before induction of anesthesia ✅
  • C) After surgery
  • D) During wound closure
78. Sponge and instrument count is performed:
  • A) Only before surgery
  • B) Only after surgery
  • C) Before and after surgery ✅
  • D) Only during surgery
79. Dead space in a wound is closed to prevent:
  • A) Pain
  • B) Hematoma and seroma ✅
  • C) Scar formation
  • D) Suture reaction
80. Which solution is used for perioperative wound irrigation?
  • A) Distilled water
  • B) Normal saline (0.9% NaCl) ✅
  • C) Dextrose 5%
  • D) Ringer's lactate only in bowel surgery

SECTION F: PATIENT CARE, SAFETY & EMERGENCY (Q81-90)

81. Normal SpO2 (oxygen saturation) in a healthy adult is:
  • A) 85-90%
  • B) 90-94%
  • C) 95-100% ✅
  • D) 75-85%
82. The recovery position (lateral decubitus) is used to prevent:
  • A) Hypertension
  • B) Aspiration of vomitus ✅
  • C) Hypothermia
  • D) DVT
83. Which precaution prevents Venous Thromboembolism (VTE) post-surgery?
  • A) Prolonged bed rest
  • B) Early ambulation and anticoagulation ✅
  • C) Avoiding fluids
  • D) Ice packs
84. The "five rights" of drug administration does NOT include:
  • A) Right patient
  • B) Right dose
  • C) Right color ✅
  • D) Right route
85. A patient in anaphylactic shock in OT should FIRST receive:
  • A) IV corticosteroids
  • B) IV antihistamines
  • C) Intramuscular adrenaline (epinephrine) ✅
  • D) Oxygen only
86. Hypothermia in OT is defined as core body temperature below:
  • A) 37°C
  • B) 36°C
  • C) 35°C ✅
  • D) 34°C
87. Sharps disposal in OT should be done in:
  • A) Black bag
  • B) Red bag
  • C) Yellow puncture-proof container ✅
  • D) Blue bag
88. "Malignant hyperthermia" is triggered by which drugs?
  • A) Propofol and ketamine
  • B) Succinylcholine and volatile anesthetics ✅
  • C) Midazolam and fentanyl
  • D) Morphine and pancuronium
89. First aid for a needlestick injury in OT is:
  • A) Apply tourniquet
  • B) Wash with soap and running water immediately ✅
  • C) Apply iodine and bandage
  • D) Report only, no washing needed
90. Pressure injury (bedsore) in OT is BEST prevented by:
  • A) Using thick blankets
  • B) Proper positioning with adequate padding ✅
  • C) Keeping patient still
  • D) Applying antiseptic cream

SECTION G: MICROBIOLOGY, PHARMACOLOGY & GENERAL (Q91-100)

91. The most common nosocomial (hospital-acquired) infection in OT is:
  • A) UTI
  • B) Surgical Site Infection (SSI) ✅
  • C) Pneumonia
  • D) Bloodstream infection
92. Prophylactic antibiotic in surgery is ideally given:
  • A) 24 hours before surgery
  • B) 30-60 minutes before skin incision ✅
  • C) After skin incision
  • D) At end of surgery
93. MRSA stands for:
  • A) Methicillin-Resistant Staphylococcus Aureus ✅
  • B) Multi-Resistant Streptococcus Aureus
  • C) Methicillin-Resistant Streptococcus Agalactiae
  • D) Multi-Resistant Staphylococcus Agalactiae
94. The drug used to reverse benzodiazepine overdose is:
  • A) Naloxone
  • B) Neostigmine
  • C) Flumazenil ✅
  • D) Physostigmine
95. Heparin acts by:
  • A) Blocking platelet aggregation
  • B) Enhancing antithrombin III activity ✅
  • C) Dissolving existing clots
  • D) Blocking Vitamin K
96. Universal precautions mean treating all patients as potentially:
  • A) Allergic
  • B) Infectious ✅
  • C) Immunocompromised
  • D) Healthy
97. The color of oxygen cylinder (Indian standard) is:
  • A) Grey
  • B) Black
  • C) Black body with white shoulders ✅
  • D) Blue
98. Which hepatitis is NOT transmitted via blood-borne route?
  • A) Hepatitis B
  • B) Hepatitis C
  • C) Hepatitis D
  • D) Hepatitis E ✅
99. "Clean contaminated" wound (Class II) is a wound involving:
  • A) No tissue entered
  • B) Controlled entry into respiratory/GI/GU tract without spillage ✅
  • C) Acute inflammation present
  • D) Infected tissue with pus
100. The West Bengal Health Recruitment Board (WBHRB) conducts OT Technician recruitment under which ministry?
  • A) Ministry of Education
  • B) Ministry of Finance
  • C) Department of Health & Family Welfare, Govt. of West Bengal ✅
  • D) Ministry of Labour

Quick Topic Summary

SectionQuestionsTopics
A1-20Anatomy & Physiology
B21-35Sterilization, Disinfection & Asepsis
C36-50OT Instruments & Equipment
D51-65Anesthesia
E66-80Surgical Procedures & OT Protocols
F81-90Patient Care, Safety & Emergency
G91-100Microbiology, Pharmacology & General

Key tips for WBHRB OT Technician CBT 2026:
  • Focus heavily on sterilization methods, instrument names, and WHO Surgical Safety Checklist
  • Memorize autoclave parameters (121°C/15 psi/15 min; 134°C/30 psi/3 min)
  • Know anesthesia drugs and their reversal agents by heart
  • Understand the zones of OT complex (unrestricted, semi-restricted, restricted)
  • Practice on WBHRB previous year papers from 2022-2025 for pattern familiarity

Generate a presentation on OT Technician exam preparation strategy

Reading File
Reading File
Running Command

mkdir -p /tmp/workspace/ot-technician-ppt && ls /tmp/workspace/

Writing File

~/ot-technician-ppt/create_ppt.py

from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.util import Inches, Pt
import io

prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)

blank_layout = prs.slide_layouts[6]

# ── Color Palette ──────────────────────────────────────────────────────────────
DARK_BLUE   = RGBColor(0x0D, 0x3B, 0x6E)   # header/title bg
MED_BLUE    = RGBColor(0x14, 0x5D, 0xA0)   # accent
LIGHT_BLUE  = RGBColor(0xD6, 0xEA, 0xF8)   # card bg
GREEN       = RGBColor(0x1A, 0x7A, 0x45)   # highlight / tick
ORANGE      = RGBColor(0xE8, 0x6F, 0x0A)   # warning / important
WHITE       = RGBColor(0xFF, 0xFF, 0xFF)
DARK_GRAY   = RGBColor(0x2C, 0x2C, 0x2C)
LIGHT_GRAY  = RGBColor(0xF4, 0xF6, 0xF9)
GOLD        = RGBColor(0xF0, 0xB4, 0x29)
RED         = RGBColor(0xC0, 0x39, 0x2B)

# ── Helpers ────────────────────────────────────────────────────────────────────

def add_rect(slide, x, y, w, h, fill_color, transparency=0):
    shape = slide.shapes.add_shape(
        1,  # MSO_SHAPE_TYPE.RECTANGLE
        Inches(x), Inches(y), Inches(w), Inches(h)
    )
    shape.line.fill.background()
    fill = shape.fill
    fill.solid()
    fill.fore_color.rgb = fill_color
    return shape

def add_textbox(slide, text, x, y, w, h, font_size=18, bold=False,
                color=DARK_GRAY, align=PP_ALIGN.LEFT, italic=False,
                v_anchor=MSO_ANCHOR.MIDDLE, word_wrap=True):
    tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = word_wrap
    tf.vertical_anchor = v_anchor
    tf.margin_left = Pt(2)
    tf.margin_right = Pt(2)
    tf.margin_top = 0
    tf.margin_bottom = 0
    p = tf.paragraphs[0]
    p.alignment = align
    run = p.add_run()
    run.text = text
    run.font.size = Pt(font_size)
    run.font.bold = bold
    run.font.italic = italic
    run.font.color.rgb = color
    run.font.name = "Calibri"
    return tb

def add_multiline(slide, lines, x, y, w, h, font_size=14,
                  color=DARK_GRAY, bold=False, line_spacing=None, align=PP_ALIGN.LEFT):
    """lines: list of (text, bold, color)"""
    tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = Pt(4)
    tf.margin_right = Pt(4)
    tf.margin_top = Pt(4)
    tf.margin_bottom = Pt(4)
    for i, item in enumerate(lines):
        if isinstance(item, tuple):
            txt, b, c = item
        else:
            txt, b, c = item, bold, color
        if i == 0:
            p = tf.paragraphs[0]
        else:
            p = tf.add_paragraph()
        p.alignment = align
        if line_spacing:
            p.line_spacing = Pt(line_spacing)
        run = p.add_run()
        run.text = txt
        run.font.size = Pt(font_size)
        run.font.bold = b
        run.font.color.rgb = c
        run.font.name = "Calibri"
    return tb

def header_bar(slide, title, subtitle=None):
    """Dark blue header bar across the top"""
    add_rect(slide, 0, 0, 13.333, 1.15, DARK_BLUE)
    add_rect(slide, 0, 1.15, 13.333, 0.06, ORANGE)
    add_textbox(slide, title, 0.3, 0.05, 10, 0.7,
                font_size=30, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
    if subtitle:
        add_textbox(slide, subtitle, 0.3, 0.72, 10, 0.45,
                    font_size=15, bold=False, color=GOLD, align=PP_ALIGN.LEFT)

def footer(slide, text="WBHRB OT Technician CBT 2026 | Exam Preparation Strategy"):
    add_rect(slide, 0, 7.15, 13.333, 0.35, DARK_BLUE)
    add_textbox(slide, text, 0.3, 7.15, 12.5, 0.35,
                font_size=10, color=WHITE, align=PP_ALIGN.CENTER)

def card(slide, x, y, w, h, bg=LIGHT_BLUE, border_color=MED_BLUE):
    r = add_rect(slide, x, y, w, h, bg)
    r.line.color.rgb = border_color
    r.line.width = Pt(1.2)
    return r

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 1 – TITLE SLIDE
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE)
# diagonal accent
add_rect(slide, 0, 5.0, 13.333, 2.5, MED_BLUE)
add_rect(slide, 0, 4.9, 13.333, 0.12, ORANGE)
add_rect(slide, 0, 7.15, 13.333, 0.35, RGBColor(0x0A, 0x2A, 0x50))

# Badge circle simulation via rectangle
add_rect(slide, 5.5, 0.3, 2.4, 0.55, ORANGE)
add_textbox(slide, "WBHRB  2026", 5.5, 0.3, 2.4, 0.55,
            font_size=13, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

add_textbox(slide, "OT TECHNICIAN", 1.0, 1.1, 11.5, 1.1,
            font_size=52, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, "CBT EXAM", 1.0, 2.1, 11.5, 0.9,
            font_size=46, bold=True, color=GOLD, align=PP_ALIGN.CENTER)
add_textbox(slide, "PREPARATION STRATEGY", 1.0, 2.95, 11.5, 0.75,
            font_size=30, bold=False, color=WHITE, align=PP_ALIGN.CENTER)
add_rect(slide, 3.5, 3.75, 6.333, 0.05, ORANGE)

add_textbox(slide, "West Bengal Health Recruitment Board", 1.0, 3.9, 11.5, 0.5,
            font_size=18, color=LIGHT_BLUE, align=PP_ALIGN.CENTER)
add_textbox(slide, "Complete Roadmap  •  Subject Wise Tips  •  High Yield Topics  •  Mock Test Strategy",
            0.5, 5.15, 12.333, 0.5, font_size=14, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, "Prepared by: Orris AI  |  August 2026", 0.5, 7.15, 12.5, 0.35,
            font_size=10, color=LIGHT_BLUE, align=PP_ALIGN.CENTER)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 2 – EXAM OVERVIEW
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "Exam Overview", "WBHRB OT Technician Computer Based Test (CBT)")
footer(slide)

info = [
    ("Conducting Body", "West Bengal Health Recruitment Board (WBHRB)"),
    ("Exam Mode",        "Computer Based Test (CBT) - Online"),
    ("Total Questions",  "100 MCQs (4 options each)"),
    ("Duration",         "90 Minutes"),
    ("Marking Scheme",   "+1 for correct  |  Negative marking may apply"),
    ("Medium",           "English & Bengali"),
    ("Eligibility",      "10+2 (Science) + OT Technician Diploma/Certificate"),
]

col_x = [0.4, 4.5]
col_w = [4.0, 8.5]
for i, (label, value) in enumerate(info):
    row_y = 1.4 + i * 0.73
    bg = WHITE if i % 2 == 0 else RGBColor(0xEB, 0xF5, 0xFB)
    add_rect(slide, 0.4, row_y, 12.5, 0.68, bg)
    r = slide.shapes[-1]
    r.line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC)
    r.line.width = Pt(0.5)
    add_textbox(slide, label, 0.5, row_y, 3.8, 0.68,
                font_size=14, bold=True, color=DARK_BLUE)
    add_textbox(slide, value, 4.4, row_y, 8.3, 0.68,
                font_size=14, color=DARK_GRAY)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 3 – SYLLABUS BREAKDOWN
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "Syllabus Breakdown", "7 Core Subject Areas – Know Your Weightage")
footer(slide)

subjects = [
    ("Anatomy & Physiology",              "~20 Qs", MED_BLUE),
    ("Sterilization & Asepsis",           "~15 Qs", GREEN),
    ("OT Instruments & Equipment",        "~15 Qs", RGBColor(0x7D, 0x3C, 0x98)),
    ("Anesthesia (Types & Drugs)",        "~15 Qs", ORANGE),
    ("Surgical Procedures & Protocols",   "~15 Qs", RED),
    ("Patient Care & Safety",             "~10 Qs", RGBColor(0x17, 0x7B, 0x8A)),
    ("Microbiology & Pharmacology",       "~10 Qs", RGBColor(0x5D, 0x60, 0x37)),
]

for i, (subject, qs, color) in enumerate(subjects):
    row_y = 1.38 + i * 0.82
    col = i % 2
    add_rect(slide, 0.3, row_y, 0.28, 0.55, color)
    add_rect(slide, 0.58, row_y, 9.5, 0.55, WHITE)
    r = slide.shapes[-1]
    r.line.color.rgb = color
    r.line.width = Pt(1.5)
    add_textbox(slide, subject, 0.7, row_y, 8.5, 0.55, font_size=15, bold=True, color=DARK_GRAY)
    add_rect(slide, 10.2, row_y, 1.4, 0.55, color)
    add_textbox(slide, qs, 10.2, row_y, 1.4, 0.55,
                font_size=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 4 – 90-DAY STUDY PLAN
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "90-Day Study Plan", "Phase-wise Strategy for WBHRB OT Technician CBT")
footer(slide)

phases = [
    ("PHASE 1", "Days 1-30", "Foundation Building",
     ["Anatomy & Physiology: all body systems",
      "Basic Microbiology & Infection Control",
      "OT zones, layout & environment",
      "Daily: 2 hours study + 20 MCQs practice"],
     MED_BLUE),
    ("PHASE 2", "Days 31-60", "Core OT Skills",
     ["Sterilization methods (autoclave, ETO, dry heat)",
      "OT Instruments (names, uses, care)",
      "Anesthesia types, drugs & reversal agents",
      "Daily: 3 hours study + 40 MCQs practice"],
     GREEN),
    ("PHASE 3", "Days 61-90", "Revision & Mock Tests",
     ["Surgical procedures & WHO Safety Checklist",
      "Patient care, positioning & emergencies",
      "Full-length mock CBTs (100 Qs/90 min)",
      "Weekly: 2 full tests + error analysis"],
     ORANGE),
]

for i, (phase_num, days, title, bullets, color) in enumerate(phases):
    x = 0.3 + i * 4.35
    add_rect(slide, x, 1.35, 4.1, 5.65, WHITE)
    r = slide.shapes[-1]
    r.line.color.rgb = color
    r.line.width = Pt(2)

    add_rect(slide, x, 1.35, 4.1, 0.9, color)
    add_textbox(slide, phase_num, x, 1.35, 4.1, 0.45,
                font_size=18, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_textbox(slide, days, x, 1.78, 4.1, 0.45,
                font_size=13, color=WHITE, align=PP_ALIGN.CENTER)

    add_textbox(slide, title, x+0.1, 2.3, 3.9, 0.5,
                font_size=14, bold=True, color=color, align=PP_ALIGN.CENTER)

    for j, bullet in enumerate(bullets):
        by = 2.85 + j * 0.82
        add_textbox(slide, "• " + bullet, x+0.15, by, 3.8, 0.78,
                    font_size=12, color=DARK_GRAY, word_wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 5 – HIGH YIELD TOPICS (STERILIZATION)
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "High Yield: Sterilization & Asepsis", "Most Frequently Tested Area – Expected 12-15 Questions")
footer(slide)

table_data = [
    ("Method",              "Temp / Agent",        "Time",        "Used For",              "Key Point"),
    ("Autoclave",           "121°C / 15 psi",      "15-20 min",   "Metal instruments",     "Gold standard"),
    ("Flash Autoclave",     "132-134°C / 30 psi",  "3-4 min",     "Unwrapped instruments", "Immediate use"),
    ("Dry Heat (Oven)",     "160-170°C",            "60-120 min",  "Glassware, oils",       "NOT rubber/plastic"),
    ("ETO Gas",             "Ethylene Oxide",       "4-6 hours",   "Heat-sensitive items",  "Toxic - ventilate"),
    ("Glutaraldehyde 2%",   "Room temp",            "10 hrs",      "Endoscopes",            "High-level disinfection"),
    ("Formaldehyde",        "Fumigation",           "Overnight",   "OT fumigation",         "Seal OT 24 hrs"),
]

col_widths = [2.1, 2.1, 1.5, 2.5, 2.8]
col_xs = [0.3, 2.4, 4.5, 6.0, 8.5]
row_h = 0.74

for r_i, row in enumerate(table_data):
    row_y = 1.35 + r_i * row_h
    for c_i, cell in enumerate(row):
        bg = DARK_BLUE if r_i == 0 else (LIGHT_BLUE if r_i % 2 == 0 else WHITE)
        fc = WHITE if r_i == 0 else DARK_GRAY
        add_rect(slide, col_xs[c_i], row_y, col_widths[c_i]-0.05, row_h-0.02, bg)
        s = slide.shapes[-1]
        s.line.color.rgb = RGBColor(0xAA, 0xAA, 0xAA)
        s.line.width = Pt(0.5)
        add_textbox(slide, cell, col_xs[c_i]+0.05, row_y, col_widths[c_i]-0.1, row_h-0.02,
                    font_size=12, bold=(r_i == 0), color=fc, align=PP_ALIGN.CENTER,
                    v_anchor=MSO_ANCHOR.MIDDLE)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 6 – HIGH YIELD TOPICS (INSTRUMENTS)
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "High Yield: OT Instruments", "Know the Name, Function & Category of Each Instrument")
footer(slide)

instruments = [
    ("HOLDING / GRASPING",
     ["Babcock Forceps – holds delicate structures (bowel, fallopian tube)",
      "Kocher's Forceps – clamps large vessels/tough tissue (has teeth)",
      "Allis Forceps – grasps fascia/non-crushing soft tissue",
      "Sponge Holding Forceps – holds gauze for skin prep"],
     MED_BLUE),
    ("CUTTING",
     ["Scalpel No.10/20 – large incisions; No.15 – fine cuts",
      "Mayo Scissors – cutting heavy tissue/sutures",
      "Metzenbaum Scissors – delicate tissue dissection",
      "Gigli Saw – cutting bone (craniotomy/amputation)"],
     GREEN),
    ("RETRACTING",
     ["Langenbeck Retractor – held by assistant; general use",
      "Deaver Retractor – deep abdominal retraction",
      "Balfour Retractor – self-retaining; abdominal surgery",
      "Finochietto Retractor – self-retaining; thoracic surgery"],
     ORANGE),
    ("SPECIAL",
     ["Needle Holder (Mayo-Hegar) – holds suture needle",
      "Towel Clips – secures sterile drapes",
      "Bone Rongeur – cuts/nibbles bone",
      "Tourniquet – bloodless field for limb surgery"],
     RED),
]

for i, (category, items, color) in enumerate(instruments):
    x = 0.3 + (i % 2) * 6.5
    y = 1.35 + (i // 2) * 3.0
    add_rect(slide, x, y, 6.3, 2.75, WHITE)
    r = slide.shapes[-1]
    r.line.color.rgb = color
    r.line.width = Pt(2)
    add_rect(slide, x, y, 6.3, 0.45, color)
    add_textbox(slide, category, x, y, 6.3, 0.45,
                font_size=13, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    for j, item in enumerate(items):
        add_textbox(slide, "▸  " + item, x+0.15, y+0.5+j*0.54, 5.95, 0.52,
                    font_size=12, color=DARK_GRAY, word_wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 7 – HIGH YIELD TOPICS (ANESTHESIA)
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "High Yield: Anesthesia", "Drugs, Types & Complications – 12-15 Expected Questions")
footer(slide)

# Left column – types
add_rect(slide, 0.3, 1.35, 5.9, 5.65, WHITE)
slide.shapes[-1].line.color.rgb = MED_BLUE
slide.shapes[-1].line.width = Pt(1.5)
add_rect(slide, 0.3, 1.35, 5.9, 0.5, MED_BLUE)
add_textbox(slide, "ANESTHESIA TYPES", 0.3, 1.35, 5.9, 0.5,
            font_size=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

anest_types = [
    ("General (GA)", "IV + inhalational; loss of consciousness"),
    ("Spinal (SA)",  "Subarachnoid space; T4-L1 level; fast onset"),
    ("Epidural",     "Epidural space; obstetrics & post-op pain"),
    ("Local",        "Infiltration; minor procedures"),
    ("Regional",     "Nerve blocks; brachial plexus, femoral etc."),
    ("Dissociative", "Ketamine; sedation with analgesia"),
]
for i, (atype, desc) in enumerate(anest_types):
    ry = 1.95 + i * 0.82
    add_rect(slide, 0.4, ry, 1.3, 0.7, MED_BLUE)
    add_textbox(slide, atype, 0.4, ry, 1.3, 0.7,
                font_size=10, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_textbox(slide, desc, 1.75, ry, 4.3, 0.7,
                font_size=12, color=DARK_GRAY, word_wrap=True)

# Right column – drugs
add_rect(slide, 6.5, 1.35, 6.5, 5.65, WHITE)
slide.shapes[-1].line.color.rgb = GREEN
slide.shapes[-1].line.width = Pt(1.5)
add_rect(slide, 6.5, 1.35, 6.5, 0.5, GREEN)
add_textbox(slide, "KEY DRUGS & REVERSAL AGENTS", 6.5, 1.35, 6.5, 0.5,
            font_size=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

drugs = [
    ("Propofol",          "IV induction; milky white; short acting"),
    ("Thiopentone",       "IV induction; ultrashort barbiturate"),
    ("Ketamine",          "Dissociative; used in paeds & burns"),
    ("Succinylcholine",   "Depolarizing MR; rapid intubation"),
    ("Neostigmine",       "Reversal of non-depolarizing MR"),
    ("Naloxone",          "Opioid reversal / antidote"),
    ("Flumazenil",        "Benzodiazepine reversal"),
    ("Atropine",          "Given with neostigmine; prevents bradycardia"),
]
for i, (drug, desc) in enumerate(drugs):
    ry = 1.95 + i * 0.68
    add_rect(slide, 6.6, ry, 1.6, 0.62, GREEN)
    add_textbox(slide, drug, 6.6, ry, 1.6, 0.62,
                font_size=10, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_textbox(slide, desc, 8.25, ry, 4.6, 0.62,
                font_size=11, color=DARK_GRAY, word_wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 8 – WHO SURGICAL SAFETY CHECKLIST
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "WHO Surgical Safety Checklist", "3 Phases – Frequently Tested in WBHRB OT Technician Exam")
footer(slide)

phases_who = [
    ("SIGN IN", "Before Induction of Anaesthesia", MED_BLUE,
     ["Patient confirmed identity, site & procedure",
      "Informed consent verified",
      "Site marked if applicable",
      "Anaesthesia machine & medication check",
      "Pulse oximeter on & functioning",
      "Allergies known? Airway risk assessed?",
      "Blood loss risk assessed"]),
    ("TIME OUT", "Before Skin Incision", GREEN,
     ["Team introductions (all members by name & role)",
      "Confirm patient name, procedure, site",
      "Antibiotic prophylaxis given?",
      "Critical steps discussed (surgeon)",
      "Sterility confirmed (scrub nurse)",
      "Imaging displayed if needed",
      "Estimated blood loss discussed"]),
    ("SIGN OUT", "Before Patient Leaves OT", ORANGE,
     ["Procedure performed – confirmed in record",
      "Instrument / sponge / needle count correct",
      "Specimen labeled correctly",
      "Equipment problems to address?",
      "Surgeon reviews key concerns for recovery",
      "Anaesthesia concerns for recovery noted",
      "Nursing concerns reviewed"]),
]

for i, (phase, subtitle, color, items) in enumerate(phases_who):
    x = 0.25 + i * 4.35
    add_rect(slide, x, 1.35, 4.2, 5.65, WHITE)
    slide.shapes[-1].line.color.rgb = color
    slide.shapes[-1].line.width = Pt(2)
    add_rect(slide, x, 1.35, 4.2, 1.0, color)
    add_textbox(slide, phase, x, 1.35, 4.2, 0.52,
                font_size=20, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_textbox(slide, subtitle, x, 1.85, 4.2, 0.5,
                font_size=11, color=WHITE, align=PP_ALIGN.CENTER, italic=True)
    for j, item in enumerate(items):
        add_textbox(slide, "✔ " + item, x+0.1, 2.42+j*0.52, 4.0, 0.5,
                    font_size=11, color=DARK_GRAY, word_wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 9 – OT ZONES & ASEPTIC PRINCIPLES
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "OT Zones & Aseptic Principles", "Layout, Dress Code & Sterile Technique – High Yield")
footer(slide)

zones = [
    ("ZONE 1", "Unrestricted Zone", MED_BLUE,
     "Street clothes allowed. Reception, waiting area, locker rooms."),
    ("ZONE 2", "Semi-Restricted Zone", GREEN,
     "Scrub suit required. Corridors, scrub sinks, instrument storage."),
    ("ZONE 3", "Restricted Zone", ORANGE,
     "Full OT attire + mask. Operating theater, scrub area, sterile corridor."),
    ("ZONE 4", "Sterile Zone", RED,
     "Sterile gown & gloves. Surgical field, instrument table, scrubbed team."),
]

for i, (num, name, color, desc) in enumerate(zones):
    y = 1.4 + i * 1.4
    add_rect(slide, 0.3, y, 1.4, 1.25, color)
    add_textbox(slide, num, 0.3, y, 1.4, 0.6,
                font_size=16, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_textbox(slide, name, 0.3, y+0.6, 1.4, 0.65,
                font_size=10, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_rect(slide, 1.75, y, 7.5, 1.25, WHITE)
    slide.shapes[-1].line.color.rgb = color
    slide.shapes[-1].line.width = Pt(1.5)
    add_textbox(slide, desc, 1.9, y, 7.2, 1.25,
                font_size=13, color=DARK_GRAY, word_wrap=True)

# Aseptic principles box on right
add_rect(slide, 9.5, 1.35, 3.5, 5.65, WHITE)
slide.shapes[-1].line.color.rgb = MED_BLUE
slide.shapes[-1].line.width = Pt(2)
add_rect(slide, 9.5, 1.35, 3.5, 0.5, MED_BLUE)
add_textbox(slide, "ASEPTIC PRINCIPLES", 9.5, 1.35, 3.5, 0.5,
            font_size=12, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

principles = [
    "Only sterile items enter the sterile field",
    "Sterile persons touch only sterile items",
    "Non-sterile persons avoid sterile field",
    "Sterile field edges (1-inch border) = unsterile",
    "Sterile gown front (chest to waist) only is sterile",
    "Hands kept above waist at all times",
    "Moisture transfers contamination",
    "Questionable sterility = UNSTERILE",
    "Sterile field prepared just before use",
]
for i, p in enumerate(principles):
    add_textbox(slide, "• " + p, 9.6, 1.9+i*0.55, 3.3, 0.53,
                font_size=10, color=DARK_GRAY, word_wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 10 – PATIENT POSITIONING
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "Patient Positioning in OT", "Common Positions & Their Surgical Applications")
footer(slide)

positions = [
    ("Supine",          "Lying flat on back",            "Abdominal, chest, lower limb surgery",        MED_BLUE),
    ("Prone",           "Lying face down",               "Spine, posterior cranium, rectal surgery",    GREEN),
    ("Lateral",         "On side (left or right)",       "Nephrectomy, thoracotomy, hip surgery",        ORANGE),
    ("Lithotomy",       "Legs elevated in stirrups",     "Perineal, rectal, gynecological, urological",  RED),
    ("Trendelenburg",   "Head-down tilt (15-30°)",       "Pelvic surgery, shock management",             RGBColor(0x7D, 0x3C, 0x98)),
    ("Reverse Trend.",  "Head-up tilt (15-30°)",         "Head/neck, thyroid, laparoscopic (upper)",     RGBColor(0x17, 0x7B, 0x8A)),
    ("Sitting/Fowler's","Semi-reclined 45-90°",          "Craniotomy (posterior fossa), shoulder",       RGBColor(0x5D, 0x60, 0x37)),
    ("Jackknife",       "Prone with hips elevated",      "Perianal/rectal surgery",                      DARK_BLUE),
]

col_labels = ["POSITION", "DESCRIPTION", "SURGERY USED FOR"]
col_xs2 = [0.3, 2.4, 5.0]
col_ws2 = [2.0, 2.5, 6.8]

# header row
for ci, lbl in enumerate(col_labels):
    add_rect(slide, col_xs2[ci], 1.35, col_ws2[ci]-0.05, 0.5, DARK_BLUE)
    add_textbox(slide, lbl, col_xs2[ci], 1.35, col_ws2[ci]-0.05, 0.5,
                font_size=13, bold=True, color=WHITE, align=PP_ALIGN.CENTER)

for ri, (pos, desc, surgery, color) in enumerate(positions):
    ry = 1.9 + ri * 0.7
    bg = RGBColor(0xEB, 0xF5, 0xFB) if ri % 2 == 0 else WHITE
    for ci in range(3):
        add_rect(slide, col_xs2[ci], ry, col_ws2[ci]-0.05, 0.68, bg)
        slide.shapes[-1].line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC)
        slide.shapes[-1].line.width = Pt(0.4)
    add_rect(slide, 0.3, ry, 0.12, 0.68, color)
    add_textbox(slide, pos, 0.45, ry, 1.85, 0.68,
                font_size=12, bold=True, color=DARK_GRAY)
    add_textbox(slide, desc, 2.42, ry, 2.45, 0.68,
                font_size=11, color=DARK_GRAY, word_wrap=True)
    add_textbox(slide, surgery, 5.02, ry, 6.75, 0.68,
                font_size=11, color=DARK_GRAY, word_wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 11 – LAST-MINUTE REVISION TIPS
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "Last-Minute Revision Tips", "Final 2 Weeks Before the Exam – Smart Revision Strategy")
footer(slide)

tips_left = [
    ("MUST MEMORIZE", MED_BLUE, [
        "Autoclave: 121°C / 15 psi / 15-20 min",
        "Flash: 132-134°C / 30 psi / 3 min",
        "Hot air oven: 160°C / 60 min",
        "O2 cylinder = Black + White shoulders",
        "N2O cylinder = Blue (Indian standard)",
        "Normal SpO2 = 95-100%",
        "Normal BP = 120/80 mmHg",
        "Spinal anaesthesia = subarachnoid space",
    ]),
    ("REVERSAL DRUGS", GREEN, [
        "Opioids → Naloxone",
        "Benzodiazepines → Flumazenil",
        "Non-depol. MR → Neostigmine + Atropine",
        "Heparin → Protamine Sulfate",
        "Warfarin → Vitamin K / FFP",
    ]),
]

tips_right = [
    ("EXAM DAY TIPS", ORANGE, [
        "Attempt all questions – no blank",
        "Read ALL 4 options before marking",
        "Eliminate obviously wrong options",
        "Mark & review doubtful questions",
        "Time: ~54 sec per question",
        "Don't change first instinct unless sure",
    ]),
    ("COMMON MISTAKES TO AVOID", RED, [
        "Confusing autoclave temp with oven temp",
        "Mixing up Kocher vs Babcock forceps use",
        "Forgetting WHO checklist phases",
        "Sign-in = before anaesthesia (NOT incision)",
        "Succinylcholine = DEPOLARIZING (not non-dep.)",
        "MRSA = Staphylococcus, NOT Streptococcus",
    ]),
]

for gi, group in enumerate([tips_left, tips_right]):
    base_x = 0.3 + gi * 6.6
    cy = 1.35
    for (category, color, items) in group:
        add_rect(slide, base_x, cy, 6.3, 0.45, color)
        add_textbox(slide, category, base_x, cy, 6.3, 0.45,
                    font_size=13, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
        add_rect(slide, base_x, cy+0.45, 6.3, len(items)*0.54+0.1, WHITE)
        slide.shapes[-1].line.color.rgb = color
        slide.shapes[-1].line.width = Pt(1.5)
        for j, item in enumerate(items):
            add_textbox(slide, "✓  " + item, base_x+0.1, cy+0.5+j*0.54, 6.1, 0.52,
                        font_size=12, color=DARK_GRAY, word_wrap=True)
        cy += 0.55 + len(items)*0.54 + 0.25

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 12 – MOCK TEST STRATEGY
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "Mock Test Strategy", "Practice Like It Is the Real Exam")
footer(slide)

# Timeline bar
timeline = [
    ("Week 1-2", "10 Qs/day\nSubject-wise", MED_BLUE),
    ("Week 3-4", "25 Qs/day\nMixed topics", GREEN),
    ("Week 5-6", "50 Qs/day\nFull sections", ORANGE),
    ("Week 7-8", "Full 100 Qs\nTimed test", RED),
    ("Week 9-10", "2 tests/week\nError review", RGBColor(0x7D, 0x3C, 0x98)),
]
for i, (week, action, color) in enumerate(timeline):
    x = 0.5 + i * 2.5
    add_rect(slide, x, 1.4, 2.2, 1.6, color)
    add_textbox(slide, week, x, 1.4, 2.2, 0.55,
                font_size=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    add_textbox(slide, action, x, 1.95, 2.2, 1.05,
                font_size=12, color=WHITE, align=PP_ALIGN.CENTER)
    if i < 4:
        add_textbox(slide, "→", x+2.2, 1.9, 0.3, 0.7,
                    font_size=22, bold=True, color=MED_BLUE, align=PP_ALIGN.CENTER)

# DOs and DON'Ts
add_rect(slide, 0.3, 3.25, 6.0, 3.75, WHITE)
slide.shapes[-1].line.color.rgb = GREEN
slide.shapes[-1].line.width = Pt(2)
add_rect(slide, 0.3, 3.25, 6.0, 0.5, GREEN)
add_textbox(slide, "DOs  ✔", 0.3, 3.25, 6.0, 0.5,
            font_size=15, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
dos = [
    "Simulate real exam: 90 min, no interruptions",
    "Review every wrong answer immediately after",
    "Maintain an error log notebook",
    "Practice on WBHRB previous year papers",
    "Use a timer app – aim <54 sec per question",
    "Revise weak topics after each mock test",
]
for i, d in enumerate(dos):
    add_textbox(slide, "✓  " + d, 0.45, 3.82+i*0.52, 5.7, 0.5,
                font_size=12, color=DARK_GRAY, word_wrap=True)

add_rect(slide, 6.8, 3.25, 6.2, 3.75, WHITE)
slide.shapes[-1].line.color.rgb = RED
slide.shapes[-1].line.width = Pt(2)
add_rect(slide, 6.8, 3.25, 6.2, 0.5, RED)
add_textbox(slide, "DON'Ts  ✗", 6.8, 3.25, 6.2, 0.5,
            font_size=15, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
donts = [
    "Do NOT leave questions blank (attempt all)",
    "Avoid changing answers without strong reason",
    "Don't cram the night before – sleep well",
    "Avoid studying new topics in final week",
    "Don't skip error analysis after mock tests",
    "Avoid studying >4 hrs continuously; take breaks",
]
for i, d in enumerate(donts):
    add_textbox(slide, "✗  " + d, 6.95, 3.82+i*0.52, 5.9, 0.5,
                font_size=12, color=DARK_GRAY, word_wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 13 – RECOMMENDED RESOURCES
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, LIGHT_GRAY)
header_bar(slide, "Recommended Resources", "Books, Online Platforms & Practice Resources")
footer(slide)

resources = [
    ("TEXTBOOKS", MED_BLUE, [
        "BD Chaurasia – Human Anatomy (Vol I, II, III)",
        "AK Jain – Textbook of Physiology",
        "Ananthanarayanan – Microbiology (Textbook)",
        "Morgan & Mikhail – Clinical Anesthesiology",
        "Meeker & Rothrock – Alexander's Care of OT Patient",
        "Brunner & Suddarth – Medical-Surgical Nursing",
    ]),
    ("ONLINE PRACTICE", GREEN, [
        "WBHRB Official Website – wbhrb.in",
        "Testpaperlive App – OT Technician CBT",
        "SkilEdu.sg / similar platforms – MCQ banks",
        "YouTube – Search 'WBHRB OT Technician Mock Test'",
        "Previous Year Papers (2020-2025) – PDF available",
        "Telegram groups – WBHRB OT Technician 2026",
    ]),
    ("QUICK REFERENCE", ORANGE, [
        "WHO Surgical Safety Checklist (2 pages)",
        "Autoclave & sterilization parameter chart",
        "OT instrument photo cards (flashcards)",
        "Anesthesia drug-dose-reversal quick chart",
        "Normal lab values reference card",
        "Medical abbreviations list (OT specific)",
    ]),
]

for i, (category, color, items) in enumerate(resources):
    x = 0.3 + i * 4.35
    add_rect(slide, x, 1.35, 4.1, 5.65, WHITE)
    slide.shapes[-1].line.color.rgb = color
    slide.shapes[-1].line.width = Pt(2)
    add_rect(slide, x, 1.35, 4.1, 0.55, color)
    add_textbox(slide, category, x, 1.35, 4.1, 0.55,
                font_size=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
    for j, item in enumerate(items):
        add_textbox(slide, "▸  " + item, x+0.1, 2.0+j*0.84, 3.9, 0.8,
                    font_size=12, color=DARK_GRAY, word_wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 14 – MOTIVATIONAL CLOSING SLIDE
# ══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank_layout)
add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE)
add_rect(slide, 0, 3.5, 13.333, 0.1, ORANGE)
add_rect(slide, 0, 5.2, 13.333, 2.3, MED_BLUE)
add_rect(slide, 0, 7.15, 13.333, 0.35, RGBColor(0x0A, 0x2A, 0x50))

add_textbox(slide, "YOU ARE READY!", 0.5, 0.8, 12.333, 1.2,
            font_size=52, bold=True, color=GOLD, align=PP_ALIGN.CENTER)
add_textbox(slide, "Consistent preparation today = Success on exam day",
            0.5, 2.0, 12.333, 0.7,
            font_size=22, color=WHITE, align=PP_ALIGN.CENTER, italic=True)

add_textbox(slide, "Final Checklist Before Exam Day:",
            1.5, 3.7, 10.333, 0.55,
            font_size=16, bold=True, color=GOLD, align=PP_ALIGN.CENTER)

checklist = ["✔  Complete 90-day study plan",
             "✔  Attempt minimum 10 full mock tests",
             "✔  Revise autoclave parameters, drug reversals & WHO checklist",
             "✔  Sleep well the night before the exam",
             "✔  Carry Admit Card + valid photo ID"]

for i, item in enumerate(checklist):
    add_textbox(slide, item, 2.0, 4.35+i*0.46, 9.5, 0.44,
                font_size=13, color=WHITE, align=PP_ALIGN.CENTER)

add_textbox(slide, "Best of Luck from Orris AI  |  WBHRB OT Technician CBT 2026",
            0.5, 7.15, 12.5, 0.35,
            font_size=10, color=LIGHT_BLUE, align=PP_ALIGN.CENTER)

# ── Save ───────────────────────────────────────────────────────────────────────
output_path = "/tmp/workspace/ot-technician-ppt/OT_Technician_WB_2026_Exam_Strategy.pptx"
prs.save(output_path)
print(f"Saved: {output_path}")
Running Command

cd /tmp/workspace/ot-technician-ppt && python create_ppt.py

Running Command

ls -lh /tmp/workspace/ot-technician-ppt/

Your presentation is ready! Download it here:

OT Technician WB 2026 Exam Strategy

Presentation · PPTX


What's Inside (14 Slides)

SlideTitle
1Title Slide - OT Technician CBT Exam Preparation Strategy
2Exam Overview (WBHRB pattern, marks, duration, eligibility)
3Syllabus Breakdown (7 subjects with expected question count)
490-Day Study Plan (3 phases with daily targets)
5High Yield: Sterilization & Asepsis (parameter table)
6High Yield: OT Instruments (4 categories with key instruments)
7High Yield: Anesthesia (types + key drugs & reversal agents)
8WHO Surgical Safety Checklist (all 3 phases in detail)
9OT Zones & Aseptic Principles (4 zones + 9 principles)
10Patient Positioning (8 positions with surgical uses)
11Last-Minute Revision Tips + Common Mistakes to Avoid
12Mock Test Strategy (weekly timeline + DOs and DON'Ts)
13Recommended Resources (books, apps, quick references)
14Motivational Closing Slide + Final Exam Checklist
The presentation uses a professional dark blue, green, and orange color scheme with color-coded cards and tables throughout. All slides are in 16:9 widescreen format.
This is a shared conversation. Sign in to Orris to start your own chat.