#!/usr/bin/env python3 """ Script pour améliorer le reasoning des codes de test. """ from pipeline_mco_pmsi.database.base import get_engine, get_session_factory from pipeline_mco_pmsi.database.models import StayDB, CodeDB def update_reasoning(): """Mettre à jour le reasoning des codes de test.""" engine = get_engine() session_factory = get_session_factory(engine) db = session_factory() try: # Récupérer le séjour TEST001 stay = db.query(StayDB).filter(StayDB.stay_id == "TEST001").first() if not stay: print("Séjour TEST001 non trouvé") return # Récupérer les codes codes = db.query(CodeDB).filter(CodeDB.stay_id == stay.id).all() for code in codes: if code.type == "dp" and code.code == "K35.8": code.reasoning = """Le diagnostic principal K35.8 (Appendicite aiguë, autres et sans précision) est justifié par : - Présence de douleurs abdominales aiguës dans la fosse iliaque droite - Signes cliniques d'appendicite confirmés à l'examen - Intervention chirurgicale réalisée (appendicectomie) - Confirmation anatomopathologique de l'appendicite aiguë - Absence de complications (pas de péritonite, pas d'abcès) Ce code correspond au motif principal d'hospitalisation et à la pathologie ayant mobilisé l'essentiel des ressources.""" elif code.type == "ccam": code.reasoning = """L'acte CCAM est justifié par : - Réalisation effective de l'intervention chirurgicale - Technique chirurgicale : appendicectomie par laparoscopie - Durée opératoire : environ 45 minutes - Anesthésie générale - Absence de complications per-opératoires - Geste technique principal du séjour Cet acte correspond à la prise en charge chirurgicale du diagnostic principal.""" db.commit() print("✅ Reasoning mis à jour avec succès") # Afficher les résultats for code in codes: print(f"\n{code.type.upper()} {code.code}:") print(f" Reasoning: {code.reasoning[:100]}...") finally: db.close() if __name__ == "__main__": update_reasoning()