diff --git a/apps/web/src/components/diagnose-result-view.tsx b/apps/web/src/components/diagnose-result-view.tsx index a120b5b..4691505 100644 --- a/apps/web/src/components/diagnose-result-view.tsx +++ b/apps/web/src/components/diagnose-result-view.tsx @@ -15,7 +15,7 @@ import { RiskBadge } from "@/components/risk-badge"; type Props = { imageUrl: string; - confidence: number; // contoh: 0.95 + confidence: number; diseaseName: string; scientificName: string; riskLevel: string; @@ -42,8 +42,8 @@ export function DiagnosisResultView({ const getRiskLevelKey = (level: string): "low" | "medium" | "high" => { const normalized = level.toLowerCase(); - if (normalized.includes("rendah")) return "low"; - if (normalized.includes("tinggi")) return "high"; + if (normalized.includes("rendah") || normalized === "low") return "low"; + if (normalized.includes("tinggi") || normalized === "high") return "high"; return "medium"; }; @@ -85,18 +85,35 @@ export function DiagnosisResultView({
Tingkat Keyakinan AI - {confidencePercent}% + = 75 + ? "text-emerald-600" + : "text-amber-500" + } + > + {confidencePercent}% +
= 75 ? "bg-emerald-500" : "bg-amber-500" + }`} style={{ width: `${confidencePercent}%` }} >
-

- Di atas ambang batas minimum - (75%) -

+ {confidencePercent >= 75 ? ( +

+ Di atas ambang batas + minimum (75%) +

+ ) : ( +

+ Di bawah ambang batas + minimum (75%) +

+ )}
diff --git a/apps/web/src/pages/scan-page.tsx b/apps/web/src/pages/scan-page.tsx index e73a5d5..f2f911b 100644 --- a/apps/web/src/pages/scan-page.tsx +++ b/apps/web/src/pages/scan-page.tsx @@ -16,6 +16,7 @@ import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; import { Modal } from "@/components/ui/modal"; import type { DiagnosisRecord } from "@zeavis/shared"; +import { diseaseCatalogSeed } from "@zeavis/shared"; // Import data seed lokal ditambahkan import { apiClient } from "@/lib/api-client"; import { trackScan, trackDiagnosisResult } from "@/lib/telemetry"; import { DiagnosisResultView } from "../components/diagnose-result-view"; @@ -95,7 +96,7 @@ export function ScanPage() { const [diagnosisPreview, setDiagnosisPreview] = useState(null); - const diagnosesQuery = useQuery({ + useQuery({ queryKey: ["diagnoses"], queryFn: () => apiClient.getDiagnoses(), enabled: previewOpen, @@ -429,29 +430,46 @@ export function ScanPage() {
)} - + {/* Render DiagnosisResultView dengan Fallback Obat */} + {(() => { + // Fallback logic for scientific name and medicine recommendations + const seedData = diagnosisPreview.disease + ? diseaseCatalogSeed.find( + (seed) => + seed.commonName === diagnosisPreview.disease?.commonName, + ) + : null; + + // If the API doesn't return medicine recommendations, use the seed data as a fallback + const finalMedicines = + (diagnosisPreview.disease as any)?.medicineRecommendations || + seedData?.medicineRecommendations || + []; + + return ( + + ); + })()} {/* All Model Predictions */} {diagnosisPreview.predictions &&