- 新增手术室类型字段支持急诊、择期、日间、复合手术室四种类型 - 添加所属科室字段实现科室级别资源管理 - 前端列表页面新增类型和所属科室显示列 - 新增类型选择器和科室选择器组件 - 后端实体类和服务类添加对应字段处理逻辑 - 数据库添加room_type_enum字段和相关索引 - 创建手术室类型字典数据和字典项配置 - 生成手术室管理功能说明文档
6.7 KiB
6.7 KiB
手术室管理添加类型和所属科室字段功能说明
概述
本次更新为手术室管理模块添加了"类型"和"所属科室"字段,优化了手术室信息的分类管理。
数据库类型:PostgreSQL
功能特点
1. 手术室类型
支持四种手术室类型:
- 急诊手术室:用于急诊手术的手术室
- 择期手术室:用于择期手术的手术室(默认类型)
- 日间手术室:用于日间手术的手术室
- 复合手术室:用于复合手术的手术室
2. 所属科室
每个手术室可以关联到具体的科室,便于科室级别的资源管理。
修改内容
前端修改(Vue3)
1. 手术室列表页面 (operatingroom/index.vue)
列表表格新增列:
- 类型列:显示手术室类型(急诊手术室、择期手术室等)
- 所属科室列:显示手术室所属的科室名称
新增/修改对话框新增字段:
- 类型选择器:下拉选择手术室类型
- 所属科室选择器:可搜索的科室下拉框
查询表单保持原样:
- 仍支持按手术室名称和状态查询
查看对话框新增显示:
- 类型信息
- 所属科室信息
2. 表单数据结构
const form = ref({
id: undefined,
busNo: undefined,
name: undefined,
roomTypeEnum: undefined, // 新增:手术室类型
organizationId: undefined, // 已有:所属科室ID
organizationName: undefined, // 已有:所属科室名称
locationDescription: undefined,
equipmentConfig: undefined,
capacity: 1,
statusEnum: 1,
displayOrder: 0,
remark: undefined
})
3. 类型选项配置
const roomTypeOptions = ref([
{ value: 1, label: '急诊手术室' },
{ value: 2, label: '择期手术室' },
{ value: 3, label: '日间手术室' },
{ value: 4, label: '复合手术室' }
])
后端修改(Java)
1. 实体类 (OperatingRoom.java)
新增字段:
/** 手术室类型 */
@Dict(dictCode = "operating_room_type")
private Integer roomTypeEnum;
private String roomTypeEnum_dictText;
/** 所属机构ID */
private Long organizationId;
/** 所属机构名称 */
private String organizationName;
2. DTO类 (OperatingRoomDto.java)
新增字段:
/** 手术室类型 */
@Dict(dictCode = "operating_room_type")
private Integer roomTypeEnum;
private String roomTypeEnum_dictText;
/** 所属机构ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long organizationId;
/** 机构名称 */
private String organizationName;
3. Service实现类 (OperatingRoomAppServiceImpl.java)
查询列表方法优化:
- 添加类型字段的枚举值转换逻辑
- 根据类型编码设置对应的中文描述
详情查询方法优化:
- 添加类型字段的枚举值转换
- 查询所属科室的名称并回显
数据库修改
SQL脚本文件:add_operating_room_type_fields.sql(PostgreSQL版本)
1. 添加字段:
ALTER TABLE public.adm_operating_room
ADD COLUMN room_type_enum INTEGER DEFAULT 2;
COMMENT ON COLUMN public.adm_operating_room.room_type_enum IS
'手术室类型:1-急诊手术室,2-择期手术室,3-日间手术室,4-复合手术室';
2. 更新现有数据:
UPDATE public.adm_operating_room
SET room_type_enum = 2
WHERE room_type_enum IS NULL;
3. 添加索引:
CREATE INDEX idx_room_type ON public.adm_operating_room(room_type_enum);
CREATE INDEX idx_org_id ON public.adm_operating_room(organization_id);
4. 字典数据:
- 新增字典类型:
operating_room_type(手术室类型) - 新增字典项:
- 急诊手术室(1)
- 择期手术室(2)
- 日间手术室(3)
- 复合手术室(4)
PostgreSQL特定语法说明:
- 使用
public.adm_operating_room替代`adm_operating_room` - 使用
COMMENT ON COLUMN替代COMMENT在ALTER TABLE中 - 使用
nextval()和序列来生成字典类型ID - 使用
information_schema.columns获取列信息 - 使用
CASE WHEN语句进行条件判断
部署步骤
1. 数据库部署
执行SQL脚本(PostgreSQL):
psql -U postgres -d his_database -f add_operating_room_type_fields.sql
或者使用 pgAdmin 等图形化工具执行SQL脚本。
2. 后端部署
重启后端服务,使新的代码生效。
3. 前端部署
重新编译并部署前端代码:
npm run build
使用说明
新增手术室
- 进入手术室管理页面
- 点击"新增手术室"按钮
- 填写手术室信息:
- 手术室名称(必填)
- 类型(可选,默认为择期手术室)
- 所属科室(必填)
- 位置描述
- 设备配置
- 容纳人数
- 状态(默认为启用)
- 显示顺序
- 备注
- 点击"确定"保存
修改手术室
- 在手术室列表中找到要修改的记录
- 点击"编辑"按钮
- 修改相关信息(包括类型和所属科室)
- 点击"确定"保存
查看手术室详情
- 在手术室列表中点击"查看"按钮
- 查看完整的手术室信息,包括类型和所属科室
查询手术室
- 按手术室名称模糊查询
- 按状态筛选(启用/停用)
注意事项
-
数据迁移:现有手术室的类型默认设置为"择期手术室"(2),可以根据实际需要调整。
-
科室关联:所属科室是必填字段,需要在科室管理中先配置好科室信息。
-
类型字典:手术室类型字典已自动创建,可以在系统字典管理中进行维护。
-
索引优化:已为类型和科室字段添加索引,提升查询性能。
-
兼容性:此次修改保持了向后兼容性,不影响现有功能。
验证清单
- 数据库字段添加成功
- 字典数据创建成功
- 前端列表正确显示类型和所属科室
- 新增手术室时可选择类型和所属科室
- 修改手术室时可更新类型和所属科室
- 查看手术室详情时正确显示类型和所属科室
- 类型下拉选项显示正确
- 所属科室选择器可正常搜索和选择
- 查询功能正常工作
- 没有语法错误和运行时错误
回滚方案
如需撤销本次修改,请执行SQL脚本中的回滚语句(PostgreSQL):
DROP INDEX idx_room_type ON public.adm_operating_room;
DROP INDEX idx_org_id ON public.adm_operating_room;
DELETE FROM public.sys_dict_data WHERE dict_type = 'operating_room_type';
DELETE FROM public.sys_dict_type WHERE dict_type = 'operating_room_type';
ALTER TABLE public.adm_operating_room DROP COLUMN room_type_enum;
技术支持
如有问题,请联系技术支持团队。