Переглянути джерело

字段标准化修改-北仑入邵逸夫

rengb 4 роки тому
батько
коміт
df77425b50

+ 14 - 5
kernel/src/main/java/com/lantone/qc/kernel/analysis/QCAnalysis.java

@@ -36,6 +36,7 @@ public class QCAnalysis {
 
     public OutputInfo anlysis(QueryVo queryVo) throws AIException, CatalogueException, Exception {
         specialStorageUtil.getHospitalIdThreadLocal().set(queryVo.getHospitalId());
+        specialStorageUtil.getBehospitalInfoThreadLocal().set(queryVo.getBehospitalInfo());
         OutputInfo outputInfo = new OutputInfo();
         long t1 = System.currentTimeMillis();
         InputInfo inputInfo = TransDispatch.trans(queryVo);
@@ -56,11 +57,11 @@ public class QCAnalysis {
             }
             CatalogueUtil.qcCatalogueMap.get(entry.getKey()).execute(inputInfo, outputInfo);
         }
-//        inputInfo.getInputCatalogueMap().entrySet().parallelStream().forEach(entry -> {
-//            if (CatalogueUtil.qcCatalogueMap.get(entry.getKey()) != null) {
-//                CatalogueUtil.qcCatalogueMap.get(entry.getKey()).execute(inputInfo, outputInfo);
-//            }
-//        });
+        //        inputInfo.getInputCatalogueMap().entrySet().parallelStream().forEach(entry -> {
+        //            if (CatalogueUtil.qcCatalogueMap.get(entry.getKey()) != null) {
+        //                CatalogueUtil.qcCatalogueMap.get(entry.getKey()).execute(inputInfo, outputInfo);
+        //            }
+        //        });
         long t4 = System.currentTimeMillis();
 
         log.error(queryVo.getBehospitalInfo().getBehospitalCode() + "-----" + "trans层  耗时:" + (t2 - t1));
@@ -79,4 +80,12 @@ public class QCAnalysis {
         outputInfo.setResult(resultNew);
         return outputInfo;
     }
+
+    public OutputInfo standardFieldDock(QueryVo queryVo) {
+        OutputInfo outputInfo = new OutputInfo();
+        InputInfo inputInfo = TransDispatch.trans(queryVo);
+        outputInfo.setPageData(inputInfo.getPageData());
+        return outputInfo;
+    }
+
 }

+ 96 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI03063.java

@@ -0,0 +1,96 @@
+package com.lantone.qc.kernel.catalogue.clinicalblood;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.ClinicBloodEffectDoc;
+import com.lantone.qc.pub.model.doc.ClinicalBloodDoc;
+import com.lantone.qc.pub.model.doc.consultation.ConsultationApplicationDoc;
+import com.lantone.qc.pub.model.doc.consultation.ConsultationResultsDoc;
+import com.lantone.qc.pub.util.DateUtil;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+
+/**
+ * @ClassName : CLI0309
+ * @Description : 输血后效果评价未在24小时完成
+ * @Author : 王宇
+ * @Date: 2020-08-14 10:18
+ */
+@Component
+public class CLI03063 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();//输血记录
+        List<ClinicBloodEffectDoc> clinicBloodEffectDocs = inputInfo.getClinicBloodEffectDocs();//输血效果评价
+        if (ListUtil.isEmpty(clinicalBloodDocs)) {
+            return;
+        }
+        Iterator<ClinicalBloodDoc> clinicalBloodDocIterator = clinicalBloodDocs.iterator();
+        Iterator<ClinicBloodEffectDoc> clinicBloodEffectDocIterator = clinicBloodEffectDocs.iterator();
+        while (clinicalBloodDocIterator.hasNext()) {
+            if (!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(clinicalBloodDocIterator.next().getStructureMap().get("记录时间")),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(24 * 60))) {//如果接收未超过24小时,规则不判断
+                clinicalBloodDocIterator.remove();
+            }
+        }
+        while (clinicBloodEffectDocIterator.hasNext()) {
+            if (!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(clinicBloodEffectDocIterator.next().getStructureMap().get("记录时间")),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(24 * 60))) {//如果接收未超过24小时,规则不判断
+                clinicBloodEffectDocIterator.remove();
+            }
+        }
+        Collections.sort(clinicalBloodDocs, new Comparator<ClinicalBloodDoc>() {
+            public int compare(ClinicalBloodDoc o1, ClinicalBloodDoc o2) {
+                return o1.getStructureMap().get("记录时间")
+                        .compareTo(o2.getStructureMap().get("记录时间"));
+            }
+        });
+        Collections.sort(clinicBloodEffectDocs, new Comparator<ClinicBloodEffectDoc>() {
+            public int compare(ClinicBloodEffectDoc o1, ClinicBloodEffectDoc o2) {
+                return o1.getStructureMap().get("记录时间")
+                        .compareTo(o2.getStructureMap().get("记录时间"));
+            }
+        });
+        if (clinicalBloodDocs.size() != clinicBloodEffectDocs.size()) {
+            status.set("-1");
+            return;
+        }
+        for (ClinicalBloodDoc clinicalBloodDoc : clinicalBloodDocs) {
+            for (ClinicBloodEffectDoc clinicBloodEffectDoc : clinicBloodEffectDocs) {
+                if (CatalogueUtil.compareTime(
+                        StringUtil.parseDateTime(clinicalBloodDoc.getStructureMap().get("记录时间")),
+                        StringUtil.parseDateTime(clinicBloodEffectDoc.getStructureMap().get("记录时间")),
+                        Long.valueOf(1))) {//结果单时间要比申请单大的
+                    if (CatalogueUtil.compareTime(
+                            StringUtil.parseDateTime(clinicalBloodDoc.getStructureMap().get("记录时间")),
+                            StringUtil.parseDateTime(clinicBloodEffectDoc.getStructureMap().get("记录时间")),
+                            Long.valueOf(24 * 60))) {//未超过24小时
+                        status.set("-1");
+                        return ;
+                    }
+                }
+            }
+        }
+        /*
+        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
+            for (ClinicBloodEffectDoc cliB : clinicBloodEffectDocs) {
+                Map<String, String> cliBStructureMap = cliB.getStructureMap();
+                if (StringUtils.isEmpty(cliBStructureMap.get("输注后效果评价"))) {
+                    status.set("-1");
+                    break;
+                }
+            }
+        }
+
+         */
+    }
+}

+ 1 - 0
kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java

@@ -79,6 +79,7 @@ public class CatalogueUtil {
     public static List<String> noInQuotes(List<String> words, String text) {
         List<String> retWords = Lists.newArrayList();
         if (ListUtil.isNotEmpty(words) && StringUtil.isNotBlank(text)) {
+            text = text.replaceAll("[“”]", "\"");
             List<String> sections = Lists.newArrayList();
             int index = 0;
             for (String txt : text.split("\"")) {

+ 8 - 0
kernel/src/main/java/com/lantone/qc/kernel/web/controller/QCController.java

@@ -61,4 +61,12 @@ public class QCController {
         return response;
     }
 
+    @ApiOperation(value = "字段标准化解析接口")
+    @PostMapping("standardFieldDock")
+    public Response<OutputInfo> standardFieldDock(@RequestBody QueryVo queryVo) {
+        Response response = new Response();
+        response.setData(qCAnalysis.standardFieldDock(queryVo));
+        return response;
+    }
+
 }

+ 1 - 0
kernel/src/main/resources/bootstrap.yml

@@ -21,6 +21,7 @@ logging:          # 日志
   config: classpath:logback-spring.xml
 
 mybatis-plus:
+  mapper-locations: classpath:/mapper/lt/*Mapper.xml
   type-aliases-package: com.lantone.qc.dbanaly.lt.entity
   configuration:
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

+ 1 - 1
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunHtmlAnalysis.java

@@ -9,6 +9,6 @@ import java.util.Map;
  */
 public interface BeiLunHtmlAnalysis {
 
-    Map<String,String> analysis(String... args);
+    Map<String,String> analysis(String...args);
 
 }

+ 0 - 76
trans/src/main/java/com/lantone/qc/trans/changx/ChangxDutyShiftSystemDocTrans.java

@@ -1,76 +0,0 @@
-package com.lantone.qc.trans.changx;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.pub.model.doc.DutyShiftSystemDoc;
-import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.trans.comsis.ModelDocGenerate;
-import com.lantone.qc.trans.comsis.Preproc;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 值班交接制度文档生成
- * @author: rengb
- * @time: 2020/3/17 13:24
- */
-public class ChangxDutyShiftSystemDocTrans extends ModelDocTrans {
-
-    @Override
-    public List<DutyShiftSystemDoc> extract(MedrecVo medrecVo) {
-        List<DutyShiftSystemDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
-        contents.forEach(content -> {
-            retList.add(getDutyShiftSystemDoc(content));
-        });
-        return retList;
-    }
-
-    private DutyShiftSystemDoc getDutyShiftSystemDoc(String content) {
-        Map<String, String> pageData = Preproc.extract_doc_pub(true, pageDataTitles, content);
-        pageData.put("病程记录内容",
-                pageData.get("病程记录内容")
-                        .replace(pageData.get("病程记录时间"), "")
-                        .replace(pageData.get("病程记录名称"), "")
-        );
-
-        List<String> targetTitles = Lists.newArrayList();
-        sourceTitles.forEach(sourceTitle -> {
-            String targetTitle = "";
-            for (int index = 0; index < sourceTitle.length(); index++) {
-                if (index == sourceTitle.length() - 1) {
-                    targetTitle += sourceTitle.substring(index, index + 1);
-                } else {
-                    targetTitle += sourceTitle.substring(index, index + 1) + "[\\s\\p{Zs}]*";
-                }
-            }
-            targetTitles.add(targetTitle);
-        });
-
-        Map<String, String> sourceMap = Preproc.extract_doc_pub(true, targetTitles, content);
-        sourceMap.put("记录时间", sourceMap.get("病程记录时间"));
-
-        DutyShiftSystemDoc dutyShiftSystemDoc = ModelDocGenerate.dutyShiftSystemDocGen(sourceMap);
-        dutyShiftSystemDoc.setText(content);
-        dutyShiftSystemDoc.setPageData((Map) pageData);
-
-        return dutyShiftSystemDoc;
-    }
-
-    private List<String> pageDataTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
-            "记录医师"
-    );
-
-    private List<String> sourceTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
-            "记录时间",
-            "记录医师"
-    );
-
-}

+ 0 - 18
trans/src/main/java/com/lantone/qc/trans/changx/ChangxInformedConsentDocTrans.java

@@ -1,18 +0,0 @@
-package com.lantone.qc.trans.changx;
-
-import com.lantone.qc.pub.model.doc.InformedConsentDoc;
-import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.trans.ModelDocTrans;
-
-/**
- * @Description: 知情同意书
- * @author: wangyu
- * @time: 2020/4/20 17:48
- */
-public class ChangxInformedConsentDocTrans extends ModelDocTrans {
-    @Override
-    public InformedConsentDoc extract(MedrecVo medrecVo) {
-        InformedConsentDoc informedConsentDoc = new InformedConsentDoc();
-        return informedConsentDoc;
-    }
-}

+ 0 - 23
trans/src/main/java/com/lantone/qc/trans/changx/ChangxNoticeOfConversationDocTrans.java

@@ -1,23 +0,0 @@
-package com.lantone.qc.trans.changx;
-
-import com.lantone.qc.pub.model.doc.NoticeOfConversationDoc;
-import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.trans.ModelDocTrans;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 谈话告知书
- * @author: wangyu
- * @time: 2020/4/20 18:06
- */
-public class ChangxNoticeOfConversationDocTrans extends ModelDocTrans {
-    @Override
-    public NoticeOfConversationDoc extract(MedrecVo medrecVo) {
-        NoticeOfConversationDoc noticeOfConversationDoc = new NoticeOfConversationDoc();
-//        List<String> noticeofConverstartons = (List<String>) medrecVo.getContent().get("content");
-//        noticeOfConversationDoc.setAllNoticeOfConverstartion(noticeofConverstartons);
-        return noticeOfConversationDoc;
-    }
-}

+ 0 - 69
trans/src/main/java/com/lantone/qc/trans/changx/ChangxNursingSystemDocTrans.java

@@ -1,69 +0,0 @@
-package com.lantone.qc.trans.changx;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.pub.model.doc.NursingSystemDoc;
-import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.trans.comsis.ModelDocGenerate;
-import com.lantone.qc.trans.comsis.Preproc;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 分级护理制度文档生成
- * @author: rengb
- * @time: 2020/3/17 13:26
- */
-public class ChangxNursingSystemDocTrans extends ModelDocTrans {
-
-    @Override
-    public NursingSystemDoc extract(MedrecVo medrecVo) {
-        String content = ((List<String>) medrecVo.getContent().get("content")).get(0);
-
-        Map<String, String> pageData = Preproc.extract_doc_pub(true, pageDataTitles, content);
-        pageData.put("病程记录内容",
-                pageData.get("病程记录内容")
-                        .replace(pageData.get("病程记录时间"), "")
-                        .replace(pageData.get("病程记录名称"), "")
-        );
-
-        List<String> targetTitles = Lists.newArrayList();
-        sourceTitles.forEach(sourceTitle -> {
-            String targetTitle = "";
-            for (int index = 0; index < sourceTitle.length(); index++) {
-                if (index == sourceTitle.length() - 1) {
-                    targetTitle += sourceTitle.substring(index, index + 1);
-                } else {
-                    targetTitle += sourceTitle.substring(index, index + 1) + "[\\s\\p{Zs}]*";
-                }
-            }
-            targetTitles.add(targetTitle);
-        });
-
-        Map<String, String> sourceMap = Preproc.extract_doc_pub(true, targetTitles, content);
-        sourceMap.put("记录时间", sourceMap.get("病程记录时间"));
-
-        NursingSystemDoc nursingSystemDoc = ModelDocGenerate.nursingSystemDocGen(sourceMap);
-        nursingSystemDoc.setText(content);
-        nursingSystemDoc.setPageData((Map) pageData);
-
-        return nursingSystemDoc;
-    }
-
-    private List<String> pageDataTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
-            "记录医师"
-    );
-
-    private List<String> sourceTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
-            "记录时间",
-            "记录医师"
-    );
-
-}

+ 0 - 76
trans/src/main/java/com/lantone/qc/trans/changx/ChangxSeriouslyIllNoticeDocTrans.java

@@ -1,76 +0,0 @@
-package com.lantone.qc.trans.changx;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.pub.model.doc.SeriouslyIllNoticeDoc;
-import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.trans.comsis.ModelDocGenerate;
-import com.lantone.qc.trans.comsis.Preproc;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 病重通知书文档生成
- * @author: rengb
- * @time: 2020/3/19 19:41
- */
-public class ChangxSeriouslyIllNoticeDocTrans extends ModelDocTrans {
-
-    @Override
-    public List<SeriouslyIllNoticeDoc> extract(MedrecVo medrecVo) {
-        List<SeriouslyIllNoticeDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
-        contents.forEach(content -> {
-            retList.add(getSeriouslyIllNoticeDoc(content));
-        });
-        return retList;
-    }
-
-    private SeriouslyIllNoticeDoc getSeriouslyIllNoticeDoc(String content) {
-        Map<String, String> pageData = Preproc.extract_doc_pub(true, pageDataTitles, content);
-        pageData.put("病程记录内容",
-                pageData.get("病程记录内容")
-                        .replace(pageData.get("病程记录时间"), "")
-                        .replace(pageData.get("病程记录名称"), "")
-        );
-
-        List<String> targetTitles = Lists.newArrayList();
-        sourceTitles.forEach(sourceTitle -> {
-            String targetTitle = "";
-            for (int index = 0; index < sourceTitle.length(); index++) {
-                if (index == sourceTitle.length() - 1) {
-                    targetTitle += sourceTitle.substring(index, index + 1);
-                } else {
-                    targetTitle += sourceTitle.substring(index, index + 1) + "[\\s\\p{Zs}]*";
-                }
-            }
-            targetTitles.add(targetTitle);
-        });
-
-        Map<String, String> sourceMap = Preproc.extract_doc_pub(true, targetTitles, content);
-        sourceMap.put("记录时间", sourceMap.get("病程记录时间"));
-
-        SeriouslyIllNoticeDoc seriouslyIllNoticeDoc = ModelDocGenerate.seriouslyIllNoticeDocGen(sourceMap);
-        seriouslyIllNoticeDoc.setText(content);
-        seriouslyIllNoticeDoc.setPageData((Map) pageData);
-
-        return seriouslyIllNoticeDoc;
-    }
-
-    private List<String> pageDataTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
-            "记录医师"
-    );
-
-    private List<String> sourceTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
-            "记录时间",
-            "记录医师"
-    );
-
-}