import React from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { useEffect } from 'react'; import { fetchWorkThunk, workSelectionSlice, } from '../../../states/patient/worklist/slices/workSlice'; import { Table } from 'antd'; import { FormattedMessage } from 'react-intl'; import { RootState, AppDispatch } from '../../../states/store'; import { Task } from '@/domain/work'; const columns = [ { title: ( ), dataIndex: 'StudyInstanceUID', }, { title: ( ), dataIndex: 'StudyID', }, { title: ( ), dataIndex: 'SpecificCharacterSet', }, { title: ( ), dataIndex: 'AccessionNumber', }, { title: ( ), dataIndex: 'PatientID', }, { title: ( ), dataIndex: 'PatientName', }, { title: ( ), dataIndex: 'DisplayPatientName', }, { title: ( ), dataIndex: 'PatientSize', }, { title: ( ), dataIndex: 'PatientAge', }, { title: ( ), dataIndex: 'PatientSex', }, { title: ( ), dataIndex: 'AdmittingTime', }, { title: ( ), dataIndex: 'RegSource', }, { title: ( ), dataIndex: 'StudyStatus', }, { title: ( ), dataIndex: 'RequestedProcedureID', }, { title: ( ), dataIndex: 'PerformedProtocolCodeValue', }, { title: ( ), dataIndex: 'PerformedProtocolCodeMeaning', }, { title: ( ), dataIndex: 'PerformedProcedureStepID', }, { title: ( ), dataIndex: 'StudyDescription', }, { title: ( ), dataIndex: 'StudyStartDatetime', }, { title: ( ), dataIndex: 'ScheduledProcedureStepStartDate', }, { title: ( ), dataIndex: 'StudyLock', }, { title: ( ), dataIndex: 'OperatorID', }, { title: ( ), dataIndex: 'Modality', }, { title: ( ), dataIndex: 'Views', }, { title: ( ), dataIndex: 'Thickness', }, { title: ( ), dataIndex: 'PatientType', }, { title: ( ), dataIndex: 'StudyType', }, { title: ( ), dataIndex: 'QRCode', }, { title: ( ), dataIndex: 'IsExported', }, { title: ( ), dataIndex: 'IsEdited', }, { title: ( ), dataIndex: 'WorkRef', }, { title: ( ), dataIndex: 'IsAppended', }, { title: ( ), dataIndex: 'CreationTime', }, { title: ( ), dataIndex: 'MappedStatus', }, { title: ( ), dataIndex: 'IsDelete', }, ]; const WorklistTable: React.FC = () => { const dispatch: AppDispatch = useDispatch(); const worklistData = useSelector( (state: RootState) => state.workEntities.data ); const filters = useSelector((state: RootState) => state.search); const page = useSelector((state: RootState) => state.workPagination.page); const pageSize = useSelector( (state: RootState) => state.workPagination.pageSize ); const selectedIds = useSelector( (state: RootState) => state.workSelection.selectedIds ); useEffect(() => { dispatch(fetchWorkThunk({ page, pageSize, filters })); }, [dispatch, filters, page, pageSize]); const handleRowClick = (record: Task) => { console.log('Row clicked:', JSON.stringify(record, null, 2)); console.log('Selected IDs before:', record.StudyInstanceUID); dispatch( workSelectionSlice.actions.setSelectedIds([record.StudyInstanceUID]) ); }; return ( ({ onClick: () => handleRowClick(record), })} rowHoverable={false} rowClassName={(record) => selectedIds.includes(record.StudyInstanceUID) ? 'bg-yellow-500 hover:bg-yellow-800' : '' } /> ); }; export default WorklistTable;