Commit Graph

642 Commits

Author SHA1 Message Date
341c09d9c7 feat(ipd): enable autosearch and row-level update on discharge complaint table 2026-09-22 20:20:11 +05:30
79020e806b Move substitutes from medicine input form to Action column button below added medicines 2026-09-22 19:49:27 +05:30
93a6fdf89e Standardize Relation to Food (When) in IPD discharge to match OPD consult format 2026-09-22 19:35:44 +05:30
39ff463b57 feat(ipd): update discharge medicine form/type with full ABDM formulation list and auto route detection 2026-09-22 19:20:23 +05:30
0bb480aace feat(opd): expand formulation types with full ABDM/clinical specialty list (shampoo, soap, spray, susp, etc.) 2026-09-22 19:04:24 +05:30
c870e7eccc feat(opd): convert Formulation into standardized Form/Type select dropdown matching OPD consult 2026-09-22 18:55:08 +05:30
519a52bd73 fix(opd): change Dose from select dropdown to text input with suggestions in medicine workspace 2026-09-22 18:27:18 +05:30
4766c7c9fa fix: safeguard shell_exec with function_exists check in login and medical api 2026-09-22 13:03:19 +05:30
6e78e6010e feat: add Day Care & Emergency admission module with IPD conversion and clean patient names
- Add Day Care (<24h) and Emergency (Casualty) admission pathways with prefixes DC- and ER-
- Add dedicated physical wards, ESI 5-level triage, MLC tracking, and PADSS day care discharge
- Implement audited 'Convert to IPD' workflow with SBAR handover and automated bed transfer
- Support unified IPD billing with dedicated group headers for Day Care and Emergency charges
- Redesign Hospital Admission Desk with executive card layout and modern triage controls
- Add comprehensive user documentation and SVG flowchart in public/help.html
- Completely remove legacy patient_master.p_lname column from database and application code
2026-09-21 23:41:24 +05:30
ecd596e0fb feat(medical-store): add mobile apps QR hub on login page, pharmacy ledgers, credit accounts, and 6-tier staff permissions 2026-09-18 05:11:02 +05:30
c49361c0fa feat: disable public registration on login page and add cron task management script 2026-09-17 13:06:13 +05:30
dd1acb88e1 feat: add IPD census PDF, collection payment filter, fix report panel visibility, and implement ABDM HIP linking
- Reports:
  - Add PDF export option with A4-L print layout for IPD Census & Discharge Report
  - Add Payment Type filter (OPD, Charge, IPD, ORG, All) to Collection Report with URL routing and summary table updates
  - Ensure superadmin/admin/developer visibility in Report Panel controller permission checks
- ABDM:
  - Implement HIP patient care-context linking and discovery integration
  - Add on-demand FHIR health record fetch endpoints for Bridge connector
  - Add ABDM HIP link modal view and wire to patient/person profiles and prescription
2026-09-15 23:21:30 +05:30
f2e27828bb fix(abha): make verification match modal aware of unique ABHA ID and dynamic titles 2026-09-12 05:23:33 +05:30
7e3c57f48f fix(patient): enforce unique ABHA ID and Aadhaar number on patient registration and updates 2026-09-12 04:30:10 +05:30
35e1018c6b fix(abdm): prevent modal redirect to profile step on wrong OTP verification 2026-09-12 01:48:33 +05:30
7c573403b2 fix(abdm): isolate Aadhaar mobile from ABHA registered mobile and sanitize asterisk placeholders in verification flow 2026-09-12 00:35:51 +05:30
fd492a2aa2 feat(abdm-m1): implement Create / Find ABHA Record wizard aligned with ABDM M1 specifications
- Reorder and streamline wizard into 5 steps (Aadhaar, Aadhaar OTP, Mobile OTP, ABHA Address, Profile & Card)
- Add Aadhaar vs Communication mobile matching to skip or mandate mobile OTP (CRT_ABHA_108 vs CRT_ABHA_109)
- Enforce full consent declarations with master 'I Agree' checkbox and step validation (CRT_ABHA_102)
- Enforce UIDAI Verhoeff algorithm pre-validation and normalize upstream loginId errors (CRT_ABHA_104 / VRFY_ABHA_403)
- Enforce ABHA address validation policy: 8-18 chars, dot/underscore in between only, duplicate detection (CRT_ABHA_112)
- Enforce 60s timer and maximum 2 resend attempts on both OTP verification steps (CRT_ABHA_106)
- Support instant jump to profile & card for existing accounts with 'ABHA Already Exist' notice (VRFY_ABHA_404)
- Update Patient Management and Profile view buttons to 'Create / Find ABHA Record'
2026-09-11 22:11:17 +05:30
5187fcf3ed feat(tax): standardize current GST slabs (0%, 5%, 18%, 40%, legacy 12%, 28%) across HMS and Medical Store 2026-09-10 07:13:04 +05:30
ca6926015a fix(medical-store): remove third-party brand Marg from application and replace with generic Excel/CSV import 2026-09-10 04:58:59 +05:30
b89bace2c9 fix(abdm): resolve 500 internal server error on ABHA patient request list 2026-09-09 18:46:28 +05:30
9176877d07 feat(abdm): implement M1 find ABHA by mobile flow & M2 user-initiated linking
- M1: Update Find ABHA via Mobile to compliance flow: Mobile Number -> Profiles -> OTP -> Complete Profile Fetched
- M2: Support walk-in non-ABHA patient discovery via demographic matching (verified mobile, gender, year of birth, name)
- M2: Implement care context linking endpoints (/records/link/init and /records/link/confirm) with OTP verification
- Add abdm_link_transactions database migration
- Support Bearer token and HMAC signature authentication for bridge callbacks over VPN
2026-09-09 17:52:20 +05:30
765286e7fa feat(medical-store): ABDM-compatible multi-building pharmacy, POS desktop keyboard workflow, unit dispensing, and split payments 2026-09-08 02:19:11 +05:30
ee7cf59c49 fix(abdm): enforce clinical decimal precision on vitals and temperature in FHIR bundles and task board 2026-09-07 16:11:24 +05:30
bb6589605a fix(abdm): resolve health document preview hang and wellness record display in task board
- Fix mPDF single-threaded server deadlock by replacing HTTP logo URL fallbacks with inline base64 data URIs
- Add fast path in DoctorDocument to read scanned NABH PDFs directly from disk without mPDF re-rendering
- Support doctor_document and patient_document entity types in task board health document preview
- Enhance task board preview form with in-modal PDF preview, image thumbnail, and download actions
- Populate Composition.encounter with AMB encounter and set Wellness Record display code
2026-09-07 00:46:17 +05:30
f3faa9c96e feat(abdm): integrate Online/ABDM discharge template with PDF attachment in FHIR bundle
- Dynamically resolve and generate PDF using designated Online/ABDM template (is_abdm=1) from ipd_discharge_templates
- Unify mPDF rendering logic between show_discharge and generateDischargeSummaryPdfBinary for exact byte-for-byte consistency
- Attach generated PDF as DocumentReference under SNOMED 373942005 (Discharge summary) in NRCES FHIR DocumentBundle
- Add quick-set actions and AJAX endpoints for Default and ABDM template selection in discharge template list UI
- Update unit tests covering DocumentReference generation and template resolution
2026-09-06 17:55:15 +05:30
52f8d9691b feat(abdm): enhance IPD discharge FHIR generator with NRCES v6.5.0 single-coding and structured dosage instructions 2026-09-05 15:29:11 +05:30
4e748dbaa8 fix(abdm): map admission/discharge encounter period, split vitals by admission/discharge, and attach size/hash to pdf document reference 2026-09-04 06:15:08 +05:30
9bca2630c3 fix(abdm): allow GET/POST for ipd_discharge_fhir_preview and render detailed error in preview modal 2026-09-04 05:55:51 +05:30
df835008d5 Fix ABDM M1 multi-ABHA account selection payload compatibility and fallback handling 2026-09-03 20:13:46 +05:30
156d12adba Implement ABDM M1 multi-ABHA account selection for Mobile OTP login flow 2026-09-03 16:17:46 +05:30
29ac1ffe66 Update ABDM Work Task Board tab and header name to OPD Consult / Prescription Records 2026-09-03 14:33:37 +05:30
05622a12de Fix Consent ID, Consent Request ID, and date metadata resolution across ABDM client, workflow service, controller, and views 2026-09-03 12:37:11 +05:30
625c642b02 Fix patient age calculation in IPD discharge search ajax by querying DOB and using get_age_1 helper 2026-09-02 03:51:52 +05:30
adf4433f72 Completely sanitize Edit Remove text artifacts from remark field in IPD discharge 2026-09-02 03:31:23 +05:30
16463d4908 Fix IPD discharge medicine edit form: fix remark field off-by-one cell index and reset When dropdown when empty 2026-09-02 03:22:34 +05:30
2fcfbd922a Enhance IPD discharge summary: OPD-style Prescribed Medicines table for B&W printing, auto generic lookup, and suppress empty discharge summary heading 2026-09-02 02:53:17 +05:30
73780ac7dd fix: IPD discharge RxGroup add - fix UI not updating after apply_rx_group, and Remove All not deleting from DB
- discharge_create.php (JS): Fixed AJAX done handler to JSON.parse the
  raw string response (jQuery with dataType:'html' does not auto-parse
  JSON), then re-render #discharge_medicine_tbody from result.drugRows.
  Also fixed Remove All (#btn_discharge_med_reset) to send AJAX POST
  with action=remove_all_drugs so records are deleted from DB, not just
  cleared from the DOM.

- Ipd_discharge.php (Controller): In the AJAX JSON response block,
  resolve dosage/dosage_when/dosage_freq IDs to human-readable labels
  using getDoseMasterRows() before returning drugRows, so the table
  displays 'BD / After Food' instead of raw numeric IDs. Added new
  remove_all_drugs action that deletes all medicine rows for the IPD
  from both legacy (ipd_discharge_prescrption_prescribed) and classic
  (ipd_discharge_drug) tables. Added remove_all_drugs to both
  lightweight-action whitelists to skip the expensive getIpdPanelInfo()
  join.
2026-09-01 20:24:14 +05:30
e24b71bbc9 fix(ipd_discharge): enable serializeDischargeMedicineTable on form submit and robust JSON response handling 2026-09-01 18:24:50 +05:30
633ea2bbb8 fix(ipd_discharge): enforce strict server DB save confirmation before adding medicine to client DOM 2026-09-01 18:20:13 +05:30
3fddb3ca26 fix(ipd_discharge): enable dual-source medicine loading and full form submit medicine sync 2026-09-01 18:07:18 +05:30
1f8651e3b3 fix(ipd_discharge): remove fragile tbody early-return guard in medicine remove handler 2026-09-01 17:51:23 +05:30
fe26588dca fix(ipd_discharge): instant DOM row removal on medicine delete & delete from all drug tables 2026-09-01 17:47:05 +05:30
419c015535 fix(ipd_discharge): update server-rendered medicine remove buttons with btn-remove-discharge-med class for AJAX deletion 2026-09-01 17:43:30 +05:30
bfe14048bc fix(ipd_discharge): resolve status 0 network error on medicine add and sync remove_drug via AJAX 2026-09-01 17:38:09 +05:30
599c4806bb feat(abdm & reports): align ABDM FHIR R4 Wellness & HealthDocument generators, add NABH IPD scanner, balance column in invoice list, and old payment received report 2026-09-01 14:05:17 +05:30
596a684372 fix(abha): update ABHA Management card heading to 'Verify or Find ABHA Account' 2026-08-30 03:20:04 +05:30
5db3da6403 fix(setting): prevent standard form submit redirect on save button by using explicit AJAX functions and action=javascript:void(0) 2026-08-30 02:55:13 +05:30
31b2319419 feat(admin): add OPD Queue TV Settings panel for right-side ads upload, left-side bottom ad space, ticker text editing, and TTS pronunciation fixes 2026-08-30 02:49:59 +05:30
8d68afebbd feat(pwa): standardize hospital logo PWA icons and add in-app mobile module switcher 2026-08-30 00:18:15 +05:30
2d68a19584 feat(hms): add Document Type selection dropdown to HMS Desktop Scan Upload Modal and save document_type with badges 2026-08-29 04:45:28 +05:30
e4c6b398cc fix(hms): resolve base64 photo upload decoding and add professional image thumbnails to HMS Nursing Workspace Treatment Notes 2026-08-29 04:04:03 +05:30
a6beb124cd feat(doctor): add Doctor App PIN auth, QR generator, DoctorCare EMR PWA (/app/doctor), and bedside clinical tools 2026-08-28 19:44:54 +05:30
405226d66c fix(header): append hmsAppsLauncherModal to document.body to fix modal backdrop overlay issue 2026-08-28 19:34:41 +05:30
e865b71500 fix(header): refactor Apps Launcher script to pure Vanilla JS to prevent $ reference error 2026-08-28 19:31:22 +05:30
6a65fc507d feat(apps): add Top Nav Apps Launcher Icon & 30-Day Device PIN Authentication Memory 2026-08-28 19:27:39 +05:30
7b0b1c3415 feat(auth): add Nurse PIN Security Authentication, App QR Codes, and Lock Screen for NursingCare PWA 2026-08-28 18:45:53 +05:30
345e4f5f99 feat(nursing): add entry history tables and edit capability to Vitals, Fluid, and Treatment panels 2026-08-28 04:01:58 +05:30
5c053422ec feat(nursing): move Nursing Entries History and Scanned Audit Trail to separate left menu tabs 2026-08-28 03:54:54 +05:30
307355f5a7 feat(nursing): add dynamic medical route options for Fluid Intake / Output 2026-08-28 03:26:02 +05:30
9a9dba1f8f fix(nursing): pre-fill saved Admission Snapshot fields and persist active workspace tab 2026-08-28 03:19:44 +05:30
69f0e1fa45 feat(nursing): add Nursing Station Master, ABDM credentials to Nurse Master, and Visual Bed Grid at /ipd/patient 2026-08-28 02:43:37 +05:30
7c04828e99 feat(ipd): align IPD Discharge prescribed medicine form design and autotext with OPD Consult 2026-08-27 04:33:10 +05:30
a7727c9d9e fix(abdm): correct mobile ABHA discovery flow
Route Find ABHA via Mobile through standalone bridge OTP endpoints and remove exact placeholder values from generated FHIR bundles.
2026-08-24 23:19:21 +05:30
2ac6babd5d fix(report): prevent collection filter overlap
Give the payment date range more grid space and reduce the employee selector width.
2026-08-24 01:24:56 +05:30
7ec5149ccf feat(ipd): manage admission examination fields
Add an Admin CRUD master for IPD admission examination fields with enabled state, display order, field types, and select options.
2026-08-24 00:53:01 +05:30
225721ae02 feat(report): add IPD surgery export report
Add a permissioned IPD surgery report combining discharge surgery, patient, diagnosis, OT, and matched billing details.
2026-08-24 00:01:58 +05:30
83fce47ee1 feat(report): add searchable permissioned IPD census hub
Organize the report hub into permission-filtered searchable panels and add a protected IPD census and discharge report.
2026-08-23 20:36:09 +05:30
8e80bc4a7b fix(dashboard): align OPD referral totals with patient list
Use patient profile referral values for the OPD dashboard, matching the report patient-list source and counts.
2026-08-20 23:50:30 +05:30
85720577f3 Add footer margin to discharge template builder 2026-08-18 18:18:37 +05:30
47ee7ca226 Add CKEditor toolbar alignment plugin 2026-08-18 17:58:55 +05:30
93886e3402 Fix discharge editor alignment controls 2026-08-18 17:56:00 +05:30
2113abc318 Add alignment controls to discharge CKEditor 2026-08-18 17:53:43 +05:30
9e35fe41fc Add discharge template CKEditor and watermarks 2026-08-18 17:50:51 +05:30
afd0ba8a8c Show runtime mPDF header payload 2026-08-18 17:27:43 +05:30
28109df663 Build mPDF debug input on demand 2026-08-18 16:36:53 +05:30
53b79b5297 Add raw mPDF input debugger 2026-08-18 16:33:24 +05:30
4835d34e0e Add Debug HTML button to discharge template editor 2026-08-18 15:55:09 +05:30
1fec6c8677 Add IPD discharge template builder 2026-08-18 15:18:13 +05:30
ce04de2adf Separate NABH audit template selection 2026-08-18 14:29:09 +05:30
aee50cb52f Rebuild IPD discharge template selection 2026-08-18 14:28:27 +05:30
4b2c44c738 Add OPD patient list to report panel 2026-08-18 13:11:16 +05:30
903478ce59 Add OPD patient list report with refer by 2026-08-18 13:09:03 +05:30
9bec2d2a66 Improve OPD total report filter layout 2026-08-18 13:04:19 +05:30
16f244f6be Add Refer By OPD template placeholder 2026-08-18 13:00:28 +05:30
cac5e3c4ec Clear OPD modal backdrop during navigation 2026-08-18 12:50:10 +05:30
95026b4cfd Fix ABDM OPD queue modal redirects 2026-08-18 12:25:55 +05:30
7ae9a77d29 fix(abdm): save enrolment mobile on ABHA-created patients
ABDM does not echo the alternate mobile in aadhaar/verify-otp, so patients created from that response were saved without a phone number. Fall back to the enrolment mobile ABDM accepted, flag its origin via mobile_source, and state the origin in the wizard.
2026-08-18 02:51:14 +05:30
8be64239d5 fix(abdm): stop ABHA flow after Aadhaar-created account
ABDM v3 creates the ABHA inside aadhaar/verify-otp when an alternate mobile is supplied. HMS then ran a standalone mobile OTP login, which returned whichever ABHA owned that number (e.g. the parent's) and overwrote the child's record. Skip that step when an ABHA number is returned and show the operator an explicit alternate-mobile status instead.
2026-08-18 02:31:44 +05:30
841b15d27b fix(abdm): bind alternate mobile to enrolment
Use the dedicated Bridge enrolment-mobile OTP endpoints for child/dependent ABHA creation and reject any alternate-mobile response whose ABHA differs from the Aadhaar-verified identity.
2026-08-18 02:13:47 +05:30
c8f44e4493 fix(abdm): complete ABHA creation workflow
Split official and hospital ABHA cards, preserve profile/photo updates, improve existing-patient matching, require and forward communication mobile data, and show accurate Bridge OTP status and errors.
2026-08-17 06:43:37 +05:30
2e8304636b feat(abdm): add digital share records
Generate standardized Digital Share PDFs for invoice and diagnostic records, strengthen FHIR document validation and sync handling, and keep task-board submissions AJAX-only.
2026-08-16 17:35:42 +05:30
625987955e feat(abdm): improve bridge record delivery
Add NAT-safe Immunization and InvoiceRecord Bridge workflows, stable care-context handling, ABHA address enrichment, embedded invoice PDFs, M2 status synchronization, and strict Bridge response normalization.
2026-08-16 01:30:11 +05:30
2d13ba567e Store Aadhaar encrypted with masked display and hash-based search 2026-08-15 03:16:40 +05:30
00b949ad0a Push M2 records to gateway for NAT deployment and cover all 8 HI types 2026-08-15 03:16:32 +05:30
b25ab98fd7 Fetch official ABHA card and surface bridge card provenance 2026-08-15 03:16:25 +05:30
a55c6899f0 Fix ABHA create profile card and photo handling 2026-08-14 04:10:55 +05:30
32d43ce02a Add ABDM OPD queue navigation for reception 2026-08-14 02:33:18 +05:30
d4d0e9cd82 Remove ABHA card download from mobile OTP modal 2026-08-14 02:14:33 +05:30
be2c78914f Keep ABHA modals open when patient already linked 2026-08-14 00:07:12 +05:30
7047d00ae4 Move mobile OTP verification into a modal 2026-08-13 23:51:32 +05:30
dfb669e8ed Fix ABHA Management panels and facility QR print 2026-08-13 23:40:57 +05:30
3ce584ddc8 Use QR scanner modal only for ABHA QR registration 2026-08-13 20:10:03 +05:30
6a6895ce35 Add ABHA QR scan registration flow 2026-08-13 19:51:14 +05:30
3470244061 Keep ABHA modals open until closed by operator 2026-08-13 19:35:58 +05:30
ea1945d842 Skip match modal when ABHA already linked 2026-08-13 19:29:07 +05:30
167a68362a Distinguish official ABHA card from generated fallback 2026-08-13 19:05:36 +05:30
3e70ff8c4a Redesign ABHA Aadhaar creation flow 2026-08-13 17:11:48 +05:30
73ad7ef11f Store ABHA card and improve patient comparison 2026-08-13 11:30:02 +05:30
a5447cb83a Complete ABHA account verification flow 2026-08-13 10:36:20 +05:30
870fed5dcd fix: correct medical org grid columns 2026-08-12 15:32:09 +05:30
6ad28dd960 fix: restore medical payout routes and labels 2026-08-12 15:24:23 +05:30
d289bb5be1 feat: add OT workflow and allow zero payments 2026-08-12 13:38:25 +05:30
4ca463cc1e feat: add payment editing and fix discharge templates 2026-08-10 14:48:33 +05:30
681ad44a69 fix: show access denied page for permission failures 2026-08-10 12:30:32 +05:30
711b093487 feat: add IPD nursing and discharge permissions 2026-08-10 00:55:18 +05:30
bd9b1771a9 feat: add clinical drill-down dashboards
Add interactive OPD, IPD, and diagnosis dashboards with historical date ranges, KPI summaries, doctor and department workload, referral breakdowns, and diagnostic workflow statuses.
2026-08-10 00:21:55 +05:30
9872e1c726 refactor: show management status as toasts
Route User Management and Role Master action results through fixed top-right notifications, including SPA partial responses, validation failures, session actions, and network errors.
2026-08-09 23:58:59 +05:30
8f25904a13 refactor: streamline user permission management
Move per-user permissions into row actions, add contextual module permission guides, show selected-user details, and relocate online sessions to the profile menu.
2026-08-09 23:45:35 +05:30
c263b9e4ac feat: add role and session access controls
Add configurable role management, expanded project permission coverage, secured module routes, and single-active-session enforcement with online user administration.
2026-08-09 23:21:16 +05:30
b2926d5a0b Add discharge diagnosis and narrative template masters
Integrate Final Diagnosis with canonical disease master data and add reusable My/Master template CRUD for discharge narrative sections, including summary investigations, course, other advice, and discharge summary.
2026-08-09 19:50:05 +05:30
b39688dade Fix IPD discharge form interactions
Restore surgery and procedure bindings after SPA updates, validate procedure dates without SQL errors, and prevent medicine autocomplete Enter from submitting while preserving layout and autofill.
2026-08-09 19:05:05 +05:30
ea28bfa837 Improve discharge medication template output
Render class-only discharge medication tables with salt and medicine advice, and persist generic salt data from medicine search.
2026-08-09 13:45:50 +05:30
ee87802af1 Add IPD medical bill type controls
Filter IPD pharmacy credit bills, add package/include toggles with admission validation, and provide an inline invoice detail view.
2026-08-08 08:33:53 +05:30
561c0d9fc3 Add package checkbox for IPD pharmacy bill inclusion 2026-08-07 15:23:57 +05:30
a10acec63f Fix IPD package tab reload URL after package actions 2026-08-07 15:07:56 +05:30
d5c7d1030c Show patient grid controls and scope datatable search to filtered results 2026-08-07 12:32:21 +05:30
5f443f307a Enhance patient search and enforce refer master validation 2026-08-07 12:24:48 +05:30
780ebaa263 feat: add referral search to patient and IPD flows
Load referral master data into patient registration/edit screens, persist patient referby, expose searchable referral inputs in patient and IPD forms, and make referral title editable as free text in referral master CRUD.
2026-08-07 11:18:50 +05:30
dcc366444b feat: show New Update Available badge when GitHub has newer commits
- Add checkForUpdates() with 10-minute cached GitHub API check
- Add fetchLatestCommitInfo() to get latest commit SHA + message from GitHub API
- Save deployed commit SHA to writable/deployed_commit.txt after each deploy
- Invalidate update cache on successful deploy so next check is always fresh
- Button turns yellow + red NEW badge when update available
- Show commit message and short SHA diff (deployed → latest) in alert
- Show green 'Up to date' with deployed SHA when already current
- GitHub API rate limit safe: checks once per 10 mins via file cache
2026-08-04 04:03:09 +05:30
41f07357d2 fix: clean up orphaned running entries, add timeout handling
- Remove initial 'running' history entry (orphans when PHP times out)
- Add purgeStaleRunning() to mark old 'running' entries as 'timeout' on next deploy
- Add set_time_limit(300) to prevent PHP timeout during large ZIP download
- Add timestamps to log file entries for easier debugging
- Include ZIP size and source URL in success detail
- History now keeps last 20 entries (was 12)
- Show dash instead of blank for entries with no detail
- Style 'timeout' status same as 'failed' (red pill)
2026-08-04 03:59:38 +05:30
3fed2b6740 fix: prevent modal hang/fade by moving it outside refreshable panel div
- Move detail modal from system_ops_panel.php to system_ops.php
- Modal is now outside #systemOpsPanel so panel refresh never destroys it
- Skip refreshPanel() while modal is open (prevents backdrop desync)
- Add hidden.bs.modal handler to clean up lingering backdrop and body classes
- Fix show.bs.modal handler to correctly read data-detail via jQuery .data()
- Add white-space:pre-wrap to detail content for readable log output
2026-08-04 03:55:27 +05:30
f349b33001 feat: show all network interfaces with type badges (LAN/VPN/Public)
- readNetworkStatus() now returns array of all interfaces instead of single string
- Parses 'ip addr' output (with ifconfig fallback) for all IPv4 interfaces
- Each interface classified as LAN / VPN / Public by name and IP range
- VPN detected by interface prefix: wg*, tun*, tap*, vpn*
- RFC1918 ranges (192.168.x, 10.x, 172.16-31.x) shown as LAN
- Display: icon + IP + interface name badge + type label per row
- Handles NAT servers showing both local LAN and VPN IPs simultaneously
2026-08-04 03:45:51 +05:30
1073ab8aca feat: graphical RAID display, remove server action buttons
- Remove Restart Web, Restart PHP-FPM, Shutdown, Reboot buttons
- Remove runServerAction() library method and action() controller
- Remove /system-ops/action route (no longer needed)
- Parse /proc/mdstat into structured array (name, level, health, drives)
- Show each RAID array as a card with colored drive icons per-slot
- Green drive = healthy, red = failed, blue = spare
- Show rebuild progress bar when array is rebuilding
- Internet status shown as colored badge with wifi icon
- Services shown as colored badges (green=running, grey=other)
2026-08-04 03:39:49 +05:30
eb81f1999f refactor: remove git-based update method, keep only direct GitHub deployment
- Remove 'Update HMS (Git)' button and related functionality
- Remove runUpdate() method from SystemOperations
- Remove update() controller method
- Remove /setting/admin/system-ops/update route
- Remove setup_git_config.sh (no longer needed)
- Keep 'Deploy from GitHub' button as the only update method
- Rationale: Direct GitHub deployment is more reliable and requires no git config

Result: Single, simpler deployment method that always works
2026-08-04 03:27:22 +05:30
f3b8e28312 feat: add direct GitHub deployment as alternative to git pull
- New 'Deploy from GitHub' button downloads latest code directly
- No git configuration required - more reliable for git-unfriendly servers
- Automatically syncs changed files (skips .git, vendor, writable)
- Both methods available: git pull (if configured) or direct GitHub download
- Each has a clear confirmation dialog explaining the method
- Handles temporary extraction and cleanup automatically

This solves HMS deployment when git is not accessible to PHP process
2026-08-04 03:17:46 +05:30
0e6cf1664d feat: add HMS Features link on login page
- Added "View HMS Features & Capabilities" link below the login card
- Copied HMS_FEATURES_PRESENTATION.html to public/ so it is accessible
  via base_url without auth (same pattern as software-use-license.html)
- Link opens in a new tab
2026-08-04 02:05:09 +05:30
4d7ae0d669 docs: add HMS feature presentation (HTML + Markdown)
- HMS_FEATURES_PRESENTATION.html: full styled presentation with cover,
  professional introduction, 11 feature sections, tech stack, compliance,
  print/PDF button, and proper @media print A4 layout
- HMS_FEATURES_PRESENTATION.md: plain Markdown version of the same content
- system_ops.php: fix confirm dialog text for Update HMS button
2026-08-04 02:02:26 +05:30
155c3ec4b5 feat: add error details modal to update history
- Added "Details" column to Update History table
- Shows info icon button when error details are available
- Clicking button opens a modal with full error message
- Details displayed in pre-formatted text for easy reading
- Helps diagnose why HMS updates failed or timed out

When an update fails, users can now click the info icon to see the exact
git error output, making troubleshooting much easier.
2026-08-03 17:03:23 +05:30
f9c0fd1a72 fix: simplify HMS update to only git pull and add timeout protection
Update improvements:
- Renamed button from "Update System" to "Update HMS"
- Changed update to run only 'git pull' (removed database migrations)
- Added 60-second timeout to prevent system hangup
- Better error messages for timeouts and failures
- Logs update status (running/success/failed/timeout) to history
- Confirmation dialog now says "Pull latest HMS code from repository?"

This ensures quick updates without long-running migrations that could hang
the admin interface. Database migrations can be run separately as needed.
2026-08-03 17:00:21 +05:30
3720da9b16 feat: add visual progress bars to resource usage and improve CPU detection
Resource Usage improvements:
- Added visual progress bars for CPU, RAM, and Disk usage
- Progress bars use Bootstrap styling (success/info/warning colors)
- Display percentage and detailed metrics (e.g., RAM 4 / 128 MB (3%))
- Bars animate smoothly with CSS transitions

CPU detection enhancements:
- Added fallback to /proc/stat parsing when shell commands unavailable
- Added fallback to PHP getrusage() for CPU time estimation
- CPU now displays even when shell_exec is disabled
- Graceful fallback chain ensures data is always available

Progress bar styling:
- Success (green) for CPU
- Info (blue) for RAM
- Warning (orange/yellow) for Disk
- All bars styled with height, rounded corners, and smooth transitions
2026-08-03 16:56:50 +05:30
096ce5e199 feat: add System Operations tile to admin dashboard and include helper library
- Added System Operations link to Admin dashboard (app/Views/Setting/Admin/index.php)
- Uses load_form_div to load the system operations page inline
- Added SystemOperations library for server status collection and actions
- Tile uses server icon (bi-server) and appears in the admin panel grid
- Link: javascript:load_form_div(base_url('setting/admin/system-ops'), 'maindiv', 'System Operations')
2026-08-03 16:50:00 +05:30
89b862db31 feat: add admin system operations panel with AJAX refresh and server monitoring
- Added SystemOps controller with index and panel endpoints for dynamic content refresh
- Created system_ops_panel.php fragment for AJAX-based UI updates (no full page reload)
- Implemented 30-second auto-refresh using AJAX instead of location.reload()
- Fixed health badge contrast by adding explicit dark text color (#1f2937)
- Added jQuery availability checks to prevent script errors on page load
- Included server overview, resource usage, services, events, and update history
- Integrated delegated event handlers for action buttons (Update, Restart, Reboot, Shutdown)
- All buttons are protected with confirmation dialogs
- Layout maintains NiceAdmin card styling and responsive design

Routes added:
- GET /admin/system-ops/panel - returns panel fragment for refresh
2026-08-03 16:47:41 +05:30
e473be3ae7 Fix diagnosis print template dual-PDF flow and settings save bug
- Diagnosis.php: resolve doctor mapping via ABDM Report Doctor Mapping,
  compile pathology/diagnosis reports into separate Letter Head and
  Plain Paper PDFs, add compiled-pdf-links endpoint
- Routes.php: add diagnosis/compiled-pdf-links route
- pathology_detail.php: render/persist dual compiled PDF buttons
- Setting/Template.php: per-modality Letter Head / Plain Paper template
  mapping via hospital_setting keys
- Setting/Template/index.php: fix tile links using load_form (which only
  replaces #main) instead of load_form_div, which broke every internal
  AJAX reload (template type switch, modality switch, reset) on the
  diagnosis/discharge/document print template settings pages
- diagnosis_print_settings.php: fix corrupted watermark_alpha number
  input (missing step attribute) that silently blocked form submission
  for templates with non-integer-step legacy values
2026-08-03 02:43:50 +05:30
f57da52725 Refine IPD bill group row colspan and bold styling 2026-08-01 16:44:55 +05:30
6be0df028e Highlight IPD bill group headers and subtotals 2026-08-01 16:36:54 +05:30
71a7875fe1 Format IPD bill print group headers and subtotals 2026-08-01 16:21:22 +05:30
49d83dd105 Add PATIENT_TITLE discharge placeholder 2026-08-01 16:13:13 +05:30
53bc924c06 Polish IPD bill labels and wording 2026-08-01 16:05:16 +05:30
151ea7a53f Refine IPD charge display and billing print outputs 2026-08-01 15:55:00 +05:30
ee9bb7b560 Fix ABHA card barcode print rendering 2026-08-01 03:57:43 +05:30