// 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.name}

{dev.status}
{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;