Releases: DMJoh/Mediqux
1.0.10
⚠️ Before Upgrading
Take a full backup before upgrading to this version. This release includes database migrations that alter the schema.
Before pulling the new images and restarting, please back up your PostgreSQL database and the uploads volume. Migrations are non-destructive (additive only) and existing data will not be affected, but a backup is strongly recommended before any upgrade.
New Features
Diagnostic Studies Module
- New Diagnostic Studies section — Dedicated module for medical imaging and studies (MRI, CT Scan, X-Ray, Ultrasound, Echography, PET Scan, Mammography, Bone Densitometry, Endoscopy, and others)
- Ordering & Performing Physician fields — Track both the requesting doctor and the radiologist/performing physician per study
- File attachment support — Upload PDF reports or image files (JPG/PNG) up to 20MB per study
- Authenticated file viewing — Attachments served via authenticated API endpoint (blob URL pattern).
- Stats dashboard — Summary cards showing total studies, recent studies, study type breakdown
- Search & filter — Filter by study type with live count badge
- Full CRUD — Add, edit, view detail, and delete studies with confirmation
Performed By field on Lab Reports
- Performed By doctor field — Added to both PDF upload and manual entry modals for recording the biochemist or lab technician who performed the test
- Displayed in lab report details — Performing doctor shown alongside other report metadata
Records Navigation Dropdown
- Consolidated Records menu — Replaced flat "Lab Reports" nav link with a "Records" dropdown grouping Lab Reports and Diagnostic Studies across all pages
Technical Improvements
- Added Sequelize migration for
diagnostic_studiestable with FKs to patients, doctors (ordering + performing), and institutions - Added Sequelize migration to add nullable
performed_by_idcolumn totest_results - Backend diagnostic studies route uses
CASE WHENpattern for nullable JSON physician/institution objects (PostgreSQLFILTERclause is aggregate-only) frontend/js/runtime-config.jsremoved from git tracking — file is generated at container startup byfrontend/docker-entrypoint.sh- Removed redundant plain SQL files from
backend/migrations/— all schema managed by Sequelize migrations inbackend/src/migrations/ - Improved
.env.exampledocumentation with clearer guidance on direct access vs reverse proxy URL configuration - Removed deprecated
FRONTEND_URLvariable
What's Changed
- Bugfix/env by @DMJoh in #50
- Feature/appointmentsdate by @DMJoh in #51
- fix: apply patient filter to stats endpoints and restrict patient access by role by @DMJoh in #52
- Feature/diagnostic studies by @DMJoh in #53
- Feature/diagnostic studies by @DMJoh in #54
- feat: diagnostic studies module, performed-by on lab reports, and Records nav by @DMJoh in #55
Full Changelog: 1.0.9...1.0.10
1.0.9
1.0.8
⚠️ BREAKING CHANGES
Environment variable structure simplified for better reverse proxy support.
Expect Bugs
Migration Required
Removed: BACKEND_HOST, BACKEND_PORT, FRONTEND_HOST, FRONTEND_PORT
Added: BACKEND_URL, FRONTEND_URL, BACKEND_DOCKER_PORT, FRONTEND_DOCKER_PORT
Optional: CORS_ORIGIN (FRONTEND_URL is auto-allowed)
Migration:
# OLD → NEW
BACKEND_HOST=192.168.1.100 → BACKEND_URL=http://192.168.1.100:3000/api
BACKEND_PORT=3000 → BACKEND_DOCKER_PORT=3000
FRONTEND_HOST=192.168.1.100 → FRONTEND_URL=http://192.168.1.100:8080
FRONTEND_PORT=8080 → FRONTEND_DOCKER_PORT=8080Why: Full URLs support custom domains, HTTPS, and path-based routing. Fixes reverse proxy scenarios.
Bug Fixes
- Fixed ERR_BLOCKED_BY_CLIENT errors from strict CORS policy
- Multi-origin CORS support (localhost, 127.0.0.1, configured URLs)
- Port normalization for 80/443
- Ad blocker compatibility (renamed
/auth/check-setupto/auth/initial-config)
What's Changed
- Env-fixes by @DMJoh in #30
- Develop by @DMJoh in #31
- fix: resolve CORS and browser compatibility issues by @DMJoh in #33
- Env-fixes by @DMJoh in #34
- Env-fixes by @DMJoh in #36
- Env-fixes by @DMJoh in #35
- Fixes for CORS issue by @DMJoh in #37
Full Changelog: 1.0.7...1.0.8
1.0.7
⚠️ BREAKING CHANGES
Configuration file changes require migration. Existing .env files will not work with the new docker-compose.yml.
Variables Removed
MEDIQUX_API_URL,FRONTEND_URL- Now auto-constructed from host + portDB_NAME,DB_USER,DB_PASSWORD,DB_PORT- UsePOSTGRES_*equivalents instead
Variables Added
BACKEND_HOST,BACKEND_PORT- For backend API configurationFRONTEND_HOST,FRONTEND_PORT- For frontend configurationPOSTGRES_PORT- ReplacesDB_PORT
Migration Steps
-
Backup your
.env:cp .env .env.backup -
**Download the latest env file **
curl -o .env https://raw.githubusercontent.com/DMJoh/Mediqux/refs/heads/main/.env.example
-
Migrate values:
OLD variables → NEW variables
MEDIQUX_API_URL=http://localhost:3000/api → BACKEND_HOST=localhost, BACKEND_PORT=3000 FRONTEND_URL=http://localhost:8080 → FRONTEND_HOST=localhost, FRONTEND_PORT=8080 DB_NAME=mediqux_db → POSTGRES_DB=mediqux_db DB_USER=mediqux_user → POSTGRES_USER=mediqux_user DB_PASSWORD=password → POSTGRES_PASSWORD=password DB_PORT=5432 → POSTGRES_PORT=5432
-
Update
docker-compose.ymlto latest versioncurl -O https://raw.githubusercontent.com/DMJoh/Mediqux/refs/heads/main/docker-compose.yml
-
Restart:
docker-compose down && docker-compose up -d
Why This Change?
Prevents configuration errors from port/URL mismatches. URLs are now auto-constructed in docker-compose.yml:
MEDIQUX_API_URL→http://${BACKEND_HOST}:${BACKEND_PORT}/apiFRONTEND_URL→http://${FRONTEND_HOST}:${FRONTEND_PORT}
What's Changed
Full Changelog: 1.0.6...1.0.7
1.0.6
Environment Variable Simplification
- Simplified URL configuration - URLs are now automatically constructed from host and port variables
- Removed duplicate database variables - Eliminated redundant
DB_NAME,DB_USER,DB_PASSWORDin favor ofPOSTGRES_*variables - Separated host and port configuration - Users can now independently configure
BACKEND_HOST,BACKEND_PORT,FRONTEND_HOST,FRONTEND_PORT - Automatic URL construction -
MEDIQUX_API_URLandFRONTEND_URLare now built dynamically in docker-compose.yml - Reduced configuration errors - Single source of truth for ports and hosts prevents URL/port mismatch issues
🔧 Technical Changes
- Renamed
DB_PORTtoPOSTGRES_PORTfor consistency - Updated docker-compose.yml to use environment variable substitution for URL construction
- Enhanced .env.example with clearer comments about automatic URL construction
What's Changed
- Env fixes by @DMJoh in #21
- Develop by @DMJoh in #22
- chore: correct dev compose values by @DMJoh in #23
- Develop by @DMJoh in #24
Full Changelog: 1.0.5...1.0.6
v1.0.5
What's Changed
- Doc fixes by @DMJoh in #17
- bugfix: changes for handling Pacific TZ's by @DMJoh in #18
- docs: changelog updated by @DMJoh in #20
- TZ fixes in patients page by @DMJoh in #19
- Fixed date of birth display issue - Patient date of birth now displays the correct date in all timezones instead of showing previous day
- Resolved UTC midnight conversion problem - Date-only fields now use UTC date components to prevent timezone-induced date shifts
- Universal date support - Patient birth dates display correctly for users in negative timezones (GMT-5, GMT-8, etc.)
- Consistent date representation - Birth dates show the same in patient list, edit forms, and detail views
Full Changelog: 1.0.4...1.0.5