60 lines
2.2 KiB
Python
60 lines
2.2 KiB
Python
#!/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()
|