Browse Source

重庆石柱建议转诊特殊规则添加

wangsy 10 months ago
parent
commit
fb6194cdf7

+ 81 - 0
src/main/java/com/diagbot/entity/KlDiagHospital.java

@@ -0,0 +1,81 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 基层医院诊断信息表
+ * </p>
+ *
+ * @author dsYun
+ * @since 2024-08-01
+ */
+@Getter
+@Setter
+public class KlDiagHospital implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 编码类型
+     */
+    private String disType;
+
+    /**
+     * 医院诊断编码
+     */
+    private String disCode;
+
+    /**
+     * 诊断名称
+     */
+    private String disName;
+
+    /**
+     * 国家诊断编码
+     */
+    private String countryCode;
+
+    /**
+     * 国家诊断名称
+     */
+    private String countryName;
+
+}

+ 15 - 0
src/main/java/com/diagbot/facade/KlDiagHospitalFacade.java

@@ -0,0 +1,15 @@
+package com.diagbot.facade;
+
+import com.diagbot.service.impl.KlDiagHospitalServiceImpl;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * @Description:
+ * @author: dsYun
+ * @time: 2024/08/01 13:07
+ */
+@Component
+public class KlDiagHospitalFacade extends KlDiagHospitalServiceImpl {
+
+}

+ 3 - 0
src/main/java/com/diagbot/facade/OtherTipFacade.java

@@ -40,6 +40,9 @@ public class OtherTipFacade {
         // 特殊规则——VTE结果
         otherTipProcess.processSpecial(wordCrfDTO, res);
 
+        // 特殊规则——超过基层医院诊治范围
+        otherTipProcess.processGrassroots(wordCrfDTO, res);
+
         // 结果去重处理
         commonFacade.dealMsg(res.getOtherList());
     }

+ 16 - 0
src/main/java/com/diagbot/mapper/KlDiagHospitalMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.KlDiagHospital;
+
+
+/**
+ * <p>
+ * 基层医院诊断信息表 Mapper 接口
+ * </p>
+ *
+ * @author dsYun
+ * @since 2024-08-01
+ */
+public interface KlDiagHospitalMapper extends BaseMapper<KlDiagHospital> {
+}

+ 53 - 4
src/main/java/com/diagbot/process/OtherTipProcess.java

@@ -1,5 +1,6 @@
 package com.diagbot.process;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Scale;
@@ -9,11 +10,10 @@ import com.diagbot.dto.RuleBaseDTO;
 import com.diagbot.dto.RuleConditionDTO;
 import com.diagbot.dto.RuleExtDTO;
 import com.diagbot.dto.WordCrfDTO;
-import com.diagbot.enums.LexiconEnum;
-import com.diagbot.enums.RedisEnum;
-import com.diagbot.enums.RuleTypeEnum;
-import com.diagbot.enums.TypeEnum;
+import com.diagbot.entity.KlDiagHospital;
+import com.diagbot.enums.*;
 import com.diagbot.facade.CommonFacade;
+import com.diagbot.facade.KlDiagHospitalFacade;
 import com.diagbot.model.entity.PacsNum;
 import com.diagbot.model.label.PacsLabel;
 import com.diagbot.rule.AgeRule;
@@ -33,6 +33,7 @@ import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -59,6 +60,9 @@ public class OtherTipProcess {
     @Autowired
     AgeRule ageRule;
 
+    @Autowired
+    private KlDiagHospitalFacade klDiagHospitalFacade;
+
     /**
      * 处理业务——化验
      *
@@ -260,6 +264,51 @@ public class OtherTipProcess {
         }
     }
 
+    /**
+     * 处理业务——超过基层医院诊治范围
+     *
+     * @param wordCrfDTO
+     * @param res
+     */
+    public void processGrassroots(WordCrfDTO wordCrfDTO, IndicationDTO res) {
+        List<BillMsg> otherList = res.getOtherList();
+        // 诊断
+        List<Item> diagList = wordCrfDTO.getDiag();
+        if (ListUtil.isEmpty(diagList)) {
+            diagList = wordCrfDTO.getDiagOrder();
+        }
+        // 诊断名称结果
+        List<String> diagNameList = new ArrayList<>();
+        if (ListUtil.isNotEmpty(diagList)) {
+            for (Item diag : diagList) {
+                String name = diag.getName();
+                if (StringUtil.isNotBlank(name)) {
+                    diagNameList.add(name);
+                }
+            }
+        }
+
+        // 获取基层医院不能真正的疾病
+        if (ListUtil.isNotEmpty(diagNameList)) {
+            QueryWrapper<KlDiagHospital> diagQueryWrapper = new QueryWrapper<>();
+            diagQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+            List<KlDiagHospital> diagHospitalList = klDiagHospitalFacade.list(diagQueryWrapper);
+            List<String> diagLists = new ArrayList<>();
+            diagHospitalList.forEach(item -> {
+                if (StringUtil.isNotEmpty(item.getDisName())) {
+                    diagLists.add(item.getDisName());
+                }
+            });
+            for (String name : diagNameList) {
+                if (diagLists.contains(name)) {
+                    String msg = name + ",已超出基层诊治范围,建议转诊";
+                    BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.other.getName(), msg, null, null, null);
+                    CoreUtil.addBeanToList(otherList, billMsg);
+                }
+            }
+        }
+    }
+
     /**
      * 是否有效医嘱(6天)
      *

+ 16 - 0
src/main/java/com/diagbot/service/KlDiagHospitalService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.KlDiagHospital;
+
+/**
+ * <p>
+ * 基层医院诊断信息表 服务类
+ * </p>
+ *
+ * @author dsYun
+ * @since 2024-08-01
+ */
+public interface KlDiagHospitalService extends IService<KlDiagHospital> {
+
+}

+ 21 - 0
src/main/java/com/diagbot/service/impl/KlDiagHospitalServiceImpl.java

@@ -0,0 +1,21 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.entity.KlDiagHospital;
+import com.diagbot.mapper.KlDiagHospitalMapper;
+import com.diagbot.service.KlDiagHospitalService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 基层医院诊断信息表 服务实现类
+ * </p>
+ *
+ * @author dsYun
+ * @since 2024-08-01
+ */
+@Service
+public class KlDiagHospitalServiceImpl extends ServiceImpl<KlDiagHospitalMapper, KlDiagHospital> implements KlDiagHospitalService {
+
+}

+ 20 - 0
src/main/resources/mapper/KlDiagHospitalMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.KlDiagHospitalMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.KlDiagHospital">
+        <id column="id" property="id"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="gmt_create" property="gmtCreate"/>
+        <result column="gmt_modified" property="gmtModified"/>
+        <result column="creator" property="creator"/>
+        <result column="modifier" property="modifier"/>
+        <result column="dis_type" property="disType"/>
+        <result column="dis_code" property="disCode"/>
+        <result column="dis_name" property="disName"/>
+        <result column="country_code" property="countryCode"/>
+        <result column="country_name" property="countryName"/>
+    </resultMap>
+
+</mapper>