DosimetryPreCalculator
Dosimetry Pre Calculator
Описание утилиты: Dosimetry Pre Calculator
Dosimetry Pre-Calculator — Расчет активности и дозы РФП ℹ️ Рассчитывает активность на момент инъекции, эффективную дозу и нагрузку на критические органы. ℹ️ Поддерживает F-18, Ga-68, Tc-99m, Lu-177, Ac-225, Cu-64, I-131, Zr-89. Использование: DosimetryPreCalculator.exe → демо-режим DosimetryPreCalculator.exe input.csv output.json → расчет Формат 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 — ЗАЧЕМ ЭТО НУЖНО? Утилита для медицинского физика или врача ЯМД: • Расчет распада: Активность РФП уменьшается со временем. Важно знать точную активность в момент инъекции, а не в момент калибровки дозкалибратора. • Контроль протокола: Проверка, что введенная доза находится в пределах разрешенного диапазона (мин/макс) и не превышает весовую норму (особенно важно для педиатрии). • Оценка дозы: Предварительный расчет эффективной дозы (мЗв) и дозы на критический орган (мГр) на основе упрощенных коэффициентов MIRD. Это помогает оценить радиационный риск. • Поддержка нуклидов: Встроенные периоды полураспада и коэффициенты для основных диагностических и терапевтических изотопов. ⚠️ ВАЖНО: • Расчеты основаны на стандартных моделях. Индивидуальная дозиметрия (на основе серий снимков) точнее. • Коэффициенты доз являются усредненными. • Для терапевтических изотопов (Lu-177, Ac-225) дозы могут быть значительно выше, требуется особый контроль почек/костного мозга.
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 — пользовательские требования и функциональная спецификация
1. Область применения
Документ описывает требования и функциональное поведение утилиты DosimetryPreCalculator для контроля: Dosimetry Pre Calculator. Утилита предназначена для ОКК/QC и использует детерминированные правила, а не машинное обучение.
2. Режимы запуска
DosimetryPreCalculator.exe— демонстрационный режим или справка.DosimetryPreCalculator.exe input.csv output.json— обработка пользовательских данных и запись результата.
3. Ключевые предметные ограничения
- ℹ️ Рассчитывает активность на момент инъекции, эффективную дозу и нагрузку на критические органы.
- 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
- • Оценка дозы: Предварительный расчет эффективной дозы (мЗв) и дозы на критический орган (мГр) на основе упрощенных коэффициентов MIRD. Это помогает оценить радиационный риск.
- ⚠️ ВАЖНО:
4. URS — пользовательские требования
| ID | Требование | Критичность | Критерий приемки |
|---|---|---|---|
| URS-001 | Утилита должна принимать input.csv с точными заголовками, указанными в контракте данных. | High | Файл обрабатывается без ручного изменения заголовков. |
| URS-002 | Утилита должна проверять обязательность, типы данных, диапазоны, единицы и критические фармацевтические/радиохимические пределы. | High | Для каждой строки формируется статус PASS/WARNING/FAIL. |
| URS-003 | Утилита должна выявлять критические отклонения, связанные с радионуклидной/радиохимической чистотой, примесями, свободным радионуклидом, pH, эндотоксинами и стерильностью, если такие поля присутствуют. | High | Критическое отклонение приводит к FAIL или явному critical finding. |
| URS-004 | Утилита должна формировать output.json с машинно-читаемыми результатами, исходными значениями, предупреждениями и отказами. | High | JSON пригоден для LIMS/ELN/MES-интеграции и QA/QC review. |
| URS-005 | Утилита не должна использовать машинное обучение для решения о соответствии. | Medium | Решение основано на заданных правилах и порогах. |
| URS-006 | Утилита должна сохранять трассируемость между номером серии, входными значениями, примененными правилами и итоговым статусом. | High | Выход содержит идентификатор серии и перечень проверенных параметров. |
| URS-007 | Документация должна поддерживать подготовку IQ/OQ и инспекционное обсуждение FDA/EMA/Росздравнадзора или локального регулятора. | Medium | URS/FS и тестовые сценарии доступны вместе с утилитой. |
5. Контракт input.csv
| # | Поле | Тип | Пример | Назначение |
|---|---|---|---|---|
| 1 | PatientID | decimal | PAT-001 | Контролируемый входной параметр из input.csv. |
| 2 | Radiopharmaceutical | string | F-18-FDG | Тип продукта/радиофармпрепарата; влияет на интерпретацию контроля. |
| 3 | Radionuclide | decimal | F-18 | Контролируемый входной параметр из input.csv. |
| 4 | Reference_Activity_MBq | decimal | 400.0 | Активность радиофармацевтического материала или готового продукта. |
| 5 | Calibration_Time_ISO | decimal | 2026-05-20T08:00:00 | Контролируемый входной параметр из input.csv. |
| 6 | Injection_Time_ISO | decimal | 2026-05-20T10:30:00 | Контролируемый входной параметр из input.csv. |
| 7 | Patient_Weight_kg | decimal | 75.0 | Контролируемый входной параметр из input.csv. |
| 8 | Patient_Age_years | decimal | 45.0 | Контролируемый входной параметр из input.csv. |
| 9 | Min_Dose_MBq | decimal | 200.0 | Дозиметрический параметр для предварительной оценки. |
| 10 | Max_Dose_MBq | decimal | 400.0 | Дозиметрический параметр для предварительной оценки. |
| 11 | Max_Dose_per_kg_MBq | decimal | 5.5 | Дозиметрический параметр для предварительной оценки. |
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 — функциональная спецификация
| ID | Функция | Реализация |
|---|---|---|
| FS-001 | CSV import | Прочитать input.csv в UTF-8/CSV-совместимом формате, проверить наличие заголовка и ожидаемых колонок. |
| FS-002 | Schema validation | Проверить обязательные поля и количество колонок; сообщить о неизвестных или отсутствующих ключевых полях. |
| FS-003 | Type conversion | Преобразовать числовые, флаговые и текстовые значения; некорректный формат фиксировать как ошибку строки. |
| FS-004 | Rule engine | Применить предметные правила для Dosimetry Pre Calculator, включая критические пределы из описания утилиты. |
| FS-005 | Status aggregation | Сформировать итоговый статус: FAIL при критическом отказе, WARNING при некритическом отклонении, PASS при соответствии. |
| FS-006 | JSON export | Записать output.json с детализацией проверок, исходными значениями, предупреждениями и critical findings. |
| FS-007 | Audit support | Сохранять структуру результата пригодной для review, расследования отклонений и подготовки IQ/OQ. |
7. Пример output.json
{
"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 тестовые сценарии
| ID | Сценарий | Ожидаемый результат |
|---|---|---|
| OQ-001 | Валидная строка из примера | PASS или допустимый WARNING согласно правилам. |
| OQ-002 | Отсутствует обязательная колонка | Ошибка схемы или FAIL. |
| OQ-003 | Нечисловое значение в числовом поле | Ошибка преобразования типа. |
| OQ-004 | Значение критического параметра за пределом | FAIL и critical finding. |
| PQ-001 | Реальная серия/партия пользователя | Согласованный результат review с сохранением input.csv и output.json. |
9. QA/QC и change control
- Не менять имена колонок без обновления валидатора.
- Хранить input.csv, output.json, версию исполняемого файла и контрольную сумму.
- Перед продуктивным использованием провести IQ/OQ/PQ или эквивалентную CSV/CSA-проверку.
- Критические радиофармацевтические пределы должны быть сверены с утверждённой спецификацией и локальными SOP.
Входит в пакеты
PetRad2: расширенный радиофармацевтический QC-пакет
Подборка новых утилит для контроля радионуклидов, таргетной альфа-терапии, удельной активности, радиолиза и предварительных дозиметрических расчётов.
ОткрытьРадиология
Пакет для радиологии и диагностической визуализации: радиофармпрепараты, PET/SPECT, контрастные вещества, йодсодержащие и гадолиниевые препараты, а также проверки частиц, стерильности и эндотоксинов.
ОткрытьRPH: объединённый радиофармацевтический QC-пакет
RPH объединяет PetRad, PetRad2 и PetRad3 в один обзорный пакет для PET/SPECT, терапевтических радионуклидов, генераторов, меченых соединений, расчётов распада, стерильности, эндотоксинов и радиохимической/радионуклидной чистоты.
Открыть