feat: 合并 upstream/v1.3 新增功能模块(安全合并策略)
新增功能模块:
- 药房管理:住院退药、处方审核功能
- 报表管理:门诊管理报表、药房结算报表、医嘱统计报表
- 支付管理:三方对账功能
- 新增枚举类:电子处方类型、频次类型、病历状态等10个
- 新增实体类:处方审核记录、第三方支付请求、中医结算目录
- 工具类增强:年龄计算、Excel工具
合并策略:仅合并低风险新增文件,保留现有业务功能
上游版本:v1.3 (2025-03-06发版)
合并分支:merge-upstream-v1.3-0310
🤖 Auto-generated by Claude Code
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
package com.openhis.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 电子处方类别
|
||||
*
|
||||
* @author liuhr
|
||||
* @date 2025/4/21
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ElePrescriptionType implements HisEnumInterface {
|
||||
|
||||
OUTPATIENT_WESTERN_OR_TRADITIONAL_CHINESE_MEDICINE(1, "1", "门诊西药中成药"),
|
||||
|
||||
OUTPATIENT_CHINESE_MATERIAL_MEDICATED(2, "2", "门诊中药饮片"),
|
||||
|
||||
EMERGENCY_WESTERN_OR_TRADITIONAL_CHINESE_MEDICINE(3, "3", "急诊西药中成药"),
|
||||
|
||||
EMERGENCY_CHINESE_MATERIAL_MEDICATED(4, "4", "急诊中药饮片"),
|
||||
|
||||
PEDIATRIC_WESTERN_OR_TRADITIONAL_CHINESE_MEDICINE(5, "5", "儿科西药中成药"),
|
||||
|
||||
PEDIATRIC_CHINESE_MATERIAL_MEDICATED(6, "6", "儿科中药饮片"),
|
||||
|
||||
NARCOTIC_OR_SPIRIT_FIRST_CLASS(7, "7", "麻、精一"),
|
||||
|
||||
SPIRIT_SECOND_CLASS(8, "8", "精二"),
|
||||
|
||||
CHINESE_MATERIAL_MEDICATED(9, "9", "中药饮片"),
|
||||
|
||||
TRADITIONAL_CHINESE_MEDICINE_PREPARATION(10, "10", "中成药"),
|
||||
|
||||
INPATIENT_WESTERN_OR_TRADITIONAL_CHINESE_MEDICINE(11, "11", "住院西药中成药"),
|
||||
|
||||
OTHER(99, "99", "其它");
|
||||
|
||||
@EnumValue
|
||||
private final Integer value;
|
||||
private final String code;
|
||||
private final String info;
|
||||
|
||||
public static ElePrescriptionType getByValue(Integer value) {
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
for (ElePrescriptionType val : values()) {
|
||||
if (val.getValue().equals(value)) {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.openhis.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum FrequencyType implements HisEnumInterface {
|
||||
|
||||
DAILY(1, "daily", "每日的"),
|
||||
EVERY_OTHER_DAY(2, "every_other_day", "隔日的"),
|
||||
WEEKLY(3, "weekly", "每周的");
|
||||
|
||||
@EnumValue
|
||||
private final Integer value;
|
||||
private final String code;
|
||||
private final String info;
|
||||
|
||||
public static FrequencyType getByValue(Integer value) {
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
for (FrequencyType val : values()) {
|
||||
if (val.getValue().equals(value)) {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.openhis.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 病案首页上传状态
|
||||
*
|
||||
* @author swb
|
||||
* @date 2025-01-04
|
||||
*/
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum MedicalRecordStatus {
|
||||
PENDING_APPROVAL(0,"pending-approval","待审核"),
|
||||
APPROVED(1,"approved","审核通过"),
|
||||
UPLOADED(2,"uploaded ","已上传");
|
||||
|
||||
@EnumValue
|
||||
private final Integer value;
|
||||
private final String code;
|
||||
private final String info;
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.openhis.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 处方类别 | 对应字典 prescription_category
|
||||
*
|
||||
* @author liuhr
|
||||
* @date 2025/4/21
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum PrescriptionCategory implements HisEnumInterface {
|
||||
|
||||
OUTPATIENT_PRESCRIPTION(1, "1", "门诊处方"),
|
||||
|
||||
HOSPITALIZATION_ORDER(2, "2", "住院医嘱"),
|
||||
|
||||
DISCHARGE_MEDICATION(3, "3", "出院带药");
|
||||
|
||||
@EnumValue
|
||||
private final Integer value;
|
||||
private final String code;
|
||||
private final String info;
|
||||
|
||||
public static PrescriptionCategory getByValue(Integer value) {
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
for (PrescriptionCategory val : values()) {
|
||||
if (val.getValue().equals(value)) {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.openhis.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 审方-存在问题枚举
|
||||
*
|
||||
* @author swb
|
||||
* @date 2026-01-29
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ReviewReasonEnum {
|
||||
/**
|
||||
* 适应证不适宜
|
||||
*/
|
||||
INDICATION_INAPPROPRIATE("1", "INDICATION_INAPPROPRIATE", "适应证不适宜"),
|
||||
|
||||
/**
|
||||
* 遴选的药品不适宜
|
||||
*/
|
||||
DRUG_SELECTION_INAPPROPRIATE("2", "DRUG_SELECTION_INAPPROPRIATE", "遴选的药品不适宜"),
|
||||
|
||||
/**
|
||||
* 药品剂型不适宜
|
||||
*/
|
||||
DRUG_FORM_INAPPROPRIATE("3", "DRUG_FORM_INAPPROPRIATE", "药品剂型不适宜"),
|
||||
|
||||
/**
|
||||
* 用法用量不适宜
|
||||
*/
|
||||
DOSAGE_USAGE_INAPPROPRIATE("4", "DOSAGE_USAGE_INAPPROPRIATE", "用法用量不适宜"),
|
||||
|
||||
/**
|
||||
* 联合用药不适宜
|
||||
*/
|
||||
COMBINED_MEDICATION_INAPPROPRIATE("5", "COMBINED_MEDICATION_INAPPROPRIATE", "联合用药不适宜"),
|
||||
|
||||
/**
|
||||
* 重复给药
|
||||
*/
|
||||
DUPLICATE_MEDICATION("6", "DUPLICATE_MEDICATION", "重复给药");
|
||||
|
||||
private final String value;
|
||||
private final String code;
|
||||
private final String info;
|
||||
|
||||
public static String getByValue(String value) {
|
||||
for (ReviewReasonEnum enumItem : values()) {
|
||||
if (enumItem.getValue().equals(value)) {
|
||||
return enumItem.getInfo();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.openhis.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 审方合理状态枚举
|
||||
*
|
||||
* @author LAN
|
||||
* @date 2026-01-29
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ReviewReasonableStatus implements HisEnumInterface {
|
||||
UNREASONABLE(0, "0", "不合理"),
|
||||
REASONABLE(1, "1", "合理"),
|
||||
TO_BE_COMMENTED(2, "2", "待点评");
|
||||
|
||||
@EnumValue
|
||||
@JsonValue
|
||||
private final Integer value;
|
||||
private final String code;
|
||||
private final String info;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.openhis.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 医保结算上传状态
|
||||
*
|
||||
* @author swb
|
||||
* @date 2026-02-02
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum SettleUpStatus {
|
||||
PENDING_APPROVAL(0,"not-submitted","未提交"),
|
||||
APPROVED(1,"submitted","已提交"),
|
||||
UPLOADED(2,"approved ","审核通过"),
|
||||
SUBMITTED(3,"approval-rejected","审核不通过");
|
||||
|
||||
@EnumValue
|
||||
private final Integer value;
|
||||
private final String code;
|
||||
private final String info;
|
||||
|
||||
|
||||
public static String getInfoByValue(Integer settleUploadStatus) {
|
||||
for (SettleUpStatus value : values()) {
|
||||
if (value.getValue().equals(settleUploadStatus)) {
|
||||
return value.getInfo();
|
||||
}
|
||||
}
|
||||
return PENDING_APPROVAL.getInfo();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.openhis.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 手术类型
|
||||
*
|
||||
* @author swb
|
||||
* @date 2025-12-25
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum SurgicalStatus implements HisEnumInterface {
|
||||
PREPARING(1, "1", "准备中"),
|
||||
|
||||
IN_PROGRESS(2, "2", "进行中"),
|
||||
|
||||
NOT_DONE(3, "3", "未做"),
|
||||
|
||||
PAUSE(4, "4", "暂停"),
|
||||
|
||||
STOP(5, "5", "停止"),
|
||||
|
||||
COMPLETED(6, "6", "完成"),
|
||||
|
||||
INPUT_ERROR(7, "7", "输入错误"),
|
||||
|
||||
UNKNOWN(8, "8", "未知");
|
||||
|
||||
@EnumValue
|
||||
private final Integer value;
|
||||
private final String code;
|
||||
private final String info;
|
||||
|
||||
public static SurgicalStatus getByValue(Integer value) {
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
for (SurgicalStatus val : values()) {
|
||||
if (val.getValue().equals(value)) {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.common.enums;
|
||||
|
||||
import com.github.pagehelper.util.StringUtil;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* ThreePartPayType (0: MEMBER_FIRST; 1: MEMBER_SECOND;)
|
||||
*
|
||||
* @author SunJQ
|
||||
* @date 2026-01-12
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ThreePartPayType {
|
||||
|
||||
/**
|
||||
* 中行
|
||||
*/
|
||||
BOC(0,"0", "中行"),
|
||||
/**
|
||||
* 云闪付
|
||||
*/
|
||||
UNIONPAY(1,"1", "云闪付");
|
||||
|
||||
private Integer code;
|
||||
private String value;
|
||||
private String description;
|
||||
|
||||
public static ThreePartPayType getByValue(String value) {
|
||||
if (StringUtil.isEmpty(value)) {
|
||||
return null;
|
||||
}
|
||||
for (ThreePartPayType val : values()) {
|
||||
if (val.getValue().equals(value)) {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user