diff --git a/Dockerfile b/Dockerfile index 7b9ff1a..ab7db6b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,10 +21,11 @@ RUN mkdir -p /root/.m2 && \ # 复制项目代码 COPY pom.xml . -COPY src ./src +COPY sa-admin ./sa-admin +COPY sa-common ./sa-common # 构建项目 -RUN mvn clean package -DskipTests +RUN mvn clean package -Dmaven.test.skip=true -P dev # 第二阶段:使用更小的 Java8 JDK 镜像运行 FROM eclipse-temurin:8-jdk-alpine @@ -32,7 +33,7 @@ FROM eclipse-temurin:8-jdk-alpine WORKDIR /app # 复制构建产物 -COPY --from=builder /app/target/*.jar app.jar +COPY --from=builder /app/sa-admin/target/*.jar app.jar # 暴露端口(请替换成你实际应用端口) EXPOSE 5477 diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/dao/MedicalRecorPrognosisDao.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/dao/MedicalRecorPrognosisDao.java new file mode 100644 index 0000000..b830759 --- /dev/null +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/dao/MedicalRecorPrognosisDao.java @@ -0,0 +1,16 @@ +package net.lab1024.sa.admin.module.app.medicalrecord.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.lab1024.sa.admin.module.app.medicalrecord.domain.MedicalRecordAbstracEntity; +import net.lab1024.sa.admin.module.app.medicalrecord.domain.MedicalRecordPrognosisEntity; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Component; + +@Mapper +@Component +public interface MedicalRecorPrognosisDao extends BaseMapper { + + @Delete("delete from t_caseplatform_case_prognosis where case_id=#{medicalRecordId}") + int deleteByCaseId(Long medicalRecordId); +} diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordAbstracEntity.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordAbstracEntity.java index 6148e98..8409290 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordAbstracEntity.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordAbstracEntity.java @@ -34,11 +34,6 @@ public class MedicalRecordAbstracEntity { */ private String abstractStr; - /** - * 病历摘要 图片 - */ - private String abstractImg; - /** * 创建时间 */ @@ -49,10 +44,10 @@ public class MedicalRecordAbstracEntity { */ private LocalDateTime updateTime; - public MedicalRecordAbstracEntity(Long caseId, String abstractStr, String abstractImg, LocalDateTime createTime) { - this.caseId = caseId; - this.abstractStr = abstractStr; - this.abstractImg = abstractImg; - this.createTime = createTime; - } +// public MedicalRecordAbstracEntity(Long caseId, String abstractStr, String abstractImg, LocalDateTime createTime) { +// this.caseId = caseId; +// this.abstractStr = abstractStr; +// this.abstractImg = abstractImg; +// this.createTime = createTime; +// } } \ No newline at end of file diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordAddForm.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordAddForm.java index 7fd8736..186c4b9 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordAddForm.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordAddForm.java @@ -5,6 +5,7 @@ import lombok.Data; import net.lab1024.sa.admin.module.business.caseplatformcase.constant.CaseStatusEnum; import net.lab1024.sa.admin.module.business.caseplatformcase.constant.CasetypeEnum; import net.lab1024.sa.common.common.domain.PageParam; +import net.lab1024.sa.common.common.enumeration.DischargeStatusEnum; import net.lab1024.sa.common.common.enumeration.GenderEnum; import net.lab1024.sa.common.common.swagger.ApiModelPropertyEnum; import net.lab1024.sa.common.common.validator.enumeration.CheckEnum; @@ -36,7 +37,7 @@ public class MedicalRecordAddForm { @ApiModelPropertyEnum(GenderEnum.class) @CheckEnum(value = GenderEnum.class, message = "性别错误") - private Integer sex; + private String sex; @ApiModelProperty(value = "年龄", required = true) @NotNull(message = "年龄 不能为空") @@ -47,23 +48,27 @@ public class MedicalRecordAddForm { @NotNull(message = "入院时间 不能为空") private LocalDateTime admissionTime; - @ApiModelPropertyEnum(value = CasetypeEnum.class, desc = "病历类型") - @CheckEnum(value = CasetypeEnum.class, message = "病历类型 错误", required = true) - private Integer caseType; + @ApiModelProperty(value = "治疗类型", required = true) + @NotNull(message = "治疗类型 不能为空") + private String caseType; - @ApiModelProperty(value = "基本信息图片", required = true) - @NotNull(message = "基本信息图片 不能为空") - @Length(min = 1, max = 1000, message = "基本信息图片 不能为空") - private String baseImg; + @ApiModelProperty(value = "主要诊断", required = true) + @NotNull(message = "主要诊断 不能为空") + private String mainDiagnose; + + @ApiModelProperty(value = "患者病因", required = true) + @NotNull(message = "患者病因 不能为空") + private String diseaseCause; + + @ApiModelProperty(value = "诱因", required = true) + @NotNull(message = "诱因 不能为空") + private String seductionReason; /*************************临床资料 病历摘要***************************/ @ApiModelProperty(value = "临床资料 病历摘要 文字", required = true) + @NotNull(message = "主要诊断 文字 不能为空") private String abstractStr; - @ApiModelProperty(value = "临床资料 病历摘要 图片", required = true) - private String abstractImg; - - /*************************DPMAS***************************/ @ApiModelProperty(value = "DPMAS", required = true) @NotNull(message = "DPMAS 不能为空") @@ -83,12 +88,18 @@ public class MedicalRecordAddForm { @NotNull(message = "治疗后 检测时间 不能为空") private LocalDateTime afterTime; + /** + * 最后一次治疗后 检测时间 + */ + @ApiModelProperty(value = "最后一次治疗后 检测时间 ", required = true) + @NotNull(message = "最后一次治疗后 检测时间 不能为空") + private LocalDateTime lastTime; + /** * 治疗前 总胆红素(umol/L) */ @ApiModelProperty(value = "治疗前 总胆红素", required = true) @NotNull(message = "治疗前 总胆红素 不能为空") - @Length(min = 1, max = 10, message = "治疗前 总胆红素 输入不合法") private String headTb; /** @@ -96,20 +107,14 @@ public class MedicalRecordAddForm { */ @ApiModelProperty(value = "治疗后 总胆红素 ", required = true) @NotNull(message = "治疗后 总胆红素 不能为空") - @Length(min = 1, max = 10, message = "治疗后 总胆红素 输入不合法") private String afterTb; /** - * 治疗前 白蛋白(g/L) + * 最后一次治疗后 总胆红素(umol/L) */ - @ApiModelProperty(value = "治疗前 白蛋白", required = true) - private String headAlb; - - /** - * 治疗后 白蛋白(g/L) - */ - @ApiModelProperty(value = "治疗后 白蛋白 ", required = true) - private String afterAlb; + @ApiModelProperty(value = "最后一次治疗后 总胆红素 ", required = true) + @NotNull(message = "最后一次治疗后 总胆红素 不能为空") + private String lastTb; /** * 治疗前 直接胆红素(umol/L) @@ -124,16 +129,10 @@ public class MedicalRecordAddForm { private String afterDb; /** - * 治疗前 凝血酶原活动度 (%) + * 最后一次治疗后 直接胆红素(umol/L) */ - @ApiModelProperty(value = "治疗前 凝血酶原活动度", required = true) - private String headPta; - - /** - * 治疗后 凝血酶原活动度 (%) - */ - @ApiModelProperty(value = "治疗后 凝血酶原活动度 ", required = true) - private String afterPta; + @ApiModelProperty(value = "最后一次治疗后 直接胆红素 ", required = true) + private String lastDb; /** * 治疗前 间接胆红素(umol/L) @@ -147,12 +146,95 @@ public class MedicalRecordAddForm { @ApiModelProperty(value = "治疗后 间接胆红素 ", required = true) private String afterIb; + /** + * 最后一次治疗后 间接胆红素(umol/L) + */ + @ApiModelProperty(value = "最后一次治疗后 间接胆红素 ", required = true) + private String lastIb; + + /** + * 治疗前 丙氨酸氨基转移酶(U/L) + */ + @ApiModelProperty(value = "治疗前 丙氨酸氨基转移酶", required = true) + @NotNull(message = "治疗前 丙氨酸氨基转移酶 不能为空") + private String headAlt; + + /** + * 治疗后 丙氨酸氨基转移酶 (U/L) + */ + @ApiModelProperty(value = "治疗后 丙氨酸氨基转移酶 ", required = true) + @NotNull(message = "治疗后 丙氨酸氨基转移酶 不能为空") + private String afterAlt; + + /** + * 最后一次治疗后 丙氨酸氨基转移酶 (U/L) + */ + @ApiModelProperty(value = "最后一次治疗后 丙氨酸氨基转移酶 ", required = true) + @NotNull(message = "最后一次治疗后 丙氨酸氨基转移酶 不能为空") + private String lastAlt; + + /** + * 治疗前 天门冬氨酸氨基转移酶 (U/L) + */ + @ApiModelProperty(value = "治疗前 天门冬氨酸氨基转移酶", required = true) + @NotNull(message = "治疗前 天门冬氨酸氨基转移酶 不能为空") + private String headAst; + + /** + * 治疗后 天门冬氨酸氨基转移酶 (U/L) + */ + @ApiModelProperty(value = "治疗后 天门冬氨酸氨基转移酶 ", required = true) + @NotNull(message = "治疗后 天门冬氨酸氨基转移酶 不能为空") + private String afterAst; + + /** + * 最后一次治疗后 天门冬氨酸氨基转移酶 (U/L) + */ + @ApiModelProperty(value = "最后一次治疗后 天门冬氨酸氨基转移酶 ", required = true) + @NotNull(message = "最后一次治疗后 天门冬氨酸氨基转移酶 不能为空") + private String lastAst; + + /** + * 治疗前 白蛋白(g/L) + */ + @ApiModelProperty(value = "治疗前 白蛋白", required = true) + private String headAlb; + + /** + * 治疗后 白蛋白(g/L) + */ + @ApiModelProperty(value = "治疗后 白蛋白 ", required = true) + private String afterAlb; + + /** + * 最后一次治疗后 白蛋白(g/L) + */ + @ApiModelProperty(value = "最后一次治疗后 白蛋白 ", required = true) + private String lastAlb; + + /** + * 治疗前 凝血酶原活动度 (%) + */ + @ApiModelProperty(value = "治疗前 凝血酶原活动度", required = true) + private String headPta; + + /** + * 治疗后 凝血酶原活动度 (%) + */ + @ApiModelProperty(value = "治疗后 凝血酶原活动度 ", required = true) + private String afterPta; + + /** + * 最后一次治疗后 凝血酶原活动度 (%) + */ + @ApiModelProperty(value = "最后一次治疗后 凝血酶原活动度 ", required = true) + private String lastPta; + /** * 治疗前 国际标准化比值 (INR) */ @ApiModelProperty(value = "治疗前 国际标准化比值", required = true) @NotNull(message = "治疗前 国际标准化比值 不能为空") - @Length(min = 1, max = 10, message = "治疗前 国际标准化比值 输入不合法") private String headInr; /** @@ -160,24 +242,32 @@ public class MedicalRecordAddForm { */ @ApiModelProperty(value = "治疗后 国际标准化比值 ", required = true) @NotNull(message = "治疗后 国际标准化比值 不能为空") - @Length(min = 1, max = 10, message = "治疗后 国际标准化比值 输入不合法") private String afterInr; /** - * 治疗前 谷丙转氨 (U/L) + * 最后一次治疗后 国际标准化比值 (INR) */ - @ApiModelProperty(value = "治疗前 谷丙转氨", required = true) - @NotNull(message = "治疗前 谷丙转氨 不能为空") - @Length(min = 1, max = 10, message = "治疗前 谷丙转氨 输入不合法") - private String headAlt; + @ApiModelProperty(value = "最后一次治疗后 国际标准化比值 ", required = true) + @NotNull(message = "最后一次治疗后 国际标准化比值 不能为空") + private String lastInr; /** - * 治疗后 谷丙转氨 (U/L) + * 治疗前 C反应蛋白(mg/L) */ - @ApiModelProperty(value = "治疗后 谷丙转氨 ", required = true) - @NotNull(message = "治疗后 谷丙转氨 不能为空") - @Length(min = 1, max = 10, message = "治疗后 谷丙转氨 输入不合法") - private String afterAlt; + @ApiModelProperty(value = "治疗前 C反应蛋白", required = true) + private String headCrp; + + /** + * 治疗后 C反应蛋白(mg/L) + */ + @ApiModelProperty(value = "治疗后 C反应蛋白 ", required = true) + private String afterCrp; + + /** + * 最后一次治疗后 C反应蛋白(mg/L) + */ + @ApiModelProperty(value = "最后一次治疗后 C反应蛋白 ", required = true) + private String lastCrp; /** * 治疗前 白介素6(ng/L) @@ -192,20 +282,10 @@ public class MedicalRecordAddForm { private String afterIl6; /** - * 治疗前 谷草转氨酶 (U/L) + * 最后一次治疗后 白介素6(ng/L) */ - @ApiModelProperty(value = "治疗前 谷草转氨酶", required = true) - @NotNull(message = "治疗前 谷草转氨酶 不能为空") - @Length(min = 1, max = 10, message = "治疗前 谷草转氨酶 输入不合法") - private String headAst; - - /** - * 治疗后 谷草转氨酶 (U/L) - */ - @ApiModelProperty(value = "治疗后 谷草转氨酶 ", required = true) - @NotNull(message = "治疗后 谷草转氨酶 不能为空") - @Length(min = 1, max = 10, message = "治疗后 谷草转氨酶 输入不合法") - private String afterAst; + @ApiModelProperty(value = "最后一次治疗后 白介素6 ", required = true) + private String lastIl6; /** * 治疗前 肿瘤坏死因子α(μg/L) @@ -219,8 +299,30 @@ public class MedicalRecordAddForm { @ApiModelProperty(value = "治疗后 肿瘤坏死因子α ", required = true) private String afterTnf; - @ApiModelProperty(value = "实验室检测 图片 图片", required = true) - @NotNull(message = "实验室检测 图片 不能为空") - @Length(min = 1, max = 1000, message = "实验室检测 图片 不能为空") + /** + * 最后一次治疗后 肿瘤坏死因子α(μg/L) + */ + @ApiModelProperty(value = "最后一次治疗后 肿瘤坏死因子α ", required = true) + private String lastTnf; + + @ApiModelProperty(value = "报告单 图片", required = true) + @NotNull(message = "报告单 图片 不能为空") private String checkImg; + + /*************************疾病转归***************************/ + @ApiModelProperty(value = "疾病转归 出院时间", required = true) + @NotNull(message = "疾病转归 出院时间 不能为空") + private LocalDateTime dischargeTime; + + @ApiModelProperty(value = "住院天数", required = true) + @NotNull(message = "住院天数 不能为空") + private Integer day; + + @ApiModelPropertyEnum(DischargeStatusEnum.class) + @CheckEnum(value = DischargeStatusEnum.class, message = "出院状态 错误") + private Integer dischargeStatus; + + @ApiModelProperty(value = "疾病转归 出院情况", required = true) + @NotNull(message = "疾病转归 出院情况 不能为空") + private String dischargeSituation; } diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordCheckdataEntity.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordCheckdataEntity.java index 8dbdd8f..03a21d4 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordCheckdataEntity.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordCheckdataEntity.java @@ -18,7 +18,6 @@ import lombok.Data; @Data @TableName("t_caseplatform_case_checkdata") -@Builder public class MedicalRecordCheckdataEntity { /** @@ -38,10 +37,15 @@ public class MedicalRecordCheckdataEntity { private LocalDateTime headTime; /** - * 治疗后 检测时间 + * 治疗后 检测时间 */ private LocalDateTime afterTime; + /** + * 最后一次治疗后 检测时间 + */ + private LocalDateTime lastTime; + /** * 治疗前 总胆红素(umol/L) */ @@ -52,6 +56,11 @@ public class MedicalRecordCheckdataEntity { */ private String afterTb; + /** + * 最后一次治疗后 总胆红素(umol/L) + */ + private String lastTb; + /** * 治疗前 白蛋白(g/L) */ @@ -62,6 +71,11 @@ public class MedicalRecordCheckdataEntity { */ private String afterAlb; + /** + * 最后一次治疗后 白蛋白(g/L) + */ + private String lastAlb; + /** * 治疗前 直接胆红素(umol/L) */ @@ -72,6 +86,11 @@ public class MedicalRecordCheckdataEntity { */ private String afterDb; + /** + * 最后一次治疗后 直接胆红素(umol/L) + */ + private String lastDb; + /** * 治疗前 凝血酶原活动度 (%) */ @@ -82,6 +101,11 @@ public class MedicalRecordCheckdataEntity { */ private String afterPta; + /** + * 最后一次治疗后 凝血酶原活动度 (%) + */ + private String lastPta; + /** * 治疗前 间接胆红素(umol/L) */ @@ -92,6 +116,11 @@ public class MedicalRecordCheckdataEntity { */ private String afterIb; + /** + * 最后一次治疗后 间接胆红素(umol/L) + */ + private String lastIb; + /** * 治疗前 国际标准化比值 (INR) */ @@ -102,6 +131,11 @@ public class MedicalRecordCheckdataEntity { */ private String afterInr; + /** + * 最后一次治疗后 国际标准化比值 (INR) + */ + private String lastInr; + /** * 治疗前 谷丙转氨 (U/L) */ @@ -112,6 +146,11 @@ public class MedicalRecordCheckdataEntity { */ private String afterAlt; + /** + * 最后一次治疗后 谷丙转氨 (U/L) + */ + private String lastAlt; + /** * 治疗前 白介素6(ng/L) */ @@ -122,6 +161,11 @@ public class MedicalRecordCheckdataEntity { */ private String afterIl6; + /** + * 最后一次治疗后 白介素6(ng/L) + */ + private String lastIl6; + /** * 治疗前 谷草转氨酶 (U/L) */ @@ -132,6 +176,11 @@ public class MedicalRecordCheckdataEntity { */ private String afterAst; + /** + * 最后一次治疗后 谷草转氨酶 (U/L) + */ + private String lastAst; + /** * 治疗前 肿瘤坏死因子α(μg/L) */ @@ -142,6 +191,11 @@ public class MedicalRecordCheckdataEntity { */ private String afterTnf; + /** + * 最后一次治疗后 肿瘤坏死因子α(μg/L) + */ + private String lastTnf; + /** * 图片 */ diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordDetailVO.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordDetailVO.java index b922e12..1a9a0ac 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordDetailVO.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordDetailVO.java @@ -3,6 +3,7 @@ package net.lab1024.sa.admin.module.app.medicalrecord.domain; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import net.lab1024.sa.admin.module.business.caseplatformcase.constant.CasetypeEnum; +import net.lab1024.sa.common.common.enumeration.DischargeStatusEnum; import net.lab1024.sa.common.common.enumeration.GenderEnum; import net.lab1024.sa.common.common.swagger.ApiModelPropertyEnum; import net.lab1024.sa.common.common.validator.enumeration.CheckEnum; @@ -38,29 +39,25 @@ public class MedicalRecordDetailVO { @NotNull(message = "入院时间 不能为空") private LocalDateTime admissionTime; - @ApiModelPropertyEnum(value = CasetypeEnum.class, desc = "病历类型") - @CheckEnum(value = CasetypeEnum.class, message = "病历类型 错误", required = true) + @ApiModelPropertyEnum(value = CasetypeEnum.class, desc = "治疗类型") + @CheckEnum(value = CasetypeEnum.class, message = "治疗类型 错误", required = true) private List caseTypeList; - @ApiModelPropertyEnum(value = CasetypeEnum.class, desc = "病历类型") - @CheckEnum(value = CasetypeEnum.class, message = "病历类型 错误", required = true) + @ApiModelProperty(value = "治疗类型", required = true) + @NotNull(message = "治疗类型 不能为空") private String caseType; - @ApiModelPropertyEnum(value = CasetypeEnum.class, desc = "主要诊断") - @CheckEnum(value = CasetypeEnum.class, message = "主要诊断 错误", required = true) + @ApiModelProperty(value = "主要诊断", required = true) + @NotNull(message = "主要诊断 不能为空") private String mainDiagnose; - @ApiModelPropertyEnum(value = CasetypeEnum.class, desc = "患者病因") - @CheckEnum(value = CasetypeEnum.class, message = "患者病因 错误", required = true) + @ApiModelProperty(value = "患者病因", required = true) + @NotNull(message = "患者病因 不能为空") private String diseaseCause; - @ApiModelPropertyEnum(value = CasetypeEnum.class, desc = "诱因") - @CheckEnum(value = CasetypeEnum.class, message = "诱因 错误", required = true) - private String trigger; - -// @ApiModelProperty(value = "基本信息图片", required = true) -// @NotNull(message = "基本信息图片 不能为空") -// private String baseImg; + @ApiModelProperty(value = "诱因", required = true) + @NotNull(message = "诱因 不能为空") + private String seductionReason; @ApiModelProperty(value = "病例状态", required = true) private Integer status; @@ -70,14 +67,9 @@ public class MedicalRecordDetailVO { @NotNull(message = "临床资料 病历摘要 文字 不能为空") private String abstractStr; -// @ApiModelProperty(value = "临床资料 病历摘要 图片", required = true) -// @NotNull(message = "临床资料 病历摘要 图片 不能为空") -// private String abstractImg; - - /*************************DPMAS***************************/ - @ApiModelProperty(value = "临床资料 病历摘要 图片", required = true) - @NotNull(message = "临床资料 病历摘要 图片 不能为空") + @ApiModelProperty(value = "人工肝治疗", required = true) + @NotNull(message = "人工肝治疗 不能为空") private List dpmas; @@ -313,7 +305,24 @@ public class MedicalRecordDetailVO { @ApiModelProperty(value = "最后一次治疗后 肿瘤坏死因子α ", required = true) private String lastTnf; - @ApiModelProperty(value = "实验室检测 病历摘要 图片", required = true) - @NotNull(message = "实验室检测 图片 不能为空") + @ApiModelProperty(value = "报告单 图片", required = true) + @NotNull(message = "报告单 图片 不能为空") private String checkImg; + + /*************************疾病转归***************************/ + @ApiModelProperty(value = "疾病转归 出院时间", required = true) + @NotNull(message = "疾病转归 出院时间 不能为空") + private LocalDateTime dischargeTime; + + @ApiModelProperty(value = "住院天数", required = true) + @NotNull(message = "住院天数 不能为空") + private Integer day; + + @ApiModelPropertyEnum(DischargeStatusEnum.class) + @CheckEnum(value = DischargeStatusEnum.class, message = "出院状态 错误") + private Integer dischargeStatus; + + @ApiModelProperty(value = "疾病转归 出院情况", required = true) + @NotNull(message = "疾病转归 出院情况 不能为空") + private String dischargeSituation; } diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordDpmsEntity.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordDpmsEntity.java index d1c1c22..0f0c10f 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordDpmsEntity.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordDpmsEntity.java @@ -39,4 +39,9 @@ public class MedicalRecordDpmsEntity { */ private String dpmasImg; + /** + * 内容(json) + */ + private String content; + } \ No newline at end of file diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordEntity.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordEntity.java index 40bde3f..b0a9eb3 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordEntity.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordEntity.java @@ -4,8 +4,12 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.time.LocalDateTime; + +import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; + /** * 病历表 实体类 * @@ -29,11 +33,6 @@ public class MedicalRecordEntity { */ private Long userId; - /** - * 图片 - */ - private String baseImg; - /** * 入院时间 */ @@ -42,7 +41,7 @@ public class MedicalRecordEntity { /** * 病历类型 */ - private Integer caseType; + private String caseType; /** * 统计 天 @@ -76,28 +75,44 @@ public class MedicalRecordEntity { private Integer status; + + /** + * 主要诊断 + */ + private String mainDiagnose; + + /** + * 患者病因 + */ + private String diseaseCause; + + /** + * 诱因 + */ + private String seductionReason; + /** * 修改时间 */ private LocalDateTime updateTime; - public MedicalRecordEntity(Long userId, String baseImg, LocalDateTime admissionTime, Integer caseType, Long expertId, LocalDateTime createTime) { - this.userId = userId; - this.admissionTime = admissionTime; - this.caseType = caseType; - this.baseImg = baseImg; - this.expertId = expertId; - this.createTime = createTime; - } +// public MedicalRecordEntity(Long userId, String baseImg, LocalDateTime admissionTime, Integer caseType, Long expertId, LocalDateTime createTime) { +// this.userId = userId; +// this.admissionTime = admissionTime; +// this.caseType = caseType; +// this.baseImg = baseImg; +// this.expertId = expertId; +// this.createTime = createTime; +// } - public MedicalRecordEntity(Long id, Long userId, String baseImg, LocalDateTime admissionTime, Integer caseType, Long expertId, Integer status, LocalDateTime updateTime) { - this.id = id; - this.userId = userId; - this.admissionTime = admissionTime; - this.caseType = caseType; - this.baseImg = baseImg; - this.expertId = expertId; - this.status = status; - this.updateTime = updateTime; - } +// public MedicalRecordEntity(Long id, Long userId, String baseImg, LocalDateTime admissionTime, Integer caseType, Long expertId, Integer status, LocalDateTime updateTime) { +// this.id = id; +// this.userId = userId; +// this.admissionTime = admissionTime; +// this.caseType = caseType; +// this.baseImg = baseImg; +// this.expertId = expertId; +// this.status = status; +// this.updateTime = updateTime; +// } } \ No newline at end of file diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordPrognosisEntity.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordPrognosisEntity.java new file mode 100644 index 0000000..1a8a033 --- /dev/null +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordPrognosisEntity.java @@ -0,0 +1,68 @@ +package net.lab1024.sa.admin.module.app.medicalrecord.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 病历摘要表 实体类 + * + * @Author HMM + * @Date 2024-01-11 15:18:32 + * @Copyright gdxz + */ + +/** + * 病例-疾病转归实体类 + */ +@Data +@TableName("`t_caseplatform_case_prognosis`") // 指定数据库表名 +public class MedicalRecordPrognosisEntity { + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 疾病id + */ + @TableField("case_id") + private Long caseId; + + /** + * 出院时间 + */ + @TableField("discharge_time") + private LocalDateTime dischargeTime; + + /** + * 住院天数 + */ + @TableField("day") + private Integer day; + + /** + * 出院状态(1:好转 2:痊愈 3:恶化 4:死亡 5:移植) + */ + @TableField("discharge_status") + private Integer dischargeStatus; + + /** + * 出院情况 + */ + @TableField("discharge_situation") + private String dischargeSituation; + +// public MedicalRecordAbstracEntity(Long caseId, String abstractStr, String abstractImg, LocalDateTime createTime) { +// this.caseId = caseId; +// this.abstractStr = abstractStr; +// this.abstractImg = abstractImg; +// this.createTime = createTime; +// } +} \ No newline at end of file diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordUserEntity.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordUserEntity.java index dc368e8..cce269e 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordUserEntity.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/domain/MedicalRecordUserEntity.java @@ -39,8 +39,6 @@ public class MedicalRecordUserEntity { */ private String uid; - - /** * 性别 */ @@ -61,12 +59,12 @@ public class MedicalRecordUserEntity { */ private LocalDateTime updateTime; - public MedicalRecordUserEntity(Long expertId, String name, String uid, Integer sex, Integer age, LocalDateTime createTime) { - this.expertId = expertId; - this.name = name; - this.uid = uid; - this.sex = sex; - this.age = age; - this.createTime = createTime; - } +// public MedicalRecordUserEntity(Long expertId, String name, String uid, Integer sex, Integer age, LocalDateTime createTime) { +// this.expertId = expertId; +// this.name = name; +// this.uid = uid; +// this.sex = sex; +// this.age = age; +// this.createTime = createTime; +// } } \ No newline at end of file diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java index e2b16a5..e8a0450 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java @@ -3,14 +3,11 @@ package net.lab1024.sa.admin.module.app.medicalrecord.service; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import net.lab1024.sa.admin.module.app.expert.admin.ExpertSignVO; import net.lab1024.sa.admin.module.app.expert.service.ExpertSignService; -import net.lab1024.sa.admin.module.app.medicalrecord.dao.MedicalRecorAbstracDao; -import net.lab1024.sa.admin.module.app.medicalrecord.dao.MedicalRecorCheckDataDao; -import net.lab1024.sa.admin.module.app.medicalrecord.dao.MedicalRecorDao; -import net.lab1024.sa.admin.module.app.medicalrecord.dao.MedicalRecorDpmasDao; -import net.lab1024.sa.admin.module.app.medicalrecord.dao.MedicalRecorUserDao; +import net.lab1024.sa.admin.module.app.medicalrecord.dao.*; import net.lab1024.sa.admin.module.app.medicalrecord.domain.*; import net.lab1024.sa.admin.module.business.caseplatformcase.constant.CaseStatusEnum; import net.lab1024.sa.admin.module.business.caseplatformcase.constant.CasetypeEnum; @@ -25,10 +22,13 @@ import net.lab1024.sa.common.module.support.config.domain.ConfigVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.time.Duration; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; +import java.util.Objects; import static net.lab1024.sa.common.common.code.UserErrorCode.NO_PERMISSION_EDIT; import static net.lab1024.sa.common.common.code.UserErrorCode.PROJECT_CLOSE; @@ -51,6 +51,9 @@ public class MedicalRecordService { @Autowired private MedicalRecorCheckDataDao medicalRecorCheckDataDao; + @Autowired + private MedicalRecorPrognosisDao medicalRecorPrognosisDao; + @Autowired private ConfigService configService; @@ -68,15 +71,16 @@ public class MedicalRecordService { public MedicalRecordDetailVO getDetail(Long MedicalRecordId){ MedicalRecordDetailVO detail = medicalRecorDao.getDetail(MedicalRecordId); - List dpmas = medicalRecorDpmasDao.getByCaseId(MedicalRecordId); - detail.setDpmas(dpmas); + if (detail != null){ + List dpmas = medicalRecorDpmasDao.getByCaseId(MedicalRecordId); + detail.setDpmas(dpmas); + } + return detail; } @Transactional public ResponseDTO add(MedicalRecordAddForm addForm){ - - ConfigVO caseNum = configService.getConfig(ConfigKeyEnum.CaseNum); int total = medicalRecorDao.getTotal(); if(Integer.parseInt(caseNum.getConfigValue()) <= total){ @@ -92,57 +96,29 @@ public class MedicalRecordService { /*************************前置 检查*****************************/ ResponseDTO check = check(SmartBeanUtil.copy(addForm, MedicalRecordUpdateForm.class), expertId); - if(!check.getOk()){ return check; } - //病历类型 - Integer caseType = addForm.getCaseType(); - List dpmas = addForm.getDpmas(); - //入院时间 - LocalDateTime admissionTime = addForm.getAdmissionTime(); + // 病历-用户 + MedicalRecordUserEntity medicalRecordUser = new MedicalRecordUserEntity(); + medicalRecordUser.setName(addForm.getName()); + medicalRecordUser.setUid(addForm.getUid()); + medicalRecordUser.setSex(Integer.valueOf(addForm.getSex())); + medicalRecordUser.setAge(addForm.getAge()); + medicalRecordUser.setExpertId(expertId); + medicalRecordUser.setCreateTime(LocalDateTime.now()); + int res = medicalRecorUserDao.insert(medicalRecordUser); + if (res <= 0){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); + } - //患者id - String uid = addForm.getUid(); - - //临床资料 病历摘要 文字 - String abstractStr = addForm.getAbstractStr(); - - //临床资料 病历摘要 图片 - String abstractImg = addForm.getAbstractImg(); - - - //治疗前 检测时间 - LocalDateTime headTime = addForm.getHeadTime(); - - /** - * 治疗后 检测时间 - */ - LocalDateTime afterTime = addForm.getAfterTime(); - - - - - /*************************基本信息*****************************/ - //姓名 - String name = addForm.getName(); - - //性别 - Integer sex = addForm.getSex(); - - //年龄 - Integer age = addForm.getAge(); - - //基本信息图片 - String baseImg = addForm.getBaseImg(); - - MedicalRecordUserEntity user = new MedicalRecordUserEntity(expertId, name, uid, sex, age, LocalDateTime.now()); - medicalRecorUserDao.insert(user); - Long userId = user.getId(); - /*************************病例主体***************************/ - - MedicalRecordEntity medicalRecord = new MedicalRecordEntity(userId, baseImg, admissionTime, caseType, expertId, LocalDateTime.now()); + // 病例 + MedicalRecordEntity medicalRecord = new MedicalRecordEntity(); + medicalRecord.setUserId(medicalRecordUser.getId()); + medicalRecord.setAdmissionTime(addForm.getAdmissionTime()); + medicalRecord.setCaseType(addForm.getCaseType()); DateTime nowDate = DateUtil.date(); String statistics_date = DateUtil.format(nowDate, "yyyyMMdd"); @@ -151,165 +127,103 @@ public class MedicalRecordService { int quarter = DateUtil.quarter(nowDate); String statistics_quarter = statistics_year + quarter; - medicalRecord.setStatisticsDay(Integer.parseInt(statistics_date)); - medicalRecord.setStatisticsMonth(Integer.parseInt(statistics_month)); - medicalRecord.setStatisticsQuarter(Integer.parseInt(statistics_quarter)); - medicalRecord.setStatisticsYear(Integer.parseInt(statistics_year)); - medicalRecorDao.insert(medicalRecord); - Long medicalRecordId = medicalRecord.getId(); + medicalRecord.setStatisticsDay(Integer.valueOf(statistics_date)); + medicalRecord.setStatisticsMonth(Integer.valueOf(statistics_month)); + medicalRecord.setStatisticsQuarter(Integer.valueOf(statistics_quarter)); + medicalRecord.setStatisticsYear(Integer.valueOf(statistics_year)); + medicalRecord.setExpertId(expertId); + medicalRecord.setCreateTime(LocalDateTime.now()); + medicalRecord.setStatus(0); + medicalRecord.setMainDiagnose(addForm.getMainDiagnose()); + medicalRecord.setDiseaseCause(addForm.getDiseaseCause()); + medicalRecord.setSeductionReason(addForm.getSeductionReason()); + res = medicalRecorDao.insert(medicalRecord); + if (res <= 0){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); + } - /*************************临床资料 病历摘要***************************/ + // 病例-病历摘要 + MedicalRecordAbstracEntity abstracEntity = new MedicalRecordAbstracEntity(); + abstracEntity.setCaseId(medicalRecord.getId()); + abstracEntity.setAbstractStr(addForm.getAbstractStr()); + abstracEntity.setCreateTime(LocalDateTime.now()); + res = medicalRecorAbstracDao.insert(abstracEntity); + if (res <= 0){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); + } - - - MedicalRecordAbstracEntity abstracEntity = new MedicalRecordAbstracEntity(medicalRecordId, abstractStr, abstractImg, LocalDateTime.now()); - medicalRecorAbstracDao.insert(abstracEntity); - /*************************DPMAS***************************/ - //DPMAS - - for(DpmsAddForm item:dpmas){ + // 人工肝治疗 + for(DpmsAddForm item: addForm.getDpmas()){ MedicalRecordDpmsEntity dp = new MedicalRecordDpmsEntity(); dp.setDpmasImg(item.getDpmasImg()); - dp.setCaseId(medicalRecordId); + dp.setCaseId(medicalRecord.getId()); dp.setTreatTime(item.getTreatTime()); - medicalRecorDpmasDao.insert(dp); + res = medicalRecorDpmasDao.insert(dp); + if (res <= 0){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); + } } - /*************************实验室数据***************************/ - /** - * 治疗前 总胆红素(umol/L) - */ - String headTb = addForm.getHeadTb(); + // 实验室检测 + MedicalRecordCheckdataEntity medicalRecordCheckdata = new MedicalRecordCheckdataEntity(); + medicalRecordCheckdata.setCaseId(medicalRecord.getId()); + medicalRecordCheckdata.setHeadTime(addForm.getHeadTime()); + medicalRecordCheckdata.setAfterTime(addForm.getAfterTime()); + medicalRecordCheckdata.setLastTime(addForm.getLastTime()); + medicalRecordCheckdata.setHeadTb(addForm.getHeadTb()); + medicalRecordCheckdata.setAfterTb(addForm.getAfterTb()); + medicalRecordCheckdata.setLastTb(addForm.getLastTb()); + medicalRecordCheckdata.setHeadAlb(addForm.getHeadAlb()); + medicalRecordCheckdata.setAfterAlb(addForm.getAfterAlb()); + medicalRecordCheckdata.setLastAlb(addForm.getLastAlb()); + medicalRecordCheckdata.setHeadDb(addForm.getHeadDb()); + medicalRecordCheckdata.setAfterDb(addForm.getAfterDb()); + medicalRecordCheckdata.setLastDb(addForm.getLastDb()); + medicalRecordCheckdata.setHeadPta(addForm.getHeadPta()); + medicalRecordCheckdata.setAfterPta(addForm.getAfterPta()); + medicalRecordCheckdata.setLastPta(addForm.getLastPta()); + medicalRecordCheckdata.setHeadIb(addForm.getHeadIb()); + medicalRecordCheckdata.setAfterIb(addForm.getAfterIb()); + medicalRecordCheckdata.setLastIb(addForm.getLastIb()); + medicalRecordCheckdata.setHeadInr(addForm.getHeadInr()); + medicalRecordCheckdata.setAfterInr(addForm.getAfterInr()); + medicalRecordCheckdata.setLastInr(addForm.getLastInr()); + medicalRecordCheckdata.setHeadAlt(addForm.getHeadAlt()); + medicalRecordCheckdata.setAfterAlt(addForm.getAfterAlt()); + medicalRecordCheckdata.setLastAlt(addForm.getLastAlt()); + medicalRecordCheckdata.setHeadIl6(addForm.getHeadIl6()); + medicalRecordCheckdata.setAfterIl6(addForm.getAfterIl6()); + medicalRecordCheckdata.setLastIl6(addForm.getLastIl6()); + medicalRecordCheckdata.setHeadAst(addForm.getHeadAst()); + medicalRecordCheckdata.setAfterAst(addForm.getAfterAst()); + medicalRecordCheckdata.setLastAst(addForm.getLastAst()); + medicalRecordCheckdata.setHeadTnf(addForm.getHeadTnf()); + medicalRecordCheckdata.setAfterTnf(addForm.getAfterTnf()); + medicalRecordCheckdata.setLastTnf(addForm.getLastTnf()); + medicalRecordCheckdata.setCheckImg(addForm.getCheckImg()); + medicalRecordCheckdata.setCreateTime(LocalDateTime.now()); + res = medicalRecorCheckDataDao.insert(medicalRecordCheckdata); + if (res <= 0){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); + } - /** - * 治疗后 总胆红素(umol/L) - */ - String afterTb = addForm.getAfterTb(); + // 疾病转归 + MedicalRecordPrognosisEntity medicalRecordPrognosis = new MedicalRecordPrognosisEntity(); + medicalRecordPrognosis.setCaseId(medicalRecord.getId()); + medicalRecordPrognosis.setDischargeTime(addForm.getDischargeTime()); + medicalRecordPrognosis.setDay(addForm.getDay()); + medicalRecordPrognosis.setDischargeStatus(addForm.getDischargeStatus()); + medicalRecordPrognosis.setDischargeSituation(addForm.getDischargeSituation()); + res = medicalRecorPrognosisDao.insert(medicalRecordPrognosis); + if (res <= 0){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); + } - /** - * 治疗前 白蛋白(g/L) - */ - String headAlb = addForm.getHeadAlb(); - - /** - * 治疗后 白蛋白(g/L) - */ - String afterAlb = addForm.getAfterAlb(); - - /** - * 治疗前 直接胆红素(umol/L) - */ - String headDb = addForm.getHeadDb(); - - /** - * 治疗后 直接胆红素(umol/L) - */ - String afterDb = addForm.getAfterDb(); - - /** - * 治疗前 凝血酶原活动度 (%) - */ - String headPta = addForm.getHeadPta(); - - /** - * 治疗后 凝血酶原活动度 (%) - */ - String afterPta = addForm.getAfterPta(); - - /** - * 治疗前 间接胆红素(umol/L) - */ - String headIb = addForm.getHeadIb(); - - /** - * 治疗后 间接胆红素(umol/L) - */ - String afterIb = addForm.getAfterIb(); - - /** - * 治疗前 国际标准化比值 (INR) - */ - String headInr = addForm.getHeadInr(); - - /** - * 治疗后 国际标准化比值 (INR) - */ - String afterInr = addForm.getAfterInr(); - - /** - * 治疗前 谷丙转氨 (U/L) - */ - String headAlt = addForm.getHeadAlt(); - - /** - * 治疗后 谷丙转氨 (U/L) - */ - String afterAlt = addForm.getAfterAlt(); - - /** - * 治疗前 白介素6(ng/L) - */ - String headIl6 = addForm.getHeadIl6(); - - /** - * 治疗后 白介素6(ng/L) - */ - String afterIl6 = addForm.getAfterIl6(); - - /** - * 治疗前 谷草转氨酶 (U/L) - */ - String headAst = addForm.getHeadAst(); - - /** - * 治疗后 谷草转氨酶 (U/L) - */ - String afterAst = addForm.getAfterAst(); - - /** - * 治疗前 肿瘤坏死因子α(μg/L) - */ - String headTnf = addForm.getHeadTnf(); - - /** - * 治疗后 肿瘤坏死因子α(μg/L) - */ - String afterTnf = addForm.getAfterTnf(); - - //实验室检测 病历摘要 图片 - String checkImg = addForm.getCheckImg(); - - MedicalRecordCheckdataEntity CheckdataEntity = MedicalRecordCheckdataEntity.builder() - .afterAlb(afterAlb) - .afterAlt(afterAlt) - .afterAst(afterAst) - .afterDb(afterDb) - .afterIb(afterIb) - .afterIl6(afterIl6) - .afterInr(afterInr) - .afterPta(afterPta) - .afterTb(afterTb) - .afterTime(afterTime) - .afterTnf(afterTnf) - .headAst(headAst) - .headDb(headDb) - .headIb(headIb) - .headIl6(headIl6) - .headAlb(headAlb) - .headAlt(headAlt) - .headInr(headInr) - .headPta(headPta) - .headTb(headTb) - .headTime(headTime) - .headTnf(headTnf) - .headAlt(headAlt) - .headAlt(headAlt) - .checkImg(checkImg) - .createTime(LocalDateTime.now()) - .caseId(medicalRecordId) - .build(); - - medicalRecorCheckDataDao.insert(CheckdataEntity); return ResponseDTO.app_ok(); } @@ -317,356 +231,259 @@ public class MedicalRecordService { public ResponseDTO update(MedicalRecordUpdateForm updateForm){ Long expertId = SmartRequestUtil.getRequestUserId(); Long medicalRecordId = updateForm.getId(); - MedicalRecordListVO recorDaoById = medicalRecorDao.getById(medicalRecordId); - if(recorDaoById == null){ - return ResponseDTO.userErrorParam(); + + // 病例 + LambdaQueryWrapper medicalRecordQueryWrapper = new LambdaQueryWrapper<>(); + medicalRecordQueryWrapper.eq(MedicalRecordEntity::getId, medicalRecordId); + MedicalRecordEntity medicalRecord = medicalRecorDao.selectOne(medicalRecordQueryWrapper); + if (medicalRecord == null) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); } - /*************************前置 检查*****************************/ - Integer status = recorDaoById.getStatus(); - - if(!status.equals(CaseStatusEnum.REFUSE.getValue())){ + if (medicalRecord.getStatus() != 0){ return ResponseDTO.error(NO_PERMISSION_EDIT); } - ResponseDTO check = check(updateForm, expertId); + /*************************前置 检查*****************************/ + + ResponseDTO check = check(updateForm, expertId); if(!check.getOk()){ return check; } - //病历类型 - Integer caseType = updateForm.getCaseType(); - List dpmas = updateForm.getDpmas(); - //入院时间 - LocalDateTime admissionTime = updateForm.getAdmissionTime(); - - //临床资料 病历摘要 文字 - String abstractStr = updateForm.getAbstractStr(); - - //临床资料 病历摘要 图片 - String abstractImg = updateForm.getAbstractImg(); - - - //治疗前 检测时间 - LocalDateTime headTime = updateForm.getHeadTime(); - - /** - * 治疗后 检测时间 - */ - LocalDateTime afterTime = updateForm.getAfterTime(); - - /*************************基本信息*****************************/ - //姓名 - String name = updateForm.getName(); - - //性别 - Integer sex = updateForm.getSex(); - - //年龄 - Integer age = updateForm.getAge(); - - //基本信息图片 - String baseImg = updateForm.getBaseImg(); - - //患者id - String uid = updateForm.getUid(); - - Long userId = recorDaoById.getUserId(); - MedicalRecordUserEntity user = new MedicalRecordUserEntity(expertId, name, uid, sex, age, LocalDateTime.now()); - user.setId(userId); - medicalRecorUserDao.updateById(user); - /*************************病例主体***************************/ - - MedicalRecordEntity medicalRecord = new MedicalRecordEntity(medicalRecordId, userId, baseImg, admissionTime, caseType, expertId, CaseStatusEnum.WAIT.getValue(), LocalDateTime.now()); + medicalRecord.setAdmissionTime(updateForm.getAdmissionTime()); + medicalRecord.setCaseType(updateForm.getCaseType()); + medicalRecord.setMainDiagnose(updateForm.getMainDiagnose()); + medicalRecord.setDiseaseCause(updateForm.getDiseaseCause()); + medicalRecord.setSeductionReason(updateForm.getSeductionReason()); medicalRecorDao.updateById(medicalRecord); - /*************************临床资料 病历摘要***************************/ - medicalRecorAbstracDao.deleteByCaseId(medicalRecordId); - MedicalRecordAbstracEntity abstracEntity = new MedicalRecordAbstracEntity(medicalRecordId, abstractStr, abstractImg, LocalDateTime.now()); - medicalRecorAbstracDao.insert(abstracEntity); - /*************************DPMAS***************************/ - //DPMAS + // 病历-用户 + LambdaQueryWrapper medicalRecordUserQueryWrapper = new LambdaQueryWrapper<>(); + medicalRecordUserQueryWrapper.eq(MedicalRecordUserEntity::getId, medicalRecord.getUserId()); + MedicalRecordUserEntity medicalRecordUser = medicalRecorUserDao.selectOne(medicalRecordUserQueryWrapper); + if (medicalRecordUser == null) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); + } + + medicalRecordUser.setName(updateForm.getName()); + medicalRecordUser.setUid(updateForm.getUid()); + medicalRecordUser.setSex(Integer.valueOf(updateForm.getSex())); + medicalRecordUser.setAge(updateForm.getAge()); + medicalRecorUserDao.updateById(medicalRecordUser); + + // 病例-病历摘要 + LambdaQueryWrapper medicalRecordAbstracQueryWrapper = new LambdaQueryWrapper<>(); + medicalRecordAbstracQueryWrapper.eq(MedicalRecordAbstracEntity::getCaseId, medicalRecord.getId()); + MedicalRecordAbstracEntity medicalRecorAbstrac = medicalRecorAbstracDao.selectOne(medicalRecordAbstracQueryWrapper); + if (medicalRecorAbstrac == null) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); + } + + if (!Objects.equals(updateForm.getAbstractStr(), medicalRecorAbstrac.getAbstractStr())){ + medicalRecorAbstrac.setAbstractStr(updateForm.getAbstractStr()); + medicalRecorAbstracDao.updateById(medicalRecorAbstrac); + } + + // 人工肝治疗 medicalRecorDpmasDao.deleteByCaseId(medicalRecordId); - for(DpmsAddForm item:dpmas){ + for(DpmsAddForm item: updateForm.getDpmas()){ MedicalRecordDpmsEntity dp = new MedicalRecordDpmsEntity(); dp.setDpmasImg(item.getDpmasImg()); - dp.setCaseId(medicalRecordId); + dp.setCaseId(medicalRecord.getId()); dp.setTreatTime(item.getTreatTime()); - medicalRecorDpmasDao.insert(dp); + int res = medicalRecorDpmasDao.insert(dp); + if (res <= 0){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); + } } - /*************************实验室数据***************************/ - /** - * 治疗前 总胆红素(umol/L) - */ - String headTb = updateForm.getHeadTb(); + // 实验室检测 + LambdaQueryWrapper medicalRecordCheckDataQueryWrapper = new LambdaQueryWrapper<>(); + medicalRecordCheckDataQueryWrapper.eq(MedicalRecordCheckdataEntity::getCaseId, medicalRecord.getId()); + MedicalRecordCheckdataEntity medicalRecordCheckData = medicalRecorCheckDataDao.selectOne(medicalRecordCheckDataQueryWrapper); + if (medicalRecordCheckData == null) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); + } - /** - * 治疗后 总胆红素(umol/L) - */ - String afterTb = updateForm.getAfterTb(); + medicalRecordCheckData.setHeadTime(updateForm.getHeadTime()); + medicalRecordCheckData.setAfterTime(updateForm.getAfterTime()); + medicalRecordCheckData.setLastTime(updateForm.getLastTime()); + medicalRecordCheckData.setHeadTb(updateForm.getHeadTb()); + medicalRecordCheckData.setAfterTb(updateForm.getAfterTb()); + medicalRecordCheckData.setLastTb(updateForm.getLastTb()); + medicalRecordCheckData.setHeadAlb(updateForm.getHeadAlb()); + medicalRecordCheckData.setAfterAlb(updateForm.getAfterAlb()); + medicalRecordCheckData.setLastAlb(updateForm.getLastAlb()); + medicalRecordCheckData.setHeadDb(updateForm.getHeadDb()); + medicalRecordCheckData.setAfterDb(updateForm.getAfterDb()); + medicalRecordCheckData.setLastDb(updateForm.getLastDb()); + medicalRecordCheckData.setHeadPta(updateForm.getHeadPta()); + medicalRecordCheckData.setAfterPta(updateForm.getAfterPta()); + medicalRecordCheckData.setLastPta(updateForm.getLastPta()); + medicalRecordCheckData.setHeadIb(updateForm.getHeadIb()); + medicalRecordCheckData.setAfterIb(updateForm.getAfterIb()); + medicalRecordCheckData.setLastIb(updateForm.getLastIb()); + medicalRecordCheckData.setHeadInr(updateForm.getHeadInr()); + medicalRecordCheckData.setAfterInr(updateForm.getAfterInr()); + medicalRecordCheckData.setLastInr(updateForm.getLastInr()); + medicalRecordCheckData.setHeadAlt(updateForm.getHeadAlt()); + medicalRecordCheckData.setAfterAlt(updateForm.getAfterAlt()); + medicalRecordCheckData.setLastAlt(updateForm.getLastAlt()); + medicalRecordCheckData.setHeadIl6(updateForm.getHeadIl6()); + medicalRecordCheckData.setAfterIl6(updateForm.getAfterIl6()); + medicalRecordCheckData.setLastIl6(updateForm.getLastIl6()); + medicalRecordCheckData.setHeadAst(updateForm.getHeadAst()); + medicalRecordCheckData.setAfterAst(updateForm.getAfterAst()); + medicalRecordCheckData.setLastAst(updateForm.getLastAst()); + medicalRecordCheckData.setHeadTnf(updateForm.getHeadTnf()); + medicalRecordCheckData.setAfterTnf(updateForm.getAfterTnf()); + medicalRecordCheckData.setLastTnf(updateForm.getLastTnf()); + medicalRecordCheckData.setCheckImg(updateForm.getCheckImg()); + medicalRecorCheckDataDao.updateById(medicalRecordCheckData); - /** - * 治疗前 白蛋白(g/L) - */ - String headAlb = updateForm.getHeadAlb(); + // 疾病转归 + LambdaQueryWrapper medicalRecordPrognosisQueryWrapper = new LambdaQueryWrapper<>(); + medicalRecordPrognosisQueryWrapper.eq(MedicalRecordPrognosisEntity::getCaseId, medicalRecord.getId()); + MedicalRecordPrognosisEntity medicalRecordPrognosis = medicalRecorPrognosisDao.selectOne(medicalRecordPrognosisQueryWrapper); + if (medicalRecordPrognosis == null) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ResponseDTO.userErrorParam("操作失败"); + } - /** - * 治疗后 白蛋白(g/L) - */ - String afterAlb = updateForm.getAfterAlb(); + medicalRecordPrognosis.setDischargeTime(updateForm.getDischargeTime()); + medicalRecordPrognosis.setDay(updateForm.getDay()); + medicalRecordPrognosis.setDischargeStatus(updateForm.getDischargeStatus()); + medicalRecordPrognosis.setDischargeSituation(updateForm.getDischargeSituation()); + medicalRecorPrognosisDao.updateById(medicalRecordPrognosis); - /** - * 治疗前 直接胆红素(umol/L) - */ - String headDb = updateForm.getHeadDb(); - - /** - * 治疗后 直接胆红素(umol/L) - */ - String afterDb = updateForm.getAfterDb(); - - /** - * 治疗前 凝血酶原活动度 (%) - */ - String headPta = updateForm.getHeadPta(); - - /** - * 治疗后 凝血酶原活动度 (%) - */ - String afterPta = updateForm.getAfterPta(); - - /** - * 治疗前 间接胆红素(umol/L) - */ - String headIb = updateForm.getHeadIb(); - - /** - * 治疗后 间接胆红素(umol/L) - */ - String afterIb = updateForm.getAfterIb(); - - /** - * 治疗前 国际标准化比值 (INR) - */ - String headInr = updateForm.getHeadInr(); - - /** - * 治疗后 国际标准化比值 (INR) - */ - String afterInr = updateForm.getAfterInr(); - - /** - * 治疗前 谷丙转氨 (U/L) - */ - String headAlt = updateForm.getHeadAlt(); - - /** - * 治疗后 谷丙转氨 (U/L) - */ - String afterAlt = updateForm.getAfterAlt(); - - /** - * 治疗前 白介素6(ng/L) - */ - String headIl6 = updateForm.getHeadIl6(); - - /** - * 治疗后 白介素6(ng/L) - */ - String afterIl6 = updateForm.getAfterIl6(); - - /** - * 治疗前 谷草转氨酶 (U/L) - */ - String headAst = updateForm.getHeadAst(); - - /** - * 治疗后 谷草转氨酶 (U/L) - */ - String afterAst = updateForm.getAfterAst(); - - /** - * 治疗前 肿瘤坏死因子α(μg/L) - */ - String headTnf = updateForm.getHeadTnf(); - - /** - * 治疗后 肿瘤坏死因子α(μg/L) - */ - String afterTnf = updateForm.getAfterTnf(); - - //实验室检测 病历摘要 图片 - String checkImg = updateForm.getCheckImg(); - - MedicalRecordCheckdataEntity CheckdataEntity = MedicalRecordCheckdataEntity.builder() - .afterAlb(afterAlb) - .afterAlt(afterAlt) - .afterAst(afterAst) - .afterDb(afterDb) - .afterIb(afterIb) - .afterIl6(afterIl6) - .afterInr(afterInr) - .afterPta(afterPta) - .afterTb(afterTb) - .afterTime(afterTime) - .afterTnf(afterTnf) - .headAst(headAst) - .headDb(headDb) - .headIb(headIb) - .headIl6(headIl6) - .headAlb(headAlb) - .headAlt(headAlt) - .headInr(headInr) - .headPta(headPta) - .headTb(headTb) - .headTime(headTime) - .headTnf(headTnf) - .headAlt(headAlt) - .headAlt(headAlt) - .checkImg(checkImg) - .createTime(LocalDateTime.now()) - .caseId(medicalRecordId) - .build(); - - medicalRecorCheckDataDao.deleteByCaseId(medicalRecordId); - - medicalRecorCheckDataDao.insert(CheckdataEntity); return ResponseDTO.app_ok(); } + // 检测参数 public ResponseDTO check(MedicalRecordUpdateForm form, Long expertId){ - ConfigVO caseSwitch = configService.getConfig(ConfigKeyEnum.CaseSwitch); if(caseSwitch.getConfigValue().equals("false")){ return ResponseDTO.error(PROJECT_CLOSE); } - /*************************前置 检查*****************************/ + // 检测基本信息 + ResponseDTO check = checkCase(form, expertId); + if(!check.getOk()){ + return check; + } + + // 检测人工肝治疗 + check = checkDpms(form, expertId); + if(!check.getOk()){ + return check; + } + + // 检测实验室检测 + check = checkData(form, expertId); + if(!check.getOk()){ + return check; + } + + // 检测疾病转归 + check = checkPrognosis(form, expertId); + if(!check.getOk()){ + return check; + } + + return ResponseDTO.app_ok(); + } + + // 检测基本信息 + public ResponseDTO checkCase(MedicalRecordUpdateForm form, Long expertId){ //入院时间 LocalDateTime admissionTime = form.getAdmissionTime(); //患者id String uid = form.getUid(); - //获取全部病例 - List admissionTimeByUid = medicalRecorDao.getAdmissionTimeByUid(expertId, uid); - for(MedicalRecordDTO dto:admissionTimeByUid){ - if(dto.getId().equals(form.getId())){ - continue; - } - long daysDiff = Duration.between(dto.getAdmissionTime(), admissionTime).toDays(); - if(Math.abs(daysDiff) < 30){ - return ResponseDTO.userErrorParam("同一患者记录入院时间必须间隔30天以上!"); + + // 获取该患者的全部病例 + LambdaQueryWrapper medicalRecordQueryWrapper = new LambdaQueryWrapper<>(); + medicalRecordQueryWrapper.eq(MedicalRecordEntity::getUserId, uid); + List medicalRecords = medicalRecorDao.selectList(medicalRecordQueryWrapper); + for (MedicalRecordEntity medicalRecord: medicalRecords) { + // 判断是否是今天 + // 同一个患者ID可以提交多份病例(入院时间不同),所有病例对比 + boolean isSameDate = medicalRecord.getAdmissionTime().toLocalDate().isEqual(admissionTime.toLocalDate()); + if (isSameDate){ + return ResponseDTO.userErrorParam("患者入院时间和其他病例出现重复"); } } - String baseImg = form.getBaseImg(); - String[] baseImgNum = baseImg.split(","); - if(baseImgNum.length > 6){ - return ResponseDTO.userErrorParam("病案照片应为(1-6张)!"); + medicalRecordQueryWrapper = new LambdaQueryWrapper<>(); + medicalRecordQueryWrapper.eq(MedicalRecordEntity::getExpertId, expertId); + medicalRecords = medicalRecorDao.selectList(medicalRecordQueryWrapper); + if (medicalRecords.size() >= 20){ + return ResponseDTO.userErrorParam("每人参与病例征集不得超过20例"); } - //临床资料 病历摘要 文字 - String abstractStr = form.getAbstractStr(); + return ResponseDTO.app_ok(); + } - //临床资料 病历摘要 图片 - String abstractImg = form.getAbstractImg(); - - if(StrUtil.isBlank(abstractStr+abstractImg)){ - return ResponseDTO.userErrorParam("临床资料 病历摘要或者病历图片至少上传一项"); - } - - String[] abstractImgNum = abstractImg.split(","); - if(abstractImgNum.length > 6){ - return ResponseDTO.userErrorParam("病历摘要图片照片应为(1-6张)!"); - } - //病历类型 - Integer caseType = form.getCaseType(); + // 检测人工肝治疗 + public ResponseDTO checkDpms(MedicalRecordUpdateForm form, Long expertId){ List dpmas = form.getDpmas(); - int size = dpmas.size(); - - if(caseType == CasetypeEnum.BEFORE.getValue()){ - if(size == 0){ - return ResponseDTO.userErrorParam("至少上传1次DPMAS数据!"); - } - } - if(caseType == CasetypeEnum.DEFAULT.getValue()){ - if(size < 4){ - return ResponseDTO.userErrorParam("至少上传4次DPMAS数据!"); - } - } - LocalDateTime firstTreatTime = dpmas.get(0).getTreatTime();//第一次治疗时间 - - //治疗时间 2024 - - int headYear = firstTreatTime.getYear(); - - if(headYear != 2024){ - return ResponseDTO.userErrorParam("治疗时间:限制在2024年1月1日-2024年12月31日!"); + // 治疗时间 + LocalDateTime target = LocalDateTime.of(2024, 10, 1, 0, 0); + boolean isAfter = dpmas.get(0).getTreatTime().isAfter(target); + if (!isAfter){ + return ResponseDTO.userErrorParam("第一次治疗时间需在2024年10月1日之后"); } - LocalDateTime lastTreatTime = dpmas.get(size-1).getTreatTime();//最后一次治疗时间 - - if(firstTreatTime.toLocalDate().compareTo(admissionTime.toLocalDate()) < 0){ - return ResponseDTO.userErrorParam("第1次治疗时间比患者基本信息入院时间后!"); + isAfter = dpmas.get(0).getTreatTime().isAfter(form.getAdmissionTime()); + if (!isAfter){ + return ResponseDTO.userErrorParam("第1次治疗时间需在入院时间后"); } - LocalDateTime temp = firstTreatTime; - for(int i=0;i 0){ - if(!treatTime.isAfter(temp)){ - return ResponseDTO.userErrorParam("第"+(i+1)+"次治疗时间必须在第"+i+"次治疗时间后!"); - } + + for (int i = 1; i < dpmas.size(); i++) { + LocalDateTime previous = dpmas.get(i - 1).getTreatTime(); + LocalDateTime current = dpmas.get(i).getTreatTime(); + + if (current.isBefore(previous) || current.isEqual(previous)) { + throw new IllegalArgumentException("第 " + (i + 1) + " 次治疗时间必须晚于第 " + i + " 次"); } - String dpmasImg = dpmas.get(i).getDpmasImg(); + String dpmasImg = dpmas.get(i - 1).getDpmasImg(); String[] dpmasImgNum = dpmasImg.split(","); if(dpmasImgNum.length > 3){ - return ResponseDTO.userErrorParam("第"+(i+1)+"次治疗照片应为(1-3张)!"); - } - temp = treatTime; - } - - int lastYear = lastTreatTime.getYear(); - if(lastYear != 2024){ - return ResponseDTO.userErrorParam("治疗时间:限制在2024年1月1日-2024年12月31日!"); - } - - //治疗前 检测时间 - LocalDateTime headTime = form.getHeadTime(); - - /** - * 治疗后 检测时间 - */ - LocalDateTime afterTime = form.getAfterTime(); - - if(!afterTime.isAfter(headTime)){ - return ResponseDTO.userErrorParam("治疗前检测时间:应该小于治疗后检测时间!"); - } - - if(caseType == CasetypeEnum.BEFORE.getValue()){ - if((headTime.toLocalDate().compareTo(admissionTime.toLocalDate())) < 0 || (headTime.toLocalDate().compareTo(firstTreatTime.toLocalDate())) > 0){ - return ResponseDTO.userErrorParam("治疗前检测时间:应该在入院时间与第1次治疗时间之间!"); - } - if(size == 1){ - if(afterTime.toLocalDate().compareTo(firstTreatTime.toLocalDate()) < 0){ - return ResponseDTO.userErrorParam("治疗后检测时间:应该在第1次治疗时间之后"); - } - } - //治疗后检测时间:应该在第一次治疗时间之后,如果有第二次治疗时间,在应该在第一次与第二次治疗时间之间 - if(size >= 2){ - LocalDateTime secondTreatTime = dpmas.get(1).getTreatTime();//第2次治疗时间 - if((afterTime.toLocalDate().compareTo(firstTreatTime.toLocalDate())) < 0 || (afterTime.compareTo(secondTreatTime)) > 0){ - return ResponseDTO.userErrorParam("治疗后检测时间:应该在第1次与第2次治疗时间之间"); - } + return ResponseDTO.userErrorParam("第"+(i)+"次治疗照片应为(1-3张)!"); } } - if(caseType == CasetypeEnum.DEFAULT.getValue()){ - if((headTime.toLocalDate().compareTo(admissionTime.toLocalDate())) < 0 || (headTime.toLocalDate().compareTo(firstTreatTime.toLocalDate())) > 0){ - return ResponseDTO.userErrorParam("治疗前检测时间:应该在入院时间与第1次治疗时间之间!"); - } - if(afterTime.toLocalDate().compareTo(lastTreatTime.toLocalDate()) < 0){ - return ResponseDTO.userErrorParam("治疗后检测时间:应该在最后1次治疗时间之后"); + + return ResponseDTO.app_ok(); + } + + // 实验室检测 + public ResponseDTO checkData(MedicalRecordUpdateForm form, Long expertId){ + if (form.getHeadTime() == null) { + return ResponseDTO.userErrorParam("首次人工肝治疗前检测时间不能为空"); + } + + if (form.getAfterTime() == null) { + return ResponseDTO.userErrorParam("首次人工肝治疗后检测时间不能为空"); + } + + if (!form.getHeadTime().isBefore(form.getAfterTime())) { + return ResponseDTO.userErrorParam("首次人工肝治疗前检测时间需早于首次人工肝治疗后检测时间"); + } + + if (form.getLastTime() != null && !form.getAfterTime().isBefore(form.getLastTime())) { + return ResponseDTO.userErrorParam("最后一次人工肝治疗后检测时间需早于首次人工肝治疗后检测时间"); + } + + if (form.getDpmas().size() > 1){ + if (form.getLastTime() == null){ + return ResponseDTO.userErrorParam("人工肝治疗次数大于1,需填入最后一次人工肝治疗后检测时间"); } } @@ -675,6 +492,38 @@ public class MedicalRecordService { if(checkImgNum.length > 6){ return ResponseDTO.userErrorParam("实验室检测照片应为(1-6张)!"); } + + return ResponseDTO.app_ok(); + } + + // 疾病转归 + public ResponseDTO checkPrognosis(MedicalRecordUpdateForm form, Long expertId){ + LocalDateTime admissionTime = form.getAdmissionTime(); + LocalDateTime dischargeTime = form.getDischargeTime(); + List dpmas = form.getDpmas(); + + if (admissionTime == null || dischargeTime == null) { + throw new IllegalArgumentException("入院时间和出院时间不能为空"); + } + + // 出院时间大于住院时间 + boolean isAfter = dischargeTime.isAfter(admissionTime); + if (!isAfter){ + return ResponseDTO.userErrorParam("疾病转归:出院时间需大于住院时间"); + } + + for (int i = 0; i < dpmas.size(); i++) { + LocalDateTime treatTime = dpmas.get(i).getTreatTime(); + + if (treatTime == null) { + return ResponseDTO.userErrorParam("人工肝治疗:" + "第 " + (i + 1) + " 次治疗时间不能为空"); + } + + if (treatTime.isBefore(admissionTime) || treatTime.isAfter(dischargeTime)) { + return ResponseDTO.userErrorParam("人工肝治疗:" + "第 " + (i + 1) + " 次治疗时间不在入院和出院时间之间"); + } + } + return ResponseDTO.app_ok(); } } diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/constant/CasetypeEnum.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/constant/CasetypeEnum.java index 2bdc990..a60844b 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/constant/CasetypeEnum.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/constant/CasetypeEnum.java @@ -5,7 +5,7 @@ import lombok.Getter; import net.lab1024.sa.common.common.enumeration.BaseEnum; /** - * 病历类型 + * 治疗类型 * * @Author HMM * @Date 2024-01-11T15:18:32 @@ -15,8 +15,8 @@ import net.lab1024.sa.common.common.enumeration.BaseEnum; @AllArgsConstructor @Getter public enum CasetypeEnum implements BaseEnum { - DEFAULT(1, "四次及以上疗程化"), - BEFORE(2, "早前期(INR≤1.5)"), + DEFAULT(1, "DPMAS及联合模式"), + BEFORE(2, "CA280及联合模式"), ; private final Integer value; diff --git a/sa-admin/src/main/resources/mapper/app/medicalrecord/MedicalRecordMapper.xml b/sa-admin/src/main/resources/mapper/app/medicalrecord/MedicalRecordMapper.xml index 622d953..7e73c7e 100644 --- a/sa-admin/src/main/resources/mapper/app/medicalrecord/MedicalRecordMapper.xml +++ b/sa-admin/src/main/resources/mapper/app/medicalrecord/MedicalRecordMapper.xml @@ -33,12 +33,13 @@ t_caseplatform_case.*, t_caseplatform_user.*, t_caseplatform_case_abstract.*, - t_caseplatform_case_checkdata.* + t_caseplatform_case_checkdata.*, t_caseplatform_case_prognosis.* FROM t_caseplatform_case left join t_caseplatform_user on t_caseplatform_case.user_id = t_caseplatform_user.id left join t_caseplatform_case_abstract on t_caseplatform_case_abstract.case_id = t_caseplatform_case.id left join t_caseplatform_case_checkdata on t_caseplatform_case_checkdata.case_id = t_caseplatform_case.id + left join t_caseplatform_case_prognosis on t_caseplatform_case_prognosis.case_id = t_caseplatform_case.id where t_caseplatform_case.id = #{MedicalRecordId} diff --git a/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/DischargeStatusEnum.java b/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/DischargeStatusEnum.java new file mode 100644 index 0000000..150b5f9 --- /dev/null +++ b/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/DischargeStatusEnum.java @@ -0,0 +1,42 @@ +package net.lab1024.sa.common.common.enumeration; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 出院状态枚举类 + * + * @Author 1024创新实验室: 胡克 + * @Date 2019/09/24 16:50 + * @Wechat zhuoda1024 + * @Email lab1024@163.com + * @Copyright 1024创新实验室 ( https://1024lab.net ) + */ +@AllArgsConstructor +@Getter +public enum DischargeStatusEnum implements BaseEnum { + + /** + * 1 好转 + */ + A(1, "好转"), + + /** + * 2 痊愈 + */ + B(2, "痊愈"), + + /** + * 3 恶化 + */ + C(3, "恶化"), + + /** + * 4 死亡 + */ + D(4, "死亡"); + + private final Integer value; + + private final String desc; +} diff --git a/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/GenderEnum.java b/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/GenderEnum.java index 548d02e..ebc720c 100644 --- a/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/GenderEnum.java +++ b/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/GenderEnum.java @@ -19,19 +19,19 @@ public enum GenderEnum implements BaseEnum { /** * 0 未知 */ - UNKNOWN(0, "未知"), + UNKNOWN("0", "未知"), /** * 男 1 奇数为阳 */ - MAN(1, "男"), + MAN("1", "男"), /** * 女 2 偶数为阴 */ - WOMAN(2, "女"); + WOMAN("2", "女"); - private final Integer value; + private final String value; private final String desc; } diff --git a/sa-common/src/main/java/net/lab1024/sa/common/common/interceptor/AbstractInterceptor.java b/sa-common/src/main/java/net/lab1024/sa/common/common/interceptor/AbstractInterceptor.java index 62f2042..290077d 100644 --- a/sa-common/src/main/java/net/lab1024/sa/common/common/interceptor/AbstractInterceptor.java +++ b/sa-common/src/main/java/net/lab1024/sa/common/common/interceptor/AbstractInterceptor.java @@ -1,6 +1,7 @@ package net.lab1024.sa.common.common.interceptor; import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; import net.lab1024.sa.common.common.annoation.NoNeedLogin; import net.lab1024.sa.common.common.code.UserErrorCode; import net.lab1024.sa.common.common.constant.RequestHeaderConst; @@ -30,6 +31,7 @@ import java.util.function.Function; * @Email lab1024@163.com * @Copyright 1024创新实验室 ( https://1024lab.net ) */ +@Slf4j public abstract class AbstractInterceptor implements HandlerInterceptor { @Autowired