Releases: GuillaumePressiat/pmsi-io
Releases · GuillaumePressiat/pmsi-io
Release list
pmsi-io v0.4.1
[0.4.1] — 2026-07-01
Nouvelle fonctionnalité — Explorateur de données
Ajout d'un onglet Explorer permettant d'analyser visuellement les résultats de requêtes RSA sans export disque.
Accès
- Bouton « Explorer ↗ » dans l'onglet Requêtes, à côté de « Filtrer & exporter »
- Fonctionne sur les requêtes pré-établies et les requêtes personnalisées
- L'onglet Explorer n'apparaît qu'après un premier clic sur « Explorer ↗ »
- Croix de fermeture (badge rond) pour masquer l'onglet et remettre l'état à zéro
Pivot table
- Sélection des axes lignes / colonnes parmi toutes les colonnes du DataFrame filtré
- Agrégations disponibles : effectif (count), somme, moyenne, minimum, maximum
- Champ valeur limité aux colonnes numériques (i32, f64…) pour les agrégations non-count
- Tri des étiquettes : alphabétique (A→Z) ou par effectif décroissant (↓)
- Affichage limité aux 30 lignes × 20 colonnes les plus représentatives
- Valeurs par défaut :
moissoren lignes,rsatypeen colonnes
Graphiques (ECharts)
- 6 types de graphiques : barres, courbes, camembert, heatmap, river et pyramide des âges
- Graphique affiché en premier, tableau croisé masqué par défaut (activable via checkbox)
- Import ECharts en mode custom build (composants sélectifs) pour réduire la taille du bundle
Architecture
- Calcul pivot entièrement côté Rust/Polars (
group_by+ agrégation sur le LazyFrame filtré) - Deux nouvelles commandes Tauri :
query_schemaetpivot_to_jsonpour les requêtes embarquées,custom_query_schemaetcustom_pivot_to_jsonpour les requêtes personnalisées query_schema: récupère le schéma (colonnes, types, nb lignes) sans sérialiser les donnéespivot_to_json: renvoie une liste plate de cellules{row_key, col_key, value}(~quelques centaines de lignes max, quelle que soit la taille du RSA filtré)- Aucune écriture sur disque — exploration en mémoire uniquement
Autres ajouts
- Tutoriel : pastilles numérotées ① à ⑥ guidant les nouveaux utilisateurs pas à pas, désactivables via « J'ai compris », réactivables depuis l'onglet Aide
- Switcher de thème : bascule clair / sombre (
ThemeToggle.svelte), persisté vialocalStorage - Progress bars : indicateurs de progression inline sous les champs répertoire pendant la décompression et le traitement des requêtes (remplace le spinner pour l'onglet conversion)
- Onglet Aide : section Explorer ajoutée à la documentation utilisateur
pmsi-io v0.4.0
Changelog pmsi::io
[0.4.0] : 2026-06-22
Résumé
pmsi::io 0.4.0 représente une extension significative de l'application et une refonte sur deux axes principaux.
Côté fonctionnalités, deux nouveaux onglets viennent enrichir l'interface :
- Requêtes : sélection et exécution de requêtes PMSI pré-établies par thématique, avec aperçu hover et lien vers le Lab'
- Requête Lab' : constructeur de requêtes personnalisées (GHM, diagnostics, actes, âge, poids, durée), sauvegarde, édition, export JSON, partage entre utilisateurs
- ces onglets requêtes utilisent les développements de requêtage déjà embarqués dans pmsi_rust depuis la version 0.2
- Notifications toast : système de notifications succès / erreur / info dans les trois onglets
- Onglet Aide : documentation utilisateur intégrée
Côté robustesse :
PmsiError: type d'erreur unifié danspmsi_rust, remplace les multiples types disparates (PolarsError,String,Box<dyn Error>) ; les erreurs remontent proprement jusqu'au frontend sans être silencieuses- Fichier absent : produit désormais une vraie erreur
FichierIntrouvableau lieu d'un DataFrame vide silencieux - Requête sans résultat : retour silencieux sans erreur, pas de fichier écrit
- Zéro
.unwrap()dans le code de production Rust - 37 tests dont 3 nouveaux tests d'erreurs indépendants des fichiers locaux
- le passage en Tauri v2 permettra une maintenance plus facile à l'avenir
Frontend (Svelte 5)
- Migration Svelte 5 : runes (
$state,$derived,$bindable), syntaxeonclickau lieu deon:click, suppression des$:réactifs - Refactoring composants :
+page.svelteréduit à l'orchestration ; logique extraite dansConversionTab.svelte,QueryTab.svelte,CustomQueryTab.svelte - Onglet Requêtes : sélection par chips avec ellipsis, groupes thématiques, requêtes pré-établies et personnalisées, preview hover, lien ↗ vers Requête Lab'
- Onglet Requête Lab' : constructeur de requêtes JSON (GHM, CIM, CCAM, âge, poids, durée), sauvegarde/édition/suppression, export JSON, copie presse-papier
- Stores partagés :
addTra,outExtensionpartagés entre les 3 onglets viastore.ts - Notifications toast : système
Toaster.svelte(succès/erreur/info), auto-dismiss 5s, coin inférieur droit - Messages requêtes : toast succès indique le nombre de requêtes exécutées dont non vides
- Onglet Aide : documentation utilisateur (hygiène numérique, conversion I/O, requêtes, Requête Lab')
- Header responsive :
flex-wrapsur fenêtre réduite - Lien mailto : fonctionnel via
tauri-plugin-shell
Backend Rust (pmsi_rust 0.4.0)
PmsiError: type d'erreur unifié (thiserror) :FichierIntrouvable,ExtensionInconnue,AnneeInvalide,ParsingPmsi,Requete,FormatInconnu,XlsxTropGrand,Polars/Io/Json(conversions automatiques),AutrePmsiResult<T>: toutes les fonctions publiques migrées ; suppression desResult<T, PolarsError>,Result<T, String>,Result<T, Box<dyn Error>>- Zéro
.unwrap()dans le code de production pmsi_read_lines: retourneErr(FichierIntrouvable)si le fichier est absent (au lieu d'un DataFrame vide silencieux)- DataFrame vide :
write_dataframe_to_somefilene tente pas d'écrire si 0 lignes, retour silencieux sans erreur - Tests : 3 tests d'erreurs dans
test_errors.rsindépendants des fichiers locaux ; 37 tests au total - CLI :
pmsi_rust_cli()retournePmsiResult<()>, messages d'erreur propres viaeprintln!
Tauri bridge
- Erreurs Rust → UI : commandes Tauri retournent de vrais
Err(String); suppression de la logiqueOk(Attention: ...)et decolorize_errors - Dépendance
regexsupprimée desrc-tauri/Cargo.toml query_rsa(): propagation correcte dePmsiResultvia.map_err(|e| e.to_string())?
Infrastructure
- Tauri v2 : migration depuis Tauri v1
- Vite : bumpé à
^5.4.3(corrige CVEserver.fs.deny) - CSS partagé : classes communes (
pmsi-select,pmsi-toggle, etc.) extraites dansapp.postcss - Version :
0.4.0danstauri.conf.json,package.json,src-tauri/Cargo.toml,Logo.svelte
pmsi-io v0.2.2
Changements
- polars update 0.53.0 (pmsi-clio, pmsi-io)
- Intégration des formats pour la lecture du PMSI MCO 2026 (pmsi-clio, pmsi-io)
- npm audit vulnerabilities (pmsi-io)
pmsi-io v0.2.1
pmsi-io v0.2.0
Nouveautés
Arrière plan
- prêt pour Druides : Lecture des fichiers générés par druides de manière transparente (mois sur 2 caractères, etc.)
- pmsi_rust est en v0.2.0, gestion d'options de manière dynamique via NoyauOptions et détection automatique du type de fichier (genrsa vs druides)
Interface utilisateur
- une fois un découpage effectué, tous les paramètres de l'UI sont sauvegardés dans un répertoire propre à l'application pmsi-io (windows : AppData\com.pmsi-io.dev, Mac Library/Application Support/com.pmsi-io.dev, etc.)
- au redémarrage, les paramètres sont tous rechargés de manière identique à la précédente session
- transparence : l'opacité de la fenêtre passe de 96% à 94% (sur systèmes unix uniquement)
pmsi-io v0.1.10
Nouveautés
- majeure : montée de version (à jour) pola.rs 0.51
- mineure : intégration des formats pour transmission à partir de 2025 M03
Changements
- gestion de la tâche de découpage du bouton "Go" sous-traitée avec tokio::spawn_blocking pour rendre indépendant le process tokio de Tauri du traitement des données avec pola-rs. Partage des paramètres (année, mois, finess) entre les thread avec Arc/Mutex pour gérer le borrowing / references.
- ce changement a été rendu obligatoire par l'évolution interne de pola-rs et ses effets de bords (modifications de la gestion des thread tokio avec async, sans doute pour leur engine de streaming)
pmsi::io v0.1.8
Nouveautés
- gestion effective de 2025 (début d'année, avant m03)
- affichage de la version au survol du logo
- montée de version (à jour) pola.rs 0.46
- version cli intégrée dans cette release (pmsi-clio), pour utiliser l'outil en ligne de commande dans le terminal (
pmsi-clio -h)
Améliorations
- gestion simplifiée du découpage partie variable
- meilleure performance en temps de lecture (surtout rsa et rum, sur macOS)
pmsi-io v0.1.8
Nouveautés
- gestion de 2025 (début d'année, avant m03)
- affichage de la version au survol du logo
- montée de version (à jour) pola.rs 0.46
- version cli intégrée dans cette release (pmsi-clio), pour utiliser l'outil en ligne de commande dans le terminal (
pmsi-clio -h)
Améliorations
- gestion simplifiée du découpage partie variable
- meilleure performance en temps de lecture (surtout rsa et rum, sur macOS)
v0.1.7
Prise en charge des entiers formatés avec des espaces (et non pas des leading zeros)


