feat: BIO_NORMALS 33 analytes + interprétations cliniques + cohérence DAS/bio étendue

- BIO_NORMALS passe de 13 à 33 tests (cardio, infectio, métabo, thyroïde, hémato, hépatique)
- _BIO_INTERPRETATION synchronisé (33 entrées, 3 clés high/low/normal chacune)
- _DAS_BIO_CHECKS étendu de 13 à 38 patterns (sepsis, infarctus, EP, diabète, thyroïde, etc.)
- lab_value_sanity.yaml étendu avec 20 garde-fous plausibilité nouveaux tests
- tests/test_bio_normals.py : 32 tests (complétude, concordance, _is_abnormal)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
dom
2026-02-20 11:00:53 +01:00
parent 3c070f3c1d
commit 1a3c523987
4 changed files with 318 additions and 9 deletions

View File

@@ -6,20 +6,48 @@ from __future__ import annotations
# Plages de référence biologiques (min, max) — utilisées par _is_abnormal()
# et exportées pour le formatage du contexte LLM dans rag_search.py
BIO_NORMALS: dict[str, tuple[float, float]] = {
# --- Hépatique / digestif ---
"Lipasémie": (0, 60),
"CRP": (0, 5),
"ASAT": (0, 40),
"ALAT": (0, 40),
"GGT": (0, 60),
"PAL": (0, 150),
"Bilirubine totale": (0, 17),
# Ionogramme (fallback adulte ; les règles de décision utilisent reference_ranges.yaml)
"Bilirubine directe": (0, 5), # µmol/L
"LDH": (120, 250), # UI/L
# --- Inflammatoire ---
"CRP": (0, 5),
"VS": (0, 20), # mm/h
# --- Ionogramme (fallback adulte ; les règles de décision utilisent reference_ranges.yaml) ---
"Sodium": (135, 145),
"Potassium": (3.5, 5.0),
# --- Hématologie ---
"Hémoglobine": (12, 17),
"Plaquettes": (150, 400),
"Leucocytes": (4, 10),
"TP": (70, 100), # %
"TCA": (25, 35), # secondes
"Ferritine": (20, 300), # µg/L
# --- Rénal ---
"Créatinine": (50, 120),
"Urée": (2.5, 7.5), # mmol/L
# --- Cardiologie ---
"Troponine": (0, 0.04), # ng/mL (seuil hs-TnI)
"BNP": (0, 100), # pg/mL
"NT-proBNP": (0, 300), # pg/mL
"D-dimères": (0, 500), # ng/mL
"INR": (0.8, 1.2), # ratio
"Fibrinogène": (2, 4), # g/L
# --- Infectiologie ---
"Procalcitonine": (0, 0.5), # ng/mL
"Lactate": (0.5, 2.0), # mmol/L
# --- Métabolisme ---
"Glycémie": (3.9, 5.5), # mmol/L (à jeun)
"HbA1c": (4.0, 6.0), # %
"Albumine": (35, 50), # g/L
"Acide urique": (150, 420), # µmol/L
# --- Thyroïde ---
"TSH": (0.4, 4.0), # mUI/L
}