import { configureStore } from '@reduxjs/toolkit'; import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'; import userInfoReducer from './user_info'; import viewSelectionReducer from './patient/viewSelection'; import patientTypeReducer from './patientTypeSlice'; import bodyPartReducer from './bodyPartSlice'; import selectionReducer from './patient/register/SelectionTypeSlice'; import productReducer from './productSlice'; import BusinessFlowReducer from './BusinessFlowSlice'; import systemModeReducer from './systemModeSlice'; import examWorksCacheReducer from './exam/examWorksCacheSlice'; import bodyPositionListReducer from './exam/bodyPositionListSlice'; import bodyPositionDetailReducer from './exam/bodyPositionDetailSlice'; import appendViewReducer from './exam/appendViewSlice'; import aprReducer from './exam/aprSlice'; import bodyPositionListenerMiddleware from './exam/bodyPositionListener'; import { aprMiddleware } from './exam/aprSlice'; import functionAreaReducer from './view/functionAreaSlice'; import measurementPanelReducer from './view/measurementPanelSlice'; import advancedProcessingPanelReducer from './view/advancedProcessingPanelSlice'; import sliderAdjustmentPanelReducer from './view/sliderAdjustmentPanelSlice'; import rectCropPanelReducer from './view/rectCropPanelSlice'; import viewerContainerReducer from './view/viewerContainerSlice'; import markPanelReducer from './view/markPanelSlice'; import searchReducer from './patient/worklist/slices/searchSlice'; import businessFlowMiddleware from './businessFlowMiddleware'; import leavingRegisterMonitor from './leavingRegisterMonitor'; import hasEnteredExamMonitor from './hasEnteredExamMonitor'; import { workEntitiesSlice, workFiltersSlice, workPaginationSlice, workSelectionSlice, workUISlice, } from './patient/worklist/slices/workSlice'; import { historyEntitiesSlice, historyFiltersSlice, historyPaginationSlice, historySelectionSlice, historyUISlice, } from './patient/worklist/slices/history'; import { sendJobEntitiesSlice, sendJobFiltersSlice, sendJobPaginationSlice, sendJobSelectionSlice, sendJobUISlice, } from './output/sendJob/slices/sendJobSlice'; import generatorMonitorReducer from './exam/generatorMonitorSlice'; import largeScreenReducer from './exam/largeScreenSlice'; import deviceAreaReducer from './exam/deviceAreaSlice'; import historyPanelSwitchReducer from './patient/worklist/slices/historyPanelSwitchSlice'; import thumbnailListReducer from './patient/worklist/slices/thumbnailListSlice'; import panelSwitchForViewReducer from './panelSwitchSliceForView'; import quotaModalReducer from './security/quotaModalSlice'; import quotaReducer from './security/quotaSlice'; import formReducer from './patient/register/formSlice'; import qrCodeScanReducer from './patient/register/qrCodeScanSlice'; import editFormReducer from './patient/edit/editFormSlice'; import deviceReducer from './device/deviceSlice'; import headerReducer from './patient/DiagnosticReport/headerSlice'; import baseInfoReducer from './patient/DiagnosticReport/baseInfoSlice'; import animalBaseInfoReducer from './patient/DiagnosticReport/animalBaseInfoSlice'; import imageListReducer from './patient/DiagnosticReport/imageListSlice'; import findingsReducer from './patient/DiagnosticReport/findingsSlice'; import diagnosisReducer from './patient/DiagnosticReport/diagnosisSlice'; import studyFilterReducer from './patient/DiagnosticReport/studyFilterSlice'; import templateReducer from './patient/DiagnosticReport/templateSlice'; import imageSelectionReducer from './patient/DiagnosticReport/imageSelectionSlice'; import diagnosticReportReducer from './patient/DiagnosticReport/slice'; import diagnosticReportBatchDownloadReducer from './patient/DiagnosticReport/diagnosticReportBatchDownloadSlice'; import permissionReducer from './permissionSlice'; import i18nReducer from './i18nSlice'; import featureNotAvailableReducer from './featureNotAvailableSlice'; import themeReducer from './themeSlice'; import cameraReducer from './exam/cameraSlice'; import pacsNodeReducer from './output/pacsNode/pacsNodeSlice'; import selectedPatientReducer from './patient/worklist/slices/selectedPatientSlice'; import reregisterReducer from './patient/reregister/reregisterSlice'; import { binEntitiesSlice, binFiltersSlice, binPaginationSlice, binSelectionSlice, binUISlice, } from './patient/bin/slices/binSlice'; import binDiskInfoSlice from './patient/bin/slices/binDiskInfoSlice'; import dicomOverlayReducer from './view/dicomOverlaySlice'; import playbackReducer from './view/playbackSlice'; import printReducer from './print/printSlice'; import risSyncReducer from './ris/risSyncSlice'; import processingModeReducer from './system/processingModeSlice'; import invertContrastReducer from './view/invertContrastSlice'; import serverConfigReducer from '../features/serverConfig/state/serverConfigSlice'; // import annotationReducer from '../features/imageAnnotation/state/annotationSlice'; import versionUpdateReducer from './versionUpdateSlice'; const store = configureStore({ reducer: { userInfo: userInfoReducer, viewSelection: viewSelectionReducer, patientType: patientTypeReducer, bodyPart: bodyPartReducer, selection: selectionReducer, product: productReducer, BusinessFlow: BusinessFlowReducer, systemMode: systemModeReducer, examWorksCache: examWorksCacheReducer, bodyPositionList: bodyPositionListReducer, bodyPositionDetail: bodyPositionDetailReducer, appendView: appendViewReducer, apr: aprReducer, functionArea: functionAreaReducer, measurementPanel: measurementPanelReducer, advancedProcessingPanel: advancedProcessingPanelReducer, sliderAdjustmentPanel: sliderAdjustmentPanelReducer, rectCropPanel: rectCropPanelReducer, viewerContainer: viewerContainerReducer, markPanel: markPanelReducer, workEntities: workEntitiesSlice.reducer, workFilters: workFiltersSlice.reducer, workPagination: workPaginationSlice.reducer, workSelection: workSelectionSlice.reducer, workUI: workUISlice.reducer, historyEntities: historyEntitiesSlice.reducer, historyFilters: historyFiltersSlice.reducer, historyPagination: historyPaginationSlice.reducer, historySelection: historySelectionSlice.reducer, historyUI: historyUISlice.reducer, sendJobEntities: sendJobEntitiesSlice.reducer, sendJobFilters: sendJobFiltersSlice.reducer, sendJobPagination: sendJobPaginationSlice.reducer, sendJobSelection: sendJobSelectionSlice.reducer, sendJobUI: sendJobUISlice.reducer, search: searchReducer, generatorMonitor: generatorMonitorReducer, largeScreen: largeScreenReducer, deviceArea: deviceAreaReducer, historyPanelSwitch: historyPanelSwitchReducer, thumbnailList: thumbnailListReducer, panelSwitchForView: panelSwitchForViewReducer, quotaModal: quotaModalReducer, quota: quotaReducer, form: formReducer, qrCodeScan: qrCodeScanReducer, editForm: editFormReducer, device: deviceReducer, header: headerReducer, baseInfo: baseInfoReducer, animalBaseInfo: animalBaseInfoReducer, imageList: imageListReducer, findings: findingsReducer, diagnosis: diagnosisReducer, studyFilter: studyFilterReducer, template: templateReducer, imageSelection: imageSelectionReducer, diagnosticReport: diagnosticReportReducer, diagnosticReportBatchDownload: diagnosticReportBatchDownloadReducer, permission: permissionReducer, i18n: i18nReducer, featureNotAvailable: featureNotAvailableReducer, theme: themeReducer, camera: cameraReducer, pacsNode: pacsNodeReducer, selectedPatient: selectedPatientReducer, reregister: reregisterReducer, binEntities: binEntitiesSlice.reducer, binFilters: binFiltersSlice.reducer, binPagination: binPaginationSlice.reducer, binSelection: binSelectionSlice.reducer, binUI: binUISlice.reducer, binDiskInfo: binDiskInfoSlice.reducer, dicomOverlay: dicomOverlayReducer, playback: playbackReducer, print: printReducer, risSync: risSyncReducer, processingMode: processingModeReducer, invertContrast: invertContrastReducer, serverConfig: serverConfigReducer, // annotation: annotationReducer, versionUpdate: versionUpdateReducer, }, middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat( bodyPositionListenerMiddleware, aprMiddleware, businessFlowMiddleware, leavingRegisterMonitor, hasEnteredExamMonitor ), }); export type RootState = ReturnType; export type AppDispatch = typeof store.dispatch; export const useAppDispatch = () => useDispatch(); export const useAppSelector: TypedUseSelectorHook = useSelector; export default store;