import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { RootState } from '../store'; import { setSelectedBodyPosition } from './bodyPositionListSlice'; interface BodyPositionDetailState { view_name: string; view_description: string; view_icon_name: string; patient_name: string; patient_id: string; registration_number: string; study_description: string; body_position_image: string; collimator_length: string | number; collimator_width: string | number; sid: string; // 🆕 添加以下字段 expose_status: string; // 'Exposed' | 'Unexposed' sop_instance_uid: string; // 用于获取缩略图 URL // Add other relevant fields as needed } const initialState: BodyPositionDetailState = { view_name: '', view_description: '', view_icon_name: '', patient_name: '', patient_id: '', registration_number: '', study_description: '', body_position_image: '', collimator_length: '', collimator_width: '', sid: '', // 🆕 添加初始值 expose_status: 'Unexposed', sop_instance_uid: '', // Initialize other fields as needed }; const bodyPositionDetailSlice = createSlice({ name: 'bodyPositionDetail', initialState, reducers: { setBodyPositionDetail: ( state, action: PayloadAction ) => { return { ...state, ...action.payload, }; }, }, extraReducers: (builder) => { builder.addCase(setSelectedBodyPosition, (state, action) => { const selectedBodyPosition = action.payload; if (selectedBodyPosition) { return { ...state, view_name: selectedBodyPosition.view_name, view_description: selectedBodyPosition.view_description, view_icon_name: selectedBodyPosition.view_icon_name, patient_name: selectedBodyPosition.patient_name, patient_id: selectedBodyPosition.patient_id, registration_number: selectedBodyPosition.registration_number, study_description: selectedBodyPosition.study_description, body_position_image: selectedBodyPosition.body_position_image, collimator_length: selectedBodyPosition.collimator_length, collimator_width: selectedBodyPosition.collimator_width, sid: selectedBodyPosition.sid, // 🆕 添加字段映射 expose_status: selectedBodyPosition.dview.expose_status, sop_instance_uid: selectedBodyPosition.sop_instance_uid, }; } return state; }); }, }); export const { setBodyPositionDetail } = bodyPositionDetailSlice.actions; export default bodyPositionDetailSlice.reducer;