Iodine131LipiodolQualityChecker
Iodine-131 Lipiodol
Utility description: Iodine-131 Lipiodol
Iodine-131 Lipiodol Quality Checker — Iodine-131 Lipiodol for radioembolization and therapy ℹ️ Utility checks critical parameters of Iodine-131 Lipiodol: • Radionuclidic purity (≥99.9%) • Iodine-125 impurity (≤0.1%) • Radiochemical purity (≥95%) — binding to lipiodol • Free iodide (≤5%) • pH, endotoxins, sterility, heavy metals ⚠️ CRITICAL: Free iodide >5% → accumulation in thyroid and stomach! Radiochemical purity <95% → risk of non-target embolization and systemic toxicity! Usage: Iodine131LipiodolQualityChecker.exe → demo mode (console output) Iodine131LipiodolQualityChecker.exe input.csv output.json → evaluate your data Input format: BatchNumber,TotalActivityMBq,RadionuclidicPurityPercent,Iodine125ImpurityPercent,RadiochemicalPurityPercent,FreeIodidePercent,pH,EndotoxinsEU,SterilityTest,HeavyMetalsPPM,ProductType Example (sterility: 0=sterile, 1=contaminated): I131-LIP-2026-001,3700.0,99.95,0.02,98.5,1.2,6.0,50.0,0,2,Therapeutic Supported product types: • Therapeutic — liver radioembolization (HCC), liver metastases therapy • Diagnostic — diagnostic imaging of distribution — WHY IS THIS NEEDED? Iodine-131 Lipiodol is a unique radiopharmaceutical for intra-arterial administration: • I-131 half-life: 8.02 days — optimal for therapeutic effect • Beta radiation (0.606 MeV max) — local destruction of tumor cells • Lipiodol (ethylesters of poppy seed fatty acids) — retained in liver tumors • Used for hepatocellular carcinoma (HCC) and liver metastases ⚠️ CRITICAL: • Radiochemical purity ≥95% — Iodine must be firmly bound to lipiodol. Free iodine washes out quickly and accumulates in the thyroid (if not blocked) and gastric mucosa. • Iodine-125 impurity ≤0.1% — I-125 (T½=59.4 days) creates unnecessary long-term radiation burden without therapeutic beta effect. • Free iodide ≤5% — high levels of free iodide lead to systemic toxicity and reduced tumor dose. • Sterility and endotoxins — critical for intra-arterial administration to the liver! Key features: • Control of radiochemical purity (I-131 binding to lipiodol) • Check for long-lived I-125 impurity • Assessment of free iodide level (risk of thyroid toxicity) • Support for therapeutic and diagnostic applications Critical parameters: • Radionuclidic purity: ≥99.9% • Iodine-125 impurity: ≤0.1% • Radiochemical purity: ≥95.0% • Free iodide: ≤5.0% • pH: 4.0–8.0 • Endotoxins: ≤175 EU/vial • Sterility: no microbial growth • Heavy metals: ≤10 ppm 💡 Usage tips: Radiochemical purity is determined by TLC (silica gel, organic solvent) Free iodide is determined as the fraction moving with the solvent front or remaining at the origin (depending on the system) Patients often undergo thyroid blockade with potassium iodide before administration, but free iodide control is still important for safety Lipiodol is viscous, so controlling temperature and injection speed is important ⚠️ Note: Unlike aqueous I-131 solutions, Lipiodol is an oily solution. This requires special RCP control methods and provides unique pharmacokinetics (retention in the tumor). The presence of free iodide is unacceptable as it does not retain in the tumor and irradiates healthy tissues.
input.csv
BatchNumber,TotalActivityMBq,RadionuclidicPurityPercent,Iodine125ImpurityPercent,RadiochemicalPurityPercent,FreeIodidePercent,pH,EndotoxinsEU,SterilityTest,HeavyMetalsPPM,ProductType I131-LIP-2026-001,3700.0,99.95,0.02,98.5,1.2,6.0,50.0,0,2,Therapeutic I131-LIP-2026-002,3500.0,99.80,0.15,94.0,6.5,5.5,180.0,0,8,Therapeutic I131-LIP-2026-003,3800.0,99.99,0.01,99.0,0.5,6.2,40.0,0,1,Diagnostic
URS & FS — User Requirements and Functional Specification
This document describes the controlled interface and behaviour of Iodine131LipiodolQualityChecker for Iodine-131 Lipiodol.
Domain limits and critical parameters
- ℹ️ Utility checks critical parameters of Iodine-131 Lipiodol:
- • Radionuclidic purity (≥99.9%)
- • Iodine-125 impurity (≤0.1%)
- • Radiochemical purity (≥95%) — binding to lipiodol
- • Free iodide (≤5%)
- • pH, endotoxins, sterility, heavy metals
- ⚠️ CRITICAL: Free iodide >5% → accumulation in thyroid and stomach!
- Radiochemical purity <95% → risk of non-target embolization and systemic toxicity!
- BatchNumber,TotalActivityMBq,RadionuclidicPurityPercent,Iodine125ImpurityPercent,RadiochemicalPurityPercent,FreeIodidePercent,pH,EndotoxinsEU,SterilityTest,HeavyMetalsPPM,ProductType
- Example (sterility: 0=sterile, 1=contaminated):
- ⚠️ CRITICAL:
- • Radiochemical purity ≥95% — Iodine must be firmly bound to lipiodol. Free iodine washes out quickly and accumulates in the thyroid (if not blocked) and gastric mucosa.
- • Iodine-125 impurity ≤0.1% — I-125 (T½=59.4 days) creates unnecessary long-term radiation burden without therapeutic beta effect.
- • Free iodide ≤5% — high levels of free iodide lead to systemic toxicity and reduced tumor dose.
URS — User Requirements Specification
| ID | Requirement | Criticality | Acceptance criterion |
|---|---|---|---|
| URS-001 | The utility shall accept an input.csv file with the exact headers defined in the data contract. | High | The file is processed without manual header editing. |
| URS-002 | The utility shall perform deterministic QC evaluation for Iodine-131 Lipiodol using input values, approved limits and domain rules. | High | Each input row receives a PASS / WARNING / FAIL status. |
| URS-003 | The utility shall validate mandatory fields, data types, numeric ranges, units and pharmaceutical/radiochemical plausibility. | High | Schema and conversion errors are explicitly reported. |
| URS-004 | The utility shall identify critical deviations related to radionuclidic purity, radiochemical purity, free radionuclide, impurities, pH, endotoxins and sterility when such fields are present. | High | A critical deviation causes FAIL or a separate critical finding. |
| URS-005 | The utility shall generate output.json with machine-readable results, source values, warnings and failures. | High | JSON is suitable for LIMS/ELN/MES integration and QA/QC review. |
| URS-006 | The utility shall not use machine learning to decide conformance. | Medium | The result is based on explicit rules, thresholds and input values. |
| URS-007 | The utility shall preserve traceability between batch number, input values, applied rules and final status. | High | The output contains the batch identifier and the list of checked parameters. |
| URS-008 | The documentation shall support IQ/OQ preparation and inspection discussion with FDA/EMA/Roszdravnadzor or local regulators. | Medium | URS & FS, input.csv/output.json contract and test scenarios are supplied with the utility. |
input.csv contract
| # | Field | Type | Sample | Purpose |
|---|---|---|---|---|
| 1 | BatchNumber | string | I131-LIP-2026-001 | Batch or lot identifier used for traceability. |
| 2 | TotalActivityMBq | decimal | 3700.0 | Radioactivity value used for release, decay or dose-related assessment. |
| 3 | RadionuclidicPurityPercent | string | 99.95 | Radionuclidic purity; a critical radiation-safety and impurity parameter. |
| 4 | Iodine125ImpurityPercent | string | 0.02 | Controlled impurity or residual material. |
| 5 | RadiochemicalPurityPercent | string | 98.5 | Radiochemical purity; confirms the labelled chemical form and binding quality. |
| 6 | FreeIodidePercent | string | 1.2 | Free radionuclide / unbound species; important for non-target uptake and toxicity. |
| 7 | pH | decimal | 6.0 | Solution pH; relevant for stability, compatibility and administration. |
| 8 | EndotoxinsEU | decimal | 50.0 | Bacterial endotoxins; critical for parenteral administration. |
| 9 | SterilityTest | flag / boolean | 0 | Sterility result; critical release parameter. |
| 10 | HeavyMetalsPPM | decimal | 2 | Elemental impurity / metal residue parameter. |
| 11 | ProductType | string | Therapeutic | Controlled input parameter used by the deterministic QC rules. |
BatchNumber,TotalActivityMBq,RadionuclidicPurityPercent,Iodine125ImpurityPercent,RadiochemicalPurityPercent,FreeIodidePercent,pH,EndotoxinsEU,SterilityTest,HeavyMetalsPPM,ProductType I131-LIP-2026-001,3700.0,99.95,0.02,98.5,1.2,6.0,50.0,0,2,Therapeutic I131-LIP-2026-002,3500.0,99.80,0.15,94.0,6.5,5.5,180.0,0,8,Therapeutic I131-LIP-2026-003,3800.0,99.99,0.01,99.0,0.5,6.2,40.0,0,1,Diagnostic
FS — Functional Specification
| ID | Function | Implementation |
|---|---|---|
| FS-001 | CSV import | Read input.csv in UTF-8/CSV-compatible format and validate the header and expected columns. |
| FS-002 | Schema validation | Check mandatory fields and column count; report unknown or missing key fields. |
| FS-003 | Type conversion | Convert numeric, flag and text values; invalid formats are recorded as row-level errors. |
| FS-004 | Domain rule engine | Apply domain rules for Iodine-131 Lipiodol, including critical limits from the utility description and approved specification. |
| FS-005 | Status aggregation | Produce final status: FAIL for critical failure, WARNING for non-critical deviation, PASS for conformance. |
| FS-006 | JSON export | Write output.json with detailed checks, source values, warnings, failures and critical findings. |
| FS-007 | Audit support | Keep the result structure suitable for review, deviation investigation, calculation reproduction and IQ/OQ preparation. |
| FS-008 | Integration contract | Support the production scenario: LIMS/ELN/MES creates input.csv, the utility returns output.json, the portal displays description and documentation. |
Example output.json
{
"utilityId": "iodine131-lipiodol-quality-checker",
"api": "Iodine-131 Lipiodol",
"overallStatus": "PASS|WARNING|FAIL",
"sourceFile": "input.csv",
"checks": [
{
"parameter": "BatchNumber",
"value": "I131-LIP-2026-001",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "TotalActivityMBq",
"value": "3700.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "RadionuclidicPurityPercent",
"value": "99.95",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Iodine125ImpurityPercent",
"value": "0.02",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "RadiochemicalPurityPercent",
"value": "98.5",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "FreeIodidePercent",
"value": "1.2",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "pH",
"value": "6.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "EndotoxinsEU",
"value": "50.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
}
],
"criticalFindings": []
}
OQ/PQ test scenarios
| ID | Scenario | Expected result |
|---|---|---|
| OQ-001 | Valid sample row | PASS or acceptable WARNING according to the rules. |
| OQ-002 | Mandatory column missing | Schema error or FAIL. |
| OQ-003 | Non-numeric value in numeric field | Type-conversion error. |
| OQ-004 | Critical parameter outside limit | FAIL and critical finding. |
| PQ-001 | User real batch/lot | Reviewed result with input.csv and output.json retained. |
QA/QC and change control
- Do not rename columns without updating the validator and test set.
- Retain
input.csv,output.json, executable version and checksum. - Before production use, perform IQ/OQ/PQ or equivalent CSV/CSA verification.
- Critical radiopharmaceutical limits must be verified against the approved specification and local SOPs.
Included in packages
Endocrinology QC Suite
QC package for endocrinology: thyroid, pituitary/peptide hormones, corticosteroids, sex hormones and selected metabolic medicines.
OpenGastroenterology QC Suite
QC package for gastroenterology: PPIs, antiemetics, prokinetics, IBD medicines, laxatives, enzymes and GI anti-infectives.
OpenPetRad3: expanded PET/SPECT and radiopharmaceutical QC package
A curated suite for PET/SPECT radiopharmaceuticals, generator and cyclotron radionuclides, labelled compounds, radiochemical purity, breakthrough, sterility and endotoxin control.
OpenRadiology QC Suite
QC package for radiology and diagnostic imaging: radiopharmaceuticals, PET/SPECT, contrast media, iodinated and gadolinium products, plus particle, sterility and endotoxin checks.
OpenRPH isotope family: radioiodine
I-123, I-124, I-125 and I-131 for diagnostics, therapy, labelling and purity control.
OpenRPH organ/system: endocrine, thyroid and NET
Radioiodine, thyroid/parathyroid, somatostatin receptor, MIBG and neuroendocrine workflows.
OpenRPH organ/system: hepatobiliary and GI
HIDA, mebrofenin, gallbladder, gastric emptying, GI transit, bleeding and liver/spleen imaging.
OpenRPH organ/system: oncology and theranostics
Tumour imaging, PSMA/FAPI/receptor tracers, immuno-PET, targeted radionuclide therapy and radioembolization.
OpenRPH use case: radionuclide therapy and theranostics
Lu-177, Ac-225, Ra-223, Y-90, Ho-166, Sm-153, Sr-89, Re-188, Tb-161, I-131 and other therapeutic radiopharmaceuticals: activity, purity, free metal, daughters and toxicological constraints.
OpenRPH workflow: generators and isotope purity
Generator eluate, breakthrough, radionuclidic purity, isotope mix and starting radionuclides.
OpenRPH workflow: imaging QC and quantitative interpretation
Acquisition, uptake, clearance, perfusion, transit, ejection fraction, segmentation and quantitative imaging.
OpenRPH workflow: product release QC
Assay, purity, sterility, endotoxins, pH, impurities, appearance and batch-release checks.
OpenRPH workflow: stability, storage, decay and waste
Kinetic stability, shelf life, decay correction, expiry, storage, trend and radioactive waste.
OpenRPH: combined radiopharmaceutical QC package
RPH combines PetRad, PetRad2 and PetRad3 into one umbrella package for PET/SPECT, therapeutic radionuclides, generators, labelled compounds, decay calculations, sterility, endotoxins and radiochemical/radionuclidic purity.
Open