fix ui issues
Build Curio HMS / build-and-deploy (push) Successful in 47s
Details
Build Curio HMS / build-and-deploy (push) Successful in 47s
Details
This commit is contained in:
parent
dfd09f554c
commit
abb3f7424b
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
93
dashboard.js
93
dashboard.js
|
|
@ -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 notesEl = document.getElementById("consultationNotes");
|
||||
if (notesEl) notesEl.value = data.notes || "";
|
||||
|
||||
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 h1");
|
||||
if (patientHeading) patientHeading.innerHTML = `${name} <small>(32y, Female)</small>`;
|
||||
|
||||
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 patientHeading = document.querySelector(".patient-identity-row h1");
|
||||
if (patientHeading) {
|
||||
patientHeading.innerHTML = `${name} <small>(28y, M)</small>`;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue