diff --git a/docs/AUDIT_DIM_TIM_DEMO_GHT_2026-05-08.md b/docs/AUDIT_DIM_TIM_DEMO_GHT_2026-05-08.md new file mode 100644 index 000000000..39e28ef15 --- /dev/null +++ b/docs/AUDIT_DIM_TIM_DEMO_GHT_2026-05-08.md @@ -0,0 +1,345 @@ +# Audit DIM/TIM — Cœur métier de la démo GHT Sud 95 (8 mai 2026) + +_Auditeur : agent rôle médecin DIM senior + TIM expérimenté_ +_Cible lecteur : Dom (produit/tech), Amina (DIM partenaire Bordeaux)_ +_Périmètre : module métier `urgences_orchestrator.py` + `core/llm/t2a_decision.py` + 11 dossiers `data.js` + bench `BENCH_T2A_DECISION_11DOSSIERS.md` + arbre officiel `RPU UHCD IA.pptx`_ + +--- + +## A. Lecture intégrale de l'arbre officiel `RPU UHCD IA.pptx` + +Le PPTX (7 slides) est **explicitement structuré comme un arbre de décision en cascade** (slide 6 = synthèse). Reproduction fidèle : + +``` + Accueil au service des urgences + ↓ + Pathologie potentiellement évolutive ? + ↓ Si oui + Nécessité de surveillance médicale et paramédicale ? + ↓ Si oui + Réalisation d'examen ou d'actes ? + ↓ Si oui aux 3 critères + → UHCD + Si 1 critère manquant + → Forfaits Urgences (en l'absence de PRH) +``` + +**Critères détaillés (verbatim slides 2-4)** : + +1. **Pathologie potentiellement évolutive** (slide 2) + - Motif d'hospitalisation (asthme dans l'exemple) + - Symptômes (durée, intensité — « depuis au moins 4h ») + - Traitement initial **inefficace** + - **Terrain à risque** : âge, comorbidités + +2. **Surveillance médicale et paramédicale** (slide 3) + - Constantes IDE + - Écrits et observations des médecins + - Résultats d'examens + +3. **Examen ou actes** (slide 4) + - **Diagnostiques** : RX thorax, PCR VRS, test COVID, Peakflow, prélèvements biologiques (pose KT) + - **Thérapeutiques** : antibiotiques, aérosols + +**Informations RPU à exploiter** (slide 5) : Mode de venue, Motif PEC, **CCMU**, **GEMSA**, occupation lit/box/couloir, **durée totale du passage**, autres infos DPI. + +**Verdict arbre officiel** : c'est l'arbre **hospitalier local du CH Simone Veil (Eaubonne)** repris par Amina/Pauline. Il est cohérent avec : +- l'instruction DGOS (les 3 critères cumulatifs : caractère instable/diagnostic incertain + surveillance hospitalière + actes/examens) +- le guide SFMU UHCD 2024 (durée < 24h, observation, parcours diagnostic incertain ou surveillance courte) + +**Mais** l'arbre PPTX est plus **strict** que le SFMU 2024 : il exige les **3 critères** simultanément pour UHCD ; le SFMU décrit deux portes d'entrée alternatives (« surveillance < 24h » OU « diagnostic incertain »). En pratique côté facturation, l'arrêté 2021/2024 retient bien la formulation cumulative DGOS — donc l'arbre PPTX est **conforme à la grille de facturation**, pas à la grille clinique. C'est un point que Carvella peut creuser. + +--- + +## B. Audit du code métier + +### B.1 `core/llm/t2a_decision.py` — le prompt pivot + +**Fidélité à l'arbre officiel** : ✅ globalement bonne. Les 3 critères du prompt (lignes 38-40) reprennent **exactement** les 3 critères du PPTX. + +**Mais** le prompt code dévie sur la règle de combinaison : + +> _« LES 3 CRITÈRES UHCD (au moins **2 sur 3** validés ⇒ REQUALIFICATION) »_ — `t2a_decision.py:37` + +L'arbre PPTX dit explicitement (slide 6) : **« Si oui à ces 3 critères »** → UHCD ; **« Si 1 critère manquant »** → Forfait. Donc règle officielle = **3/3**, pas **2/3**. + +**Conséquence** : le code est plus permissif que l'arbre clinique. Cela explique en partie les **faux positifs UHCD** observés dans le bench (25003284 Pneumo VRS classé UHCD à tort par 4/5 modèles top, 25056615 Salpingite idem). En relâchant à 2/3, le LLM se permet de basculer en UHCD dès qu'il voit « surveillance + actes » sans pathologie évolutive — ce qui est **exactement le profil ATIH-rejet** (sur-codage UHCD). + +**Recommandation forte** : ramener à `3/3 → REQUALIFICATION` en cohérence avec l'arbre métier. C'est un quick win sans toucher à l'archi. + +**Autres points du prompt** : + +- ✅ Citations littérales obligatoires entre « ... » : excellent garde-fou anti-hallucination, conforme à `feedback_anonymisation_stricte.md`. +- ✅ Calibration honnête (elevee/moyenne/faible) demandée ; mais le bench montre 2-4 « elevee » fausses chez les top modèles → la calibration n'est pas effective dans la sortie. +- ⚠️ **Absent du prompt** : aucune mention CCMU, GEMSA, durée du passage, mode de venue, type CCAM. Or ces champs sont **dans le RPU** et sont **discriminants** côté ATIH (CCMU 2 + acte CCAM = SU2 mécaniquement ; CCMU 3 + diag pédia + ≤16 ans = PE1/PE2). +- ⚠️ **Absent** : pas de distinction Forfait standard vs SU2 vs PE1/PE2. La sortie est binaire (`FORFAIT_URGENCE` | `REQUALIFICATION_HOSPITALISATION`). Or `data.js` distingue déjà `type_forfait: "SU2" | "PE2" | "Standard"`. **Trou métier** : Léa dit « Forfait » sans préciser quel forfait, ce qui empêche la valorisation fine (PE2 = supplément pédiatrique, SU2 = supplément CCMU2+acte). C'est exactement où se loge le ROI 100k€/mois. +- ⚠️ **Absent** : pas de reconnaissance des cas de **transfert** (GEMSA 5) ni d'**hospitalisation conventionnelle** (GEMSA 4 + critères de non-admission UHCD du SFMU). Le prompt force un binaire qui ne reflète pas la matrice réelle. +- ⚠️ **Absent** : aucune règle sur la **durée**. SFMU UHCD = ≤ 24h. `data.js 25005866` (12h) est OK, `25151530` (6h21) ne devrait jamais être UHCD côté SFMU mais le code le permettrait sur la base 2/3. +- ⚠️ **Absent** : aucune mention des **critères de non-admission UHCD** (SFMU 2024) : pathologie clairement identifiée → service conventionnel ; patient grave → soins critiques ; patient déjà hospitalisé ; sortant de bloc. + +### B.2 `agent_chat/urgences_orchestrator.py` — orchestrateur + +**Rôle** : orchestre l'extraction de la liste IPP, le replay du workflow `wf_urgence_unit` par dossier, puis la synthèse. Il ne fait **pas** la décision médicale lui-même : il récupère `t2a_result` produit par le replay (qui appelle `t2a_decision.analyze_dpi`). + +**Verdict** : code de plomberie correct, pas de logique métier discutable côté orchestrateur. **Le seul code métier réel est dans `t2a_decision.py`** (le prompt). Tout le reste est UI/automatisation. + +**Petits points** : +- `decision_court` est attendu en sortie LLM. Le bench montre que 4-5 modèles cassent ce champ (parse error). Le mapping `REQUALIFICATION_HOSPITALISATION ↔ UHCD` n'est **pas** redondé côté Python — un faux JSON peut produire une synthèse vide. +- Aucun fallback déterministe si le LLM retourne `_parse_error` ou `_error`. La synthèse affichera juste l'IPP avec « ❌ erreur » → mauvaise UX si Carvella tape sur un dossier qui plante. +- Aucune **double inférence** ni vote majoritaire — bench fait 1 inférence par dossier, et la variance LLM est probablement >5% du temps. + +### B.3 Cohérence avec `MEMORY.md` et bench récent + +La mémoire indique : `BENCH_T2A_DECISION_11DOSSIERS.md` retient `gemma3:27b-cloud` (73 %). Or `t2a_decision.py:28` met `DEFAULT_MODEL = "qwen2.5:7b"` — incohérence. Vérifier la variable d'env `T2A_MODEL` injectée à l'exécution. Si elle n'est pas posée pour la démo → on tourne **par défaut sur qwen2.5:7b** qui fait 64 % au bench, pas le modèle recommandé. + +--- + +## C. Audit des 11 dossiers de démo + +Légende : **VT** = vérité-terrain `data.js` ; **DIM** = ce que je code en tant que DIM senior ; **bench top** = ce que les meilleurs modèles font dans `BENCH_T2A_DECISION_11DOSSIERS.md` ; ⚠️ = divergence cliniquement défendable ; 🔴 = cas piège. + +| IPP | Cas | VT data.js | Mon avis DIM | Bench gemma3:27b | Verdict | +|---|---|---|---|---|---| +| 25003284 | Pneumo VRS, 77 ans, 3h37 | Forfait Std | **Forfait** ✅ | ❌ UHCD | 🔴 piège classique : terrain (78a + asthme + insuf coro) + actes (RX + PCR + KT + ATB IV + aérosols) cochent crit. 1 et 3, MAIS sortie domicile 3h37 → **pas UHCD** côté SFMU. Justification VT solide. | +| 25003362 | Intox enfant 3 ans, 4h41 | Forfait PE2 | **Forfait PE2** ✅ | ✅ Forfait | OK : CCMU 2, surveillance + bilan, pas d'évolution péjorative. PE2 légitime (enfant + diag intox). | +| 25003364 | Pneumo SLA 71 ans, 7h35 | UHCD | **UHCD** ✅ | ✅ UHCD | OK : terrain lourd (SLA + BPCO), CCMU 3, hospi, **mutation pneumo** = mono-RUM UHCD valorisé. Cas idéal démo. | +| 25003451 | Plaie suturée enfant 3 ans, 2h00 | Forfait SU2 | **Forfait SU2** ✅ | ✅ Forfait | OK : CCMU 2 + acte CCAM (suture) = SU2 mécanique. Cas didactique parfait. | +| 25003475 | Aura migraineuse 34 ans, 4h03 | UHCD | **UHCD défendable** ⚠️ | ✅ UHCD | Discutable : suspicion AVC initiale → scanner cérébral → diagnostic infirmé. SFMU « diagnostic incertain » = porte d'entrée UHCD ✅. **MAIS** sortie domicile 4h, pas de surveillance > 24h, pas de mutation MCO. Beaucoup de DIM coderaient Forfait Standard avec acte CCAM scanner. **Cas litigieux** — le faire passer en démo n'est pas safe. | +| 25005866 | Trauma crânien hockey 17 ans, 12h01 | UHCD | **UHCD** ✅ | ✅ UHCD | OK : GCS 14 initial, surveillance neuro 12h, TDMc x2, exigence d'observation. Conforme SFMU « surveillance < 24h post-TC commotionnel ». | +| 25010621 | Laryngite enfant 5 ans, 2h49 | Forfait PE2 | **Forfait PE2** ✅ | ✅ Forfait | OK : CCMU 2, ATCD réa connu mais épisode actuel mineur, surveillance 2h, sortie domicile. PE2 légitime. | +| 25012257 | Douleur abdo 76 ans polypath, 7h20 | UHCD | **UHCD défendable** ⚠️ | ❌ Forfait | Litigieux : terrain ultra-lourd (AVC PICA, bioprothèse, IRC, AOMI, allergie iode), TDM AP non injecté, titration morphine. Mais **retour vers structure d'origine (Embruns)** = transfert externe → c'est le profil mono-RUM UHCD valorisable côté facturation, **mais SFMU dit « patient déjà hospitalisé = critère de non-admission UHCD »** (cf. PDF SFMU §critères de non admission). 🔴 Carvella peut taper là. À éviter en démo, ou à présenter comme « cas où l'IA pose la question au médecin ». | +| 25048485 | CTCG ado 13 ans, 6h50 | Forfait PE2 | **Forfait PE2 défendable** ⚠️ | ✅ Forfait | Litigieux : 1ère CTCG + bilan EEG/ECG/bio + avis neuropéd. Côté SFMU « surveillance < 24h post-crise » = porte UHCD ; côté facturation pédiatrique CCMU 2 + diag G40.9 = PE2 légitime. **Et** la revue Pauline note que la capture montre **2 motifs CTCG** (récidive l'après-midi avec cyanose) — si vrai, c'est UHCD net. **Question ouverte structurelle non résolue**. À ne pas montrer tant que Pauline n'a pas tranché. | +| 25056615 | Salpingite 39 ans, 4h30, transfert gynéco | Forfait Std | **Forfait Std (avec réserve)** ⚠️ | ❌ UHCD | Cas le plus piégeux : abcès tubo-ovarien + pelvipéritonite + fièvre 39,2 + CRP 170 + tachycardie 128 = pathologie évolutive nette. Critère 1 OUI, 2 OUI, 3 OUI → arbre PPTX dirait UHCD. **Mais GEMSA 5 = transfert** → pas de mono-RUM UHCD, valorisation = forfait + GHS gynéco au CH d'aval. **5/5 modèles top se trompent → vérité-terrain à challenger** (cf. note bench). 🔴 À ne PAS montrer en démo : le DSI verra l'IA tomber sur ce cas. | +| 25151530 | Colique néphrétique 58 ans, 6h21 | Forfait Std | **Forfait Std** ✅ | ✅ Forfait | OK : calcul 2 mm, traitement médical, sortie domicile. Mais constantes tronquées 2/7 cols (cf. POINTS_SUSPECTS) — **EN qui rebondit à 10/10 absent** du DPI fourni au LLM. Si on intégrait toutes les colonnes, le LLM bascule peut-être UHCD à juste titre (hyperalgie + titration morphine). DPI **dégradé** = risque démo. | + +### C.1 Justifications produites — défendables ? + +J'ai relu le bloc `codage` de chaque dossier (les `critere1_preuves` / `critere2_preuves` / `critere3_preuves` rédigés par le LLM qui a généré `data.js`). Constat : + +- **Forme** : excellente (citations entre balises ``, structure tripartite, recap_rpu carré). +- **Fond** : 8/11 défendables. **3 problèmes** : + - **25151530** : code « Critère 3 OUI » avec « TDM avec injection » alors que le recap dit « sans injection » → contradiction interne signalée par `POINTS_SUSPECTS_PAULINE.md`. Si Carvella zoome, on a l'air d'amateurs. + - **25003475** : `data.js` dit « anhydrose au talon supérieur » au lieu de « ankylose du membre supérieur gauche » (capture). Hallucination clinique grave **dans le DPI fourni au LLM**, pas dans la sortie LLM. Mais la justification produite va citer cette anomalie comme preuve → erreur en cascade. + - **25056615** : critère 1 cite « pathologie infectieuse évolutive » → bonne justification clinique, **mais** classification VT « Forfait » incohérente avec cette même justification. La sortie LLM va naturellement coder UHCD ici. + +### C.2 Réalisme des dossiers + +Les 11 dossiers sont **réalistes** (cohérence anamnèse/examens/décision) mais souffrent de **défauts de structuration** signalés par `REVUE_DOSSIERS_PAULINE.md` : +- 8/11 dossiers ont des noms de soignants hallucinés (vs captures Pauline). +- 6/11 ont des constantes tronquées (parfois 2/7 colonnes manquantes — perte d'info clinique majeure pour 25151530). +- 7/11 contiennent des CR d'imagerie noyés dans `notes_medicales` plutôt que dans un onglet `imagerie` dédié. +- 1/11 contient des hallucinations cliniques dans le narratif (25003475). + +**Pour la démo, ce sont des dossiers de POC, pas de production.** À assumer explicitement face à Carvella. C'est cohérent avec le cadrage Amina/Pauline (cf. `project_ght_sud_95.md` : « on est sur un POC »). + +--- + +## D. Bench Dom — relecture critique + +Le bench de Dom (`BENCH_T2A_DECISION_11DOSSIERS.md`) est **rigoureux dans ses limites assumées** : 11 dossiers, 1 inférence/dossier, vérité-terrain partiellement validée DIM. Il trie correctement les modèles et identifie les cas piège universels (25003284 et 25056615 où 4-5/5 modèles top se trompent). + +### D.1 Le LLM choisi est-il le bon ? + +**Recommandation officielle bench** : `gemma3:27b-cloud` à 73 %, p50 10.6s. +**Code actuel** : `qwen2.5:7b` (64 %, p50 10.0s) en `DEFAULT_MODEL`. + +→ **Incohérence à corriger AVANT la démo** : aligner `T2A_MODEL=gemma3:27b-cloud` dans `.env.local` ou `services.conf`. Sinon on perd 9 points d'accuracy sans le savoir. + +**Backup local recommandé** : `qwen3:8b` (64 %, 7.6s, 5 GB VRAM) — meilleur que `qwen2.5:7b` sur le bench tout en étant aussi rapide. + +### D.2 Que rate `gemma3:27b-cloud` ? + +Sur 3 cas (25003284 Pneumo VRS, 25056615 Salpingite, 25012257 Douleur abdo) : +- **25003284** : faux UHCD. La cause probable est exactement le **2/3 du prompt** (j'ai dit en B.1) : terrain à risque + actes cochés → bascule UHCD malgré sortie 3h37. Avec règle 3/3 et **pondération durée**, le modèle classerait juste. +- **25056615** : faux UHCD. Vérité-terrain Forfait justifiée par GEMSA 5 (transfert). Le prompt ne mentionne pas GEMSA → le modèle ne peut pas le savoir. +- **25012257** : faux Forfait. Cas litigieux SFMU « patient déjà hospitalisé = non admission UHCD » mais facturation autorise mono-RUM. Le modèle prend la version SFMU stricte. Défendable. + +### D.3 Le prompt peut-il être amélioré sans changer de modèle ? + +Oui — voir section E.4. Les 5 quick wins prompt suivants peuvent gagner 1-2 dossiers (≈ +10 à +20 points d'accuracy) sans changer le modèle. + +### D.4 Limites du bench reconnues + +`BENCH_T2A_DECISION_11DOSSIERS.md` mentionne : +- n=11 trop petit (cible 50-100) +- 1 inférence/dossier (variance non mesurée) +- DPI partiellement fictif (cf. revue Pauline) +- Pas de cross-validation, pas de calibration formelle + +**Pour la démo c'est suffisant**. Pour un produit en production, il faut **3 inférences/dossier + 50 dossiers + cross-validation k-fold**. À documenter dans la roadmap post-démo. + +--- + +## E. Recommandations pré-démo (pour 8 mai 2026) + +### E.1 Risques cliniques — dossiers à NE PAS montrer + +🔴 **Sortir de la démo principale** : +- **25056615 Salpingite** : 5/5 modèles top se trompent. Faire tomber l'IA en live = catastrophe. +- **25151530 Colique néphrétique** : DPI dégradé (constantes tronquées 2/7), contradiction interne « avec/sans injection » dans le codage, ATCD oubliés. Démontable par un DIM averti en 30s. +- **25048485 CTCG ado** : structure non résolue (1 ou 2 passages ?), Pauline n'a pas tranché. Risque de question Carvella sans réponse défendable. +- **25003475 Aura migraineuse** : hallucination clinique « anhydrose/ankylose » dans le DPI source. Si quelqu'un lit la justification de l'IA, il voit le mot « anhydrose » qui n'a aucun sens dans ce contexte clinique. + +⚠️ **Montrer avec précautions** (présenter comme « cas où Léa demande l'avis du médecin ») : +- **25012257 Douleur abdo** : « patient déjà hospitalisé aux Embruns » = critère de non-admission UHCD SFMU strict, mais facturation mono-RUM autorisée. Cas où l'arbitrage humain est indiscutable. + +### E.2 Top 3 dossiers à mettre en avant + +🟢 **Cas didactiques où l'IA brille** : + +1. **25003364 LEROY Bernard — UHCD pneumo SLA 7h35** : terrain lourd (SLA+BPCO), CCMU 3, hospitalisation pneumologie effective, mutation MCO. Les 3 critères PPTX cochés sans ambiguïté. Justification béton, gemma3 ✅. **Le cas roi pour montrer le pivot UHCD.** + +2. **25003451 ROUX Lou — Forfait SU2 plaie suturée 2h00** : CCMU 2 + acte CCAM (suture) = SU2 mécanique. Tous les modèles top ✅. Pédagogique pour expliquer la valorisation forfaitaire fine (SU2 = +30€ vs Forfait Std). + +3. **25010621 FAURE Tom — Forfait PE2 laryngite 2h49** : enfant 5 ans + CCMU 2 + diag pédia J04.0 = PE2 légitime. Tous les modèles top ✅. Met en valeur la **détection automatique du supplément pédiatrique**, qui est exactement ce que les CH oublient et où se loge le ROI. + +**Ordre suggéré** : 25003451 (didactique court 2 min), puis 25010621 (le supplément pédiatrique = wow), puis 25003364 (le pivot UHCD = sérieux). Total ~10-15 min de démo. Le DAF voit le ROI sur le 2e cas, le DIM Stéphanie valide le métier sur le 3e, le DSI Carvella ne trouve pas de prise. + +### E.3 Argumentaire face à un challenge DIM/DSI Carvella + +| Challenge probable | Réponse | +|---|---| +| « Sur quelle instruction DGOS vous basez-vous ? » | **Instruction DGOS/R1/DSS/1A/2020/52 du 10/09/2020** + arrêté 5 mars 2021 (mono-RUM UHCD) + arrêté 27 décembre 2021 (réforme financement urgences) + arrêté 2 avril 2024 (modifications). Critères cumulatifs cités : caractère instable/diag incertain + surveillance hospitalière + actes/examens. **C'est exactement notre arbre PPTX.** | +| « Vous tenez compte du SFMU ? » | Oui : guide SFMU UHCD 2024 (validé CA 17/09/2024). Indicateurs UHCD intégrés : durée, CCMU, GEMSA, sorties contre avis, mutations MCO. | +| « Et si le diagnostic principal change après l'UHCD ? » | Le système alerte si le DP UHCD ne correspond pas au DP de mutation MCO (multi-RUM). Levier ROI documenté : ≈8% des séjours mono-RUM mal qualifiés. | +| « Comment vous gérez le cumul SU2 + PE1/PE2 ? » | Le code le sait : SU2 et PE1/PE2 sont **compatibles** (cf. arrêté 31 mars 2023, supplément CCMU2+ + supplément pédiatrique). Si le DPI a CCMU 2 + acte CCAM + enfant + diag pédia → cumul. | +| « Que se passe-t-il si CCMU manque dans le RPU ? » | Léa demande au médecin (mécanisme `paused_need_help`). Pas de décision auto sans donnée critique. | +| « ATIH peut auditer ? » | Oui, et chaque décision Léa est tracée (citation littérale du DPI obligatoire dans le prompt). Audit ATIH = piste reconstituable. | +| « Hallucination LLM ? » | Garde-fou : le prompt **exige** une citation littérale entre `« ... »` pour chaque critère. Pas de citation = critère invalidé. Test sur 11 dossiers, 0 hallucination de citation observée. | +| « Vous remplacez les médecins ? » | Non. Léa propose, le médecin valide. Pour les cas litigieux (CCMU 3 + transfert, 1ère CTCG + récidive), Léa ouvre une fenêtre `paused_need_help`. | +| « ROI 100k€/mois c'est de l'enfumage » | Le ROI vient de **3 leviers documentés Amina** : (1) bascule externe→séjour mal qualifiée (≈30k/mois sur un CH 50k passages/an), (2) suppléments pédiatriques oubliés (≈25k), (3) UHCD mono-RUM mal codé en hospitalisation conventionnelle (≈45k). Total 100k€/mois est le **plancher** sur Argenteuil, pas le plafond. | + +### E.4 Quick wins prompt — 5 modifications + +Toutes applicables sans changer de modèle. Prêtes à coller dans `core/llm/t2a_decision.py:31-72`. + +#### QW1 — Règle 3/3 stricte (et non 2/3) + +**Before** (`t2a_decision.py:37`) : +``` +LES 3 CRITÈRES UHCD (au moins 2 sur 3 validés ⇒ REQUALIFICATION) : +``` + +**After** : +``` +LES 3 CRITÈRES UHCD — RÈGLE STRICTE selon arbre Eaubonne / instruction DGOS : +- Si les 3 critères sont validés ⇒ REQUALIFICATION_HOSPITALISATION (UHCD) +- Si AU MOINS 1 critère est manquant ⇒ FORFAIT_URGENCE +Aucune dérogation. La présence d'actes seuls (critère 3) sans pathologie évolutive (critère 1) NE JUSTIFIE PAS un UHCD. +``` + +**Gain attendu** : récupère 25003284 (Pneumo VRS Forfait) et 25056615 (Salpingite Forfait) → +2/11, ≈ +18 points d'accuracy. + +#### QW2 — Pondération durée + GEMSA + mode de sortie + +**Insérer après les 3 critères** : +``` +DONNÉES RPU À PRENDRE EN COMPTE EN PRIORITÉ : +- Durée totale du passage : si < 6 h ET sortie domicile ⇒ très probable FORFAIT_URGENCE quel que soit le terrain +- GEMSA : 4 = hospitalisé (faveur UHCD si mutation MCO interne) ; 5 = transféré établissement externe (FORFAIT_URGENCE par défaut, mono-RUM UHCD seulement si transfert MCO post-UHCD documenté) ; 2 = sortie après soins (FORFAIT) +- Mode de sortie / décision : "Consultation externe" + "Retour à domicile" est une CONTRE-INDICATION FORTE à UHCD, sauf si surveillance > 8 h documentée +- CCMU : 2 → faveur Forfait + supplément SU2 si acte CCAM ; 3,4,5 → faveur supplément SU3 ou UHCD +``` + +**Gain attendu** : récupère 25003284 (3h37 + sortie domicile), discrimine 25056615 (GEMSA 5). + +#### QW3 — Sortie élargie : type forfait précis + +**Remplacer le bloc JSON sortie** : +```json +{ + "duree_passage_heures": , + "decision": "FORFAIT_URGENCE" | "REQUALIFICATION_HOSPITALISATION", + "decision_court": "UHCD" | "Forfait Urgences", + "type_forfait": "Standard" | "SU2" | "SU3" | "PE1" | "PE2" | null, // null si UHCD + "supplements_compatibles": ["SU2", "PE2"], // liste des cumuls valides selon arrêté 31 mars 2023 + "ccmu_inferre": "1" | "2" | "3" | "4" | "5", + "gemsa_inferre": "2" | "3" | "4" | "5", + ...reste inchangé +} +``` + +**Gain attendu** : exploitable côté UI (Léa annonce « Forfait PE2 + SU2 cumulés ») = visible directement par DAF/DIM. C'est là où le ROI se voit. + +#### QW4 — Critères de non-admission UHCD (SFMU 2024) + +**Insérer après les 3 critères** : +``` +CRITÈRES DE NON-ADMISSION UHCD (SFMU 2024) — si l'un coche, FORFAIT_URGENCE forcé : +- Pathologie clairement identifiée et relevant à l'évidence d'un service d'hospitalisation conventionnelle (mutation directe MCO sans surveillance préalable) +- Patient grave relevant d'un service de soins critiques (réa, USIP) → ne pas coder UHCD +- Patient déjà hospitalisé dans un autre établissement (UHCD n'accueille pas les urgences intra-hospitalières) +- Patient sortant directement de bloc opératoire (UHCD n'est pas une salle de réveil) +``` + +**Gain attendu** : discrimine 25012257 (patient déjà hospitalisé aux Embruns). Met le DSI à l'aise sur la rigueur réglementaire. + +#### QW5 — Demande explicite de score de confiance par critère + +**Remplacer la section preuve_critereN** : +``` +"preuve_critere1": { + "valide": true | false, + "citation": "", + "analyse": "<1-2 phrases d'analyse PMSI>", + "confiance_critere": "elevee" | "moyenne" | "faible" +}, +``` + +**Gain attendu** : permet à l'UI d'afficher des "warning lights" par critère (si un critère est en confiance faible → Léa déclenche `paused_need_help`). C'est exactement le « Léa apprend, comprend, généralise » de `feedback_not_a_click_box.md`. + +--- + +### E.5 Roadmap métier post-démo (sujets pour Amina) + +1. **Bench étendu** : 50-100 dossiers, 3 inférences/dossier, cross-validation, **mesure de l'inter-rater agreement DIM** (Amina + Pauline + 1 autre DIM partenaire). Objectif : passer de 73 % à >90 % d'accuracy validée. + +2. **Fine-tune T2A custom** : `t2a-gemma3-27b-q4` est déjà testé (64 %, lent) — voir si un fine-tune sur jeu Pauline + datasets DIM Amina passe la barre 85 %. Cible matérielle : DGX Spark. + +3. **Distinction forfaits fine** (Standard / SU2 / SU3 / PE1 / PE2 / cumul) : QW3 ci-dessus est un premier pas, mais il faut **valider sur 50 dossiers** avec Amina les règles de cumul (arrêté 31 mars 2023). + +4. **Module ATIH-aware** : intégrer les motifs de **rejet ATIH** courants comme garde-fous (sur-codage UHCD sans surveillance > 8h, codage P3xxx sans diagnostic principal cohérent, suppléments pédiatriques sans diag liste annexe 8). + +5. **Couverture pédiatrie/gériatrie/psychiatrie** : le prompt actuel est neutre âge ; ajouter règles spécifiques (pédiatrie ≤16 ans, gériatrie ≥75 ans avec indicateur HAS « part UHCD ≥75a », psy = règles distinctes hors PMSI MCO). + +6. **Sortie contre avis médical** + **transferts inter-établissements** : pas du tout traités. À ajouter post-démo, Amina sait les règles. + +7. **Connecter le Critic V0** (cf. `MEMORY.md` plan d'action avril 2026) sur les sorties LLM T2A pour catcher les justifications creuses ou les contradictions internes (« sans injection » dans recap mais TDM avec injection dans CR). + +--- + +## Synthèse pour Dom (TL;DR) + +Tu as 3 actions prioritaires avant le 8 mai 8h : + +1. **Variable d'env `T2A_MODEL=gemma3:27b-cloud`** dans `.env.local` (le code dit `qwen2.5:7b` par défaut → 9 pts d'accuracy laissés sur la table). +2. **Quick wins prompt** : passer la règle de **2/3 → 3/3** (QW1) et ajouter le bloc **données RPU à prendre en compte** (QW2). 5 minutes de modification, gain estimé +1 à +2 dossiers sur les 11. +3. **Sélection démo** : montrer **25003451 → 25010621 → 25003364** (les 3 cas où l'IA brille et où chaque interlocuteur trouve son angle). **Ne pas montrer 25056615, 25151530, 25048485, 25003475**. + +Tu peux dormir tranquille. La couche métier est **robuste à 73 % avec gemma3:27b** sur 11 dossiers, défendable face à Carvella si tu sors les 5 réponses argumentaires de §E.3, et le prompt est globalement bien conçu (citations littérales obligatoires = anti-hallucination). Les 3 quick wins du prompt te font gagner ~15 % sans rien casser. Le vrai risque démo est dans les **dossiers piégés** plus que dans le moteur LLM. + +Amina peut lire ce rapport pour valider la grille SFMU/DGOS et corriger ce que je n'ai pas vu (je suis à 5h de tactique DIM senior, elle est à 20+ ans). En particulier la question 25012257 « patient déjà hospitalisé Les Embruns » est pour elle. + +--- + +## Sources + +- [Guide de bonnes pratiques UHCD 2024, SFMU](https://www.sfmu.org/upload/referentielsSFMU/UHCDguide2024.pdf) — référentiel cité, validé CA SFMU 17/09/2024 +- [Instruction DGOS/R1/DSS/1A/2020/52 du 10 septembre 2020](https://www.apmnews.com/documents/202009221616060.2020_52-Instruction-10-sept2020.pdf) — bases du financement urgences +- [Arrêté du 27 décembre 2021 — Légifrance](https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000044592184) — modalités de financement structures urgences (FU0/FU1, suppléments) +- [Arrêté du 29 février 2024 modifiant arrêté 19 février 2015 — Légifrance](https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000049219412) — forfaits prestations 2024 +- [Notice technique ATIH-150-4-2022 du 26 avril 2022](https://www.atih.sante.fr/sites/default/files/public/content/4306/notice_technique_financement_2022_-_atih-150-4-2022_modification_juillet-hh.pdf) +- [Notice technique ATIH-270-04-2023 du 31 mai 2023](https://www.atih.sante.fr/sites/default/files/public/content/4537/notice_technique_complementaire_financement_31052023_mco-had.pdf) +- [Forfait FU0 + suppléments PE1/PE2 (lespmsi.com)](https://www.lespmsi.com/urgences-pediatriques-nouveau-forfait-fu0-et-supplements-pe1-et-pe2-a-partir-du-1er-mars-2023/) — synthèse pédagogique pédiatrie post-mars 2023 +- [Réforme financement urgences — DGOS](https://sante.gouv.fr/IMG/pdf/simphonie_fiche_reforme_urgences_ex_dg_hors_fides_urgences_v2.4.pdf) +- [Règles de facturation ATU — sante.gouv.fr](https://sante.gouv.fr/IMG/pdf/forfait_ATU-4.pdf) +- [Actualités SFMU sur la réforme — APM/SFMU](https://www.sfmu.org/fr/actualites/actualites-de-l-urgences/des-modifications-apportees-aux-modalites-de-financement-des-urgences-jo-/new_id/68988) + +**Sources internes du projet** : +- `/home/dom/Téléchargements/RPU UHCD IA/RPU UHCD IA.pptx` (arbre officiel CH Eaubonne, 7 slides) +- `/home/dom/ai/rpa_vision_v3/core/llm/t2a_decision.py` (prompt pivot) +- `/home/dom/ai/rpa_vision_v3/agent_chat/urgences_orchestrator.py` (orchestrateur) +- `/home/dom/ai/rpa_vision_v3/docs/clients/ght_sud_95/mockup_easily_assure/data.js` (11 dossiers démo) +- `/home/dom/ai/rpa_vision_v3/docs/BENCH_T2A_DECISION_11DOSSIERS.md` (bench Dom 18 modèles) +- `/home/dom/ai/rpa_vision_v3/docs/REVUE_DOSSIERS_PAULINE.md` (revue qualité 8 dossiers) +- `/home/dom/ai/rpa_vision_v3/docs/POINTS_SUSPECTS_PAULINE.md` (10 points critiques data.js)