Release Notes
Version & History
This page shows the release history of VentOCR, including feature additions,
workflow changes, and major architectural updates. Important versions can also
include direct links to the related GitHub release or repository page.
Current Version: 0.5.5
NAVA v1.1 performance optimization, SplitTwoBreath module, upload/label UI overhaul
- NAVA v1.1 engine created with gc.collect() removal, OCR batch accumulation, .npy save elimination, and frame streaming via generator
- Main.py streaming path added: frames yielded one-by-one for v1.1+ engines, legacy list path preserved for v1.0
- Archive copy optimized by excluding .npy files and npy directories (23 GB → 1.2 GB copy reduction)
- SplitTwoBreath_VentOCR module added: splits Two_Breath alerts into 2 breaths using deepest Volume waveform valley
- SplitTwoBreath updates Frames.csv, Breaths.csv, and BreathCSVs with full BreathNumber shift and value recalculation
- Label page: Custom Fields section replaced with Breath List table showing BreathNumber and Alert with clickable row navigation
- Label page: Alerts Only filter button added to show only Two_Breath and Fragment entries
- Label page: frame viewer autoplay added at 10 FPS after preload with play/pause button and frame counter
- Upload page redesigned with drag-and-drop zone, multi-file queue, and two-column progress display (Queued vs Completed)
- Upload page: file type restriction removed to accept all files; server-side validation added for dangerous extensions, binary signatures, and script content inspection
- Video Analysis page: analyzed files hidden by default with Show Analyzed Files checkbox to include them in the dropdown
- Engine Selection onclick fix: JSON.stringify double-quote collision resolved for engine card click handlers
- base.html: removed orphaned updateAnalyzeIdDisplay references causing SyntaxError on all pages
- Terms of Use page added at /terms with full legal text and navigation link under Help menu
Engine versioning support and NAVA v1.1 engine registration
- Engine.Version column added via migrate_006 to support engine version tracking
- Analysis.Engine_Version column added to record which engine version was used for each analysis
- Engine version displayed in Engine Selection UI: detail panel info grid and engine card subtitle
- NAVA v1.1 engine (nava_ventocr_v1_1) registered via migration with same ventilator mappings as v1.0
Module execution visibility, queue management, and UI consistency improvements
- Docker volume mount for Module/ directory fixed to resolve FileNotFoundError in module execution
- PYTHONPATH=/app added to docker-compose environment for both dev and release, enabling Global_Setting import from Module/Engine subprocesses
- Archive Study video table now dynamically displays completed module columns per Analyze_ID with numbered headers and legend
- save_to_memo functionality removed: module execution no longer appends tags to Analysis.Memo field
- Analyze page (analyze.html) redesigned to match engine_select layout system (panels, gradient headers, unified button/table styles)
- Current Context label removed from sidebar navigation
- Server management page added (/server) with Clear All Queue functionality for direct Cue table operations
- Queue API extended to return finished_at timestamp; Analyze page queue table now shows Finished and Elapsed (HH:MM:SS) columns
Module system introduction and secondary analysis pipeline redesign
- Module directory structure introduced (Module/) to replace the legacy Lib/ layout
- Four bundled sample modules added: EdiCorrection_VentOCR, Smoothing_VentOCR, SplitBreath_VentOCR, WaveSlice_VentOCR
- README documentation added for each bundled module
- DB migration 004 added: Modules, Module_Engine_Map, and Analysis_Module_Run tables introduced
- Module registry is now database-driven, with Engine-to-Module mapping managed via Module_Engine_Map
- New /modules/study/<study_id> route added for Study-based batch module execution UI
- New /run_modules_batch API endpoint added to queue multiple modules across multiple Analyze_IDs in a single request
- Queue worker extended with module task support: execute_single_module, run_module_task, and related helpers
- Module execution tracks run lifecycle (queued → running → done / error) in Analysis_Module_Run table
- Optional save_to_memo flag allows module result summary to be appended to the analysis memo field
- Engine consistency enforced: batch module execution blocked if selected Analyze_IDs belong to different engines
- Legacy /report route updated to /report/<analyze_id> with analyze_id parameter
- modules.html template added as the Study-level module execution interface
- secondary_analysis.html removed as it was superseded by the new module system
Archive study save feedback improvement and UI usability enhancement
- Archive study Save action now displays a popup notification on successful save
- Error handling improved by showing a popup alert when save operation fails
- User feedback enhanced to clearly indicate completion of save operations
- Reduced user uncertainty by adding explicit visual confirmation after data updates
Development/Release environment separation and visual differentiation
- Development and Release environments fully separated using dual Docker configurations
- Independent service routing established for dev.ventocr.com (developer) and ventocr.com (production)
- Base template updated to dynamically detect host environment (dev vs production)
- Developer environment UI color scheme changed to red-based theme (RGB 220-95-83) for clear visual distinction
- Production environment UI color scheme preserved as existing blue-based theme
- Application title dynamically switches to "(dev) VentOCR" in developer environment
- Risk of accidental operation on wrong environment reduced through visual environment awareness
- Environment-dependent UI behavior implemented without requiring additional backend configuration
- Foundation established for future environment-specific feature toggling and debugging visibility
Archive study management UI refinement and Study Name support
- Archive index filters simplified by removing Unassigned only, Has incomplete, and Has memo checkboxes
- Create Study UI added to Archive index with Study Name input and direct study creation flow
- Study table structure extended to support Study_Name as a user-editable display field
- Archive study creation API updated to auto-assign numeric Study_Id per user while storing Study_Name separately
- Archive study detail page updated to display Study Name as an editable text field
- Existing Study save workflow expanded to save Study Name together with vent datetime fields and study memo
- Archive study header adjusted to show Study ID in a quieter label style
- Study list and detail handling aligned with the new separation between internal numeric Study ID and user-facing Study Name
Developer information page and version history page added
- Developer page added as an independent help page
- Version & History page added as a dedicated release notes page
- Version history can now be rendered dynamically from CHANGELOG.json
- Help navigation updated to include Developer and Version & History pages
Docker-based deployment foundation and runtime structure reorganization
- VentOCR runtime structure reorganized for Docker-based deployment
- Application startup flow updated to support container execution
- Persistent data handling separated from the image design, including externalized user workspace strategy
- Database bootstrap direction clarified so a new environment can initialize required tables when Main.db is absent
- Development environment and Docker-based release environment separated more clearly
- Docker Compose based service startup flow prepared for reproducible deployment
- GPU-enabled container execution path verified for OCR and analysis workloads
- Engine package import paths adjusted for the new container-compatible module layout
- Bundled runtime dependencies such as ffmpeg handled within the container build process
- Foundation established for portable VentOCR distribution across supported server environments
Engine selection system redesign and dynamic configuration integration
- Engine Selection UI fully redesigned with step-based workflow (Series → Model → Engine)
- Engine data source migrated to database-driven structure instead of static definitions
- Ventilator series and model selection now dynamically reflects registered database entries
- Engine detail panel enhanced with README rendering and layout preview integration
- Engine settings system integrated with selection flow via direct navigation to configuration page
- Dynamic settings UI (schema-driven) visually aligned with VentOCR design system
- Engine configuration persistence confirmed (schema → JSON → runtime application)
- Separation of responsibilities clarified: Flask (UI & storage), Main (loading), Engine (execution)
- Foundation prepared for external engine plugin architecture with schema-based configuration
- UI consistency improved across Engine Selection and Settings pages
Storage management page and upload cleanup improvements
- New Manage Storage page added for reviewing uploaded videos and archived analyses
- Archive folders can now be deleted directly from the storage management interface
- Archive ZIP download functionality removed to avoid long compression delays
- Uploaded raw video list now ignores TUS metadata files (*.tusinfo.json)
- Deleting a raw uploaded video now automatically removes its corresponding TUS metadata file
- Storage usage overview with disk usage progress bar added for the /Archive mount
Navigation restructuring and workflow-oriented layout update
- Base navigation reorganized into Workflow, Archive & Data, and System sections
- Engine Selection moved into the main workflow menu
- Archive navigation separated from waveform-related workflow items
- Header links added for Tutorial, Updates, GitHub, and License & Terms
- Selected Analyze_ID moved from header to sidebar Current Context panel
- Sidebar logout duplication removed to simplify account navigation
- Home page updated to match the new workflow-oriented information architecture
- Resources & Planned Contents section added to top page
Authentication UI integration and public home page
- Home page can now be viewed without login
- Authentication moved to header popup UI
- User icon login interface added (login.jpg)
- Index page login card removed and simplified
- Header now displays login state (Not Logged In / username)
- Logout moved to popup menu from user icon
Initial release tracking setup
- Version file introduced
- Recent Updates can now be rendered dynamically
- Top page release information structure prepared