浏览代码

优化病案首页验证。

lighter 4 年之前
父节点
当前提交
043ed75edd

+ 10 - 0
src/main/java/thyyxxk/webserver/dao/his/casefrontsheet/CaseFrontSheetDao.java

@@ -703,4 +703,14 @@ public interface CaseFrontSheetDao extends BaseMapper<CaseFrontsheetMain> {
     @Select("select count(1) from t_case_frontsheet_main where bah=#{bah} and admiss_times=#{admissTimes}")
     Integer bingAnQianShouZhuangTai(@Param("bah")String bah,
                                     @Param("admissTimes")Integer admissTimes);
+
+    @Select("select file_status from t_case_frontsheet_main where bah=#{bah} and admiss_times=#{admissTimes}")
+    Integer selectFileStatus(@Param("bah")String bah,
+                             @Param("admissTimes")Integer admissTimes);
+
+    @Update("update t_case_frontsheet_main set file_status=#{status} where bah=#{bah} and admiss_times=#{admissTimes}")
+    void updateFileStatus(@Param("bah")String bah,
+                          @Param("admissTimes")Integer admissTimes,
+                          @Param("status") int status);
+
 }

+ 3 - 0
src/main/java/thyyxxk/webserver/entity/casefrontsheet/SheetOverview.java

@@ -2,6 +2,9 @@ package thyyxxk.webserver.entity.casefrontsheet;
 
 import lombok.Data;
 
+/**
+ * @author dj
+ */
 @Data
 public class SheetOverview {
     private String bedNo;

+ 12 - 6
src/main/java/thyyxxk/webserver/service/casefrontsheet/CaseFrontSheetService.java

@@ -322,8 +322,10 @@ public class CaseFrontSheetService {
                 //插入数据 SignDate 签收日期  在点击签收后 向数据库中插入
                 sheet.setSignDate(new Date());
                 sheet.setFileStatus(1);
+
                 //判断是否已经插入过了
-                if (dao.bingAnQianShouZhuangTai(sheet.getBah(),sheet.getAdmissTimes()) == 0){
+                Integer fileStatus = dao.selectFileStatus(sheet.getBah(), sheet.getAdmissTimes());
+                if (null == fileStatus) {
                     //在t_case_frontsheet_main表中插入 主体的内容
                     dao.insert(sheet);
                     //循环插主要的诊断
@@ -342,17 +344,20 @@ public class CaseFrontSheetService {
                             basDao.insert(caseFrontsheetSurgery);
                         }
                     }
-                }else {
-                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请勿重复签收 ( ˉ ⌓ ˉ ๑)");
+                    return ResultVoUtil.success("签收成功。");
                 }
-                return ResultVoUtil.success("签收成功。");
-            } else {
-                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "您没有签收首页的权限。");
+                if (0 == fileStatus ) {
+                    dao.updateFileStatus(sheet.getBah(), sheet.getAdmissTimes(), 1);
+                    return ResultVoUtil.success("签收成功。");
+                }
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请勿重复签收 ( ˉ ⌓ ˉ ๑)");
             }
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "您没有签收首页的权限。");
         }
     }
 
     @Transactional(rollbackFor = Exception.class)
+
     public synchronized ResultVo<String> unArchiveBa(OpCaseFrontsheet param) {
         CaseFrontsheetMain sheet = param.getSheet();
         if (sheet.getFileStatus() == 2) {
@@ -364,6 +369,7 @@ public class CaseFrontSheetService {
         dao.updateZyFileStatus(0, sheet.getBah(), sheet.getAdmissTimes());
         dao.updateZyInFileStatus(0, sheet.getBah(), sheet.getAdmissTimes());
         dao.clearSignDate(sheet.getBah(), sheet.getAdmissTimes());
+        dao.updateFileStatus(sheet.getBah(), sheet.getAdmissTimes(), 0);
         log.info("解除签收状态, 操作员:{} >>> 住院号:{}, 住院次数:{}",
                 param.getStaffId(), sheet.getBah(), sheet.getAdmissTimes());
         dao.writeBaOpLog(param.getOpType(), param.getStaffId(), sheet.getBah(), sheet.getAdmissTimes());

+ 13 - 13
src/main/java/thyyxxk/webserver/service/casefrontsheet/VerifyCaseFrontSheet.java

@@ -175,37 +175,37 @@ public class VerifyCaseFrontSheet {
         if (StringUtil.isBlank(info.getAdmissDoctor())) {
             sb.append("住院医师不能为空!");
         }
-        if (null == info.getQualityControlLevel()) {
+        if (StringUtil.isBlank(info.getQualityControlLevel())) {
             sb.append("病案质量不能为空!");
         }
-        if (null == info.getZyDismissWay()) {
+        if (StringUtil.isBlank(info.getZyDismissWay())) {
             sb.append("患者离院方式不能为空!");
         }
-        if (null == info.getAdmissAgainInOneMonth()) {
+        if (StringUtil.isBlank(info.getAdmissAgainInOneMonth())) {
             sb.append("患者是否有出院31天内再住院计划不能为空!");
         }
         if (StringUtil.isBlank(info.getQualityControlDoctor())) {
             sb.append("质控医生不能为空!");
         }
-        if (null == info.getCaseClassification()) {
+        if (StringUtil.isBlank(info.getCaseClassification())) {
             sb.append("病例分型不能为空!");
         }
-        if (null == info.getHasIcu()) {
+        if (StringUtil.isBlank(info.getHasIcu())) {
             sb.append("实施重症监护不能为空!");
         }
-        if (null == info.getMonopathyManagement()) {
+        if (StringUtil.isBlank(info.getMonopathyManagement())) {
             sb.append("单病种管理不能为空!");
         }
-        if (null == info.getClinicalPathwayManagement()) {
+        if (StringUtil.isBlank(info.getClinicalPathwayManagement())) {
             sb.append("实施临床路径管理不能为空!");
         }
-        if (null == info.getDrgsManagement()) {
+        if (StringUtil.isBlank(info.getDrgsManagement())) {
             sb.append("DRGs管理不能为空!");
         }
-        if (null == info.getUseAntibiotic()) {
+        if (StringUtil.isBlank(info.getUseAntibiotic())) {
             sb.append("抗生素使用不能为空!");
         }
-        if (null == info.getBacilliculture()) {
+        if (StringUtil.isBlank(info.getBacilliculture())) {
             sb.append("细菌培养标本送检不能为空!");
         }
         if (zipCodeLengthWrong(info.getAddrZipCode())) {
@@ -240,7 +240,7 @@ public class VerifyCaseFrontSheet {
                     isNewBornInfoNull(info.getNewBornAdmissWeight())) {
                 sb.append("请填写新生儿信息!");
             }
-            if (null == info.getXxeApgar()) {
+            if (StringUtil.isBlank(info.getXxeApgar())) {
                 sb.append("新生儿Apgar评分不能为空!");
             }
         } else {
@@ -261,12 +261,12 @@ public class VerifyCaseFrontSheet {
             }
         }
         if (StringUtil.notBlank(info.getHasSurgery())  && "0".equals(info.getHasSurgery()) && "0".equals(info.getDiagConform3())) {
-            sb.append("无手术时,诊断符合情况中的术前与术后需要为’未做‘!");
+            sb.append("无手术时,诊断符合情况中的术前与术后需要为【未做】!");
         }
         if (StringUtil.notBlank(info.getHasSurgery())) {
             if ("1".equals(info.getHasSurgery())   || "2".equals(info.getHasSurgery()) || "3".equals(info.getHasSurgery())) {
                 if ("0".equals(info.getDiagConform3())) {
-                    sb.append("有手术时,诊断符合情况中的术前与术后不可为’未做‘!");
+                    sb.append("有手术时,诊断符合情况中的术前与术后不可为【未做】!");
                 }
             }
         }