HormoneTrack/docs/CHANGELOG.md
Siphonight 5c5d9c542a v1.1.0 : suivi THS avec courbes E2/T, modèles Estrannaise & Transfem Science, calibration labs, rappels (GT 3), backup JSON, FR/EN
- Moteur PK par tables horaires (8001 h) extraites de Estrogen.ods + Bateman fallback
- Lookup profils insensible à la casse (fix courbes EEn plates)
- Conversion unités T (ng/dL, ng/L, nmol/L -> ng/mL)
- Édition des doses + override d'ester par injection
- 30 tests unitaires dont régression sur données réelles
- UI Compose Material 3, i18n FR/EN, sauvegarde JSON SAF
2026-09-05 16:32:44 +02:00

2.6 KiB
Raw Blame History

Changelog — HormoneTrack

Format : Keep a Changelog. Versionnage : SemVer.

[1.1.0] — 2026-09-05 (versionCode 2)

Corrigé

  • Courbes EEn plates à zéro (le bug rapporté : « les graphiques ne se génèrent pas »). Cause : casse des clés de profils — l'asset JSON (verbatim du .ods) contient "EEn_ese"/"EEn_tfs" (n minuscule) alors que la constante Esters.EEN = "EEN" ; le lookup exact échouait silencieusement → sample() = 0 pour tous les traitements EEn (EV et EU marchaient, ce qui masquait le bug). Fix : lookup insensible à la casse dans PKProfileStore (lookup()), test de régression épinglé sur les données réelles de l'utilisatrice (RegressionUserCaseTest, export v1.0.0 fourni).
  • Unités de testostérone : les labs T pouvaient être saisis en ng/dL (cas réel : 33 et 44 ng/dL). L'axe T du chart mélangeait alors des ng/dL avec des estimations en ng/mL (erreur ×100, courbe T invisible) et la calibration T aurait été faussée d'un facteur 100. Fix : PharmacokineticEngine.convertTToNgMl() (ng/dL → ×0,01 ; ng/L → ×0,001 ; nmol/L → ×0,2884 ; ng/mL inchangé), appliqué à l'affichage (à intégrer dans le rendu du chart) et à la calibration.

Ajouté

  • Édition des doses (le bug rapporté : « on ne peut pas modifier les entrées d'injection ») : appuyer sur une ligne de l'écran Doses ouvre le dialog en mode édition (traitement, dose, date/heure, notes) → enregistre sans recréer.
  • Choix de l'ester par injection dans le dialog de dose (comme dans le .ods) : « Défaut (EEn) », EV, EU, EEn — override stocké par dose, utilisé par le moteur PK.
  • 6 tests de régression sur les données réelles de l'utilisatrice (30 tests au total).

Technique

  • versionCode 2, versionName 1.1.0 ; APK debug régénérée.

[1.0.0] — 2026-09-05 (versionCode 1)

Première version fonctionnelle :

  • Courbes estimées E2/T heure par heure (24 h / 7 j / 30 j), modèles Estrannaise et Transfem Science (tables horaires extraites de Estrogen.ods : EV/EU/EEn)
  • Modèle Bateman paramétrable (gel/patch/oral)
  • Log des doses, analyses de sang, calibration (facteur d'échelle médian lab÷prédiction)
  • Estimation T empirique calibrable
  • Rappels quotidiens (alarmes exactes) avec actions « Pris » / « Reporter 1 h », notifications remontant sur Huawei Watch GT 3 (Gadgetbridge ou Huawei Health)
  • Sauvegarde/Restauration JSON (SAF), FR/EN (langue par app), 100 % local
  • 24 tests unitaires (moteur PK, profils ODS, round-trip backup)