Inhaler_DeviceLifecycle_Tracker
Inhaler Device Lifecycle Tracker
ℹ️ Утилита оценивает стабильность работы ингалятора от первой до последней дозы:
• Изменение сопротивления (≤10%)
• Дрейф дозы (≤15%)
• Стабильность угла распыления (MDI/SMI)
• Точность счетчика доз (95-105%)
• Отсутствие механических сбоев
⚠️ КРИТИЧНО: Устройство должно работать одинаково хорошо в начале и в конце!
Износ пружин или засорение сеток меняет аэродинамику.
Использование:
InhalerDeviceLifecycleTracker.exe → демо-режим (вывод в консоль)
InhalerDeviceLifecycleTracker.exe input.csv output.json → оценка ваших данных
Формат input.csv:
BatchNumber,ProductName,DeviceType,Resistance_BOL_kPa,Dose_BOL_mcgr,ActuationCount,Resistance_EOL_kPa,Dose_EOL_mcgr,SprayAngle_Degrees,CounterAccuracy_Percent,MechanicalFailures
Пример:
INH-LC-2026-001,Budesonide/Formoterol DPI,DPI,4.5,200.0,60,4.6,195.0,0.0,100.0,0
— ЗАЧЕМ ЭТО НУЖНО?
Контроль жизненного цикла критичен для устройств доставки (AZ, GSK, Kindeva):
• Пациент использует устройство многократно (от 30 до 200 доз)
• Механический износ (пружины, шестерни) может изменить силу активации
• Для DPI: накопление порошка в каналах может изменить сопротивление
• Для MDI: износ клапана может изменить объем дозы или геометрию факела
• Счетчик доз должен точно показывать остаток, чтобы пациент не пропустил прием
⚠️ КРИТИЧЕСКИ ВАЖНО:
• Сопротивление (для DPI) не должно меняться более чем на 10% к концу упаковки
• Доза на последней активации не должна отличаться от первой более чем на 15%
• Угол распыления (Plume Angle) должен быть стабильным для обеспечения попадания в легкие
• Счетчик доз должен иметь точность 95-105%
• Любые механические сбои (заедания) недопустимы
Ключевые особенности утилиты:
• Сравнение параметров Beginning of Life (BOL) и End of Life (EOL)
• Оценка механической надежности
• Контроль точности электронных/механических счетчиков
• Поддержка разных типов устройств (DPI, MDI, SMI)
Критические параметры:
• Изменение сопротивления: ≤10%
• Дрейф дозы: ≤15%
• Точность счетчика: 95–105%
• Механические сбои: 0
💡 Советы по использованию:
1. Проводите тесты на полных упаковках (full canister/blister pack)
2. Имитируйте реальные условия хранения и транспортировки перед тестом
3. Для DPI проверяйте сопротивление при разных потоках воздуха
4. Для MDI контролируйте вес баллона до и после теста
5. При обнаружении дрейфа дозы проверьте качество сборки дозирующего узла
⚠️ Особенность: В отличие от разовых устройств, многоразовые ингаляторы подвержены старению материалов и износу механики. Утилита помогает предсказать поведение устройства в реальных условиях эксплуатации пациентом в течение нескольких месяцев.
input.csv
BatchNumber,ProductName,DeviceType,Resistance_BOL_kPa,Dose_BOL_mcgr,ActuationCount,Resistance_EOL_kPa,Dose_EOL_mcgr,SprayAngle_Degrees,CounterAccuracy_Percent,MechanicalFailures INH-LC-2026-001,Budesonide/Formoterol DPI,DPI,4.5,200.0,60,4.6,195.0,0.0,100.0,0 INH-LC-2026-002,Salbutamol MDI,MDI,0.1,100.0,200,0.1,98.0,36.0,99.0,0 INH-LC-2026-003,Tiotropium SMI,SMI,0.2,18.0,30,0.2,17.5,34.0,98.5,1
Inhaler Device Lifecycle Tracker — URS и FS
Ниже приведены русские версии пользовательских требований и функциональной спецификации.
Inhaler Device Lifecycle Tracker — URS
Inhaler Device Lifecycle Tracker
Документ сформирован для русской локализации. Для английской и остальных языков используется отдельная английская версия без смешения языков.
Назначение
Определить пользовательские требования к автономной 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,DeviceType,Resistance_BOL_kPa,Dose_BOL_mcgr,ActuationCount,Resistance_EOL_kPa,Dose_EOL_mcgr,SprayAngle_Degrees,CounterAccuracy_Percent,MechanicalFailures INH-LC-2026-001,Budesonide/Formoterol DPI,DPI,4.5,200.0,60,4.6,195.0,0.0,100.0,0 INH-LC-2026-002,Salbutamol MDI,MDI,0.1,100.0,200,0.1,98.0,36.0,99.0,0 INH-LC-2026-003,Tiotropium SMI,SMI,0.2,18.0,30,0.2,17.5,34.0,98.5,1
Поля input.csv
| Field | Sample |
|---|---|
| BatchNumber | INH-LC-2026-001 |
| ProductName | Budesonide/Formoterol DPI |
| DeviceType | DPI |
| Resistance_BOL_kPa | 4.5 |
| Dose_BOL_mcgr | 200.0 |
| ActuationCount | 60 |
| Resistance_EOL_kPa | 4.6 |
| Dose_EOL_mcgr | 195.0 |
| SprayAngle_Degrees | 0.0 |
| CounterAccuracy_Percent | 100.0 |
| MechanicalFailures | 0 |
Описание утилиты
Inhaler Device Lifecycle Tracker — Трекер жизненного цикла ингаляционного устройства
Inhaler Device Lifecycle Tracker — Трекер жизненного цикла ингаляционного устройства
ℹ️ Утилита оценивает стабильность работы ингалятора от первой до последней дозы:
• Изменение сопротивления (≤10%)
• Дрейф дозы (≤15%)
• Стабильность угла распыления (MDI/SMI)
• Точность счетчика доз (95-105%)
• Отсутствие механических сбоев
⚠️ КРИТИЧНО: Устройство должно работать одинаково хорошо в начале и в конце!
Износ пружин или засорение сеток меняет аэродинамику.
Использование:
InhalerDeviceLifecycleTracker.exe → демо-режим (вывод в консоль)
InhalerDeviceLifecycleTracker.exe input.csv output.json → оценка ваших данных
Формат input.csv:
BatchNumber,ProductName,DeviceType,Resistance_BOL_kPa,Dose_BOL_mcgr,ActuationCount,Resistance_EOL_kPa,Dose_EOL_mcgr,SprayAngle_Degrees,CounterAccuracy_Percent,MechanicalFailures
Пример:
INH-LC-2026-001,Budesonide/Formoterol DPI,DPI,4.5,200.0,60,4.6,195.0,0.0,100.0,0
— ЗАЧЕМ ЭТО НУЖНО?
Контроль жизненного цикла критичен для устройств доставки (AZ, GSK, Kindeva):
• Пациент использует устройство многократно (от 30 до 200 доз)
• Механический износ (пружины, шестерни) может изменить силу активации
• Для DPI: накопление порошка в каналах может изменить сопротивление
• Для MDI: износ клапана может изменить объем дозы или геометрию факела
• Счетчик доз должен точно показывать остаток, чтобы пациент не пропустил прием
⚠️ КРИТИЧЕСКИ ВАЖНО:
• Сопротивление (для DPI) не должно меняться более чем на 10% к концу упаковки
• Доза на последней активации не должна отличаться от первой более чем на 15%
• Угол распыления (Plume Angle) должен быть стабильным для обеспечения попадания в легкие
• Счетчик доз должен иметь точность 95-105%
• Любые механические сбои (заедания) недопустимы
Ключевые особенности утилиты:
• Сравнение параметров Beginning of Life (BOL) и End of Life (EOL)
• Оценка механической надежности
• Контроль точности электронных/механических счетчиков
• Поддержка разных типов устройств (DPI, MDI, SMI)
Критические параметры:
• Изменение сопротивления: ≤10%
• Дрейф дозы: ≤15%
• Точность счетчика: 95–105%
• Механические сбои: 0
💡 Советы по использованию:
1. Проводите тесты на полных упаковках (full canister/blister pack)
2. Имитируйте реальные условия хранения и транспортировки перед тестом
3. Для DPI проверяйте сопротивление при разных потоках воздуха
4. Для MDI контролируйте вес баллона до и после теста
5. При обнаружении дрейфа дозы проверьте качество сборки дозирующего узла
⚠️ Особенность: В отличие от разовых устройств, многоразовые ингаляторы подвержены старению материалов и износу механики. Утилита помогает предсказать поведение устройства в реальных условиях эксплуатации пациентом в течение нескольких месяцев.
Трассируемость и ограничения
- URS используется как исходный документ для functional specification, CSV review и последующей CSV/validation работы.
- Документ не является заменой утверждённой фармакопейной монографии, валидированного метода или внутренней спецификации продукта.
- Для product-specific лимитов приоритет имеет утверждённая спецификация заказчика.
Inhaler Device Lifecycle Tracker — FS
Inhaler Device Lifecycle Tracker
Функциональная спецификация описывает поведение автономной консольной утилиты 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,DeviceType,Resistance_BOL_kPa,Dose_BOL_mcgr,ActuationCount,Resistance_EOL_kPa,Dose_EOL_mcgr,SprayAngle_Degrees,CounterAccuracy_Percent,MechanicalFailures INH-LC-2026-001,Budesonide/Formoterol DPI,DPI,4.5,200.0,60,4.6,195.0,0.0,100.0,0 INH-LC-2026-002,Salbutamol MDI,MDI,0.1,100.0,200,0.1,98.0,36.0,99.0,0 INH-LC-2026-003,Tiotropium SMI,SMI,0.2,18.0,30,0.2,17.5,34.0,98.5,1
| Field | Sample |
|---|---|
| BatchNumber | INH-LC-2026-001 |
| ProductName | Budesonide/Formoterol DPI |
| DeviceType | DPI |
| Resistance_BOL_kPa | 4.5 |
| Dose_BOL_mcgr | 200.0 |
| ActuationCount | 60 |
| Resistance_EOL_kPa | 4.6 |
| Dose_EOL_mcgr | 195.0 |
| SprayAngle_Degrees | 0.0 |
| CounterAccuracy_Percent | 100.0 |
| MechanicalFailures | 0 |
Выходной JSON
{
"Header": {
"UtilityName": "Inhaler_DeviceLifecycle_Tracker",
"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 приоритетом лимитов.
Открыть