Commit Graph

139 Commits

Author SHA1 Message Date
ab4b9a39f8 Pathology report list: exclude mixed ultrasound by requiring lab_repotests mapping 2026-04-03 16:09:50 +05:30
d9e4d50dc6 Pathology report list: include all lab_repo templates even if group mapping missing 2026-04-03 16:06:26 +05:30
721f374521 Pathology report list: show templates without strict hc_items join filter 2026-04-03 16:03:12 +05:30
259ea1331a Diagnosis: fix ONLY_FULL_GROUP_BY in edit test data query 2026-04-03 15:55:24 +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
f54cabd7f8 README: complete installation guide for fresh and OEM deployments 2026-04-03 15:33:11 +05:30
1be7b51812 OEM: add spark command oem:export-lab-templates to regenerate seed files 2026-04-03 15:29:11 +05:30
f79d7f50c9 OEM seeder: lab & radiology report templates for fresh installs 2026-04-03 15:18:24 +05:30
fd28d6a01e IPD cash balance: fix date range picker submission and parser 2026-04-03 14:13:05 +05:30
a02340b90c IPD cash balance: fix ONLY_FULL_GROUP_BY on report query 2026-04-03 14:07:54 +05:30
eec58b546d OPD templates: render short description with nl2br 2026-04-03 13:59:57 +05:30
e009b748ca OPD templates: add doctor short description placeholder tokens 2026-04-03 13:46:10 +05:30
34f31aed6a Diagnosis: fix ONLY_FULL_GROUP_BY in lab search queries 2026-04-03 13:32:56 +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
584c9ce59d Fix BedManagement controller header to restore bed-status route 2026-04-02 06:27:52 +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
ddf8fd2345 Rx print: use regex sign extraction for dose Hindi lookup from opd_dose_shed 2026-04-01 20:13: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
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
14a5a4e79a Add InvestigationMasterSeeder: 85 lab tests + 15 investigation profiles 2026-04-01 18:52:40 +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
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
7df04b9ff2 OPD medicine: fuzzy duplicate detection for dosage variants (8MG/8 MG/8) 2026-04-01 17:52:49 +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
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
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
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