Inhaler_DeviceLifecycle_Tracker

Inhaler Device Lifecycle Tracker

AdvancedPharma CSV→JSON EU-first LabWare URS & FS
Открыть подборку
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 и 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.

Пользовательские требования

  1. Утилита должна запускаться без параметров и выводить самоописание, пример input.csv из GetDemoData() и demo evaluation для встроенного набора данных.
  2. Утилита должна запускаться с двумя параметрами: input.csv output.json.
  3. Утилита не должна читать input.csv и не должна писать output.json при запуске без параметров.
  4. CSV должен читаться с CultureInfo.InvariantCulture для числовых значений.
  5. Результат должен формироваться в LabWare-compatible JSON с Header, Samples, Results, Status, StatusCode, ErrorMessage, Description и DescriptionEN.
  6. При PASS поле ErrorMessage должно быть пустой строкой.
  7. Зашитые лимиты должны следовать приоритету: Ph. Eur. → British Pharmacopoeia / UK implementation → ЕАЭС / региональные требования → EMA/ICH/EU guidance → USP fallback.
  8. Если точная монография неизвестна, применяются строгие стандартные API-лимиты: Assay 98–102%, total impurities ≤1.0%, individual impurity ≤0.5%, если это применимо к типу утилиты.
  9. Для биопрепаратов и mAb-like продуктов должны учитываться агрегаты, стерильность и эндотоксины, если такие параметры релевантны назначению утилиты.
  10. Если параметр может приходить в разных единицах, единица должна быть отдельным входным полем или явно отражаться в имени поля 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

FieldSample
BatchNumberINH-LC-2026-001
ProductNameBudesonide/Formoterol DPI
DeviceTypeDPI
Resistance_BOL_kPa4.5
Dose_BOL_mcgr200.0
ActuationCount60
Resistance_EOL_kPa4.6
Dose_EOL_mcgr195.0
SprayAngle_Degrees0.0
CounterAccuracy_Percent100.0
MechanicalFailures0

Описание утилиты

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.

Функциональный поток

  1. Main() проверяет количество аргументов.
  2. Если аргументов нет: PrintHello() выводит описание и встроенный пример input.csv, затем RunDemoEvaluation() выполняет Evaluate() по GetDemoData() и печатает demo JSON.
  3. Если передано два аргумента: RunWithFiles(input.csv, output.json) читает CSV, выполняет Evaluate() по каждой строке и записывает LabWare-compatible JSON.
  4. LoadData() использует CultureInfo.InvariantCulture и не должен вызываться в no-args режиме.
  5. Evaluate() возвращает именованный кортеж с BatchNumber, ProductName, Parameters, CriticalFailCount, WarningCount, Recommendation и RecommendationEN.
  6. 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
FieldSample
BatchNumberINH-LC-2026-001
ProductNameBudesonide/Formoterol DPI
DeviceTypeDPI
Resistance_BOL_kPa4.5
Dose_BOL_mcgr200.0
ActuationCount60
Resistance_EOL_kPa4.6
Dose_EOL_mcgr195.0
SprayAngle_Degrees0.0
CounterAccuracy_Percent100.0
MechanicalFailures0

Выходной 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 приоритетом лимитов.

Открыть