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ératoirecr_medical.pdf- Compte-rendu médicalimagerie.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
- Lancer l'interface :
python scripts/start_api.py - Ouvrir http://localhost:8001
- Rechercher le séjour
- Examiner les codes proposés et leurs preuves
- Corriger si nécessaire
- 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 :
- Les documents contiennent du texte médical
- Les référentiels sont importés
- 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 :
- Consultez les logs dans
logs/ - Vérifiez les tests :
pytest tests/ - Consultez la documentation technique dans
src/pipeline_mco_pmsi/api/README.md