12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 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;
|