|
|
@@ -31,17 +31,7 @@ interface FieldConfig {
|
|
|
Visible: boolean;
|
|
|
}
|
|
|
|
|
|
-const listFieldBase: FieldConfig[] = [
|
|
|
- { key: '1', field: '动物ID', FieldName: 'patient_id', visible: true },
|
|
|
- { key: '2', field: '动物名称', FieldName: 'patient_id', visible: true },
|
|
|
- { key: '3', field: '动物类型', FieldName: 'patient_id', visible: true },
|
|
|
- { key: '4', field: '性别', FieldName: 'patient_id', visible: true },
|
|
|
- { key: '5', field: '年龄', FieldName: 'patient_id', visible: true },
|
|
|
- { key: '6', field: '检查描述', FieldName: 'patient_id', visible: true },
|
|
|
- { key: '7', field: '检查时间', FieldName: 'patient_id', visible: true },
|
|
|
- { key: '8', field: '主人', FieldName: 'patient_id', visible: true },
|
|
|
- { key: '9', field: '登记号', FieldName: 'patient_id', visible: true },
|
|
|
-];
|
|
|
+const listFieldBase: FieldConfig[] = [];
|
|
|
|
|
|
const initValues = {
|
|
|
// 是否自动跳转到下个视图
|
|
|
@@ -50,23 +40,30 @@ const initValues = {
|
|
|
'Exam/AutoSelectExposureMode': false,
|
|
|
// 自动跳转到下个视图延迟时间
|
|
|
'Inspection/AutoJumpToNextView': 0,
|
|
|
- suggestAPRTable: false,
|
|
|
- allowMergeTasks: false,
|
|
|
- allowEditAfterAcquisition: false,
|
|
|
+ // 提供建议的APR表
|
|
|
+ 'Inspection/SuggestAPRTable': false,
|
|
|
+ // 允许同一患者的多个任务合并开始检查
|
|
|
+ 'Inspection/AllowMergeTasks': false,
|
|
|
+ // 图像采集后在检查中允许编辑曝光信息如APR、DAP
|
|
|
+ 'Inspection/AllowEditAfterAcquisition': false,
|
|
|
// 是否要求拒绝原因
|
|
|
'Inspection/RequireRejectReason': false,
|
|
|
// 是否显示拒绝图片
|
|
|
'SystemConfig/ShowRejectImage': false,
|
|
|
- smallAnimalExposureMode: 'bodyThickness',
|
|
|
+ // 小动物默认曝光参数
|
|
|
+ 'Inspection/SmallAnimalExposureMode': 'bodyThickness',
|
|
|
// 是否显示电池状态
|
|
|
'Display/BatteryStatusEnable': false,
|
|
|
- tubePower: false,
|
|
|
+ // 是否显示球管电量
|
|
|
+ 'Display/TubePower': false,
|
|
|
// 是否显示温度状态
|
|
|
'Display/TemperatureStatusEnable': false,
|
|
|
- detectorPower: false,
|
|
|
+ // 是否显示探测器电量
|
|
|
+ 'Display/DetectorPower': false,
|
|
|
// 是否显示WIFI状态
|
|
|
'Display/WIFIStatusEnable': false,
|
|
|
- detectorTemp: false,
|
|
|
+ // 是否显示探测器温度
|
|
|
+ 'Display/DetectorTemp': false,
|
|
|
// 是否显示真实渲染图像
|
|
|
'SystemConfig/IsShowRealImage': false,
|
|
|
// 是否显示解刨图像
|
|
|
@@ -74,10 +71,11 @@ const initValues = {
|
|
|
// 是否显示曝光指示器
|
|
|
'Exam/ShowExposureIndicator': false,
|
|
|
// 导出图像模式
|
|
|
- exportPathMode: 'default',
|
|
|
+ 'System/ExportPathMode': 'default',
|
|
|
// 导出图像路径
|
|
|
'System/ExportDirectory': '',
|
|
|
- doseAdjustmentEnabled: false,
|
|
|
+ //是否启用剂量调整功能
|
|
|
+ 'System/DoseAdjustmentEnabled': false,
|
|
|
};
|
|
|
/**
|
|
|
* 工作流组件
|
|
|
@@ -148,24 +146,41 @@ const Workflow: React.FC = () => {
|
|
|
message.error(res?.description || '保存失败');
|
|
|
return;
|
|
|
}
|
|
|
- const formValues = (res?.data?.configs || []).reduce((acc, cur) => {
|
|
|
- acc[cur.uri] = cur.config_value;
|
|
|
- return acc;
|
|
|
- }, {});
|
|
|
- const {
|
|
|
- 'Patient/WorkListFields': workListFields = '{}',
|
|
|
- 'Patient/HistoryListFields': historyListFields = '{}',
|
|
|
- } = formValues;
|
|
|
- setTaskListConfig(JSON.parse(workListFields));
|
|
|
- setHistoryListConfig(JSON.parse(historyListFields));
|
|
|
- console.log('=====================>, formValues', formValues);
|
|
|
- // form.setFieldsValue(formValues);
|
|
|
+
|
|
|
+ // 创建配置映射
|
|
|
+ const configMap: Record<string, string> = {};
|
|
|
+ if (res?.data) {
|
|
|
+ res.data.forEach((config) => {
|
|
|
+ configMap[config.uri] = config.config_value;
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取特殊配置项并解析
|
|
|
+ const workListFieldsStr = configMap['Patient/WorkListFields'] || '[]';
|
|
|
+ const historyListFieldsStr = configMap['Patient/HistoryListFields'] || '[]';
|
|
|
+
|
|
|
+ setTaskListConfig(JSON.parse(workListFieldsStr));
|
|
|
+ setHistoryListConfig(JSON.parse(historyListFieldsStr));
|
|
|
+
|
|
|
+ // 过滤掉特殊配置项,只保留普通配置项用于表单
|
|
|
+ const formFieldsConfigs = {};
|
|
|
+ if (res?.data) {
|
|
|
+ res.data.forEach((config) => {
|
|
|
+ if (
|
|
|
+ config.uri !== 'Patient/WorkListFields' &&
|
|
|
+ config.uri !== 'Patient/HistoryListFields'
|
|
|
+ ) {
|
|
|
+ formFieldsConfigs[config.uri] = config.config_value;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ form.setFieldsValue(formFieldsConfigs);
|
|
|
};
|
|
|
|
|
|
// 处理保存
|
|
|
const handleSaveWorkFlow = async (): Promise<void> => {
|
|
|
const values = await form.validateFields();
|
|
|
- console.log('保存设置:');
|
|
|
const res = await modifyConfig({
|
|
|
...values,
|
|
|
'Patient/WorkListFields': JSON.stringify(taskListConfig),
|
|
|
@@ -192,6 +207,10 @@ const Workflow: React.FC = () => {
|
|
|
getWorkFlowData();
|
|
|
}, []);
|
|
|
|
|
|
+ const onChange = (value) => {
|
|
|
+ console.log('changed', value, typeof value);
|
|
|
+ };
|
|
|
+
|
|
|
return (
|
|
|
<div style={{ height: '100%', display: 'flex', flexDirection: 'column' }}>
|
|
|
{/* 主内容区 - 分割视图 */}
|
|
|
@@ -249,12 +268,12 @@ const Workflow: React.FC = () => {
|
|
|
},
|
|
|
]}
|
|
|
>
|
|
|
- <InputNumber min={0} max={60} />
|
|
|
+ <InputNumber min={0} max={60} onChange={onChange} />
|
|
|
</Form.Item>
|
|
|
|
|
|
<Form.Item
|
|
|
label="提供建议的曝光APR表"
|
|
|
- name="suggestAPRTable"
|
|
|
+ name="Inspection/SuggestAPRTable"
|
|
|
valuePropName="checked"
|
|
|
>
|
|
|
<Checkbox />
|
|
|
@@ -266,7 +285,7 @@ const Workflow: React.FC = () => {
|
|
|
<Card title="多个任务设置" size="small">
|
|
|
<Form.Item
|
|
|
label="允许同一患者的多个任务合并开始检查"
|
|
|
- name="allowMergeTasks"
|
|
|
+ name="Inspection/AllowMergeTasks"
|
|
|
valuePropName="checked"
|
|
|
>
|
|
|
<Checkbox />
|
|
|
@@ -277,7 +296,7 @@ const Workflow: React.FC = () => {
|
|
|
<Card title="编辑APR设置" size="small">
|
|
|
<Form.Item
|
|
|
label="图像采集后在检查中允许编辑曝光信息如APR、DAP"
|
|
|
- name="allowEditAfterAcquisition"
|
|
|
+ name="Inspection/AllowEditAfterAcquisition"
|
|
|
valuePropName="checked"
|
|
|
>
|
|
|
<Checkbox />
|
|
|
@@ -309,7 +328,7 @@ const Workflow: React.FC = () => {
|
|
|
<Card title="小动物默认曝光参数" size="small">
|
|
|
<Form.Item
|
|
|
label="曝光参数计算方式"
|
|
|
- name="smallAnimalExposureMode"
|
|
|
+ name="Inspection/SmallAnimalExposureMode"
|
|
|
>
|
|
|
<RadioGroup>
|
|
|
<Radio value="bodyThickness">根据体厚计算</Radio>
|
|
|
@@ -332,7 +351,7 @@ const Workflow: React.FC = () => {
|
|
|
|
|
|
<Form.Item
|
|
|
label="球管管电量"
|
|
|
- name="tubePower"
|
|
|
+ name="Display/TubePower"
|
|
|
valuePropName="checked"
|
|
|
>
|
|
|
<Switch />
|
|
|
@@ -349,7 +368,7 @@ const Workflow: React.FC = () => {
|
|
|
<Col span={12}>
|
|
|
<Form.Item
|
|
|
label="探测器电量"
|
|
|
- name="detectorPower"
|
|
|
+ name="Display/DetectorPower"
|
|
|
valuePropName="checked"
|
|
|
>
|
|
|
<Switch />
|
|
|
@@ -365,7 +384,7 @@ const Workflow: React.FC = () => {
|
|
|
|
|
|
<Form.Item
|
|
|
label="探测器温度"
|
|
|
- name="detectorTemp"
|
|
|
+ name="Display/DetectorTemp"
|
|
|
valuePropName="checked"
|
|
|
>
|
|
|
<Switch />
|
|
|
@@ -407,9 +426,9 @@ const Workflow: React.FC = () => {
|
|
|
</Card>
|
|
|
|
|
|
{/* 导出图像路径 */}
|
|
|
- <Card title="导出图像路径" size="small" hidden>
|
|
|
+ <Card title="导出图像路径" size="small">
|
|
|
<Space direction="vertical" style={{ width: '100%' }}>
|
|
|
- <Form.Item label="路径选择" name="exportPathMode">
|
|
|
+ <Form.Item label="路径选择" name="System/ExportPathMode">
|
|
|
<RadioGroup>
|
|
|
<Radio value="default">默认路径</Radio>
|
|
|
<Radio value="lastUsed">上一次导出路径</Radio>
|
|
|
@@ -426,7 +445,7 @@ const Workflow: React.FC = () => {
|
|
|
<Card title="剂量调整设置" size="small">
|
|
|
<Form.Item
|
|
|
label="是否启用剂量调整功能"
|
|
|
- name="doseAdjustmentEnabled"
|
|
|
+ name="System/DoseAdjustmentEnabled"
|
|
|
valuePropName="checked"
|
|
|
>
|
|
|
<Switch />
|
|
|
@@ -451,7 +470,6 @@ const Workflow: React.FC = () => {
|
|
|
dataSource={taskListConfig}
|
|
|
pagination={false}
|
|
|
size="small"
|
|
|
- scroll={{ y: 300 }}
|
|
|
/>
|
|
|
</Card>
|
|
|
|
|
|
@@ -462,7 +480,6 @@ const Workflow: React.FC = () => {
|
|
|
dataSource={historyListConfig}
|
|
|
pagination={false}
|
|
|
size="small"
|
|
|
- scroll={{ y: 400 }}
|
|
|
/>
|
|
|
</Card>
|
|
|
</div>
|