Commit Graph

559 Commits

Author SHA1 Message Date
ddec3cec69 Fix editable complaint fields - attach handlers after section reload
BUGFIX: Event handlers were only attached on initial page load

PROBLEM: After implementing editable complaint fields, the inputs
wouldn't become editable when adding new complaints via the Smart
Complaints Picker. The event handlers were only attached once on
page load, not after the section was dynamically reloaded.

ROOT CAUSE: When clicking Add or AI Draft buttons, the form submits
and the section-complaints area is reloaded from server. The new
complaint rows had the input fields but no event handlers attached.

SOLUTION:
1. Moved event handler attachment logic into initComplaintTools()
   function as new attachComplaintFieldHandlers() helper
2. This function is automatically called after section reload
3. Clone-and-replace pattern to prevent duplicate event handlers
4. Fixed table name: ipd_discharge_complaint (not ipd_discharge_comp)

FLOW:
- Add complaint → section reloads → initComplaintTools() runs →
  attachComplaintFieldHandlers() attaches blur/keydown handlers →
  editable fields work

Now clicking on complaint name/remark inputs works for both:
- Existing complaints (on page load)
- Newly added complaints (after section reload)
2026-06-06 05:18:35 +05:30
2e6bff35a0 Make IPD discharge complaint names and remarks editable like OPD form
FEATURE: Inline editing for discharge complaint table

PROBLEM: In IPD discharge form, complaint names and remarks were
read-only after adding. Unlike OPD consult form where you can edit
complaint names directly in the table.

SOLUTION:
1. VIEW Changes (discharge_create.php):
   - Changed complaint name and remark columns from static <td> to editable <input>
   - Added data attributes for complaint ID and original values
   - Added CSS classes: discharge-complaint-name-input, discharge-complaint-remark-input

2. JAVASCRIPT Changes:
   - Added saveComplaintField() function for AJAX updates
   - Event handlers on blur to save changes
   - Enter key support to blur and save
   - Visual feedback: green border on success, red on error
   - Auto-updates original value after successful save

3. CONTROLLER Changes (Ipd_discharge.php):
   - Added update_complaint_field() method for AJAX endpoint
   - Updates ipd_discharge_comp table (comp_report or comp_remark)
   - Returns JSON success/error response

BENEFITS:
- Same user experience as OPD consult form
- Edit complaints/remarks without page reload
- Immediate feedback on save success/failure
- Type correction and updates without removing and re-adding rows
2026-06-06 05:12:23 +05:30
5847f642d8 Make discharge preview top panel sticky and add action buttons
IMPROVEMENTS:
1. Sticky top panel - stays visible when scrolling
2. Action buttons moved to top panel for easy access
3. Compact layout with better button organization

CHANGES:
- Added .discharge-preview-sticky-header class with position: sticky
- Moved all action buttons to top panel:
  * Back to Edit button (with edit icon)
  * Print on Letter Head dropdown (PDF icon)
  * Print on Plain Paper dropdown (file icon)
- Added icons to buttons for better UX
- Made buttons smaller (btn-sm) to fit in top panel
- Reduced margins and padding for compact layout
- Removed duplicate buttons from bottom
- Top panel now includes: header, patient info, action buttons, template selector

BENEFITS:
- Buttons always visible even when scrolling long discharge summary
- No need to scroll up/down to access print functions
- Better workflow for reviewing and printing
2026-06-06 04:46:17 +05:30
3de14194a7 Add Preview button at top of IPD discharge form
IMPROVEMENT: Preview button now always visible at top of page

PROBLEM: Preview button was at bottom in sidebar, often hidden
and users had to scroll to find it.

SOLUTION:
- Added Preview button at top right after patient header
- Button labeled 'Preview Discharge Summary' with eye icon
- Original sidebar button still present for convenience
- Top button uses same onclick handler as sidebar button

Now users can easily preview discharge summary without scrolling.
2026-06-06 04:42:00 +05:30
3e21ab57b0 Make diagnosis column editable in OPD consult form
- Convert diagnosis name from static text to editable input field
- Add event handlers for diagnosis name editing (input, blur, keydown)
- Users can now edit diagnosis text after adding it to the table
- Duration and Date remain editable as before
- Enter key moves focus from diagnosis to duration field
- Auto-sync with selectedDiagnosisItems and SNOMED JSON on edit
- Apply proper SNOMED styling (blue text) only when concept_id exists
2026-06-06 02:57:54 +05:30
09c3be0755 Fix jQuery CSS error in complaint name input
- Fix 'can't access property toUpperCase' error when rendering complaint table
- Apply SNOMED styling conditionally only when complaint has concept_id
- Use proper jQuery css() object notation instead of string
2026-06-06 02:54:00 +05:30
d156e26ac1 Make complaint column editable in OPD consult form
- Convert complaint name from static text to editable input field
- Add event handlers for complaint name editing (input, blur, keydown)
- Users can now edit complaint text after adding it to the table
- Frequency, Severity, Duration remain editable as before
- Enter key moves focus from complaint to frequency field
- Auto-sync with selectedComplaintItems and SNOMED JSON on edit
2026-06-06 02:50:44 +05:30
8ef46cddb1 Add permission for Admin to edit patient name anytime
- Add billing.patient.edit-name-anytime permission to AuthGroups
- Update patient edit time restriction from 12 hours to 24 hours
- Modify Person_Edit_V to check for edit-name-anytime permission
- Admin can now edit patient name field (input_name) even after 24-hour window
2026-06-05 17:33:31 +05:30
718e01156d Revert card/modal/container borders to original light colors
User feedback: Form controls with dark borders (#555) work fine, but
card/modal/container borders looked bad with dark colors.

Reverted to original light borders:
- Cards, card-header, card-footer: #ebeef4 (light gray)
- Modals: #ebeef4 (light gray)
- Dropdowns: #ebeef4 (light gray)
- Breadcrumb: #ebeef4 (light gray)
- List groups: #ebeef4 (light gray)
- Box/Panel components: #ebeef4 (light gray)
- Profile/User cards: #ebeef4 (light gray)
- Dashboard cards: #ebeef4 (light gray)
- Sidebar/Header: #ebeef4 (light gray)
- Tables: #ddd (moderate gray, slightly darker than cards)

KEPT dark borders (user says these work fine):
- Form controls (input, select, textarea): #555 (dark gray)
- Form control focus: #333 (very dark)
- Input groups: #555 (dark gray)
- Select2: #555 (dark gray)
- jQuery UI: #666 (dark gray)

Final result: Dark, highly visible borders only on interactive form
controls. Subtle, professional light borders on structural containers.
2026-06-05 16:20:21 +05:30
12610b4b8b Add dark border theme for better visibility on old LED screens
Created custom CSS file to enhance visibility on older displays:
- Darker border colors for all form controls (#555 instead of light grays)
- Enhanced contrast for inputs, selects, textareas
- Darker card borders (#999)
- Darker table and modal borders
- Better visibility for buttons, dropdowns, alerts
- Updated Select2, jQuery UI, and DataTables borders

Files changed:
- public/assets/css/custom-theme-dark-borders.css (NEW)
  * Comprehensive dark border overrides with !important flags
  * Covers all Bootstrap and custom components

- app/Views/welcome_message.php
  * Included custom-theme-dark-borders.css after main style.css

- app/Views/auth/login.php
  * Included custom-theme-dark-borders.css for login page

- app/Views/storestock/_niceadmin_theme.php
  * Updated inline CSS border colors from light to dark
  * Changed #ebeef4, #dfe3ea, #e9edf5 to #555, #666, #888, #999

Theme now provides better contrast for old LED monitors with darker,
more visible borders across all UI components.
2026-06-05 16:10:38 +05:30
6f6286f427 Add {{Tadvise_test_list}} placeholder for investigation test names
Created new OPD template placeholder to display investigation test names
as a formatted HTML list, separate from the textarea {{investigation}}.

Changes:
- app/Controllers/Opd.php:
  * Added $rxInvestigationTestList variable in buildLegacyDashboardTemplateVars()
  * Builds HTML <ul> list from rx_investigations test names
  * Added 'Tadvise_test_list' token to return array

- app/Views/billing/opd_template_builder.php:
  * Added 'Tadvise_test_list' to $opdConsultSet placeholder list
  * Now appears in "OPD Consult" group in template builder

Usage in OPD templates:
- {{investigation}} = comma-separated test names (for textarea)
- {{Tadvise_test_list}} = formatted HTML bullet list of test names (for print/display)

Example output:
<ul style="margin:3px 0 0 16px;padding:0;list-style-type:disc;">
  <li>CBC (Complete Blood Count)</li>
  <li>USG WHOLE ABDOMEN</li>
  <li>ECG (Electrocardiogram)</li>
</ul>
2026-06-05 15:15:15 +05:30
561adb9647 feat(discharge): add department and time placeholders 2026-06-05 11:05:00 +05:30
23fd1bf73f fix(discharge): render html fragments and reorder sections 2026-06-05 10:42:14 +05:30
0b05d7284c feat(discharge): support section placeholders 2026-06-05 10:24:31 +05:30
55e56176aa fix(discharge-ui): simplify preview and remove ABDM sandbox panel 2026-06-05 09:40:30 +05:30
c9c70a9ce5 fix(discharge): support borderless medication table in preview and PDF 2026-06-05 08:15:33 +05:30
3d8ebb1ed3 fix(discharge-preview): match table border CSS with PDF output 2026-06-05 08:08:30 +05:30
f341e8e76e fix(discharge-template): make delete endpoint reliable for URL and AJAX 2026-06-05 07:37:39 +05:30
a169ab174b fix(discharge): render header/footer hospital placeholders in PDF 2026-06-05 07:33:07 +05:30
fdb7c15f85 Fix discharge template page edit flow and AJAX save/delete 2026-06-05 07:12:58 +05:30
ecb55e7329 Add page settings and header footer support to discharge templates 2026-06-05 06:22:13 +05:30
226f956985 Add discharge preview and PDF quick-launch to template settings 2026-06-05 06:17:59 +05:30
a1ba8f0e6b Enhance OPD template placeholders and list rendering 2026-06-05 03:48:24 +05:30
b3e8a1a692 Refine OPD template builder UI and preview behavior 2026-06-05 03:34:08 +05:30
45c36e730c Fix diagnosis chip duplication in consult form 2026-06-04 14:22:34 +05:30
b575560a00 Fix complaint chip duplication in consult form 2026-06-04 14:09:24 +05:30
f079f32f58 Restore legacy pharmacy reports and fix net/payment totals 2026-06-01 10:53:27 +05:30
252f911fad Add pharmacy invoice permissions and discount print fixes 2026-06-01 10:13:40 +05:30
b12652d6e0 Align ABDM bridge workflow APIs and add report doctor mapping 2026-06-01 07:02:34 +05:30
0ebf8d2a8a ABDM: enforce PDF-backed report submit and improve gateway tracking 2026-05-31 04:17:39 +05:30
7253fa0cca Improve radiology template workflow and editor stability 2026-05-30 18:01:20 +05:30
78c23af7e5 Checkpoint: pathology panel modal workflow, gateway component search, and ABDM-style component/print editors 2026-05-30 06:32:30 +05:30
e449af8137 fix(pharmacy): make packing numeric in product form 2026-05-26 13:25:55 +05:30
298647b80b fix(pharmacy): finalize product page panel toggle and GST selector behavior 2026-05-26 13:07:46 +05:30
032ff4f1ab fix(ui): disable ajax cache for dynamic panel loads 2026-05-26 13:07:03 +05:30
89a4053ede fix(drug-master): keep search shell visible with nested sub panel 2026-05-26 06:20:56 +05:30
fc2ccc91c2 fix(drug-master): keep add edit flow in medical-main container 2026-05-26 06:15:14 +05:30
4ed366ccb2 feat: commit all pending page and ABDM gateway updates 2026-05-26 06:04:34 +05:30
c97db078a9 fix(product-edit): use short formulation master and manufacturer payload name 2026-05-26 06:02:26 +05:30
e5899e59ac Fix drug autocomplete to show medicine name over identifiers 2026-05-25 14:38:06 +05:30
e3290625cc Pharmacy autocomplete: Tab key selects highlighted medicine 2026-05-25 14:14:51 +05:30
2941fadcac Pharmacy product edit: suggestion keyboard nav + immediate parsed autofill 2026-05-25 14:12:33 +05:30
e221581578 Pharmacy product edit: smarter medicine autofill from ABDM label/detail 2026-05-25 14:07:11 +05:30
0558ac5a2e Pharmacy: add ABDM drug terminology autocomplete + canonical mapping 2026-05-25 13:57:56 +05:30
12cacc3a9c Pharmacy drug master: switch to AJAX DataTable search 2026-05-25 12:47:14 +05:30
e15d876a3f Fix ABDM OPD HMS patient profile link route to person_record 2026-05-25 12:14:23 +05:30
34ff92f685 fix(abdm-opd): open pdf print links directly instead of ajax modal load 2026-05-24 07:36:20 +05:30
fcc7ef50e6 fix(abdm-opd): make addopd/showfee workflow functional inside modal 2026-05-24 07:32:49 +05:30
d6c94a0972 feat(abdm-opd): open add OPD visit in modal iframe 2026-05-24 07:26:38 +05:30
8a5624264c feat(abdm-opd): open OPD registration inside modal iframe 2026-05-24 07:25:52 +05:30
c590087a60 feat(abdm-opd): editable pre-save patient form for Register OPD 2026-05-24 07:16:32 +05:30
8a7b4440c5 fix(abdm-opd): prevent inline payload parsing error in Register OPD modal 2026-05-24 07:08:33 +05:30
b352073ec6 feat(abdm-opd): duplicate-aware Register OPD flow with existing/new patient confirmation 2026-05-24 07:04:42 +05:30
fc50158418 fix(abdm-opd-queue): keep called token visible after call action 2026-05-24 06:56:25 +05:30
23cca1f9ba feat(abdm): proper FHIR bundles for lab reports and IPD discharge
- FhirR4Builder: rewrite buildLabReportBundle() with DiagnosticReportLab
  profile, structured Observation valueQuantity/valueString, reference
  ranges, interpretation codes, Binary+DocumentReference for HTML report,
  Encounter resource, HFR-based bundle identifier system

- FhirR4Builder: rewrite buildDischargeSummaryBundle() with optional
  Practitioner/Organization params, structured ABDM sections (chief
  complaints 422843007, medical history 1003642006, investigations
  721981007, procedures 1003640003, medications 721912009, follow-up
  736271009), HFR-based bundle identifier system

- AbdmGateway: shareIpdDischargeBundle() now builds a real
  DischargeSummaryRecord FHIR bundle and posts via pushRecord()
  (POST /v3/records/push) instead of the stale shareIpdDischargeBundle()

- AbdmGateway: shareDiagnosisReportBundle() now builds a real
  DiagnosticReportRecord FHIR bundle and posts via pushRecord()
  instead of the stale shareDiagnosisReportBundle()

- AbdmGateway: add getHospitalProfileForFhir() and mapLabTypeToTitle()
  helpers; fix pre-existing undefined \ bug in
  getActiveConsentRecord()

- Add ABDM_FHIR reference package, AbdmBridgeLog controller/view,
  bridge record migration, debug scripts and misc UI/settings updates
2026-05-23 04:41:59 +05:30
1b6f2c2db7 feat: Add Submit to ABDM button on FHIR bundle preview
- POST Opd_prescription/fhir_bundle_submit endpoint:
  loads stored FHIR bundle, fetches patient/OPD/doctor context,
  calls EAtriaBridgeConnector::pushRecord to push to bridge
- Standalone preview page (/Opd_prescription/fhir_bundle_preview/N):
  added Submit to ABDM Bridge button with CSRF-safe AJAX + inline
  success/error alert
- FHIR modal in task_board.php: added Submit to ABDM button next
  to Copy JSON; JS reads _fhirOpdId/_fhirSessionId and posts to
  fhir_bundle_submit with CSRF token refresh
2026-05-22 15:54:13 +05:30
ba6b479da6 fix: add arrow-key/Enter/Escape navigation for SNOMED dropdown in FHIR form 2026-05-20 03:21:06 +05:30
0fe556f37e fix: preserve doctor original text in FHIR form; add live complaint/diagnosis terms to preview 2026-05-20 03:14:17 +05:30
78060d03c8 feat: FHIR form view — inline diagnosis SNOMED edit + show doctor's original text 2026-05-20 03:02:03 +05:30
4250000d43 feat: FHIR form view — inline complaint SNOMED edit with live search and save 2026-05-20 02:49:36 +05:30
a0989d3a4b feat: FHIR preview modal — Form View tab with patient/complaints/diagnosis/vitals/medications cards 2026-05-20 02:34:00 +05:30
44fbd5d1cc feat: FHIR preview modal — Update Codes dropdown + code quality badges 2026-05-20 02:17:23 +05:30
0dd6a18167 feat: Clinical Master — inline table style with expand-in-place SNOMED assignment 2026-05-20 01:49:00 +05:30
32c1dc20e1 feat: Clinical Master workspace — Complaints + Diagnosis edit with SNOMED CT search 2026-05-20 01:25:01 +05:30
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
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
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
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
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
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
ced87420b4 Remove payout invoice column and align datatable ordering for grouped pool 2026-04-30 02:05:07 +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
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
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
cc5018568b Add HealthPlix fetch callback endpoint and Apache proxy rollout templates 2026-04-28 06:29:29 +05:30
d230d8960d feat: add configurable sidebar auto-hide in hospital settings 2026-04-27 14:32:31 +05:30
fdd3256ecb fix: add patient history back navigation and restore patient search datatable 2026-04-27 12:05:43 +05:30
6ae9a3516f feat: add HealthPlix OPD sync flow with settings, diagnostics, and sync ID persistence 2026-04-27 08:32:51 +05:30
f610adf2fe feat: add user profile photo upload and show avatar in header 2026-04-25 09:52:21 +05:30
4a4ef5b677 fix: replace all CDN dependencies with local assets for offline use (DataTables, Select2, CKEditor4, Google Fonts removed) 2026-04-25 09:20:16 +05:30
846e21ce4b billing: add consult history action labels in profile and search 2026-04-22 11:45:38 +05:30
7d09bc3354 billing: refine consult history modal header and close action 2026-04-22 11:21:05 +05:30
2e76aab171 billing: make OPD scan modal fullscreen 2026-04-22 11:14:22 +05:30
29c6e971e4 billing: add OPD scan modal zoom/pan/rotate hotkeys and help text 2026-04-22 11:11:06 +05:30
d02244444e finance/storestock: implement cash submission audits, bank settlements, and opd payout tracking 2026-04-22 10:53:20 +05:30
7e4903bd68 billing: add patient history action and legacy-style OPD history view 2026-04-22 10:33:29 +05:30
1d2bfdb7a6 finance: replace OPD payout draft prompt edit with modal form 2026-04-22 10:24:26 +05:30
eb13872f43 Finance bank audit: settlement tab/filter refinements, bank-only selection, and summary metrics 2026-04-21 19:06:16 +05:30
030f674f05 Add icon-only shortcut links to top nav bar (Patient, IPD, OPD Appointment, Pharmacy) 2026-04-18 13:56:00 +05:30
fbbecee3b4 feat(ipd-charges): group delete, sort order, Up/Down buttons, foldable billing panels
- Safe delete for empty IPD charge groups with CSRF-safe AJAX
- Migration: add sort_order to ipd_item_type (backfilled)
- Sort order UI on create/edit/list views; persist in controller/model
- Up/Down swap buttons on group list (AJAX swap endpoint + CSRF refresh)
- Fix 500 on edit screen: restore missing getItemTypeById() in ItemIpdModel
- IpdBillingModel: propagate sort_order ordering to ipd-charges and bill-details tabs
- Billing IPD Charges tab: Bedside Clinical/Nursing Charge and Doctor Visit Charge panels now collapsible, start collapsed
2026-04-18 06:56:38 +05:30
b98b1e6f4a Fix predefined advice +Add firing twice due to duplicate document event binding 2026-04-17 05:22:45 +05:30
7612d738aa Make OPD scan list delete self-contained AJAX with inline CSRF sync 2026-04-17 04:50:40 +05:30
4d46ad1492 Fix scan list delete button blocked by carousel overlay on single-image view 2026-04-17 04:48:13 +05:30
f7c419c25e Harden OPD scan delete link fallback when modal CSRF helpers are unavailable 2026-04-17 04:45:35 +05:30
1cea1495fc Fix OPD scan delete button for direct file-list page and AJAX modal 2026-04-17 04:41:45 +05:30
56a0fb83a4 Fix consult examination autocomplete selection behavior 2026-04-17 03:21:34 +05:30
1084ef8875 Fix: {{advice}} prints as-is (no Hindi/AI conversion); fix Schema Diff truncation 2026-04-16 12:31:42 +05:30
85ce007b26 Rename investigation toggle to Custom Investigation 2026-04-14 22:03:16 +05:30
287b0eb603 Adjust investigation toolbar buttons 2026-04-14 21:57:04 +05:30
aae6211f48 Add investigation shortcuts manager panel 2026-04-14 21:51:49 +05:30
779dbcbaa1 Show formulation with medicine name in OPD medicine list 2026-04-13 12:28:01 +05:30
93fe7741fa Show medicine formulation in OPD medicine autotext suggestions 2026-04-13 12:22:42 +05:30
f99f48b62f fix: restrict scan delete to 24h or same date 2026-04-11 04:49:59 +05:30
7233f5979e feat: auto visit-done on scan save and add scan delete actions 2026-04-11 04:45:45 +05:30
b50d72207e refactor: set number input step to 1 across views 2026-04-10 21:16:25 +05:30
9297849c8a fix: correct IPD balance display when computed balance is zero 2026-04-10 21:07:01 +05:30
6782aee1a4 fix: use computed item totals for IPD gross/net in bill views 2026-04-10 21:03:17 +05:30
a850e3229a fix: close lingering complaint autocomplete suggestions in consult form 2026-04-10 18:36:26 +05:30
54d0afaf95 fix: default OPD appointment filter to Waiting on load and refresh 2026-04-10 14:14:14 +05:30
385183fbe2 feat: Add Print Cont. Paper template selection to Doctor Master 2026-04-10 13:19:47 +05:30
910f46b06c feat: add Doctor Master OPD validity editing with hospital fallback
- Add OPD Validity (Days) field in Doctor add/edit forms\n- Save/update doctor_master.opd_valid_no_days from Doctor module\n- Use hospital_setting fallback keys when doctor validity is blank/zero\n- Apply fallback consistently in OPD showfee, print expiry, and running_opd lookup window\n- Supports hospital-wide defaults while preserving doctor-specific overrides
2026-04-10 12:58:17 +05:30
21ddeefe40 fix: Running OPD zero-value validity, update_doc_field HTTP 500, PDF Unicode font (Devanagari)
- Opd.php showfee(): exclude zero-amount OPD from validity window query
- Opd.php confirm_opd(): anchor last_opdvisit_date to most recent paid OPD for zero-value running
- Opd.php buildOpdLetterPrintData(): use paid OPD start date for expiry on zero-value entries
- OpdModel.php insertOpd(): exclude fee_type=3/zero-amount from running_opd_id lookup; anchor visit count to paid OPD start when isZeroValueRunning
- DoctorDocument.php update_doc_field(): wrap in try/catch, schema-safe payload via filterPayloadByExistingColumns, structured JSON errors
- DoctorDocument.php create_final(): configure mPDF with FreeSans/FreeSerif (GNU FreeFont), useOTL=0xFF, autoScriptToLang=true for Devanagari/Hindi rendering
- doc_letterhead_print.php: add body/p/td/th font-family freesans for PDF Unicode output
2026-04-10 12:30:15 +05:30
a81162f954 Polish payment request alert wording 2026-04-10 04:20:14 +05:30
ba16e9d635 Fix missing mPDF footer template in org payment receipt 2026-04-10 04:17:24 +05:30
6a0660cad7 Show patient age and gender in OPD list 2026-04-10 03:55:00 +05:30
c534a83ad2 Normalize OPD queue display per doctor day 2026-04-10 03:44:32 +05:30
5a6ca034cd Prevent duplicate Consult button in waiting rows 2026-04-10 03:35:27 +05:30
c7997c34aa Sync OPD screen with live digest and row snapshot 2026-04-10 03:32:08 +05:30
fd21f24c45 Fix OPD status badges to use full DataTable counts 2026-04-10 03:20:15 +05:30
7f131aeae8 Add OPD doctor/date update endpoint and invoice validation feedback 2026-04-09 19:47:57 +05:30
b4ae081d28 Add refer doctor filter to diagnosis report 2026-04-09 19:11:39 +05:30
bb066399f9 Set OPD Total Report default dates to today 2026-04-09 19:03:31 +05:30
aa2e092758 Add OPD Total Report with doctor/type/fee filters 2026-04-09 18:44:35 +05:30
ccbc5d7b72 Make OPD scan AI processing manual with button 2026-04-09 06:35:17 +05:30
7275d13500 Add OPD keyword manager and caret-aligned autocomplete 2026-04-09 06:25:03 +05:30
418fb3e5e7 Add cached consult autotype suggestions and doctor/master keyword save 2026-04-09 06:07:46 +05:30
b1d329e462 Port legacy OPD autotype suggestions for complaints, provisional diagnosis, and findings 2026-04-09 06:00:29 +05:30
d2d34572f6 Add doctor-customizable foldable consult sections for key OPD fields 2026-04-09 05:49:48 +05:30
e087b26fc6 Do not render default footer when document print template footer is blank 2026-04-09 04:45:02 +05:30
90ac310cf0 Port CI3 vitals chart and treatment chart forms to CI4 IPD form print (form_no 6 and 7) 2026-04-09 04:26:09 +05:30
441ae0668f Add placeholder panel to document print settings; autocomplete off on med inputs; localStorage medicine cache 2026-04-09 03:43:53 +05:30
fad0d89260 Speed up medicine autocomplete with cache and 10-row limit 2026-04-08 19:47:38 +05:30
2977192017 Make IPD forms dynamic and stop stale OPD refresh polling 2026-04-08 11:41:33 +05:30
1a2dbf5366 feat: upgrade IPD Document Master to OPD-style print builder
- Add paper print settings to IPD templates (page size/custom size/margins)\n- Add Header HTML, Footer HTML, and Style (CSS) support\n- Update IPD PDF renderer to honor template paper settings and header/footer\n- Extend IPD placeholders with logo/QR support: {{H_logo}}, {{H_logo_abs}}, {{hospital_logo_html}}, {{qr_content}}, {{qr_code_html}}\n- Improve token rendering with robust curly placeholder parser for body/header/footer\n- Keep legacy sticker forms aligned with custom label dimensions and migrate old default rows
2026-04-08 07:56:43 +05:30
503c26a70f fix: submit IPD document template edits via ajax 2026-04-07 19:52:28 +05:30
2958f2e9b6 fix: queue no per-doctor-per-day isolation and stop auto-refresh on digest poll
- Queue No (Opd.php::autoCreateOpdQueue, Opd_prescription.php::opd_prescription_save
  and ::ensurePrescriptionSession): changed MAX(queue_no) query to JOIN through
  opd_master.doc_id instead of trusting opd_prescription.doc_id, ensuring queue
  numbering is strictly per-doctor per-day regardless of stale doc_id values in
  opd_prescription rows.

- OPD appointment list: replaced auto-reload-on-digest-change with a manual
  'Refresh' button. When the 8s digest poll detects new data the button turns
  yellow with a 'New' badge; the page only reloads when the user explicitly clicks
  it, preventing disruptive mid-session reloads."
2026-04-07 11:23:20 +05:30
1987b4856b Add ABDM and left-menu permission controls with route filters 2026-04-07 04:33:50 +05:30
5bae9088f3 Permission and menu management updates for Hospital Stock and OPD access 2026-04-07 04:25:02 +05:30
19db43762d Enhance OPD and patient workflows with live updates and UX improvements 2026-04-07 03:27:39 +05:30
16f654289e Move ABDM sandbox to task board and improve OPD queue handling 2026-04-06 13:55:19 +05:30
2fc3d3ddbc fix: remove Queue button from Waiting tab for confirmed paid OPDs 2026-04-06 13:23:14 +05:30
67664ab8ff fix: move confirmed opd appointments into waiting 2026-04-06 13:11:46 +05:30
ca4b4195aa fix: keep new OPD appointments in booked list 2026-04-06 12:51:11 +05:30
b03eb0064a fix: show booked queue actions in waiting list 2026-04-06 12:47:00 +05:30
44cb24c4e1 fix: restore legacy OPD queue workflow 2026-04-06 12:40:34 +05:30
30643c87f8 feat: add scan doc list modal and print medicine formulation prefix 2026-04-06 12:11:56 +05:30
2154af394c fix: build Next Visit chips from opd_nextvisit with date from today 2026-04-06 11:45:08 +05:30
f28fcf2717 feat: auto-create new consult medicines in OPD master with AI/local detail enrichment 2026-04-06 11:38:11 +05:30
c4865f6e03 fix: focus medicine name field after add/update in consult 2026-04-06 11:30:07 +05:30
1843460693 feat: restore Old Prescription panel with add-one/add-all into current consult 2026-04-06 11:24:11 +05:30
2fc4fbd82c fix: use Unicode-compatible Hindi fonts for IPD form PDF rendering 2026-04-06 09:17:48 +05:30
062fc7ab32 feat: Add ABDM Task Board module with ABHA workflow
- Add ABDM sidebar heading and Task Board nav link
- Create migration 000040: abdm_work_tasks table
- Add AbdmTaskBoard controller with backfill methods
- Add AbdmWorkTaskService for task creation/deduplication
- Add AbdmGateway controller for ABDM API integration
- Separate task types: patient_abha_create vs patient_abha_update
- Add lab_report_publish and radiology_report_publish task types
- Patient.php: auto-create ABDM tasks on registration
- Diagnosis.php: auto-create tasks on report verify/finalize
- Task board UI: 7 filter buttons with default Unupdated ABHA view
- Fix SQL crash in backfillLabRadiologyTasks (dynamic column detection)
- Improve load_form AJAX error display with HTTP status + response text
- Add ABDM routes in Routes.php
- Add FHIR R4 builder library updates
- Add bridge sync service updates
2026-04-05 23:42:24 +05:30
9d88aaa2a6 Implement ABDM identity storage and align OPD consult/medicine dose masters 2026-04-04 17:26:40 +05:30
bd5601c131 Fix: force white panel heading text inline in diagnosis detail 2026-04-04 06:08:33 +05:30
e3cb4a475c Fix: force white card header title color in diagnosis detail 2026-04-04 06:03:54 +05:30
d5c81b96ce Fix: Report Operations card header changed to bg-primary text-white 2026-04-04 05:59:19 +05:30
9d68763eb0 Fix: force white text on Report Operations header via inline style (overrides BS5 bg-warning) 2026-04-04 05:56:52 +05:30
7e5ef40f70 Fix: Report Operations card header text white for readability 2026-04-04 05:55:15 +05:30
174484eae2 Diagnosis UI: radiology labels, sub-div navigation, search bar layout, back button fix 2026-04-04 05:49:49 +05:30
2b6b097cca Fix: Person Profile shows patient name and relative on separate lines 2026-04-04 05:46:01 +05:30
71a6a7e36e Charges invoice print: include payment ID and date in receipt details 2026-04-03 15:46:05 +05:30
37976c8cf1 Charges invoice print: show payment details (Cash/Bank receipts, IPD/Org credit) on portrait mode 2026-04-03 15:42:46 +05:30
fd28d6a01e IPD cash balance: fix date range picker submission and parser 2026-04-03 14:13:05 +05:30
e009b748ca OPD templates: add doctor short description placeholder tokens 2026-04-03 13:46:10 +05:30
435192f81a IPD payment receipt: fix modal loader, add PDF print route, and bank mode details 2026-04-03 13:29:03 +05:30
e282289227 Default new patient blood group to Not Define 2026-04-02 17:49:45 +05:30
fc0a2c62d8 fix(ui): use logo.ico favicon in help, license, and stock print pages 2026-04-02 12:27:24 +05:30
bae07392d2 chore(ui-docs): add help/license links, favicon, and branding asset tracking 2026-04-02 12:23:22 +05:30
d8f75b3a29 feat(stock): add modular hospital stock management with dashboard, masters, indents, purchase and reports 2026-04-02 10:28:38 +05:30
7b7c9e510e Bed Status: graphic ward/floor map with patient search, colour-coded bed cards 2026-04-02 06:25:26 +05:30
7b04c8e419 Add Echo modality to diagnosis navigation and charge group setup 2026-04-02 05:12:08 +05:30
2b391705fe Rx print: persist and print Hindi advice from opd_advice 2026-04-01 20:23:10 +05:30
0d500d82b2 Rx print: fix dose translation (prefix match + one-time-a-day), consistent 11px Hindi font 2026-04-01 20:08:00 +05:30
caba6dc84b Rx print: professional font, vitals on one line, advice in Hindi 2026-04-01 20:01:38 +05:30
94e1253e40 Investigation Profile Master: CRUD and consult integration 2026-04-01 18:44:52 +05:30
771fa64778 Investigation Master: CRUD, favourites, specialization filter 2026-04-01 18:26:33 +05:30
e27a69df5d OPD/IPD: add dosage defaults to medicine master form; make drug allergy non-mandatory (default: Allergies Not Known) 2026-04-01 18:12:25 +05:30
a5c604b486 Medicine edit: rename Salt Name label to Substitute 2026-04-01 18:01:51 +05:30
c27e44c9b1 Consult: remove Active/Favorites/All scope buttons, always search all medicines 2026-04-01 17:56:22 +05:30
7ea22378f5 OPD medicine list: move DataTable to server-side ajax 2026-04-01 17:49:02 +05:30
c3bc8f89b8 OPD: simplify medicine list and reuse master dosage defaults 2026-04-01 17:40:50 +05:30
fe1156b68a Fix billing invoice balance/payment flow and deduction UI 2026-04-01 07:23:29 +05:30
874d5ffba6 feat: add granular template permissions for role-based template access
- add new permissions:
  template.opd_print, template.pathology_print, template.diagnosis_print,
  template.document_print, template.ipd_document
- Template controller now accepts new permission keys (with backward-compatible fallbacks)
- IPD Document Master now has independent permission key (template.ipd_document)
- Template index tile visibility updated to use new granular keys
- OPD print template builder now honors template.opd_print permission
- preserve existing behavior via legacy permission fallbacks to avoid role breakage
2026-03-31 06:35:36 +05:30
3294e39b02 fix: parse and render ECG AI report in structured sections
- add formatEcgReportHtml() for ECG-specific presentation
- extract key ECG metrics (vent rate, PR, P/QRS/T, QT/QTc, axis)
- extract common findings (normal sinus rhythm, left axis deviation, borderline ECG)
- render note separately when present
- add robust fallback splitter for noisy OCR ECG strings without delimiters
- route ECG-like reports through ECG formatter in formatAiReportHtml()
2026-03-31 05:22:41 +05:30
001992b2b5 feat: format AI scan report text in history cards
- add formatAiReportHtml() in opd_prescription_basic to render labeled sections
- auto-format loaded patient scan history reports after AJAX load
- format updated report immediately after Run AI response
- keep raw report text for Use Report action while presenting readable UI blocks
- style history report container as light card for clearer visual structure
2026-03-31 05:18:33 +05:30
cf299de505 feat: add Delete button to Rx-Group list
- new rx_group_delete(int rxId) method in Opd_prescription controller
- deletes linked medicines first (opd_prescrption_prescribed_template), then group row
- POST route: Opd_prescription/rx_group_delete/(:num)
- Delete button (red) added to each row in Rx-Group list table
- confirm dialog before delete (shows group name)
- reloads list after delete; clears form if deleted group was loaded
2026-03-31 04:28:18 +05:30
fa599bb6b1 feat: pre-populate Create Rx-Group modal with current consult medicines
- cache session medicine rows in currentSessionMedicineRows on every renderMedicine() call
- when Create Rx-Group modal opens, show all current consult medicines as checkboxes
- all medicines pre-checked by default so they are included in the new Rx-Group
- uncheck any medicine to exclude it from the Rx-Group
- crgcMedicineList built from checked rows; manually added medicines preserved
- medicines listed as chips: Type Name (Dose When Freq) for quick readability
2026-03-31 04:22:46 +05:30
7dc147a397 feat: add medicine entry to Create Rx-Group modal on consult page
- expanded rxGroupCreateModal to modal-xl with two-column layout
- left column: group info (name, complaints, diagnosis, investigation, finding)
- right column: medicine form (name autocomplete, type, dose/when/freq/where, days/qty/remark)
- medicine name search uses medicine_search endpoint with datalist
- type auto-fills on datalist selection (same Chrome input-event fix as main form)
- dose/when/freq/where selects populated from medicineDoseMasterCache (already loaded)
- + Add Medicine adds to local crgcMedicineList array with live table display
- Remove button (x) on each row in the pending medicine table
- Save Rx-Group: creates group then batch-saves all medicines sequentially
- Save & Apply: same as above then applies group to current session
2026-03-31 04:14:30 +05:30
2ae23c0284 feat: add Create Rx-Group button and modal on consult page
- added '+ Rx-Group' button beside Rx Group selector in medicine panel
- added rxGroupCreateModal with Name/Complaints/Diagnosis/Investigation/Finding fields
- pre-fills Complaints and Diagnosis from current consult textarea values
- Save: creates group and refreshes catalog (group appears in selector)
- Save & Apply: creates group and immediately applies it to current session
- error shown inline in modal, catalog reloads after successful create
2026-03-31 04:07:05 +05:30
e167704aed fix: medicine autocomplete shows plain name, type auto-fills on datalist pick
- remove use_count/(0) decoration from datalist option value
- option value is now plain med_name, no star or count suffix
- extract applyMedicineSelection() helper to avoid code duplication
- detect datalist selection inside input callback (Chrome fires input not change)
- type, med-id, favorite button all fill immediately when exact name match found
- change handler simplified: matches against medicineSuggestRows array directly
2026-03-31 03:47:32 +05:30
ad24857720 feat: align consult Rx medicine controls with Rx-Group Add/Edit masters
- consult form medicine Dose/When/Freq changed to dropdowns from dose masters
- added Where dropdown in consult medicine editor and table display
- consult now loads options from Opd_prescription/rx_group_dose_masters
- medicine add/update payload now includes dosage_where
- medicine list now returns dosage_where_label for readable table output
- edit mode supports existing values not present in current master set
- quick chips now map into select options (with safe fallback)
2026-03-31 03:31:26 +05:30
71f24660b0 fix: prevent duplicate Rx-Group edit requests from repeated event binding
- use namespaced delegated handlers in opd_rx_group_workspace
- call off(...namespace...) before on(...) for all click actions
- resolves multiple rx_group_get calls on single Edit click after panel reopen
2026-03-31 03:18:21 +05:30
ab65ba0514 fix: force Browser Mic mode by default for production stability
- default speech mode preference changed to browser
- on consult load, preference is reset to browser and saved
- prevents automatic /stt-proxy calls until server STT is stabilized
- manual mode selector remains available for future server testing
2026-03-30 19:26:30 +05:30
9e91628370 feat: add manual speech mode switch (Auto/Browser/Server)
- Added Mic Mode selector in consult header
- Apply one preference to both Complaints Mic and Med Mic
- Browser mode can be forced to bypass /stt-proxy 400 errors
- Preference persisted in localStorage
- Mode change stops active recordings safely before applying
2026-03-30 19:21:12 +05:30
f82751db27 feat: add browser fallback mode for Med Mic
- Med Mic now supports server mode and browser speech-recognition mode
- auto-select mode from STT server health: server -> browser -> off
- click behavior updated for both modes (start/stop on same button)
- server failure now auto-falls back to browser mode when supported
- Med Mic labels now reflect current mode (server/browser/off)
2026-03-30 19:15:37 +05:30
bfd155510a fix: diagnose and reduce STT 400 errors
- sttProxy now returns detailed upload error info (code, error string, php limits)
- sttProxy accepts fallback upload field name 'file' in addition to 'audio'
- reject empty audio payloads with explicit message
- client: guard against very short/empty blobs before POST to /stt-proxy
2026-03-30 19:12:49 +05:30
311a7bce4b fix: mixed-content block for STT on HTTPS - add server-side proxy
Production runs HTTPS; browser blocks http://139.59.13.39:8000 (mixed content).
Solution: CI4 proxy endpoints forward audio/health check server-side (HTTP→HTTP).

- Home::sttProxy()       POST stt-proxy    - forwards audio to STT server
- Home::sttProxyHealth() GET  stt-proxy/health - pings STT and returns {ok:bool}
- JS: auto-detect window.location.protocol; use proxy URLs on HTTPS,
  direct IP URLs on HTTP (local/dev)
- checkComplaintsSttServer: parse {ok:bool} from proxy health response
2026-03-30 19:03:20 +05:30
e6c9939b09 fix: Med Mic stop button not working - keep btn-medical-stt class on active button
When recording started, setMedicalMicButtonState() removed btn-medical-stt class
from the active button and the click handler (bound to .btn-medical-stt) never
fired on second click, so recording ran forever with no way to stop.
Fix: keep btn-medical-stt class always; only add/remove btn-danger for active state.
2026-03-30 19:01:19 +05:30
7bb539a620 fix: complaints mic - check server STT on init and handle server mode click
- initComplaintsSpeech() now calls checkComplaintsSttServer() async:
  server up → mode 'server', browser fallback → mode 'browser', else 'off'
- click handler now handles both 'server' and 'browser' modes
  (previously only 'browser' was handled, server mode click did nothing)
- show '…' while server health check is in progress to avoid confusion
2026-03-30 18:55:02 +05:30
17e2d8e16b feat: OPD speech-to-text mic, medicine label enhancements & template search
- Add complaints Speech-to-Text (browser + server STT fallback) with interim preview
- Add Medical Mic (server STT) for examination, diagnosis, provisional diagnosis fields
- Add speech-test route + Home::speechTest() view for STT testing
- OPD prescription: resolve dosage/when/frequency labels from lookup tables
- OPD prescription: show generic/salt name below medicine name in print
- OPD prescription: translate complaints/diagnosis/advice/investigation to Hindi for patient
- Add translateToLocalPatientText() helper with English->Hindi medical term map
- Add 'Remove All' medicines button (btn_clear_medicine)
- Add template search box in Load Template modal
- Fix investigation batch add: dedup + guard against concurrent add
- Fix single investigation add: check duplicate before adding
- Fix rx status text overflow: ellipsis + title tooltip
- Remove unused FHIR History and Back to Invoice buttons from Rx header
- .gitignore: exclude public/uploads/* and writable/ayushman/*
2026-03-30 18:46:33 +05:30
d293c261e6 Add configurable footer version setting 2026-03-27 13:38:56 +05:30
b1ba3105c0 Fix AI medicine enrichment fallback and DataTable reinit issues 2026-03-27 04:16:22 +05:30
911e7b50a7 Add Ayushman package import, billing claim sheet, and reporting dashboards 2026-03-26 15:42:40 +05:30
99ec71677a Restore legacy HMS flows and add IPD document master templates 2026-03-24 04:24:19 +05:30
cb2dad8aab Apply Indian date-time format across report tables 2026-03-22 04:03:05 +05:30
50e2a4f145 Enhance report actions with grouped controls and PDF exports 2026-03-22 04:01:06 +05:30
ad70bb2b48 Update App baseURL host handling and report view changes 2026-03-22 00:56:28 +05:30
38093da3b9 Implement IPD admission/discharge editing, bill PDF modes, and invoice list view action 2026-03-21 15:47:18 +05:30
addef91468 Fix legacy billing prints and pathology template compatibility 2026-03-21 02:23:31 +05:30
300ec0e5cf feat: migrate OPD template flow to DB and apply related updates 2026-03-20 18:11:17 +05:30
47d7db6d8b refactor: remove Gemini integration and seed leakage paths
- Remove Gemini runtime fallback from OPD AI text generation and complaint drafting
- Remove legacy Gemini scan extraction path
- Update UI/provider labels to Azure/AI generic naming
- Make AI usage guardrail metrics provider-neutral (ai_today)
- Add seed export sanitization to exclude sensitive hospital_setting and audit entries
- Remove Gemini API audit entry from master seed JSON
2026-03-18 06:18:52 +05:30
ee3193ce43 Add master seed data export and auto-apply during setup install - idempotent REPLACE mode prevents duplicates 2026-03-18 04:41:51 +05:30
d94797a433 Implement finance phase 2 pharmacy workflow and admin hospital/pharmacy profile settings 2026-03-17 04:05:02 +05:30
1dee940ac0 feat(diagnosis): add print templates with image upload and optimize PDF rendering 2026-03-15 06:50:44 +05:30
68dfbaf006 feat(imaging-ai): add DICOM preview and AI diagnosis support 2026-03-13 05:22:50 +05:30
01156a1ee2 Diagnosis: add full-page radiology editor with imaging AI workflow 2026-03-11 03:24:45 +05:30
aa845ac5ff Add report panel updates and related billing/discharge enhancements 2026-03-10 02:43:35 +05:30
2127063c7f Add nursing scan-to-structured workflow and discharge UI polish 2026-03-09 00:12:04 +05:30
13e058db95 IPD discharge: align preview with legacy pathology/report output 2026-03-07 04:15:04 +05:30
0086ab8d65 Skip DataTables init when stock table is in empty-state row mode 2026-03-05 14:57:22 +05:30
503a090dbe Add setup auth schema repair and login diagnostics 2026-03-03 19:17:08 +05:30
498b46952f Add timeout-safe auto schema sync with stop control 2026-03-03 19:02:32 +05:30
9b235cc01f Improve setup installation diagnostics and sync error visibility 2026-03-02 23:09:40 +05:30
eef581a1cf Reduce OPD list response payload by using relative URLs and single status handler 2026-03-01 02:19:24 +05:30
2834362e8f Optimize OPD appointment queries and raise AJAX timeout 2026-03-01 00:56:32 +05:30
76fa8f35b1 Add setup action to create or update admin login user 2026-02-28 23:51:20 +05:30
3e8702d368 Simplify db-tools UI by removing migration table section 2026-02-28 23:37:51 +05:30
a5e4ac6ced Harden schema-sync for large databases with limits and safer preview 2026-02-28 23:09:34 +05:30
9f63cc5501 Add offline master-schema file sync for setup DB tools 2026-02-28 22:45:45 +05:30
d541bbb9ad Allow one-time setup access via .env key for server use 2026-02-28 20:48:27 +05:30
a10908e227 Add one-time DB setup utility for migration scaffolding and lock 2026-02-28 04:42:58 +05:30
614713f76b Implement OPD template builder, doctor template selection, and OPD print integration fixes 2026-02-27 19:44:36 +05:30