Files
aivanov_CIM/GUIDE_UTILISATION.md
2026-03-05 01:20:14 +01:00

7.2 KiB

Guide d'Utilisation - Pipeline MCO PMSI

📋 Vue d'ensemble

Ce guide explique comment utiliser le pipeline de codage MCO PMSI pour analyser des documents cliniques et obtenir des propositions de codes.

🚀 Démarrage rapide

1. Préparer vos documents

Créez un répertoire avec vos documents cliniques :

mkdir -p data/sejours/STAY001

Placez vos documents dans ce répertoire (formats supportés : .txt, .pdf) :

  • cr_operatoire.pdf - Compte-rendu opératoire
  • cr_medical.pdf - Compte-rendu médical
  • imagerie.pdf - Résultats d'imagerie
  • etc.

Formats de documents supportés :

  • Fichiers texte (.txt) : Format simple, directement lisible
  • Fichiers PDF (.pdf) : Extraction automatique du texte
    • Les PDF protégés par mot de passe ne sont pas supportés
    • Les PDF "image" (scannés sans OCR) ne contiennent pas de texte extractible
  • Fichiers .oxps : Non supportés actuellement

Si un fichier ne peut pas être lu, il sera automatiquement ignoré et le traitement continuera avec les autres documents.

Types de documents supportés :

  • Comptes-rendus opératoires (CRO)
  • Comptes-rendus médicaux (CRM)
  • Comptes-rendus d'hospitalisation (CRH)
  • Comptes-rendus de consultation
  • Comptes-rendus d'urgences
  • Imagerie
  • Biologie
  • Courriers médicaux
  • Anatomopathologie (ANAPATH)
  • Bactériologie (BACTERIO)

2. Traiter un séjour

Utilisez le script process_stay.py pour analyser les documents :

python scripts/process_stay.py \
  --stay-id STAY001 \
  --documents-dir data/sejours/STAY001 \
  --specialty chirurgie \
  --admission-date 2024-01-15 \
  --discharge-date 2024-01-20

Options disponibles :

  • --stay-id : Identifiant unique du séjour (obligatoire)
  • --documents-dir : Répertoire contenant les documents
  • --documents : Liste de fichiers spécifiques
  • --specialty : Spécialité médicale (défaut: chirurgie)
  • --admission-date : Date d'admission (format: YYYY-MM-DD)
  • --discharge-date : Date de sortie (format: YYYY-MM-DD)
  • --db-url : URL de la base de données (défaut: SQLite local)

Exemple avec fichiers spécifiques :

python scripts/process_stay.py \
  --stay-id STAY002 \
  --documents doc1.txt doc2.txt doc3.txt \
  --specialty medecine

3. Consulter les résultats

Une fois le traitement terminé, lancez l'interface web :

python scripts/start_api.py

Ouvrez votre navigateur sur http://localhost:8001 et recherchez votre séjour.

📁 Structure des données

Organisation recommandée

data/
├── sejours/
│   ├── STAY001/
│   │   ├── cr_operatoire.txt
│   │   ├── cr_medical.txt
│   │   └── imagerie.txt
│   ├── STAY002/
│   │   └── cr_hospitalisation.txt
│   └── ...
├── referentiels/
│   ├── CCAM_V81.xls
│   ├── cim10_2024.txt
│   └── guide_mco_2024.pdf
└── exports/
    └── audits/

Format des documents

Les documents doivent être au format texte brut (.txt) avec encodage UTF-8.

Exemple de contenu (cr_operatoire.txt) :

COMPTE-RENDU OPÉRATOIRE

Patient : [ANONYMISÉ]
Date : 15/01/2024
Chirurgien : Dr. Martin

Diagnostic préopératoire : Appendicite aiguë

Intervention réalisée : Appendicectomie par laparoscopie

Description :
Patient opéré sous anesthésie générale pour appendicite aiguë.
Abord par laparoscopie. Appendice inflammatoire avec signes de péritonite localisée.
Appendicectomie réalisée sans complication.

Suites opératoires : Simples

🔄 Workflow complet

Étape 1 : Import des référentiels (une seule fois)

# Importer le référentiel CCAM
python scripts/import_ccam.py data/referentiels/CCAM_V81.xls

# TODO: Scripts pour CIM-10 et Guide MCO à venir

Étape 2 : Traitement des séjours

# Traiter plusieurs séjours
for stay_dir in data/sejours/*/; do
    stay_id=$(basename "$stay_dir")
    python scripts/process_stay.py \
      --stay-id "$stay_id" \
      --documents-dir "$stay_dir"
done

Étape 3 : Validation TIM

  1. Lancer l'interface : python scripts/start_api.py
  2. Ouvrir http://localhost:8001
  3. Rechercher le séjour
  4. Examiner les codes proposés et leurs preuves
  5. Corriger si nécessaire
  6. Valider le dossier

Étape 4 : Export des audits

Via l'interface web ou en ligne de commande :

from pipeline_mco_pmsi.audit.audit_logger import AuditLogger
from pipeline_mco_pmsi.database.base import get_session

with get_session() as session:
    logger = AuditLogger(db_session=session)
    audit = logger.export_audit_trail(stay_id="STAY001", include_pii=False)
    
    # Sauvegarder
    with open("audit_STAY001.json", "w") as f:
        f.write(audit.model_dump_json(indent=2))

🎯 Cas d'usage

Cas 1 : Séjour chirurgical simple

# Documents : CRO uniquement
python scripts/process_stay.py \
  --stay-id CHIR001 \
  --documents data/sejours/CHIR001/cro.txt \
  --specialty chirurgie

Cas 2 : Séjour médical complexe

# Documents : CRM + imagerie + biologie + courriers
python scripts/process_stay.py \
  --stay-id MED001 \
  --documents-dir data/sejours/MED001 \
  --specialty cardiologie

Cas 3 : Séjour avec contradictions

Le pipeline détecte automatiquement les contradictions entre documents et génère des questions pour le TIM.

🔧 Configuration avancée

Base de données PostgreSQL

Pour utiliser PostgreSQL en production :

python scripts/process_stay.py \
  --stay-id STAY001 \
  --documents-dir data/sejours/STAY001 \
  --db-url postgresql://user:password@localhost/pipeline_mco

Personnalisation des règles

Modifiez les fichiers de règles dans config/rules/ :

# config/rules/custom_rules.yaml
mode: conservateur
rules:
  - name: "Pas de DP sur antécédent"
    enabled: true
    severity: bloquant
  - name: "Vérification dates CCAM"
    enabled: true
    severity: bloquant

📊 Métriques et monitoring

Consulter les métriques

from pipeline_mco_pmsi.metrics.metrics_collector import MetricsCollector

collector = MetricsCollector()
metrics = collector.calculate_metrics(stay_ids=["STAY001", "STAY002"])

print(f"Taux d'acceptation TIM: {metrics.tim_acceptance_rate}%")
print(f"Codes sans preuve: {metrics.codes_without_evidence_pct}%")

🐛 Dépannage

Problème : "Port 8001 déjà utilisé"

# Spécifier un autre port
python scripts/start_api.py --port 9000

Problème : "Aucun code proposé"

Vérifiez que :

  1. Les documents contiennent du texte médical
  2. Les référentiels sont importés
  3. Le modèle LLM est configuré

Problème : "Erreur de base de données"

# Réinitialiser la base de données
rm pipeline_mco_pmsi.db
python scripts/process_stay.py --stay-id TEST001 --documents test.txt

📚 Ressources

  • Documentation API : http://localhost:8001/docs
  • Code source : src/pipeline_mco_pmsi/
  • Tests : tests/
  • Spécifications : .kiro/specs/pipeline-mco-pmsi-codage/

🆘 Support

Pour toute question ou problème :

  1. Consultez les logs dans logs/
  2. Vérifiez les tests : pytest tests/
  3. Consultez la documentation technique dans src/pipeline_mco_pmsi/api/README.md