fix(scan): resolve empty medicine data and clean up linter warning
- Add local fallback using `diseaseCatalogSeed` to populate medicine recommendations in the diagnosis preview modal when API data is missing. - Remove unused `diagnosesQuery` assignment to resolve SonarLint warning while preserving the background prefetching logic.
This commit is contained in:
@@ -16,6 +16,7 @@ import { Button } from "@/components/ui/button";
|
|||||||
import { Card, CardContent } from "@/components/ui/card";
|
import { Card, CardContent } from "@/components/ui/card";
|
||||||
import { Modal } from "@/components/ui/modal";
|
import { Modal } from "@/components/ui/modal";
|
||||||
import type { DiagnosisRecord } from "@zeavis/shared";
|
import type { DiagnosisRecord } from "@zeavis/shared";
|
||||||
|
import { diseaseCatalogSeed } from "@zeavis/shared"; // Import data seed lokal ditambahkan
|
||||||
import { apiClient } from "@/lib/api-client";
|
import { apiClient } from "@/lib/api-client";
|
||||||
import { trackScan, trackDiagnosisResult } from "@/lib/telemetry";
|
import { trackScan, trackDiagnosisResult } from "@/lib/telemetry";
|
||||||
import { DiagnosisResultView } from "../components/diagnose-result-view";
|
import { DiagnosisResultView } from "../components/diagnose-result-view";
|
||||||
@@ -76,7 +77,7 @@ export function ScanPage() {
|
|||||||
const [diagnosisPreview, setDiagnosisPreview] =
|
const [diagnosisPreview, setDiagnosisPreview] =
|
||||||
useState<DiagnosisRecord | null>(null);
|
useState<DiagnosisRecord | null>(null);
|
||||||
|
|
||||||
const diagnosesQuery = useQuery({
|
useQuery({
|
||||||
queryKey: ["diagnoses"],
|
queryKey: ["diagnoses"],
|
||||||
queryFn: () => apiClient.getDiagnoses(),
|
queryFn: () => apiClient.getDiagnoses(),
|
||||||
enabled: previewOpen,
|
enabled: previewOpen,
|
||||||
@@ -373,6 +374,23 @@ export function ScanPage() {
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{/* 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 (
|
||||||
<DiagnosisResultView
|
<DiagnosisResultView
|
||||||
imageUrl={
|
imageUrl={
|
||||||
previewUrl ||
|
previewUrl ||
|
||||||
@@ -392,10 +410,10 @@ export function ScanPage() {
|
|||||||
}
|
}
|
||||||
symptoms={diagnosisPreview.disease?.symptoms ?? []}
|
symptoms={diagnosisPreview.disease?.symptoms ?? []}
|
||||||
preventions={diagnosisPreview.disease?.recommendations ?? []}
|
preventions={diagnosisPreview.disease?.recommendations ?? []}
|
||||||
medicines={
|
medicines={finalMedicines} // Datanya terhubung ke sini!
|
||||||
(diagnosisPreview.disease as any)?.medicineRecommendations ?? []
|
|
||||||
}
|
|
||||||
/>
|
/>
|
||||||
|
);
|
||||||
|
})()}
|
||||||
|
|
||||||
{/* All Model Predictions */}
|
{/* All Model Predictions */}
|
||||||
{diagnosisPreview.predictions &&
|
{diagnosisPreview.predictions &&
|
||||||
|
|||||||
Reference in New Issue
Block a user