jianghaodi 2 years ago
parent
commit
5c8ada38e8

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -170,6 +170,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/data/dataViewSupplementaryRecord").permitAll()
                 .antMatchers("/qc/data/analyseRec").permitAll()
                 .antMatchers("/qc/data/hisDataDeal").permitAll()
+                .antMatchers("/qc/data/**").permitAll()
                 .antMatchers("/qc/data_str/sendAdmissionNote").permitAll()
                 .antMatchers("/qc/data_str/sendBloodResult").permitAll()
                 .antMatchers("/qc/data_str/sendBloodTransfusion").permitAll()

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -212,6 +212,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/data/getColumnZhAndCh", request)
                 || matchers("/qc/data/getColumnZhAndCh1", request)
                 || matchers("/qc/data/dataViewSupplementaryRecord", request)
+                || matchers("/qc/data/**", request)
                 || matchers("/qc/data/analyseRec", request)
                 || matchers("/qc/data/hisDataDeal", request)
                 || matchers("/qc/data_str/sendAdmissionNote", request)

+ 122 - 1
src/main/java/com/diagbot/facade/data/StructuralDataFacade.java

@@ -121,7 +121,6 @@ public class StructuralDataFacade {
             } else if (StringUtils.isEmpty(structuralDataVos.getRecId())) {
                 return RespDTO.onError("请输入文书id");
             }
-            aMedAbnormalInfoFacade.saveAbnormalInfo("sendStructuralData", structuralDataVos.getBehospitalCode(), "", JSON.toJSONString(structuralDataVos), "sendStructuralData");
             //装载数据
             long time1 = System.currentTimeMillis();
             if (!structuralDataVos.getModeName().isEmpty()) {
@@ -165,6 +164,8 @@ public class StructuralDataFacade {
             RespDTO<Map<String, Object>> msg = mrIng(structuralDataVos);
             long time3 = System.currentTimeMillis();
             System.out.println("评分所耗时为--------" + (time3 - time2));
+            aMedAbnormalInfoFacade.saveAbnormalInfo("sendStructuralData总耗时", structuralDataVos.getBehospitalCode(), ""+(time3-time1), JSON.toJSONString(structuralDataVos), "sendStructuralData耗时");
+            aMedAbnormalInfoFacade.saveAbnormalInfo("装载数据所耗时为", structuralDataVos.getBehospitalCode(), ""+(time3-time1), JSON.toJSONString(structuralDataVos), "装载数据所耗时为");
 
             return msg;
         } else {
@@ -173,7 +174,68 @@ public class StructuralDataFacade {
 
     }
 
+    public RespDTO<Map<String, Object>> sendStructuralDataTest(StructuralDataVo structuralDataVos,HashSet<String>  modeIds) {
 
+        if (structuralDataVos != null) {
+            if (StringUtils.isEmpty(structuralDataVos.getBehospitalCode())) {
+                return RespDTO.onError("请输入病历号!");
+            } else if (null == structuralDataVos.getHospitalId()) {
+                return RespDTO.onError("请输入医院编码!");
+            } else if (StringUtils.isEmpty(structuralDataVos.getRecId())) {
+                return RespDTO.onError("请输入文书id");
+            }
+            //装载数据
+            long time1 = System.currentTimeMillis();
+            if (!structuralDataVos.getModeName().isEmpty()) {
+                structuralDataVos = isModeIdTest(structuralDataVos,modeIds);
+                if (structuralDataVos.getModeId().equals("0")) {
+                    String recId = structuralDataVos.getRecId();
+                    String[] modeList = {"23", "31", "32"};
+                    for (String modeId : modeList) {
+                        structuralDataVos.setModeId(modeId);
+                        structuralDataVos.setRecId(recId + "-" + structuralDataVos.getModeId());
+                       // execute(structuralDataVos);
+                    }
+                } else if (structuralDataVos.getModeId().equals("34")) {
+                    String recId = structuralDataVos.getRecId();
+                    String[] modeList = {"26", "27"};
+                    for (String modeId : modeList) {
+                        structuralDataVos.setModeId(modeId);
+                        structuralDataVos.setRecId(recId + "-" + structuralDataVos.getModeId());
+                        //execute(structuralDataVos);
+                    }
+                } else {
+                    structuralDataVos.setRecId(structuralDataVos.getRecId() + "-" + structuralDataVos.getModeId());
+                   // execute(structuralDataVos);
+                }
+            } else {
+               // execute(structuralDataVos);
+            }
+
+            long time2 = System.currentTimeMillis();
+            System.out.println("装载数据所耗时为-----" + (time2 - time1));
+
+            //判断是否有质控条目
+            String[] modes = {"8", "10", "53", "54", "57", "58", "59", "60", "55", "23"};
+            for (String modeId : modes) {
+                if (modeId.equals(structuralDataVos.getModeId())) {
+                    return RespDTO.onSuc("该模块没有质控条目");
+                }
+            }
+
+            //返回评分结构体
+       //     RespDTO<Map<String, Object>> msg = mrIng(structuralDataVos);
+            long time3 = System.currentTimeMillis();
+            System.out.println("评分所耗时为--------" + (time3 - time2));
+        //    aMedAbnormalInfoFacade.saveAbnormalInfo("sendStructuralData总耗时", structuralDataVos.getBehospitalCode(), ""+(time3-time1), JSON.toJSONString(structuralDataVos), "sendStructuralData耗时");
+     //       aMedAbnormalInfoFacade.saveAbnormalInfo("装载数据所耗时为", structuralDataVos.getBehospitalCode(), ""+(time2-time1), JSON.toJSONString(structuralDataVos), "装载数据所耗时为");
+
+            return RespDTO.onSuc("111");
+        } else {
+            return RespDTO.onError("未接收到数据!");
+        }
+
+    }
     /**
      * 判断所属模板再保存
      *
@@ -533,9 +595,68 @@ public class StructuralDataFacade {
             aMedAbnormalInfoFacade.saveAbnormalInfo("没有匹配到文书类别", structuralDataVo.getRecId(), structuralDataVo.getModeName(), "", "");
         }
         structuralDataVo.setModeId(modeId);
+
         aMedAbnormalInfoFacade.saveAbnormalInfo("his入参", structuralDataVo.getRecId(), JSON.toJSONString(structuralDataVo), "", "");
         return structuralDataVo;
     }
 
+    public StructuralDataVo isModeIdTest(StructuralDataVo structuralDataVo,HashSet<String> modeIds) {
+        String modeName = structuralDataVo.getModeName();
+        String modeId = "0";
+        if (modeName.equals("入院记录")) {
+            modeId = "1";
+        } else if (modeName.equals("首次病程记录")) {
+            modeId = "2";
+        } else if (modeName.equals("死亡病例讨论记录")) {
+            modeId = "3";
+        } else if (modeName.equals("上级医师查房记录") || modeName.equals("日常病程记录")) {
+            modeId = "4";
+        } else if (modeName.equals("出院小结") || modeName.equals("出院记录")) {
+            modeId = "5";
+        } else if (modeName.equals("住院病案首页") || modeName.equals("中医住院病案首页")) {
+            modeId = "6";
+        } else if (modeName.equals("会诊记录")) {
+            modeId = "7";
+        } else if (modeName.equals("住院医嘱")) {
+            modeId = "8";
+        } else if (modeName.equals("输血记录")) {
+            modeId = "10";
+        } else if (modeName.equals("术前小结") || modeName.equals("术前讨论")) {
+            modeId = "11";
+        } else if (modeName.equals("一般手术记录") || modeName.equals("手术记录")) {
+            modeId = "17";
+        } else if (modeName.equals("术后首次病程记录")) {
+            modeId = "18";
+        } else if (modeName.equals("疑难病例讨论记录")) {
+            modeId = "19";
+        } else if (modeName.equals("抢救记录")) {
+            modeId = "22";
+        } else if (modeName.equals("死亡记录")) {
+            modeId = "24";
+        } else if (modeName.equals("病危通知书")) {
+            modeId = "25";
+        } else if (modeName.equals("转科记录")) {
+            modeId = "34";
+        } else if (modeName.equals("阶段小结")) {
+            modeId = "28";
+        } else if (modeName.equals("病重通知书")) {
+            modeId = "29";
+        } else if (modeName.equals("检查报告")) {
+            modeId = "57";
+        } else if (modeName.equals("检验记录")) {
+            modeId = "58";
+        } else if (modeName.contains("告知书")) {
+            modeId = "53";
+        } else if (modeName.contains("同意书")) {
+            modeId = "54";
+        } else {
+            aMedAbnormalInfoFacade.saveAbnormalInfo("没有匹配到文书类别", structuralDataVo.getRecId(), structuralDataVo.getModeName(), "", "");
+        }
+        structuralDataVo.setModeId(modeId);
+        modeIds.add(modeId);
+    //    aMedAbnormalInfoFacade.saveAbnormalInfo("his入参", structuralDataVo.getRecId(), JSON.toJSONString(structuralDataVo), "", "");
+        return structuralDataVo;
+    }
+
 
 }

+ 22 - 6
src/main/java/com/diagbot/web/DataController.java

@@ -1,7 +1,10 @@
 package com.diagbot.web;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.*;
+import com.diagbot.entity.MedAbnormalInfo;
 import com.diagbot.facade.data.*;
 import com.diagbot.facade.str.AStrOperativeNoteFacade;
 import com.diagbot.service.impl.DataConsistencyServiceImpl;
@@ -13,8 +16,10 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/qc/data")
@@ -56,6 +61,8 @@ public class DataController {
     private AStrOperativeNoteFacade aStrOperativeNoteFacade;
     @Autowired
     private DataConsistencyServiceImpl dataConsistencyService;
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
 
 
     //
@@ -251,12 +258,21 @@ public class DataController {
 //    }
 
     @ApiOperation(value = "测试1")
-    @PostMapping("/getColumnZhAndCh1")
-    @SysLogger("getColumnZhAndCh1")
-    public void getColumnZhAndCh1() {
-//        aStrConsultationNoteFacade.getColumnZhAndCh();
-//        return RespDTO.onSuc(true);
-        aStrOperativeNoteFacade.getOneList(null, "17");
+    @PostMapping("/test")
+    @SysLogger("test")
+    public void test() {
+        List<MedAbnormalInfo> list = aMedAbnormalInfoFacade.list(new LambdaQueryWrapper<MedAbnormalInfo>().eq(MedAbnormalInfo::getModuleName, "his入参").ge(MedAbnormalInfo::getGmtCreate, "2022-10-09 00:00:00").le(MedAbnormalInfo::getGmtCreate, "2022-10-12 00:00:00"));
+        List<StructuralDataVo> collect = list.stream().map((obj) -> {
+            String paramIn = obj.getParamIn();
+            StructuralDataVo structuralDataVo = JSON.parseObject(paramIn, StructuralDataVo.class);
+            return structuralDataVo;
+        }).collect(Collectors.toList());
+        HashSet<String> strings = new HashSet<>();
+        for (StructuralDataVo structuralDataVo : collect) {
+            structuralDataFacade.sendStructuralDataTest(structuralDataVo, strings);
+        }
+        aMedAbnormalInfoFacade.saveAbnormalInfo("modeIds", "3141415996", strings.toString(),strings.toString(), "modeIds");
+
     }
 
     @PostMapping("/dataViewSupplementaryRecord")