Browse Source

实现从注册页面进入检查中

dengdx 1 month ago
parent
commit
a194021aae
2 changed files with 37 additions and 3 deletions
  1. 26 0
      src/domain/patient/registerToExam.ts
  2. 11 3
      src/pages/patient/register.tsx

+ 26 - 0
src/domain/patient/registerToExam.ts

@@ -0,0 +1,26 @@
+import { addWork } from '../../states/exam/examWorksCacheSlice';
+import { setBusinessFlow } from '../../states/BusinessFlowSlice';
+import mapToTask from './mapToTask';
+import store from '@/states/store';
+
+const registerToExam = async (registerData:any) => {
+  const dispatch = store.dispatch;
+
+  try {
+
+    // Save registration result to cache
+    const task = mapToTask(registerData);
+    dispatch(addWork(task));
+
+    // Step 3: Proceed to Examination
+    dispatch(setBusinessFlow('exam'));
+  } catch (error) {
+    // dispatch(setSystemMode(SystemMode.Normal));
+    console.error('Error in handleEmergencyOperation:', error);
+    throw error;
+  } finally {
+    // dispatch(setSystemMode(SystemMode.Normal));
+  }
+};
+
+export default registerToExam;

+ 11 - 3
src/pages/patient/register.tsx

@@ -17,6 +17,7 @@ import RegisterAvailableList from './components/register.available.list';
 import { RegisterInfo, registerWork } 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';
 dayjs.extend(utc);
@@ -29,7 +30,7 @@ const RegisterPage: React.FC = () => {
   const [form] = Form.useForm();
   const { selectedViews, currentPatientType } = useRegisterState();
 
-const handleRegister = async (): Promise<void> => {
+const handleRegister = async (): Promise<{ success: boolean; data?: any }> => {
   try {
     let values = form.getFieldsValue();
     const formatDob = values.patient_dob
@@ -47,7 +48,7 @@ const handleRegister = async (): Promise<void> => {
       // message.error(JSON.stringify(validateResult.error, null, 2));
       console.log(JSON.stringify(validateResult.error, null, 2));
 
-      return;
+      return { success: false };
     }
     const registerInfo: RegisterInfo = {
       ...values,
@@ -62,11 +63,13 @@ const handleRegister = async (): Promise<void> => {
     const response = await registerWork(registerInfo);
     console.log('Work registered successfully:', response);
     message.info('Work registered successfully');
+    return { success: true, data: response.data };
   } catch (error) {
     console.error('Error registering work:', error);
     message.error(
       'Error registering work, please check the console for details.'
     );
+    return { success: false };
   }
 };
 
@@ -174,7 +177,12 @@ const handleRegister = async (): Promise<void> => {
         <Button type="primary" onClick={handleRegister}>
           注册
         </Button>
-        <Button type="default">检查</Button>
+        <Button type="default" onClick={async () => {
+          const registerResult = await handleRegister();
+          if (registerResult.success) {
+            await registerToExam(registerResult.data);
+          }
+        }}>检查</Button>
       </Space>
     </>
   );