Skip to main content

v2.1.0 — Deployment Automation & Patient Workflows

· 3 min read

v2.1.0 delivers a single-command deployment controller, patient appointment workflows, and structured API logging across the platform!

Release

v2.1.0

March 1, 2026

Deployment Automation & Patient Workflows

← Back to Blog

New Features

zynctl Bundle Controller

  • Single-Command Deployzynctl.sh orchestrates the entire deployment lifecycle: pull, configure, start, provision, verify
  • GitHub Actions CI — Automated bundle build workflow packages zynctl.sh, compose files, seed scripts, and config into a versioned tarball
  • seed-users Command — Provision 5 demo users via Supabase signup REST API
  • Docker Hub Login — Automatic Docker Hub authentication to avoid pull rate limits

Patient Appointment Workflows

  • Reschedule — Change date/time with reason tracking
  • Cancel — Cancel with confirmation dialog and status update
  • Appointment Module UI — Polished grid, filters, and action buttons

Structured API Logging

  • Middleware-level JSON logging for all /api/v1/* requests
  • Captures method, path, status, and response time
  • KrakenD router access logging enabled for gateway-level observability

Demo Data & Branding

  • seed-demo-data.sh — Self-contained script with patient seed containers for one-command demo setup
  • Custom Branding — Volume-mount /brand assets for whitelabel deployments without image rebuilds
  • Healthcare Settings — Step 7c initialises default Healthcare Settings during provisioning

Enhancements

CTMS Platform

  • Renamed "Subjects" to "Patients" across all navigation and UI labels
  • Calendar date picker: allow past dates for Sites (expected_start_date, irb_approval_date)
  • Date formatting standardised to YYYY-MM-DD for Frappe API compatibility
  • Toast message corrections for user status changes

DevOps

  • zynctl.sh: env validation warns on default DB password, bundle includes frappe-setup scripts
  • Readiness loop (Step 6) waits for Frappe API before token extraction
  • External ctms-network for inter-service communication
  • Bundle includes seed-demo-data.sh and README

Documentation

  • Recipes section: SSH keys, Hetzner VM setup, shell commands
  • Seed-and-init guide with stage-by-stage breakdown
  • Custom branding recipe
  • Demo user seeding guide
  • Bundle deployment guide with zynctl.sh command reference
  • Developer Guide sidebar (renamed from Architecture)

Bug Fixes

CTMS Platform

  • Fixed Patient Encounter creation in user/subject signup flows
  • Fixed LaboratorySelect variable declaration order (ReferenceError)
  • Fixed Docker-internal API URL leaking to browser-side code
  • Fixed doctype API route ignoring limit_page_length query param
  • Fixed duplicate subject-study enrollment and null encounter on subject add
  • Fixed encounter-service to handle both API response shapes

Data Pipeline

  • Removed DLT ghost columns from patient, drug_prescription, and patient_encounter staging models
  • Fixed SSL verification for self-signed certs in data pipeline ingester
  • Fixed clinical_trial field type (Select → Check) on Drug Prescription DocType

For complete release notes, visit our releases page.