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
|
|
@ -2,10 +2,10 @@
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<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>
|
<title>Dashboard | Curio</title>
|
||||||
<link rel="stylesheet" href="index.css">
|
<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">
|
<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>
|
<script src="tenantLoader.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
</div>
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
<main class="main-content">
|
<main class="dashboard-main">
|
||||||
<header class="dash-header">
|
<header class="dash-header">
|
||||||
<div class="search-bar">
|
<div class="search-bar">
|
||||||
<input type="text" placeholder="Search patients by name or WhatsApp number...">
|
<input type="text" placeholder="Search patients by name or WhatsApp number...">
|
||||||
|
|
@ -51,65 +51,79 @@
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
<!-- DOCTOR ZEN VIEW (Clinical Focus) -->
|
||||||
<div id="doctor-zen-section" class="hidden">
|
<div id="doctor-zen-section" class="hidden">
|
||||||
<div class="doctor-zen-grid">
|
<div class="zen-layout">
|
||||||
<!-- Left: Pipeline -->
|
<!-- Left: The Pipeline -->
|
||||||
<aside class="patient-pipeline">
|
<aside class="zen-pipeline">
|
||||||
<div class="pipeline-header">
|
<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>
|
||||||
<div id="pipelineList">
|
<div class="pipeline-list">
|
||||||
<div class="pipeline-card active" onclick="switchPatientContext('Rahul Verma', '#012', 'Viral Fever')">
|
<div class="pipeline-item next" onclick="switchPatientContext('Anjali Singh', '#013', 'High Fever')">
|
||||||
<span class="patient-id">#012</span>
|
<div class="p-token">#013</div>
|
||||||
<strong>Rahul Verma</strong>
|
<div class="p-info">
|
||||||
<p>Viral Fever Triage</p>
|
|
||||||
</div>
|
|
||||||
<div class="pipeline-card" onclick="switchPatientContext('Anjali Singh', '#013', 'High Fever')">
|
|
||||||
<span class="patient-id">#013</span>
|
|
||||||
<strong>Anjali Singh</strong>
|
<strong>Anjali Singh</strong>
|
||||||
<p>High Fever</p>
|
<span class="triage-pill urgent">High Fever</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="pipeline-card" onclick="switchPatientContext('Suresh Kumar', '#014', 'Back Pain')">
|
</div>
|
||||||
<span class="patient-id">#014</span>
|
<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>
|
<strong>Suresh Kumar</strong>
|
||||||
<p>Back Pain</p>
|
<span class="triage-pill">Back Pain</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
<!-- Center: Workspace -->
|
<!-- Center: The Workspace -->
|
||||||
<main class="clinical-workspace-area">
|
<main class="zen-workspace">
|
||||||
<div class="workspace-header">
|
<header class="workspace-header">
|
||||||
<div class="current-patient">
|
<div class="current-patient">
|
||||||
|
<span class="status-indicator">NOW SEEING</span>
|
||||||
<h1>Rahul Verma <small>(28y, Male)</small></h1>
|
<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>
|
||||||
|
|
||||||
<div class="workspace-actions">
|
<div class="workspace-actions">
|
||||||
<select id="scribeLang" class="btn-zen">
|
<select id="scribeLang" class="lang-select">
|
||||||
<option value="en-US">English</option>
|
<option value="en-US">English</option>
|
||||||
<option value="te-IN">తెలుగు (Telugu)</option>
|
<option value="te-IN">తెలుగు (Telugu)</option>
|
||||||
</select>
|
</select>
|
||||||
<button id="zenScribeBtn" class="btn-zen" onclick="toggleZenScribe()">🎙️ Start AI Scribe</button>
|
<button id="zenScribeBtn" class="btn-scribe" onclick="toggleZenScribe()">🎙️ Start AI Scribe</button>
|
||||||
<button class="btn-zen" onclick="openHistory()">📂 History</button>
|
<button class="btn-secondary" onclick="openHistory()">📂 History</button>
|
||||||
<button class="btn-zen btn-primary-zen" onclick="openConsultation()">✍️ Start Consultation</button>
|
<button class="btn-primary" onclick="openConsultation()">✍️ Start Consultation</button>
|
||||||
</div>
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
<div id="scribeStatus" class="scribe-indicator hidden">
|
<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>
|
||||||
|
|
||||||
|
<div class="zen-grid">
|
||||||
|
<div class="clinical-workspace-area">
|
||||||
<div class="clinical-notes-card">
|
<div class="clinical-notes-card">
|
||||||
<textarea id="consultationNotes" placeholder="Start typing or use Voice AI..."></textarea>
|
<div class="card-header">Consultation Notes</div>
|
||||||
|
<textarea id="consultationNotes" placeholder="Start typing or use Voice AI..." class="zen-textarea"></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="aiSummaryCard" class="summary-card hidden">
|
<div id="aiSummaryCard" class="summary-card hidden">
|
||||||
<h4>✨ AI Clinical Summary</h4>
|
<div class="card-header">✨ AI Clinical Summary</div>
|
||||||
<div id="summaryText" class="summary-content"></div>
|
<div id="summaryText" class="summary-content"></div>
|
||||||
<div class="summary-actions">
|
<div class="summary-actions">
|
||||||
<button class="btn-zen" onclick="shareSummary()">📤 Send to Patient</button>
|
<button class="btn-small secondary" onclick="shareSummary()">📤 Send to Patient</button>
|
||||||
<button class="btn-zen" onclick="printSummary()">🖨️ Print</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>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
@ -383,6 +397,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="dashboard.js?v=15"></script>
|
<script src="dashboard.js?v=11"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
30
dashboard.js
30
dashboard.js
|
|
@ -70,12 +70,6 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||||
|
|
||||||
// 3. Section Switching Logic
|
// 3. Section Switching Logic
|
||||||
window.showSection = (sectionId) => {
|
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'];
|
const sections = ['overview-section', 'patients-section', 'pharmacy-section', 'lab-section', 'doctor-zen-section'];
|
||||||
sections.forEach(id => {
|
sections.forEach(id => {
|
||||||
const el = document.getElementById(id);
|
const el = document.getElementById(id);
|
||||||
|
|
@ -119,14 +113,13 @@ function updateScribeUI() {
|
||||||
const status = document.getElementById("scribeStatus");
|
const status = document.getElementById("scribeStatus");
|
||||||
if (isScribing) {
|
if (isScribing) {
|
||||||
btn.innerText = "🛑 Stop AI Scribe";
|
btn.innerText = "🛑 Stop AI Scribe";
|
||||||
btn.classList.add("active"); // Trigger pulsing animation
|
btn.style.background = "#EF4444";
|
||||||
status.classList.remove("hidden");
|
status.classList.remove("hidden");
|
||||||
} else {
|
} else {
|
||||||
btn.innerText = "🎙️ Start AI Scribe";
|
btn.innerText = "🎙️ Start AI Scribe";
|
||||||
btn.classList.remove("active");
|
btn.style.background = "";
|
||||||
status.classList.add("hidden");
|
status.classList.add("hidden");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function startDeepCapture() {
|
async function startDeepCapture() {
|
||||||
|
|
@ -207,24 +200,7 @@ window.shareSummary = () => alert("📤 Summary sent to Patient's WhatsApp.");
|
||||||
window.printSummary = () => alert("🖨️ Printing Handover Note...");
|
window.printSummary = () => alert("🖨️ Printing Handover Note...");
|
||||||
window.toggleSidebar = () => {
|
window.toggleSidebar = () => {
|
||||||
const sb = document.getElementById('sidebar');
|
const sb = document.getElementById('sidebar');
|
||||||
if (!sb) return;
|
sb.style.display = (sb.style.display === 'flex') ? 'none' : 'flex';
|
||||||
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Global Listeners
|
// Global Listeners
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue