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.
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:
- rx_nbr - Prescription Number
- compounded_qty - Compounded Quantity
- compounded_dttm - Compounded Date Time
- exp_dt - Expiration Date
- disposal_dttm - Disposal Date Time
Related Resources
Need Help with Pharmacy Safety Data?
Explore our complete glossary of pharmacy and healthcare data standards