Pārlūkot izejas kodu

质控类型-病历标题模糊匹配

xiewei 8 mēneši atpakaļ
vecāks
revīzija
eb9b20a979

+ 1 - 1
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -2044,7 +2044,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         BeanUtil.copyProperties(analyzeRunVO, analyzeVO);
         Long hospitalId = analyzeVO.getHospitalId();
 
-        // 处理公共数据
+        // 处理公共数据  获取质控规则
         QueryVo queryVo = dealCommonData(hospitalId, analyzeVO);
         //  调用质控接口
         Response<OutputInfo> response = qcServiceClient.extract(queryVo);

+ 26 - 2
src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java

@@ -1,7 +1,9 @@
 package com.diagbot.facade.data;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.diagbot.dto.AnalyzeRunDTO;
@@ -415,6 +417,7 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
                     }
                 });
             }
+            //修改med_medical_record和qc_abnormal表
             if (addE.size() > 0) {
                 medicalRecordService.saveBatch(addE);
             }
@@ -499,8 +502,29 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
         wrapper.eq("hospital_id", medicalRecord.getHospitalId());
         //wrapper.eq("hospital_model_name", medicalRecord.getRecTitle());
         wrapper.eq("remark", medicalRecord.getRecTypeId());
+        //modelHospitalFacade就代表对应的数据表
         ModelHospital mode = modelHospitalFacade.getOne(wrapper, false);
-        if (mode != null) {
+//        if (mode != null) {
+//            modeId = mode.getStandModelId();
+//        }else{
+//            //病例标题字符数小于3则直接将模块id改为0
+//            modeId = Long.valueOf("0");
+//        }
+        //***********************************************************
+        String recTitle = medicalRecord.getRecTitle();
+        int recTitleLength = recTitle.length();
+        //病历标题与model_name模糊匹配(不区分医院)
+        if(mode == null && recTitleLength >= 3){
+            //取病历标题前三个字符
+            String begin = recTitle.substring(0, 3);
+            //取病历标题后三个字符
+            String end = recTitle.substring(recTitle.length() - 3);
+            LambdaQueryWrapper<ModelHospital> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.like(ModelHospital::getHospitalModelName, begin);
+            queryWrapper.or().like(ModelHospital::getHospitalModelName, end);
+            ModelHospital likeMode = modelHospitalFacade.getOne(queryWrapper, false);
+            modeId = likeMode != null ? likeMode.getStandModelId() : Long.valueOf("0");
+        } else if(mode != null){
             modeId = mode.getStandModelId();
         } else {
             modeId = Long.valueOf("0");
@@ -545,12 +569,12 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
         //wrapper.eq("hospital_model_name", recTitle);
         wrapper.eq("remark", recTypeId);
         ModelHospital mode = modelHospitalFacade.getOne(wrapper, false);
+        //可以修改判断顺序
         if (mode != null) {
             modeId = mode.getStandModelId();
         } else {
             modeId = Long.valueOf("0");
         }
-
         return modeId;
     }
 

+ 1 - 0
src/main/java/com/diagbot/vo/data/AMedicalRecordContentVO.java

@@ -2,6 +2,7 @@ package com.diagbot.vo.data;
 
 import lombok.Data;
 
+import java.io.Serializable;
 import java.sql.Blob;
 
 @Data

+ 1 - 0
src/main/java/com/diagbot/vo/data/AMedicalRecordVO.java

@@ -3,6 +3,7 @@ package com.diagbot.vo.data;
 import java.util.List;
 
 import lombok.Getter;
+import lombok.NoArgsConstructor;
 import lombok.Setter;
 
 @Getter