// screens/devices.jsx — Connected Device Dashboard
function DevicesScreen({ setRoute }) {
const Icons = window.Icons;
const [selected, setSelected] = React.useState("dev-1");
const dev = DEVICES.find(d => d.id === selected) || DEVICES[0];
// Util history (last 14 days)
const histMap = {
"dev-1": [68, 72, 71, 70, 74, 76, 75, 78, 80, 76, 79, 78, 81, 78],
"dev-2": [78, 80, 82, 81, 83, 85, 84, 86, 88, 85, 84, 86, 87, 84],
"dev-3": [38, 42, 40, 36, 38, 42, 44, 41, 39, 45, 42, 40, 43, 41],
"dev-4": [44, 48, 36, 28, 30, 20, 12, 4, 0, 0, 0, 0, 0, 0],
"dev-5": [28, 32, 30, 26, 24, 28, 26, 22, 20, 18, 20, 22, 24, 22],
"dev-6": [60, 62, 65, 63, 64, 66, 68, 67, 69, 70, 68, 67, 66, 67],
};
const statusColor = (s) => ({
"운영중": "good", "정비": "alert", "유휴": "watch",
}[s] || "outline");
return (
09 · Connected Device Dashboard
장비 가동률·소모품 통합 모니터링
6대 장비의 실시간 가동 상태, 누적 사용 이력, 소모품 잔여량, 오류 상태를 통합 모니터링합니다. 자동 발주·정비 알림 및 peer group benchmark 분석을 제공합니다.
{/* Summary strip */}
{/* LEFT — Device grid */}
{DEVICES.map(d => (
))}
{/* RIGHT — Detail panel */}
{dev.brand} · {dev.category} · ID {dev.id.toUpperCase()}
= dev.peer ? "up" : "down"} />
14일 가동률 추세
소모품 상태
{dev.consumable.name}
잔여 {dev.consumable.units}개
예상 소진 {Math.ceil(dev.consumable.units / Math.max(1, dev.sessionsWeek / 7))}일 후
AI 추천 · 활용도 개선
{dev.name} 적합 환자 24명 식별
지난 30일 진단 결과 기준 — 패키지 제안 시 예상 매출 +₩42M
카테고리별 coverage
{[
{ c: "RF / MNRF", cov: 0.95, gap: "—" },
{ c: "HIFU / MRF", cov: 0.78, gap: "Microfocused MRF 부재" },
{ c: "Pico / Q-switch", cov: 0.62, gap: "Pico 활용도 -55%" },
{ c: "Vascular Laser", cov: 0.85, gap: "—" },
{ c: "Fractional Laser", cov: 0.88, gap: "—" },
{ c: "Body Contouring", cov: 0.20, gap: "Cryo · EMSculpt 미보유" },
].map((p, i) => (
= 0.7 ? "var(--good)" : p.cov >= 0.4 ? "var(--watch)" : "var(--alert)"} />
{p.gap !== "—" && {p.gap}
}
))}
);
}
window.DevicesScreen = DevicesScreen;