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
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
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
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
eb13872f43
Finance bank audit: settlement tab/filter refinements, bank-only selection, and summary metrics
2026-04-21 19:06:16 +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
07916f3baf
Allow same medicine name with different formulation in OPD save
2026-04-17 09:48:30 +05:30
1cea1495fc
Fix OPD scan delete button for direct file-list page and AJAX modal
2026-04-17 04:41:45 +05:30
a0b724e30d
Fix serve_legacy_upload to also check public/uploads/ (FCPATH)
2026-04-17 04:20:49 +05:30
58ddd77d42
Add fallback route to serve legacy CI3 uploads from project-root uploads/
2026-04-17 04:16:08 +05:30
11fe14089d
Stop auto-filling prescription remarks from structured allergy fields
2026-04-17 03:50:01 +05:30
ec872c984c
Strengthen OPD autocomplete normalization for spacing and punctuation variants
2026-04-17 03:41:01 +05:30
47423a7d38
Normalize OPD autocomplete suggestions and add one-time cleanup command
2026-04-17 03:31:33 +05:30
1084ef8875
Fix: {{advice}} prints as-is (no Hindi/AI conversion); fix Schema Diff truncation
2026-04-16 12:31:42 +05:30
aae6211f48
Add investigation shortcuts manager panel
2026-04-14 21:51:49 +05:30
57397d80e1
Fix OPD print remarks leaking NABH allergy lines
2026-04-14 08:34:46 +05:30
5801b5d276
Refine {{medical}} table widths and instruction row styling
2026-04-14 07:50:50 +05:30
b97bb74a5d
Reformat {{medical}} rows with wide instruction line
2026-04-14 07:43:07 +05:30
0b2ae6ccc1
Broaden consult search candidates for phonetic medicine matches
2026-04-13 13:04:01 +05:30
992fd83ff2
Normalize separator variants in consult medicine SQL search
2026-04-13 12:57:16 +05:30
9e30d69487
Add phonetic matching for consult medicine search
2026-04-13 12:54:33 +05:30
05ff049526
Improve consult medicine search normalization and duplicate blocking
2026-04-13 12:46: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
f748224cd0
fix: count OPD visits up to printed opd date
2026-04-10 21:30:47 +05:30
920f1033c0
fix: compute print total_no_visit from opd_master records
2026-04-10 21:28:15 +05:30
d16a363a92
fix: recalculate IPD billing on panel open, bill-details, and print
2026-04-10 21:11:24 +05:30
2c3552ac07
fix: include medicine qty in {{medical}} consult print placeholder
2026-04-10 14:27:35 +05:30
5ed2bd13ae
fix: include opd continuation template field in doctor template mappings
2026-04-10 13:42:23 +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
eec0642466
fix: OPD running validity period no longer extends per running visit
...
OpdModel.php:
- running_opd_id lookup now uses doctor's configured opd_valid_no_days
instead of hardcoded 4 days (resolveRunningLookupDate helper)
- Doctors with validity > 5 days now correctly link running OPD back
to the original paid OPD even on days 5..N of the window
Opd.php (buildOpdLetterPrintData):
- For running OPD entries (running_opd=1 or opd_fee_type=3), expiry
display now shows "OPD Start Date: [paid visit] | Valid Upto: [paid
visit + validity]" using old_opd record — mirrors Opd_print_1 legacy
behavior and prevents validity window from advancing with each visit
2026-04-10 12:48:28 +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
433b89f426
Fix payment request receipt content and PDF print
2026-04-10 04:16:17 +05:30
385c977d88
Auto-mark OPD visited on consult save or print
2026-04-10 03:59:10 +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
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
aa2e092758
Add OPD Total Report with doctor/type/fee filters
2026-04-09 18:44:35 +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
e087b26fc6
Do not render default footer when document print template footer is blank
2026-04-09 04:45:02 +05:30
9fcb7c9ee1
Apply placeholder resolver to general document body in create_final and normalize escaped newlines
2026-04-09 04:32:44 +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
5299a9d7c2
Resolve {{H_Name}} and other placeholders in document print custom header/footer HTML
2026-04-09 04:04:38 +05:30
5f35d22f86
Fix medicine search cache key format
2026-04-08 20:06:08 +05:30
2795e6255c
Add medicine search DB indexes and prefix query optimization
2026-04-08 19:49:51 +05:30
fad0d89260
Speed up medicine autocomplete with cache and 10-row limit
2026-04-08 19:47:38 +05:30
935d6edd0b
Keep IPD charges visible when optional tab queries fail
2026-04-08 11:52:27 +05:30
cbe861ad53
Guard IPD tab panel-data load to prevent remote ipd-charges 500
2026-04-08 11:48:48 +05:30
d003c67b1e
Harden IPD charges tab render to avoid Whoops on remote
2026-04-08 11:45:25 +05:30
2977192017
Make IPD forms dynamic and stop stale OPD refresh polling
2026-04-08 11:41:33 +05:30
8bc9158e14
fix: support legacy doc_format schema in doctor document workspace
...
- Make docedit_load/doc_input_list/create_doc flows tolerant when doc_format_sub.active is missing\n- Guard master/sub insert/update payloads by existing DB columns to avoid SQL 500 on old dumps\n- Avoid hard dependency on created_at/updated_at/default_print_type print margin columns\n- Keep behavior unchanged on upgraded schemas while restoring compatibility with legacy production data
2026-04-08 10:10:05 +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
bca95f14e6
fix: {{medical}} prints Generic Name instead of Substitute in OPD consult print
...
Root cause: the fallback lookup from opd_med_master used
$labelField = $masterSaltField ?? $masterGenericField
which preferred salt_name (the Substitute / other brand names field) over
genericname (the actual Generic Name / composition). If a prescription row's
inline genericname was empty, the Substitute string was written into it and
then printed as \"Salt/Generic\" in the {{medical}} block.
Fixes applied in three places:
1. Opd.php buildOpdLetterPrintData - master lookup now prefers genericname
2. Opd.php buildOpdLetterPrintData second loop - removed inline salt_name
fallback that overwrote genericname with Substitute value
3. Opd.php buildLegacyDashboardTemplateVars - removed salt_name from the
generic resolution chain used when rendering the medicine table HTML
4. Opd_prescription.php medicine list function - same preferGenericname fix
and removed inline salt_name -> genericname overwrite"
2026-04-07 11:34:57 +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
16f3c95053
Fix OPD template builder sync and formulation formatting
2026-04-07 03:55:53 +05:30
19db43762d
Enhance OPD and patient workflows with live updates and UX improvements
2026-04-07 03:27:39 +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
f8cbaacfb0
perf: remove AI enrichment from consult new medicine save flow
2026-04-06 12:20:44 +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
1843460693
feat: restore Old Prescription panel with add-one/add-all into current consult
2026-04-06 11:24:11 +05:30
8a3157e579
fix: populate last_opdvisit_date token in OPD print templates with previous visit date
2026-04-06 10:42:03 +05:30
2fc4fbd82c
fix: use Unicode-compatible Hindi fonts for IPD form PDF rendering
2026-04-06 09:17:48 +05:30
f09e16c3a2
fix: prevent provisional diagnosis from duplicating diagnosis token in OPD print
2026-04-06 08:38:35 +05:30
7e16ac92c2
fix: dynamic ABHA column SELECT in createOpdPrescriptionWorkTask (unknown column abha_no)
2026-04-06 00:01:08 +05:30
e049ddcf2b
fix: dynamic ABHA column SELECT in openReportEditorPage to handle remote DB schema
2026-04-05 23:57:16 +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
9d2f91e73a
Pathology report list: optional hc_items filter with null-safe fallback
2026-04-03 16:15:23 +05:30
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
fd28d6a01e
IPD cash balance: fix date range picker submission and parser
2026-04-03 14:13:05 +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
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