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

285 lines
7.2 KiB
Markdown

# 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`