585 [住院医生工作站-手术申请] 手术申请历史列表缺失“手术状态”列,导致医生无法跟踪手术流转进度
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user