Tc99mMAAY90ConcordanceChecker

Tc-99m MAA / Y-90 Concordance Checker

medical-devices radiopharmaceuticals nuclear-medicine tc-99m maa lung-perfusion radioembolization dosimetry
Open selection

Tc-99m MAA / Y-90 Concordance Checker

Tc-99m MAA / Y-90 Concordance Checker

ℹ️  Utility performs:
    • Comparison of lung shunt, tumour-to-liver ratio, extrahepatic deposition and spatial concordance between MAA and Y-90.
    • input.csv structure and numeric-value validation
    • LabWare-compatible output.json generation
    • Deterministic PASS / FAIL / ERROR status

⚠️  CRITICAL: Any nonconformity shall be reviewed by qualified personnel before the result is used in an operational workflow.

Usage:
  Tc99mMAAY90ConcordanceChecker.exe                            → demonstration mode (console output)
  Tc99mMAAY90ConcordanceChecker.exe input.csv output.json      → evaluate user data

Input format:
BatchNumber,MAALungShuntPercent,Y90LungShuntPercent,MAATumorToLiverRatio,Y90TumorToLiverRatio,SpatialDiceCoefficient,ExtrahepaticMatchFlag,MaxLungShuntDifferencePercent

Example:
  MAA-Y90-001,8,9,2.5,2.4,0.85,1,5

— WHY IS THIS NEEDED?
Comparison of lung shunt, tumour-to-liver ratio, extrahepatic deposition and spatial concordance between MAA and Y-90.
The utility belongs to “RPH Tc-99m MAA Lung Perfusion and Radioembolization Planning QC Suite” and can be used as a standalone check or as part of a wider nuclear-medicine workflow.

⚠️  CRITICAL:
• LungShuntDifference: <= configured maximum
• TumorToLiverRatioDifference: <=30
• SpatialConcordance: >=0.6
• ExtrahepaticMatch: =1

Key features:
• One .NET 6 executable and one Program.cs
• Complete input.csv example with passing, boundary and failing records
• LabWare-compatible JSON: Header, Samples, Results, Status, StatusCode, ErrorMessage, Description and DescriptionEN
• CultureInfo.InvariantCulture for numeric values
• Explicit result for every parameter and empty ErrorMessage for PASS

Critical parameters:
• LungShuntDifference: <= configured maximum
• TumorToLiverRatioDifference: <=30
• SpatialConcordance: >=0.6
• ExtrahepaticMatch: =1

💡 Usage tips:
1. Before operational use, reconcile limits with the approved specification, product information, local SOP and equipment configuration.
2. Retain the source input.csv together with output.json and the executable version.
3. For clinical calculations, use only verified source data and an approved protocol profile.
4. FAIL requires review and is not an automatic medical decision.
5. Limit changes require change control and renewed verification.

⚠️ Note: The utility implements a deterministic CSV-to-LabWare-compatible-JSON workflow and does not replace an approved method, specification, SOP or medical judgement.

The reference limits in this version are a conservative FUZKK project starting profile. They shall be confirmed by the process owner before OQ/PQ and production use.

input.csv

BatchNumber,MAALungShuntPercent,Y90LungShuntPercent,MAATumorToLiverRatio,Y90TumorToLiverRatio,SpatialDiceCoefficient,ExtrahepaticMatchFlag,MaxLungShuntDifferencePercent
MAA-Y90-001,8,9,2.5,2.4,0.85,1,5
MAA-Y90-002,12,16,2,1.6,0.7,1,5
MAA-Y90-003,8,25,1.5,0.6,0.3,0,5

URS & FS — user requirements and functional specification

URS — User Requirements Specification

  • The utility shall run without arguments in demonstration mode and with two arguments: input.csv output.json.
  • Mandatory CSV header: BatchNumber,MAALungShuntPercent,Y90LungShuntPercent,MAATumorToLiverRatio,Y90TumorToLiverRatio,SpatialDiceCoefficient,ExtrahepaticMatchFlag,MaxLungShuntDifferencePercent.
  • Numeric values shall be parsed with CultureInfo.InvariantCulture.
  • Each row shall create a separate Samples object in LabWare-compatible JSON.
  • Status shall be PASS, FAIL or ERROR; ErrorMessage shall be empty for PASS.
  • The utility shall apply workflow-specific rules and return a result for every parameter.
  • Repeated execution with the same data and version shall produce an identical result.
  • An invalid header, column count or value type shall produce ERROR, never PASS.

Complete input.csv example

BatchNumber,MAALungShuntPercent,Y90LungShuntPercent,MAATumorToLiverRatio,Y90TumorToLiverRatio,SpatialDiceCoefficient,ExtrahepaticMatchFlag,MaxLungShuntDifferencePercent
MAA-Y90-001,8,9,2.5,2.4,0.85,1,5
MAA-Y90-002,12,16,2,1.6,0.7,1,5
MAA-Y90-003,8,25,1.5,0.6,0.3,0,5

FS — Functional Specification

  1. Main() selects demonstration or file mode.
  2. LoadData() validates the exact header and converts each row into Record.
  3. Evaluate() returns a named tuple containing batch number, product, parameters, overall result and RU/EN recommendations.
  4. AddCheck() creates Results items with measured value, unit, limit and IsWithinSpec.
  5. RunWithFiles() builds Header/Samples and serializes the result with Newtonsoft.Json.
  6. A global exception becomes a SampleResult with ERROR status and code -1.

Implemented rules

  • LungShuntDifference: <= configured maximum
  • TumorToLiverRatioDifference: <=30
  • SpatialConcordance: >=0.6
  • ExtrahepaticMatch: =1

Complete input.csv example

BatchNumber,MAALungShuntPercent,Y90LungShuntPercent,MAATumorToLiverRatio,Y90TumorToLiverRatio,SpatialDiceCoefficient,ExtrahepaticMatchFlag,MaxLungShuntDifferencePercent
MAA-Y90-001,8,9,2.5,2.4,0.85,1,5
MAA-Y90-002,12,16,2,1.6,0.7,1,5
MAA-Y90-003,8,25,1.5,0.6,0.3,0,5

Minimum OQ scenarios

  • PASS for the first row.
  • Boundary-record processing for the second row.
  • FAIL for the third row.
  • ERROR for an altered header.
  • ERROR for a non-numeric value.
  • Identical JSON result on repeated execution.

Included in packages

PetRad QC Suite

A specialised utility package for radiopharmaceutical quality control: PET, SPECT, therapeutic radionuclides, generators and decay calculations.

Open

PetRad3: expanded PET/SPECT and radiopharmaceutical QC package

A curated suite for PET/SPECT radiopharmaceuticals, generator and cyclotron radionuclides, labelled compounds, radiochemical purity, breakthrough, sterility and endotoxin control.

Open

Radiology QC Suite

QC package for radiology and diagnostic imaging: radiopharmaceuticals, PET/SPECT, contrast media, iodinated and gadolinium products, plus particle, sterility and endotoxin checks.

Open

RPH isotope family: beta-emitting therapy

Lu-177, Y-90, Ho-166, Re-188, Sm-153, Sr-89, P-32, Cu-67 and Tb-161.

Open

RPH isotope family: Tc-99m

Tc-99m radiopharmaceuticals, kit preparation, generator control, SPECT workflows and calculation utilities.

Open

RPH organ/system: hepatobiliary and GI

HIDA, mebrofenin, gallbladder, gastric emptying, GI transit, bleeding and liver/spleen imaging.

Open

RPH organ/system: oncology and theranostics

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

Open

RPH organ/system: pulmonary and ventilation

Lung perfusion, MAA, V/Q, aerosol, xenon ventilation, shunt and pulmonary dosimetry.

Open

RPH Tc-99m MAA Lung Perfusion and Radioembolization Planning QC Suite

Quality control of Tc-99m MAA, particle size and count, suspension stability, lung perfusion studies, lung-shunt estimation, pre-therapy dosimetry and concordance with Y-90 distribution.

Open

RPH use case: Tc-99m MAA, V/Q and radioembolization

Macroaggregated albumin: particle size and count, radiochemical purity, resuspension, lung perfusion, lung shunt and pre-therapy Y-90 planning.

Open

RPH workflow: dosimetry and therapy planning

Activity planning, absorbed dose, organ dose, lung shunt, preplanning and therapy verification.

Open

RPH workflow: imaging QC and quantitative interpretation

Acquisition, uptake, clearance, perfusion, transit, ejection fraction, segmentation and quantitative imaging.

Open

RPH: combined radiopharmaceutical QC package

RPH combines PetRad, PetRad2 and PetRad3 into one umbrella package for PET/SPECT, therapeutic radionuclides, generators, labelled compounds, decay calculations, sterility, endotoxins and radiochemical/radionuclidic purity.

Open