Inhaler_DDU_Uniformity_Analyzer
Inhaler DDU Uniformity Analyzer
ℹ️ Утилита проверяет однородность дозы по серии активаций (USP <601>):
• Средняя доза (85-115% от заявленной)
• RSD (≤6.0%)
• Мин/Макс отклонение каждой дозы
• Соотношение первых и последних доз
⚠️ КРИТИЧНО: Неоднородность дозы ведет к недолечиванию или передозировке!
Особенно важно для первых и последних доз в баллоне.
Использование:
InhalerDDUUniformityAnalyzer.exe → демо-режим (вывод в консоль)
InhalerDDUUniformityAnalyzer.exe input.csv output.json → оценка ваших данных
Формат input.csv:
BatchNumber,ProductName,LabelClaim_mcgr,Dose_1,Dose_2,Dose_3,Dose_4,Dose_5,Dose_6,Dose_7,Dose_8,Dose_9,Dose_10
Пример:
INH-DDU-2026-001,Salbutamol MDI 100mcg,100.0,98.0,99.5,97.0,98.5,100.0,101.0,99.0,98.0,97.5,98.5
— ЗАЧЕМ ЭТО НУЖНО?
Контроль DDU (Delivered Dose Uniformity) критичен для ингаляторов (AZ, GSK, BI):
• Гарантирует, что пациент получает точную дозу лекарства при каждом нажатии
• Выявляет проблемы с суспензией (MDI) или порошком (DPI)
• Контролирует стабильность работы дозирующего клапана или блистера
• Требуется регуляторами для регистрации препарата
⚠️ КРИТИЧЕСКИ ВАЖНО:
• Средняя доза должна быть в пределах 85-115% от заявленной
• RSD ≤6.0% обеспечивает высокую воспроизводимость
• Каждая отдельная доза не должна выходить за пределы 85-115%
• Соотношение первых и последних доз показывает стабильность на протяжении срока службы
• Для DPI важна зависимость дозы от потока воздуха пациента
Ключевые особенности утилиты:
• Статистический анализ серии из 10 доз (First-Middle-Last)
• Расчет RSD и проверка индивидуальных отклонений
• Оценка тренда снижения дозы к концу упаковки
• Соответствие требованиям USP <601> и Ph.Eur. 2.9.5
Критические параметры:
• Средняя доза: 85–115% от Label Claim
• RSD: ≤6.0%
• Минимальная доза: ≥85%
• Максимальная доза: ≤115%
• Ratio First/Last: 0.8–1.2
💡 Советы по использованию:
1. Используйте правильную методику промывки фильтра для полного сбора дозы
2. Для MDI обязательно учитывайте "prime" дозы перед тестом
3. Для DPI тестируйте при стандартном потоке (например, 60 л/мин)
4. Если RSD высокий, проверьте однородность суспензии или дисперсию порошка
5. Сравните профили DDU разных партий для контроля процесса производства
⚠️ Особенность: В отличие от таблеток, где доза фиксирована в единице, в ингаляторе доза зависит от механики устройства и физики аэрозоля. DDU тест имитирует реальное использование, проверяя устройство в крайних точках его жизненного цикла (начало и конец).
input.csv
BatchNumber,ProductName,LabelClaim_mcgr,Dose_1,Dose_2,Dose_3,Dose_4,Dose_5,Dose_6,Dose_7,Dose_8,Dose_9,Dose_10 INH-DDU-2026-001,Salbutamol MDI 100mcg,100.0,98.0,99.5,97.0,98.5,100.0,101.0,99.0,98.0,97.5,98.5 INH-DDU-2026-002,Budesonide DPI 200mcg,200.0,190.0,195.0,185.0,192.0,205.0,210.0,180.0,175.0,170.0,165.0 INH-DDU-2026-003,Fluticasone MDI 50mcg,50.0,48.0,49.0,47.5,48.5,50.0,51.0,49.5,48.0,47.0,48.0
Inhaler DDU Uniformity Analyzer — URS и FS
Ниже приведены русские версии пользовательских требований и функциональной спецификации.
Inhaler DDU Uniformity Analyzer — URS
Inhaler DDU Uniformity Analyzer
Документ сформирован для русской локализации. Для английской и остальных языков используется отдельная английская версия без смешения языков.
Назначение
Определить пользовательские требования к автономной 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,LabelClaim_mcgr,Dose_1,Dose_2,Dose_3,Dose_4,Dose_5,Dose_6,Dose_7,Dose_8,Dose_9,Dose_10 INH-DDU-2026-001,Salbutamol MDI 100mcg,100.0,98.0,99.5,97.0,98.5,100.0,101.0,99.0,98.0,97.5,98.5 INH-DDU-2026-002,Budesonide DPI 200mcg,200.0,190.0,195.0,185.0,192.0,205.0,210.0,180.0,175.0,170.0,165.0 INH-DDU-2026-003,Fluticasone MDI 50mcg,50.0,48.0,49.0,47.5,48.5,50.0,51.0,49.5,48.0,47.0,48.0
Поля input.csv
| Field | Sample |
|---|---|
| BatchNumber | INH-DDU-2026-001 |
| ProductName | Salbutamol MDI 100mcg |
| LabelClaim_mcgr | 100.0 |
| Dose_1 | 98.0 |
| Dose_2 | 99.5 |
| Dose_3 | 97.0 |
| Dose_4 | 98.5 |
| Dose_5 | 100.0 |
| Dose_6 | 101.0 |
| Dose_7 | 99.0 |
| Dose_8 | 98.0 |
| Dose_9 | 97.5 |
| Dose_10 | 98.5 |
Описание утилиты
Inhaler DDU Uniformity Analyzer — Анализатор единства доставляемой дозы (DDU)
Inhaler DDU Uniformity Analyzer — Анализатор единства доставляемой дозы (DDU)
ℹ️ Утилита проверяет однородность дозы по серии активаций (USP <601>):
• Средняя доза (85-115% от заявленной)
• RSD (≤6.0%)
• Мин/Макс отклонение каждой дозы
• Соотношение первых и последних доз
⚠️ КРИТИЧНО: Неоднородность дозы ведет к недолечиванию или передозировке!
Особенно важно для первых и последних доз в баллоне.
Использование:
InhalerDDUUniformityAnalyzer.exe → демо-режим (вывод в консоль)
InhalerDDUUniformityAnalyzer.exe input.csv output.json → оценка ваших данных
Формат input.csv:
BatchNumber,ProductName,LabelClaim_mcgr,Dose_1,Dose_2,Dose_3,Dose_4,Dose_5,Dose_6,Dose_7,Dose_8,Dose_9,Dose_10
Пример:
INH-DDU-2026-001,Salbutamol MDI 100mcg,100.0,98.0,99.5,97.0,98.5,100.0,101.0,99.0,98.0,97.5,98.5
— ЗАЧЕМ ЭТО НУЖНО?
Контроль DDU (Delivered Dose Uniformity) критичен для ингаляторов (AZ, GSK, BI):
• Гарантирует, что пациент получает точную дозу лекарства при каждом нажатии
• Выявляет проблемы с суспензией (MDI) или порошком (DPI)
• Контролирует стабильность работы дозирующего клапана или блистера
• Требуется регуляторами для регистрации препарата
⚠️ КРИТИЧЕСКИ ВАЖНО:
• Средняя доза должна быть в пределах 85-115% от заявленной
• RSD ≤6.0% обеспечивает высокую воспроизводимость
• Каждая отдельная доза не должна выходить за пределы 85-115%
• Соотношение первых и последних доз показывает стабильность на протяжении срока службы
• Для DPI важна зависимость дозы от потока воздуха пациента
Ключевые особенности утилиты:
• Статистический анализ серии из 10 доз (First-Middle-Last)
• Расчет RSD и проверка индивидуальных отклонений
• Оценка тренда снижения дозы к концу упаковки
• Соответствие требованиям USP <601> и Ph.Eur. 2.9.5
Критические параметры:
• Средняя доза: 85–115% от Label Claim
• RSD: ≤6.0%
• Минимальная доза: ≥85%
• Максимальная доза: ≤115%
• Ratio First/Last: 0.8–1.2
💡 Советы по использованию:
1. Используйте правильную методику промывки фильтра для полного сбора дозы
2. Для MDI обязательно учитывайте "prime" дозы перед тестом
3. Для DPI тестируйте при стандартном потоке (например, 60 л/мин)
4. Если RSD высокий, проверьте однородность суспензии или дисперсию порошка
5. Сравните профили DDU разных партий для контроля процесса производства
⚠️ Особенность: В отличие от таблеток, где доза фиксирована в единице, в ингаляторе доза зависит от механики устройства и физики аэрозоля. DDU тест имитирует реальное использование, проверяя устройство в крайних точках его жизненного цикла (начало и конец).
Трассируемость и ограничения
- URS используется как исходный документ для functional specification, CSV review и последующей CSV/validation работы.
- Документ не является заменой утверждённой фармакопейной монографии, валидированного метода или внутренней спецификации продукта.
- Для product-specific лимитов приоритет имеет утверждённая спецификация заказчика.
Inhaler DDU Uniformity Analyzer — FS
Inhaler DDU Uniformity Analyzer
Функциональная спецификация описывает поведение автономной консольной утилиты 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,LabelClaim_mcgr,Dose_1,Dose_2,Dose_3,Dose_4,Dose_5,Dose_6,Dose_7,Dose_8,Dose_9,Dose_10 INH-DDU-2026-001,Salbutamol MDI 100mcg,100.0,98.0,99.5,97.0,98.5,100.0,101.0,99.0,98.0,97.5,98.5 INH-DDU-2026-002,Budesonide DPI 200mcg,200.0,190.0,195.0,185.0,192.0,205.0,210.0,180.0,175.0,170.0,165.0 INH-DDU-2026-003,Fluticasone MDI 50mcg,50.0,48.0,49.0,47.5,48.5,50.0,51.0,49.5,48.0,47.0,48.0
| Field | Sample |
|---|---|
| BatchNumber | INH-DDU-2026-001 |
| ProductName | Salbutamol MDI 100mcg |
| LabelClaim_mcgr | 100.0 |
| Dose_1 | 98.0 |
| Dose_2 | 99.5 |
| Dose_3 | 97.0 |
| Dose_4 | 98.5 |
| Dose_5 | 100.0 |
| Dose_6 | 101.0 |
| Dose_7 | 99.0 |
| Dose_8 | 98.0 |
| Dose_9 | 97.5 |
| Dose_10 | 98.5 |
Выходной JSON
{
"Header": {
"UtilityName": "Inhaler_DDU_Uniformity_Analyzer",
"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 приоритетом лимитов.
Открыть