Commit Graph

327 Commits

Author SHA1 Message Date
e9ccc40685 fix: remove orphaned JS listeners for deleted Quick FHIR Preview elements (null getElementById error) 2026-05-20 00:52:21 +05:30
e5ec25dfd3 feat: OPD Consult Publish - Preview FHIR opens in modal dialog 2026-05-20 00:48:33 +05:30
fd7b9df3f4 ui: remove Quick FHIR Preview and Today Credit OPD cards from task board 2026-05-20 00:31:56 +05:30
ed4e7c1fe4 feat: ABDM task board — remove All, rename ABHA Update, add OPD Book + OPD Consult Publish sections 2026-05-20 00:29:00 +05:30
368c0b831d ui: ABDM task board — full-width layout (remove max-width 1280px) 2026-05-20 00:14:23 +05:30
e5624f16a2 config: enable CSNOtk SNOMED lookup with base URL and 8s timeout 2026-05-19 23:48:39 +05:30
02ec0034d7 fix: stop injecting Diagnosis SNOMED lines into Prescription textarea — data is in diagnosis_json; strip legacy lines on save 2026-05-19 23:46:44 +05:30
e81ca3d238 fix: Enter adds typed free text in complaint/diagnosis — no auto-pick of first dropdown item 2026-05-19 23:35:39 +05:30
77f5946cf5 feat: Healthplix-style diagnosis table — inline tfoot input, remove Code col, fix delete idx=0, Duration->lookup flow 2026-05-19 23:25:36 +05:30
7a70f41c45 fix: after Duration, focus complaint_lookup for next complaint (not back to severity) 2026-05-19 23:17:15 +05:30
6af99c5421 fix: complaint table — delete idx=0 falsy bug, frequency arrow keys, severity->duration focus 2026-05-19 23:14:26 +05:30
9fe9c971f1 feat: Healthplix-style complaint table — inline row editing with Frequency/Severity/Duration/Date columns, remove Extract Codes button 2026-05-19 22:58:52 +05:30
e275a20946 fix: remove JS-style \u00a0 from PHP PCRE duration regex (PCRE2 does not support \u) 2026-05-19 22:38:33 +05:30
b702ff6fdc feat: complaint Extract Codes button with SNOMED chip review panel
- Add 'Extract Codes' button to complaint lookup input
- Parse free-text with duration/severity extraction (regex: 3 days, moderate etc)
- Call Opd_prescription/complaints_extract endpoint -> local SNOMED FULLTEXT
- Render inline chip cards: term, concept_id, duration, severity, confidence%
- Doctor clicks confirm (green tick) or reject (red x) per chip in seconds
- Confirm pre-fills duration+severity in complaint table row automatically
- 'Confirm All' bulk action; Dismiss clears panel
- Add complaints_extract controller method + parseComplaintFreeText helper
- Add route Opd_prescription/complaints_extract
2026-05-19 22:30:23 +05:30
83685d98be chore: add deploy script and inv cols check script 2026-05-19 20:50:19 +05:30
a56e8a5776 feat: SNOMED background coding pipeline + ABDM Coding Panel
- Add opd_coding_queue + opd_snomed_suggestions migrations
- Add ProcessSnomedCoding spark command (cron: snomed:process-coding)
  Extracts clinical phrases, matches local SNOMED FULLTEXT, saves suggestions
- Add AbdmCodingPanel controller: index/review/confirm/reject/correct/mark_fhir_ready/tip_check
- Add coding_panel + coding_panel_review views (Bootstrap 5, AJAX actions)
- Inject queue trigger in opd_prescription_save (fail-open, ON DUPLICATE KEY)
- Add consult form tip badge: polls tip_check 4s after save, shows review link
- Add AbdmCodingPanel routes behind abdm permission filter
- Various ABDM gateway, FHIR, ABHA, SNOMED library updates
2026-05-19 20:40:27 +05:30
0628f8f813 feat: ABDM OPD Queue + ABHA Register flow + patient ABHA search fix
ABDM OPD Queue (today):
- New EAtriaBridgeConnector: opdQueueFetch/opdTokenCreate/opdTokenUpdateStatus + patch() helper
- New AbdmOpdQueue controller: index/list/fetchQueue/createToken/updateTokenStatus/processScannedToken
  - fetchQueue syncs gateway tokens into abdm_opd_tokens (local DB) and enriches with HMS patient data
  - processScannedToken auto-finds/creates patient_master record from ABHA scan data, marks token CALLED
- New migration: abdm_opd_tokens table (gateway_token_id, source, status, patient_id, opd_id, processed_at)
- New view: abdm/opd_queue.php - reception screen with auto-refresh 30s, HMS Patient column (green row when OPD registered)
- Sidebar: ABDM OPD Queue nav link added
- Routes: AbdmOpdQueue with abdmPermFilter

ABHA Register tab (earlier this session):
- New Abha controller: initiate/verifyOtp/communication/verifyCommOtp/validateAbha/card + autoCreateOrFindPatient
- New views: abha/card.php, partials/abha_create_panel.php, partials/abha_otp_modal.php
- Patient_V.php: ABHA Register tab with 4-method wizard (ABHA number, QR scan, facility QR, mobile OTP)

Patient ABHA search fix:
- Patient::search() now detects ABHA column (abha_id/abha_no/abha/abha_address) and searches by it

ABDM Bridge infrastructure:
- EAtriaBridgeConnector: new connector for e-atria.in ABDM bridge gateway
- AbdmConnectorFactory/Interface updated
- AbdmGatewaySettings controller + view
- SNOMED/CSNOTK terminology service skeleton
- Finance payout OPD consult views
- Migration: AddAbdmPushFieldsToOpdAndPatient, CreateSnomedCoreTables
- Docs: abdm/ API specs, architecture, gateway guides
2026-05-16 04:21:31 +05:30
f311d50745 OPD consult: add women history fields, persist in history, update print sections 2026-05-12 12:52:13 +05:30
6d6dad5ca0 abdm: add Dreamsoft URL/token/sourceCode to AbdmConnector config + config-file fallback in BridgeSyncService::readSetting 2026-05-08 23:14:16 +05:30
38a63a628b abdm: add connector adapter pattern (Interface/Factory/Dreamsoft/Direct) + refactor AbdmGateway 2026-05-08 23:10:24 +05:30
cd605d6fdc assets: add inputmask library locally and load in global layout 2026-05-08 17:58:47 +05:30
5d5c9656ea billing: improve patient name display on consult form and history page 2026-05-08 13:49:37 +05:30
fbb03a6abb billing: redesign ABHA wizard, enhance patient info panels and consult page photo/layout 2026-05-08 13:29:57 +05:30
eac78b7014 billing: add ABHA create/verify tab in patient billing view and update IPD panel package; add hospital logo image 2026-05-08 10:48:43 +05:30
3c4dff6285 Improve doctor document workflow and print performance 2026-05-06 02:06:18 +05:30
b20d5b3ae8 Show opd_no in OPD Q No column 2026-05-05 23:07:10 +05:30
be6f0cd6d0 Set OPD appointment list default order to descending 2026-05-05 22:56:57 +05:30
7ab37ad80d Finance: separate OPD Consult and Doctor Charges payout screens; compact dashboard cards; add IPD payout tracking migration 2026-05-01 21:02:57 +05:30
54c8543902 Show selected invoices list in payout request panel 2026-04-30 02:21:00 +05:30
0c87ff02e0 Rename payout summary label to No. of Invoices 2026-04-30 02:18:18 +05:30
c95723fa6b Add IPD-level selection checkbox and group totals in payout pool 2026-04-30 02:12:44 +05:30
44dee3e3d5 Show IPD payout pool as invoice-level rows under IPD grouping 2026-04-30 02:09:26 +05:30
ced87420b4 Remove payout invoice column and align datatable ordering for grouped pool 2026-04-30 02:05:07 +05:30
e72e5590ff Fix invoice table date filtering to return matching rows 2026-04-30 01:58:19 +05:30
8533c826d0 Use GET for invoice draft DataTable ajax to avoid CSRF empty results 2026-04-30 01:56:40 +05:30
9c30d0c362 Add DataTables-compatible reload fallback for invoice draft filter 2026-04-30 01:54:18 +05:30
2844585714 Fix invoice draft Apply filter to use AJAX DataTable reload 2026-04-30 01:51:21 +05:30
6c9030a337 Fix credit payout pool reload for DataTables API compatibility 2026-04-30 01:46:25 +05:30
36d3fa843b Implement medical store credit payout workflow and optimize payout pool DataTable grouping 2026-04-30 01:42:03 +05:30
ec6ceaea98 Add dedicated Save Settings button for user preferences
- Add separate Save Settings button below User Settings card
- Create myProfileSaveSettings controller method for dedicated settings save
- Settings save endpoint: POST /my-profile/save-settings
- Validates sidebar_auto_hide_seconds (0-60 range)
- Provides immediate feedback: success/error message display
- Separate from profile photo and password updates
- Message auto-hides after 2 seconds on success
2026-04-28 13:54:46 +05:30
5717763496 Add user-based sidebar auto-hide setting, movable from hospital default
- Create user_settings table to store individual user preferences
- UserSettings model for get/set/delete user setting values
- Home::myProfile loads user settings with hospital defaults fallback
- Home::myProfileSave persists user settings to DB
- my_profile.php adds Sidebar Auto-Hide Delay field (0-60 seconds)
- welcome_message.php checks user settings first, then hospital default
- Setting value 0 = auto-hide disabled; blank = use hospital default
- Extensible table design for future user settings (color theme, etc)
2026-04-28 13:47:46 +05:30
0aa0edbbce Fix OPD confirm payment flow and DataTable initialization
- Opd.php: mode-0 (zero amount) no longer inserts payment_history row
  and skips HealthPlix sync for faster confirm
- Opd.php: added spid-based idempotency for cash/card to prevent
  duplicate payment_history rows on retry
- Opd.php: invoice view hides 0-amount payment_history rows
- opd_appointment_list.php: fix isDataTable call (DataTable -> dataTable)
- jquery.dataTables.min.js: replace non-functional shim with real
  DataTables 1.13.8 (supports ext.search, isDataTable, rows() API)
2026-04-28 12:01:53 +05:30
baba5521dd Fix dashboard and OPD counts for DATETIME appointment_date 2026-04-28 11:23:06 +05:30
5226fde8a0 Fix OPD appointment datetime display and date filtering 2026-04-28 10:59:04 +05:30
de3b940448 Increase top navigation icon size and spacing to prevent accidental clicks 2026-04-28 08:31:03 +05:30
6a5519388e Make HealthPlix Doctor Identifier field optional in Doctor Master 2026-04-28 08:22:00 +05:30
bd274a3fc3 Add OPD appointment time capture and storage with date+time display 2026-04-28 07:59:47 +05:30
cef10f70e1 Reflect actual HealthPlix fetch secret save state 2026-04-28 07:40:22 +05:30
cab7bbd3a6 Fix HealthPlix fetch parsing and refine sidebar headings 2026-04-28 07:28:34 +05:30
3ec7e60fcb Allow allowedHostnames via .env and document usage 2026-04-28 06:32:29 +05:30