import React from 'react'; import { Row, Col, Collapse, Grid, Divider, Button, Space, Form, message, } from 'antd'; import { FormattedMessage } from 'react-intl'; import BasicInfoForm from './components/register.form'; import SelectedProtocolList from './components/register.selected.view.list'; import RegisterAvailableList from './components/register.available.list'; import { RegisterInfo, registerWork, RegisterWorkResponse, RegisterWorkResponseData, } from '@/API/patient/workActions'; import useRegisterState from '@/hooks/useRegisterState'; import registerformSchema from '@/validation/patient/registerSchema'; import registerToExam from '@/domain/patient/registerToExam'; import dayjs from 'dayjs'; import utc from 'dayjs/plugin/utc'; import { View } from '@/API/patient/viewActions'; dayjs.extend(utc); const { useBreakpoint } = Grid; const { Panel } = Collapse; const RegisterPage: React.FC = () => { const screens = useBreakpoint(); const [form] = Form.useForm(); const { selectedViews, currentPatientType } = useRegisterState(); const handleRegister = async (): Promise<{ success: boolean; data?: RegisterWorkResponseData; views?: View[]; }> => { try { let values = form.getFieldsValue(); const formatDob = values.patient_dob ? dayjs.utc(values.patient_dob).format('YYYY-MM-DDTHH:mm:ss.SSS[Z]') //values.patient_dob.toString('YYYY-MM-DD[T00:00:00.000000Z]') : ''; console.log(`转换后的日期:${formatDob}`); values = { ...values, patient_dob: formatDob }; console.log(`${JSON.stringify(values, null, 2)}`); const validateResult = registerformSchema.safeParse(values); if (!validateResult.success) { message.error(`必填项未填写或者不合规则`); // todo 更详细和人性化的提示 // message.error(JSON.stringify(validateResult.error, null, 2)); console.log(JSON.stringify(validateResult.error, null, 2)); return { success: false, views: [] as [] }; } const registerInfo: RegisterInfo = { ...values, patient_type: currentPatientType?.patient_type_id, modality: 'dx', study_type: 'Normal', views: selectedViews.map((view) => ({ view_id: view.view_id, procedure_id: view.procedure_id, })), }; const response: RegisterWorkResponse = await registerWork(registerInfo); console.log('Work registered successfully:', response); message.info('Work registered successfully'); return { success: true, data: response.data, views: selectedViews }; } catch (error) { console.error('Error registering work:', error); message.error( 'Error registering work, please check the console for details.' ); return { success: false, views: [] }; } }; return ( <> {screens.xl || screens.xxl ? ( ) : screens.md || screens.lg ? ( ) : ( } key="1" > } key="2" > } key="3" > )} ); }; export default RegisterPage;