Skip to content

v2.5.12: Retrospective Missed Dose Management and 48-Hour Clinical Integrity Guard

Latest

Choose a tag to compare

@saad2134 saad2134 released this 30 Oct 11:21
d46d3c2

v2.5.12: Retrospective Missed Dose Management and 48-Hour Clinical Integrity Guard

Summary of Changes

Release v2.5.12 introduces retrospective dose management on the Schedule calendar screen, enabling patients to mark past missed doses as taken or skipped within a 48-hour clinical integrity window. This release maintains strict adherence and inventory synchronization by automatically decrementing medicine stock, tagging retrospective logs for doctor audit transparency, and locking older entries to preserve clinical history authenticity. It also introduces customizable reminder alert styles (alarms versus notifications), visual form field validation, spray medication formulation support, and full schema parity across all app layers.

⚠️ Note for existing GitHub APK users:
Because Dosezy v2.4.2+ transitions to our official production release signing key (required for Google Play), updating directly over older debug-signed APKs requires a quick backup & reinstall:

  1. In Dosezy, go to Menu -> Backup & Restore and tap Export/Create Backup.
  2. Uninstall the older version.
  3. Install the new v2.5.12 APK.
  4. Go to Menu -> Backup & Restore and tap Restore Backup to restore all profiles, medicines, and history in 1 tap.

📱 Patient App (Android)

  • Retrospective Missed Dose Management on Calendar (#109):
    • Enabled interactive dose actions on past calendar dates from the Schedule screen, resolving the issue where historical entries were entirely read-only.
    • Implemented an interactive action bottom sheet allowing patients to mark missed doses as taken, mark doses as skipped with a clinical reason, append or edit dose notes, or revert an accidental dose status.
    • Added smart time selector behavior in RecordDoseTimeDialog for past dates, defaulting intake time to the scheduled dose time and hiding "Just Now" to prevent recording yesterday's dose with today's timestamp.
  • 48-Hour Clinical Integrity and Anti-Tampering Guard:
    • Implemented a 48-hour clinical grace window that permits retrospective logging for yesterday and today while permanently locking entries older than 48 hours to prevent "white-coat compliance" record falsification before doctor consultations.
    • Displays a high-visibility locked indicator badge and explanatory message on calendar cards for doses outside the 48-hour window.
  • Automated Adherence Audit Tagging:
    • Appends an automated [Logged retrospectively] audit tag to dose notes when a missed dose is marked as taken after the fact, ensuring full transparency in PDF export reports shared with physicians.
    • Automatically cleanses retrospective audit tags when an entry is reverted back to pending.
  • Inventory Stock Synchronization:
    • Transitioning a historical missed dose to taken automatically decrements current medicine inventory stock, ensuring the physical pill bottle count matches the app.
    • Undoing a dose action restores the deducted stock back to inventory in an atomic transaction.
  • Customizable Reminder Styles (Alarms vs Notifications) (#111):
    • Introduced the option to select whether dose alerts ring as full-screen alarms (with continuous ringtones that bypass Do Not Disturb) or standard notification banners with chimes (respecting Do Not Disturb).
    • Configurable globally in user preferences as well as granularly per medication, allowing critical medicines to ring alarms while supplements deliver gentle notifications.
  • Missing and Invalid Form Field Validation Feedback (#116):
    • Enhanced form validation across medication and user profile screens with immediate red highlight borders and descriptive error labels under invalid or missing required fields.
    • Eliminates ambiguity caused by disabled save buttons by guiding users directly to what needs correction.
  • Spray Formulation Support (#114):
    • Added dedicated SPRAY dosage unit and custom spray bottle shape icon for nasal, throat, and topical sprays.
  • Simultaneous Cohort "Take All" Reliability (#115):
    • Resolved a race condition where marking large cohorts of medications scheduled for the exact same minute dropped trailing entries, ensuring all co-scheduled medicines are recorded atomically.
  • Slide to Snooze Duration Preference Fix (#113):
    • Fixed a defect where the "Slide to Snooze" confirmation button defaulted to 10 minutes and ignored user snooze duration settings due to stale pointer gesture callback capture.
    • Implemented rememberUpdatedState in SlideToConfirmButton to ensure pointer drag completions always invoke the latest selected duration.
    • Forwarded EXTRA_SNOOZE_MINUTES through alarmIntent to initialize the alarm activity UI with the user's configured duration immediately on frame 1 before database loading finishes.
  • 100% Translations Parity Across 12 Locales:
    • Maintained complete, localized strings across Arabic, Bengali, German, Spanish, French, Hindi, Italian, Japanese, Portuguese, Russian, and Chinese.
    • Added automated test assertions to enforce 100% translatable key parity, format specifier safety, and non-empty localized strings.
  • Cross OpenAPI and Backup Schema Parity:
    • Aligned Room models, BackupRestoreManager, DataExporter, and api/openapi.yaml with full bidirectional support for reminderType and PillShape.SPRAY.

🔍 Full Changelog & Compare

Compare v2.5.11...v2.5.12