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 {
/* Dashboard specific overrides if any */
}
@ -1581,25 +1581,68 @@ body.zen-mode-active .dash-header {
/* Compact Sidebar Rail */
.sidebar.compact-rail {
width: 70px;
padding: 2.5rem 0.5rem;
align-items: center;
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 nav a span:not(:first-child),
.sidebar.compact-rail .user-profile .info {
display: none;
.sidebar.compact-rail .user-profile .info,
.sidebar.compact-rail .nav-text {
display: none !important;
}
.sidebar.compact-rail a {
font-size: 0;
color: transparent;
.sidebar.compact-rail .side-nav {
width: 100%;
align-items: center;
}
.sidebar.compact-rail a span {
font-size: 1rem;
color: white;
display: inline-block;
.sidebar.compact-rail .side-nav a {
justify-content: center;
width: 44px;
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 {
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">
<head>
<meta charset="UTF-8">
@ -20,14 +20,14 @@
<span class="logo-text" data-tenant-name>Curio</span>
</div>
<nav class="side-nav" id="sideNav">
<a href="#" data-section="overview" class="active"><span>🏠</span> Overview</a>
<a href="#" data-section="queue"><span>👥</span> Queue</a>
<a href="#" data-section="patients"><span>📂</span> Patients</a>
<a href="#" data-section="pharmacy"><span>💊</span> Pharmacy</a>
<a href="#" data-section="lab"><span>🔬</span> Lab</a>
<a href="billing.html" data-section="billing" data-external><span>💳</span> Billing & Accounts</a>
<a href="staff.html" data-section="staff" data-external><span>👔</span> Staff & Payroll</a>
<a href="#" data-section="settings"><span>⚙️</span> Settings</a>
<a href="#" data-section="overview" class="active"><span>🠠</span> <span class="nav-text">Overview</span></a>
<a href="#" data-section="queue"><span>👥</span> <span class="nav-text">Queue</span></a>
<a href="#" data-section="patients"><span>📂</span> <span class="nav-text">Patients</span></a>
<a href="#" data-section="pharmacy"><span>💊</span> <span class="nav-text">Pharmacy</span></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> <span class="nav-text">Billing & Accounts</span></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> <span class="nav-text">Settings</span></a>
</nav>
<div class="user-profile">
<div class="avatar">DS</div>
@ -35,9 +35,10 @@
<strong>Dr. Sharma</strong>
<span>Cardiologist</span>
<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>
<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>
<main class="dashboard-main">
@ -116,7 +117,7 @@
<!-- Left: Full-Height Queue (15%) -->
<aside class="zen-pipeline full-height" id="zenPipeline">
<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>
</div>
<div class="pipeline-list">

View File

@ -368,37 +368,88 @@ async function processWithWhisper(blob) {
function generateSummary(isTelugu = false) {
const notes = document.getElementById("consultationNotes").value;
if (!notes) return;
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 combinedNotes = [soapS, soapO, soapA, soapP].filter(Boolean).join("\n");
const notesEl = document.getElementById("consultationNotes");
if (notesEl) notesEl.value = combinedNotes;
const summary = isTelugu
? "📝 [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.";
document.getElementById("summaryText").innerText = summary;
document.getElementById("aiSummaryCard").classList.remove("hidden");
patientDataStore[currentPatientId] = { notes, summary };
const summaryTextEl = document.getElementById("summaryText");
if (summaryTextEl) summaryTextEl.innerText = 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) => {
if (currentPatientId) patientDataStore[currentPatientId].notes = document.getElementById("consultationNotes").value;
isScribing = false; updateScribeUI();
if (currentPatientId) {
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;
const data = patientDataStore[token] || { notes: "", 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 data = patientDataStore[token] || { notes: "", soapS: "", soapO: "", soapA: "", soapP: "", summary: "" };
const patientHeading = document.querySelector(".patient-identity h1");
if (patientHeading) patientHeading.innerHTML = `${name} <small>(32y, Female)</small>`;
const notesEl = document.getElementById("consultationNotes");
if (notesEl) notesEl.value = data.notes || "";
const metaPills = document.querySelectorAll(".patient-identity .meta-pills");
if (metaPills[1]) {
metaPills[1].innerHTML = `
<span class="pill triage">${token}</span>
<span class="pill time">${triage}</span>
`;
const sField = document.getElementById("soap-s");
const oField = document.getElementById("soap-o");
const aField = document.getElementById("soap-a");
const pField = document.getElementById("soap-p");
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>`;
}
};