"use client"; import React from "react"; import { usePathname, useRouter, useSearchParams } from "next/navigation"; import { useQuery } from "@tanstack/react-query"; import Link from "next/link"; import consultationServices, { ConsultationItem, ConsultationResponse, } from "@/services/consultationServices"; import { httpRequest } from "@/services"; import { QUERY_KEY, TYPE_STATUS } from "@/constant/config/enum"; import DataWrapper from "@/components/customs/DataWrapper"; import Table from "@/components/customs/custom-table"; import StateActive from "@/components/customs/StateActive"; import Pagination from "@/components/customs/custom-pagination"; import Search from "@/components/customs/custom-search"; import moment from "moment"; const TableHistoryPatient = () => { const searchParams = useSearchParams(); const router = useRouter(); const pathname = usePathname(); const patientId = searchParams.get("_id"); const consultationQuery = useQuery({ queryKey: [QUERY_KEY.table_list_consultation, patientId, "full-history"], enabled: !!patientId, queryFn: async () => { const res = await httpRequest({ showMessageFailed: true, http: consultationServices.getConsultations({ Page: 1, PageSize: 1000, PatientId: patientId || "", }), }); return ( res || { items: [], page: 1, pageSize: 10, total: 0, totalPages: 0, } ); }, }); const _page = searchParams.get("_page"); const _pageSize = searchParams.get("_pageSize"); const _keyword = searchParams.get("_keyword"); const page = _page ? Number(_page) : 1; const pageSize = _pageSize ? Number(_pageSize) : 10; const updateQuery = (key: string, value: string | number) => { const params = new URLSearchParams(searchParams.toString()); if (!value || value === "" || (key === "_page" && value === 1)) { params.delete(key); } else { params.set(key, String(value)); } if (key === "_pageSize") { params.delete("_page"); } const queryString = params.toString(); router.push(queryString ? `?${queryString}` : pathname); }; const data = consultationQuery.data?.items || []; // lấy tên bệnh nhân từ record đầu tiên (nếu backend có trả) const patientName = data?.[0]?.patientName || "Bệnh nhân"; return (

Lịch sử phiên khám của {patientName}

updateQuery("_keyword", value)} placeholder="Tìm kiếm phiên khám..." />
item.id} data={data} column={[ { title: "MÃ PHIÊN KHÁM", render: (item: ConsultationItem) => ( {item.sessionCode} ), }, { title: "NGÀY KHÁM", render: (item: ConsultationItem) => ( {item.visitDate ? moment(item.visitDate).format("DD/MM/YYYY") : "---"} ), }, { title: "DẤU HIỆU", render: (item: ConsultationItem) => ( {item.symptomsText || "---"} ), }, { title: "CHẨN ĐOÁN", render: (item: ConsultationItem) => ( {item.diagnosis || "---"} ), }, { title: "TRẠNG THÁI", render: (item: ConsultationItem) => ( ), }, ]} /> updateQuery("_page", value)} onSetPageSize={(value) => updateQuery("_pageSize", value)} dependencies={[_pageSize, _keyword]} /> ); }; export default TableHistoryPatient;