diff --git a/frontend/components/chat/patient-form-dialog.tsx b/frontend/components/chat/patient-form-dialog.tsx
index 7c40b75..b5da5fd 100644
--- a/frontend/components/chat/patient-form-dialog.tsx
+++ b/frontend/components/chat/patient-form-dialog.tsx
@@ -23,6 +23,8 @@ import {
DialogTitle,
} from "@/components/ui/dialog";
import { Input } from "@/components/ui/input";
+import { Tabs, TabsList, TabsTab } from "@/components/ui/tabs";
+import { PatientDetail } from "@/components/patients/patient-detail";
import { ROLE_LABELS } from "@/lib/access";
import { authClient } from "@/lib/auth-client";
import { cn } from "@/lib/utils";
@@ -239,6 +241,11 @@ export function PatientFormDialog({
isEdit && patient ? patient.fileNumber : generateFileNumber()
);
const [step, setStep] = useState<"form" | "wallet">("form");
+ // Editing an existing record shows Show/Add tabs: "Show" (default) is the
+ // read-only record; "Add" is the editable form with the Add buttons. Create
+ // and import-review keep the plain form (nothing to show yet).
+ const showTabs = isEdit && !isReview && Boolean(patient);
+ const [tab, setTab] = useState<"add" | "show">(showTabs ? "show" : "add");
// Only edits to an existing (non-review) record can sync to a wallet — a newly
// created patient has no wallet, and review mode stages an import.
@@ -453,10 +460,27 @@ export function PatientFormDialog({
/>
) : (