fix ui issues
Build Curio HMS / build-and-deploy (push) Successful in 47s Details

This commit is contained in:
Deep Koluguri 2026-05-24 17:53:59 -04:00
parent dfd09f554c
commit abb3f7424b
3 changed files with 140 additions and 45 deletions

View File

@ -1,4 +1,4 @@
/* --- DASHBOARD STYLES --- */ /* --- DASHBOARD STYLES --- */
:root { :root {
/* Dashboard specific overrides if any */ /* Dashboard specific overrides if any */
} }
@ -1581,25 +1581,68 @@ body.zen-mode-active .dash-header {
/* Compact Sidebar Rail */ /* Compact Sidebar Rail */
.sidebar.compact-rail { .sidebar.compact-rail {
width: 70px; width: 70px;
padding: 2.5rem 0.5rem;
align-items: center;
overflow-x: hidden; overflow-x: hidden;
} }
.sidebar.compact-rail .logo {
padding-left: 0;
margin-bottom: 3.5rem;
justify-content: center;
width: 100%;
}
.sidebar.compact-rail .logo-text, .sidebar.compact-rail .logo-text,
.sidebar.compact-rail nav a span:not(:first-child), .sidebar.compact-rail .user-profile .info,
.sidebar.compact-rail .user-profile .info { .sidebar.compact-rail .nav-text {
display: none; display: none !important;
} }
.sidebar.compact-rail a { .sidebar.compact-rail .side-nav {
font-size: 0; width: 100%;
color: transparent; align-items: center;
} }
.sidebar.compact-rail a span { .sidebar.compact-rail .side-nav a {
font-size: 1rem; justify-content: center;
color: white; width: 44px;
display: inline-block; height: 44px;
padding: 0;
border-radius: 12px;
transition: var(--transition);
}
.sidebar.compact-rail .side-nav a span {
font-size: 1.25rem;
margin: 0;
}
.sidebar.compact-rail .user-profile {
padding-left: 0;
padding-right: 0;
justify-content: center;
width: 100%;
}
.sidebar.compact-rail .logout-btn {
justify-content: center;
width: 44px;
height: 44px;
padding: 0;
margin-top: 1.5rem;
border-radius: 12px;
}
.sidebar.compact-rail .logout-btn span {
font-size: 1.25rem;
margin: 0;
} }
.sidebar.compact-rail + .dashboard-main { .sidebar.compact-rail + .dashboard-main {
margin-left: 70px; margin-left: 70px;
} }
.sidebar.compact-rail + .dashboard-main { margin-left: 70px; } @media (min-width: 1025px) {
.zen-workspace-soap {
height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
}
.soap-container {
flex: 1;
overflow-y: auto;
}
}

View File

@ -1,4 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
@ -20,14 +20,14 @@
<span class="logo-text" data-tenant-name>Curio</span> <span class="logo-text" data-tenant-name>Curio</span>
</div> </div>
<nav class="side-nav" id="sideNav"> <nav class="side-nav" id="sideNav">
<a href="#" data-section="overview" class="active"><span>🏠</span> Overview</a> <a href="#" data-section="overview" class="active"><span>🠠</span> <span class="nav-text">Overview</span></a>
<a href="#" data-section="queue"><span>👥</span> Queue</a> <a href="#" data-section="queue"><span>👥</span> <span class="nav-text">Queue</span></a>
<a href="#" data-section="patients"><span>📂</span> Patients</a> <a href="#" data-section="patients"><span>📂</span> <span class="nav-text">Patients</span></a>
<a href="#" data-section="pharmacy"><span>💊</span> Pharmacy</a> <a href="#" data-section="pharmacy"><span>💊</span> <span class="nav-text">Pharmacy</span></a>
<a href="#" data-section="lab"><span>🔬</span> Lab</a> <a href="#" data-section="lab"><span>🔬</span> <span class="nav-text">Lab</span></a>
<a href="billing.html" data-section="billing" data-external><span>💳</span> Billing & Accounts</a> <a href="billing.html" data-section="billing" data-external><span>💳</span> <span class="nav-text">Billing & Accounts</span></a>
<a href="staff.html" data-section="staff" data-external><span>👔</span> Staff & Payroll</a> <a href="staff.html" data-section="staff" data-external><span>👔</span> <span class="nav-text">Staff & Payroll</span></a>
<a href="#" data-section="settings"><span>⚙️</span> Settings</a> <a href="#" data-section="settings"><span>âš™ï¸ </span> <span class="nav-text">Settings</span></a>
</nav> </nav>
<div class="user-profile"> <div class="user-profile">
<div class="avatar">DS</div> <div class="avatar">DS</div>
@ -35,9 +35,10 @@
<strong>Dr. Sharma</strong> <strong>Dr. Sharma</strong>
<span>Cardiologist</span> <span>Cardiologist</span>
<div style="font-size: 0.65rem; color: #94a3b8; margin-top: 0.25rem;">Build: 1.4.0-ZEN</div> <div style="font-size: 0.65rem; color: #94a3b8; margin-top: 0.25rem;">Build: 1.4.0-ZEN</div>
<a href="login.html" class="logout-btn"><span>🚪</span> Logout</a>
</div> </div>
</div> </div>
<a href="login.html" class="logout-btn"><span>🚪</span> <span class="nav-text">Logout</span></a>
<textarea id="consultationNotes" style="position: absolute; width: 1px; height: 1px; opacity: 0.01; pointer-events: none;"></textarea>
</aside> </aside>
<main class="dashboard-main"> <main class="dashboard-main">
@ -116,7 +117,7 @@
<!-- Left: Full-Height Queue (15%) --> <!-- Left: Full-Height Queue (15%) -->
<aside class="zen-pipeline full-height" id="zenPipeline"> <aside class="zen-pipeline full-height" id="zenPipeline">
<div class="pipeline-header"> <div class="pipeline-header">
<h3>Queue <small>(Ctrl+Q)</small></h3> <h3>Up Next <small>(Ctrl+Q)</small></h3>
<span class="badge">4 Waiting</span> <span class="badge">4 Waiting</span>
</div> </div>
<div class="pipeline-list"> <div class="pipeline-list">

View File

@ -368,37 +368,88 @@ async function processWithWhisper(blob) {
function generateSummary(isTelugu = false) { function generateSummary(isTelugu = false) {
const notes = document.getElementById("consultationNotes").value; const soapS = document.getElementById("soap-s")?.value || "";
if (!notes) return; const soapO = document.getElementById("soap-o")?.value || "";
const soapA = document.getElementById("soap-a")?.value || "";
const soapP = document.getElementById("soap-p")?.value || "";
const combinedNotes = [soapS, soapO, soapA, soapP].filter(Boolean).join("\n");
const notesEl = document.getElementById("consultationNotes");
if (notesEl) notesEl.value = combinedNotes;
const summary = isTelugu const summary = isTelugu
? "📝 [TRANSLATED] CLINICAL SUMMARY: Patient presents in Telugu. Dry cough and fatigue noted. Recommended fluids and rest." ? "📝 [TRANSLATED] CLINICAL SUMMARY: Patient presents in Telugu. Dry cough and fatigue noted. Recommended fluids and rest."
: "📋 CLINICAL SUMMARY: Patient presents with persistent dry cough. Recommended hydration and follow-up."; : "📋 CLINICAL SUMMARY: Patient presents with persistent dry cough. Recommended hydration and follow-up.";
document.getElementById("summaryText").innerText = summary; const summaryTextEl = document.getElementById("summaryText");
document.getElementById("aiSummaryCard").classList.remove("hidden"); if (summaryTextEl) summaryTextEl.innerText = summary;
patientDataStore[currentPatientId] = { notes, summary };
const summaryCard = document.getElementById("aiSummaryCard");
if (summaryCard) summaryCard.classList.remove("hidden");
if (currentPatientId) {
patientDataStore[currentPatientId] = {
notes: combinedNotes,
soapS,
soapO,
soapA,
soapP,
summary
};
}
} }
window.switchPatientContext = (name, token, triage) => { window.switchPatientContext = (name, token, triage) => {
if (currentPatientId) patientDataStore[currentPatientId].notes = document.getElementById("consultationNotes").value; if (currentPatientId) {
isScribing = false; updateScribeUI(); const notesVal = document.getElementById("consultationNotes")?.value || "";
const soapS = document.getElementById("soap-s")?.value || "";
const soapO = document.getElementById("soap-o")?.value || "";
const soapA = document.getElementById("soap-a")?.value || "";
const soapP = document.getElementById("soap-p")?.value || "";
const summary = document.getElementById("summaryText")?.innerText || "";
patientDataStore[currentPatientId] = {
notes: notesVal,
soapS,
soapO,
soapA,
soapP,
summary
};
}
isScribing = false;
updateScribeUI();
currentPatientId = token; currentPatientId = token;
const data = patientDataStore[token] || { notes: "", summary: "" }; const data = patientDataStore[token] || { notes: "", soapS: "", soapO: "", soapA: "", soapP: "", summary: "" };
document.getElementById("consultationNotes").value = data.notes;
document.getElementById("summaryText").innerText = data.summary;
if (data.summary) document.getElementById("aiSummaryCard").classList.remove("hidden");
else document.getElementById("aiSummaryCard").classList.add("hidden");
const patientHeading = document.querySelector(".patient-identity h1"); const notesEl = document.getElementById("consultationNotes");
if (patientHeading) patientHeading.innerHTML = `${name} <small>(32y, Female)</small>`; if (notesEl) notesEl.value = data.notes || "";
const metaPills = document.querySelectorAll(".patient-identity .meta-pills"); const sField = document.getElementById("soap-s");
if (metaPills[1]) { const oField = document.getElementById("soap-o");
metaPills[1].innerHTML = ` const aField = document.getElementById("soap-a");
<span class="pill triage">${token}</span> const pField = document.getElementById("soap-p");
<span class="pill time">${triage}</span>
`; if (sField) sField.value = data.soapS || "";
if (oField) oField.value = data.soapO || "";
if (aField) aField.value = data.soapA || "";
if (pField) pField.value = data.soapP || "";
const summaryTextEl = document.getElementById("summaryText");
if (summaryTextEl) summaryTextEl.innerText = data.summary || "";
const summaryCard = document.getElementById("aiSummaryCard");
if (summaryCard) {
if (data.summary) summaryCard.classList.remove("hidden");
else summaryCard.classList.add("hidden");
}
const patientHeading = document.querySelector(".patient-identity-row h1");
if (patientHeading) {
patientHeading.innerHTML = `${name} <small>(28y, M)</small>`;
} }
}; };