# 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 : ```bash 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 : ```bash 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 :** ```bash 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 : ```bash 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) ```bash # 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 ```bash # 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 : ```python 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 ```bash # 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 ```bash # 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 : ```bash 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/` : ```yaml # 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 ```python 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Ă©" ```bash # 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" ```bash # 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`