first commit

This commit is contained in:
2026-03-26 08:11:29 +03:30
parent f9e3d66a19
commit b8f6526ba4
225 changed files with 18865 additions and 151 deletions

View File

@@ -0,0 +1,108 @@
import FilterByisDeleted from "@/components/FilterByisDeleted";
import Loader from "@/components/Loader";
import PatientsTable from "@/components/PatientsTable";
import RoleGuard from "@/components/RoleGuard";
import SearchBox from "@/components/SearchBox";
import {Field} from "@/components/ui/field";
import {Label} from "@/components/ui/label";
import UsersTableExport from "@/components/usersTableExport";
import {Plus} from "lucide-react";
import Link from "next/link";
import React, {Suspense} from "react";
export default function Page() {
return (
<>
<section>
<div className="grid grid-cols-4 gap-5">
<div className="col-span-3 flex items-center justify-start ">
<section className="w-full h-[250px]">
<h4 className="text-sm font-bold underline underline-offset-8 mb-2">
جستجوی پیشرفته
</h4>
<div className="grid grid-cols-[repeat(auto-fill,minmax(300px,1fr))] gap-4 p-2">
<SearchBox
inputName="id"
hasLabel
label="شناسه"
route="patients"
/>
<SearchBox
inputName="name"
hasLabel
label="نام بیمار"
route="patients"
/>
<SearchBox
inputName="lastname"
hasLabel
label="نام خانوادگی"
route="patients"
/>
<SearchBox
inputName="ncode"
hasLabel
label="کدملی "
route="patients"
/>
<SearchBox
inputName="pcode"
hasLabel
label="کد پاسپورت "
route="patients"
/>
<SearchBox
inputName="phone"
hasLabel
label="شماره تماس "
route="patients"
/>
<SearchBox
inputName="email"
hasLabel
label="ایمیل بیمار"
route="patients"
/>
<SearchBox
inputName="age"
hasLabel
label="سن"
route="patients"
/>
<Field className="w-[300px] flex flex-row justify-start items-center gap-x-3 ">
<Label className="!w-fit">فیلتر بر اساس</Label>
<FilterByisDeleted />
</Field>
</div>
</section>
{/* <ExpertiseFilterBox /> */}
</div>
<div className="col-span-1 flex flex-col items-end justify-start gap-x-7 gap-y-4">
<RoleGuard roles={["ADMIN", "DEVELOPER", "COORDINATOR"]}>
<Link
href={"/patients/new"}
className="text-white bg-primary w-[240px] max-w-full py-2 px-3 rounded-lg flex items-center justify-center gap-x-2 text-sm"
>
<Plus size={"20"} />
<span>افزودن بیمار جدید</span>
</Link>
</RoleGuard>
<RoleGuard roles={["ADMIN", "DEVELOPER", "COORDINATOR"]}>
<UsersTableExport table="DOCTOR" />
</RoleGuard>
</div>
</div>
<div className="space-y-4 mt-10">
<Suspense fallback={<Loader />}>
<PatientsTable />
</Suspense>
</div>
</section>
</>
);
}