Everything that has shipped
Dated catalogue of HMS Light capabilities — from the 18 June 2026 foundation through each clinical, billing, and platform release.
Notifications open the record and fill names
In-app, SMS, email, and WhatsApp fallbacks no longer show leftover {admissionNumber} or {claimNumber}. Clicking a notification opens that admission, claim, appointment, invoice, or portal stay.
- Mustache {{var}} templates interpolate through one renderer after i18n lookup
- Staff bell and inbox go to the record, not the listing
- Patient portal messages open the matching stay or appointment
Split tenders and zero-due discharge
IPD discharge no longer asks for a payment when the bill is already clear. Everywhere money is taken from a patient, one PaymentMethodSelect can combine cash, card, credit, and insurance; each line posts a balanced journal through PaymentService.
- Zero outstanding: discharge from the clinical-ready step with no settle screen
- Add several tenders on one collection so they add up to the amount due
- Queue, pay-outstanding, appointment collect, invoices, IPD, registration, OPD, installments, and care packages use the same widget
- One insurance payer per collection; combine with cash, card, bank, or credit
Long screens split into tabs
IPD reports, the account ledger, IPD clinical and orders, surgery record/counts/materials, the platform subscription dialog, and specialty registers no longer stack four or more sections past one viewport.
- IPD dashboard: Overview / Live lists / Registers
- Surgery case: Case / Theatre / Operative note / Post-op, with Save in the footer
- Specialty records: Visit / Clinical / Plan
Discharge without scrolling the bill
The IPD billing tab is the running bill only. Discharge is a two-step dialog: remaining clinical blockers, then settle. Every clearance gate still runs on the server.
- Discharge button on the billing header, with a count of open clinical items
- Step 1 shows only unmet checks; passed items sit under Already clear
- Step 2 settles and discharges in the dialog footer — same PaymentService path
Discharge summary finalize after the stay ends
Staff draft the summary while the patient is still admitted, finalize only after discharge, and can revert a mistaken finalize so care and clearance can continue.
- Finalize is refused until the admission status is discharged
- Revert finalize returns the summary to draft (same discharge permission)
- A mistaken early finalize no longer locks charges, orders, or discharge
LIMS owns where the sample is
Specimen custody — stage, location, and a misplaced-sample exceptions board — on Service Bookings. The order worklist stays on the booking; the tube has its own timeline.
- Scan at every handoff writes an immutable custody event with location
- Exceptions tab for overdue-in-transit, stalled-in-lab, missing, and wrong-station tubes
- Barcode find shows last known location and the full timeline
- Coded reject and recollect, send-out, dispose, start processing, OT→lab handoff, AP recut
- Arabic and Urdu labels for sample stage, specimen status, and custody events (T-1212)
- App-wide status, kind, and channel codes use shared translations (T-1213)
Public feature timeline
A dated, public catalogue of what has shipped — kept in lock-step with the feature-set backlog so new work appears here in the same task.
- Public /features page with year filter and search
- robots.txt, sitemap.xml, and prerendered HTML so Google can crawl /features without signing in
- Machine-readable SSOT at docs/feature-timeline.json
- CI guard plus G-02 close-out so agents append every future ship
Must-have clinical depth on existing owners
Terminology, hosted DICOM, BCMA five-rights, voice adapters, and transfusion reactions — shipped on the screens that already own the work, not as parallel LIMS/RIS products.
- SNOMED/LOINC/ICD terminology store, CodePicker, and FHIR $lookup
- Hosted DICOM STOW/WADO with in-app study viewer (external OHIF remains default)
- eMAR barcode five-rights (wristband + drug scan) with witnessed override
- Twilio/Vonage/Plivo/Amazon Connect voice adapters on Integrations Verify
- Transfusion vitals, ABO re-check, and reaction reporting on BloodTransfusion
LIMS depth and one listing per view
Microbiology, pathology, CPOE, and radiology benches stay on Services and Radiology — with page-level tabs so staff never scroll past a second workbench.
- Microbiology culture/sensitivity and pathology gross/microscopy on the lab bench
- CPOE clinical decision support and order-set depth on the existing worklist
- Radiology structured reporting and study worklist UX
- Enterprise IA: one primary listing per view (tabs, not stacked tables)
OpenAPI as the frontend contract
Every migrated module’s React client is generated from the backend OpenAPI spec, so request/response shapes cannot drift between Nest DTOs and the UI.
- Orval-generated hooks from backend/openapi.json
- Response DTOs required on every migrated route
- CI drift guards (openapi-response-types, openapi-check)
Connected devices and remote monitoring
Wearables and clinic Bluetooth vitals ingest as patient-generated data, reviewed by staff before they become chart vitals, with RPM plans and threshold alerts.
- Withings, Dexcom, and generic OAuth device connect
- Staff review queue and promote-to-vital gate
- Doctor-ordered RPM plans with threshold alerts
- Web Bluetooth capture for clinic vitals
- Patient portal “My devices” with consent
Inpatient chart, CPOE, and eMAR
The admission becomes a full chart workspace: NEWS2 vitals, unified clinical orders, dose administration with witness, nursing station, and automated room-rent.
- Admission event spine, bed lifecycle, and transfer history
- Admission-linked vitals with NEWS2 alerts
- Unified CPOE ClinicalOrder with fulfilment billing
- eMAR dose engine with witness, charge, and stock
- Nurse station, I/O, fluid restriction, and room-rent accrual
HR, attendance, and payroll
Workforce lives in the same tenant as clinical work: attendance, leave, salary structures, and payroll that posts a balanced journal.
- Attendance and timesheets
- Leave management
- Salary structures and statutory configuration
- Payroll run engine with balanced accounting
- Disbursement, remittance, and staff loans
Patient feedback and service recovery
Branded public surveys, automated dispatch after visits, scoring, and a staff call-task queue so complaints close the loop.
- Survey templates and trigger engine
- Public branded survey form with scoring
- Delivery plus staff call-task queue
- Closed-loop service recovery and analytics
One person, one identity
National-ID and phone reconciliation on create, so the same human is not registered twice under slightly different names.
- Additive person-identity links
- IdentityService reconcile-on-create (national-ID → phone, never name alone)
- Merge review for suspected duplicates
CPOE and radiology RIS
Server-enforced clinical decision support at order entry, plus structured radiology reporting and a PACS viewer deep-link.
- CDSS at order entry and a unified order console
- RIS structured reporting and modality worklist
- PACS viewer deep-link (external OHIF)
Patient portal
Patients see their own appointments, invoices, and payment plans without a staff login — conflict-aware booking and printable receipts included.
- Appointment requests with free-slot / conflict feedback
- Personal agenda and calendar
- Invoice breakdown, insurance split, and printable receipt
- Payment-plan schedule and progress
Email and WhatsApp messaging
Per-tenant templates, channels, and a delivery log so appointment and result notifications leave through one owned path.
- Per-tenant Email and WhatsApp templates
- Channel configuration and delivery log
Emergency, theatre, blood bank, and CSSD
Triage, OT scheduling, blood-unit issue, and sterilization release — the first specialty and peri-operative modules on the same ledger as OPD/IPD.
- Emergency triage and disposition
- OT scheduling and operative note
- Blood-unit inventory, screening, and issue
- CSSD sterilization load log and release control
- Pharmacy inter-store transfers and reorder suggestions
Admissions, POS billing, and insurance at sale
Inpatient encounters with a running charge ledger, plus a pharmacy/retail POS composer that posts pay-and-post into the same double-entry engine.
- Tabbed admission encounter with clinical parity from OPD
- Running charge ledger and partial payments against the admission bill
- POS composer with store/batch, scan-to-add, draft + post
- Printable A4 invoice and 80 mm receipt with barcode
- Insurance payer split at point of sale
Batch, expiry, and FEFO
Lots are first-class: invoice lines pick a batch, stock issues FEFO, and near-expiry write-off posts to the ledger.
- Batch-aware stock movements with FEFO
- Expiry write-off and near-expiry dashboard
- Batch and expiry on invoice lines
FHIR export, trust page, and audit chain
Read-only FHIR R4 Patient $everything, a public Trust & Compliance page, data-subject rights, and a hash-chained audit log.
- FHIR R4 Patient $everything bundle
- Public /trust page and auth-screen trust badges
- SAR / portability export and data-subject register
- Read-access logging and tamper-evident audit hash chain
Unified patient queue and display board
Appointments and walk-in sessions share one token line per doctor/department/day, with a waiting-room board and realtime call/recall.
- QueueTicket console: call, recall, skip, serve, transfer
- Read-only waiting-room display board (zones / counters)
- Realtime announcements, priority, and wait-time analytics
- Auto-start consultation and fee capture on call/serve
Perpetual stock and inventory ledger
Every stock movement posts COGS/inventory journals; adjustments and wastage are first-class endpoints, not spreadsheet afterthoughts.
- Perpetual stock engine with COGS posting
- Stock adjustment / wastage with movement ledger
OPD vitals, notes, and prescription pad
The diagnostic session becomes a paper-like Rx pad with vitals, clinical notes, follow-up, and a printable completion flow.
- Vitals, clinical notes, and follow-up on the session
- Plain-language Rx dosing and item-catalogue lines
- Session completion and reusable print scoping
Registration cards and registration fees
Printable scannable MR cards, scan-back lookup on return visits, and a configurable registration fee posted to the ledger.
- Printable ID-1 registration card (QR + Code-128)
- Scan-card return-visit lookup
- Configurable registration fee journal
Platform foundation
Multi-tenant identity, masters, patients, OPD, appointments, EHR, inventory, and a double-entry chart of accounts — the day HMS Light became a product rather than a scaffold.
- Users, roles, RBAC, and per-tenant isolation (isTest)
- Patient registration with auto MR# and charity/zakat
- Diagnostic sessions, symptom/diagnosis libraries, prescriptions
- Appointment scheduling
- Longitudinal EHR with ICD-10 coding
- Stores, generics, and item catalogue
- Chart of accounts, general voucher, and per-account ledger