1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
| package cn.lihu.jh.module.ecg.enums;
|
| import lombok.AllArgsConstructor;
| import lombok.Getter;
|
| /**
| * 检查状态编码枚举。
| *
| * <h3>修正说明</h3>
| * 原实现存在两处问题,已修正:
| * <ol>
| * <li><b>字面值含空白污染</b>:原定义为 {@code SQDKL(" 1", ...)}、
| * {@code JCDJ(" 3\t", ...)},type 值前有空格、部分含制表符,
| * 导致 {@link #getByType(String)} 对正常传入的 {@code "1"}、{@code "3"}
| * 匹配失败(返回 null)。现已去除全部空白。</li>
| * <li><b>包含病理专用状态</b>:原表含 21 标本送检、22 取消标本送检、23 已缴费,
| * 这些属病理科业务,心电系统不涉及,已移除。</li>
| * </ol>
| *
| * <p>编码值与《检查状态编码表》一致。状态的**归一化**(去前导零、校验合法性)
| * 请使用 {@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;
|
| /**
| * 根据状态编码获取名称。
| * <p>
| * 入参会先做归一化处理(去空白、去前导零),因此传入
| * {@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;
| }
| }
|
|