new updates
Build Curio HMS / build-and-deploy (push) Successful in 48s
Details
Build Curio HMS / build-and-deploy (push) Successful in 48s
Details
This commit is contained in:
parent
ffbad1ae81
commit
bc36de72a7
963
dashboard.css
963
dashboard.css
File diff suppressed because it is too large
Load Diff
108
dashboard.html
108
dashboard.html
|
|
@ -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>
|
||||
|
|
|
|||
30
dashboard.js
30
dashboard.js
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue