Commit Graph

827 Commits

Author SHA1 Message Date
8850620931 fix(opd): accurately calculate top margin delta from template @page and fix named header/footer preservation 2026-09-27 11:50:27 +05:30
b75a43fc32 fix(opd): maintain letterhead top and left margins and content width ratios in Rx print pagination 2026-09-27 11:37:16 +05:30
0397071be4 fix(opd): reorder prescription directions to Frequency | Relation to Food | Dose | Duration | Remarks and add legacy data safeguards 2026-09-27 09:02:03 +05:30
9b3e734ead fix(ipd_discharge): prevent duplicate surgery additions and fix procedure table dynamic updates 2026-09-25 07:41:10 +05:30
677472e6b0 fix(abdm): safely decode raw body in recordsFetch if getJSON fails 2026-09-24 13:13:24 +05:30
092e5cd193 fix(abdm): route health record push with FHIR bundle to /v3/records/push and unify care context reference format 2026-09-24 11:12:54 +05:30
0b048881e1 fix(opd): pass push_to_gateway flag when submitting FHIR bundle from standalone preview 2026-09-24 10:57:07 +05:30
3656bf9b94 Fix ABDM HIP link-token failure: strictly sanitize abha_number, decouple abha_address from 14-digit abha_id in profile & modal 2026-09-24 10:03:19 +05:30
24089f36a6 fix(abdm): auto-link ABHA address on discovery/confirm, resolve FHIR by patient_id on-demand, and display in profile 2026-09-24 09:33:19 +05:30
fcce8970fd fix(abdm): safe JSON parsing in m2LinkInit/Confirm and prevent abha_id null in audit log 2026-09-23 15:56:05 +05:30
0d71ce5ee4 fix(abdm): allow Bearer auth fallback and safe getJSON parsing in recordsDiscover 2026-09-23 15:21:56 +05:30
3f1e89d4be Fix IPD patient admit search error, add admission type filters to IPD patient list, remove redundant sidebar links, and add OPD Day Care template support 2026-09-23 10:12:42 +05:30
ccb05389e1 Prevent duplicate course/treatment submissions and add edit/update capability in IPD discharge 2026-09-23 08:32:36 +05:30
da82ec84d1 Prevent duplicate final diagnosis submissions and add edit/update capability in IPD discharge 2026-09-23 08:28:02 +05:30
7a653a06b6 OPD: preserve opd_med_master defaults and stop prescription overwrite 2026-09-23 07:12:53 +05:30
126a62b8d0 fix(opd): fix undefined patLastName and make FHIR and audit logging fail-safe in opd_prescription_save 2026-09-22 23:40:05 +05:30
341c09d9c7 feat(ipd): enable autosearch and row-level update on discharge complaint table 2026-09-22 20:20:11 +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
ab3ab0c17f fix(medical-store): define billerName in saveSale and link sale_id to credit ledger 2026-09-18 05:55:50 +05:30
6ce81eedd8 feat(medical-store): auto-convert draft bills to invoice on checkout and reduce pending draft list 2026-09-18 05:49:20 +05:30
bc90020c69 fix(medical-store): fix item rate picking and batch pricing when loading Mobile Draft bills into POS cart 2026-09-18 05:29:50 +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
64e34678ec feat: close related organization case on IPD discharge 2026-09-16 15:53:53 +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
93172c4a19 feat(pharmacy): add searchable All Invoices register tab with edit capabilities and POS draft auto-save/recovery 2026-09-10 09:50:34 +05:30
741269634e feat(pharmacy): add right-side patient old records, last dispensed medicines, and 1-click re-dispense/return desk 2026-09-10 09:23:59 +05:30
261a69bf2e feat(medical-store): set A5 invoice to landscape format (A5-L) and remove copy text button from thermal view 2026-09-10 08:22:20 +05:30
82cae89fae feat(medical-store): add server-side A4/A5 vector PDF generation with mPDF and 48-col plain-text thermal receipt printing 2026-09-10 08:09:10 +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
358416fc10 feat(medical-store): conditional pharma fields below product search with auto-fill from last batch and purchase 2026-09-10 06:47:49 +05:30
59514cd061 feat(medical-store): pharma stock entry with progressive disclosure, challan import, and history 2026-09-10 06:35:05 +05:30
48bb726b6d feat(medical-store): add edit purchase invoice option with stock adjustment and ledger reconciliation 2026-09-10 05:43:11 +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
e635e823e5 feat(medical-store): add supplier ledger, payment tracking, short items book, and purchase orders 2026-09-10 04:49:00 +05:30
62397c5a98 feat(medical-store): inward purchase medicine auto-search and shared pharmacy master integration 2026-09-10 04:23:09 +05:30
101e0631a8 feat(medical-store): add supplier creation and editing modal in Supplier Directory 2026-09-10 03:53:33 +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
d2f069e3c8 feat(medical-store): add B2C sales returns, same-invoice exchanges, and DB migrations
- Add B2C same-invoice exchange and pure refund workflows (Marg ERP standard)
- Support returning excess/unused medicines with proportional unit pricing on original invoice
- Auto-net return credits against new medicines in POS cart with refund outflow handling
- Implement stock replenishment for restocked batches with audit trail in mst_stock_audit
- Generate sequential GST Credit Notes in mst_sale_returns and mst_sale_return_items
- Update Thermal 80mm, A5, and A4 print templates with separated dispensed vs returned items
- Add CI4 migration 2026-09-08-000001_CreateMedicalStoreReturnsAndExchanges.php for remote execution
- Add standalone SQL script scripts/sql/2026-09-08_medical_store_b2c_returns_and_exchanges.sql
2026-09-08 05:07:45 +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
9b3d9ef6ee fix(abdm): align IPD discharge summary FHIR bundle with NRCES standards and eliminate NA values in PHR 2026-09-06 08:09:11 +05:30
0e340d5155 fix(abdm): resolve patient row using id instead of p_id in saveIpdDischargeFhir 2026-09-05 20:43:02 +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
c238fcfc40 fix(abdm): resolve correct column names for dose master tables in discharge fhir 2026-09-04 06:05:57 +05:30
6566ec0b77 fix(abdm): handle missing optional params, catch location query exceptions, and safely boot billing controller in IPD discharge preview 2026-09-04 05:51:12 +05:30
5714f9f755 feat(abdm): add Encounter period admission/discharge times and location ward/bed mapping 2026-09-04 05:44:37 +05:30
4776bfb37b Enhance IPD discharge summary FHIR bundle: dual admission/discharge vitals, full medication dosage directions, dietary/discharge advice care plans, and IPD invoice PDF attachment 2026-09-04 05:39:45 +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
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
398ad3238e Fix ABDM live status check and reconcile to accurately extract nested EXPIRED, REVOKED, and DENIED consent states without being masked by transport status 2026-09-03 11:44:36 +05:30
e1280b3bbe Fix column name source_id to entity_id in abdm_work_tasks query in show_profile_opd 2026-09-03 06:57:21 +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
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
b786fe7a08 fix(ipd_discharge): add query error catching and logging to add_drug controller action 2026-09-01 18:28:53 +05:30
144f0a20d5 fix(ipd_discharge): sync full medicine list on main form submit to replace stale DB entries 2026-09-01 18:15:46 +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
fe26588dca fix(ipd_discharge): instant DOM row removal on medicine delete & delete from all drug tables 2026-09-01 17:47:05 +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
63ee0a19fd feat(nursing): add ABDM M2 wellness vitals, health document scanner, and barcode/QR patient search dock 2026-08-30 13:58:06 +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
f99ddbd851 fix(setting): change property access level to protected in OpdQueueSetting to match BaseController 2026-08-30 02:51:58 +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
ac5d2710fa feat(pwa): add 5-item page-wise horizontal auto-carousel for left token tracker column 2026-08-30 02:23:03 +05:30
c1a532ce95 fix(pwa): route sw.js and manifest.json dynamically with Service-Worker-Allowed header and exact screenshot dimensions 2026-08-30 01:58:52 +05:30
882b036e9e feat(pwa): add OPD Queue & Token Display PWA app with right side ad showcase 2026-08-30 01:04:37 +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
888b4039f6 fix(nursing): display Doctor Name on IPD patient bed cards and register all scanned document photos into file_upload_data table for HMS Scan Doc List popup 2026-08-29 04:40:16 +05:30
38573f5b15 fix(nursing): resolve SQL column errors in opdList query, add Doctor filter dropdown, and Vitals Pending/Done status filter buttons 2026-08-29 04:25:57 +05:30
7bdfbab2bd feat(nursing): add OPD Patients list, Fill OPD Vitals, and Document Scan/Camera Upload features to Nursing PWA App 2026-08-29 04:16:08 +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
e32feeb8d6 feat(doctor): make header lock button icon-only and add mobile camera photo capture for handwritten doctor notes and prescriptions 2026-08-29 03:55:50 +05:30
7a0631979a feat(doctor): add current date filter for OPD appointments and my assigned vs all hospital admissions toggle for IPDs 2026-08-29 03:41:09 +05:30
d737ec0d1b fix(doctor): resolve IPD patient doctor mapping and add hospital-wide admission fallback 2026-08-29 03:16:25 +05:30
820c904eff fix(doctor): replicate exact HMS getCurrentAdmissions query joining ipd_master_doc_list and bed_assignment_history 2026-08-29 03:08:47 +05:30
5bfe0689f1 fix(doctor): correct IPD query columns (ipd_status, r_doc_id) to list admitted patients assigned to doctor 2026-08-29 03:05:46 +05:30
9665e820ec feat(doctor): copy full native HMS OPD consultation controls, vitals, findings, and direct PDF printing 2026-08-29 03:02:12 +05:30
4a0889a200 feat(doctor): fix Patient Age calculation via get_age_1 and add Full HMS OPD Consult Form modal 2026-08-29 02:59:15 +05:30
1571c23947 fix(doctor): map exact database column names for opd_prescription (date_opd_visit, complaints, diagnosis) and opd_prescrption_prescribed 2026-08-29 02:54:14 +05:30
15a2f28d0d feat(doctor): add OPD appointment queue list with status badges and mobile-optimized consultation prescription form 2026-08-29 02:49:44 +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
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
3b43d35246 feat(api): add isolated PWA App route gateway and REST API v1 endpoints 2026-08-28 17:44:11 +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
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
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
40c68da430 fix(report): tolerate legacy IPD surgery schema
Guard optional surgery report joins and return a readable response when a site-specific schema mismatch occurs.
2026-08-24 00:34:47 +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
9ca9320fee fix(report): include zero-fee OPD visits
Remove the payment-mode exclusion from the OPD patient-list report so it matches dashboard appointment totals.
2026-08-20 23:34:37 +05:30
6a690e80db fix(abdm): separate IPD discharge clinical sections
Map IPD chief complaints, final diagnoses, discharge advice, hospital course, and follow-up into profile-valid discharge FHIR sections.
2026-08-19 05:59:32 +05:30
16be448b6f fix(abdm): align IPD discharge FHIR with NRCES profile
Use mandatory SNOMED discharge composition and section codings, model completed investigations as DiagnosticReportLab resources, and restore local M3 attachment/value-string rendering.
2026-08-19 04:41:27 +05:30
9e35fe41fc Add discharge template CKEditor and watermarks 2026-08-18 17:50:51 +05:30
3b200e0290 Fail open when caching discharge PDF 2026-08-18 17:35:30 +05:30
306f8ef1c4 Refresh mPDF debug snapshot on build 2026-08-18 17:32:24 +05:30
16de9b0c0c Force discharge header onto first PDF page 2026-08-18 17:26:43 +05:30
f5743be68a Prevent duplicate discharge template content 2026-08-18 17:04:38 +05:30
4d5155a2f8 Avoid @page overriding discharge headers 2026-08-18 17:01:11 +05:30
0dbe4c6f64 Register discharge headers before first page 2026-08-18 16:50:42 +05:30
8a6319ac13 Render discharge template header with mPDF API 2026-08-18 16:46:09 +05:30
8cf0e42765 Activate discharge header with mPDF runtime API 2026-08-18 16:41:46 +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
ebf23b93e8 Use exact OPD header rendering pattern for discharge 2026-08-18 16:29:43 +05:30
94bcf4d37c Force discharge header on first page 2026-08-18 16:20:04 +05:30
b068fc3be2 Fix @page header activation for body-only template CSS 2026-08-18 16:13:53 +05:30
0ea3fc099a Use correct mPDF CSS-first structure for discharge 2026-08-18 15:59:23 +05:30
4835d34e0e Add Debug HTML button to discharge template editor 2026-08-18 15:55:09 +05:30
e353e5afdc Simplify discharge PDF to plain mPDF fragment 2026-08-18 15:42:01 +05:30
f69d10b417 Move discharge template CSS into PDF head 2026-08-18 15:40:22 +05:30
f9b1e02af8 Fix @page placement for mPDF discharge header 2026-08-18 15:37:22 +05:30
42abe7ed9b Use mPDF htmlpageheader for discharge header 2026-08-18 15:29:13 +05:30
1fec6c8677 Add IPD discharge template builder 2026-08-18 15:18:13 +05:30
e1de6e3215 Apply discharge header margin setting 2026-08-18 14:50:56 +05:30
c26589fa22 Render discharge header in PDF body 2026-08-18 14:48:23 +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
2e7da51024 Add discharge header mode test buttons 2026-08-18 14:15:39 +05:30
80f9487e8f Show discharge header in HTML debug 2026-08-18 14:11:50 +05:30
8e9fe8fab3 Apply discharge template CSS to print fragments 2026-08-18 14:08:46 +05:30
e0ce677355 Make discharge header field authoritative 2026-08-18 13:58:14 +05:30
0047a0508a Respect blank discharge template headers 2026-08-18 13:46:35 +05:30
80593ba931 Preserve legacy discharge template headers 2026-08-18 13:40:52 +05:30
903478ce59 Add OPD patient list report with refer by 2026-08-18 13:09:03 +05:30
16f244f6be Add Refer By OPD template placeholder 2026-08-18 13:00:28 +05:30
662aeed7f1 Include full days in OPD total report 2026-08-18 12:55:32 +05:30
1bd93be698 fix(abdm): treat empty HIU sessions as pending, not failure
The bridge reply 'No HIU sessions found matching the criteria' means the facilities have not sent records yet. The consent-status step already handled that wording, but the data-fetch steps surfaced it as 'Auto flow failed'. Share the check via isPendingBridgeSessionError() and report a pending state that keeps polling.
2026-08-18 03:15:09 +05:30
fb2bfb8a8c fix(abdm): stamp consent status on its own request row
Reconciled status lived only on a separate reconcile row, whose correlation back to a session was rebuilt on every page load, so denied/expired requests reverted to REQUESTED after reopening. Write GRANTED/DENIED/EXPIRED/REVOKED onto the session's own consent_request row and treat a stamped terminal state as authoritative.
2026-08-18 03:11:09 +05:30
c6f415cfdc fix(abdm): file consent status under the right request
consent_request anchor rows only registered their HMS request_id, so reconcile rows (which carry the ABDM consent_request_id) matched nothing and fell back to the newest open session. A DENIED result therefore landed on the granted session, where GRANTED outranks it, and the denied request kept showing REQUESTED. Anchors now publish their ABDM ids, and the open-session fallback applies only when the row names no consent request or that session has not resolved its ABDM id yet.
2026-08-18 03:03:59 +05:30
1dbac7b367 fix(abdm): reconcile every open consent request
Check Live Status only reconciled the newest consent request, so requests the patient later denied or let expire in the PHR app stayed at REQUESTED. Reconcile all non-terminal sessions, expose each session request_id, and let a later revoked/expired/denied row override an earlier granted one.
2026-08-18 02:51:19 +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
52dc9fb5fd Read top-level gateway_patient and card fields 2026-08-14 00:33:17 +05:30
6a6895ce35 Add ABHA QR scan registration flow 2026-08-13 19:51:14 +05:30
7cb57b5b28 Match ABHA patients by exact identifier or demographics 2026-08-13 19:23:46 +05:30
bc5fdb8c63 Fix ABHA patient matching for DD-MM-YYYY dates 2026-08-13 19:14:00 +05:30
167a68362a Distinguish official ABHA card from generated fallback 2026-08-13 19:05:36 +05:30
1f4e8fa0cd Send patient X-Token when fetching ABHA card 2026-08-13 18:36:25 +05:30
22e960a834 Detect ABDM Bridge test-mode address responses 2026-08-13 18:13:12 +05:30
d0a0bf984e Fix ABHA card fetch and address suggestions 2026-08-13 17:41:31 +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
6a670d4c48 Refine ABHA patient matching criteria 2026-08-13 11:21:38 +05:30
48d6073a37 Fix false ABHA candidate name matches 2026-08-13 11:15:53 +05:30
fe9f46cb65 Consume enriched ABHA gateway response 2026-08-13 11:03:53 +05:30
c698d5df32 Preserve complete ABHA verification profile 2026-08-13 10:57:38 +05:30
a5447cb83a Complete ABHA account verification flow 2026-08-13 10:36:20 +05:30
d10f49c482 Restore finance medical credit workflow and update help 2026-08-12 16:17:25 +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
670f6d3f1f fix: respect configured discharge template content 2026-08-10 14:58:50 +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
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
5bfe68be37 Add formulation to medical stock export
Include the medicine formulation as a dedicated column in the medical store stock Excel report.
2026-08-09 14:08:25 +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
51f5a87f92 Include old UHID in OPD template output
Append patient old_uhid to the OPD {{uhid_no}} placeholder only when a value exists.
2026-08-08 08:48:12 +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
3036b2189f Add failure-path diagnostics for OPD scan upload/list 2026-08-07 14:15:47 +05:30
a1a06c5dee Fix OPD scan list for live schema/path differences 2026-08-07 13:41:32 +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
bedb1c922a Show old UHID in patient search results 2026-08-06 08:46:54 +05:30
dd36e3af54 Fix patient search old UHID matching 2026-08-06 08:43:25 +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
cb4636e599 feat: add detailed git diagnostics endpoint
- New /setting/admin/system-ops/diagnose endpoint
- Shows git binary location, version, config values
- Includes file permissions and directory checks
- Displays actual git command outputs with exit codes
- Provides troubleshooting commands for setup

This helps debug git configuration issues without guessing
2026-08-04 03:13:59 +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
37631c27a0 Improve patient search for legacy UHID values 2026-08-03 15:32:16 +05:30