new updates
Build Curio HMS / build-and-deploy (push) Successful in 48s Details

This commit is contained in:
Deep Koluguri 2026-05-15 01:10:27 -04:00
parent ffbad1ae81
commit bc36de72a7
3 changed files with 875 additions and 228 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,10 +2,10 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dashboard | Curio</title>
<link rel="stylesheet" href="index.css">
<link rel="stylesheet" href="dashboard.css?v=15">
<link rel="stylesheet" href="dashboard.css">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@600;700&display=swap" rel="stylesheet">
<script src="tenantLoader.js"></script>
</head>
@ -36,7 +36,7 @@
</div>
</aside>
<main class="main-content">
<main class="dashboard-main">
<header class="dash-header">
<div class="search-bar">
<input type="text" placeholder="Search patients by name or WhatsApp number...">
@ -51,65 +51,79 @@
</div>
</header>
<!-- DOCTOR ZEN VIEW (Clinical Focus) -->
<div id="doctor-zen-section" class="hidden">
<div class="doctor-zen-grid">
<!-- Left: Pipeline -->
<aside class="patient-pipeline">
<div class="zen-layout">
<!-- Left: The Pipeline -->
<aside class="zen-pipeline">
<div class="pipeline-header">
<h3>Up Next <span class="badge">4 Waiting</span></h3>
<h3>Up Next</h3>
<span class="badge">4 Waiting</span>
</div>
<div id="pipelineList">
<div class="pipeline-card active" onclick="switchPatientContext('Rahul Verma', '#012', 'Viral Fever')">
<span class="patient-id">#012</span>
<strong>Rahul Verma</strong>
<p>Viral Fever Triage</p>
<div class="pipeline-list">
<div class="pipeline-item next" onclick="switchPatientContext('Anjali Singh', '#013', 'High Fever')">
<div class="p-token">#013</div>
<div class="p-info">
<strong>Anjali Singh</strong>
<span class="triage-pill urgent">High Fever</span>
</div>
</div>
<div class="pipeline-card" onclick="switchPatientContext('Anjali Singh', '#013', 'High Fever')">
<span class="patient-id">#013</span>
<strong>Anjali Singh</strong>
<p>High Fever</p>
</div>
<div class="pipeline-card" onclick="switchPatientContext('Suresh Kumar', '#014', 'Back Pain')">
<span class="patient-id">#014</span>
<strong>Suresh Kumar</strong>
<p>Back Pain</p>
<div class="pipeline-item" onclick="switchPatientContext('Suresh Kumar', '#014', 'Back Pain')">
<div class="p-token">#014</div>
<div class="p-info">
<strong>Suresh Kumar</strong>
<span class="triage-pill">Back Pain</span>
</div>
</div>
</div>
</aside>
<!-- Center: Workspace -->
<main class="clinical-workspace-area">
<div class="workspace-header">
<!-- Center: The Workspace -->
<main class="zen-workspace">
<header class="workspace-header">
<div class="current-patient">
<span class="status-indicator">NOW SEEING</span>
<h1>Rahul Verma <small>(28y, Male)</small></h1>
<p class="patient-meta"><span>#012</span><span>Viral Fever Triage</span><span class="visit-timer">08:45</span></p>
<div class="patient-meta">
<span>#012</span><span>Viral Fever Triage</span><span class="visit-timer">08:45</span>
</div>
</div>
</div>
<div class="workspace-actions">
<select id="scribeLang" class="btn-zen">
<option value="en-US">English</option>
<option value="te-IN">తెలుగు (Telugu)</option>
</select>
<button id="zenScribeBtn" class="btn-zen" onclick="toggleZenScribe()">🎙️ Start AI Scribe</button>
<button class="btn-zen" onclick="openHistory()">📂 History</button>
<button class="btn-zen btn-primary-zen" onclick="openConsultation()">✍️ Start Consultation</button>
</div>
<div class="workspace-actions">
<select id="scribeLang" class="lang-select">
<option value="en-US">English</option>
<option value="te-IN">తెలుగు (Telugu)</option>
</select>
<button id="zenScribeBtn" class="btn-scribe" onclick="toggleZenScribe()">🎙️ Start AI Scribe</button>
<button class="btn-secondary" onclick="openHistory()">📂 History</button>
<button class="btn-primary" onclick="openConsultation()">✍️ Start Consultation</button>
</div>
</header>
<div id="scribeStatus" class="scribe-indicator hidden">
<span class="dot"></span> AI is listening and transcribing...
<span class="dot"></span> AI is listening and transcribing clinical insights...
</div>
<div class="clinical-notes-card">
<textarea id="consultationNotes" placeholder="Start typing or use Voice AI..."></textarea>
</div>
<div class="zen-grid">
<div class="clinical-workspace-area">
<div class="clinical-notes-card">
<div class="card-header">Consultation Notes</div>
<textarea id="consultationNotes" placeholder="Start typing or use Voice AI..." class="zen-textarea"></textarea>
</div>
<div id="aiSummaryCard" class="summary-card hidden">
<h4>✨ AI Clinical Summary</h4>
<div id="summaryText" class="summary-content"></div>
<div class="summary-actions">
<button class="btn-zen" onclick="shareSummary()">📤 Send to Patient</button>
<button class="btn-zen" onclick="printSummary()">🖨️ Print</button>
<div id="aiSummaryCard" class="summary-card hidden">
<div class="card-header">✨ AI Clinical Summary</div>
<div id="summaryText" class="summary-content"></div>
<div class="summary-actions">
<button class="btn-small secondary" onclick="shareSummary()">📤 Send to Patient</button>
<button class="btn-small secondary" onclick="printSummary()">🖨️ Print Summary</button>
</div>
</div>
</div>
<div class="quick-links">
<div class="card-header">Quick References</div>
<button class="btn-small secondary">Diabetes Guidelines</button>
<button class="btn-small secondary">Drug Interaction Checker</button>
</div>
</div>
</main>
@ -383,6 +397,6 @@
</div>
</div>
<script src="dashboard.js?v=15"></script>
<script src="dashboard.js?v=11"></script>
</body>
</html>

View File

@ -70,12 +70,6 @@ document.addEventListener("DOMContentLoaded", () => {
// 3. Section Switching Logic
window.showSection = (sectionId) => {
// Close sidebar on mobile
const sb = document.getElementById('sidebar');
if (window.innerWidth < 1024 && sb.classList.contains('active')) {
window.toggleSidebar();
}
const sections = ['overview-section', 'patients-section', 'pharmacy-section', 'lab-section', 'doctor-zen-section'];
sections.forEach(id => {
const el = document.getElementById(id);
@ -119,14 +113,13 @@ function updateScribeUI() {
const status = document.getElementById("scribeStatus");
if (isScribing) {
btn.innerText = "🛑 Stop AI Scribe";
btn.classList.add("active"); // Trigger pulsing animation
btn.style.background = "#EF4444";
status.classList.remove("hidden");
} else {
btn.innerText = "🎙️ Start AI Scribe";
btn.classList.remove("active");
btn.style.background = "";
status.classList.add("hidden");
}
}
async function startDeepCapture() {
@ -207,24 +200,7 @@ window.shareSummary = () => alert("📤 Summary sent to Patient's WhatsApp.");
window.printSummary = () => alert("🖨️ Printing Handover Note...");
window.toggleSidebar = () => {
const sb = document.getElementById('sidebar');
if (!sb) return;
sb.classList.toggle('active');
// Add backdrop
if (sb.classList.contains('active')) {
let backdrop = document.getElementById('sidebar-backdrop');
if (!backdrop) {
backdrop = document.createElement('div');
backdrop.id = 'sidebar-backdrop';
backdrop.style = 'position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,0.5);z-index:900;';
backdrop.onclick = () => window.toggleSidebar();
document.body.appendChild(backdrop);
}
} else {
const backdrop = document.getElementById('sidebar-backdrop');
if (backdrop) backdrop.remove();
}
sb.style.display = (sb.style.display === 'flex') ? 'none' : 'flex';
};
// Global Listeners