Closed System Transfer Devices (CSTD)

Comprehensive guide to Closed System Transfer Devices for safe handling of hazardous drugs in pharmacy and oncology settings. Learn USP <800> compliance, database tracking, and safety protocols.

USP 800
Federal Standard
NIOSH
Safety Guidelines
Zero
Exposure Target
PPE
Required Protection

What is a Closed System Transfer Device?

A Closed System Transfer Device (CSTD) is a drug transfer device that mechanically prohibits the transfer of environmental contaminants into the system and prevents the escape of hazardous drug or vapor concentrations outside the system. CSTDs are critical for protecting healthcare workers from exposure to hazardous drugs during preparation, administration, and disposal.

USP <800> mandates the use of CSTDs when compounding sterile and non-sterile hazardous drug preparations. Common applications include chemotherapy compounding, hazardous drug administration in oncology units, and pharmacy cleanroom operations.

USP <800> Requirements

When CSTDs Are Required

  • Compounding: All sterile hazardous drug preparations in C-PEC or C-SEC
  • Administration: Recommended for antineoplastic administration
  • Transfers: Any transfer from vial to syringe or IV bag
  • Disposal: Use until final disposal in hazardous waste

NIOSH Hazardous Drug List Categories:

  • Group 1: Antineoplastic drugs (chemotherapy)
  • Group 2: Non-antineoplastic hazardous drugs (hormones, antivirals)
  • Group 3: Drugs with reproductive risk (finasteride, misoprostol)

Database Schema for CSTD Tracking

CSTD Device Master Table

CREATE TABLE cstd_device_master (
  device_id            VARCHAR(50) PRIMARY KEY,
  device_nm            VARCHAR(200) NOT NULL,    -- Device name
  mfr_nm               VARCHAR(200) NOT NULL,    -- Manufacturer name
  model_nbr            VARCHAR(50),              -- Model number
  device_type_cd       VARCHAR(20),              -- Vial, syringe, IV adapter
  compatible_size_txt  VARCHAR(100),             -- Compatible vial sizes
  niosh_approved_flag  CHAR(1) DEFAULT 'Y',      -- Y/N NIOSH approved
  exp_period_days      INT,                      -- Days until expiration after opening
  unit_cost_amt        DECIMAL(10,2),            -- Cost per unit
  vendor_id            VARCHAR(50),              -- Supplier vendor ID
  active_flag          CHAR(1) DEFAULT 'Y',
  eff_dt               DATE NOT NULL,
  term_dt              DATE,
  created_dttm         TIMESTAMP DEFAULT NOW()
);

CREATE INDEX idx_device_nm ON cstd_device_master(device_nm);
CREATE INDEX idx_mfr_nm ON cstd_device_master(mfr_nm);

CSTD Usage Tracking

CREATE TABLE cstd_usage_log (
  usage_log_id         VARCHAR(50) PRIMARY KEY,
  device_id            VARCHAR(50) NOT NULL,     -- FK to cstd_device_master
  rx_nbr               VARCHAR(50),              -- Prescription number
  patient_id           VARCHAR(50),              -- Patient ID (encrypted)
  drug_ndc_cd          VARCHAR(11) NOT NULL,     -- Drug NDC code
  drug_nm              VARCHAR(200),             -- Drug name
  hazard_category_cd   VARCHAR(20),              -- NIOSH Group 1/2/3
  compounded_qty       DECIMAL(10,2),            -- Amount compounded
  compounded_unit_cd   VARCHAR(10),              -- mg, ml, etc.
  pharmacist_id        VARCHAR(50),              -- Compounding pharmacist
  tech_id              VARCHAR(50),              -- Compounding technician
  compounded_dttm      TIMESTAMP NOT NULL,       -- Compounding timestamp
  location_cd          VARCHAR(50),              -- C-PEC, C-SEC location
  lot_nbr              VARCHAR(50),              -- Device lot number
  device_exp_dt        DATE,                     -- Device expiration date
  disposal_dttm        TIMESTAMP,                -- Disposal timestamp
  exposure_event_flag  CHAR(1) DEFAULT 'N',      -- Y/N exposure incident
  created_dttm         TIMESTAMP DEFAULT NOW()
);

CREATE INDEX idx_rx_nbr ON cstd_usage_log(rx_nbr);
CREATE INDEX idx_drug_ndc ON cstd_usage_log(drug_ndc_cd);
CREATE INDEX idx_compounded_dttm ON cstd_usage_log(compounded_dttm);
CREATE INDEX idx_pharmacist ON cstd_usage_log(pharmacist_id);

Common SQL Queries

Track CSTD Usage by Drug

SELECT 
  u.drug_nm,
  u.drug_ndc_cd,
  u.hazard_category_cd,
  COUNT(*) AS total_uses,
  SUM(u.compounded_qty) AS total_qty_compounded,
  COUNT(DISTINCT u.pharmacist_id) AS unique_pharmacists,
  MIN(u.compounded_dttm) AS first_use_dttm,
  MAX(u.compounded_dttm) AS last_use_dttm
FROM cstd_usage_log u
WHERE u.compounded_dttm >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY u.drug_nm, u.drug_ndc_cd, u.hazard_category_cd
ORDER BY total_uses DESC;

Monitor Exposure Events

SELECT 
  u.usage_log_id,
  u.rx_nbr,
  u.drug_nm,
  u.hazard_category_cd,
  u.pharmacist_id,
  u.tech_id,
  u.compounded_dttm,
  u.location_cd,
  d.device_nm,
  d.mfr_nm
FROM cstd_usage_log u
JOIN cstd_device_master d ON u.device_id = d.device_id
WHERE u.exposure_event_flag = 'Y'
  AND u.compounded_dttm >= CURRENT_DATE - INTERVAL '90 days'
ORDER BY u.compounded_dttm DESC;

Verify NIOSH-Approved Devices

SELECT 
  d.device_nm,
  d.mfr_nm,
  d.model_nbr,
  d.niosh_approved_flag,
  COUNT(u.usage_log_id) AS usage_count,
  MAX(u.compounded_dttm) AS last_used_dttm
FROM cstd_device_master d
LEFT JOIN cstd_usage_log u 
  ON d.device_id = u.device_id
  AND u.compounded_dttm >= CURRENT_DATE - INTERVAL '30 days'
WHERE d.active_flag = 'Y'
GROUP BY d.device_nm, d.mfr_nm, d.model_nbr, d.niosh_approved_flag
ORDER BY usage_count DESC NULLS LAST;

Compounding Productivity Report

SELECT 
  u.pharmacist_id,
  COUNT(DISTINCT u.rx_nbr) AS total_rx_count,
  COUNT(*) AS total_compounding_events,
  COUNT(DISTINCT u.drug_ndc_cd) AS unique_drugs_compounded,
  AVG(EXTRACT(EPOCH FROM (u.disposal_dttm - u.compounded_dttm)) / 60) 
    AS avg_handling_time_min,
  SUM(CASE WHEN u.hazard_category_cd = '1' THEN 1 ELSE 0 END) 
    AS group1_antineoplastic_count
FROM cstd_usage_log u
WHERE u.compounded_dttm >= CURRENT_DATE - INTERVAL '7 days'
  AND u.disposal_dttm IS NOT NULL
GROUP BY u.pharmacist_id
ORDER BY total_compounding_events DESC;

Safety Protocols & Compliance

PPE Requirements

  • Gloves: Double chemo-rated gloves (ASTM D6978)
  • Gown: Disposable chemotherapy gown (ASTM F739)
  • Face/Eye Protection: Face shield or goggles
  • Respirator: N95 or PAPR for spills or cleaning

Documentation Requirements

  • Log all CSTD usage with drug_nm, compounded_qty, and compounded_dttm
  • Track device lot_nbr and device_exp_dt for recall management
  • Document exposure_event_flag incidents immediately
  • Verify niosh_approved_flag before use
  • Maintain audit trail for all compounding activities

Common Abbreviations in CSTD Tracking

Device & Usage:

Tracking Fields:

View all Pharmacy abbreviations →

Related Resources

Need Help with Pharmacy Safety Data?

Explore our complete glossary of pharmacy and healthcare data standards