Commit Graph

77 Commits

Author SHA1 Message Date
caba6dc84b Rx print: professional font, vitals on one line, advice in Hindi 2026-04-01 20:01:38 +05:30
c3f07db430 Fix consult profile add: avoid duplicate investigation code 500 2026-04-01 19:33:55 +05:30
f4891c0bb4 Fix profile master data loading and remove city_auto_u migration 2026-04-01 19:22:03 +05:30
94e1253e40 Investigation Profile Master: CRUD and consult integration 2026-04-01 18:44:52 +05:30
d06fe77f03 Investigation Master: use legacy investigation key field 2026-04-01 18:33:20 +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
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
6b2c82e808 Map OPD dose Hindi labels from master tables 2026-04-01 08:46:29 +05:30
a9b5e76fc9 Improve OPD prescription print template variables 2026-04-01 07:58:48 +05:30
fe1156b68a Fix billing invoice balance/payment flow and deduction UI 2026-04-01 07:23:29 +05:30
3088d1fc85 Fix OPD print placeholders for consult fields
- Add fallback key resolution for complaints, diagnosis, provisional diagnosis, and finding examinations
- Expose placeholder aliases for mixed-case and lowercase template variables
- Keep provisional diagnosis precedence over diagnosis when present
2026-03-31 07:20:35 +05:30
af033c24e0 Add temporary debug logging to OPD paper settings save/read flow
Captures:
- Storage key being used
- Payload length
- Which candidate keys are checked
- Persistence verification results

Remove this commit after testing confirms the fix works
2026-03-31 06:55:59 +05:30
edd577e3e7 Fix OPD paper settings save failure: use short hashed keys + legacy fallback
- Shortened template-scoped paper setting keys to avoid s_name length limits in legacy schemas
- Added legacy key fallback so existing saved settings still load
- Updated rename/delete/reset flows to handle both new and legacy key aliases safely
- Restored corrupted buildOpdLetterPrintData method that broke class structure

This fixes the 'Unable to save OPD paper print settings' error when saving new templates
2026-03-31 06:55:06 +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
f7b9a51c47 fix: sanitize noisy OCR output for OPD scan AI results
- add sanitizeExtractedScanText() to clean OCR text before analysis/storage
- strip non-ASCII/control noise that appears as mixed-script junk characters
- remove repeated junk tokens (e.g. ffffff, repeated words)
- add ECG-specific OCR normalization (KECG->ECG, Uniconfirmed->Unconfirmed, avt->aVL, VT->V1)
- apply sanitization to both OCR sources (document intelligence and vision fallback)
- keep fallback behavior when sanitization returns empty
2026-03-31 05:12:56 +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
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
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
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
7ee67ff537 Fix collection total query for ONLY_FULL_GROUP_BY 2026-03-22 04:07:16 +05:30
50e2a4f145 Enhance report actions with grouped controls and PDF exports 2026-03-22 04:01:06 +05:30
a519525fa3 Fix diagnosis report query for ONLY_FULL_GROUP_BY 2026-03-22 01:16:24 +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
145f9fba69 fix: harden hospital logo upload handling 2026-03-19 20:32:48 +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
4adc6d79d9 fix: redact Gemini key; exclude audit/log tables from seed exporter
- Redact AIzaSy Gemini key from clinical_audit_trail entries in seed JSON
- Add default never-export denylist to exportMasterSeedData() so that
  clinical_audit_trail, lab_log, bridge_sync_queue and session tables are
  always skipped when setup.seed.export_tables is not configured.
  This prevents API keys set via the admin UI from leaking into git via
  the audit trail even after being deleted from hospital_setting.
2026-03-18 06:13:30 +05:30
1856d990eb fix: add city_auto_u migration and fix HospitalProfile upload mkdir error
- Add migration 2026-03-18-000028_CreateCityAutoUTable.php to create
  the missing city_auto_u table (city, district, state columns) used
  by PatientModel::getCitySuggestions() — resolves 500 on /billing/patient/city

- Fix HospitalProfile::save() to check directory creation success before
  moving uploaded logo files; returns clean JSON error instead of
  throwing HTTPException when public/assets/images/ is not writable
2026-03-18 06:01:01 +05:30
1e2a86708f Fix seed export blank output with case-insensitive table resolution and fallback export 2026-03-18 05:12:20 +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
67fbc68c1c Prioritize parent tables and remove restrictive sync table cap 2026-03-18 03:19:50 +05:30
31e7c21dd4 Order schema create statements by FK dependencies 2026-03-18 03:12:55 +05:30
47b957bf18 Handle referenced-table FK errors by creating tables without FK fallback 2026-03-18 03:08:22 +05:30
b9dc1afe4b Fix schema sync FK dependency ordering with retry passes 2026-03-18 03:06:22 +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
efd509d3ac Fix MariaDB aggregate alias error in store stock ratio query 2026-03-05 14:53:28 +05:30