import generateRegistrationInfo from './registrationGenerator'; import { registerWork } from '../../API/patient/workActions'; import { setSystemMode, SystemMode } from '../../states/systemModeSlice'; import { addWork } from '../../states/exam/examWorksCacheSlice'; import { setBusinessFlow } from '../../states/BusinessFlowSlice'; import mapToTask from './mapToTask'; import store from '@/states/store'; const handleEmergencyOperation = async () => { const dispatch = store.dispatch; try { dispatch(setSystemMode(SystemMode.Emergency)); // Step 1: Generate Registration Information const registrationInfo = generateRegistrationInfo(); if (!registrationInfo) { throw new Error('Failed to generate registration information'); } // Step 2: Register Emergency Work const registrationResult = await registerWork(registrationInfo); if (!registrationResult || registrationResult.code !== '0x000000') { throw new Error( `Failed to register emergency work : ${JSON.stringify(registrationResult)}` ); } console.info( `Emergency registration result: ${JSON.stringify(registrationResult)}` ); // Switch system mode back to normal // dispatch(setSystemMode(SystemMode.Normal)); // Save registration result to cache const task = mapToTask(registrationResult.data); 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 handleEmergencyOperation;