handleEmergencyOperation.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import generateRegistrationInfo from './registrationGenerator';
  2. import { registerWork } from '../../API/patient/workActions';
  3. import { setSystemMode, SystemMode } from '../../states/systemModeSlice';
  4. import { addWork } from '../../states/exam/examWorksCacheSlice';
  5. import { setBusinessFlow } from '../../states/BusinessFlowSlice';
  6. import mapToTask from './mapToTask';
  7. import store from '@/states/store';
  8. const handleEmergencyOperation = async () => {
  9. const dispatch = store.dispatch;
  10. try {
  11. dispatch(setSystemMode(SystemMode.Emergency));
  12. // Step 1: Generate Registration Information
  13. const registrationInfo = generateRegistrationInfo();
  14. if (!registrationInfo) {
  15. throw new Error('Failed to generate registration information');
  16. }
  17. // Step 2: Register Emergency Work
  18. const registrationResult = await registerWork(registrationInfo);
  19. if (!registrationResult || registrationResult.code !== '0x000000') {
  20. throw new Error(
  21. `Failed to register emergency work : ${JSON.stringify(registrationResult)}`
  22. );
  23. }
  24. console.info(
  25. `Emergency registration result: ${JSON.stringify(registrationResult)}`
  26. );
  27. // Switch system mode back to normal
  28. // dispatch(setSystemMode(SystemMode.Normal));
  29. // Save registration result to cache
  30. const task = mapToTask(registrationResult.data);
  31. dispatch(addWork(task));
  32. // Step 3: Proceed to Examination
  33. dispatch(setBusinessFlow('exam'));
  34. } catch (error) {
  35. // dispatch(setSystemMode(SystemMode.Normal));
  36. console.error('Error in handleEmergencyOperation:', error);
  37. throw error;
  38. } finally {
  39. // dispatch(setSystemMode(SystemMode.Normal));
  40. }
  41. };
  42. export default handleEmergencyOperation;