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;