Initial commit
This commit is contained in:
284
GUIDE_UTILISATION.md
Normal file
284
GUIDE_UTILISATION.md
Normal file
@@ -0,0 +1,284 @@
|
||||
# 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`
|
||||
Reference in New Issue
Block a user