DosimetryPreCalculator
Dosimetry Pre Calculator
Utility description: Dosimetry Pre Calculator
Dosimetry Pre-Calculator — Radiopharmaceutical Activity and Dose Calculation ℹ️ Calculates activity at injection time, effective dose, and critical organ load. ℹ️ Supports F-18, Ga-68, Tc-99m, Lu-177, Ac-225, Cu-64, I-131, Zr-89. Usage: DosimetryPreCalculator.exe → demo mode DosimetryPreCalculator.exe input.csv output.json → calculation Input format: PatientID,Radiopharmaceutical,Radionuclide,Reference_Activity_MBq,Calibration_Time_ISO,Injection_Time_ISO,Patient_Weight_kg,Patient_Age_years,Min_Dose_MBq,Max_Dose_MBq,Max_Dose_per_kg_MBq Example: PAT-001,F-18-FDG,F-18,400.0,2026-05-20T08:00:00,2026-05-20T10:30:00,75.0,45.0,200.0,400.0,5.5 — WHY IS THIS NEEDED? Utility for medical physicists or NM physicians: • Decay Calculation: Radiopharmaceutical activity decreases over time. It is crucial to know the exact activity at injection time, not just at calibration. • Protocol Control: Ensures the administered dose is within the allowed range (min/max) and does not exceed weight-based limits (crucial for pediatrics). • Dose Estimation: Preliminary calculation of effective dose (mSv) and critical organ dose (mGy) using simplified MIRD coefficients. Helps assess radiation risk. • Nuclide Support: Built-in half-lives and coefficients for major diagnostic and therapeutic isotopes. ⚠️ IMPORTANT: • Calculations are based on standard models. Individual dosimetry (based on serial imaging) is more accurate. • Dose coefficients are averages. • For therapeutic isotopes (Lu-177, Ac-225), doses can be significantly higher; special control of kidneys/bone marrow is required.
input.csv
PatientID,Radiopharmaceutical,Radionuclide,Reference_Activity_MBq,Calibration_Time_ISO,Injection_Time_ISO,Patient_Weight_kg,Patient_Age_years,Min_Dose_MBq,Max_Dose_MBq,Max_Dose_per_kg_MBq PAT-001,F-18-FDG,F-18,400.0,2026-05-20T08:00:00,2026-05-20T10:30:00,75.0,45.0,200.0,400.0,5.5 PAT-002,Lu-177-DOTATATE,Lu-177,7400.0,2026-05-20T08:00:00,2026-05-20T14:00:00,80.0,60.0,7000.0,7800.0,100.0
URS & FS — User Requirements and Functional Specification
1. Scope
This document defines requirements and functional behaviour for DosimetryPreCalculator used to control: Dosimetry Pre Calculator. The utility is intended for QC use and applies deterministic rules, not machine learning.
2. Execution modes
DosimetryPreCalculator.exe— demo mode or help output.DosimetryPreCalculator.exe input.csv output.json— process user data and write result.
3. Key source-derived controls
- Dosimetry Pre-Calculator — Radiopharmaceutical Activity and Dose Calculation
- ℹ️ Calculates activity at injection time, effective dose, and critical organ load.
- PatientID,Radiopharmaceutical,Radionuclide,Reference_Activity_MBq,Calibration_Time_ISO,Injection_Time_ISO,Patient_Weight_kg,Patient_Age_years,Min_Dose_MBq,Max_Dose_MBq,Max_Dose_per_kg_MBq
- Utility for medical physicists or NM physicians:
- • Decay Calculation: Radiopharmaceutical activity decreases over time. It is crucial to know the exact activity at injection time, not just at calibration.
- • Dose Estimation: Preliminary calculation of effective dose (mSv) and critical organ dose (mGy) using simplified MIRD coefficients. Helps assess radiation risk.
- ⚠️ IMPORTANT:
4. URS — user requirements
| ID | Requirement | Criticality | Acceptance criterion |
|---|---|---|---|
| URS-001 | The utility shall accept input.csv with the exact headers defined in the data contract. | High | The file is processed without manual header changes. |
| URS-002 | The utility shall validate mandatory fields, data types, ranges, units, and critical pharmaceutical/radiochemical limits. | High | Each row receives PASS/WARNING/FAIL status. |
| URS-003 | The utility shall detect critical deviations related to radionuclidic/radiochemical purity, impurities, free radionuclide, pH, endotoxins and sterility where such fields are present. | High | A critical deviation produces FAIL or an explicit critical finding. |
| URS-004 | 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-005 | The utility shall not use machine learning to decide conformance. | Medium | The decision is based on explicit rules and thresholds. |
| URS-006 | The utility shall preserve traceability between batch number, input values, applied rules and final status. | High | The output contains batch identifier and checked parameters. |
| URS-007 | The documentation shall support IQ/OQ preparation and inspection discussion with FDA/EMA/Roszdravnadzor or local regulator. | Medium | URS/FS and test scenarios are supplied with the utility. |
5. input.csv contract
| # | Field | Type | Sample | Purpose |
|---|---|---|---|---|
| 1 | PatientID | decimal | PAT-001 | Controlled input parameter from input.csv. |
| 2 | Radiopharmaceutical | string | F-18-FDG | Product/radiopharmaceutical type; affects control interpretation. |
| 3 | Radionuclide | decimal | F-18 | Controlled input parameter from input.csv. |
| 4 | Reference_Activity_MBq | decimal | 400.0 | Activity of the radiopharmaceutical material or finished product. |
| 5 | Calibration_Time_ISO | decimal | 2026-05-20T08:00:00 | Controlled input parameter from input.csv. |
| 6 | Injection_Time_ISO | decimal | 2026-05-20T10:30:00 | Controlled input parameter from input.csv. |
| 7 | Patient_Weight_kg | decimal | 75.0 | Controlled input parameter from input.csv. |
| 8 | Patient_Age_years | decimal | 45.0 | Controlled input parameter from input.csv. |
| 9 | Min_Dose_MBq | decimal | 200.0 | Dosimetry parameter for preliminary evaluation. |
| 10 | Max_Dose_MBq | decimal | 400.0 | Dosimetry parameter for preliminary evaluation. |
| 11 | Max_Dose_per_kg_MBq | decimal | 5.5 | Dosimetry parameter for preliminary evaluation. |
PatientID,Radiopharmaceutical,Radionuclide,Reference_Activity_MBq,Calibration_Time_ISO,Injection_Time_ISO,Patient_Weight_kg,Patient_Age_years,Min_Dose_MBq,Max_Dose_MBq,Max_Dose_per_kg_MBq PAT-001,F-18-FDG,F-18,400.0,2026-05-20T08:00:00,2026-05-20T10:30:00,75.0,45.0,200.0,400.0,5.5 PAT-002,Lu-177-DOTATATE,Lu-177,7400.0,2026-05-20T08:00:00,2026-05-20T14:00:00,80.0,60.0,7000.0,7800.0,100.0
6. FS — functional specification
| ID | Function | Implementation |
|---|---|---|
| FS-001 | CSV import | Read input.csv in UTF-8/CSV-compatible format; validate header and expected columns. |
| FS-002 | Schema validation | Validate mandatory fields and column count; report unknown or missing key fields. |
| FS-003 | Type conversion | Convert numeric, flag and text values; record invalid format as row-level error. |
| FS-004 | Rule engine | Apply domain rules for Dosimetry Pre Calculator, including critical limits from the utility description. |
| FS-005 | Status aggregation | Generate final status: FAIL for critical failure, WARNING for non-critical deviation, PASS for conformance. |
| FS-006 | JSON export | Write output.json with check details, source values, warnings and critical findings. |
| FS-007 | Audit support | Keep result structure suitable for review, deviation investigation and IQ/OQ preparation. |
7. output.json example
{
"utilityId": "dosimetry-pre-calculator",
"api": "Dosimetry Pre Calculator",
"overallStatus": "PASS|WARNING|FAIL",
"sourceFile": "input.csv",
"checks": [
{
"parameter": "PatientID",
"value": "PAT-001",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Radiopharmaceutical",
"value": "F-18-FDG",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Radionuclide",
"value": "F-18",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Reference_Activity_MBq",
"value": "400.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Calibration_Time_ISO",
"value": "2026-05-20T08:00:00",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Injection_Time_ISO",
"value": "2026-05-20T10:30:00",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Patient_Weight_kg",
"value": "75.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Patient_Age_years",
"value": "45.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
}
],
"criticalFindings": []
}8. OQ/PQ test scenarios
| ID | Scenario | Expected result |
|---|---|---|
| OQ-001 | Valid sample row | PASS or acceptable WARNING according to rules. |
| OQ-002 | Mandatory column is 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 | Approved review result with input.csv and output.json retained. |
9. QA/QC and change control
- Do not rename columns without validator update.
- Store 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 checked against the approved specification and local SOPs.
Included in packages
PetRad2: advanced radiopharmaceutical QC package
A curated set of new utilities for radionuclide control, targeted alpha therapy, specific activity, radiolysis stability and preliminary dosimetry calculations.
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: alpha-emitting therapy
Ac-225, Ra-223, At-211, Bi-213 and Th-227: targeted alpha therapy and daughter/recoil control.
OpenRPH isotope family: beta-emitting therapy
Lu-177, Y-90, Ho-166, Re-188, Sm-153, Sr-89, P-32, Cu-67 and Tb-161.
OpenRPH isotope family: Ga/Ge
Ga-67, Ga-68 and Ge-68: generator, radiolabelling, PET/SPECT and purity workflows.
OpenRPH isotope family: long-lived PET / immuno-PET
Cu-64, Zr-89, I-124, Mn-52 and Y-86 for antibodies, slow kinetics and extended imaging.
OpenRPH isotope family: radioiodine
I-123, I-124, I-125 and I-131 for diagnostics, therapy, labelling and purity control.
OpenRPH isotope family: Tc-99m
Tc-99m radiopharmaceuticals, kit preparation, generator control, SPECT workflows and calculation utilities.
OpenRPH organ/system: bone and musculoskeletal
Bone scintigraphy, MDP/PYP, marrow, bone-pain palliation, skeletal metastases and radiosynovectomy.
OpenRPH organ/system: renal and urinary
Renography, GFR/ERPF, renal uptake, DMSA/MAG3/DTPA and bladder-related workflows.
OpenRPH use case: generators, isotope purity and starting radionuclides
Control of generator eluate, breakthrough, radionuclidic purity, isotope mix, carrier/free radionuclides and starting radionuclides before labeling.
OpenRPH workflow: dosimetry and therapy planning
Activity planning, absorbed dose, organ dose, lung shunt, preplanning and therapy verification.
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