585 [住院医生工作站-手术申请] 手术申请历史列表缺失“手术状态”列,导致医生无法跟踪手术流转进度

This commit is contained in:
wangjian963
2026-06-02 16:02:47 +08:00
parent 578b771c56
commit 734bdc6a0d
8 changed files with 221 additions and 16 deletions

View File

@@ -0,0 +1,84 @@
package com.openhis.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 手术申请单状态枚举
* <p>
* 区别于 {@link SurgeryStatusEnum}(手术管理状态:待排期/已排期/手术中/已完成/已取消/暂停),
* 本枚举用于手术申请单的业务流转状态,覆盖从医生开立到手术完成的完整生命周期。
*
* <pre>
* 正向流转:
* 待签发(1) → 已签发(2) → 已校对(3) → 已执行(4) → 已安排(5) → 已完成(6)
*
* 逆向流转:
* 已签发(2) → 待签发(1) (医生撤回 / 护士退回)
* 已执行(4) → 已校对(3) (护士取消执行)
* 任意状态 → 已作废(10) (医生撤销)
* </pre>
*
* @author system
* @date 2026-06-02
*/
@Getter
@AllArgsConstructor
public enum SurgeryAppStatusEnum {
/** 待签发 — 医生已保存但尚未提交,仅在医生站可见 */
PENDING_SIGN(1, "待签发"),
/** 已签发 — 医生已提交,自动流转至护士工作站待校对 */
SIGNED(2, "已签发"),
/** 已校对 — 病区护士已校对手术医嘱 */
VERIFIED(3, "已校对"),
/** 已执行 — 病区护士已执行手术医嘱,已向手麻科提交申请 */
EXECUTED(4, "已执行"),
/** 已安排 — 手麻科已排好手术间及时间,待手术 */
SCHEDULED(5, "已安排"),
/** 已完成 — 手术已结束并录入完毕(终态只读) */
COMPLETED(6, "已完成"),
/** 已作废 — 医生中途撤销了手术申请(终态) */
CANCELLED(10, "已作废");
private final Integer code;
private final String info;
/**
* 根据状态码获取枚举
*
* @param code 状态码
* @return 对应的枚举,未匹配返回 null
*/
public static SurgeryAppStatusEnum getByCode(Integer code) {
if (code == null) {
return null;
}
for (SurgeryAppStatusEnum val : values()) {
if (val.getCode().equals(code)) {
return val;
}
}
return null;
}
/**
* 判断是否为终态(不可再变更)
*/
public boolean isFinal() {
return this == COMPLETED || this == CANCELLED;
}
/**
* 判断是否允许医生编辑
*/
public boolean isEditable() {
return this == PENDING_SIGN;
}
}