CRITICAL FIXES based on actual database schema analysis:
Problem 1: {{ADMISSION_TIME}} showing 12:00 AM
- Code was looking for: register_time, admission_time (don't exist)
- Actual field: reg_time (stores '14:44' format)
- Fix: Changed to use ipd->reg_time field
Problem 2: {{DISCHARGE_TIME}} showing 12:00 AM
- Code was looking for: discharge_date datetime field
- Actual field: discharge_time (stores '05:30' format)
- Fix: Changed to use ipd->discharge_time field directly
Problem 3: {{DEPARTMENT}} showing blank
- Code was using: hc_department.id field for lookup
- Actual field: hc_department.iId (primary key is iId, not id)
- Fix: Changed WHERE clause from 'id' to 'iId'
Problem 4: {{DOCTOR_NAMES}} showing blank
- Code was looking for: doc_list, doctor_id, doc_id (don't exist)
- Actual field: r_doc_id (referring doctor ID = 12)
- Fix: Changed primary lookup to r_doc_id field
Technical Improvements:
1. Enhanced safeTime() function:
- Added regex parsing for 'HH:MM' time format
- Validates hour (0-23) and minute (0-59) ranges
- Converts 24-hour to 12-hour format with AM/PM
- Example: '14:44' -> '02:44 PM', '05:30' -> '05:30 AM'
- Falls back to strtotime() for datetime formats
- Returns empty string for invalid times
2. Updated getDischargeDoctorNames():
- Primary: ipd->r_doc_id (referring doctor)
- Fallback: ipd->doc_list (comma-separated IDs)
- Fallback: ipd->doctor_id, doc_id, consultant_id
- Queries doctor_master table
- Gets specializations from doc_spec + med_spec
- Format: 'Dr. Name [Specialization]' or 'Title Name [Spec]'
3. Updated getDischargeDepartmentName():
- Changed: WHERE id = dept_id
- To: WHERE iId = dept_id
- Keeps fallback to ipd_department table
- Returns department vName field
4. Updated debug endpoint:
- Now checks: reg_time, reg_time_bak, discharge_time, discharge_time_bak
- Shows: dept_id, r_doc_id, r_doc_name
- Removed non-existent fields from output
Database Schema (from live data):
- ipd_master.reg_time: '14:44' (admission time)
- ipd_master.discharge_time: '05:30' (discharge time)
- ipd_master.dept_id: 2 -> hc_department.iId (vName field)
- ipd_master.r_doc_id: 12 -> doctor_master.id (p_fname field)
Testing:
- Admission Time should show: 02:44 PM (from reg_time '14:44')
- Discharge Time should show: 05:30 AM (from discharge_time '05:30')
- Department should show department name from hc_department
- Doctor Names should show doctor name with specialization