Inhaler_FineParticleDose_Calculator

Inhaler Fine Particle Dose Calculator

AdvancedPharma CSV→JSON EU-first LabWare URS & FS
Open selection
Inhaler Fine Particle Dose Calculator — Fine Particle Dose (FPD) Calculator

ℹ️ Utility calculates FPD and EFPD based on chemical data from impactor:
• Emitted Dose (ED) per actuation
• Fine Particle Dose (FPD, <5 μm)
• Extra-Fine Particle Dose (EFPD, <2 μm)
• Fine Particle Fraction (FPF %)
• Mass Balance (Recovery)

⚠️ CRITICAL: Only fine particles reach alveoli!
Calculation requires precise HPLC data for each NGI stage.

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

Input format:
BatchNumber,ProductName,Mass_Throat,Mass_Stage1,Mass_Stage2,Mass_Stage3,Mass_Stage4,Mass_Stage5,Mass_Stage6,Mass_Stage7,Mass_MOC,LabelClaim_mcgr,NumberOfActuations,RecoveryCorrectionFactor

Example:
INH-FPD-2026-001,Fluticasone Propionate DPI,50.0,20.0,15.0,10.0,12.0,15.0,10.0,8.0,5.0,250.0,1,1.02

— WHY IS THIS NEEDED?
FPD calculation is critical for inhaler efficacy assessment (AZ, GSK, Chiesi):
• FPD (Fine Particle Dose) is amount of drug with aerodynamic diameter <5 μm
• EFPD (Extra-Fine Particle Dose) is amount of drug <2 μm (important for peripheral lungs)
• FPF (Fine Particle Fraction) is percentage ratio of FPD to total emitted dose
• Allows comparison of different devices and formulations regardless of total dose
• Required for generic equivalence justification

⚠️ CRITICAL:
• Emitted dose must be within 85-115% of label claim
• FPD must exceed minimum therapeutic threshold
• FPF typically ranges 20-50% for modern DPIs
• Mass balance 75-125% confirms chemical analysis validity
• Correction factor is important for accounting incomplete drug extraction from filters

Key features:
• Automatic FPD and EFPD calculation by NGI stages
• Extraction correction factor accounting
• FPF calculation relative to emitted dose
• Mass balance check for data validation

Critical parameters:
• Emitted dose: 85–115% of Label Claim
• FPD: Individual limit (usually >20% of ED)
• FPF: ≥20%
• Mass balance: 75–125%

💡 Usage tips:
1. Use HPLC data, not gravimetric data (if excipients or carrier present)
2. For carrier-based products (lactose), gravimetry is impossible, only chemistry
3. Correctly define stage boundaries for your airflow (30, 60, 90 L/min)
4. EFPD is especially important for small airway disease treatments (asthma)
5. Compare FPD profile with reference product for bioequivalence

⚠️ Note: FPD is a more important clinical parameter than total delivered dose, as large particles (>5 μm) deposit in mouth and throat, having no therapeutic effect in lungs and causing side effects.

input.csv

BatchNumber,ProductName,Mass_Throat,Mass_Stage1,Mass_Stage2,Mass_Stage3,Mass_Stage4,Mass_Stage5,Mass_Stage6,Mass_Stage7,Mass_MOC,LabelClaim_mcgr,NumberOfActuations,RecoveryCorrectionFactor
INH-FPD-2026-001,Fluticasone Propionate DPI,50.0,20.0,15.0,10.0,12.0,15.0,10.0,8.0,5.0,250.0,1,1.02
INH-FPD-2026-002,Budesonide MDI,30.0,10.0,8.0,5.0,15.0,20.0,15.0,10.0,5.0,200.0,2,1.0
INH-FPD-2026-003,Salmeterol DPI,40.0,25.0,20.0,15.0,10.0,12.0,8.0,5.0,2.0,50.0,1,1.05
Inhaler Fine Particle Dose Calculator — URS and FS

Inhaler Fine Particle Dose Calculator — URS and FS

The English user requirements and functional specification are provided below.


Inhaler Fine Particle Dose Calculator — URS

Inhaler Fine Particle Dose Calculator

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,Mass_Throat,Mass_Stage1,Mass_Stage2,Mass_Stage3,Mass_Stage4,Mass_Stage5,Mass_Stage6,Mass_Stage7,Mass_MOC,LabelClaim_mcgr,NumberOfActuations,RecoveryCorrectionFactor
INH-FPD-2026-001,Fluticasone Propionate DPI,50.0,20.0,15.0,10.0,12.0,15.0,10.0,8.0,5.0,250.0,1,1.02
INH-FPD-2026-002,Budesonide MDI,30.0,10.0,8.0,5.0,15.0,20.0,15.0,10.0,5.0,200.0,2,1.0
INH-FPD-2026-003,Salmeterol DPI,40.0,25.0,20.0,15.0,10.0,12.0,8.0,5.0,2.0,50.0,1,1.05

input.csv fields

FieldSample
BatchNumberINH-FPD-2026-001
ProductNameFluticasone Propionate DPI
Mass_Throat50.0
Mass_Stage120.0
Mass_Stage215.0
Mass_Stage310.0
Mass_Stage412.0
Mass_Stage515.0
Mass_Stage610.0
Mass_Stage78.0
Mass_MOC5.0
LabelClaim_mcgr250.0
NumberOfActuations1
RecoveryCorrectionFactor1.02

Utility description

Inhaler Fine Particle Dose Calculator — Fine Particle Dose (FPD) Calculator

Inhaler Fine Particle Dose Calculator — Fine Particle Dose (FPD) Calculator

ℹ️ Utility calculates FPD and EFPD based on chemical data from impactor:
• Emitted Dose (ED) per actuation
• Fine Particle Dose (FPD, <5 μm)
• Extra-Fine Particle Dose (EFPD, <2 μm)
• Fine Particle Fraction (FPF %)
• Mass Balance (Recovery)

⚠️ CRITICAL: Only fine particles reach alveoli!
Calculation requires precise HPLC data for each NGI stage.

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

Input format:
BatchNumber,ProductName,Mass_Throat,Mass_Stage1,Mass_Stage2,Mass_Stage3,Mass_Stage4,Mass_Stage5,Mass_Stage6,Mass_Stage7,Mass_MOC,LabelClaim_mcgr,NumberOfActuations,RecoveryCorrectionFactor

Example:
INH-FPD-2026-001,Fluticasone Propionate DPI,50.0,20.0,15.0,10.0,12.0,15.0,10.0,8.0,5.0,250.0,1,1.02

— WHY IS THIS NEEDED?
FPD calculation is critical for inhaler efficacy assessment (AZ, GSK, Chiesi):
• FPD (Fine Particle Dose) is amount of drug with aerodynamic diameter <5 μm
• EFPD (Extra-Fine Particle Dose) is amount of drug <2 μm (important for peripheral lungs)
• FPF (Fine Particle Fraction) is percentage ratio of FPD to total emitted dose
• Allows comparison of different devices and formulations regardless of total dose
• Required for generic equivalence justification

⚠️ CRITICAL:
• Emitted dose must be within 85-115% of label claim
• FPD must exceed minimum therapeutic threshold
• FPF typically ranges 20-50% for modern DPIs
• Mass balance 75-125% confirms chemical analysis validity
• Correction factor is important for accounting incomplete drug extraction from filters

Key features:
• Automatic FPD and EFPD calculation by NGI stages
• Extraction correction factor accounting
• FPF calculation relative to emitted dose
• Mass balance check for data validation

Critical parameters:
• Emitted dose: 85–115% of Label Claim
• FPD: Individual limit (usually >20% of ED)
• FPF: ≥20%
• Mass balance: 75–125%

💡 Usage tips:
1. Use HPLC data, not gravimetric data (if excipients or carrier present)
2. For carrier-based products (lactose), gravimetry is impossible, only chemistry
3. Correctly define stage boundaries for your airflow (30, 60, 90 L/min)
4. EFPD is especially important for small airway disease treatments (asthma)
5. Compare FPD profile with reference product for bioequivalence

⚠️ Note: FPD is a more important clinical parameter than total delivered dose, as large particles (>5 μm) deposit in mouth and throat, having no therapeutic effect in lungs and causing side effects.

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 Fine Particle Dose Calculator — FS

Inhaler Fine Particle Dose Calculator

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,Mass_Throat,Mass_Stage1,Mass_Stage2,Mass_Stage3,Mass_Stage4,Mass_Stage5,Mass_Stage6,Mass_Stage7,Mass_MOC,LabelClaim_mcgr,NumberOfActuations,RecoveryCorrectionFactor
INH-FPD-2026-001,Fluticasone Propionate DPI,50.0,20.0,15.0,10.0,12.0,15.0,10.0,8.0,5.0,250.0,1,1.02
INH-FPD-2026-002,Budesonide MDI,30.0,10.0,8.0,5.0,15.0,20.0,15.0,10.0,5.0,200.0,2,1.0
INH-FPD-2026-003,Salmeterol DPI,40.0,25.0,20.0,15.0,10.0,12.0,8.0,5.0,2.0,50.0,1,1.05
FieldSample
BatchNumberINH-FPD-2026-001
ProductNameFluticasone Propionate DPI
Mass_Throat50.0
Mass_Stage120.0
Mass_Stage215.0
Mass_Stage310.0
Mass_Stage412.0
Mass_Stage515.0
Mass_Stage610.0
Mass_Stage78.0
Mass_MOC5.0
LabelClaim_mcgr250.0
NumberOfActuations1
RecoveryCorrectionFactor1.02

Output JSON

{
  "Header": {
    "UtilityName": "Inhaler_FineParticleDose_Calculator",
    "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