# Spécification : Amélioration de l'interface d'affichage des résultats TIM ## 1. Vue d'ensemble L'interface actuelle affiche les résultats d'analyse de manière très basique et textuelle. Cette spécification vise à transformer cette interface en un outil professionnel et ergonomique pour les codeurs médicaux, avec une visualisation claire des codes, des preuves et des documents sources. ## 2. Analyse de l'interface actuelle (basée sur l'image fournie) ### 2.1 Ce qui existe - Affichage du type de document et temps de traitement (10.8s) - Informations démographiques du séjour (sexe M, âge 58 ans, dates, poids 72kg, taille 178cm, IMC 22.724) - Alertes de codage (CIM-10 DAS M62.64 absent du dictionnaire) - Diagnostic principal K80.0 avec libellé et badge "Sévère" ### 2.2 Problèmes identifiés - **Présentation textuelle** : Tout est affiché en texte brut, peu visuel - **Pas de vue d'ensemble** : Impossible de voir tous les codes (DP, DR, DAS, CCAM) en un coup d'œil - **Pas de preuves visibles** : Aucun lien vers les documents sources qui justifient les codes - **Navigation inexistante** : Impossible de naviguer entre codes et documents - **Pas de contexte clinique** : Les faits cliniques extraits ne sont pas affichés - **Alertes peu visibles** : Les alertes de codage sont noyées dans le texte - **Pas d'actions possibles** : Pas de boutons pour corriger, valider ou commenter ## 3. Exigences fonctionnelles ### 3.1 Vue d'ensemble du séjour **User Story** : En tant que codeur médical, je veux voir toutes les informations essentielles du séjour en un coup d'œil pour comprendre rapidement le contexte. **Critères d'acceptation :** - Afficher une carte récapitulative en haut de page - Inclure : identifiant séjour, âge, sexe, IMC, dates entrée/sortie, durée, mode d'entrée, spécialité, temps de traitement - Utiliser des icônes pour rendre l'information plus visuelle - Afficher un indicateur de complétude du codage - Mettre en évidence les alertes critiques avec un badge rouge ### 3.2 Affichage structuré des codes proposés **User Story** : En tant que codeur médical, je veux voir tous les codes proposés (DP, DR, DAS, CCAM) organisés de manière claire pour valider rapidement le codage. **Critères d'acceptation :** - Créer 4 sections distinctes : DP, DR, DAS, CCAM - Pour chaque code afficher : code, libellé, badge de confiance coloré, nombre de preuves, badge de sévérité, boutons d'action - Utiliser des cartes visuelles avec bordure colorée selon le type - Permettre de replier/déplier chaque section - Afficher les alertes de codage directement sur les codes concernés ### 3.3 Visualisation des preuves et documents sources **User Story** : En tant que codeur médical, je veux voir les preuves qui justifient chaque code pour valider la pertinence du codage. **Critères d'acceptation :** - Créer un panneau "Preuves" qui s'affiche au clic sur "Voir preuves" - Pour chaque preuve afficher : type de document source, extrait de texte pertinent (±100 caractères), position, bouton "Voir dans le document" - Mettre en évidence le texte extrait avec un fond jaune - Permettre de naviguer entre les preuves avec des flèches ←/→ - Afficher un score de qualité de la preuve (directe, indirecte, inférée) ### 3.4 Affichage des documents sources **User Story** : En tant que codeur médical, je veux consulter les documents sources complets pour vérifier le contexte des preuves. **Critères d'acceptation :** - Créer un panneau "Documents" qui liste tous les documents du séjour - Pour chaque document afficher : type, date de création, auteur, badge avec nombre de preuves extraites - Permettre d'ouvrir un document dans un panneau dédié - Dans le document ouvert : mettre en évidence les zones citées comme preuves avec code couleur par type (DP=bleu, DR=vert, DAS=orange, CCAM=violet) - Afficher des tooltips au survol des zones mises en évidence - Permettre de faire défiler automatiquement vers une preuve spécifique ### 3.5 Affichage des faits cliniques extraits **User Story** : En tant que codeur médical, je veux voir les faits cliniques extraits par le système pour comprendre son raisonnement. **Critères d'acceptation :** - Créer un endpoint API `/stays/{stay_id}/clinical-facts` qui retourne les faits cliniques extraits organisés par catégorie avec preuves et scores de confiance - Créer une section "Faits cliniques" dans l'interface - Afficher les faits organisés par catégorie avec : texte du fait, catégorie (avec icône), score de confiance, lien vers la preuve - Permettre de filtrer par catégorie - Mettre en évidence les faits utilisés pour le codage ### 3.6 Gestion des alertes de codage **User Story** : En tant que codeur médical, je veux voir clairement les alertes de codage pour corriger les problèmes rapidement. **Critères d'acceptation :** - Créer une section "Alertes" en haut de page - Pour chaque alerte afficher : type d'alerte, code concerné, description du problème, suggestion de correction, bouton "Corriger maintenant" - Utiliser un code couleur : Rouge (alerte critique), Orange (avertissement), Jaune (information) - Afficher un compteur d'alertes dans l'en-tête - Permettre de masquer les alertes résolues ### 3.7 Actions de correction et validation **User Story** : En tant que codeur médical, je veux pouvoir corriger, commenter et valider les codes directement depuis l'interface. **Critères d'acceptation :** - Pour chaque code, afficher des boutons d'action : "Corriger", "Commenter", "Valider" - Le formulaire de correction doit permettre de : saisir un nouveau code, saisir un nouveau libellé (auto-complété), ajouter un commentaire, enregistrer avec horodatage - Afficher les corrections précédentes avec : code original → code corrigé, utilisateur et date, commentaire - Ajouter des boutons de validation globale : "Valider le dossier" (vert), "Rejeter le dossier" (rouge), "Marquer à revoir" (orange) ### 3.8 Vue multi-panneaux (layout amélioré) **User Story** : En tant que codeur médical, je veux voir simultanément les codes, les preuves et les documents pour travailler efficacement. **Critères d'acceptation :** - Créer une disposition en 3 colonnes : gauche (30% - codes et alertes), centrale (40% - documents sources), droite (30% - détails code, preuves, faits cliniques) - Rendre les colonnes redimensionnables avec des séparateurs draggables - Permettre de masquer/afficher chaque colonne - Sauvegarder la disposition dans le localStorage - Sur mobile/tablette, passer en mode onglets ### 3.9 Recherche et filtres **User Story** : En tant que codeur médical, je veux pouvoir rechercher et filtrer les informations pour trouver rapidement ce que je cherche. **Critères d'acceptation :** - Ajouter une barre de recherche globale en haut de page - Permettre de rechercher dans : codes (code ou libellé), documents sources, faits cliniques - Mettre en évidence les résultats de recherche - Ajouter des filtres pour : type de code, niveau de confiance, présence d'alertes, type de document - Afficher le nombre de résultats trouvés ### 3.10 Export et impression **User Story** : En tant que codeur médical, je veux pouvoir exporter et imprimer les résultats pour archivage ou partage. **Critères d'acceptation :** - Ajouter un bouton "Exporter" avec options : PDF (vue complète), JSON (données brutes), Excel (tableau des codes) - Optimiser la mise en page pour l'impression : masquer éléments interactifs, ajuster couleurs pour N&B, ajouter sauts de page - Inclure dans l'export : en-tête avec infos séjour, tous les codes avec preuves, alertes, corrections, pied de page avec date et utilisateur ## 4. Exigences non fonctionnelles ### 4.1 Performance - Temps de chargement initial < 2 secondes - Navigation entre codes instantanée (<100ms) - Rendu fluide même avec 50+ documents - Lazy loading des documents (chargement à la demande) ### 4.2 Ergonomie - Interface intuitive, pas de formation nécessaire - Raccourcis clavier pour les actions fréquentes - Feedback visuel immédiat sur toutes les actions - Messages d'erreur clairs et constructifs ### 4.3 Accessibilité - Navigation au clavier complète - Support des lecteurs d'écran (ARIA labels) - Contraste suffisant (WCAG AA minimum) - Taille de police ajustable ### 4.4 Compatibilité - Support des navigateurs modernes (Chrome, Firefox, Safari, Edge) - Interface responsive (desktop, tablette, mobile) - Pas de dépendances externes lourdes ### 4.5 Maintenabilité - Code JavaScript modulaire et documenté - Séparation claire HTML/CSS/JS - Composants réutilisables - Tests unitaires pour les fonctions critiques ## 5. Contraintes techniques ### 5.1 Technologies imposées - HTML5, CSS3, JavaScript vanilla (pas de framework lourd type React/Vue) - API REST FastAPI existante - Base de données SQLite existante - Pas de modification du pipeline de traitement ### 5.2 Compatibilité avec l'existant - Réutiliser les endpoints API existants autant que possible - Ne pas casser les fonctionnalités actuelles - Maintenir la compatibilité avec les données existantes - Respecter le schéma de base de données actuel ### 5.3 Sécurité - Pas d'exposition de données sensibles dans le HTML - Validation côté serveur de toutes les entrées - Respect des règles RGPD pour les données médicales - Chiffrement des exports si nécessaire ## 6. Hors périmètre Les éléments suivants ne sont PAS inclus dans cette spécification : - Modification du pipeline de traitement (segmentation, extraction, codage) - Ajout de nouveaux algorithmes de codage - Modification du schéma de base de données - Authentification et gestion des utilisateurs - Intégration avec des systèmes externes (DPI, T2A, etc.) - Traitement de nouveaux types de documents ## 7. Critères de succès Le projet sera considéré comme réussi si : - Tous les critères d'acceptation sont satisfaits - L'interface permet de visualiser un séjour complet en moins de 30 secondes - Le temps de validation d'un code est réduit de 50% par rapport à l'interface actuelle - Les codeurs peuvent naviguer entre codes et preuves sans ouvrir de modals - Aucune régression sur les fonctionnalités existantes - Les tests d'interface passent à 100%