feat: 8 optimisations vitesse + qualité pipeline CIM-10

1. Parallélisation intra-dossier (RAG + DP selector en parallèle)
2. Cache embeddings FAISS (_embed_cached avec LRU)
3. Lazy loading edsnlp (déjà singleton, vérifié)
4. Prompt DP amélioré avec règles PMSI/ATIH
5. Validation croisée Bio↔DAS (cohérence biologie/diagnostics)
6. Resélection DP après vetos/exclusions (reselect_dp_after_vetos)
7. Pré-filtrage R-codes (déjà implémenté dans exclusion_rules)
8. Cache embeddings texte (intégré dans rag_search)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
dom
2026-03-07 22:18:07 +01:00
parent e6bd7406a4
commit 63f61f196b
5 changed files with 268 additions and 30 deletions

View File

@@ -433,15 +433,27 @@ Réponds UNIQUEMENT en JSON :
# ---------------------------------------------------------------------------
DP_RANKER_CONSTRAINED = """\
Tu es un médecin DIM expert en codage PMSI. Tu dois choisir le Diagnostic Principal (DP) \
Tu es un médecin DIM expert en codage PMSI MCO. Tu dois choisir le Diagnostic Principal (DP) \
parmi la liste FERMÉE de {n_candidates} candidats ci-dessous.
RÈGLES STRICTES :
1. Le DP reflète le MOTIF PRINCIPAL de prise en charge pendant ce séjour
2. Un acte seul (cholécystectomie, biopsie…) NE PEUT PAS être DP s'il existe un candidat textuel
3. Un symptôme (R00-R99) NE PEUT PAS être DP si une étiologie candidate existe dans la liste
4. Une comorbidité chronique (HTA, diabète, BPCO) NE PEUT PAS être DP sauf prise en charge ACTIVE
5. Tu DOIS choisir un index de la liste — JAMAIS de réponse hors liste
DÉFINITION OFFICIELLE DU DP (Guide méthodologique ATIH) :
Le DP est le motif de prise en charge qui a mobilisé l'essentiel de l'effort médical et \
soignant au cours du séjour. Ce n'est PAS nécessairement le diagnostic le plus grave.
RÈGLES PMSI STRICTES :
1. Le DP = le problème de santé qui a motivé l'admission ET mobilisé l'essentiel des soins
2. Si le patient est admis pour une pathologie aiguë (infection, fracture, embolie...), \
c'est cette pathologie aiguë qui est DP, même si le patient a des comorbidités plus sévères
3. Si le séjour est chirurgical, le DP = la pathologie justifiant l'intervention (ex: \
cholécystite pour cholécystectomie, PAS "cholécystectomie" comme DP)
4. Un symptôme (R00-R99) NE PEUT être DP QUE si aucune étiologie n'a été identifiée
5. Une comorbidité chronique (HTA, diabète, BPCO, FA) NE PEUT PAS être DP sauf si elle \
est le motif DIRECT de l'hospitalisation (ex: décompensation aiguë, poussée)
6. Les codes Z ne sont DP que pour : bilan (Z03/Z04), surveillance (Z08/Z09), \
chimiothérapie (Z51), rééducation (Z50), appareillage (Z43/Z45)
7. En cas de doute entre deux candidats : privilégier celui mentionné dans le diagnostic \
de sortie ou la conclusion du CRH
8. Tu DOIS choisir un index de la liste — JAMAIS de réponse hors liste
CANDIDATS :
{candidates_str}
@@ -455,5 +467,5 @@ Réponds UNIQUEMENT en JSON :
"confidence": "high|medium|low",
"verdict": "CONFIRMED|REVIEW",
"evidence": ["raison 1", "raison 2"],
"reason": "explication courte justifiant le choix"
"reason": "explication courte justifiant le choix selon les règles PMSI"
}}"""