Skip to content

Releases: DMJoh/Mediqux

1.0.10

08 Mar 16:48
4061824

Choose a tag to compare

⚠️ 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_studies table with FKs to patients, doctors (ordering + performing), and institutions
  • Added Sequelize migration to add nullable performed_by_id column to test_results
  • Backend diagnostic studies route uses CASE WHEN pattern for nullable JSON physician/institution objects (PostgreSQL FILTER clause is aggregate-only)
  • frontend/js/runtime-config.js removed from git tracking — file is generated at container startup by frontend/docker-entrypoint.sh
  • Removed redundant plain SQL files from backend/migrations/ — all schema managed by Sequelize migrations in backend/src/migrations/
  • Improved .env.example documentation with clearer guidance on direct access vs reverse proxy URL configuration
  • Removed deprecated FRONTEND_URL variable

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

07 Oct 15:57
61b6ee5

Choose a tag to compare

  • Removed CORS restrictions - Backend now accepts requests from any origin

What's Changed

Full Changelog: 1.0.8...1.0.9

1.0.8

02 Oct 20:13
a8b2749

Choose a tag to compare

⚠️ 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=8080

Why: 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-setup to /auth/initial-config)

What's Changed

Full Changelog: 1.0.7...1.0.8

1.0.7

01 Oct 15:17
3ebb086

Choose a tag to compare

⚠️ 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 + port
  • DB_NAME, DB_USER, DB_PASSWORD, DB_PORT - Use POSTGRES_* equivalents instead

Variables Added

  • BACKEND_HOST, BACKEND_PORT - For backend API configuration
  • FRONTEND_HOST, FRONTEND_PORT - For frontend configuration
  • POSTGRES_PORT - Replaces DB_PORT

Migration Steps

  1. Backup your .env: cp .env .env.backup

  2. **Download the latest env file **

    curl -o .env https://raw.githubusercontent.com/DMJoh/Mediqux/refs/heads/main/.env.example
  3. 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
  4. Update docker-compose.yml to latest version

    curl -O https://raw.githubusercontent.com/DMJoh/Mediqux/refs/heads/main/docker-compose.yml
  5. 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_URLhttp://${BACKEND_HOST}:${BACKEND_PORT}/api
  • FRONTEND_URLhttp://${FRONTEND_HOST}:${FRONTEND_PORT}

What's Changed

Full Changelog: 1.0.6...1.0.7

1.0.6

01 Oct 14:23
654a1f0

Choose a tag to compare

1.0.6 Pre-release
Pre-release

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_PASSWORD in favor of POSTGRES_* variables
  • Separated host and port configuration - Users can now independently configure BACKEND_HOST, BACKEND_PORT, FRONTEND_HOST, FRONTEND_PORT
  • Automatic URL construction - MEDIQUX_API_URL and FRONTEND_URL are 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_PORT to POSTGRES_PORT for 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

Full Changelog: 1.0.5...1.0.6

v1.0.5

13 Sep 09:49
510c877

Choose a tag to compare

What's Changed

  • 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

v1.0.4

13 Sep 04:41
313b777

Choose a tag to compare

What's Changed

  • docs: removed healthcare practices. by @DMJoh in #12
  • Update issue templates by @DMJoh in #13
  • bugfix: appointment date in local TZ by @DMJoh in #15
  • Fix for timezone issue in create/edit appointments by @DMJoh in #16

Full Changelog: 1.0.3...1.0.4

v1.0.3

07 Sep 18:32
5429fac

Choose a tag to compare

What's Changed

Full Changelog: 1.0.2...1.0.3

v1.0.2

07 Sep 17:36
9809b6a

Choose a tag to compare

What's Changed

Full Changelog: 1.0.1...1.0.2

v1.0.1

07 Sep 16:23
3a2683d

Choose a tag to compare

What's Changed

  • Fix for #7 -Hardcoded backend URL by @DMJoh in #8

Full Changelog: 1.0.0...1.0.1