Inhaler_DeviceLifecycle_Tracker

Inhaler Device Lifecycle Tracker

AdvancedPharma CSV→JSON EU-first LabWare URS & FS
Open selection
Inhaler Device Lifecycle Tracker — Inhaler Device Lifecycle Tracker

ℹ️ Utility evaluates inhaler stability from first to last dose:
• Resistance change (≤10%)
• Dose drift (≤15%)
• Spray angle stability (MDI/SMI)
• Dose counter accuracy (95-105%)
• No mechanical failures

⚠️ CRITICAL: Device must perform equally well at beginning and end!
Spring wear or mesh clogging changes aerodynamics.

Usage:
InhalerDeviceLifecycleTracker.exe → demo mode (console output)
InhalerDeviceLifecycleTracker.exe input.csv output.json → evaluate your data

Input format:
BatchNumber,ProductName,DeviceType,Resistance_BOL_kPa,Dose_BOL_mcgr,ActuationCount,Resistance_EOL_kPa,Dose_EOL_mcgr,SprayAngle_Degrees,CounterAccuracy_Percent,MechanicalFailures

Example:
INH-LC-2026-001,Budesonide/Formoterol DPI,DPI,4.5,200.0,60,4.6,195.0,0.0,100.0,0

— WHY IS THIS NEEDED?
Lifecycle control is critical for delivery devices (AZ, GSK, Kindeva):
• Patient uses device multiple times (30 to 200 doses)
• Mechanical wear (springs, gears) may change actuation force
• For DPIs: powder buildup in channels may change resistance
• For MDIs: valve wear may change dose volume or plume geometry
• Dose counter must accurately show remaining doses to prevent missed therapy

⚠️ CRITICAL:
• Resistance (for DPIs) must not change more than 10% by end of pack
• Last actuation dose must not differ from first by more than 15%
• Plume angle must be stable for proper lung targeting
• Dose counter accuracy 95-105%
• Any mechanical failures (jams) are unacceptable

Key features:
• Comparison of Beginning of Life (BOL) and End of Life (EOL) parameters
• Mechanical reliability assessment
• Electronic/mechanical counter accuracy control
• Support for different device types (DPI, MDI, SMI)

Critical parameters:
• Resistance change: ≤10%
• Dose drift: ≤15%
• Counter accuracy: 95–105%
• Mechanical failures: 0

💡 Usage tips:
1. Perform tests on full packages (full canister/blister pack)
2. Simulate real storage and transport conditions before test
3. For DPIs, check resistance at different airflows
4. For MDIs, monitor canister weight before and after test
5. If dose drift detected, check metering unit assembly quality

⚠️ Note: Unlike single-use devices, multi-dose inhalers are subject to material aging and mechanical wear. The utility helps predict device behavior under real patient use conditions over several months.

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 and FS

Inhaler Device Lifecycle Tracker — URS and FS

The English user requirements and functional specification are provided below.


Inhaler Device Lifecycle Tracker — URS

Inhaler Device Lifecycle Tracker

This document is generated for the English localization. Non-Russian portal languages must use this English version, not a mixed Russian/English document.

Purpose

Define user requirements for a standalone FUZKK utility that accepts laboratory CSV data, evaluates the records using limits embedded in code, and produces LabWare-compatible JSON.

Scope

The utility is intended for preliminary QC/QA review, integration testing, LIMS/LabWare flow and evidence-trail preparation. Final release decisions remain under the laboratory's validated procedure and responsible personnel.

Users

QC analyst, QA reviewer, CSV/validation engineer, LIMS/LabWare integration engineer, responsible laboratory specialist.

User requirements

  1. The utility shall run without arguments and print its self-description, a built-in input.csv example from GetDemoData(), and demo evaluation for the embedded records.
  2. The utility shall run with two arguments: input.csv output.json.
  3. The utility shall not read input.csv and shall not write output.json when started without arguments.
  4. CSV numeric values shall be parsed using CultureInfo.InvariantCulture.
  5. Output shall be generated as LabWare-compatible JSON with Header, Samples, Results, Status, StatusCode, ErrorMessage, Description and DescriptionEN.
  6. For PASS records, ErrorMessage shall be an empty string.
  7. Embedded limits shall follow this priority: Ph. Eur. → British Pharmacopoeia / UK implementation → EAEU / regional requirements → EMA/ICH/EU guidance → USP fallback.
  8. If an exact monograph is not known, strict standard API limits are used where applicable: assay 98–102%, total impurities ≤1.0%, individual impurity ≤0.5%.
  9. For biologics and mAb-like products, aggregation, sterility and endotoxin checks shall be included where relevant to the utility purpose.
  10. If a parameter may arrive in different units, the unit shall be represented as a separate input field or explicitly reflected in the input.csv field name.

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

input.csv fields

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

Utility description

Inhaler Device Lifecycle Tracker — Inhaler Device Lifecycle Tracker

Inhaler Device Lifecycle Tracker — Inhaler Device Lifecycle Tracker

ℹ️ Utility evaluates inhaler stability from first to last dose:
• Resistance change (≤10%)
• Dose drift (≤15%)
• Spray angle stability (MDI/SMI)
• Dose counter accuracy (95-105%)
• No mechanical failures

⚠️ CRITICAL: Device must perform equally well at beginning and end!
Spring wear or mesh clogging changes aerodynamics.

Usage:
InhalerDeviceLifecycleTracker.exe → demo mode (console output)
InhalerDeviceLifecycleTracker.exe input.csv output.json → evaluate your data

Input format:
BatchNumber,ProductName,DeviceType,Resistance_BOL_kPa,Dose_BOL_mcgr,ActuationCount,Resistance_EOL_kPa,Dose_EOL_mcgr,SprayAngle_Degrees,CounterAccuracy_Percent,MechanicalFailures

Example:
INH-LC-2026-001,Budesonide/Formoterol DPI,DPI,4.5,200.0,60,4.6,195.0,0.0,100.0,0

— WHY IS THIS NEEDED?
Lifecycle control is critical for delivery devices (AZ, GSK, Kindeva):
• Patient uses device multiple times (30 to 200 doses)
• Mechanical wear (springs, gears) may change actuation force
• For DPIs: powder buildup in channels may change resistance
• For MDIs: valve wear may change dose volume or plume geometry
• Dose counter must accurately show remaining doses to prevent missed therapy

⚠️ CRITICAL:
• Resistance (for DPIs) must not change more than 10% by end of pack
• Last actuation dose must not differ from first by more than 15%
• Plume angle must be stable for proper lung targeting
• Dose counter accuracy 95-105%
• Any mechanical failures (jams) are unacceptable

Key features:
• Comparison of Beginning of Life (BOL) and End of Life (EOL) parameters
• Mechanical reliability assessment
• Electronic/mechanical counter accuracy control
• Support for different device types (DPI, MDI, SMI)

Critical parameters:
• Resistance change: ≤10%
• Dose drift: ≤15%
• Counter accuracy: 95–105%
• Mechanical failures: 0

💡 Usage tips:
1. Perform tests on full packages (full canister/blister pack)
2. Simulate real storage and transport conditions before test
3. For DPIs, check resistance at different airflows
4. For MDIs, monitor canister weight before and after test
5. If dose drift detected, check metering unit assembly quality

⚠️ Note: Unlike single-use devices, multi-dose inhalers are subject to material aging and mechanical wear. The utility helps predict device behavior under real patient use conditions over several months.

Traceability and limitations

  • The URS is used as the source document for functional specification, CSV review and later validation work.
  • This document does not replace an approved pharmacopoeial monograph, validated analytical method or internal product specification.
  • For product-specific limits, the approved customer specification takes priority.

Inhaler Device Lifecycle Tracker — FS

Inhaler Device Lifecycle Tracker

The functional specification describes the behaviour of the standalone FUZKK console utility, input-data format, evaluation algorithm and output JSON structure.

Functional flow

  1. Main() checks the number of arguments.
  2. If no arguments are provided: PrintHello() prints the description and built-in input.csv example, then RunDemoEvaluation() executes Evaluate() over GetDemoData() and prints demo JSON.
  3. If two arguments are provided: RunWithFiles(input.csv, output.json) reads CSV, evaluates each record and writes LabWare-compatible JSON.
  4. LoadData() uses CultureInfo.InvariantCulture and shall not be called in no-arguments mode.
  5. Evaluate() returns a named tuple with BatchNumber, ProductName, Parameters, CriticalFailCount, WarningCount, Recommendation and RecommendationEN.
  6. GetIssues() builds messages for ErrorMessage in WARNING/FAIL cases.

Evaluation rules

  • PASS: CriticalFailCount = 0 and WarningCount = 0.
  • WARNING: CriticalFailCount = 0 and WarningCount > 0.
  • FAIL: CriticalFailCount > 0.
  • ERROR: exception during reading or processing.
  • ErrorMessage remains empty for PASS.
  • Limits are embedded in Program.cs; no external limit configuration is required.

Input and fields

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

Output 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
        }
      ]
    }
  ]
}

Included in packages

Inhaled Products QC Suite

Inhaled Products QC Suite: FUZKK utility package for CSV→JSON QC checks with EU-first limit priority.

Open