Inhaler_APSD_NGI_Profiler
Inhaler APSD NGI Profiler
ℹ️ Утилита рассчитывает ключевые параметры APSD по данным импактора NGI:
• MMAD (Медианный массовый аэродинамический диаметр)
• GSD (Геометрическое стандартное отклонение)
• FPF (Доля мелких частиц <5 мкм)
• Эмитированная доза (ED)
• Баланс массы (Recovery)
⚠️ КРИТИЧНО: Поток воздуха должен быть стабильным!
Распределение по стадиям определяет эффективность доставки в легкие.
Использование:
InhalerAPSDNGIProfiler.exe → демо-режим (вывод в консоль)
InhalerAPSDNGIProfiler.exe input.csv output.json → оценка ваших данных
Формат input.csv:
BatchNumber,ProductName,Mass_Stage1,Mass_Stage2,Mass_Stage3,Mass_Stage4,Mass_Stage5,Mass_Stage6,Mass_Stage7,Mass_MOC,TotalRecoveredMass,ThroatDeposit,FlowRate_L_min,TestDuration_sec,TargetDose_mcgr
Пример:
INH-NGI-2026-001,Budesonide DPI,15.0,12.0,10.0,8.0,15.0,20.0,10.0,10.0,100.0,20.0,60.0,2.0,200.0
— ЗАЧЕМ ЭТО НУЖНО?
Анализ APSD (Aerodynamic Particle Size Distribution) критичен для ингаляторов (AZ, GSK, BI):
• Определяет, какая часть препарата достигнет альвеол (мелкие частицы <5 мкм)
• MMAD и GSD характеризуют однородность аэрозоля
• FPF (Fine Particle Fraction) коррелирует с клинической эффективностью
• Данные NGI (Next Generation Impactor) являются золотым стандартом для регуляторов
⚠️ КРИТИЧЕСКИ ВАЖНО:
• MMAD 1-5 мкм — оптимальный диапазон для доставки в нижние дыхательные пути
• GSD < 2.5 — узкое распределение обеспечивает предсказуемую дозу
• FPF ≥30% (пример) — достаточное количество мелких частиц
• Баланс массы 75-125% — подтверждает корректность проведения эксперимента
• Поток воздуха должен строго соответствовать спецификации устройства (30, 60 или 90 л/мин)
Ключевые особенности утилиты:
• Автоматический расчет MMAD и GSD методом интерполяции кумулятивного распределения
• Расчет FPF и эмитированной дозы
• Проверка баланса массы (recovery)
• Контроль условий теста (поток, время)
Критические параметры:
• MMAD: 1.0–5.0 мкм
• GSD: ≤2.5
• FPF: ≥30% (зависит от препарата)
• Эмитированная доза: ≥85%
• Баланс массы: 75–125%
💡 Советы по использованию:
1. Тщательно промывайте стадии импактора для полного извлечения препарата
2. Используйте правильные cut-off диаметры для выбранного потока воздуха
3. Корректируйте данные на фон (blank runs)
4. Для MDI используйте пре-сепаратор для удаления крупных капель
5. Сравнивайте профили с эталонным препаратом (Reference Listed Drug)
⚠️ Особенность: Распределение частиц в ингаляторах сильно зависит от конструкции устройства и техники ингаляции пациента. NGI позволяет смоделировать этот процесс in vitro. Утилита помогает стандартизировать оценку качества аэрозоля для разных типов устройств (DPI, MDI, SMI).
input.csv
BatchNumber,ProductName,Mass_Stage1,Mass_Stage2,Mass_Stage3,Mass_Stage4,Mass_Stage5,Mass_Stage6,Mass_Stage7,Mass_MOC,TotalRecoveredMass,ThroatDeposit,FlowRate_L_min,TestDuration_sec,TargetDose_mcgr INH-NGI-2026-001,Budesonide DPI,15.0,12.0,10.0,8.0,15.0,20.0,10.0,10.0,100.0,20.0,60.0,2.0,200.0 INH-NGI-2026-002,Salbutamol MDI,5.0,8.0,12.0,15.0,20.0,25.0,10.0,5.0,100.0,10.0,30.0,1.5,100.0 INH-NGI-2026-003,Fluticasone DPI,20.0,15.0,10.0,5.0,10.0,15.0,15.0,10.0,100.0,30.0,60.0,2.0,250.0
Inhaler APSD NGI Profiler — URS и FS
Ниже приведены русские версии пользовательских требований и функциональной спецификации.
Inhaler APSD NGI Profiler — URS
Inhaler APSD NGI Profiler
Документ сформирован для русской локализации. Для английской и остальных языков используется отдельная английская версия без смешения языков.
Назначение
Определить пользовательские требования к автономной FUZKK-утилите, которая принимает CSV-файл лабораторных данных, выполняет проверку по зашитым в код правилам и формирует LabWare-compatible JSON.
Область применения
Утилита предназначена для предварительной QC/QA-оценки, интеграционного тестирования, LIMS/LabWare flow и подготовки evidence trail. Окончательное решение остаётся за валидированной процедурой лаборатории и ответственным персоналом.
Пользователи
QC analyst, QA reviewer, CSV/validation engineer, LIMS/LabWare integration engineer, responsible laboratory specialist.
Пользовательские требования
- Утилита должна запускаться без параметров и выводить самоописание, пример input.csv из GetDemoData() и demo evaluation для встроенного набора данных.
- Утилита должна запускаться с двумя параметрами: input.csv output.json.
- Утилита не должна читать input.csv и не должна писать output.json при запуске без параметров.
- CSV должен читаться с CultureInfo.InvariantCulture для числовых значений.
- Результат должен формироваться в LabWare-compatible JSON с Header, Samples, Results, Status, StatusCode, ErrorMessage, Description и DescriptionEN.
- При PASS поле ErrorMessage должно быть пустой строкой.
- Зашитые лимиты должны следовать приоритету: Ph. Eur. → British Pharmacopoeia / UK implementation → ЕАЭС / региональные требования → EMA/ICH/EU guidance → USP fallback.
- Если точная монография неизвестна, применяются строгие стандартные API-лимиты: Assay 98–102%, total impurities ≤1.0%, individual impurity ≤0.5%, если это применимо к типу утилиты.
- Для биопрепаратов и mAb-like продуктов должны учитываться агрегаты, стерильность и эндотоксины, если такие параметры релевантны назначению утилиты.
- Если параметр может приходить в разных единицах, единица должна быть отдельным входным полем или явно отражаться в имени поля input.csv.
Входной CSV
BatchNumber,ProductName,Mass_Stage1,Mass_Stage2,Mass_Stage3,Mass_Stage4,Mass_Stage5,Mass_Stage6,Mass_Stage7,Mass_MOC,TotalRecoveredMass,ThroatDeposit,FlowRate_L_min,TestDuration_sec,TargetDose_mcgr INH-NGI-2026-001,Budesonide DPI,15.0,12.0,10.0,8.0,15.0,20.0,10.0,10.0,100.0,20.0,60.0,2.0,200.0 INH-NGI-2026-002,Salbutamol MDI,5.0,8.0,12.0,15.0,20.0,25.0,10.0,5.0,100.0,10.0,30.0,1.5,100.0 INH-NGI-2026-003,Fluticasone DPI,20.0,15.0,10.0,5.0,10.0,15.0,15.0,10.0,100.0,30.0,60.0,2.0,250.0
Поля input.csv
| Field | Sample |
|---|---|
| BatchNumber | INH-NGI-2026-001 |
| ProductName | Budesonide DPI |
| Mass_Stage1 | 15.0 |
| Mass_Stage2 | 12.0 |
| Mass_Stage3 | 10.0 |
| Mass_Stage4 | 8.0 |
| Mass_Stage5 | 15.0 |
| Mass_Stage6 | 20.0 |
| Mass_Stage7 | 10.0 |
| Mass_MOC | 10.0 |
| TotalRecoveredMass | 100.0 |
| ThroatDeposit | 20.0 |
| FlowRate_L_min | 60.0 |
| TestDuration_sec | 2.0 |
| TargetDose_mcgr | 200.0 |
Описание утилиты
Inhaler APSD NGI Profiler — Профилировщик аэродинамического размера частиц (NGI)
Inhaler APSD NGI Profiler — Профилировщик аэродинамического размера частиц (NGI)
ℹ️ Утилита рассчитывает ключевые параметры APSD по данным импактора NGI:
• MMAD (Медианный массовый аэродинамический диаметр)
• GSD (Геометрическое стандартное отклонение)
• FPF (Доля мелких частиц <5 мкм)
• Эмитированная доза (ED)
• Баланс массы (Recovery)
⚠️ КРИТИЧНО: Поток воздуха должен быть стабильным!
Распределение по стадиям определяет эффективность доставки в легкие.
Использование:
InhalerAPSDNGIProfiler.exe → демо-режим (вывод в консоль)
InhalerAPSDNGIProfiler.exe input.csv output.json → оценка ваших данных
Формат input.csv:
BatchNumber,ProductName,Mass_Stage1,Mass_Stage2,Mass_Stage3,Mass_Stage4,Mass_Stage5,Mass_Stage6,Mass_Stage7,Mass_MOC,TotalRecoveredMass,ThroatDeposit,FlowRate_L_min,TestDuration_sec,TargetDose_mcgr
Пример:
INH-NGI-2026-001,Budesonide DPI,15.0,12.0,10.0,8.0,15.0,20.0,10.0,10.0,100.0,20.0,60.0,2.0,200.0
— ЗАЧЕМ ЭТО НУЖНО?
Анализ APSD (Aerodynamic Particle Size Distribution) критичен для ингаляторов (AZ, GSK, BI):
• Определяет, какая часть препарата достигнет альвеол (мелкие частицы <5 мкм)
• MMAD и GSD характеризуют однородность аэрозоля
• FPF (Fine Particle Fraction) коррелирует с клинической эффективностью
• Данные NGI (Next Generation Impactor) являются золотым стандартом для регуляторов
⚠️ КРИТИЧЕСКИ ВАЖНО:
• MMAD 1-5 мкм — оптимальный диапазон для доставки в нижние дыхательные пути
• GSD < 2.5 — узкое распределение обеспечивает предсказуемую дозу
• FPF ≥30% (пример) — достаточное количество мелких частиц
• Баланс массы 75-125% — подтверждает корректность проведения эксперимента
• Поток воздуха должен строго соответствовать спецификации устройства (30, 60 или 90 л/мин)
Ключевые особенности утилиты:
• Автоматический расчет MMAD и GSD методом интерполяции кумулятивного распределения
• Расчет FPF и эмитированной дозы
• Проверка баланса массы (recovery)
• Контроль условий теста (поток, время)
Критические параметры:
• MMAD: 1.0–5.0 мкм
• GSD: ≤2.5
• FPF: ≥30% (зависит от препарата)
• Эмитированная доза: ≥85%
• Баланс массы: 75–125%
💡 Советы по использованию:
1. Тщательно промывайте стадии импактора для полного извлечения препарата
2. Используйте правильные cut-off диаметры для выбранного потока воздуха
3. Корректируйте данные на фон (blank runs)
4. Для MDI используйте пре-сепаратор для удаления крупных капель
5. Сравнивайте профили с эталонным препаратом (Reference Listed Drug)
⚠️ Особенность: Распределение частиц в ингаляторах сильно зависит от конструкции устройства и техники ингаляции пациента. NGI позволяет смоделировать этот процесс in vitro. Утилита помогает стандартизировать оценку качества аэрозоля для разных типов устройств (DPI, MDI, SMI).
Трассируемость и ограничения
- URS используется как исходный документ для functional specification, CSV review и последующей CSV/validation работы.
- Документ не является заменой утверждённой фармакопейной монографии, валидированного метода или внутренней спецификации продукта.
- Для product-specific лимитов приоритет имеет утверждённая спецификация заказчика.
Inhaler APSD NGI Profiler — FS
Inhaler APSD NGI Profiler
Функциональная спецификация описывает поведение автономной консольной утилиты FUZKK, формат входных данных, алгоритм оценки и структуру выходного JSON.
Функциональный поток
- Main() проверяет количество аргументов.
- Если аргументов нет: PrintHello() выводит описание и встроенный пример input.csv, затем RunDemoEvaluation() выполняет Evaluate() по GetDemoData() и печатает demo JSON.
- Если передано два аргумента: RunWithFiles(input.csv, output.json) читает CSV, выполняет Evaluate() по каждой строке и записывает LabWare-compatible JSON.
- LoadData() использует CultureInfo.InvariantCulture и не должен вызываться в no-args режиме.
- Evaluate() возвращает именованный кортеж с BatchNumber, ProductName, Parameters, CriticalFailCount, WarningCount, Recommendation и RecommendationEN.
- GetIssues() формирует сообщения для ErrorMessage при WARNING/FAIL.
Правила оценки
- PASS: CriticalFailCount = 0 и WarningCount = 0.
- WARNING: CriticalFailCount = 0 и WarningCount > 0.
- FAIL: CriticalFailCount > 0.
- ERROR: исключение при чтении или обработке данных.
- ErrorMessage остаётся пустым при PASS.
- Лимиты зашиты в Program.cs; внешняя конфигурация лимитов не требуется.
Ввод и поля
BatchNumber,ProductName,Mass_Stage1,Mass_Stage2,Mass_Stage3,Mass_Stage4,Mass_Stage5,Mass_Stage6,Mass_Stage7,Mass_MOC,TotalRecoveredMass,ThroatDeposit,FlowRate_L_min,TestDuration_sec,TargetDose_mcgr INH-NGI-2026-001,Budesonide DPI,15.0,12.0,10.0,8.0,15.0,20.0,10.0,10.0,100.0,20.0,60.0,2.0,200.0 INH-NGI-2026-002,Salbutamol MDI,5.0,8.0,12.0,15.0,20.0,25.0,10.0,5.0,100.0,10.0,30.0,1.5,100.0 INH-NGI-2026-003,Fluticasone DPI,20.0,15.0,10.0,5.0,10.0,15.0,15.0,10.0,100.0,30.0,60.0,2.0,250.0
| Field | Sample |
|---|---|
| BatchNumber | INH-NGI-2026-001 |
| ProductName | Budesonide DPI |
| Mass_Stage1 | 15.0 |
| Mass_Stage2 | 12.0 |
| Mass_Stage3 | 10.0 |
| Mass_Stage4 | 8.0 |
| Mass_Stage5 | 15.0 |
| Mass_Stage6 | 20.0 |
| Mass_Stage7 | 10.0 |
| Mass_MOC | 10.0 |
| TotalRecoveredMass | 100.0 |
| ThroatDeposit | 20.0 |
| FlowRate_L_min | 60.0 |
| TestDuration_sec | 2.0 |
| TargetDose_mcgr | 200.0 |
Выходной JSON
{
"Header": {
"UtilityName": "Inhaler_APSD_NGI_Profiler",
"Version": "1.0.0",
"Timestamp": "UTC",
"InstrumentID": "FUZKK-QC-WORKSTATION",
"OperatorID": "Admin"
},
"Samples": [
{
"SampleID": "from BatchNumber",
"BatchNumber": "from CSV",
"ProductName": "from CSV",
"TestName": "utility-specific test",
"AnalysisCode": "utility-specific code",
"Status": "PASS | WARNING | FAIL | ERROR",
"StatusCode": "1 | 2 | 0 | -1",
"ErrorMessage": "",
"Description": "Russian recommendation",
"DescriptionEN": "English recommendation",
"Results": [
{
"ParameterName": "parameter",
"ResultValue": 0.0,
"UnitOfMeasure": "unit",
"SpecificationLimit": "limit",
"IsWithinSpec": true
}
]
}
]
}Входит в пакеты
Ингаляционные продукты
Ингаляционные продукты: пакет утилит FUZKK для CSV→JSON QC-проверок с EU-first приоритетом лимитов.
Открыть