devsofttech_hms_ci4/app/Controllers
DevSoftTech Server 51aa6400c8 Fix {{DEPARTMENT}} and {{DOCTOR_NAMES}} placeholder tokens
Problem:
- {{DEPARTMENT}} and {{DOCTOR_NAMES}} placeholders not working in discharge templates
- Complex GROUP_CONCAT query with LEFT JOINs causing issues
- Query might return NULL or fail silently when specializations missing

Solution - getDischargeDoctorNames():
- Removed GROUP_CONCAT to avoid SQL aggregation issues
- Split into two separate queries: doctors first, then specializations
- Changed specialization JOIN from LEFT to INNER to avoid NULL values
- Query doctors from doctor_master separately
- For each doctor, query doc_spec + med_spec to get specializations
- Build full name format: 'Dr. Name [Spec1, Spec2]' or 'Title Name [Spec1, Spec2]'
- Return comma-separated list of all doctors

Technical Changes:
- First query: SELECT d.id, d.p_fname, d.p_title FROM doctor_master
- Second query (per doctor): SELECT m.SpecName FROM doc_spec s JOIN med_spec m
- Use INNER JOIN for specializations to only include valid matches
- Handle missing specializations gracefully (show doctor name without brackets)
- Handle missing title (default to 'Dr.')

getDischargeDepartmentName() - Already Working:
- Tries dept_id from ipd_master
- Queries hc_department table first
- Falls back to ipd_department table
- Falls back to direct department field
- Returns empty string if all methods fail

Token Flow:
1. buildDischargeSummaryTokenVars() calls both functions
2. Returns array with 'DEPARTMENT' and 'DOCTOR_NAMES' keys
3. buildDischargeTemplateTokenVars() merges these tokens
4. Creates lowercase, UPPERCASE, and Ucfirst versions of all tokens
5. applyDischargeTemplateTokens() replaces {{TOKEN}} and {TOKEN} in template

Available Token Variants:
- {{DEPARTMENT}}, {{department}}, {{Department}}
- {{DOCTOR_NAMES}}, {{doctor_names}}, {{Doctor_names}}
- {{DOCTOR_NAME}} (singular alias for same value)

Example Output:
- Single doctor: 'Dr. John Smith [Cardiology]'
- Multiple doctors: 'Dr. John Smith [Cardiology], Dr. Jane Doe [Neurology]'
- No specialization: 'Dr. John Smith'
- With title: 'Prof. John Smith [Cardiology]'

Testing:
- Ensure doc_list field in ipd_master has comma-separated doctor IDs
- Falls back to doctor_id, doc_id, or consultant_id if doc_list empty
- Returns empty string if no valid doctor IDs found
2026-06-07 06:48:58 +05:30
..
Billing Change mPDF default font from thin dejavusans to medium-weight freeserif for better Hindi/Devanagari rendering 2026-06-06 11:19:35 +05:30
Setting fix(discharge-template): make delete endpoint reliable for URL and AJAX 2026-06-05 07:37:39 +05:30
AbdmBridgeLog.php feat(abdm): proper FHIR bundles for lab reports and IPD discharge 2026-05-23 04:41:59 +05:30
AbdmCodingPanel.php feat: SNOMED background coding pipeline + ABDM Coding Panel 2026-05-19 20:40:27 +05:30
AbdmGateway.php Change mPDF default font from thin dejavusans to medium-weight freeserif for better Hindi/Devanagari rendering 2026-06-06 11:19:35 +05:30
AbdmOpdQueue.php Fix ABDM OPD HMS patient profile link route to person_record 2026-05-25 12:14:23 +05:30
AbdmTaskBoard.php Accept OPConsultRecord bundle lookups 2026-06-01 13:34:35 +05:30
Abha.php feat: ABDM OPD Queue + ABHA Register flow + patient ABHA search fix 2026-05-16 04:21:31 +05:30
BaseController.php Implement OPD template builder, doctor template selection, and OPD print integration fixes 2026-02-27 19:44:36 +05:30
Diagnosis.php Change mPDF default font from thin dejavusans to medium-weight freeserif for better Hindi/Devanagari rendering 2026-06-06 11:19:35 +05:30
DoctorDocument.php Improve doctor document workflow and print performance 2026-05-06 02:06:18 +05:30
Finance.php feat: ABDM OPD Queue + ABHA Register flow + patient ABHA search fix 2026-05-16 04:21:31 +05:30
HealthplixCallback.php Fix HealthPlix fetch parsing and refine sidebar headings 2026-04-28 07:28:34 +05:30
HealthplixGateway.php feat: add HealthPlix OPD sync flow with settings, diagnostics, and sync ID persistence 2026-04-27 08:32:51 +05:30
Home.php Add dedicated Save Settings button for user preferences 2026-04-28 13:54:46 +05:30
Invoice.php Fix payment request receipt content and PDF print 2026-04-10 04:16:17 +05:30
Ipd_discharge.php Fix {{DEPARTMENT}} and {{DOCTOR_NAMES}} placeholder tokens 2026-06-07 06:48:58 +05:30
IpdPatient.php Add nursing scan-to-structured workflow and discharge UI polish 2026-03-09 00:12:04 +05:30
Item.php Implement OPD template builder, doctor template selection, and OPD print integration fixes 2026-02-27 19:44:36 +05:30
ItemIpd.php feat(ipd-charges): group delete, sort order, Up/Down buttons, foldable billing panels 2026-04-18 06:56:38 +05:30
Medical.php Restore legacy pharmacy reports and fix net/payment totals 2026-06-01 10:53:27 +05:30
OcasePathLap.php Implement OPD template builder, doctor template selection, and OPD print integration fixes 2026-02-27 19:44:36 +05:30
Opd_prescription.php Persist consult NABH fields via remarks fallback 2026-06-05 05:53:24 +05:30
Opd.php Change mPDF default font from thin dejavusans to medium-weight freeserif for better Hindi/Devanagari rendering 2026-06-06 11:19:35 +05:30
Opdcase.php Add OPD appointment time capture and storage with date+time display 2026-04-28 07:59:47 +05:30
OrgPacking.php Implement OPD template builder, doctor template selection, and OPD print integration fixes 2026-02-27 19:44:36 +05:30
Package.php Implement OPD template builder, doctor template selection, and OPD print integration fixes 2026-02-27 19:44:36 +05:30
Patient.php Add DataTables search box support to patient search - now handles both initial search and live filtering 2026-06-06 14:56:02 +05:30
Payment_Medical.php Implement OPD template builder, doctor template selection, and OPD print integration fixes 2026-02-27 19:44:36 +05:30
Report.php Add refer doctor filter to diagnosis report 2026-04-09 19:11:39 +05:30
Setup.php Fix: {{advice}} prints as-is (no Hindi/AI conversion); fix Schema Diff truncation 2026-04-16 12:31:42 +05:30
Storestock.php Change mPDF default font from thin dejavusans to medium-weight freeserif for better Hindi/Devanagari rendering 2026-06-06 11:19:35 +05:30