package cn.lihu.jh.module.ecg.enums; import lombok.AllArgsConstructor; import lombok.Getter; /** * 检查状态编码枚举。 * *

修正说明

* 原实现存在两处问题,已修正: *
    *
  1. 字面值含空白污染:原定义为 {@code SQDKL(" 1", ...)}、 * {@code JCDJ(" 3\t", ...)},type 值前有空格、部分含制表符, * 导致 {@link #getByType(String)} 对正常传入的 {@code "1"}、{@code "3"} * 匹配失败(返回 null)。现已去除全部空白。
  2. *
  3. 包含病理专用状态:原表含 21 标本送检、22 取消标本送检、23 已缴费, * 这些属病理科业务,心电系统不涉及,已移除。
  4. *
* *

编码值与《检查状态编码表》一致。状态的**归一化**(去前导零、校验合法性) * 请使用 {@link HisCheckStatusEnum#normalize(String)},本枚举只负责 * 类型值到名称的展示映射。 * * @author 心电排队装机系统 */ @Getter @AllArgsConstructor public enum AppointmentTypeEnum { SQDKL("1", "申请单开立"), SQDCX("2", "申请单撤销"), JCDJ("3", "检查登记"), QXJC("4", "取消检查"), JCKS("5", "检查开始"), GZYJ("6", "给造影剂"), JCJS("7", "检查结束"), BGSC("8", "报告生成"), BGCX("9", "报告撤销"), BGSH("10", "报告审核"); /** * 状态编码(标准值,无空白、无前导零) */ private final String type; /** * 状态名称 */ private final String description; /** * 根据状态编码获取名称。 *

* 入参会先做归一化处理(去空白、去前导零),因此传入 * {@code "3"}、{@code "03"}、{@code " 3 "} 均可正确匹配。 * * @param type 状态编码 * @return 状态名称;无法识别时返回 null */ public static String getByType(String type) { String normalized = HisCheckStatusEnum.normalize(type); if (normalized == null) { return null; } for (AppointmentTypeEnum value : values()) { if (value.type.equals(normalized)) { return value.description; } } return null; } }