SpecificActivityCalculator
Specific Activity Calculator
Описание утилиты: Specific Activity Calculator
Specific Activity Calculator — Расчет удельной активности РФП ℹ️ Рассчитывает удельную активность (МБк/нмоль) с учетом распада. ℹ️ Поддерживает F-18, Ga-68, Lu-177, Ac-225, Y-90, Cu-64 и др. Использование: SpecificActivityCalculator.exe → демо-режим SpecificActivityCalculator.exe input.csv output.json → расчет Формат input.csv: BatchNumber,Radionuclide,Measured_Activity_MBq,Measurement_Time_ISO,Mass_Ligand_ug,Molecular_Weight_g_mol,Reference_Time_ISO,Min_Specific_Activity_MBq_nmol Пример: LU177-SA-001,Lu-177,7400.0,2026-05-20T08:00:00,50.0,1435.6,2026-05-20T08:00:00,1000.0 — ЗАЧЕМ ЭТО НУЖНО? Удельная активность (SA) — ключевой параметр качества для таргетной терапии и диагностики: • Эффективность связывания: Высокая SA гарантирует, что большинство молекул лиганда несут радионуклид. Низкая SA означает наличие «холодного» лиганда, который конкурирует за рецепторы, снижая эффективность визуализации или терапии. • Токсичность: Избыток холодного лиганда может вызвать фармакологические эффекты или токсичность. • Контроль качества: SA рассчитывается на основе измеренной активности (дозкалибратор) и количества лиганда (ВЭЖХ/спектрофотометрия). • Распад: Активность меняется со временем, поэтому важно указывать время измерения и время, к которому приводится расчет (например, момент инъекции). ⚠️ ВАЖНО: • Молекулярная масса должна соответствовать форме лиганда (свободный пептид или комплекс с металлом). • Для генераторных изотопов (Ga-68, Re-188) SA часто ограничена емкостью генератора и эффективностью мечения. • Для альфа-излучателей (Ac-225) требования к SA экстремально высоки из-за высокой токсичности свободных ионов.
input.csv
BatchNumber,Radionuclide,Measured_Activity_MBq,Measurement_Time_ISO,Mass_Ligand_ug,Molecular_Weight_g_mol,Reference_Time_ISO,Min_Specific_Activity_MBq_nmol LU177-SA-001,Lu-177,7400.0,2026-05-20T08:00:00,50.0,1435.6,2026-05-20T08:00:00,1000.0 AC225-SA-001,Ac-225,10.0,2026-05-20T08:00:00,5.0,1200.0,2026-05-20T08:00:00,5000.0
URS & FS — пользовательские требования и функциональная спецификация
1. Область применения
Документ описывает требования и функциональное поведение утилиты SpecificActivityCalculator для контроля: Specific Activity Calculator. Утилита предназначена для ОКК/QC и использует детерминированные правила, а не машинное обучение.
2. Режимы запуска
SpecificActivityCalculator.exe— демонстрационный режим или справка.SpecificActivityCalculator.exe input.csv output.json— обработка пользовательских данных и запись результата.
3. Ключевые предметные ограничения
- ⚠️ ВАЖНО:
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 | BatchNumber | string | LU177-SA-001 | Идентификатор серии/партии. |
| 2 | Radionuclide | decimal | Lu-177 | Контролируемый входной параметр из input.csv. |
| 3 | Measured_Activity_MBq | decimal | 7400.0 | Активность радиофармацевтического материала или готового продукта. |
| 4 | Measurement_Time_ISO | decimal | 2026-05-20T08:00:00 | Контролируемый входной параметр из input.csv. |
| 5 | Mass_Ligand_ug | decimal | 50.0 | Контролируемый входной параметр из input.csv. |
| 6 | Molecular_Weight_g_mol | decimal | 1435.6 | Контролируемый входной параметр из input.csv. |
| 7 | Reference_Time_ISO | decimal | 2026-05-20T08:00:00 | Контролируемый входной параметр из input.csv. |
| 8 | Min_Specific_Activity_MBq_nmol | decimal | 1000.0 | Активность радиофармацевтического материала или готового продукта. |
BatchNumber,Radionuclide,Measured_Activity_MBq,Measurement_Time_ISO,Mass_Ligand_ug,Molecular_Weight_g_mol,Reference_Time_ISO,Min_Specific_Activity_MBq_nmol LU177-SA-001,Lu-177,7400.0,2026-05-20T08:00:00,50.0,1435.6,2026-05-20T08:00:00,1000.0 AC225-SA-001,Ac-225,10.0,2026-05-20T08:00:00,5.0,1200.0,2026-05-20T08:00:00,5000.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 | Применить предметные правила для Specific Activity 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": "specific-activity-calculator",
"api": "Specific Activity Calculator",
"overallStatus": "PASS|WARNING|FAIL",
"sourceFile": "input.csv",
"checks": [
{
"parameter": "BatchNumber",
"value": "LU177-SA-001",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Radionuclide",
"value": "Lu-177",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Measured_Activity_MBq",
"value": "7400.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Measurement_Time_ISO",
"value": "2026-05-20T08:00:00",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Mass_Ligand_ug",
"value": "50.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Molecular_Weight_g_mol",
"value": "1435.6",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Reference_Time_ISO",
"value": "2026-05-20T08:00:00",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Min_Specific_Activity_MBq_nmol",
"value": "1000.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, терапевтических радионуклидов, генераторов, меченых соединений, расчётов распада, стерильности, эндотоксинов и радиохимической/радионуклидной чистоты.
Открыть