"use client"; import React, { useMemo, useState } from "react"; import moment from "moment"; import { useQuery } from "@tanstack/react-query"; import { Users, Stethoscope, Pill } from "lucide-react"; import Table from "@/components/customs/custom-table"; import DataWrapper from "@/components/customs/DataWrapper"; import { QUERY_KEY, TYPE_DATE } from "@/constant/config/enum"; import { httpRequest } from "@/services"; import consultationServices, { ReportResponse, } from "@/services/consultationServices"; import FilterDateRange from "@/components/utils/FilterDateRage"; const MainPageStatistical = () => { const [date, setDate] = useState<{ from: Date | null; to: Date | null; } | null>(null); const [typeDate, setTypeDate] = useState(TYPE_DATE.TODAY); const isInvalidDate = !!date?.from && moment(date.from).isAfter(moment().endOf("day")); const reportQuery = useQuery({ queryKey: [ QUERY_KEY.table_list_report, date?.from?.toISOString(), date?.to?.toISOString(), ], enabled: !!date?.from && !!date?.to && !isInvalidDate, queryFn: async () => { const fromDate = moment(date?.from).format("YYYY-MM-DD"); const toDate = moment(date?.to).format("YYYY-MM-DD"); console.log({ FromDate: fromDate, ToDate: toDate, }); const res = await httpRequest({ showMessageFailed: true, http: consultationServices.getConsultationsReport({ FromDate: fromDate, ToDate: toDate, }), }); return res as ReportResponse; }, }); const report = reportQuery.data; const reportData = useMemo(() => { return report?.specialtyDetails || []; }, [report]); return (
{/* HEADER */}

Thống kê phiên khám

{/* CARDS */}

Tổng lượt khám

{report?.totalSessions || 0}

Lượt khám chuyên khoa

{report?.totalSpecialtySubSessions || 0}

Đơn thuốc đã cấp

{report?.totalPrescriptionsIssued || 0}

{/* BẢNG THỐNG KÊ */}

Thống kê theo chuyên khoa

item.specialtyId} data={reportData} column={[ { title: "MÃ CHUYÊN KHOA", render: (item) => {item.specialtyCode}, }, { title: "TÊN CHUYÊN KHOA", render: (item) => {item.specialtyName}, }, { title: "SỐ CA KHÁM", render: (item) => ( {item.totalCases} ), }, ]} /> {/* BÁO CÁO TỔNG HỢP */}

Báo cáo tổng hợp

Số lượt khám bệnh nhân đạo: {report?.totalSpecialtySubSessions || 0} lượt người dân được khám chuyên khoa, cụ thể như sau:

    {reportData.map((item) => (
  • {item.specialtyName}: {item.totalCases} ca
  • ))}

Tổng số đơn thuốc đã cấp: {report?.totalPrescriptionsIssued || 0} đơn.

{/*

Số suất quà được phát: {report?.totalGiftPackagesIssued || 0} suất.

*/}
); }; export default MainPageStatistical;