If you maintain a product catalogue or ERP feed for medical devices, bad specification data is a quiet source of errors. A basket listed with the wrong length or a missing diameter can end up in a tender or an order. Here is a small, practical approach to validating device specs before they are published.

The problem

A ureteroscopic stone retrieval basket has a handful of attributes that buyers filter on: shaft diameter (Fr), working length (cm), cage style, wire count and sterility. Suppliers send these in spreadsheets with inconsistent units and spellings, such as 1.9F, 1.9 Fr or 1.9 french.

Model the data

from dataclasses import dataclass from typing import Literal Cage = Literal["helical", "flat-wire", "tipless", "fixed-tip"] @dataclass class BasketSpec: sku: str shaft_fr: float length_cm: int cage: Cage wires: int sterile: bool 

Normalise before you validate

import re def parse_fr(value: str) -> float: m = re.search(r"(\d+(?:\.\d+)?)", value) if not m: raise ValueError(f"No diameter in {value!r}") return float(m.group(1)) 

Add sanity checks

def validate(spec: BasketSpec) -> list[str]: errors = [] if not 1.0 <= spec.shaft_fr <= 4.0: errors.append("shaft_fr outside expected range") if not 50 <= spec.length_cm <= 150: errors.append("length_cm outside expected range") if spec.wires < 2: errors.append("wires must be 2 or more") if not spec.sterile: errors.append("sterile flag missing") return errors 

The ranges are placeholders. Take the real limits from each manufacturer's specification sheet rather than hard-coding assumptions.

Fail loudly in your pipeline

Run the validator in CI or in your import job, and reject the batch if any row returns errors. A report listing the SKU and the failing field is much easier for a catalogue team to fix than a silent bad record.

Why it matters

Buyers compare devices on exactly these fields, so clean data means fewer wrong orders and faster quotes. If you want the buyer's side of the story, including cage designs and quality checks, see the full guide: stone retrieval basket guide for buyers.

Note: this is general software advice and not clinical guidance.