Files
t2a_v2/config/rules/base.yaml
dom 1b680e9592 feat: qualité DP Phase 2 — filtre OCR étendu, abréviations médicales, promotion DAS→DP
- Filtre OCR : regex étendu (opérateurs +-*/), artefacts temporels (années),
  seuil digits abaissé 0.50→0.48
- Dictionnaire 41 abréviations médicales françaises (BMR, BPCO, SDRA, OAP,
  IDM, SCA, AVC, ACFA, SIDA, TDAH, etc.) avec expand_medical_abbreviations()
  appelé sur diagnostics Trackare et DAS LLM
- Promotion DAS→DP : si aucun DP extrait, le meilleur DAS (scoring
  pertinence/confiance/spécificité) est promu avec traçabilité RULE-DAS-TO-DP
- 95 nouveaux tests (OCR, abréviations, promotion, scoring, non-régression)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 08:37:10 +01:00

105 lines
3.4 KiB
YAML

version: 1
# Catalogue "socle" de règles.
#
# Objectif : piloter (sans toucher au code) :
# - l'activation/désactivation de règles (vetos + décisions)
# - éventuellement un forçage de sévérité pour un VETO
#
# Important : si une règle n'est pas listée ici, elle est considérée activée.
# (=> comportement historique conservé)
packs:
vetos_core:
enabled: true
rules:
VETO-02:
enabled: true
description: "Code sans preuve exploitable"
VETO-03:
enabled: true
description: "Conditionnel / négation / contradictions dans la preuve"
VETO-06:
enabled: true
description: "DP dupliqué dans les DAS"
VETO-07:
enabled: true
description: "Doublons DAS"
VETO-09:
enabled: true
description: "Contradiction biologique (plaquettes/créat)"
# force_severity: "HARD" # Optionnel : forcer la sévérité globale
VETO-12:
enabled: true
description: "Sur-confiance (high sans preuve)"
VETO-15:
enabled: true
description: "Preuve issue d'un score/test (risque de sur-codage)"
VETO-16:
enabled: true
description: "Heuristique libellé→code (hors-sujet probable)"
VETO-17:
enabled: true
description: "Preuve biologique manquante => NEED_INFO (non bloquant)"
decisions_core:
enabled: true
rules:
RULE-D50-NEEDS-IRON:
enabled: true
description: "D50 sans preuve martiale => downgrade D64.9 + NEED_INFO"
RULE-D69.6-PLT-NORMAL:
enabled: true
description: "D69.6 incompatible avec plaquettes normales => ruled_out (barré)"
RULE-DAS-TO-DP:
enabled: true
description: "DAS promu en DP si aucun DP extrait — sélection par pertinence/confiance/spécificité"
bio_electrolytes:
enabled: true
rules:
RULE-E87.1-NA-NORMAL:
enabled: true
description: "E87.1 suggérée mais Na normal => ruled_out"
RULE-E87.1-MISSING-NA:
enabled: true
description: "E87.1 suggérée mais Na absent => NEED_INFO"
RULE-E87.5-K-NORMAL:
enabled: true
description: "E87.5 suggérée mais K normal => ruled_out"
RULE-E87.5-MISSING-K:
enabled: true
description: "E87.5 suggérée mais K absent => NEED_INFO"
RULE-E87.6-K-NORMAL:
enabled: true
description: "E87.6 suggérée mais K normal => ruled_out"
RULE-E87.6-MISSING-K:
enabled: true
description: "E87.6 suggérée mais K absent => NEED_INFO"
atih_core:
enabled: true
rules:
VETO-20:
enabled: true
description: "Z code interdit en DP (sauf whitelist Z09/Z51/Z54/Z75/Z03/Z04/Z38/Z50/Z08)"
VETO-21:
enabled: true
description: "Code R (symptôme) en DP → CMD 23, tarification faible"
VETO-22:
enabled: true
description: "Même catégorie CIM-10 3 chars en DP + DAS (redondance)"
VETO-23:
enabled: true
description: "Exclusions mutuelles (E10/E11 diabète, I10/I11-I13 HTA)"
VETO-24:
enabled: true
description: "Lésion traumatique (S/T) sans cause externe (V/W/X/Y)"
placeholders_future:
enabled: false
rules:
RULE-PDF-PROTECTED-NEED_INFO:
enabled: false
description: "PDF protégé => NEED_INFO (à implémenter si besoin)"