Explorar el Código

诊断依据修改

zhoutg hace 5 años
padre
commit
308b881211

+ 14 - 5
knowledgeman-service/src/main/java/com/diagbot/facade/DiagnoseFacade.java

@@ -11,6 +11,7 @@ import com.diagbot.dto.DiagnosePageDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.VerifyDataDTO;
 import com.diagbot.entity.CommonParam;
+import com.diagbot.entity.Concept;
 import com.diagbot.entity.Diagnose;
 import com.diagbot.entity.DiagnoseDetail;
 import com.diagbot.entity.DiagnoseDetailSave;
@@ -146,7 +147,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
      * @return
      */
     public List<ConceptBaseDTO> indexFac(DiseaseIndexVO diseaseIndexVO) {
-        // 设置量表类型
+        // 设置诊断类型
         diseaseIndexVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
         return this.index(diseaseIndexVO);
     }
@@ -402,6 +403,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
 //            Set<String> set = libraryForDiagnoseDTOS.stream().map(row -> row.getName()+ "_"+row.getTypeId())
 //                              .collect(Collectors.toSet());
             Set<String> libSet = libraryInfoFacade.getLibraryForDiagnose2(); // 加载词库
+            Set<String> standardSet = libraryInfoFacade.getLibraryForStandard(); // 加载标准词词库数据
             Set<String> lisMappingSet = lisMappingFacade.loadLisMappingFac(); // 加载公表项,需要关联同义词
             Long time3 = System.currentTimeMillis();
             res.append("加载词库:" + (time3 - time2) / 1000.0).append("秒,");
@@ -414,8 +416,8 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
                 codeList.add("拟诊"); // 公式校验手动添加拟诊文字
                 int j = 0;
                 if (ListUtil.isNotEmpty(detail)) {
-                    // 判断诊断名称是否在词库中
-                    flag = verifyExist(libSet, detail.get(0).getDisName(),
+                    // 判断诊断名称是否在标准词库中
+                    flag = verifyExist(standardSet, detail.get(0).getDisName(),
                             Arrays.asList(LexiconTypeEnum.DIAGNOSIS.getKey()));
                     if (!flag) {
                         DiagnoseQuestion diagnoseQuestion1 = createDiagnoseQuestion(detail.get(0).getDiagnoseId(),
@@ -716,9 +718,16 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
         int j = param.getJ();
         Set<String> questionSet = new HashSet<>(); // 问题词去重变量
 
-        // 判断诊断名称是否在词库中
+        // 判断诊断名称是否在标准词库中
         boolean flag = true;
-        flag = verifyExist(set, diagnoseWrapper.getDisName(), Arrays.asList(LexiconTypeEnum.DIAGNOSIS.getKey()));
+        int count = conceptFacade.count(new QueryWrapper<Concept>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("lib_type", LexiconTypeEnum.DIAGNOSIS.getKey())
+                .eq("lib_name", diagnoseWrapper.getDisName())
+        );
+        if (count == 0) {
+            flag = false;
+        }
         if (!flag) {
             DiagnoseQuestion diagnoseQuestion1 = createDiagnoseQuestion(diagnoseWrapper.getId(),
                     diagnoseWrapper.getDisName(), DiagnoseFeatureTypeEnum.Dis.getKey(),

+ 2 - 0
knowledgeman-service/src/main/java/com/diagbot/mapper/LibraryInfoMapper.java

@@ -23,5 +23,7 @@ public interface LibraryInfoMapper extends BaseMapper<LibraryInfo> {
 
     public Set<String> getLibraryForDiagnose2();
 
+    public Set<String> getLibraryForStandard();
+
     public List<RedisWithDiagnoseDTO> putRedis();
 }

+ 2 - 0
knowledgeman-service/src/main/java/com/diagbot/service/LibraryInfoService.java

@@ -22,5 +22,7 @@ public interface LibraryInfoService extends IService<LibraryInfo> {
 
     public Set<String> getLibraryForDiagnose2();
 
+    public Set<String> getLibraryForStandard();
+
     public List<RedisWithDiagnoseDTO> putRedis();
 }

+ 5 - 0
knowledgeman-service/src/main/java/com/diagbot/service/impl/LibraryInfoServiceImpl.java

@@ -34,6 +34,11 @@ public class LibraryInfoServiceImpl extends ServiceImpl<LibraryInfoMapper, Libra
         return baseMapper.getLibraryForDiagnose2();
     }
 
+    @Override
+    public Set<String> getLibraryForStandard() {
+        return baseMapper.getLibraryForStandard();
+    }
+
     @Override
     public List<RedisWithDiagnoseDTO> putRedis() {
         return baseMapper.putRedis();

+ 12 - 8
knowledgeman-service/src/main/resources/mapper/DiagnoseMapper.xml

@@ -33,15 +33,19 @@
     </select>
 
     <select id="index" resultType="com.diagbot.dto.ConceptBaseDTO">
-        SELECT a.lib_name name, a.id conceptId FROM kl_concept a
-        WHERE a.lib_type = #{libType}
-        AND UPPER(a.lib_name) LIKE concat('%', UPPER(trim(#{name})), '%')
-        AND a.is_deleted = 'N'
-        AND NOT EXISTS (
-            SELECT 1 FROM kl_diagnose b
+        select * from (
+            SELECT distinct a.lib_name name, a.id conceptId FROM kl_concept a, kl_library_info b
+            WHERE a.lib_type = #{libType} and b.type_id = #{libType}
+            AND UPPER(b.name) LIKE concat('%', UPPER(trim(#{name})), '%')
+            AND a.is_deleted = 'N'
+            AND b.is_deleted = 'N'
+            AND a.id = b.concept_id
+        ) t where
+         NOT EXISTS (
+            SELECT 1 FROM kl_diagnose c
             WHERE
-                b.is_deleted = 'N'
-            AND a.lib_name = b.dis_name
+                c.is_deleted = 'N'
+            AND t.name = c.dis_name
         )
     </select>
 

+ 6 - 0
knowledgeman-service/src/main/resources/mapper/LibraryInfoMapper.xml

@@ -29,6 +29,12 @@
         and a.type_id in (1,5,12,13,14,16,17,18,35,70)
     </select>
 
+    <select id="getLibraryForStandard" resultType="java.lang.String">
+        SELECT concat(b.lib_name, '_', b.lib_type)  from kl_concept b
+        where b.is_deleted = 'N'
+        and b.lib_type in (18)
+    </select>
+
     <select id="putRedis" resultType="com.diagbot.dto.RedisWithDiagnoseDTO">
         SELECT concat(name, '_', type_id) w_key,IF(is_concept=1,a.name,(select lib_name from kl_concept b where b.id = a.concept_id) ) w_val
         from kl_library_info a where  a.is_deleted = 'N'