From e6bd7406a44383f3b74ef98fa837930bed7302bf Mon Sep 17 00:00:00 2001 From: dom Date: Sat, 7 Mar 2026 22:07:00 +0100 Subject: [PATCH] chore: nettoyage YAML base.yaml + corrections templates viewer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - base.yaml: suppression commentaires verbose, normalisation quotes YAML - Templates: corrections mineures cpam.html, detail.html, dim.html, index.html - admin_rules.html: ajustements interface admin règles - test_referentiels.py: mise à jour imports Co-Authored-By: Claude Opus 4.6 --- config/rules/base.yaml | 65 ++++++-------- src/viewer/templates/admin_rules.html | 117 +++++++++++++++++++++---- src/viewer/templates/cpam.html | 64 +++++++------- src/viewer/templates/detail.html | 72 ++++++++-------- src/viewer/templates/dim.html | 119 +++++++++++++++++--------- src/viewer/templates/index.html | 32 +++---- tests/test_referentiels.py | 14 +-- 7 files changed, 294 insertions(+), 189 deletions(-) diff --git a/config/rules/base.yaml b/config/rules/base.yaml index c4a3edf..d60d5a5 100644 --- a/config/rules/base.yaml +++ b/config/rules/base.yaml @@ -1,107 +1,92 @@ 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" + description: Code sans preuve exploitable VETO-03: enabled: true - description: "Conditionnel / négation / contradictions dans la preuve" + description: Conditionnel / négation / contradictions dans la preuve VETO-06: enabled: true - description: "DP dupliqué dans les DAS" + description: DP dupliqué dans les DAS VETO-07: enabled: true - description: "Doublons DAS" + description: Doublons DAS VETO-09: enabled: true - description: "Contradiction biologique (plaquettes/créat)" - # force_severity: "HARD" # Optionnel : forcer la sévérité globale + description: Contradiction biologique (plaquettes/créat) VETO-12: enabled: true - description: "Sur-confiance (high sans preuve)" + description: Sur-confiance (high sans preuve) VETO-15: enabled: true - description: "Preuve issue d'un score/test (risque de sur-codage)" + description: Preuve issue d'un score/test (risque de sur-codage) VETO-16: enabled: true - description: "Heuristique libellé→code (hors-sujet probable)" + description: Heuristique libellé→code (hors-sujet probable) VETO-17: enabled: true - description: "Preuve biologique manquante => NEED_INFO (non bloquant)" - + 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" + 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é)" + 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é" + description: DAS promu en DP si aucun DP extrait — sélection par pertinence/confiance/spécificité RULE-CPAM-CORRECTION-LOOP: enabled: true - description: "Boucle de correction quand validation adversariale score ≤ 5/10" - + description: Boucle de correction quand validation adversariale score ≤ 5/10 bio_electrolytes: enabled: true rules: RULE-E87.1-NA-NORMAL: enabled: true - description: "E87.1 suggérée mais Na normal => ruled_out" + 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" + 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" + 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" + 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" + 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" - + 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)" + 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" + 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)" + 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)" + 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)" - + 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)" + description: PDF protégé => NEED_INFO (à implémenter si besoin) diff --git a/src/viewer/templates/admin_rules.html b/src/viewer/templates/admin_rules.html index f7eda0b..58ce255 100644 --- a/src/viewer/templates/admin_rules.html +++ b/src/viewer/templates/admin_rules.html @@ -269,18 +269,59 @@ {# ---- Modal ajout regle ---- #}