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 &&