diff --git a/public/App/Doctor/index.html b/public/App/Doctor/index.html index 5563a17..8799770 100644 --- a/public/App/Doctor/index.html +++ b/public/App/Doctor/index.html @@ -36,6 +36,7 @@ padding: 0; user-select: none; -webkit-user-select: none; + overflow-x: hidden; } .doctor-header { @@ -48,20 +49,31 @@ z-index: 1000; } - .patient-card { - border: 1px solid #e2e8f0; - border-radius: 12px; + .mobile-patient-card { background: #ffffff; - transition: all 0.2s ease-in-out; - cursor: pointer; - box-shadow: 0 2px 4px rgba(0,0,0,0.02); + border: 1px solid #e2e8f0; + border-radius: 14px; + padding: 14px; + margin-bottom: 12px; + box-shadow: 0 2px 6px rgba(0,0,0,0.04); border-left: 5px solid var(--accent-blue); + transition: all 0.2s ease; } - .patient-card:hover, .patient-card:active { - transform: translateY(-2px); - box-shadow: 0 8px 16px rgba(13,110,253,0.12); - border-color: #0d6efd; + .mobile-patient-card:active { + transform: scale(0.99); + } + + .mobile-patient-card.visited { + border-left-color: #0dcaf0; + } + + .mobile-patient-card.booked { + border-left-color: #6c757d; + } + + .mobile-patient-card.waiting { + border-left-color: #0d6efd; } .nav-pills .nav-link { @@ -98,7 +110,7 @@ .chip-btn { font-size: 11px; - padding: 3px 8px; + padding: 4px 10px; border-radius: 14px; border: 1px solid #cbd5e1; background: #f8fafc; @@ -614,7 +626,7 @@ {/* Main Container */} -
+
{!activeOpd && !activePatient ? (
{/* Top Main Tabs */} @@ -673,10 +685,63 @@ />
- {/* OPD Table / Mobile List */} -
+ {/* MOBILE PROFESSIONAL CARDS LIST (Phones < 768px - NO Left-Right Scroll Needed!) */} +
+ {filteredOpdAppointments.length === 0 ? ( +
+ No OPD appointments found for selected filter. +
+ ) : ( + filteredOpdAppointments.map(app => { + const statusBadgeClass = app.status_key === 'waiting' ? 'bg-primary' + : app.status_key === 'visited' ? 'bg-info text-dark' + : app.status_key === 'booked' ? 'bg-secondary' : 'bg-danger'; + + return ( +
+
+
+ Q #{app.queue_no || app.opd_no || '1'} + + {app.status_label} + +
+ {app.opd_code} +
+ +
+
{app.patient_display_name}
+
+ + {app.age_display || '47 Year'} / {app.gender_label} + + + {app.uhid || '-'} + + + {app.opd_type || 'Cash'} + +
+
+ +
+ +
+
+ ); + }) + )} +
+ + {/* DESKTOP TABLE VIEW (Monitors >= 768px) */} +
- +
@@ -750,9 +815,57 @@ /> -
+ {/* MOBILE CARDS LIST VIEW FOR IPD (Phones < 768px) */} +
+ {filteredIpdPatients.length === 0 ? ( +
+ + No Admitted IPD Patients found. +
+ ) : ( + filteredIpdPatients.map(pat => ( +
+
+ Current Admission + {pat.ipd_code} +
+ +
+
{pat.patient_display_name}
+ + {pat.rname ? `S/D/W of ${pat.rname}` : `(${pat.age_display} / ${pat.gender_label})`} + + +
+ + {pat.bed_label} + + + {pat.uhid} + + + {pat.assigned_doctors || pat.r_doc_name || `Dr. ${authenticatedDoctor.name}`} + +
+
+ +
+ +
+
+ )) + )} +
+ + {/* DESKTOP TABLE VIEW FOR IPD (Monitors >= 768px) */} +
-
Status
+
@@ -768,7 +881,7 @@ ) : (
IPD Code
- No Admitted IPD Patients found for Dr. {authenticatedDoctor.name}. + No Admitted IPD Patients found.