Fluorine18RadioligandChecker

Fluorine18 Radioligand Checker

AdvancedPharma CSV→JSON EU-first LabWare URS & FS
Open selection
Fluorine18 Radioligand Checker — EU-first pharmacopoeial quality limit checker

ℹ️ Utility performs deterministic QC review for radioligand / theranostics products:
• Source priority: Ph. Eur. → British Pharmacopoeia / UK implementation → EAEU → EMA/ICH/EU guidance → USP fallback
• Strict API defaults when exact monograph is not yet encoded: Assay 98–102%, Total impurities ≤1.0%, Individual impurity ≤0.5%
• For biologics / mAb-like products: aggregates, sterility and endotoxin checks
• For parenteral/sterile products: sub-visible particles with particles/container and particles/mL unit support

⚠️ CRITICAL: Product-specific monograph / approved specification has priority over default limits.
Hardcoded defaults are used for early backlog implementation and must be refined during product-specific work.

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

Input format:
BatchNumber,ProductName,SubstanceName,ProductClass,Assay_Percent,TotalImpurities_Percent,IndividualImpurityMax_Percent,Aggregates_Percent,Sterility_Result,Endotoxin_Value,Endotoxin_Unit,Particles_10um_Value,Particles_10um_Unit,Particles_25um_Value,Particles_25um_Unit,ContainerVolume_mL,Turbidity_NTU,DAR_Value,RadiochemicalPurity_Percent,RadionuclidicPurity_Percent,pH,RegionCode,SpecificationSource,MethodID

Example:
EU-QC-2026-001,Reference product batch,radioligand / theranostics products,radioligand / theranostics products,99.4,0.42,0.18,0.9,PASS,0.12,EU/mL,1200,particles/container,90,particles/container,1.0,2.0,4.0,98.5,99.95,6.4,EU,PhEur_BP_EAEU_EU_guidance_first,QC-METHOD-001

— WHY IS THIS NEEDED?
The utility provides a fast and reproducible QC decision-support layer:
• reduces manual Excel/template review
• produces PASS / WARNING / FAIL in LabWare-compatible JSON
• records which hardcoded limits were applied
• supports unit variants for particles and endotoxins
• supports review, audit trail and later CSV/CSA verification

⚠️ CRITICAL:
• Exact Ph. Eur./BP/EAEU monograph limit must be encoded in the product-specific version where known
• If exact limit is unknown, strict API default is applied: Assay 98–102%, impurities ≤0.5–1.0%
• For biologics, aggregates, sterility and endotoxins are mandatory checks
• Particle values may arrive as particles/container or particles/mL; conversion uses ContainerVolume_mL
• USP is used only as a fallback, not as the primary source

Key features:
• Hardcoded limits in one Program.cs
• No external limit configuration
• EU-first source policy
• Unit conversion for particles/container and particles/mL
• Endotoxin unit handling for EU/mL, IU/mL, EU/mg, IU/mg, EU/container, IU/container
• LabWare-compatible output.json

Critical parameters:
• Assay: 98–102% default where exact monograph is not encoded
• Total impurities: ≤1.0% default
• Individual impurity max: ≤0.5% default
• Aggregates for biologics: ≤1.5% strict default
• Sterility: PASS / STERILE / NEGATIVE / COMPLIANT
• Endotoxin: strict unit-based default; product-specific Ph. Eur. 2.6.14 calculation has priority
• Particles ≥10 µm: ≤6000/container; ≥25 µm: ≤600/container for small-volume parenteral default

💡 Usage tips:
1. For product-specific implementation, check Ph. Eur. / BP / EAEU monograph first
2. If no monograph exists, use strict defaults only as screening layer
3. Do not disable aggregates, sterility and endotoxins for biologics
4. If particle counts are supplied per mL, fill ContainerVolume_mL
5. Keep SpecificationSource and MethodID for audit trail

⚠️ Note: The utility is intentionally simple to support: all limits are hardcoded in Program.cs. This fits the FUZKK approach, but requires version control and change control whenever limits change.

input.csv

BatchNumber,ProductName,SubstanceName,ProductClass,Assay_Percent,TotalImpurities_Percent,IndividualImpurityMax_Percent,Aggregates_Percent,Sterility_Result,Endotoxin_Value,Endotoxin_Unit,Particles_10um_Value,Particles_10um_Unit,Particles_25um_Value,Particles_25um_Unit,ContainerVolume_mL,Turbidity_NTU,DAR_Value,RadiochemicalPurity_Percent,RadionuclidicPurity_Percent,pH,RegionCode,SpecificationSource,MethodID
EU-QC-2026-001,Reference product batch,radioligand / theranostics products,radioligand / theranostics products,99.4,0.42,0.18,0.9,PASS,0.12,EU/mL,1200,particles/container,90,particles/container,1.0,2.0,4.0,98.5,99.95,6.4,EU,PhEur_BP_EAEU_EU_guidance_first,QC-METHOD-001
EU-QC-2026-002,Out-of-trend batch,radioligand / theranostics products,radioligand / theranostics products,96.7,1.35,0.72,2.2,FAIL,0.9,EU/mL,7200,particles/container,810,particles/container,1.0,14.0,8.6,93.5,99.5,8.6,EU,strict_default_when_exact_monograph_unknown,QC-METHOD-001
EU-QC-2026-003,Unit conversion example,radioligand / theranostics products,radioligand / theranostics products,100.1,0.22,0.09,0.6,STERILE,3.2,EU/container,450,particles/mL,40,particles/mL,2.0,1.5,3.5,97.1,99.92,6.8,UK,BP_UK_implementation_units_demo,QC-METHOD-002
Fluorine18 Radioligand Checker — URS and FS

Fluorine18 Radioligand Checker — URS and FS

The English user requirements and functional specification are provided below.


Fluorine18 Radioligand Checker — URS

Fluorine18 Radioligand Checker

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,SubstanceName,ProductClass,Assay_Percent,TotalImpurities_Percent,IndividualImpurityMax_Percent,Aggregates_Percent,Sterility_Result,Endotoxin_Value,Endotoxin_Unit,Particles_10um_Value,Particles_10um_Unit,Particles_25um_Value,Particles_25um_Unit,ContainerVolume_mL,Turbidity_NTU,DAR_Value,RadiochemicalPurity_Percent,RadionuclidicPurity_Percent,pH,RegionCode,SpecificationSource,MethodID
EU-QC-2026-001,Reference product batch,radioligand / theranostics products,radioligand / theranostics products,99.4,0.42,0.18,0.9,PASS,0.12,EU/mL,1200,particles/container,90,particles/container,1.0,2.0,4.0,98.5,99.95,6.4,EU,PhEur_BP_EAEU_EU_guidance_first,QC-METHOD-001
EU-QC-2026-002,Out-of-trend batch,radioligand / theranostics products,radioligand / theranostics products,96.7,1.35,0.72,2.2,FAIL,0.9,EU/mL,7200,particles/container,810,particles/container,1.0,14.0,8.6,93.5,99.5,8.6,EU,strict_default_when_exact_monograph_unknown,QC-METHOD-001
EU-QC-2026-003,Unit conversion example,radioligand / theranostics products,radioligand / theranostics products,100.1,0.22,0.09,0.6,STERILE,3.2,EU/container,450,particles/mL,40,particles/mL,2.0,1.5,3.5,97.1,99.92,6.8,UK,BP_UK_implementation_units_demo,QC-METHOD-002

input.csv fields

FieldSample
BatchNumberEU-QC-2026-001
ProductNameReference product batch
SubstanceNameradioligand / theranostics products
ProductClassradioligand / theranostics products
Assay_Percent99.4
TotalImpurities_Percent0.42
IndividualImpurityMax_Percent0.18
Aggregates_Percent0.9
Sterility_ResultPASS
Endotoxin_Value0.12
Endotoxin_UnitEU/mL
Particles_10um_Value1200
Particles_10um_Unitparticles/container
Particles_25um_Value90
Particles_25um_Unitparticles/container
ContainerVolume_mL1.0
Turbidity_NTU2.0
DAR_Value4.0
RadiochemicalPurity_Percent98.5
RadionuclidicPurity_Percent99.95
pH6.4
RegionCodeEU
SpecificationSourcePhEur_BP_EAEU_EU_guidance_first
MethodIDQC-METHOD-001

Utility description

Fluorine18 Radioligand Checker — EU-first pharmacopoeial quality limit checker

Fluorine18 Radioligand Checker — EU-first pharmacopoeial quality limit checker

ℹ️ Utility performs deterministic QC review for radioligand / theranostics products:
• Source priority: Ph. Eur. → British Pharmacopoeia / UK implementation → EAEU → EMA/ICH/EU guidance → USP fallback
• Strict API defaults when exact monograph is not yet encoded: Assay 98–102%, Total impurities ≤1.0%, Individual impurity ≤0.5%
• For biologics / mAb-like products: aggregates, sterility and endotoxin checks
• For parenteral/sterile products: sub-visible particles with particles/container and particles/mL unit support

⚠️ CRITICAL: Product-specific monograph / approved specification has priority over default limits.
Hardcoded defaults are used for early backlog implementation and must be refined during product-specific work.

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

Input format:
BatchNumber,ProductName,SubstanceName,ProductClass,Assay_Percent,TotalImpurities_Percent,IndividualImpurityMax_Percent,Aggregates_Percent,Sterility_Result,Endotoxin_Value,Endotoxin_Unit,Particles_10um_Value,Particles_10um_Unit,Particles_25um_Value,Particles_25um_Unit,ContainerVolume_mL,Turbidity_NTU,DAR_Value,RadiochemicalPurity_Percent,RadionuclidicPurity_Percent,pH,RegionCode,SpecificationSource,MethodID

Example:
EU-QC-2026-001,Reference product batch,radioligand / theranostics products,radioligand / theranostics products,99.4,0.42,0.18,0.9,PASS,0.12,EU/mL,1200,particles/container,90,particles/container,1.0,2.0,4.0,98.5,99.95,6.4,EU,PhEur_BP_EAEU_EU_guidance_first,QC-METHOD-001

— WHY IS THIS NEEDED?
The utility provides a fast and reproducible QC decision-support layer:
• reduces manual Excel/template review
• produces PASS / WARNING / FAIL in LabWare-compatible JSON
• records which hardcoded limits were applied
• supports unit variants for particles and endotoxins
• supports review, audit trail and later CSV/CSA verification

⚠️ CRITICAL:
• Exact Ph. Eur./BP/EAEU monograph limit must be encoded in the product-specific version where known
• If exact limit is unknown, strict API default is applied: Assay 98–102%, impurities ≤0.5–1.0%
• For biologics, aggregates, sterility and endotoxins are mandatory checks
• Particle values may arrive as particles/container or particles/mL; conversion uses ContainerVolume_mL
• USP is used only as a fallback, not as the primary source

Key features:
• Hardcoded limits in one Program.cs
• No external limit configuration
• EU-first source policy
• Unit conversion for particles/container and particles/mL
• Endotoxin unit handling for EU/mL, IU/mL, EU/mg, IU/mg, EU/container, IU/container
• LabWare-compatible output.json

Critical parameters:
• Assay: 98–102% default where exact monograph is not encoded
• Total impurities: ≤1.0% default
• Individual impurity max: ≤0.5% default
• Aggregates for biologics: ≤1.5% strict default
• Sterility: PASS / STERILE / NEGATIVE / COMPLIANT
• Endotoxin: strict unit-based default; product-specific Ph. Eur. 2.6.14 calculation has priority
• Particles ≥10 µm: ≤6000/container; ≥25 µm: ≤600/container for small-volume parenteral default

💡 Usage tips:
1. For product-specific implementation, check Ph. Eur. / BP / EAEU monograph first
2. If no monograph exists, use strict defaults only as screening layer
3. Do not disable aggregates, sterility and endotoxins for biologics
4. If particle counts are supplied per mL, fill ContainerVolume_mL
5. Keep SpecificationSource and MethodID for audit trail

⚠️ Note: The utility is intentionally simple to support: all limits are hardcoded in Program.cs. This fits the FUZKK approach, but requires version control and change control whenever limits change.

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.

Fluorine18 Radioligand Checker — FS

Fluorine18 Radioligand Checker

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,SubstanceName,ProductClass,Assay_Percent,TotalImpurities_Percent,IndividualImpurityMax_Percent,Aggregates_Percent,Sterility_Result,Endotoxin_Value,Endotoxin_Unit,Particles_10um_Value,Particles_10um_Unit,Particles_25um_Value,Particles_25um_Unit,ContainerVolume_mL,Turbidity_NTU,DAR_Value,RadiochemicalPurity_Percent,RadionuclidicPurity_Percent,pH,RegionCode,SpecificationSource,MethodID
EU-QC-2026-001,Reference product batch,radioligand / theranostics products,radioligand / theranostics products,99.4,0.42,0.18,0.9,PASS,0.12,EU/mL,1200,particles/container,90,particles/container,1.0,2.0,4.0,98.5,99.95,6.4,EU,PhEur_BP_EAEU_EU_guidance_first,QC-METHOD-001
EU-QC-2026-002,Out-of-trend batch,radioligand / theranostics products,radioligand / theranostics products,96.7,1.35,0.72,2.2,FAIL,0.9,EU/mL,7200,particles/container,810,particles/container,1.0,14.0,8.6,93.5,99.5,8.6,EU,strict_default_when_exact_monograph_unknown,QC-METHOD-001
EU-QC-2026-003,Unit conversion example,radioligand / theranostics products,radioligand / theranostics products,100.1,0.22,0.09,0.6,STERILE,3.2,EU/container,450,particles/mL,40,particles/mL,2.0,1.5,3.5,97.1,99.92,6.8,UK,BP_UK_implementation_units_demo,QC-METHOD-002
FieldSample
BatchNumberEU-QC-2026-001
ProductNameReference product batch
SubstanceNameradioligand / theranostics products
ProductClassradioligand / theranostics products
Assay_Percent99.4
TotalImpurities_Percent0.42
IndividualImpurityMax_Percent0.18
Aggregates_Percent0.9
Sterility_ResultPASS
Endotoxin_Value0.12
Endotoxin_UnitEU/mL
Particles_10um_Value1200
Particles_10um_Unitparticles/container
Particles_25um_Value90
Particles_25um_Unitparticles/container
ContainerVolume_mL1.0
Turbidity_NTU2.0
DAR_Value4.0
RadiochemicalPurity_Percent98.5
RadionuclidicPurity_Percent99.95
pH6.4
RegionCodeEU
SpecificationSourcePhEur_BP_EAEU_EU_guidance_first
MethodIDQC-METHOD-001

Output JSON

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

Radioligand & Theranostics Expansion QC Suite

Radioligand & Theranostics Expansion QC Suite: FUZKK utility package for CSV→JSON QC checks with EU-first limit priority.

Open

RPH isotope family: short-lived PET isotopes

F-18, C-11, N-13, O-15 and related PET production, release and imaging workflows.

Open

RPH organ/system: oncology and theranostics

Tumour imaging, PSMA/FAPI/receptor tracers, immuno-PET, targeted radionuclide therapy and radioembolization.

Open

RPH use case: radionuclide therapy and theranostics

Lu-177, Ac-225, Ra-223, Y-90, Ho-166, Sm-153, Sr-89, Re-188, Tb-161, I-131 and other therapeutic radiopharmaceuticals: activity, purity, free metal, daughters and toxicological constraints.

Open

RPH workflow: product release QC

Assay, purity, sterility, endotoxins, pH, impurities, appearance and batch-release checks.

Open